diff --git a/08_bilateral_filter/MLRichard/CMakeLists.txt b/08_bilateral_filter/MLRichard/CMakeLists.txt new file mode 100644 index 0000000..f57848f --- /dev/null +++ b/08_bilateral_filter/MLRichard/CMakeLists.txt @@ -0,0 +1,53 @@ +cmake_minimum_required(VERSION 3.20) +project(bilateral_filter CUDA CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CUDA_STANDARD 17) +set(CMAKE_CUDA_ARCHITECTURES 75;80;86;89) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + +find_package(OpenCV REQUIRED) +include(CTest) + +include_directories(${OpenCV_INCLUDE_DIRS} src) + +# 主程序 +add_executable(bilateral_filter + src/main.cu + src/bilateral_filter.cu + src/io.cpp + src/reference.cpp + src/metrics.cpp +) +target_link_libraries(bilateral_filter ${OpenCV_LIBS}) +set_target_properties(bilateral_filter PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + +# 正确性测试 +add_executable(test_correctness + test/test_correctness.cpp + src/bilateral_filter.cu + src/io.cpp + src/reference.cpp + src/metrics.cpp +) +target_link_libraries(test_correctness ${OpenCV_LIBS}) +set_target_properties(test_correctness PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + +# 性能测试 +add_executable(test_performance + test/test_performance.cpp + src/bilateral_filter.cu + src/io.cpp + src/reference.cpp + src/metrics.cpp +) +target_link_libraries(test_performance ${OpenCV_LIBS}) +set_target_properties(test_performance PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + +if(BUILD_TESTING) + add_test(NAME correctness COMMAND test_correctness) + set_tests_properties(correctness PROPERTIES LABELS "correctness") + + add_test(NAME performance COMMAND test_performance) + set_tests_properties(performance PROPERTIES LABELS "performance;benchmark") +endif() diff --git a/08_bilateral_filter/MLRichard/CMakePresets.json b/08_bilateral_filter/MLRichard/CMakePresets.json new file mode 100644 index 0000000..6e8fff4 --- /dev/null +++ b/08_bilateral_filter/MLRichard/CMakePresets.json @@ -0,0 +1,143 @@ +{ + "version": 2, + "cmakeMinimumRequired": { + "major": 3, + "minor": 20, + "patch": 0 + }, + "configurePresets": [ + { + "name": "conda-release", + "displayName": "Conda Release", + "description": "Configure a Release build in an activated Conda environment.", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build/conda-release", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", + "CUDAToolkit_ROOT": "$env{CONDA_PREFIX}", + "OpenCV_DIR": "$env{CONDA_PREFIX}/lib/cmake/opencv4", + "CMAKE_PREFIX_PATH": "$env{CONDA_PREFIX}" + }, + "environment": { + "PATH": "$env{CONDA_PREFIX}/bin:$penv{PATH}", + "CPATH": "$env{CONDA_PREFIX}/include:$penv{CPATH}", + "LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:$penv{LIBRARY_PATH}", + "LD_LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:/usr/lib/wsl/lib:$penv{LD_LIBRARY_PATH}", + "CUDA_HOME": "$env{CONDA_PREFIX}", + "OpenCV_DIR": "$env{CONDA_PREFIX}/lib/cmake/opencv4" + } + }, + { + "name": "conda-debug", + "displayName": "Conda Debug", + "description": "Configure a Debug build in an activated Conda environment.", + "inherits": "conda-release", + "binaryDir": "${sourceDir}/build/conda-debug", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", + "CUDAToolkit_ROOT": "$env{CONDA_PREFIX}", + "OpenCV_DIR": "$env{CONDA_PREFIX}/lib/cmake/opencv4", + "CMAKE_PREFIX_PATH": "$env{CONDA_PREFIX}" + } + } + ], + "testPresets": [ + { + "name": "test-conda-correctness", + "displayName": "Run correctness tests", + "configurePreset": "conda-release", + "output": { + "outputOnFailure": true + }, + "execution": { + "jobs": 1 + }, + "filter": { + "include": { + "label": "correctness" + } + }, + "environment": { + "PATH": "$env{CONDA_PREFIX}/bin:$penv{PATH}", + "CPATH": "$env{CONDA_PREFIX}/include:$penv{CPATH}", + "LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:$penv{LIBRARY_PATH}", + "LD_LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:/usr/lib/wsl/lib:$penv{LD_LIBRARY_PATH}", + "CUDA_HOME": "$env{CONDA_PREFIX}", + "OpenCV_DIR": "$env{CONDA_PREFIX}/lib/cmake/opencv4" + } + }, + { + "name": "test-conda-performance", + "displayName": "Run performance benchmark", + "configurePreset": "conda-release", + "output": { + "outputOnFailure": true + }, + "execution": { + "jobs": 1 + }, + "filter": { + "include": { + "label": "performance" + } + }, + "environment": { + "PATH": "$env{CONDA_PREFIX}/bin:$penv{PATH}", + "CPATH": "$env{CONDA_PREFIX}/include:$penv{CPATH}", + "LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:$penv{LIBRARY_PATH}", + "LD_LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:/usr/lib/wsl/lib:$penv{LD_LIBRARY_PATH}", + "CUDA_HOME": "$env{CONDA_PREFIX}", + "OpenCV_DIR": "$env{CONDA_PREFIX}/lib/cmake/opencv4" + } + }, + { + "name": "test-conda-all", + "displayName": "Run all CTest tests", + "configurePreset": "conda-release", + "output": { + "outputOnFailure": true + }, + "execution": { + "jobs": 1 + }, + "environment": { + "PATH": "$env{CONDA_PREFIX}/bin:$penv{PATH}", + "CPATH": "$env{CONDA_PREFIX}/include:$penv{CPATH}", + "LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:$penv{LIBRARY_PATH}", + "LD_LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:/usr/lib/wsl/lib:$penv{LD_LIBRARY_PATH}", + "CUDA_HOME": "$env{CONDA_PREFIX}", + "OpenCV_DIR": "$env{CONDA_PREFIX}/lib/cmake/opencv4" + } + } + ], + "buildPresets": [ + { + "name": "build-conda-release", + "displayName": "Build Conda Release", + "configurePreset": "conda-release" + }, + { + "name": "build-conda-debug", + "displayName": "Build Conda Debug", + "configurePreset": "conda-debug" + }, + { + "name": "build-test-correctness", + "displayName": "Build test_correctness", + "configurePreset": "conda-release", + "targets": [ + "test_correctness" + ] + }, + { + "name": "build-test-performance", + "displayName": "Build test_performance", + "configurePreset": "conda-release", + "targets": [ + "test_performance" + ] + } + ] +} diff --git a/08_bilateral_filter/MLRichard/README.md b/08_bilateral_filter/MLRichard/README.md new file mode 100644 index 0000000..6717e23 --- /dev/null +++ b/08_bilateral_filter/MLRichard/README.md @@ -0,0 +1,495 @@ +# bilateral_filter + +一个基于 CUDA 的实时双边滤波实验项目,默认适配 **英伟达(NVIDIA)GPU 环境**,支持灰度图与 RGB 图像,提供三阶段 CUDA kernel、CPU 参考实现、正确性测试与性能测试。项目优先面向训练营提供的英伟达环境,同时也可在标准 Linux / WSL + NVIDIA CUDA 环境中复用。 + +## 功能概览 + +- `Phase 1`:朴素 CUDA bilateral filter,作为正确性与性能基线 +- `Phase 2`:Shared Memory 优化版本,减少邻域访问的全局内存开销 +- `Phase 3`:自适应半径 + LUT 版本,结合 Sobel 梯度图进行区域自适应平滑 +- `CPU` 参考实现:基于 OpenCV `cv::bilateralFilter` +- `测试`: + - `test_correctness`:对比 OpenCV 输出,检查 MAE / PSNR + - `test_performance`:统计 GPU / CPU 时间与吞吐量 + +## 目录结构 + +```text +bilateral_filter/ +├── CMakeLists.txt +├── CMakePresets.json +├── README.md +├── params.txt +├── src/ +│ ├── main.cu +│ ├── bilateral_filter.cu +│ ├── bilateral_filter.cuh +│ ├── io.cpp +│ ├── io.h +│ ├── reference.cpp +│ ├── reference.h +│ ├── metrics.cpp +│ └── metrics.h +├── test/ +│ ├── test_correctness.cpp +│ └── test_performance.cpp +└── docs/ + └── plans/ +``` + +## 环境要求 + +本项目默认面向英伟达平台,建议按以下方式准备环境: + +- 如果你使用的是训练营提供的英伟达服务器,优先遵照课程中的英伟达环境文档完成基础配置。 +- 如果你使用的是本地或其他英伟达环境,请确保至少具备: + - 可用的 NVIDIA 驱动与 CUDA 环境 + - `C++17` 编译能力 + - `cmake` + - `ninja` 或其他可用构建工具 + - OpenCV 开发环境 +- 为了与当前 `CMakePresets.json` 保持一致,本文档下面给出一套推荐的 Conda 依赖配置,可直接用于训练营英伟达环境、普通 Linux 服务器或 WSL + NVIDIA CUDA 环境。 + +## NVIDIA 环境配置(推荐) + +如果训练营服务器已经提供好基础环境,可直接跳到“激活环境”或“使用 CMake Presets”部分;以下步骤主要用于补齐本地或其他英伟达环境中的用户态依赖。 + +### 1. 初始化 Conda + +```bash +source ~/miniconda3/etc/profile.d/conda.sh +``` + +### 2. 创建推荐环境 + +```bash +CONDA_NO_PLUGINS=true conda create -y \ + --solver classic \ + --override-channels \ + --strict-channel-priority \ + -n bilateral-cuda124 \ + -c nvidia/label/cuda-12.4.1 \ + -c conda-forge \ + python=3.10 cuda-toolkit opencv cmake ninja +``` + +### 3. 激活环境 + +```bash +conda activate bilateral-cuda124 +``` + +### 4. 基础检查 + +```bash +nvcc --version +cmake --version +python -c "import cv2; print(cv2.__version__)" +nvidia-smi +``` + +预期: + +- `nvcc` 可用 +- `OpenCV` 可导入 +- `nvidia-smi` 可看到 GPU + +## 使用 CMake Presets + +项目当前提供一组基于 Conda 环境的标准预设,可直接复用于英伟达训练营环境和其他标准 NVIDIA 环境: + +- `conda-release` +- `conda-debug` +- `build-conda-release` +- `build-conda-debug` +- `build-test-correctness` +- `build-test-performance` +- `test-conda-correctness` +- `test-conda-performance` +- `test-conda-all` + +### 配置 Release + +```bash +cmake --preset conda-release +``` + +### 构建 Release + +```bash +cmake --build --preset build-conda-release -j"$(nproc)" +``` + +### 仅构建正确性测试 + +```bash +cmake --build --preset build-test-correctness -j"$(nproc)" +``` + +### 仅构建性能测试 + +```bash +cmake --build --preset build-test-performance -j"$(nproc)" +``` + +### 使用 CTest 运行测试 + +运行正确性测试: + +```bash +ctest --preset test-conda-correctness +``` + +运行性能 benchmark: + +```bash +ctest --preset test-conda-performance +``` + +运行全部测试: + +```bash +ctest --preset test-conda-all +``` + +默认构建目录: + +- `build/conda-release` +- `build/conda-debug` + +## 项目使用说明 + +### 主程序 + +```bash +./build/conda-release/bilateral_filter [kernel] +``` + +示例: + +```bash +./build/conda-release/bilateral_filter test.raw out.raw params.txt shared +``` + +其中 `kernel` 可选: + +- `naive` +- `shared` +- `adaptive` + +默认值为 `shared`。 + +### 正确性测试 + +```bash +./build/conda-release/test_correctness +``` + +输出会包含: + +- 图像尺寸与通道数 +- `MAE` +- `PSNR` +- `PASS / FAIL` + +### 性能测试 + +```bash +./build/conda-release/test_performance +``` + +输出会包含: + +- GPU 时间 +- CPU 时间 +- 吞吐量(MPix/s) +- Speedup +- MAE / PSNR + +## 输入 / 输出格式说明 + +### raw 文件格式 + +项目内部使用如下二进制格式: + +```text +[4字节] width (uint32_t, little-endian) +[4字节] height (uint32_t, little-endian) +[4字节] channels (uint32_t, little-endian) +[数据区] width * height * channels 字节,类型 uint8 +``` + +说明: + +- 灰度图:`channels = 1` +- RGB 图:`channels = 3` +- 像素按行主序存储 +- RGB 使用交错布局:`R0,G0,B0,R1,G1,B1,...` + +## 参数文件说明 + +默认参数文件 `params.txt` 内容如下: + +```text +radius = 5 +sigma_spatial = 3.0 +sigma_color = 30.0 +``` + +含义: + +- `radius`:邻域半径 +- `sigma_spatial`:空间高斯权重参数 +- `sigma_color`:颜色权重参数 + +## 数据准备工具 + +项目附带两个辅助脚本,分别用于真实图片转换和基准输入生成。 + +### PNG / JPG 转 raw + +将普通图片转换成项目使用的 raw 格式: + +```bash +python tools/img2raw.py input.png output.raw +python tools/img2raw.py input.jpg output_gray.raw --gray +``` + +说明: + +- 默认输出 RGB 三通道 +- 传入 `--gray` 时输出灰度图 +- 脚本优先使用 `Pillow`,缺失时会回退到 `OpenCV Python` + +### 生成确定性测试输入 + +生成固定随机种子的 raw 文件,适合 correctness / benchmark / profiling: + +```bash +python tools/generate_test_raw.py artifacts/profiling/inputs/test_4k.raw +python tools/generate_test_raw.py tmp/test_gray.raw --width 1024 --height 768 --channels 1 --seed 7 +``` + +说明: + +- 默认生成 `3840x2160 RGB` 测试图 +- 输入内容可复现,便于不同机器之间对比吞吐与误差 +- profiling 脚本会在缺少输入时自动调用这个工具 + +## 典型使用流程 + +```bash +source ~/miniconda3/etc/profile.d/conda.sh +conda activate bilateral-cuda124 + +cmake --preset conda-release +cmake --build --preset build-conda-release -j"$(nproc)" + +ctest --preset test-conda-correctness +ctest --preset test-conda-performance +``` + +## 验收对照 + +本项目按 [task.md](./task.md) 中提取的“方向 8”要求实现,当前可直接用下面的清单自查。 + +| 要求 | 当前实现 | +|------|----------| +| 灰度 / RGB 输入 | 支持,raw 格式 `channels=1/3` | +| `radius >= 5` | 支持,默认 `radius=5` | +| 可配置 `sigma_spatial` / `sigma_color` | 支持,来自 `params.txt` | +| 输出 raw 图像 | 支持,主程序写出 raw 文件 | +| CPU 参考实现 | 支持,基于 OpenCV `bilateralFilter` | +| 正确性指标 | `test_correctness` 检查 `MAE < 1.0` | +| 性能日志 | 主程序和 benchmark 都输出 `GPU Time / CPU Time / Throughput / Speedup` | +| 共享内存优化 | 支持,`shared` kernel | +| 自适应半径 | 支持,`adaptive` kernel | +| profiling | 支持 `ncu / nsys` 脚本链路 | + +推荐在真实 GPU 环境中执行以下命令作为最终验收: + +```bash +source ~/miniconda3/etc/profile.d/conda.sh +conda activate bilateral-cuda124 +cmake --preset conda-release +cmake --build --preset build-conda-release -j"$(nproc)" +ctest --preset test-conda-all +``` + +如果 `ctest --preset test-conda-all` 全部通过,说明当前代码与 README 中记录的默认工作流一致。 + +## Profiling(Task 12 / NVIDIA 环境) + +推荐直接使用统一脚本: + +```bash +source ~/miniconda3/etc/profile.d/conda.sh +conda activate bilateral-cuda124 +bash tools/profile_task12.sh +``` + +默认行为: + +- 自动生成 `artifacts/profiling/inputs/test_4k.raw` +- 运行 `ncu` 采集 `naive / shared / adaptive` +- 运行 `nsys` 采集 `shared` 时间线 +- 自动导出 `timeline.sqlite` +- 按 GPU 名称输出到 `artifacts/profiling//` + +常用变体: + +```bash +# 仅跑 Nsight Systems +bash tools/profile_task12.sh --skip-ncu + +# 使用已有 raw 输入 +bash tools/profile_task12.sh --input /path/to/real_image.raw --skip-generate +``` + +说明: + +- 在 **Windows + WSL + NVIDIA GPU** 下,脚本会自动补充 `/usr/lib/wsl/lib` 到 `LD_LIBRARY_PATH` +- 在 **Linux + NVIDIA GPU** 环境中,可直接复用同一脚本;若该路径不存在,也无需改项目源码 +- 若 `ncu` 遇到 `ERR_NVGPUCTRPERM`,脚本会继续执行 `nsys`,并在输出目录生成 `ncu_permission_hint.txt` + +## NVIDIA Linux 服务器兼容说明 + +项目默认适配英伟达平台。若你使用的是训练营提供的英伟达服务器,通常只需完成课程要求的基础环境配置即可直接复用本项目;若你使用的是其他 Linux 云服务器,也通常不需要修改项目源码。 + +推荐方式: + +1. 服务器具备 NVIDIA GPU 与可用驱动 +2. 安装 Miniconda / Conda +3. 使用与本地相同的 Conda 环境创建命令 +4. 激活环境后直接使用相同的 `cmake --preset conda-release` 与 `cmake --build --preset build-conda-release` + +说明: + +- `CMakePresets.json` 主要依赖 `$env{CONDA_PREFIX}`,因此只要 Conda 环境结构一致,就不需要改路径。 +- `LD_LIBRARY_PATH` 中加入 `/usr/lib/wsl/lib` 只是为了兼容 WSL;在普通 Linux 服务器上该路径通常不存在,也不要求修改项目源代码。 +- 若服务器已有系统级 CUDA,也仍建议优先使用与项目一致的 Conda 环境,减少版本偏差。 + +## 课程提交说明 + +根据 [task.md](./task.md) 中提取的“项目代码要求”,最终交付时建议额外检查以下事项: + +1. 提交仓库应位于 `Learning-CUDA` 的 `2025-winter-project` 分支体系下。 +2. 目录布局应整理为 `/<选题>/<你的ID>/`。 +3. 提交方式应为 `PR`,而不是只保留本地目录。 +4. 最终交付版本应统一命名风格、补充关键注释,并根据课程要求确认是否需要移除测试代码。 + +如果课程原始文档在 `2026-03-03` 之后有更新,以最新的官方要求为准;本仓库中的 `task.md` 是对原始任务页的提取副本。 + +## 常见问题 + +### 1. `Failed to find nvcc` + +说明当前环境中没有可用的 CUDA toolkit。 + +检查: + +```bash +which nvcc +nvcc --version +``` + +处理: + +- 确认已执行 `conda activate bilateral-cuda124` +- 确认环境中安装了 `cuda-toolkit` + +### 2. VS Code / IntelliSense 提示 `#include` 错误 + +项目依赖: + +- `compile_commands.json` +- `.vscode/c_cpp_properties.json` +- `.vscode/settings.json` + +如果仍有报错: + +```text +Developer: Reload Window +C/C++: Reset IntelliSense Database +``` + +并确认你已经先执行过: + +```bash +cmake --preset conda-release +``` + +当前 IntelliSense 默认读取:`build/conda-release/compile_commands.json`。 + +### 3. 可以编译,但某些受限环境里 CUDA 运行失败 + +某些受限执行环境可以访问文件系统与编译器,但不允许真正访问 GPU compute。 + +表现通常为: + +- `cudaGetDeviceCount` 失败 +- `cudaMalloc` 报 `OS call failed or operation not supported on this OS` + +这种情况不是项目代码错误,而是当前执行环境限制。 + +### 4. OpenCV 未找到 + +检查: + +```bash +python -c "import cv2; print(cv2.__version__)" +ls "$CONDA_PREFIX/lib/cmake/opencv4/OpenCVConfig.cmake" +``` + +如缺失,重新安装 `opencv` 包即可。 + +### 5. Nsight Compute 报 `ERR_NVGPUCTRPERM` + +这是 **GPU Performance Counters 权限** 问题,不是项目代码错误。 + +项目已内置降级行为: + +- `tools/profile_task12.sh` 会继续完成 `nsys` 采集 +- 并在输出目录生成 `ncu_permission_hint.txt` + +#### Windows + WSL + NVIDIA GPU 推荐处理步骤 + +根据 NVIDIA 官方说明,WSL 侧通常需要在 **Windows 主机** 开启计数器访问: + +1. 以管理员身份打开 `NVIDIA Control Panel` +2. 勾选 `Desktop -> Enable Developer Settings` +3. 进入 `Developer -> Manage GPU Performance Counters` +4. 选择 `Allow access to the GPU performance counter to all users` +5. 重新打开 WSL 终端后再执行: + +```bash +source ~/miniconda3/etc/profile.d/conda.sh +conda activate bilateral-cuda124 +bash tools/profile_task12.sh +``` + +#### Linux / 云服务器 / A100 永久配置命令 + +```bash +sudo tee /etc/modprobe.d/nvidia-prof.conf >/dev/null <<'EOCONF' +options nvidia NVreg_RestrictProfilingToAdminUsers=0 +EOCONF +sudo update-initramfs -u -k all +sudo reboot +``` + +重启后检查: + +```bash +cat /proc/driver/nvidia/params | grep RmProfilingAdminOnly +``` + +若输出为 `RmProfilingAdminOnly: 0`,说明普通用户可以运行 `ncu`。 + +官方说明:`https://developer.nvidia.com/ERR_NVGPUCTRPERM` + +## 备注 + +- 当前推荐构建入口是 `CMakePresets.json`。 +- 为了获得稳定体验,请始终在激活的 Conda 环境中执行 `cmake` 与 `ninja`。 +- 如果需要更细粒度 profiling,可进一步结合 `ncu` / `nsys` 运行主程序分析 kernel 行为。 diff --git a/08_bilateral_filter/MLRichard/build/conda-release/.ninja_deps b/08_bilateral_filter/MLRichard/build/conda-release/.ninja_deps new file mode 100644 index 0000000..e1df19e Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/.ninja_deps differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/.ninja_log b/08_bilateral_filter/MLRichard/build/conda-release/.ninja_log new file mode 100644 index 0000000..9a0ef43 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/.ninja_log @@ -0,0 +1,22 @@ +# ninja log v7 +3 225 1773564738627201677 CMakeFiles/bilateral_filter.dir/src/metrics.cpp.o 8fa559955a914ab4 +4 229 1773564738627201677 CMakeFiles/test_correctness.dir/src/metrics.cpp.o f85da7147ab98fc5 +3 401 1773564738627201677 CMakeFiles/test_correctness.dir/test/test_correctness.cpp.o 8b079f6205514c2a +4 470 1773564738627201677 CMakeFiles/test_performance.dir/test/test_performance.cpp.o 2854e6f0a05c2bc8 +405 591 1773564739031198091 CMakeFiles/test_performance.dir/src/metrics.cpp.o 95d19b130e8d0fc9 +2 1968 1773564738627201677 CMakeFiles/bilateral_filter.dir/src/reference.cpp.o c2d103b6a05a3c3f +4 2004 1773564738627201677 CMakeFiles/test_correctness.dir/src/reference.cpp.o 9d447d7213d5e6e7 +2 2054 1773564738627201677 CMakeFiles/bilateral_filter.dir/src/io.cpp.o 4abe2da84b72e48a +229 2133 1773564738855199653 CMakeFiles/test_performance.dir/src/reference.cpp.o 84d515c7d1ef4dd9 +3 2162 1773564738627201677 CMakeFiles/test_correctness.dir/src/io.cpp.o f9a430fc9bf6244b +226 2208 1773564738851199688 CMakeFiles/test_performance.dir/src/io.cpp.o 1a98c94d07bb3c94 +5 3128 1773564738631201641 CMakeFiles/test_performance.dir/src/bilateral_filter.cu.o 7325907243128c3e +3 3132 1773564738627201677 CMakeFiles/test_correctness.dir/src/bilateral_filter.cu.o c670f2f165be05ae +2 3132 1773564738627201677 CMakeFiles/bilateral_filter.dir/src/bilateral_filter.cu.o 85bc60fdacd5e374 +3132 3182 1773564741755173910 CMakeFiles/test_correctness.dir/cmake_device_link.o 3c60f23f528236b +3128 3183 1773564741751173945 CMakeFiles/test_performance.dir/cmake_device_link.o 959f1b5a9762f1f7 +1 3292 1773564738627201677 CMakeFiles/bilateral_filter.dir/src/main.cu.o 3ee1262267863a4b +3292 3345 1773564741915172488 CMakeFiles/bilateral_filter.dir/cmake_device_link.o 93c2a1140a654a6e +3182 3375 1773564741807173448 test_correctness 3a064eb69ab0c5b0 +3183 3379 1773564741807173448 test_performance f44ee17220362917 +3345 3435 1773564741971171992 bilateral_filter 507a6e0a69813547 diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeCache.txt b/08_bilateral_filter/MLRichard/build/conda-release/CMakeCache.txt new file mode 100644 index 0000000..1aa87d0 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeCache.txt @@ -0,0 +1,438 @@ +# This is the CMakeCache file. +# For build in directory: /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release +# It was generated by CMake: /home/richard/miniconda3/envs/bilateral-cuda124/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 +######################## + +//Build the testing tree. +BUILD_TESTING:BOOL=ON + +//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=Release + +//CUDA architectures +CMAKE_CUDA_ARCHITECTURES:STRING=52 + +//CUDA compiler +CMAKE_CUDA_COMPILER:FILEPATH=/home/richard/miniconda3/envs/bilateral-cuda124/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-11 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-11 + +//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 build database during the build. +CMAKE_EXPORT_BUILD_DATABASE:BOOL= + +//No help, variable specified on the command line. +CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON + +//Value Computed by CMake. +CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/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 + +//Program used to build from build.ninja files. +CMAKE_MAKE_PROGRAM:FILEPATH=/home/richard/miniconda3/envs/bilateral-cuda124/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/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//No help, variable specified on the command line. +CMAKE_PREFIX_PATH:UNINITIALIZED=/home/richard/miniconda3/envs/bilateral-cuda124 + +//Value Computed by CMake +CMAKE_PROJECT_COMPAT_VERSION:STATIC= + +//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=bilateral_filter + +//Value Computed by CMake +CMAKE_PROJECT_SPDX_LICENSE:STATIC= + +//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 archiver during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the archiver during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the archiver during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the archiver during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the archiver 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 the coverage program that CTest uses for performing coverage +// inspection +COVERAGE_COMMAND:FILEPATH=/usr/bin/gcov + +//Extra command line flags to pass to the coverage tool +COVERAGE_EXTRA_FLAGS:STRING=-l + +//How many times to retry timed-out CTest submissions. +CTEST_SUBMIT_RETRY_COUNT:STRING=3 + +//How long to wait between timed-out CTest submissions. +CTEST_SUBMIT_RETRY_DELAY:STRING=5 + +//No help, variable specified on the command line. +CUDAToolkit_ROOT:UNINITIALIZED=/home/richard/miniconda3/envs/bilateral-cuda124 + +//Maximum time allowed before CTest will kill the test. +DART_TESTING_TIMEOUT:STRING=1500 + +//Command to build the project +MAKECOMMAND:STRING=/home/richard/miniconda3/envs/bilateral-cuda124/bin/cmake --build . --config "${CTEST_CONFIGURATION_TYPE}" + +//Path to the memory checking command, used for memory error detection. +MEMORYCHECK_COMMAND:FILEPATH=/home/richard/miniconda3/envs/bilateral-cuda124/bin/compute-sanitizer + +//File that contains suppressions for the memory checker +MEMORYCHECK_SUPPRESSIONS_FILE:FILEPATH= + +//No help, variable specified on the command line. +OpenCV_DIR:UNINITIALIZED=/home/richard/miniconda3/envs/bilateral-cuda124/lib/cmake/opencv4 + +//Name of the computer/site where compile is being run +SITE:STRING=Desktop + +//Value Computed by CMake +bilateral_filter_BINARY_DIR:STATIC=/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release + +//Value Computed by CMake +bilateral_filter_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +bilateral_filter_SOURCE_DIR:STATIC=/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard + + +######################## +# 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/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release +//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=2 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=3 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/richard/miniconda3/envs/bilateral-cuda124/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/richard/miniconda3/envs/bilateral-cuda124/bin/cpack +//ADVANCED property for variable: CMAKE_CTEST_COMMAND +CMAKE_CTEST_COMMAND-ADVANCED:INTERNAL=1 +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/richard/miniconda3/envs/bilateral-cuda124/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=/home/richard/miniconda3/envs/bilateral-cuda124/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= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//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=/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2 +//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: COVERAGE_COMMAND +COVERAGE_COMMAND-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: COVERAGE_EXTRA_FLAGS +COVERAGE_EXTRA_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CTEST_SUBMIT_RETRY_COUNT +CTEST_SUBMIT_RETRY_COUNT-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CTEST_SUBMIT_RETRY_DELAY +CTEST_SUBMIT_RETRY_DELAY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: DART_TESTING_TIMEOUT +DART_TESTING_TIMEOUT-ADVANCED:INTERNAL=1 +//Details about finding OpenCV +FIND_PACKAGE_MESSAGE_DETAILS_OpenCV:INTERNAL=[/home/richard/miniconda3/envs/bilateral-cuda124][v4.13.0()] +//ADVANCED property for variable: MAKECOMMAND +MAKECOMMAND-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MEMORYCHECK_COMMAND +MEMORYCHECK_COMMAND-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MEMORYCHECK_SUPPRESSIONS_FILE +MEMORYCHECK_SUPPRESSIONS_FILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: SITE +SITE-ADVANCED:INTERNAL=1 + diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeCUDACompiler.cmake b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeCUDACompiler.cmake new file mode 100644 index 0000000..4e368a9 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeCUDACompiler.cmake @@ -0,0 +1,90 @@ +set(CMAKE_CUDA_COMPILER "/home/richard/miniconda3/envs/bilateral-cuda124/bin/nvcc") +set(CMAKE_CUDA_HOST_COMPILER "") +set(CMAKE_CUDA_HOST_LINK_LAUNCHER "/usr/bin/g++") +set(CMAKE_CUDA_COMPILER_ID "NVIDIA") +set(CMAKE_CUDA_COMPILER_VERSION "12.4.131") +set(CMAKE_CUDA_HOST_COMPILER_ID "GNU") +set(CMAKE_CUDA_HOST_COMPILER_VERSION "11.4.0") +set(CMAKE_CUDA_DEVICE_LINKER "/home/richard/miniconda3/envs/bilateral-cuda124/bin/nvlink") +set(CMAKE_CUDA_FATBINARY "/home/richard/miniconda3/envs/bilateral-cuda124/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 "11.4") +set(CMAKE_CUDA_COMPILER_ARCHITECTURE_ID "x86_64") + + + +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 "x86_64-linux-gnu") + +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 "x86_64-linux-gnu") +endif() + +set(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "/home/richard/miniconda3/envs/bilateral-cuda124") +set(CMAKE_CUDA_COMPILER_TOOLKIT_LIBRARY_ROOT "/home/richard/miniconda3/envs/bilateral-cuda124") +set(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION "12.4.131") +set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "/home/richard/miniconda3/envs/bilateral-cuda124") + +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") +set(CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR "50-real;60-real;70-real;80-real;90") +set(CMAKE_CUDA_ARCHITECTURES_NATIVE "89-real") + +set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "/home/richard/miniconda3/envs/bilateral-cuda124/include") + +set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "") +set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs;/home/richard/miniconda3/envs/bilateral-cuda124/lib") +set(CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") + +set(CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/11;/usr/include/x86_64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES "/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs;/home/richard/miniconda3/envs/bilateral-cuda124/lib;/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/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.38) +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/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeCXXCompiler.cmake b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..4633856 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeCXXCompiler.cmake @@ -0,0 +1,104 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "11.4.0") +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 "23") +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") +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 "") + +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_CXX_COMPILER_ARCHITECTURE_ID "x86_64") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-11") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-11") +set(CMAKE_LINKER "/usr/bin/ld") +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.38) +set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU) +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 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 "x86_64-linux-gnu") + +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 "x86_64-linux-gnu") +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 "/home/richard/miniconda3/envs/bilateral-cuda124/include;/usr/include/c++/11;/usr/include/x86_64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/richard/miniconda3/envs/bilateral-cuda124/lib;/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") +set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "") + +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)") + + + diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeDetermineCompilerABI_CUDA.bin b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeDetermineCompilerABI_CUDA.bin new file mode 100755 index 0000000..aea1993 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeDetermineCompilerABI_CUDA.bin differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeDetermineCompilerABI_CXX.bin b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000..0d2fe74 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeSystem.cmake b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeSystem.cmake new file mode 100644 index 0000000..2f7ed46 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-6.6.87.2-microsoft-standard-WSL2") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "6.6.87.2-microsoft-standard-WSL2") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-6.6.87.2-microsoft-standard-WSL2") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "6.6.87.2-microsoft-standard-WSL2") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/CMakeCUDACompilerId.cu b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/CMakeCUDACompilerId.cu new file mode 100644 index 0000000..e53cca4 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/CMakeCUDACompilerId.cu @@ -0,0 +1,964 @@ +#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(__RENESAS__) +# define HOST_COMPILER_ID "Renesas" +/* __RENESAS_VERSION__ = 0xVVRRPP00 */ +# define HOST_COMPILER_VERSION_MAJOR HEX(__RENESAS_VERSION__ >> 24 & 0xFF) +# define HOST_COMPILER_VERSION_MINOR HEX(__RENESAS_VERSION__ >> 16 & 0xFF) +# define HOST_COMPILER_VERSION_PATCH HEX(__RENESAS_VERSION__ >> 8 & 0xFF) + +#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 + +#elif defined(__DCC__) && defined(_DIAB_TOOL) +# define HOST_COMPILER_ID "Diab" + # define HOST_COMPILER_VERSION_MAJOR DEC(__VERSION_MAJOR_NUMBER__) + # define HOST_COMPILER_VERSION_MINOR DEC(__VERSION_MINOR_NUMBER__) + # define HOST_COMPILER_VERSION_PATCH DEC(__VERSION_ARCH_FEATURE_NUMBER__) + # define HOST_COMPILER_VERSION_TWEAK DEC(__VERSION_BUG_FIX_NUMBER__) + + + +#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 + +#elif defined(__RENESAS__) +# if defined(__CCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__CCRL__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__CCRH__) +# define ARCHITECTURE_ID "RH850" + +# 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/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/a.out b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/a.out new file mode 100755 index 0000000..6d8a1e0 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/a.out differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp1.ii b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp1.ii new file mode 100644 index 0000000..71886f7 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp1.ii @@ -0,0 +1,34563 @@ +# 0 "CMakeCUDACompilerId.cu" +# 0 "" +# 0 "" +# 1 "/usr/include/stdc-predef.h" 1 3 4 +# 0 "" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 1 +# 61 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +#pragma GCC diagnostic push + + +#pragma GCC diagnostic ignored "-Wunused-function" +# 82 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_config.h" 1 +# 218 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_config.h" +# 1 "/usr/include/features.h" 1 3 4 +# 392 "/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/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 21 "/usr/include/features-time64.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 1 3 4 +# 19 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 20 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 2 3 4 +# 22 "/usr/include/features-time64.h" 2 3 4 +# 393 "/usr/include/features.h" 2 3 4 +# 486 "/usr/include/features.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4 +# 559 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 560 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 +# 561 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 +# 487 "/usr/include/features.h" 2 3 4 +# 510 "/usr/include/features.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4 +# 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4 +# 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4 +# 511 "/usr/include/features.h" 2 3 4 +# 219 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_config.h" 2 +# 83 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 + + + + + + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 56 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_types.h" 1 +# 59 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_types.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 64 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" +# 1 "/usr/include/ctype.h" 1 3 4 +# 26 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 1 3 4 +# 19 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 20 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 2 3 4 +# 29 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 + + + +# 31 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4 +# 142 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/time64.h" 1 3 4 +# 143 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/endian.h" 1 3 4 +# 35 "/usr/include/x86_64-linux-gnu/bits/endian.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/endianness.h" 1 3 4 +# 36 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/types/locale_t.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 2 +# 60 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_types.h" 2 +# 68 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_types.h" + +# 68 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_types.h" +enum __attribute__((device_builtin)) cudaRoundMode +{ + cudaRoundNearest, + cudaRoundZero, + cudaRoundPosInf, + cudaRoundMinInf +}; +# 57 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 2 + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" 1 +# 59 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 60 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" 1 +# 65 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 66 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" 2 +# 104 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" 2 +# 83 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h" 1 3 4 + + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h" 1 3 4 +# 203 "/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h" 3 4 +# 1 "/usr/include/limits.h" 1 3 4 +# 26 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 +# 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4 +# 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4 +# 1 "/usr/include/linux/limits.h" 1 3 4 +# 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4 +# 81 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h" 3 4 + +# 23 "/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h" 3 4 +extern "C" { +extern long int __sysconf (int __name) noexcept (true); +} +# 82 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4 +# 162 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 +# 196 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4 +# 200 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 1 3 4 +# 64 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/uio_lim.h" 1 3 4 +# 65 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 2 3 4 +# 204 "/usr/include/limits.h" 2 3 4 +# 204 "/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h" 2 3 4 +# 8 "/usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h" 2 3 4 +# 35 "/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h" 2 3 4 +# 84 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" 2 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 1 3 4 +# 143 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 3 4 +typedef long int ptrdiff_t; +# 209 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 3 4 +typedef long unsigned int size_t; +# 415 "/usr/lib/gcc/x86_64-linux-gnu/11/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)))); +# 426 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 3 4 +} max_align_t; + + + + + + + typedef decltype(nullptr) nullptr_t; +# 85 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" 2 +# 205 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + +# 205 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorAddressOfConstant = 22, +# 345 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorTextureFetchFailed = 23, +# 354 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorTextureNotBound = 24, +# 363 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorSynchronizationError = 25, + + + + + cudaErrorInvalidFilterSetting = 26, + + + + + + cudaErrorInvalidNormSetting = 27, + + + + + + + + cudaErrorMixedDeviceExecution = 28, + + + + + + + + cudaErrorNotYetImplemented = 31, +# 399 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorMemoryValueTooLarge = 32, + + + + + + cudaErrorStubLibrary = 34, + + + + + + + cudaErrorInsufficientDriver = 35, + + + + + + + cudaErrorCallRequiresNewerDriver = 36, + + + + + + cudaErrorInvalidSurface = 37, + + + + + + cudaErrorDuplicateVariableName = 43, + + + + + + cudaErrorDuplicateTextureName = 44, + + + + + + cudaErrorDuplicateSurfaceName = 45, +# 453 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorDevicesUnavailable = 46, +# 466 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorIncompatibleDriverContext = 49, + + + + + + cudaErrorMissingConfiguration = 52, +# 481 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorPriorLaunchFailure = 53, + + + + + + cudaErrorLaunchMaxDepthExceeded = 65, + + + + + + + + cudaErrorLaunchFileScopedTex = 66, + + + + + + + + cudaErrorLaunchFileScopedSurf = 67, +# 519 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorSyncDepthExceeded = 68, +# 531 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorLaunchPendingCountExceeded = 69, + + + + + + cudaErrorInvalidDeviceFunction = 98, + + + + + + cudaErrorNoDevice = 100, + + + + + + + cudaErrorInvalidDevice = 101, + + + + + cudaErrorDeviceNotLicensed = 102, +# 564 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorSoftwareValidityNotEstablished = 103, + + + + + cudaErrorStartupFailure = 127, + + + + + cudaErrorInvalidKernelImage = 200, +# 584 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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, + + + + + cudaErrorInvalidSource = 300, + + + + + cudaErrorFileNotFound = 301, + + + + + cudaErrorSharedObjectSymbolNotFound = 302, + + + + + cudaErrorSharedObjectInitFailed = 303, + + + + + cudaErrorOperatingSystem = 304, + + + + + + + cudaErrorInvalidResourceHandle = 400, + + + + + + cudaErrorIllegalState = 401, + + + + + + + + cudaErrorLossyQuery = 402, + + + + + + + cudaErrorSymbolNotFound = 500, + + + + + + + + cudaErrorNotReady = 600, + + + + + + + + cudaErrorIllegalAddress = 700, +# 786 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorLaunchOutOfResources = 701, +# 797 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorLaunchTimeout = 702, + + + + + + cudaErrorLaunchIncompatibleTexturing = 703, + + + + + + + cudaErrorPeerAccessAlreadyEnabled = 704, + + + + + + + cudaErrorPeerAccessNotEnabled = 705, +# 830 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorSetOnActiveProcess = 708, + + + + + + + cudaErrorContextIsDestroyed = 709, + + + + + + + cudaErrorAssert = 710, + + + + + + + cudaErrorTooManyPeers = 711, + + + + + + cudaErrorHostMemoryAlreadyRegistered = 712, + + + + + + cudaErrorHostMemoryNotRegistered = 713, +# 872 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorHardwareStackError = 714, + + + + + + + + cudaErrorIllegalInstruction = 715, +# 889 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorMisalignedAddress = 716, +# 900 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorInvalidAddressSpace = 717, + + + + + + + + cudaErrorInvalidPc = 718, +# 919 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorLaunchFailure = 719, +# 928 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorCooperativeLaunchTooLarge = 720, + + + + + cudaErrorNotPermitted = 800, + + + + + + cudaErrorNotSupported = 801, +# 948 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorSystemNotReady = 802, + + + + + + + cudaErrorSystemDriverMismatch = 803, +# 964 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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, +# 1080 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorExternalDevice = 911, + + + + + + cudaErrorInvalidClusterSize = 912, + + + + + 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 +}; + + + + +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; +# 1184 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +}; +# 1353 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +struct __attribute__((device_builtin)) cudaAccessPolicyWindow { + void *base_ptr; + size_t num_bytes; + float hitRatio; + enum cudaAccessProperty hitProp; + enum cudaAccessProperty missProp; +}; +# 1371 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 1603 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + int device; + + + + + + void *devicePointer; +# 1618 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 1690 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + int preferredShmemCarveout; + + + + + + int clusterDimMustBeSet; +# 1707 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + int requiredClusterWidth; + int requiredClusterHeight; + int requiredClusterDepth; + + + + + + int clusterSchedulingPolicyPreference; +# 1737 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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, + cudaDevAttrMax +}; + + + + +enum __attribute__((device_builtin)) cudaMemPoolAttr +{ +# 2027 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaMemPoolReuseFollowEventDependencies = 0x1, + + + + + + + cudaMemPoolReuseAllowOpportunistic = 0x2, + + + + + + + + cudaMemPoolReuseAllowInternalDependencies = 0x3, +# 2053 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +}; + + + + +struct __attribute__((device_builtin)) cudaMemPoolProps { + enum cudaMemAllocationType allocType; + enum cudaMemAllocationHandleType handleTypes; + struct cudaMemLocation location; + + + + + + + void *win32SecurityAttributes; + size_t maxSize; + unsigned char reserved[56]; +}; + + + + +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)) 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 reserved2[2]; + int reserved1[1]; + int reserved[60]; +}; +# 2372 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +}; +# 2471 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +struct __attribute__((device_builtin)) cudaExternalMemoryHandleDesc { + + + + enum cudaExternalMemoryHandleType type; + union { + + + + + + int fd; +# 2498 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 2648 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 2712 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 2761 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 2807 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 2858 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + unsigned int flags; + unsigned int reserved[16]; +}; +# 2871 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; + + + + +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, +}; + + + + +struct __attribute__((device_builtin)) cudaConditionalNodeParams { + cudaGraphConditionalHandle handle; + + + enum cudaGraphConditionalNodeType type; + unsigned int size; + cudaGraph_t *phGraph_out; +# 3052 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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, +# 3087 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 3166 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + unsigned char to_port; + + + + + + + unsigned char type; + + + unsigned char reserved[5]; + +} cudaGraphEdgeData; +# 3199 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +} 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 + +}; +# 3365 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +typedef __attribute__((device_builtin)) enum cudaLaunchMemSyncDomain { + cudaLaunchMemSyncDomainDefault = 0, + cudaLaunchMemSyncDomainRemote = 1 +} cudaLaunchMemSyncDomain; +# 3381 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 3411 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + , cudaLaunchAttributeProgrammaticEvent = 7 +# 3437 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + , cudaLaunchAttributePriority = 8 + + , cudaLaunchAttributeMemSyncDomainMap = 9 + + , cudaLaunchAttributeMemSyncDomain = 10 + + , cudaLaunchAttributeLaunchCompletionEvent = 12 +# 3465 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + , cudaLaunchAttributeDeviceUpdatableKernelNode = 13 +# 3493 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +} cudaLaunchAttributeID; + + + + +typedef __attribute__((device_builtin)) union cudaLaunchAttributeValue { + char pad[64]; + struct cudaAccessPolicyWindow accessPolicyWindow; + int cooperative; + + enum cudaSynchronizationPolicy syncPolicy; +# 3517 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + struct { + unsigned int x; + unsigned int y; + unsigned int z; + } clusterDim; + enum cudaClusterSchedulingPolicy clusterSchedulingPolicyPreference; + + + int programmaticStreamSerializationAllowed; + + struct { + cudaEvent_t event; + int flags; + + int triggerAtBlockStart; + } programmaticEvent; + int priority; + cudaLaunchMemSyncDomainMap memSyncDomainMap; + + + cudaLaunchMemSyncDomain memSyncDomain; + + struct { + cudaEvent_t event; + int flags; + + } launchCompletionEvent; + + struct { + int deviceUpdatable; + cudaGraphDeviceNode_t devNode; + } deviceUpdatableKernelNode; +} 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; +# 3593 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 2 + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/surface_types.h" 1 +# 86 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/texture_types.h" 1 +# 86 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 2 +# 91 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/library_types.h" 1 +# 57 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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_E5M2 = 29, +} cudaDataType; + + +typedef enum libraryPropertyType_t +{ + MAJOR_VERSION, + MINOR_VERSION, + PATCH_LEVEL +} libraryPropertyType; +# 92 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/channel_descriptor.h" 1 +# 61 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/channel_descriptor.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" 1 +# 148 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 149 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 151 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" 2 + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" 1 +# 54 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +# 1 "/usr/include/c++/11/stdlib.h" 1 3 +# 36 "/usr/include/c++/11/stdlib.h" 3 +# 1 "/usr/include/c++/11/cstdlib" 1 3 +# 39 "/usr/include/c++/11/cstdlib" 3 + +# 40 "/usr/include/c++/11/cstdlib" 3 + +# 1 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 1 3 +# 278 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 3 + +# 278 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 3 +namespace std +{ + typedef long unsigned int size_t; + typedef long int ptrdiff_t; + + + typedef decltype(nullptr) nullptr_t; + +} +# 300 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 3 +namespace std +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +namespace __gnu_cxx +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +# 586 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 3 +# 1 "/usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h" 1 3 +# 587 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 2 3 + + +# 1 "/usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h" 1 3 +# 590 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 2 3 +# 777 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 3 +# 1 "/usr/include/c++/11/pstl/pstl_config.h" 1 3 +# 778 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 2 3 +# 42 "/usr/include/c++/11/cstdlib" 2 3 +# 75 "/usr/include/c++/11/cstdlib" 3 +# 1 "/usr/include/stdlib.h" 1 3 4 +# 26 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/stdlib.h" 2 3 4 + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 1 3 4 +# 33 "/usr/include/stdlib.h" 2 3 4 + +extern "C" { + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4 +# 41 "/usr/include/stdlib.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4 +# 42 "/usr/include/stdlib.h" 2 3 4 +# 56 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 1 3 4 +# 74 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 +typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); +# 86 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 +typedef __float128 _Float128; +# 119 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 +# 25 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 2 3 4 +# 214 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef float _Float32; +# 251 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef double _Float64; +# 268 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef double _Float32x; +# 285 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef long double _Float64x; +# 120 "/usr/include/x86_64-linux-gnu/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 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))); +# 233 "/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))); +# 275 "/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 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))); +# 317 "/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))); +# 386 "/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/x86_64-linux-gnu/sys/types.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/types/clock_t.h" 1 3 4 + + + + + + +typedef __clock_t clock_t; +# 127 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" 1 3 4 + + + + + + +typedef __clockid_t clockid_t; +# 129 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" 1 3 4 +# 10 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" 3 4 +typedef __time_t time_t; +# 130 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" 1 3 4 + + + + + + +typedef __timer_t timer_t; +# 131 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + + +typedef __useconds_t useconds_t; + + + +typedef __suseconds_t suseconds_t; + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 1 3 4 +# 145 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + + +typedef unsigned long int ulong; +typedef unsigned short int ushort; +typedef unsigned int uint; + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/types.h" 3 4 +# 1 "/usr/include/endian.h" 1 3 4 +# 35 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4 +# 33 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/uintn-identity.h" 1 3 4 +# 32 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/types.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4 +# 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4 +# 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 1 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/types/sigset_t.h" 2 3 4 + + +typedef __sigset_t sigset_t; +# 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" 1 3 4 + + + + + + + +struct timeval +{ + + + + + __time_t tv_sec; + __suseconds_t tv_usec; + +}; +# 38 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 1 3 4 +# 11 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 3 4 +struct timespec +{ + + + + __time_t tv_sec; + + + + + __syscall_slong_t tv_nsec; +# 31 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 3 4 +}; +# 40 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 +# 49 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +typedef long int __fd_mask; +# 59 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/select.h" 3 4 +extern "C" { +# 102 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/select.h" 3 4 +} +# 180 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/types.h" 3 4 +typedef __blkcnt64_t blkcnt64_t; +typedef __fsblkcnt64_t fsblkcnt64_t; +typedef __fsfilcnt64_t fsfilcnt64_t; + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 1 3 4 +# 44 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 1 3 4 +# 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 2 3 4 +# 45 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 + +# 1 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h" 1 3 4 +# 25 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/struct_mutex.h" 3 4 +}; +# 77 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 +# 89 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/struct_rwlock.h" 3 4 +}; +# 90 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 + + + + +struct __pthread_cond_s +{ + __atomic_wide_counter __wseq; + __atomic_wide_counter __g1_start; + unsigned int __g_refs[2] ; + unsigned int __g_size[2]; + unsigned int __g1_orig_size; + unsigned int __wrefs; + unsigned int __g_signals[2]; +}; + +typedef unsigned int __tss_t; +typedef unsigned long int __thrd_t; + +typedef struct +{ + int __data ; +} __once_flag; +# 24 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/types.h" 2 3 4 + + +} +# 396 "/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 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-linux-gnu/11/include/stddef.h" 1 3 4 +# 25 "/usr/include/alloca.h" 2 3 4 + +extern "C" { + + + + + +extern void *alloca (size_t __size) noexcept (true); + + + + + +} +# 575 "/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__)); + + + +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))); +# 617 "/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); +# 682 "/usr/include/stdlib.h" 3 4 +extern char *mktemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))); +# 695 "/usr/include/stdlib.h" 3 4 +extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 705 "/usr/include/stdlib.h" 3 4 +extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 717 "/usr/include/stdlib.h" 3 4 +extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; +# 727 "/usr/include/stdlib.h" 3 4 +extern int mkstemps64 (char *__template, int __suffixlen) + __attribute__ ((__nonnull__ (1))) ; +# 738 "/usr/include/stdlib.h" 3 4 +extern char *mkdtemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))) ; +# 749 "/usr/include/stdlib.h" 3 4 +extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 759 "/usr/include/stdlib.h" 3 4 +extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 769 "/usr/include/stdlib.h" 3 4 +extern int mkostemps (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 781 "/usr/include/stdlib.h" 3 4 +extern int mkostemps64 (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 791 "/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))) ; +# 808 "/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__)) ; +# 880 "/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))) ; +# 967 "/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))); +# 1023 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4 +# 1024 "/usr/include/stdlib.h" 2 3 4 +# 1035 "/usr/include/stdlib.h" 3 4 +} +# 76 "/usr/include/c++/11/cstdlib" 2 3 + +# 1 "/usr/include/c++/11/bits/std_abs.h" 1 3 +# 33 "/usr/include/c++/11/bits/std_abs.h" 3 + +# 34 "/usr/include/c++/11/bits/std_abs.h" 3 +# 46 "/usr/include/c++/11/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/include/c++/11/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); } + + + + inline constexpr __int128 + abs(__int128 __x) { return __x >= 0 ? __x : -__x; } +# 107 "/usr/include/c++/11/bits/std_abs.h" 3 + +} +} +# 78 "/usr/include/c++/11/cstdlib" 2 3 +# 121 "/usr/include/c++/11/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) { return ldiv(__i, __j); } + + + + +} +# 195 "/usr/include/c++/11/cstdlib" 3 +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + using ::lldiv_t; + + + + + + using ::_Exit; + + + + 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; +# 227 "/usr/include/c++/11/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; +} + + + +} +# 37 "/usr/include/c++/11/stdlib.h" 2 3 + +using std::abort; +using std::atexit; +using std::exit; + + + using std::at_quick_exit; + + + using std::quick_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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" 2 +# 72 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" + +# 72 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +extern "C" { + + +struct cudaFuncAttributes; +# 109 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +} + + + + +} +# 169 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 170 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" 2 +# 180 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +extern "C" +{ + + + + + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaDeviceSynchronizeDeprecationAvoidance(void); +# 236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 301 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +} +# 336 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 364 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetEnabled(cudaGraphDeviceNode_t node, bool enable); +# 391 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetGridDim(cudaGraphDeviceNode_t node, dim3 gridDim); +# 420 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeUpdatesApply(const cudaGraphKernelNodeUpdate *updates, size_t updateCount); +# 438 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) void cudaTriggerProgrammaticLaunchCompletion(void) +{ + asm volatile("griddepcontrol.launch_dependents;":::); +} +# 454 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) void cudaGridDependencySynchronize(void) +{ + asm volatile("griddepcontrol.wait;":::"memory"); +} +# 466 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); + + + + + + + +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); +} +# 695 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 781 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); + } +# 843 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 876 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" 2 +# 283 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern "C" { +# 323 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceReset(void); +# 345 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceSynchronize(void); +# 431 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetLimit(enum cudaLimit limit, size_t value); +# 467 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetLimit(size_t *pValue, enum cudaLimit limit); +# 490 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetTexture1DLinearMaxWidth(size_t *maxWidthInElements, const struct cudaChannelFormatDesc *fmtDesc, int device); +# 524 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 561 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority); +# 605 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetCacheConfig(enum cudaFuncCache cacheConfig); +# 632 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetByPCIBusId(int *device, const char *pciBusId); +# 662 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetPCIBusId(char *pciBusId, int len, int device); +# 712 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcGetEventHandle(cudaIpcEventHandle_t *handle, cudaEvent_t event); +# 755 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcOpenEventHandle(cudaEvent_t *event, cudaIpcEventHandle_t handle); +# 799 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcGetMemHandle(cudaIpcMemHandle_t *handle, void *devPtr); +# 865 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcOpenMemHandle(void **devPtr, cudaIpcMemHandle_t handle, unsigned int flags); +# 903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcCloseMemHandle(void *devPtr); +# 935 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceFlushGPUDirectRDMAWrites(enum cudaFlushGPUDirectRDMAWritesTarget target, enum cudaFlushGPUDirectRDMAWritesScope scope); +# 973 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceRegisterAsyncNotification(int device, cudaAsyncCallback callbackFunc, void* userData, cudaAsyncCallbackHandle_t* callback); +# 996 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceUnregisterAsyncNotification(int device, cudaAsyncCallbackHandle_t callback); +# 1043 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); +# 1089 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaDeviceSetSharedMemConfig(enum cudaSharedMemConfig config); +# 1130 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadExit(void); +# 1156 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSynchronize(void); +# 1205 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetLimit(enum cudaLimit limit, size_t value); +# 1238 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetLimit(size_t *pValue, enum cudaLimit limit); +# 1274 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 1321 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetCacheConfig(enum cudaFuncCache cacheConfig); +# 1386 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetLastError(void); +# 1437 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaPeekAtLastError(void); +# 1453 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorName(cudaError_t error); +# 1469 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorString(cudaError_t error); +# 1498 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceCount(int *count); +# 1803 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceProperties_v2(struct cudaDeviceProp *prop, int device); +# 2005 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +# 2023 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetDefaultMemPool(cudaMemPool_t *memPool, int device); +# 2047 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetMemPool(int device, cudaMemPool_t memPool); +# 2067 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetMemPool(cudaMemPool_t *memPool, int device); +# 2129 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetNvSciSyncAttributes(void *nvSciSyncAttrList, int device, int flags); +# 2169 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetP2PAttribute(int *value, enum cudaDeviceP2PAttr attr, int srcDevice, int dstDevice); +# 2191 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaChooseDevice(int *device, const struct cudaDeviceProp *prop); +# 2220 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaInitDevice(int device, unsigned int deviceFlags, unsigned int flags); +# 2266 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetDevice(int device); +# 2288 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDevice(int *device); +# 2319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetValidDevices(int *device_arr, int len); +# 2389 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetDeviceFlags( unsigned int flags ); +# 2434 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDeviceFlags( unsigned int *flags ); +# 2474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamCreate(cudaStream_t *pStream); +# 2506 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +# 2554 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithPriority(cudaStream_t *pStream, unsigned int flags, int priority); +# 2581 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetPriority(cudaStream_t hStream, int *priority); +# 2606 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetFlags(cudaStream_t hStream, unsigned int *flags); +# 2643 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetId(cudaStream_t hStream, unsigned long long *streamId); +# 2658 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCtxResetPersistingL2Cache(void); +# 2678 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCopyAttributes(cudaStream_t dst, cudaStream_t src); +# 2699 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 2723 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamSetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 2757 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamDestroy(cudaStream_t stream); +# 2788 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 2863 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamAddCallback(cudaStream_t stream, + cudaStreamCallback_t callback, void *userData, unsigned int flags); +# 2887 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamSynchronize(cudaStream_t stream); +# 2912 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamQuery(cudaStream_t stream); +# 2996 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3035 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamBeginCapture(cudaStream_t stream, enum cudaStreamCaptureMode mode); +# 3076 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3127 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaThreadExchangeStreamCaptureMode(enum cudaStreamCaptureMode *mode); +# 3156 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamEndCapture(cudaStream_t stream, cudaGraph_t *pGraph); +# 3194 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamIsCapturing(cudaStream_t stream, enum cudaStreamCaptureStatus *pCaptureStatus); +# 3243 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3302 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3342 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamUpdateCaptureDependencies(cudaStream_t stream, cudaGraphNode_t *dependencies, size_t numDependencies, unsigned int flags = 0); +# 3377 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3414 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventCreate(cudaEvent_t *event); +# 3451 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +# 3492 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream = 0); +# 3540 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3573 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventQuery(cudaEvent_t event); +# 3604 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventSynchronize(cudaEvent_t event); +# 3634 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventDestroy(cudaEvent_t event); +# 3679 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventElapsedTime(float *ms, cudaEvent_t start, cudaEvent_t end); +# 3860 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaImportExternalMemory(cudaExternalMemory_t *extMem_out, const struct cudaExternalMemoryHandleDesc *memHandleDesc); +# 3915 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedBuffer(void **devPtr, cudaExternalMemory_t extMem, const struct cudaExternalMemoryBufferDesc *bufferDesc); +# 3975 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedMipmappedArray(cudaMipmappedArray_t *mipmap, cudaExternalMemory_t extMem, const struct cudaExternalMemoryMipmappedArrayDesc *mipmapDesc); +# 3999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyExternalMemory(cudaExternalMemory_t extMem); +# 4153 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaImportExternalSemaphore(cudaExternalSemaphore_t *extSem_out, const struct cudaExternalSemaphoreHandleDesc *semHandleDesc); +# 4236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 4312 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 4335 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyExternalSemaphore(cudaExternalSemaphore_t extSem); +# 4402 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 4464 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchKernelExC(const cudaLaunchConfig_t *config, const void *func, void **args); +# 4521 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 4622 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaLaunchCooperativeKernelMultiDevice(struct cudaLaunchParams *launchParamsList, unsigned int numDevices, unsigned int flags = 0); +# 4667 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFuncSetCacheConfig(const void *func, enum cudaFuncCache cacheConfig); +# 4700 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +# 4737 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncSetAttribute(const void *func, enum cudaFuncAttribute attr, int value); +# 4761 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetName(const char **name, const void *func); +# 4783 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 4807 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForDevice(double *d); +# 4831 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForHost(double *d); +# 4897 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchHostFunc(cudaStream_t stream, cudaHostFn_t fn, void *userData); +# 4971 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig(const void *func, enum cudaSharedMemConfig config); +# 5027 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize); +# 5056 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock(size_t *dynamicSmemSize, const void *func, int numBlocks, int blockSize); +# 5101 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 5136 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxPotentialClusterSize(int *clusterSize, const void *func, const cudaLaunchConfig_t *launchConfig); +# 5175 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveClusters(int *numClusters, const void *func, const cudaLaunchConfig_t *launchConfig); +# 5295 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMallocManaged(void **devPtr, size_t size, unsigned int flags = 0x01); +# 5328 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(void **devPtr, size_t size); +# 5365 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocHost(void **ptr, size_t size); +# 5408 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocPitch(void **devPtr, size_t *pitch, size_t width, size_t height); +# 5460 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 5498 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFree(void *devPtr); +# 5521 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeHost(void *ptr); +# 5544 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeArray(cudaArray_t array); +# 5567 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeMipmappedArray(cudaMipmappedArray_t mipmappedArray); +# 5633 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostAlloc(void **pHost, size_t size, unsigned int flags); +# 5730 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostRegister(void *ptr, size_t size, unsigned int flags); +# 5753 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostUnregister(void *ptr); +# 5798 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostGetDevicePointer(void **pDevice, void *pHost, unsigned int flags); +# 5820 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostGetFlags(unsigned int *pFlags, void *pHost); +# 5859 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMalloc3D(struct cudaPitchedPtr* pitchedDevPtr, struct cudaExtent extent); +# 6004 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6149 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6182 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetMipmappedArrayLevel(cudaArray_t *levelArray, cudaMipmappedArray_const_t mipmappedArray, unsigned int level); +# 6287 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3D(const struct cudaMemcpy3DParms *p); +# 6319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeer(const struct cudaMemcpy3DPeerParms *p); +# 6437 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream = 0); +# 6464 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeerAsync(const struct cudaMemcpy3DPeerParms *p, cudaStream_t stream = 0); +# 6498 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemGetInfo(size_t *free, size_t *total); +# 6524 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetInfo(struct cudaChannelFormatDesc *desc, struct cudaExtent *extent, unsigned int *flags, cudaArray_t array); +# 6553 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetPlane(cudaArray_t *pPlaneArray, cudaArray_t hArray, unsigned int planeIdx); +# 6576 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaArray_t array, int device); +# 6600 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaMipmappedArray_t mipmap, int device); +# 6628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaArray_t array); +# 6658 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaMipmappedArray_t mipmap); +# 6703 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind); +# 6738 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyPeer(void *dst, int dstDevice, const void *src, int srcDevice, size_t count); +# 6787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6837 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6887 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6934 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6977 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7021 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7078 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7113 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7176 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7234 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7291 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7342 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7393 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7422 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset(void *devPtr, int value, size_t count); +# 7456 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset2D(void *devPtr, size_t pitch, int value, size_t width, size_t height); +# 7502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset3D(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent); +# 7538 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7579 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7632 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7660 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSymbolAddress(void **devPtr, const void *symbol); +# 7687 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSymbolSize(size_t *size, const void *symbol); +# 7757 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync(const void *devPtr, size_t count, int dstDevice, cudaStream_t stream = 0); + +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync_v2(const void *devPtr, size_t count, struct cudaMemLocation location, unsigned int flags, cudaStream_t stream = 0); +# 7873 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemAdvise(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, int device); +# 7996 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemAdvise_v2(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, struct cudaMemLocation location); +# 8078 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8121 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8181 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8223 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8266 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8317 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8367 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8436 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocAsync(void **devPtr, size_t size, cudaStream_t hStream); +# 8462 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeAsync(void *devPtr, cudaStream_t hStream); +# 8487 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolTrimTo(cudaMemPool_t memPool, size_t minBytesToKeep); +# 8531 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolSetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8579 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolGetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8594 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolSetAccess(cudaMemPool_t memPool, const struct cudaMemAccessDesc *descList, size_t count); +# 8607 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolGetAccess(enum cudaMemAccessFlags *flags, cudaMemPool_t memPool, struct cudaMemLocation *location); +# 8645 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolCreate(cudaMemPool_t *memPool, const struct cudaMemPoolProps *poolProps); +# 8667 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolDestroy(cudaMemPool_t memPool); +# 8703 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocFromPoolAsync(void **ptr, size_t size, cudaMemPool_t memPool, cudaStream_t stream); +# 8728 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolExportToShareableHandle( + void *shareableHandle, + cudaMemPool_t memPool, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 8755 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolImportFromShareableHandle( + cudaMemPool_t *memPool, + void *shareableHandle, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 8778 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolExportPointer(struct cudaMemPoolPtrExportData *exportData, void *ptr); +# 8807 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolImportPointer(void **ptr, cudaMemPool_t memPool, struct cudaMemPoolPtrExportData *exportData); +# 8960 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaPointerGetAttributes(struct cudaPointerAttributes *attributes, const void *ptr); +# 9001 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceCanAccessPeer(int *canAccessPeer, int device, int peerDevice); +# 9043 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceEnablePeerAccess(int peerDevice, unsigned int flags); +# 9065 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceDisablePeerAccess(int peerDevice); +# 9129 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsUnregisterResource(cudaGraphicsResource_t resource); +# 9164 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceSetMapFlags(cudaGraphicsResource_t resource, unsigned int flags); +# 9203 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsMapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 9238 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsUnmapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 9270 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedPointer(void **devPtr, size_t *size, cudaGraphicsResource_t resource); +# 9308 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsSubResourceGetMappedArray(cudaArray_t *array, cudaGraphicsResource_t resource, unsigned int arrayIndex, unsigned int mipLevel); +# 9337 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedMipmappedArray(cudaMipmappedArray_t *mipmappedArray, cudaGraphicsResource_t resource); +# 9372 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetChannelDesc(struct cudaChannelFormatDesc *desc, cudaArray_const_t array); +# 9402 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) struct cudaChannelFormatDesc cudaCreateChannelDesc(int x, int y, int z, int w, enum cudaChannelFormatKind f); +# 9626 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 9646 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyTextureObject(cudaTextureObject_t texObject); +# 9666 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaTextureObject_t texObject); +# 9686 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectTextureDesc(struct cudaTextureDesc *pTexDesc, cudaTextureObject_t texObject); +# 9707 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceViewDesc(struct cudaResourceViewDesc *pResViewDesc, cudaTextureObject_t texObject); +# 9752 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCreateSurfaceObject(cudaSurfaceObject_t *pSurfObject, const struct cudaResourceDesc *pResDesc); +# 9772 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroySurfaceObject(cudaSurfaceObject_t surfObject); +# 9791 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSurfaceObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaSurfaceObject_t surfObject); +# 9825 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDriverGetVersion(int *driverVersion); +# 9854 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaRuntimeGetVersion(int *runtimeVersion); +# 9901 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphCreate(cudaGraph_t *pGraph, unsigned int flags); +# 9999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10032 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetParams(cudaGraphNode_t node, struct cudaKernelNodeParams *pNodeParams); +# 10058 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetParams(cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 10078 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeCopyAttributes( + cudaGraphNode_t hSrc, + cudaGraphNode_t hDst); +# 10101 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 10125 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 10176 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10235 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10304 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10372 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeGetParams(cudaGraphNode_t node, struct cudaMemcpy3DParms *pNodeParams); +# 10431 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams(cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 10470 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10516 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10562 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10610 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10633 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeGetParams(cudaGraphNode_t node, struct cudaMemsetParams *pNodeParams); +# 10657 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeSetParams(cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 10699 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10722 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphHostNodeGetParams(cudaGraphNode_t node, struct cudaHostNodeParams *pNodeParams); +# 10746 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphHostNodeSetParams(cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 10787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10814 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphChildGraphNodeGetGraph(cudaGraphNode_t node, cudaGraph_t *pGraph); +# 10852 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddEmptyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies); +# 10896 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10923 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 10951 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 10998 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11025 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 11053 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11103 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11136 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreSignalNodeParams *params_out); +# 11164 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11247 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreWaitNodeParams *params_out); +# 11275 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11353 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11380 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemAllocNodeGetParams(cudaGraphNode_t node, struct cudaMemAllocNodeParams *params_out); +# 11441 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11465 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemFreeNodeGetParams(cudaGraphNode_t node, void *dptr_out); +# 11493 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGraphMemTrim(int device); +# 11530 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11564 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11592 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphClone(cudaGraph_t *pGraphClone, cudaGraph_t originalGraph); +# 11620 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeFindInClone(cudaGraphNode_t *pNode, cudaGraphNode_t originalNode, cudaGraph_t clonedGraph); +# 11651 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetType(cudaGraphNode_t node, enum cudaGraphNodeType *pType); +# 11682 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetNodes(cudaGraph_t graph, cudaGraphNode_t *nodes, size_t *numNodes); +# 11713 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetRootNodes(cudaGraph_t graph, cudaGraphNode_t *pRootNodes, size_t *pNumRootNodes); +# 11747 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetEdges(cudaGraph_t graph, cudaGraphNode_t *from, cudaGraphNode_t *to, size_t *numEdges); +# 11787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11818 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, size_t *pNumDependencies); +# 11855 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies_v2(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, cudaGraphEdgeData *edgeData, size_t *pNumDependencies); +# 11887 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, size_t *pNumDependentNodes); +# 11925 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes_v2(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, cudaGraphEdgeData *edgeData, size_t *pNumDependentNodes); +# 11956 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11988 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12019 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12054 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12084 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDestroyNode(cudaGraphNode_t node); +# 12155 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiate(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12228 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithFlags(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12335 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithParams(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, cudaGraphInstantiateParams *instantiateParams); +# 12360 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecGetFlags(cudaGraphExec_t graphExec, unsigned long long *flags); +# 12419 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecKernelNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 12470 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 12525 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12588 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12649 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12704 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecMemsetNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 12744 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecHostNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 12791 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecChildGraphNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, cudaGraph_t childGraph); +# 12836 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecEventRecordNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 12881 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecEventWaitNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 12929 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresSignalNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 12977 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresWaitNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 13017 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeSetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int isEnabled); +# 13051 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int *isEnabled); +# 13143 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphExecUpdateResultInfo *resultInfo); +# 13168 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphUpload(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13199 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13222 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecDestroy(cudaGraphExec_t graphExec); +# 13243 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDestroy(cudaGraph_t graph); +# 13262 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDebugDotPrint(cudaGraph_t graph, const char *path, unsigned int flags); +# 13298 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 13322 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectRetain(cudaUserObject_t object, unsigned int count = 1); +# 13350 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectRelease(cudaUserObject_t object, unsigned int count = 1); +# 13378 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 13403 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphReleaseUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1); +# 13445 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 13489 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 13518 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeSetParams(cudaGraphNode_t node, struct cudaGraphNodeParams *nodeParams); +# 13567 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecNodeSetParams(cudaGraphExec_t graphExec, cudaGraphNode_t node, struct cudaGraphNodeParams *nodeParams); +# 13593 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 13671 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDriverEntryPoint(const char *symbol, void **funcPtr, unsigned long long flags, enum cudaDriverEntryPointQueryResult *driverStatus = +# 13671 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" 3 4 + __null +# 13671 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + ); + + + + + + + +extern __attribute__((host)) cudaError_t cudaGetExportTable(const void **ppExportTable, const cudaUUID_t *pExportTableId); +# 13858 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetFuncBySymbol(cudaFunction_t* functionPtr, const void* symbolPtr); +# 13874 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetKernel(cudaKernel_t *kernelPtr, const void *entryFuncAddr); +# 14044 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +} +# 62 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/channel_descriptor.h" 2 +# 117 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 389 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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(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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_functions.h" 1 +# 53 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 54 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 55 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_functions.h" 2 +# 79 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 100 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 + + + + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_functions.h" 1 +# 77 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_functions.hpp" 1 +# 73 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_functions.h" 2 +# 106 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 +# 117 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 1 +# 71 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 72 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 73 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 2 +# 85 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +# 1 "/usr/include/string.h" 1 3 4 +# 26 "/usr/include/string.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/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-linux-gnu/11/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-linux-gnu/11/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 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))); +# 539 "/usr/include/string.h" 3 4 +} +# 86 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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-linux-gnu/11/include/stddef.h" 1 3 4 +# 30 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4 +# 73 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/timex.h" 1 3 4 +# 26 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 4 +struct timex +{ +# 58 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/time.h" 2 3 4 + +extern "C" { + + +extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) noexcept (true); +# 90 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 +} +# 34 "/usr/include/time.h" 2 3 4 + + + + + +# 1 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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) + noexcept (true) __attribute__ ((__const__)); + + +extern time_t mktime (struct tm *__tp) noexcept (true); +# 100 "/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); + + + + +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; +# 249 "/usr/include/time.h" 3 4 +extern time_t timegm (struct tm *__tp) noexcept (true); + +extern time_t timelocal (struct tm *__tp) noexcept (true); +# 262 "/usr/include/time.h" 3 4 +extern int dysize (int __year) noexcept (true) __attribute__ ((__const__)); +# 272 "/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); + + +extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) + noexcept (true); +# 311 "/usr/include/time.h" 3 4 +extern int clock_nanosleep (clockid_t __clock_id, int __flags, + const struct timespec *__req, + struct timespec *__rem); +# 326 "/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); +# 364 "/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))); +# 387 "/usr/include/time.h" 3 4 +extern int timespec_getres (struct timespec *__ts, int __base) + noexcept (true); +# 413 "/usr/include/time.h" 3 4 +extern int getdate_err; +# 422 "/usr/include/time.h" 3 4 +extern struct tm *getdate (const char *__string); +# 436 "/usr/include/time.h" 3 4 +extern int getdate_r (const char *__restrict __string, + struct tm *__restrict __resbufp); + + +} +# 87 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 2 + + +# 88 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +extern "C" +{ + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) clock_t clock(void) + + + + +# 95 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 3 4 +noexcept (true) +# 95 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memset(void*, int, size_t) +# 96 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 3 4 + noexcept (true) +# 96 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memcpy(void*, const void*, size_t) +# 97 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 3 4 + noexcept (true) +# 97 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" + ; + +} +# 111 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +# 1 "/usr/include/c++/11/new" 1 3 +# 38 "/usr/include/c++/11/new" 3 + +# 39 "/usr/include/c++/11/new" 3 + + +# 1 "/usr/include/c++/11/bits/exception.h" 1 3 +# 34 "/usr/include/c++/11/bits/exception.h" 3 + +# 35 "/usr/include/c++/11/bits/exception.h" 3 + +#pragma GCC visibility push(default) + + + + +# 40 "/usr/include/c++/11/bits/exception.h" 3 +extern "C++" { + +namespace std +{ +# 61 "/usr/include/c++/11/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; + }; + + + +} + +} + +#pragma GCC visibility pop +# 42 "/usr/include/c++/11/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; + +} +# 126 "/usr/include/c++/11/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; +} +# 230 "/usr/include/c++/11/new" 3 +#pragma GCC visibility pop +# 112 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 2 +# 125 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" + +# 125 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 27 "/usr/include/stdio.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 28 "/usr/include/stdio.h" 2 3 4 + + +# 29 "/usr/include/stdio.h" 3 4 +extern "C" { + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 1 3 4 +# 34 "/usr/include/stdio.h" 2 3 4 + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h" 1 3 4 +# 40 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h" 3 4 +typedef __builtin_va_list __gnuc_va_list; +# 37 "/usr/include/stdio.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h" 1 3 4 + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" 1 3 4 +# 13 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" 3 4 +typedef struct +{ + int __count; + union + { + unsigned int __wch; + char __wchb[4]; + } __value; +} __mbstate_t; +# 6 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h" 2 3 4 + + + + +typedef struct _G_fpos_t +{ + __off_t __pos; + __mbstate_t __state; +} __fpos_t; +# 40 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h" 1 3 4 +# 10 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h" 3 4 +typedef struct _G_fpos64_t +{ + __off64_t __pos; + __mbstate_t __state; +} __fpos64_t; +# 41 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h" 1 3 4 + + + +struct _IO_FILE; +typedef struct _IO_FILE __FILE; +# 42 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/types/struct_FILE.h" 1 3 4 +# 35 "/usr/include/x86_64-linux-gnu/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; + __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; + size_t __pad5; + int _mode; + + char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; +}; +# 44 "/usr/include/stdio.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/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; +# 47 "/usr/include/stdio.h" 2 3 4 + + + + + +typedef __gnuc_va_list va_list; +# 84 "/usr/include/stdio.h" 3 4 +typedef __fpos_t fpos_t; + + + + +typedef __fpos64_t fpos64_t; +# 133 "/usr/include/stdio.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4 +# 134 "/usr/include/stdio.h" 2 3 4 +# 143 "/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); +# 170 "/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); +# 188 "/usr/include/stdio.h" 3 4 +extern FILE *tmpfile (void) + __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ; +# 200 "/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) ; +# 222 "/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); +# 239 "/usr/include/stdio.h" 3 4 +extern int fflush_unlocked (FILE *__stream); +# 249 "/usr/include/stdio.h" 3 4 +extern int fcloseall (void); +# 258 "/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) ; +# 283 "/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) ; + + + + +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))) ; +# 328 "/usr/include/stdio.h" 3 4 +extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) noexcept (true); + + + +extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, + int __modes, size_t __n) noexcept (true); + + + + +extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, + size_t __size) noexcept (true); + + +extern void setlinebuf (FILE *__stream) noexcept (true); + + + + + + + +extern int fprintf (FILE *__restrict __stream, + const char *__restrict __format, ...); + + + + +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); + + + + +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, ...) ; + + + + +extern int scanf (const char *__restrict __format, ...) ; + +extern int sscanf (const char *__restrict __s, + const char *__restrict __format, ...) noexcept (true); +# 434 "/usr/include/stdio.h" 3 4 +extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf") + + ; +extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf") + ; +extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) noexcept (true) __asm__ ("" "__isoc99_sscanf") + + ; +# 459 "/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))) ; + + + + + +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__ ("" "__isoc99_vfscanf") + + + + __attribute__ ((__format__ (__scanf__, 2, 0))) ; +extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf") + + __attribute__ ((__format__ (__scanf__, 1, 0))) ; +extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) noexcept (true) __asm__ ("" "__isoc99_vsscanf") + + + + __attribute__ ((__format__ (__scanf__, 2, 0))); +# 513 "/usr/include/stdio.h" 3 4 +extern int fgetc (FILE *__stream); +extern int getc (FILE *__stream); + + + + + +extern int getchar (void); + + + + + + +extern int getc_unlocked (FILE *__stream); +extern int getchar_unlocked (void); +# 538 "/usr/include/stdio.h" 3 4 +extern int fgetc_unlocked (FILE *__stream); +# 549 "/usr/include/stdio.h" 3 4 +extern int fputc (int __c, FILE *__stream); +extern int putc (int __c, FILE *__stream); + + + + + +extern int putchar (int __c); +# 565 "/usr/include/stdio.h" 3 4 +extern int fputc_unlocked (int __c, FILE *__stream); + + + + + + + +extern int putc_unlocked (int __c, FILE *__stream); +extern int putchar_unlocked (int __c); + + + + + + +extern int getw (FILE *__stream); + + +extern int putw (int __w, FILE *__stream); + + + + + + + +extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) + __attribute__ ((__access__ (__write_only__, 1, 2))); +# 615 "/usr/include/stdio.h" 3 4 +extern char *fgets_unlocked (char *__restrict __s, int __n, + FILE *__restrict __stream) + __attribute__ ((__access__ (__write_only__, 1, 2))); +# 632 "/usr/include/stdio.h" 3 4 +extern __ssize_t __getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) ; +extern __ssize_t getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) ; + + + + + + + +extern __ssize_t getline (char **__restrict __lineptr, + size_t *__restrict __n, + FILE *__restrict __stream) ; + + + + + + + +extern int fputs (const char *__restrict __s, FILE *__restrict __stream); + + + + + +extern int puts (const char *__s); + + + + + + +extern int ungetc (int __c, FILE *__stream); + + + + + + +extern size_t fread (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) ; + + + + +extern size_t fwrite (const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __s); +# 691 "/usr/include/stdio.h" 3 4 +extern int fputs_unlocked (const char *__restrict __s, + FILE *__restrict __stream); +# 702 "/usr/include/stdio.h" 3 4 +extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) ; +extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream); + + + + + + + +extern int fseek (FILE *__stream, long int __off, int __whence); + + + + +extern long int ftell (FILE *__stream) ; + + + + +extern void rewind (FILE *__stream); +# 736 "/usr/include/stdio.h" 3 4 +extern int fseeko (FILE *__stream, __off_t __off, int __whence); + + + + +extern __off_t ftello (FILE *__stream) ; +# 760 "/usr/include/stdio.h" 3 4 +extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); + + + + +extern int fsetpos (FILE *__stream, const fpos_t *__pos); +# 779 "/usr/include/stdio.h" 3 4 +extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); +extern __off64_t ftello64 (FILE *__stream) ; +extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); +extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); + + + +extern void clearerr (FILE *__stream) noexcept (true); + +extern int feof (FILE *__stream) noexcept (true) ; + +extern int ferror (FILE *__stream) noexcept (true) ; + + + +extern void clearerr_unlocked (FILE *__stream) noexcept (true); +extern int feof_unlocked (FILE *__stream) noexcept (true) ; +extern int ferror_unlocked (FILE *__stream) noexcept (true) ; + + + + + + + +extern void perror (const char *__s); + + + + +extern int fileno (FILE *__stream) noexcept (true) ; + + + + +extern int fileno_unlocked (FILE *__stream) noexcept (true) ; +# 823 "/usr/include/stdio.h" 3 4 +extern int pclose (FILE *__stream); + + + + + +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); + + + +extern int ftrylockfile (FILE *__stream) noexcept (true) ; + + +extern void funlockfile (FILE *__stream) noexcept (true); +# 885 "/usr/include/stdio.h" 3 4 +extern int __uflow (FILE *); +extern int __overflow (FILE *, int); +# 902 "/usr/include/stdio.h" 3 4 +} +# 137 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 2 +# 1 "/usr/include/c++/11/stdlib.h" 1 3 +# 138 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 2 + + + + + + +# 143 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 3 4 + noexcept (true) +# 157 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void free(void*) +# 158 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 3 4 + noexcept (true) +# 158 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" + ; +# 168 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +} + + + + + +# 1 "/usr/include/assert.h" 1 3 4 +# 66 "/usr/include/assert.h" 3 4 + +# 66 "/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__)); + + +extern void __assert_perror_fail (int __errnum, const char *__file, + unsigned int __line, const char *__function) + noexcept (true) __attribute__ ((__noreturn__)); + + + + +extern void __assert (const char *__assertion, const char *__file, int __line) + noexcept (true) __attribute__ ((__noreturn__)); + + +} +# 175 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 2 + + + +# 177 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +extern "C" +{ +# 205 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 3 4 + noexcept (true) +# 207 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" + ; + + + + +} +# 267 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 1 +# 112 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 113 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 114 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 +# 124 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern "C" +{ +# 222 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) int abs(int a) +# 222 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 222 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long int labs(long int a) +# 230 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 230 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long long int llabs(long long int a) +# 238 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 238 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 288 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fabs(double x) +# 288 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 288 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 331 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fabsf(float x) +# 331 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 331 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 341 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fminf(float x, float y) +# 383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 403 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmin(double x, double y) +# 403 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 403 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 416 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 459 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaxf(float x, float y) +# 459 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 459 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 479 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmax(double, double) +# 479 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 479 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 523 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sin(double x) +# 523 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 523 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 556 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cos(double x) +# 556 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 556 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincos(double x, double *sptr, double *cptr) +# 575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 591 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincosf(float x, float *sptr, float *cptr) +# 591 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 591 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tan(double x) +# 636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 705 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sqrt(double x) +# 705 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 705 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 777 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rsqrt(double x); +# 847 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rsqrtf(float x); +# 903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log2(double x) +# 903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 968 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp2(double x) +# 968 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 968 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1033 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp2f(float x) +# 1033 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1033 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1100 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp10(double x) +# 1100 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1100 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp10f(float x) +# 1163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1256 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double expm1(double x) +# 1256 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1256 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1348 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expm1f(float x) +# 1348 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1348 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log2f(float x) +# 1404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1458 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log10(double x) +# 1458 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1458 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1528 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log(double x) +# 1528 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1528 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1624 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log1p(double x) +# 1624 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1624 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1723 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log1pf(float x) +# 1723 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1723 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double floor(double x) +# 1787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1866 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp(double x) +# 1866 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1866 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1907 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cosh(double x) +# 1907 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1907 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1957 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinh(double x) +# 1957 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1957 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2007 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tanh(double x) +# 2007 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2007 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2062 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acosh(double x) +# 2062 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2062 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2120 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acoshf(float x) +# 2120 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2120 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2173 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asinh(double x) +# 2173 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2173 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2226 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinhf(float x) +# 2226 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2226 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2280 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atanh(double x) +# 2280 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2280 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2334 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanhf(float x) +# 2334 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2334 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ldexp(double x, int exp) +# 2383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ldexpf(float x, int exp) +# 2429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2481 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double logb(double x) +# 2481 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2481 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logbf(float x) +# 2536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2576 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogb(double x) +# 2576 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2576 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogbf(float x) +# 2616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2692 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbn(double x, int n) +# 2692 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2692 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalbnf(float x, int n) +# 2768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2844 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbln(double x, long int n) +# 2844 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2844 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2920 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalblnf(float x, long int n) +# 2920 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2920 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2997 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double frexp(double x, int *nptr) +# 2997 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2997 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3071 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float frexpf(float x, int *nptr) +# 3071 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3071 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3123 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double round(double x) +# 3123 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3123 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3178 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float roundf(float x) +# 3178 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3178 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3196 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lround(double x) +# 3196 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3196 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lroundf(float x) +# 3214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3232 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llround(double x) +# 3232 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3232 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3250 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llroundf(float x) +# 3250 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3250 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3324 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rint(double x) +# 3324 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3324 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3378 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rintf(float x) +# 3378 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3378 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3395 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrint(double x) +# 3395 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3395 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3412 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrintf(float x) +# 3412 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3412 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrint(double x) +# 3429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3446 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrintf(float x) +# 3446 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3446 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3499 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nearbyint(double x) +# 3499 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3499 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3552 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nearbyintf(float x) +# 3552 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3552 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3614 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ceil(double x) +# 3614 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3614 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3664 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double trunc(double x) +# 3664 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3664 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float truncf(float x) +# 3717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3743 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fdim(double x, double y) +# 3743 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3743 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3769 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fdimf(float x, float y) +# 3769 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3769 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4069 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan2(double y, double x) +# 4069 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4069 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4140 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan(double x) +# 4140 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4140 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acos(double x) +# 4163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asin(double x) +# 4214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4282 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double hypot(double x, double y) +# 4282 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4282 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4337 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rhypot(double x, double y) +# 4337 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4337 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4405 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float hypotf(float x, float y) +# 4405 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4405 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4460 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rhypotf(float x, float y) +# 4460 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4460 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4504 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double norm3d(double a, double b, double c) +# 4504 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4504 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4555 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm3d(double a, double b, double c) +# 4555 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4555 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4604 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double norm4d(double a, double b, double c, double d) +# 4604 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4604 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4660 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm4d(double a, double b, double c, double d) +# 4660 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4660 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + __attribute__((device)) __attribute__((device_builtin)) double norm(int dim, double const * p) +# 4717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4781 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm(int dim, double const * p) +# 4781 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4781 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4846 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnormf(int dim, float const * p) +# 4846 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4846 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + __attribute__((device)) __attribute__((device_builtin)) float normf(int dim, float const * p) +# 4903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4948 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float norm3df(float a, float b, float c) +# 4948 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4948 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm3df(float a, float b, float c) +# 4999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 5048 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float norm4df(float a, float b, float c, float d) +# 5048 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 5048 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 5104 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm4df(float a, float b, float c, float d) +# 5104 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 5104 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 5191 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cbrt(double x) +# 5191 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 5191 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 5277 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cbrtf(float x) +# 5277 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 5277 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 5332 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rcbrt(double x); +# 5382 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rcbrtf(float x); +# 5442 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinpi(double x); +# 5502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinpif(float x); +# 5554 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cospi(double x); +# 5606 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cospif(float x); +# 5636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospi(double x, double *sptr, double *cptr); +# 5666 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospif(float x, float *sptr, float *cptr); +# 5999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double pow(double x, double y) +# 5999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 5999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6055 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double modf(double x, double *iptr) +# 6055 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6055 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6114 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmod(double x, double y) +# 6114 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6114 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6210 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remainder(double x, double y) +# 6210 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6210 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6309 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remainderf(float x, float y) +# 6309 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6309 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6381 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remquo(double x, double y, int *quo) +# 6381 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6381 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6453 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remquof(float x, float y, int *quo) +# 6453 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6453 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6494 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j0(double x) +# 6494 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6494 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j0f(float x) +# 6536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6605 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j1(double x) +# 6605 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6605 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6674 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j1f(float x) +# 6674 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6674 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double jn(int n, double x) +# 6717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6760 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float jnf(int n, float x) +# 6760 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6760 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6821 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y0(double x) +# 6821 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6821 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6882 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y0f(float x) +# 6882 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6882 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6943 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y1(double x) +# 6943 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6943 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7004 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y1f(float x) +# 7004 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7004 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7067 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double yn(int n, double x) +# 7067 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7067 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7130 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ynf(int n, float x) +# 7130 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7130 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7157 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i0(double x) +# 7157 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7157 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7183 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i0f(float x) +# 7183 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7183 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7210 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i1(double x) +# 7210 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7210 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i1f(float x) +# 7236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erf(double x) +# 7319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7401 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erff(float x) +# 7401 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7401 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7473 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfinv(double x); +# 7538 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfinvf(float x); +# 7577 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfc(double x) +# 7577 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7577 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7615 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcf(float x) +# 7615 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7615 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7732 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double lgamma(double x) +# 7732 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7732 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7794 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcinv(double x); +# 7849 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcinvf(float x); +# 7917 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdfinv(double x); +# 7985 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdfinvf(float x); +# 8028 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdf(double x); +# 8071 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdff(float x); +# 8135 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcx(double x); +# 8199 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcxf(float x); +# 8318 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float lgammaf(float x) +# 8318 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8318 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8416 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tgamma(double x) +# 8416 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8416 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8514 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tgammaf(float x) +# 8514 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8514 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8527 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double copysign(double x, double y) +# 8527 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8527 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8540 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float copysignf(float x, float y) +# 8540 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8540 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8559 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nextafter(double x, double y) +# 8559 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8559 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8578 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nextafterf(float x, float y) +# 8578 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8578 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8594 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nan(const char *tagp) +# 8594 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8594 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8610 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nanf(const char *tagp) +# 8610 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8610 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinff(float) +# 8617 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8617 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanf(float) +# 8618 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8618 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finite(double) +# 8628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitef(float) +# 8629 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8629 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbit(double) +# 8630 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8630 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnan(double) +# 8631 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8631 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinf(double) +# 8632 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8632 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitf(float) +# 8635 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8635 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8794 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fma(double x, double y, double z) +# 8794 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8794 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8952 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaf(float x, float y, float z) +# 8952 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8952 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8963 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitl(long double) +# 8963 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8963 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitel(long double) +# 8969 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8969 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinfl(long double) +# 8970 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8970 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanl(long double) +# 8971 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8971 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9021 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acosf(float x) +# 9021 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9021 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9080 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinf(float x) +# 9080 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9080 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9160 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanf(float x) +# 9160 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9160 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9457 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atan2f(float y, float x) +# 9457 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9457 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9491 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cosf(float x) +# 9491 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9491 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9533 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinf(float x) +# 9533 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9533 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanf(float x) +# 9575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float coshf(float x) +# 9616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9666 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinhf(float x) +# 9666 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9666 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9716 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanhf(float x) +# 9716 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9716 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logf(float x) +# 9768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9848 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expf(float x) +# 9848 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9848 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9900 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log10f(float x) +# 9900 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9900 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9955 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float modff(float x, float *iptr) +# 9955 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9955 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 10285 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float powf(float x, float y) +# 10285 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 10285 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 10354 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sqrtf(float x) +# 10354 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 10354 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 10413 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ceilf(float x) +# 10413 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 10413 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 10474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float floorf(float x) +# 10474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 10474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 10532 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmodf(float x, float y) +# 10532 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 10532 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 10547 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +} + + +# 1 "/usr/include/c++/11/math.h" 1 3 +# 36 "/usr/include/c++/11/math.h" 3 +# 1 "/usr/include/c++/11/cmath" 1 3 +# 39 "/usr/include/c++/11/cmath" 3 + +# 40 "/usr/include/c++/11/cmath" 3 + + +# 1 "/usr/include/c++/11/bits/cpp_type_traits.h" 1 3 +# 35 "/usr/include/c++/11/bits/cpp_type_traits.h" 3 + +# 36 "/usr/include/c++/11/bits/cpp_type_traits.h" 3 +# 67 "/usr/include/c++/11/bits/cpp_type_traits.h" 3 + +# 67 "/usr/include/c++/11/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; + }; +# 184 "/usr/include/c++/11/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; + }; +# 270 "/usr/include/c++/11/bits/cpp_type_traits.h" 3 +template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; +# 287 "/usr/include/c++/11/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; + }; + + + + + 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; + }; +# 423 "/usr/include/c++/11/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; + }; +# 532 "/usr/include/c++/11/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; } + + +} +} +# 43 "/usr/include/c++/11/cmath" 2 3 +# 1 "/usr/include/c++/11/ext/type_traits.h" 1 3 +# 32 "/usr/include/c++/11/ext/type_traits.h" 3 + +# 33 "/usr/include/c++/11/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 + inline bool + __is_null_pointer(_Type* __ptr) + { return __ptr == 0; } + + template + inline bool + __is_null_pointer(_Type) + { return false; } + + + inline 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; }; + + + template + using __promoted_t = decltype((typename __promote<_Tp>::__type(0) + ...)); + + + template::__type, + typename _Up2 = typename __promote<_Up>::__type> + struct __promote_2 + { + typedef __typeof__(_Tp2() + _Up2()) __type; + }; + + template::__type, + typename _Up2 = typename __promote<_Up>::__type, + typename _Vp2 = typename __promote<_Vp>::__type> + struct __promote_3 + { + typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; + }; + + template::__type, + typename _Up2 = typename __promote<_Up>::__type, + typename _Vp2 = typename __promote<_Vp>::__type, + typename _Wp2 = typename __promote<_Wp>::__type> + struct __promote_4 + { + typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; + }; + + +} +} +# 44 "/usr/include/c++/11/cmath" 2 3 + +# 1 "/usr/include/math.h" 1 3 4 +# 27 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 28 "/usr/include/math.h" 2 3 4 + + + + + + +extern "C" { + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 1 3 4 +# 25 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h" 1 3 4 +# 26 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 2 3 4 +# 41 "/usr/include/math.h" 2 3 4 +# 152 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h" 1 3 4 +# 153 "/usr/include/math.h" 2 3 4 +# 163 "/usr/include/math.h" 3 4 +typedef float float_t; +typedef double double_t; +# 204 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/fp-logb.h" 1 3 4 +# 205 "/usr/include/math.h" 2 3 4 +# 247 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/fp-fast.h" 1 3 4 +# 248 "/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, + }; +# 312 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/x86_64-linux-gnu/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__)); +# 313 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceil (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double fabs (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 __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); +# 183 "/usr/include/x86_64-linux-gnu/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 __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); +# 220 "/usr/include/x86_64-linux-gnu/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 __round (double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern double trunc (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 __fmax (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmin (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 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 __fmaxmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminmag (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 __fmaximum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum (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 __fmaximum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_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 __fmaximum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_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 __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 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); +# 314 "/usr/include/math.h" 2 3 4 +# 329 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/x86_64-linux-gnu/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__)); +# 330 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceilf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float fabsf (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 __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); +# 177 "/usr/include/x86_64-linux-gnu/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 __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); +# 213 "/usr/include/x86_64-linux-gnu/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 __roundf (float __x) noexcept (true) __attribute__ ((__const__)); + + + +extern float truncf (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 __fmaxf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminf (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 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 __fmaxmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminmagf (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 __fmaximumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimumf (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 __fmaximum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_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 __fmaximum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_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 __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 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); +# 331 "/usr/include/math.h" 2 3 4 +# 398 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/x86_64-linux-gnu/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__)); +# 399 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceill (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double fabsl (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 __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); +# 177 "/usr/include/x86_64-linux-gnu/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 __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); +# 213 "/usr/include/x86_64-linux-gnu/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 __roundl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern long double truncl (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 __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 __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 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 __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 __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 __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 __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 __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 __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 __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 __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 __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 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); +# 400 "/usr/include/math.h" 2 3 4 +# 450 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceilf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fabsf32 (_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 __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); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 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); +# 220 "/usr/include/x86_64-linux-gnu/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); +# 252 "/usr/include/x86_64-linux-gnu/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 __roundf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32 truncf32 (_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 __fmaxf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminf32 (_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 _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 __fmaxmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminmagf32 (_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 __fmaximumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimumf32 (_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 __fmaximum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_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 __fmaximum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_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 __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 _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); +# 451 "/usr/include/math.h" 2 3 4 +# 467 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceilf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fabsf64 (_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 __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); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 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); +# 220 "/usr/include/x86_64-linux-gnu/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); +# 252 "/usr/include/x86_64-linux-gnu/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 __roundf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64 truncf64 (_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 __fmaxf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminf64 (_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 _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 __fmaxmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminmagf64 (_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 __fmaximumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimumf64 (_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 __fmaximum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_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 __fmaximum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_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 __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 _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); +# 468 "/usr/include/math.h" 2 3 4 +# 481 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/x86_64-linux-gnu/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__)); +# 482 "/usr/include/math.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceilf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fabsf128 (_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 __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); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float128 copysignf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 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); +# 220 "/usr/include/x86_64-linux-gnu/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); +# 252 "/usr/include/x86_64-linux-gnu/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 __roundf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float128 truncf128 (_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 __fmaxf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminf128 (_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 _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 __fmaxmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminmagf128 (_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 __fmaximumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimumf128 (_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 __fmaximum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_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 __fmaximum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_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 __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 _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); +# 485 "/usr/include/math.h" 2 3 4 +# 501 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceilf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fabsf32x (_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 __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); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 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); +# 220 "/usr/include/x86_64-linux-gnu/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); +# 252 "/usr/include/x86_64-linux-gnu/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 __roundf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32x truncf32x (_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 __fmaxf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminf32x (_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 _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 __fmaxmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminmagf32x (_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 __fmaximumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimumf32x (_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 __fmaximum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_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 __fmaximum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_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 __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 _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); +# 502 "/usr/include/math.h" 2 3 4 +# 518 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceilf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fabsf64x (_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 __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); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 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); +# 220 "/usr/include/x86_64-linux-gnu/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); +# 252 "/usr/include/x86_64-linux-gnu/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 __roundf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64x truncf64x (_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 __fmaxf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminf64x (_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 _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 __fmaxmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminmagf64x (_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 __fmaximumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimumf64x (_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 __fmaximum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_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 __fmaximum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_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 __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 _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); +# 519 "/usr/include/math.h" 2 3 4 +# 566 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 567 "/usr/include/math.h" 2 3 4 +# 587 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 588 "/usr/include/math.h" 2 3 4 +# 616 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 617 "/usr/include/math.h" 2 3 4 +# 697 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 698 "/usr/include/math.h" 2 3 4 +# 707 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 708 "/usr/include/math.h" 2 3 4 +# 717 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 718 "/usr/include/math.h" 2 3 4 +# 727 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 728 "/usr/include/math.h" 2 3 4 +# 747 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 748 "/usr/include/math.h" 2 3 4 +# 757 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 758 "/usr/include/math.h" 2 3 4 +# 767 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 768 "/usr/include/math.h" 2 3 4 +# 787 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 788 "/usr/include/math.h" 2 3 4 +# 797 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 798 "/usr/include/math.h" 2 3 4 +# 817 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 818 "/usr/include/math.h" 2 3 4 +# 854 "/usr/include/math.h" 3 4 +extern int signgam; +# 934 "/usr/include/math.h" 3 4 +enum + { + FP_NAN = + + 0, + FP_INFINITE = + + 1, + FP_ZERO = + + 2, + FP_SUBNORMAL = + + 3, + FP_NORMAL = + + 4 + }; +# 1054 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 3 4 +extern int __iscanonicall (long double __x) + noexcept (true) __attribute__ ((__const__)); +# 46 "/usr/include/x86_64-linux-gnu/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); } + +} +# 1055 "/usr/include/math.h" 2 3 4 +# 1066 "/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); } + +} +# 1097 "/usr/include/math.h" 3 4 +extern "C++" { +# 1128 "/usr/include/math.h" 3 4 +template inline bool +iszero (__T __val) +{ + return __val == 0; +} + +} +# 1363 "/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<_Float128> +{ + static int __call (_Float128 __x, _Float128 __y) throw () + { + return __iseqsigf128 (__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); +} + +} + + + + +} +# 46 "/usr/include/c++/11/cmath" 2 3 +# 77 "/usr/include/c++/11/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); } + + + 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)); + } + + 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); } + + + 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)); + } + + 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); } +# 412 "/usr/include/c++/11/cmath" 3 + 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)); + } + + 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); } +# 536 "/usr/include/c++/11/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 __x) + { 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 __x) + { 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 __x) + { 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)); + } +# 1065 "/usr/include/c++/11/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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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); + } + + + + 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); } +# 1852 "/usr/include/c++/11/cmath" 3 + 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); + } +# 1931 "/usr/include/c++/11/cmath" 3 + +} + + +# 1 "/usr/include/c++/11/bits/specfun.h" 1 3 +# 33 "/usr/include/c++/11/bits/specfun.h" 3 +#pragma GCC visibility push(default) +# 45 "/usr/include/c++/11/bits/specfun.h" 3 +# 1 "/usr/include/c++/11/bits/stl_algobase.h" 1 3 +# 60 "/usr/include/c++/11/bits/stl_algobase.h" 3 +# 1 "/usr/include/c++/11/bits/functexcept.h" 1 3 +# 40 "/usr/include/c++/11/bits/functexcept.h" 3 +# 1 "/usr/include/c++/11/bits/exception_defines.h" 1 3 +# 41 "/usr/include/c++/11/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__)); + + void + __throw_bad_typeid(void) __attribute__((__noreturn__)); + + + void + __throw_logic_error(const char*) __attribute__((__noreturn__)); + + void + __throw_domain_error(const char*) __attribute__((__noreturn__)); + + void + __throw_invalid_argument(const char*) __attribute__((__noreturn__)); + + void + __throw_length_error(const char*) __attribute__((__noreturn__)); + + void + __throw_out_of_range(const char*) __attribute__((__noreturn__)); + + void + __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) + __attribute__((__format__(__gnu_printf__, 1, 2))); + + void + __throw_runtime_error(const char*) __attribute__((__noreturn__)); + + void + __throw_range_error(const char*) __attribute__((__noreturn__)); + + void + __throw_overflow_error(const char*) __attribute__((__noreturn__)); + + void + __throw_underflow_error(const char*) __attribute__((__noreturn__)); + + + void + __throw_ios_failure(const char*) __attribute__((__noreturn__)); + + void + __throw_ios_failure(const char*, int) __attribute__((__noreturn__)); + + + void + __throw_system_error(int) __attribute__((__noreturn__)); + + + void + __throw_future_error(int) __attribute__((__noreturn__)); + + + void + __throw_bad_function_call() __attribute__((__noreturn__)); + + +} +# 61 "/usr/include/c++/11/bits/stl_algobase.h" 2 3 + + +# 1 "/usr/include/c++/11/ext/numeric_traits.h" 1 3 +# 32 "/usr/include/c++/11/ext/numeric_traits.h" 3 + +# 33 "/usr/include/c++/11/ext/numeric_traits.h" 3 + + + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 50 "/usr/include/c++/11/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; +# 135 "/usr/include/c++/11/ext/numeric_traits.h" 3 + template + using __int_traits = __numeric_traits_integer<_Tp>; +# 155 "/usr/include/c++/11/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 + { }; +# 236 "/usr/include/c++/11/ext/numeric_traits.h" 3 + +} +# 64 "/usr/include/c++/11/bits/stl_algobase.h" 2 3 +# 1 "/usr/include/c++/11/bits/stl_pair.h" 1 3 +# 59 "/usr/include/c++/11/bits/stl_pair.h" 3 +# 1 "/usr/include/c++/11/bits/move.h" 1 3 +# 38 "/usr/include/c++/11/bits/move.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + template + inline constexpr _Tp* + __addressof(_Tp& __r) noexcept + { return __builtin_addressof(__r); } + + + + +} + +# 1 "/usr/include/c++/11/type_traits" 1 3 +# 32 "/usr/include/c++/11/type_traits" 3 + +# 33 "/usr/include/c++/11/type_traits" 3 + + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + class tuple; + + template + class reference_wrapper; +# 64 "/usr/include/c++/11/type_traits" 3 + template + struct integral_constant + { + static constexpr _Tp value = __v; + typedef _Tp value_type; + typedef integral_constant<_Tp, __v> type; + constexpr operator value_type() const noexcept { return value; } + + + + + constexpr value_type operator()() const noexcept { return value; } + + }; + + template + constexpr _Tp integral_constant<_Tp, __v>::value; + + + using true_type = integral_constant; + + + using false_type = integral_constant; + + + + template + using __bool_constant = integral_constant; + + + + + + + template + using bool_constant = integral_constant; + + + + + template + struct conditional; + + + template + struct __type_identity + { using type = _Type; }; + + template + using __type_identity_t = typename __type_identity<_Tp>::type; + + template + struct __or_; + + template<> + struct __or_<> + : public false_type + { }; + + template + struct __or_<_B1> + : public _B1 + { }; + + template + struct __or_<_B1, _B2> + : public conditional<_B1::value, _B1, _B2>::type + { }; + + template + struct __or_<_B1, _B2, _B3, _Bn...> + : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type + { }; + + template + struct __and_; + + template<> + struct __and_<> + : public true_type + { }; + + template + struct __and_<_B1> + : public _B1 + { }; + + template + struct __and_<_B1, _B2> + : public conditional<_B1::value, _B2, _B1>::type + { }; + + template + struct __and_<_B1, _B2, _B3, _Bn...> + : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type + { }; + + template + struct __not_ + : public __bool_constant + { }; + + + + + + template + inline constexpr bool __or_v = __or_<_Bn...>::value; + template + inline constexpr bool __and_v = __and_<_Bn...>::value; + + + + + template + struct conjunction + : __and_<_Bn...> + { }; + + template + struct disjunction + : __or_<_Bn...> + { }; + + template + struct negation + : __not_<_Pp> + { }; + + + + + 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 + struct __success_type + { typedef _Tp type; }; + + struct __failure_type + { }; + + + template + using __remove_cv_t = typename remove_cv<_Tp>::type; + + + + template + struct __is_void_helper + : public false_type { }; + + template<> + struct __is_void_helper + : public true_type { }; + + + + template + struct is_void + : public __is_void_helper<__remove_cv_t<_Tp>>::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 { }; +# 310 "/usr/include/c++/11/type_traits" 3 + 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<__int128> + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; +# 391 "/usr/include/c++/11/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 { }; +# 421 "/usr/include/c++/11/type_traits" 3 + template + struct is_floating_point + : public __is_floating_point_helper<__remove_cv_t<_Tp>>::type + { }; + + + template + struct is_array + : public false_type { }; + + template + struct is_array<_Tp[_Size]> + : public true_type { }; + + template + struct is_array<_Tp[]> + : public true_type { }; + + 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_helper + : public false_type { }; + + template + struct __is_member_object_pointer_helper<_Tp _Cp::*> + : public __not_>::type { }; + + + template + struct is_member_object_pointer + : public __is_member_object_pointer_helper<__remove_cv_t<_Tp>>::type + { }; + + template + struct __is_member_function_pointer_helper + : public false_type { }; + + template + struct __is_member_function_pointer_helper<_Tp _Cp::*> + : public is_function<_Tp>::type { }; + + + template + struct is_member_function_pointer + : public __is_member_function_pointer_helper<__remove_cv_t<_Tp>>::type + { }; + + + template + struct is_enum + : public integral_constant + { }; + + + template + struct is_union + : public integral_constant + { }; + + + template + struct is_class + : public integral_constant + { }; + + + template + struct is_function + : public __bool_constant::value> { }; + + template + struct is_function<_Tp&> + : public false_type { }; + + template + struct is_function<_Tp&&> + : public false_type { }; + + + + template + struct __is_null_pointer_helper + : public false_type { }; + + template<> + struct __is_null_pointer_helper + : public true_type { }; + + + template + struct is_null_pointer + : public __is_null_pointer_helper<__remove_cv_t<_Tp>>::type + { }; + + + + template + struct __is_nullptr_t + : public is_null_pointer<_Tp> + { } __attribute__ ((__deprecated__ ("use '" "std::is_null_pointer" "' instead"))); + + + + + template + struct is_reference + : public __or_, + is_rvalue_reference<_Tp>>::type + { }; + + + 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 __not_<__or_, is_reference<_Tp>, + is_void<_Tp>>>::type + { }; + + 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 __not_>::type { }; + + + template + struct __is_member_pointer_helper + : public false_type { }; + + template + struct __is_member_pointer_helper<_Tp _Cp::*> + : public true_type { }; + + + + template + struct is_member_pointer + : public __is_member_pointer_helper<__remove_cv_t<_Tp>>::type + { }; + + template + struct is_same; + + + template + using __is_one_of = __or_...>; + + + 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 +# 637 "/usr/include/c++/11/type_traits" 3 + >; + + + 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 +# 656 "/usr/include/c++/11/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_referenceable + : public false_type + { }; + + template + struct __is_referenceable<_Tp, __void_t<_Tp&>> + : public true_type + { }; + + + + + + 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 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 is_trivially_copyable + : 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 is_standard_layout + : 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 + + is_pod + : 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 + [[__deprecated__]] + is_literal_type + : 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 is_empty + : public integral_constant + { }; + + + template + struct is_polymorphic + : public integral_constant + { }; + + + + + + template + struct is_final + : public integral_constant + { }; + + + + template + struct is_abstract + : public integral_constant + { }; + + + template::value> + struct __is_signed_helper + : public false_type { }; + + template + struct __is_signed_helper<_Tp, true> + : public integral_constant + { }; + + + + template + struct is_signed + : public __is_signed_helper<_Tp>::type + { }; + + + template + struct is_unsigned + : public __and_, __not_>> + { }; + + + template + _Up + __declval(int); + + template + _Tp + __declval(long); + + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)); + + template + struct extent; + + template + struct remove_all_extents; + + + template + struct __is_array_known_bounds + : public integral_constant::value > 0)> + { }; + + template + struct __is_array_unknown_bounds + : public __and_, __not_>> + { }; +# 842 "/usr/include/c++/11/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 + { + typedef decltype(__test<_Tp>(0)) type; + }; + + 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 + { + typedef decltype(__test<_Tp>(0)) type; + }; + + 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 + struct __is_constructible_impl + : public __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>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template::value> + struct __is_copy_constructible_impl; + + template + struct __is_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_copy_constructible_impl<_Tp, true> + : public __is_constructible_impl<_Tp, const _Tp&> + { }; + + + + template + struct is_copy_constructible + : public __is_copy_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::value> + struct __is_move_constructible_impl; + + template + struct __is_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_move_constructible_impl<_Tp, true> + : public __is_constructible_impl<_Tp, _Tp&&> + { }; + + + + template + struct is_move_constructible + : public __is_move_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 + using __is_nothrow_constructible_impl + = __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>; + + + + template + struct is_nothrow_constructible + : public __is_nothrow_constructible_impl<_Tp, _Args...>::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_default_constructible + : public __bool_constant<__is_nothrow_constructible(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template::value> + struct __is_nothrow_copy_constructible_impl; + + template + struct __is_nothrow_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nothrow_copy_constructible_impl<_Tp, true> + : public __is_nothrow_constructible_impl<_Tp, const _Tp&> + { }; + + + + template + struct is_nothrow_copy_constructible + : public __is_nothrow_copy_constructible_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::value> + struct __is_nothrow_move_constructible_impl; + + template + struct __is_nothrow_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nothrow_move_constructible_impl<_Tp, true> + : public __is_nothrow_constructible_impl<_Tp, _Tp&&> + { }; + + + + template + struct is_nothrow_move_constructible + : public __is_nothrow_move_constructible_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_assignable + : public __bool_constant<__is_assignable(_Tp, _Up)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + template::value> + struct __is_copy_assignable_impl; + + template + struct __is_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_copy_assignable_impl<_Tp, true> + : public __bool_constant<__is_assignable(_Tp&, const _Tp&)> + { }; + + + template + struct is_copy_assignable + : public __is_copy_assignable_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::value> + struct __is_move_assignable_impl; + + template + struct __is_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_move_assignable_impl<_Tp, true> + : public __bool_constant<__is_assignable(_Tp&, _Tp&&)> + { }; + + + template + struct is_move_assignable + : public __is_move_assignable_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 + 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::value> + struct __is_nt_copy_assignable_impl; + + template + struct __is_nt_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nt_copy_assignable_impl<_Tp, true> + : public __is_nothrow_assignable_impl<_Tp&, const _Tp&> + { }; + + + template + struct is_nothrow_copy_assignable + : public __is_nt_copy_assignable_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + template::value> + struct __is_nt_move_assignable_impl; + + template + struct __is_nt_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nt_move_assignable_impl<_Tp, true> + : public __is_nothrow_assignable_impl<_Tp&, _Tp&&> + { }; + + + template + struct is_nothrow_move_assignable + : public __is_nt_move_assignable_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_trivially_constructible + : public __bool_constant<__is_trivially_constructible(_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 __bool_constant<__is_trivially_constructible(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + 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 + { + typedef decltype(__test(declval<_Tp>())) type; + }; + + 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>> + { }; + + template::value> + struct __is_trivially_copy_constructible_impl; + + template + struct __is_trivially_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_copy_constructible_impl<_Tp, true> + : public __and_<__is_copy_constructible_impl<_Tp>, + integral_constant> + { }; + + + template + struct is_trivially_copy_constructible + : public __is_trivially_copy_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::value> + struct __is_trivially_move_constructible_impl; + + template + struct __is_trivially_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_move_constructible_impl<_Tp, true> + : public __and_<__is_move_constructible_impl<_Tp>, + integral_constant> + { }; + + + template + struct is_trivially_move_constructible + : public __is_trivially_move_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_trivially_assignable + : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + template::value> + struct __is_trivially_copy_assignable_impl; + + template + struct __is_trivially_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_copy_assignable_impl<_Tp, true> + : public __bool_constant<__is_trivially_assignable(_Tp&, const _Tp&)> + { }; + + + template + struct is_trivially_copy_assignable + : public __is_trivially_copy_assignable_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + template::value> + struct __is_trivially_move_assignable_impl; + + template + struct __is_trivially_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_move_assignable_impl<_Tp, true> + : public __bool_constant<__is_trivially_assignable(_Tp&, _Tp&&)> + { }; + + + template + struct is_trivially_move_assignable + : public __is_trivially_move_assignable_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_trivially_destructible + : public __and_<__is_destructible_safe<_Tp>, + __bool_constant<__has_trivial_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 has_virtual_destructor + : 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 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], _Uint> + : public integral_constant::value> + { }; + + template + struct extent<_Tp[], _Uint> + : public integral_constant::value> + { }; + + + + + + template + struct is_same + + : public integral_constant + + + + { }; +# 1420 "/usr/include/c++/11/type_traits" 3 + template + struct is_base_of + : public integral_constant + { }; + + template, is_function<_To>, + is_array<_To>>::value> + struct __is_convertible_helper + { + typedef typename is_void<_To>::type type; + }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + template + class __is_convertible_helper<_From, _To, false> + { + template + static void __test_aux(_To1) noexcept; + + template(std::declval<_From1>()))> + static true_type + __test(int); + + template + static false_type + __test(...); + + public: + typedef decltype(__test<_From, _To>(0)) type; + }; +#pragma GCC diagnostic pop + + + template + struct is_convertible + : public __is_convertible_helper<_From, _To>::type + { }; + + + template + using __is_array_convertible + = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>; + + template, is_function<_To>, + is_array<_To>>::value> + struct __is_nt_convertible_helper + : is_void<_To> + { }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + template + class __is_nt_convertible_helper<_From, _To, false> + { + template + static void __test_aux(_To1) noexcept; + + template + static + __bool_constant(std::declval<_From1>()))> + __test(int); + + template + static false_type + __test(...); + + public: + using type = decltype(__test<_From, _To>(0)); + }; +#pragma GCC diagnostic pop +# 1512 "/usr/include/c++/11/type_traits" 3 + template + struct remove_const + { typedef _Tp type; }; + + template + struct remove_const<_Tp const> + { typedef _Tp type; }; + + + template + struct remove_volatile + { typedef _Tp type; }; + + template + struct remove_volatile<_Tp volatile> + { typedef _Tp type; }; + + + template + struct remove_cv + { using type = _Tp; }; + + template + struct remove_cv + { using type = _Tp; }; + + template + struct remove_cv + { using type = _Tp; }; + + template + struct remove_cv + { using type = _Tp; }; + + + template + struct add_const + { typedef _Tp const type; }; + + + template + struct add_volatile + { typedef _Tp volatile type; }; + + + template + struct add_cv + { + typedef typename + add_const::type>::type type; + }; + + + + + + + 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 + { typedef _Tp type; }; + + template + struct remove_reference<_Tp&> + { typedef _Tp type; }; + + template + struct remove_reference<_Tp&&> + { typedef _Tp type; }; + + template::value> + struct __add_lvalue_reference_helper + { typedef _Tp type; }; + + template + struct __add_lvalue_reference_helper<_Tp, true> + { typedef _Tp& type; }; + + + template + struct add_lvalue_reference + : public __add_lvalue_reference_helper<_Tp> + { }; + + template::value> + struct __add_rvalue_reference_helper + { typedef _Tp type; }; + + template + struct __add_rvalue_reference_helper<_Tp, true> + { typedef _Tp&& type; }; + + + template + struct add_rvalue_reference + : public __add_rvalue_reference_helper<_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> + { typedef _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, false, true> + { typedef volatile _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, true, false> + { typedef const _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, true, true> + { typedef const volatile _Unqualified __type; }; + + template::value, + bool _IsVol = is_volatile<_Qualified>::value> + class __match_cv_qualifiers + { + typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; + + public: + typedef typename __match::__type __type; + }; + + + template + struct __make_unsigned + { typedef _Tp __type; }; + + template<> + struct __make_unsigned + { typedef unsigned char __type; }; + + template<> + struct __make_unsigned + { typedef unsigned char __type; }; + + template<> + struct __make_unsigned + { typedef unsigned short __type; }; + + template<> + struct __make_unsigned + { typedef unsigned int __type; }; + + template<> + struct __make_unsigned + { typedef unsigned long __type; }; + + template<> + struct __make_unsigned + { typedef unsigned long long __type; }; + + + template<> + struct __make_unsigned<__int128> + { typedef unsigned __int128 __type; }; +# 1736 "/usr/include/c++/11/type_traits" 3 + template::value, + bool _IsEnum = is_enum<_Tp>::value> + 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; + }; +# 1812 "/usr/include/c++/11/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 + { typedef typename __make_unsigned_selector<_Tp>::__type type; }; + + + template<> + struct make_unsigned; + + + + + template + struct __make_signed + { typedef _Tp __type; }; + + template<> + struct __make_signed + { typedef signed char __type; }; + + template<> + struct __make_signed + { typedef signed char __type; }; + + template<> + struct __make_signed + { typedef signed short __type; }; + + template<> + struct __make_signed + { typedef signed int __type; }; + + template<> + struct __make_signed + { typedef signed long __type; }; + + template<> + struct __make_signed + { typedef signed long long __type; }; + + + template<> + struct __make_signed + { typedef __int128 __type; }; +# 1892 "/usr/include/c++/11/type_traits" 3 + template::value, + bool _IsEnum = is_enum<_Tp>::value> + 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> + { + typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; + + public: + typedef typename __make_signed_selector<__unsigned_type>::__type __type; + }; + + + + + + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; +# 1940 "/usr/include/c++/11/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 + { typedef typename __make_signed_selector<_Tp>::__type type; }; + + + 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 + { typedef _Tp type; }; + + template + struct remove_extent<_Tp[_Size]> + { typedef _Tp type; }; + + template + struct remove_extent<_Tp[]> + { typedef _Tp type; }; + + + template + struct remove_all_extents + { typedef _Tp type; }; + + template + struct remove_all_extents<_Tp[_Size]> + { typedef typename remove_all_extents<_Tp>::type type; }; + + template + struct remove_all_extents<_Tp[]> + { typedef typename remove_all_extents<_Tp>::type 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_helper + { typedef _Tp type; }; + + template + struct __remove_pointer_helper<_Tp, _Up*> + { typedef _Up type; }; + + + template + struct remove_pointer + : public __remove_pointer_helper<_Tp, __remove_cv_t<_Tp>> + { }; + + template, + is_void<_Tp>>::value> + struct __add_pointer_helper + { typedef _Tp type; }; + + template + struct __add_pointer_helper<_Tp, true> + { typedef typename remove_reference<_Tp>::type* type; }; + + + template + struct add_pointer + : public __add_pointer_helper<_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; + }; + }; +# 2076 "/usr/include/c++/11/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; + }; +# 2115 "/usr/include/c++/11/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; + + typedef typename aligned_storage<_S_len, alignment_value>::type type; + }; + + template + const size_t aligned_union<_Len, _Types...>::alignment_value; + + + + + + template::value, + bool _IsFunction = is_function<_Up>::value> + struct __decay_selector; + + + template + struct __decay_selector<_Up, false, false> + { typedef __remove_cv_t<_Up> __type; }; + + template + struct __decay_selector<_Up, true, false> + { typedef typename remove_extent<_Up>::type* __type; }; + + template + struct __decay_selector<_Up, false, true> + { typedef typename add_pointer<_Up>::type __type; }; + + + + template + class decay + { + typedef typename remove_reference<_Tp>::type __remove_type; + + public: + typedef typename __decay_selector<__remove_type>::__type type; + }; + + + + + template + struct __strip_reference_wrapper + { + typedef _Tp __type; + }; + + template + struct __strip_reference_wrapper > + { + typedef _Tp& __type; + }; + + + template + using __decay_t = typename decay<_Tp>::type; + + template + using __decay_and_strip = __strip_reference_wrapper<__decay_t<_Tp>>; + + + + + template + struct enable_if + { }; + + + template + struct enable_if + { typedef _Tp type; }; + + + + + template + using __enable_if_t = typename enable_if<_Cond, _Tp>::type; + + + template + using _Require = __enable_if_t<__and_<_Cond...>::value>; + + + template + using __remove_cvref_t + = typename remove_cv::type>::type; + + + + + template + struct conditional + { typedef _Iftrue type; }; + + + template + struct conditional + { typedef _Iffalse type; }; + + + template + struct common_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); +# 2255 "/usr/include/c++/11/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::value> + 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 + { + typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; + }; + + + 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 + { + typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; + }; + + + 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 + { + typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; + }; + + + 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 + { + typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; + }; + + template + struct __result_of_memobj; + + template + struct __result_of_memobj<_Res _Class::*, _Arg> + { + typedef __remove_cvref_t<_Arg> _Argval; + typedef _Res _Class::* _MemPtr; + typedef typename conditional<__or_, + is_base_of<_Class, _Argval>>::value, + __result_of_memobj_ref<_MemPtr, _Arg>, + __result_of_memobj_deref<_MemPtr, _Arg> + >::type::type type; + }; + + template + struct __result_of_memfun; + + template + struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> + { + typedef typename remove_reference<_Arg>::type _Argval; + typedef _Res _Class::* _MemPtr; + typedef typename conditional::value, + __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, + __result_of_memfun_deref<_MemPtr, _Arg, _Args...> + >::type::type type; + }; + + + + + + + template> + struct __inv_unwrap + { + using type = _Tp; + }; + + template + struct __inv_unwrap<_Tp, reference_wrapper<_Up>> + { + using type = _Up&; + }; + + template + struct __result_of_impl + { + typedef __failure_type 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 + { + typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; + }; + + + 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 + struct result_of<_Functor(_ArgTypes...)> + : public __invoke_result<_Functor, _ArgTypes...> + { }; + + + + template::__type)> + using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; + + template + using aligned_union_t = typename aligned_union<_Len, _Types...>::type; + + + 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; + + + + + + template class _Op, typename... _Args> + struct __detector + { + using value_t = false_type; + using type = _Default; + }; + + + template class _Op, + typename... _Args> + struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> + { + using value_t = true_type; + using type = _Op<_Args...>; + }; + + + 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; +# 2649 "/usr/include/c++/11/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_impl> : true_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 + { + typedef decltype(__test<_Tp>(0)) type; + }; + + template + struct __is_nothrow_swappable_impl + : public __swappable_details::__do_is_nothrow_swappable_impl + { + typedef decltype(__test<_Tp>(0)) type; + }; + + 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 + { + typedef decltype(__test<_Tp, _Up>(0)) type; + }; + + + template + struct __is_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_swappable_impl + { + typedef decltype(__test<_Tp&>(0)) type; + }; + + template + struct __is_nothrow_swappable_with_impl + : public __swappable_with_details::__do_is_nothrow_swappable_with_impl + { + typedef decltype(__test<_Tp, _Up>(0)) type; + }; + + + template + struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_nothrow_swappable_impl + { + typedef decltype(__test<_Tp&>(0)) type; + }; + + + + 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; +# 2876 "/usr/include/c++/11/type_traits" 3 + template::value, typename = void> + struct __is_invocable_impl + : false_type + { + using __nothrow_type = false_type; + }; + + + template + struct __is_invocable_impl<_Result, _Ret, + true, + __void_t> + : true_type + { + using __nothrow_type = true_type; + }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + + template + struct __is_invocable_impl<_Result, _Ret, + false, + __void_t> + { + private: + + + + static typename _Result::type _S_get() noexcept; + + template + static void _S_conv(_Tp) noexcept; + + + template(_S_get())), + bool _Noex = noexcept(_S_conv<_Tp>(_S_get()))> + static __bool_constant<_Check_Noex ? _Noex : true> + _S_test(int); + + template + static false_type + _S_test(...); + + public: + + using type = decltype(_S_test<_Ret>(1)); + + + using __nothrow_type = decltype(_S_test<_Ret, true>(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_type; + + + + 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"); + }; +# 3094 "/usr/include/c++/11/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>::value; +template + inline constexpr bool is_pointer_v = is_pointer<_Tp>::value; +template + inline constexpr bool is_lvalue_reference_v = + is_lvalue_reference<_Tp>::value; +template + inline constexpr bool is_rvalue_reference_v = + is_rvalue_reference<_Tp>::value; +template + inline constexpr bool is_member_object_pointer_v = + is_member_object_pointer<_Tp>::value; +template + inline constexpr bool is_member_function_pointer_v = + is_member_function_pointer<_Tp>::value; +template + inline constexpr bool is_enum_v = is_enum<_Tp>::value; +template + inline constexpr bool is_union_v = is_union<_Tp>::value; +template + inline constexpr bool is_class_v = is_class<_Tp>::value; +template + inline constexpr bool is_function_v = is_function<_Tp>::value; +template + inline constexpr bool is_reference_v = is_reference<_Tp>::value; +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>::value; +template + inline constexpr bool is_scalar_v = is_scalar<_Tp>::value; +template + inline constexpr bool is_compound_v = is_compound<_Tp>::value; +template + inline constexpr bool is_member_pointer_v = is_member_pointer<_Tp>::value; +template + inline constexpr bool is_const_v = is_const<_Tp>::value; +template + inline constexpr bool is_volatile_v = is_volatile<_Tp>::value; +template + inline constexpr bool is_trivial_v = is_trivial<_Tp>::value; +template + inline constexpr bool is_trivially_copyable_v = + is_trivially_copyable<_Tp>::value; +template + inline constexpr bool is_standard_layout_v = is_standard_layout<_Tp>::value; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +template + + inline constexpr bool is_pod_v = is_pod<_Tp>::value; +template + [[__deprecated__]] + inline constexpr bool is_literal_type_v = is_literal_type<_Tp>::value; +#pragma GCC diagnostic pop + template + inline constexpr bool is_empty_v = is_empty<_Tp>::value; +template + inline constexpr bool is_polymorphic_v = is_polymorphic<_Tp>::value; +template + inline constexpr bool is_abstract_v = is_abstract<_Tp>::value; +template + inline constexpr bool is_final_v = is_final<_Tp>::value; +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...>::value; +template + inline constexpr bool is_default_constructible_v = + is_default_constructible<_Tp>::value; +template + inline constexpr bool is_copy_constructible_v = + is_copy_constructible<_Tp>::value; +template + inline constexpr bool is_move_constructible_v = + is_move_constructible<_Tp>::value; +template + inline constexpr bool is_assignable_v = is_assignable<_Tp, _Up>::value; +template + inline constexpr bool is_copy_assignable_v = is_copy_assignable<_Tp>::value; +template + inline constexpr bool is_move_assignable_v = is_move_assignable<_Tp>::value; +template + inline constexpr bool is_destructible_v = is_destructible<_Tp>::value; +template + inline constexpr bool is_trivially_constructible_v = + is_trivially_constructible<_Tp, _Args...>::value; +template + inline constexpr bool is_trivially_default_constructible_v = + is_trivially_default_constructible<_Tp>::value; +template + inline constexpr bool is_trivially_copy_constructible_v = + is_trivially_copy_constructible<_Tp>::value; +template + inline constexpr bool is_trivially_move_constructible_v = + is_trivially_move_constructible<_Tp>::value; +template + inline constexpr bool is_trivially_assignable_v = + is_trivially_assignable<_Tp, _Up>::value; +template + inline constexpr bool is_trivially_copy_assignable_v = + is_trivially_copy_assignable<_Tp>::value; +template + inline constexpr bool is_trivially_move_assignable_v = + is_trivially_move_assignable<_Tp>::value; +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...>::value; +template + inline constexpr bool is_nothrow_default_constructible_v = + is_nothrow_default_constructible<_Tp>::value; +template + inline constexpr bool is_nothrow_copy_constructible_v = + is_nothrow_copy_constructible<_Tp>::value; +template + inline constexpr bool is_nothrow_move_constructible_v = + is_nothrow_move_constructible<_Tp>::value; +template + inline constexpr bool is_nothrow_assignable_v = + is_nothrow_assignable<_Tp, _Up>::value; +template + inline constexpr bool is_nothrow_copy_assignable_v = + is_nothrow_copy_assignable<_Tp>::value; +template + inline constexpr bool is_nothrow_move_assignable_v = + is_nothrow_move_assignable<_Tp>::value; +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>::value; +template + inline constexpr size_t alignment_of_v = alignment_of<_Tp>::value; +template + inline constexpr size_t rank_v = rank<_Tp>::value; +template + inline constexpr size_t extent_v = extent<_Tp, _Idx>::value; + +template + inline constexpr bool is_same_v = __is_same(_Tp, _Up); + + + + +template + inline constexpr bool is_base_of_v = is_base_of<_Base, _Derived>::value; +template + inline constexpr bool is_convertible_v = is_convertible<_From, _To>::value; +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<_Tp>::value; +# 3598 "/usr/include/c++/11/type_traits" 3 + +} +# 58 "/usr/include/c++/11/bits/move.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 74 "/usr/include/c++/11/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type& __t) noexcept + { return static_cast<_Tp&&>(__t); } + + + + + + + + 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); + } + + + + + + + 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 { }; +# 121 "/usr/include/c++/11/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr typename + conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type + move_if_noexcept(_Tp& __x) noexcept + { return std::move(__x); } +# 142 "/usr/include/c++/11/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; + } +# 186 "/usr/include/c++/11/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]); + } + + + +} +# 60 "/usr/include/c++/11/bits/stl_pair.h" 2 3 +# 69 "/usr/include/c++/11/bits/stl_pair.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 80 "/usr/include/c++/11/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 + class tuple; + + template + struct _Index_tuple; + + + + + + + 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 + static constexpr bool _CopyMovePair() + { + using __do_converts = __and_, + is_convertible<_U2&&, _T2>>; + using __converts = typename conditional<__implicit, + __do_converts, + __not_<__do_converts>>::type; + return __and_, + is_constructible<_T2, _U2&&>, + __converts + >::value; + } + + template + static constexpr bool _MoveCopyPair() + { + using __do_converts = __and_, + is_convertible>; + using __converts = typename conditional<__implicit, + __do_converts, + __not_<__do_converts>>::type; + return __and_, + is_constructible<_T2, const _U2&&>, + __converts + >::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; + } + }; + + + 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; + + }; +# 210 "/usr/include/c++/11/bits/stl_pair.h" 3 + template + struct pair + : private __pair_base<_T1, _T2> + { + typedef _T1 first_type; + typedef _T2 second_type; + + _T1 first; + _T2 second; + + + + + + + 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() { } +# 256 "/usr/include/c++/11/bits/stl_pair.h" 3 + 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) { } +# 288 "/usr/include/c++/11/bits/stl_pair.h" 3 + 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) { } + + + + constexpr pair(const pair&) = default; + constexpr pair(pair&&) = default; + + + template(), + bool>::type=true> + constexpr pair(_U1&& __x, const _T2& __y) + : first(std::forward<_U1>(__x)), second(__y) { } + + template(), + bool>::type=false> + explicit constexpr pair(_U1&& __x, const _T2& __y) + : first(std::forward<_U1>(__x)), second(__y) { } + + template(), + bool>::type=true> + constexpr pair(const _T1& __x, _U2&& __y) + : first(__x), second(std::forward<_U2>(__y)) { } + + template(), + bool>::type=false> + explicit pair(const _T1& __x, _U2&& __y) + : first(__x), 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)) { } + + template + + pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); + + pair& + operator=(typename conditional< + __and_, + is_copy_assignable<_T2>>::value, + const pair&, const __nonesuch&>::type __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + pair& + operator=(typename conditional< + __and_, + is_move_assignable<_T2>>::value, + pair&&, __nonesuch&&>::type __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; + } + + + 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); + } + + private: + template + + pair(tuple<_Args1...>&, tuple<_Args2...>&, + _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); + + }; + + + + + template pair(_T1, _T2) -> pair<_T1, _T2>; + + + + template + inline constexpr bool + operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first == __y.first && __x.second == __y.second; } +# 487 "/usr/include/c++/11/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); } +# 524 "/usr/include/c++/11/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); } + + + template + typename enable_if, + __is_swappable<_T2>>::value>::type + swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; +# 564 "/usr/include/c++/11/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)); + } +# 583 "/usr/include/c++/11/bits/stl_pair.h" 3 + +} +# 65 "/usr/include/c++/11/bits/stl_algobase.h" 2 3 +# 1 "/usr/include/c++/11/bits/stl_iterator_base_types.h" 1 3 +# 62 "/usr/include/c++/11/bits/stl_iterator_base_types.h" 3 + +# 63 "/usr/include/c++/11/bits/stl_iterator_base_types.h" 3 +# 74 "/usr/include/c++/11/bits/stl_iterator_base_types.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 93 "/usr/include/c++/11/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/include/c++/11/bits/stl_iterator_base_types.h" 3 + template + struct iterator + { + + typedef _Category iterator_category; + + typedef _Tp value_type; + + typedef _Distance difference_type; + + typedef _Pointer pointer; + + typedef _Reference reference; + }; +# 149 "/usr/include/c++/11/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/include/c++/11/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 + inline constexpr + typename iterator_traits<_Iter>::iterator_category + __iterator_category(const _Iter&) + { return typename iterator_traits<_Iter>::iterator_category(); } + + + + + template + using __iterator_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/include/c++/11/bits/stl_algobase.h" 2 3 +# 1 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 1 3 +# 62 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 3 + +# 63 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 3 + +# 1 "/usr/include/c++/11/bits/concept_check.h" 1 3 +# 33 "/usr/include/c++/11/bits/concept_check.h" 3 + +# 34 "/usr/include/c++/11/bits/concept_check.h" 3 +# 65 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 2 3 +# 1 "/usr/include/c++/11/debug/assertions.h" 1 3 +# 66 "/usr/include/c++/11/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 + 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); +# 135 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 3 + template + 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 (__builtin_is_constant_evaluated() && !bool(__n >= 0)) __builtin_unreachable(); } 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; + } +# 200 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 3 + template + 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 + inline constexpr _InputIterator + next(_InputIterator __x, typename + iterator_traits<_InputIterator>::difference_type __n = 1) + { + + + std::advance(__x, __n); + return __x; + } + + template + inline constexpr _BidirectionalIterator + prev(_BidirectionalIterator __x, typename + iterator_traits<_BidirectionalIterator>::difference_type __n = 1) + { + + + + std::advance(__x, -__n); + return __x; + } + + + + +} +# 67 "/usr/include/c++/11/bits/stl_algobase.h" 2 3 +# 1 "/usr/include/c++/11/bits/stl_iterator.h" 1 3 +# 67 "/usr/include/c++/11/bits/stl_iterator.h" 3 +# 1 "/usr/include/c++/11/bits/ptr_traits.h" 1 3 +# 42 "/usr/include/c++/11/bits/ptr_traits.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + class __undefined; + + + template + struct __replace_first_arg + { }; + + template class _Template, typename _Up, + typename _Tp, typename... _Types> + struct __replace_first_arg<_Template<_Tp, _Types...>, _Up> + { using type = _Template<_Up, _Types...>; }; + + template + using __replace_first_arg_t = typename __replace_first_arg<_Tp, _Up>::type; + + template + using __make_not_void + = typename conditional::value, __undefined, _Tp>::type; + + template + struct __ptr_traits_elem_1 + { }; + + template class _SomePointer, typename _Tp, + typename... _Args> + struct __ptr_traits_elem_1<_SomePointer<_Tp, _Args...>> + { + using element_type = _Tp; + using pointer = _SomePointer<_Tp, _Args...>; + + static pointer + pointer_to(__make_not_void& __e) + { return pointer::pointer_to(__e); } + }; + + template + struct __ptr_traits_elem : __ptr_traits_elem_1<_Ptr> + { }; + + template + struct __ptr_traits_elem<_Ptr, __void_t> + { + using element_type = typename _Ptr::element_type; + + static _Ptr + pointer_to(__make_not_void& __e) + { return _Ptr::pointer_to(__e); } + }; + + + + + + template + struct pointer_traits : __ptr_traits_elem<_Ptr> + { + private: + template + using __difference_type = typename _Tp::difference_type; + + template + struct __rebind : __replace_first_arg<_Tp, _Up> { }; + + template + struct __rebind<_Tp, _Up, __void_t>> + { using type = typename _Tp::template rebind<_Up>; }; + + public: + + using pointer = _Ptr; + + + using difference_type + = __detected_or_t; + + + template + using rebind = typename __rebind<_Ptr, _Up>::type; + }; + + + + + + template + struct pointer_traits<_Tp*> + { + + typedef _Tp* pointer; + + typedef _Tp element_type; + + typedef ptrdiff_t difference_type; + + template + using rebind = _Up*; + + + + + + + static pointer + pointer_to(__make_not_void& __r) noexcept + { return std::addressof(__r); } + }; + + + 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->()); } +# 214 "/usr/include/c++/11/bits/ptr_traits.h" 3 + +} +# 68 "/usr/include/c++/11/bits/stl_iterator.h" 2 3 +# 88 "/usr/include/c++/11/bits/stl_iterator.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 127 "/usr/include/c++/11/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; +# 146 "/usr/include/c++/11/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; +# 177 "/usr/include/c++/11/bits/stl_iterator.h" 3 + constexpr + reverse_iterator() : current() { } + + + + + explicit constexpr + reverse_iterator(iterator_type __x) : current(__x) { } + + + + + constexpr + reverse_iterator(const reverse_iterator& __x) + : current(__x.current) { } + + + reverse_iterator& operator=(const reverse_iterator&) = default; + + + + + + + template + + + + constexpr + reverse_iterator(const reverse_iterator<_Iter>& __x) + : current(__x.current) { } + + + template + + + + + constexpr + reverse_iterator& + operator=(const reverse_iterator<_Iter>& __x) + { + current = __x.current; + return *this; + } + + + + + + constexpr iterator_type + base() const + { return current; } +# 241 "/usr/include/c++/11/bits/stl_iterator.h" 3 + constexpr reference + operator*() const + { + _Iterator __tmp = current; + return *--__tmp; + } + + + + + + + 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; + } + + + + + + + constexpr reverse_iterator + operator+(difference_type __n) const + { return reverse_iterator(current - __n); } + + + + + + + + constexpr reverse_iterator& + operator+=(difference_type __n) + { + current -= __n; + return *this; + } + + + + + + + constexpr reverse_iterator + operator-(difference_type __n) const + { return reverse_iterator(current + __n); } + + + + + + + + constexpr reverse_iterator& + operator-=(difference_type __n) + { + current += __n; + return *this; + } + + + + + + + constexpr reference + operator[](difference_type __n) const + { return *(*this + __n); } +# 395 "/usr/include/c++/11/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->(); } + }; +# 418 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + inline constexpr bool + operator==(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __x.base() == __y.base(); } + + template + inline constexpr bool + operator<(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y.base() < __x.base(); } + + template + inline constexpr bool + operator!=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + inline constexpr bool + operator>(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y < __x; } + + template + inline constexpr bool + operator<=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + inline constexpr bool + operator>=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x < __y); } + + + + + template + 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 + 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 + 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(); } +# 575 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + 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 + 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 + inline constexpr reverse_iterator<_Iterator> + make_reverse_iterator(_Iterator __i) + { return reverse_iterator<_Iterator>(__i); } +# 616 "/usr/include/c++/11/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())); } +# 647 "/usr/include/c++/11/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)) { } +# 687 "/usr/include/c++/11/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; + } + + + + + back_insert_iterator& + operator*() + { return *this; } + + + + back_insert_iterator& + operator++() + { return *this; } + + + + back_insert_iterator + operator++(int) + { return *this; } + }; +# 734 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + + inline back_insert_iterator<_Container> + back_inserter(_Container& __x) + { return back_insert_iterator<_Container>(__x); } +# 750 "/usr/include/c++/11/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)) { } +# 790 "/usr/include/c++/11/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; + } + + + + + front_insert_iterator& + operator*() + { return *this; } + + + + front_insert_iterator& + operator++() + { return *this; } + + + + front_insert_iterator + operator++(int) + { return *this; } + }; +# 837 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + + inline front_insert_iterator<_Container> + front_inserter(_Container& __x) + { return front_insert_iterator<_Container>(__x); } +# 857 "/usr/include/c++/11/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; +# 889 "/usr/include/c++/11/bits/stl_iterator.h" 3 + + insert_iterator(_Container& __x, _Iter __i) + : container(std::__addressof(__x)), iter(__i) {} +# 925 "/usr/include/c++/11/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; + } + + + + + insert_iterator& + operator*() + { return *this; } + + + + insert_iterator& + operator++() + { return *this; } + + + + insert_iterator& + operator++(int) + { return *this; } + }; +# 981 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + inline insert_iterator<_Container> + inserter(_Container& __x, typename _Container::iterator __i) + { return insert_iterator<_Container>(__x, __i); } + + + + + +} + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 1003 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + class __normal_iterator + { + protected: + _Iterator _M_current; + + typedef std::iterator_traits<_Iterator> __traits_type; + + 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, + typename __enable_if< + (std::__are_same<_Iter, typename _Container::pointer>::__value), + _Container>::__type>& __i) noexcept + : _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; } + }; +# 1152 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + + inline bool + operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + + inline bool + operator==(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + + inline bool + operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + template + + inline bool + operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + + template + inline bool + operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + + inline bool + operator<(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + inline bool + operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + + inline bool + operator>(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + inline bool + operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + + inline bool + operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + inline bool + operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + template + + inline bool + operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + + + + + + template + + + + 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 + + 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 + + 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(); } +# 1342 "/usr/include/c++/11/bits/stl_iterator.h" 3 + namespace __detail + { +# 1358 "/usr/include/c++/11/bits/stl_iterator.h" 3 + } +# 1369 "/usr/include/c++/11/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; +# 1408 "/usr/include/c++/11/bits/stl_iterator.h" 3 + public: + using iterator_type = _Iterator; +# 1422 "/usr/include/c++/11/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; + + + typedef typename conditional::value, + typename remove_reference<__base_ref>::type&&, + __base_ref>::type reference; + + + 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; + } + + + constexpr iterator_type + base() const + { return _M_current; } +# 1476 "/usr/include/c++/11/bits/stl_iterator.h" 3 + constexpr reference + operator*() const + + + + { return static_cast(*_M_current); } + + + 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; + } + + 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; + } + + 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; + } + + constexpr reference + operator[](difference_type __n) const + + + + { return std::move(_M_current[__n]); } +# 1581 "/usr/include/c++/11/bits/stl_iterator.h" 3 + }; + + template + inline constexpr bool + operator==(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __x.base() == __y.base(); } +# 1600 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + inline constexpr bool + operator!=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + { return !(__x == __y); } + + + template + inline constexpr bool + operator<(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __x.base() < __y.base(); } + + template + inline constexpr bool + operator<=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return !(__y < __x); } + + template + inline constexpr bool + operator>(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __y < __x; } + + template + inline constexpr bool + operator>=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return !(__x < __y); } + + + + + template + inline constexpr bool + operator==(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __x.base() == __y.base(); } +# 1659 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + inline constexpr bool + operator!=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + inline constexpr bool + operator<(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __x.base() < __y.base(); } + + template + inline constexpr bool + operator<=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + inline constexpr bool + operator>(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __y < __x; } + + template + inline constexpr bool + operator>=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x < __y); } + + + + template + 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 + inline constexpr move_iterator<_Iterator> + operator+(typename move_iterator<_Iterator>::difference_type __n, + const move_iterator<_Iterator>& __x) + { return __x + __n; } + + template + 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>>::type> + inline constexpr _ReturnType + __make_move_if_noexcept_iterator(_Iterator __i) + { return _ReturnType(__i); } + + + + template::value, + const _Tp*, move_iterator<_Tp*>>::type> + inline constexpr _ReturnType + __make_move_if_noexcept_iterator(_Tp* __i) + { return _ReturnType(__i); } +# 2447 "/usr/include/c++/11/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()); } +# 2479 "/usr/include/c++/11/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/include/c++/11/bits/stl_algobase.h" 2 3 + +# 1 "/usr/include/c++/11/debug/debug.h" 1 3 +# 48 "/usr/include/c++/11/debug/debug.h" 3 +namespace std +{ + namespace __debug { } +} + + + + +namespace __gnu_debug +{ + using namespace std::__debug; + + template + struct _Safe_iterator; +} +# 70 "/usr/include/c++/11/bits/stl_algobase.h" 2 3 + +# 1 "/usr/include/c++/11/bits/predefined_ops.h" 1 3 +# 35 "/usr/include/c++/11/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/include/c++/11/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"); +# 105 "/usr/include/c++/11/bits/stl_algobase.h" 3 + return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); + } +# 149 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline void + iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) + { + + + + +# 182 "/usr/include/c++/11/bits/stl_algobase.h" 3 + swap(*__a, *__b); + + } +# 198 "/usr/include/c++/11/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; + } +# 227 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + constexpr + inline const _Tp& + min(const _Tp& __a, const _Tp& __b) + { + + + + if (__b < __a) + return __b; + return __a; + } +# 251 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + constexpr + inline const _Tp& + max(const _Tp& __a, const _Tp& __b) + { + + + + if (__a < __b) + return __b; + return __a; + } +# 275 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + constexpr + inline const _Tp& + min(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + + if (__comp(__b, __a)) + return __b; + return __a; + } +# 297 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + 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; } + + template + _Ite + __niter_base(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, + std::random_access_iterator_tag>&); + + + + + template + + inline _From + __niter_wrap(_From __from, _To __res) + { return __from + (__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<> + 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 + struct __copy_move<_IsMove, true, random_access_iterator_tag> + { + template + + static _Tp* + __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) + { + + using __assignable = conditional<_IsMove, + is_move_assignable<_Tp>, + is_copy_assignable<_Tp>>; + + static_assert( __assignable::type::value, "type is not assignable" ); + + const ptrdiff_t _Num = __last - __first; + if (_Num) + __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); + 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); +# 608 "/usr/include/c++/11/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); + } +# 641 "/usr/include/c++/11/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 _Tp* + __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) + { + + using __assignable = conditional<_IsMove, + is_move_assignable<_Tp>, + is_copy_assignable<_Tp>>; + + static_assert( __assignable::type::value, "type is not assignable" ); + + const ptrdiff_t _Num = __last - __first; + if (_Num) + __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); + 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>&); +# 845 "/usr/include/c++/11/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); + } +# 881 "/usr/include/c++/11/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; +# 943 "/usr/include/c++/11/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&); +# 989 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline void + fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) + { + + + + ; + + std::__fill_a(__first, __last, __value); + } + + + 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; } + + + inline constexpr __int128 + __size_to_integer(__int128 __n) { return __n; } + inline constexpr unsigned __int128 + __size_to_integer(unsigned __int128 __n) { return __n; } +# 1041 "/usr/include/c++/11/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; } + + + + + + 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; + } +# 1141 "/usr/include/c++/11/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; + } +# 1487 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline _ForwardIterator + lower_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val) + { + + + + + ; + + return std::__lower_bound(__first, __last, __val, + __gnu_cxx::__ops::__iter_less_val()); + } + + + + inline constexpr int + __lg(int __n) + { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); } + + inline constexpr unsigned + __lg(unsigned __n) + { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); } + + inline constexpr long + __lg(long __n) + { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); } + + inline constexpr unsigned long + __lg(unsigned long __n) + { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); } + + inline constexpr long long + __lg(long long __n) + { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } + + inline constexpr unsigned long long + __lg(unsigned long long __n) + { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } + + +# 1543 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2) + { + + + + + + + ; + + return std::__equal_aux(__first1, __last1, __first2); + } +# 1574 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + 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; + } + + + + 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 (_RAIters()) + { + auto __d1 = std::distance(__first1, __last1); + auto __d2 = std::distance(__first2, __last2); + if (__d1 != __d2) + return false; + return std::equal(__first1, __last1, __first2); + } + + 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 (_RAIters()) + { + auto __d1 = std::distance(__first1, __last1); + auto __d2 = std::distance(__first2, __last2); + if (__d1 != __d2) + return false; + return std::equal(__first1, __last1, __first2, + __binary_pred); + } + + for (; __first1 != __last1 && __first2 != __last2; + ++__first1, (void)++__first2) + if (!bool(__binary_pred(*__first1, *__first2))) + return false; + return __first1 == __last1 && __first2 == __last2; + } +# 1664 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + + + + + + + ; + ; + + return std::__equal4(__first1, __last1, __first2, __last2); + } +# 1697 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline bool + equal(_IIter1 __first1, _IIter1 __last1, + _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred) + { + + + + ; + ; + + return std::__equal4(__first1, __last1, __first2, __last2, + __binary_pred); + } +# 1729 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline bool + lexicographical_compare(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + + + + + + + + + + ; + ; + + return std::__lexicographical_compare_aux(__first1, __last1, + __first2, __last2); + } +# 1764 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + 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)); + } +# 1877 "/usr/include/c++/11/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); + } +# 1905 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2) + { + + + + + + + ; + + return std::__mismatch(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 1939 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + 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); + } +# 1988 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + 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()); + } +# 2024 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + 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 + + 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; + } +# 2181 "/usr/include/c++/11/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()); + } + + + +} +# 46 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/limits" 1 3 +# 40 "/usr/include/c++/11/limits" 3 + +# 41 "/usr/include/c++/11/limits" 3 +# 158 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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; + }; +# 1635 "/usr/include/c++/11/limits" 3 + 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; }; 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; }; +# 1667 "/usr/include/c++/11/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; + }; + + + + + + +} +# 47 "/usr/include/c++/11/bits/specfun.h" 2 3 + + +# 1 "/usr/include/c++/11/tr1/gamma.tcc" 1 3 +# 49 "/usr/include/c++/11/tr1/gamma.tcc" 3 +# 1 "/usr/include/c++/11/tr1/special_function_util.h" 1 3 +# 39 "/usr/include/c++/11/tr1/special_function_util.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 50 "/usr/include/c++/11/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/include/c++/11/tr1/special_function_util.h" 3 + template + inline bool __isnan(_Tp __x) + { return std::isnan(__x); } +# 133 "/usr/include/c++/11/tr1/special_function_util.h" 3 + } + + + + + +} +# 50 "/usr/include/c++/11/tr1/gamma.tcc" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/include/c++/11/tr1/gamma.tcc" 3 + namespace __detail + { +# 76 "/usr/include/c++/11/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/include/c++/11/tr1/gamma.tcc" 3 + template + inline _Tp + __bernoulli(int __n) + { return __bernoulli_series<_Tp>(__n); } +# 153 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/gamma.tcc" 3 + template + inline _Tp + __gamma(_Tp __x) + { return std::exp(__log_gamma(__x)); } +# 356 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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; + } + } + } + + + + + + +} +# 50 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/bessel_function.tcc" 1 3 +# 55 "/usr/include/c++/11/tr1/bessel_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 71 "/usr/include/c++/11/tr1/bessel_function.tcc" 3 + namespace __detail + { +# 98 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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; + } + } + } + + + + + + +} +# 51 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/beta_function.tcc" 1 3 +# 49 "/usr/include/c++/11/tr1/beta_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/include/c++/11/tr1/beta_function.tcc" 3 + namespace __detail + { +# 79 "/usr/include/c++/11/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/include/c++/11/tr1/beta_function.tcc" 3 + return __bet; + } +# 127 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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); + } + } + + + + + + +} +# 52 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/ell_integral.tcc" 1 3 +# 45 "/usr/include/c++/11/tr1/ell_integral.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 59 "/usr/include/c++/11/tr1/ell_integral.tcc" 3 + namespace __detail + { +# 76 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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); + } + } + } + + + + + +} +# 53 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/exp_integral.tcc" 1 3 +# 50 "/usr/include/c++/11/tr1/exp_integral.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 64 "/usr/include/c++/11/tr1/exp_integral.tcc" 3 + namespace __detail + { + template _Tp __expint_E1(_Tp); +# 81 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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); + } + } + + + + + +} +# 54 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/hypergeometric.tcc" 1 3 +# 44 "/usr/include/c++/11/tr1/hypergeometric.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 60 "/usr/include/c++/11/tr1/hypergeometric.tcc" 3 + namespace __detail + { +# 83 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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); + } + } + + + + + + +} +# 55 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/legendre_function.tcc" 1 3 +# 49 "/usr/include/c++/11/tr1/legendre_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/include/c++/11/tr1/legendre_function.tcc" 3 + namespace __detail + { +# 80 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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; + } + } + } + } + + + + + + +} +# 56 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/modified_bessel_func.tcc" 1 3 +# 51 "/usr/include/c++/11/tr1/modified_bessel_func.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/include/c++/11/tr1/modified_bessel_func.tcc" 3 + namespace __detail + { +# 83 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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; + } + } + + + + + +} +# 57 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/poly_hermite.tcc" 1 3 +# 42 "/usr/include/c++/11/tr1/poly_hermite.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 56 "/usr/include/c++/11/tr1/poly_hermite.tcc" 3 + namespace __detail + { +# 72 "/usr/include/c++/11/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/include/c++/11/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); + } + } + + + + + +} +# 58 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/poly_laguerre.tcc" 1 3 +# 44 "/usr/include/c++/11/tr1/poly_laguerre.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 60 "/usr/include/c++/11/tr1/poly_laguerre.tcc" 3 + namespace __detail + { +# 75 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/poly_laguerre.tcc" 3 + template + inline _Tp + __laguerre(unsigned int __n, _Tp __x) + { return __poly_laguerre(__n, 0, __x); } + } + + + + + + +} +# 59 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/riemann_zeta.tcc" 1 3 +# 47 "/usr/include/c++/11/tr1/riemann_zeta.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 63 "/usr/include/c++/11/tr1/riemann_zeta.tcc" 3 + namespace __detail + { +# 78 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/riemann_zeta.tcc" 3 + template + inline _Tp + __hurwitz_zeta(_Tp __a, _Tp __s) + { return __hurwitz_zeta_glob(__a, __s); } + } + + + + + + +} +# 60 "/usr/include/c++/11/bits/specfun.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 205 "/usr/include/c++/11/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); } +# 250 "/usr/include/c++/11/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); + } +# 266 "/usr/include/c++/11/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); } +# 296 "/usr/include/c++/11/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); + } +# 311 "/usr/include/c++/11/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); } +# 341 "/usr/include/c++/11/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); + } +# 357 "/usr/include/c++/11/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); } +# 389 "/usr/include/c++/11/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); + } +# 405 "/usr/include/c++/11/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); } +# 436 "/usr/include/c++/11/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); + } +# 452 "/usr/include/c++/11/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); } +# 487 "/usr/include/c++/11/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); + } +# 503 "/usr/include/c++/11/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); } +# 533 "/usr/include/c++/11/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); + } +# 549 "/usr/include/c++/11/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); } +# 579 "/usr/include/c++/11/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); + } +# 595 "/usr/include/c++/11/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); } +# 631 "/usr/include/c++/11/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); + } +# 647 "/usr/include/c++/11/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); } +# 679 "/usr/include/c++/11/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); + } +# 695 "/usr/include/c++/11/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); } +# 727 "/usr/include/c++/11/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); + } +# 743 "/usr/include/c++/11/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); } +# 775 "/usr/include/c++/11/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); + } +# 791 "/usr/include/c++/11/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); } +# 828 "/usr/include/c++/11/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); + } +# 843 "/usr/include/c++/11/bits/specfun.h" 3 + inline float + expintf(float __x) + { return __detail::__expint(__x); } + + + + + + + + inline long double + expintl(long double __x) + { return __detail::__expint(__x); } +# 868 "/usr/include/c++/11/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); + } +# 884 "/usr/include/c++/11/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); } +# 916 "/usr/include/c++/11/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); + } +# 932 "/usr/include/c++/11/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); } +# 960 "/usr/include/c++/11/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); + } +# 976 "/usr/include/c++/11/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); } +# 1005 "/usr/include/c++/11/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); + } +# 1021 "/usr/include/c++/11/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); } +# 1056 "/usr/include/c++/11/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); + } +# 1072 "/usr/include/c++/11/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); } +# 1100 "/usr/include/c++/11/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); + } +# 1116 "/usr/include/c++/11/bits/specfun.h" 3 + inline float + sph_legendref(unsigned int __l, unsigned int __m, float __theta) + { return __detail::__sph_legendre(__l, __m, __theta); } +# 1127 "/usr/include/c++/11/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); } +# 1147 "/usr/include/c++/11/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); + } +# 1163 "/usr/include/c++/11/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); } +# 1191 "/usr/include/c++/11/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"))) +{ + +# 1218 "/usr/include/c++/11/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; + } +# 1294 "/usr/include/c++/11/bits/specfun.h" 3 + inline float + conf_hypergf(float __a, float __c, float __x) + { return std::__detail::__conf_hyperg(__a, __c, __x); } +# 1305 "/usr/include/c++/11/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); } +# 1325 "/usr/include/c++/11/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); + } +# 1342 "/usr/include/c++/11/bits/specfun.h" 3 + inline float + hypergf(float __a, float __b, float __c, float __x) + { return std::__detail::__hyperg(__a, __b, __c, __x); } +# 1353 "/usr/include/c++/11/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); } +# 1374 "/usr/include/c++/11/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); + } + + + +} + + +#pragma GCC visibility pop +# 1936 "/usr/include/c++/11/cmath" 2 3 + + +} +# 37 "/usr/include/c++/11/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; +# 10551 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 +# 1 "/usr/include/c++/11/stdlib.h" 1 3 +# 10552 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 + + +# 1 "/usr/include/c++/11/cmath" 1 3 +# 39 "/usr/include/c++/11/cmath" 3 + +# 40 "/usr/include/c++/11/cmath" 3 +# 10555 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 +# 1 "/usr/include/c++/11/cstdlib" 1 3 +# 39 "/usr/include/c++/11/cstdlib" 3 + +# 40 "/usr/include/c++/11/cstdlib" 3 +# 10556 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 +# 10626 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + +# 10626 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 10805 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 11206 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +namespace std { +# 11215 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int abs(long long int); +# 11225 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int abs(long int); +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); +# 11350 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +} +# 11456 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 11595 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11736 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float min(const float a, const float b); +# 11747 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const double b); +# 11757 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const float a, const double b); +# 11767 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11866 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float max(const float a, const float b); +# 11877 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const double b); +# 11887 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const float a, const double b); +# 11897 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const float b); +# 11909 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +} +# 12199 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.hpp" 1 +# 77 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.hpp" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 78 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.hpp" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 79 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.hpp" 2 +# 758 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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)); +} +# 12200 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 +# 304 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 2 +# 118 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 1 +# 81 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 82 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_types.h" 1 +# 83 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 84 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 95 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +extern "C" +{ +# 106 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mulhi(int x, int y); +# 116 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umulhi(unsigned int x, unsigned int y); +# 126 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int_as_float(int x); +# 154 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float_as_int(float x); +# 163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint_as_float(unsigned int x); +# 172 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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(); +# 207 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __saturatef(float x); +# 276 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __sad(int x, int y, unsigned int z); +# 344 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 354 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mul24(int x, int y); +# 364 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umul24(unsigned int x, unsigned int y); +# 377 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float fdividef(float x, float y); +# 450 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 463 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __sinf(float x) +# 463 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 463 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __cosf(float x) +# 474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 487 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __tanf(float x) +# 487 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 487 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void __sincosf(float x, float *sptr, float *cptr) +# 502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 551 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __expf(float x) +# 551 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 551 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 582 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __exp10f(float x) +# 582 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 582 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 607 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log2f(float x) +# 607 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 607 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 634 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log10f(float x) +# 634 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 634 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 677 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __logf(float x) +# 677 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 677 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 719 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __powf(float x, float y) +# 719 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 719 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 728 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rn(float x); +# 737 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rz(float x); +# 746 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_ru(float); +# 755 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rd(float x); +# 764 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rn(float x); +# 773 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rz(float x); +# 782 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_ru(float x); +# 791 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rd(float x); +# 800 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rn(int x); +# 809 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rz(int x); +# 818 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_ru(int x); +# 827 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rd(int x); +# 836 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rn(unsigned int x); +# 845 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rz(unsigned int x); +# 854 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_ru(unsigned int x); +# 863 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rd(unsigned int x); +# 872 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rn(float x); +# 881 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rz(float x); +# 890 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_ru(float x); +# 899 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rd(float x); +# 908 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rn(float x); +# 917 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rz(float x); +# 926 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_ru(float x); +# 935 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rd(float x); +# 944 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rn(long long int x); +# 953 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rz(long long int x); +# 962 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_ru(long long int x); +# 971 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rd(long long int x); +# 980 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rn(unsigned long long int x); +# 989 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rz(unsigned long long int x); +# 998 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_ru(unsigned long long int x); +# 1007 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rd(unsigned long long int x); +# 1019 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rn(float x, float y); +# 1031 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rz(float x, float y); +# 1043 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_ru(float x, float y); +# 1055 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rd(float x, float y); +# 1067 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rn(float x, float y); +# 1079 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rz(float x, float y); +# 1091 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_ru(float x, float y); +# 1103 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rd(float x, float y); +# 1115 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rn(float x, float y); +# 1127 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rz(float x, float y); +# 1139 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_ru(float x, float y); +# 1151 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rd(float x, float y); +# 1304 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rn(float x, float y, float z); +# 1457 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rz(float x, float y, float z); +# 1610 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_ru(float x, float y, float z); +# 1763 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rd(float x, float y, float z); +# 1796 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rn(float x); +# 1829 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rz(float x); +# 1862 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_ru(float x); +# 1895 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rd(float x); +# 1926 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rn(float x); +# 1957 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rz(float x); +# 1988 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_ru(float x); +# 2019 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rd(float x); +# 2058 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frsqrt_rn(float x); +# 2069 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rn(float x, float y); +# 2080 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rz(float x, float y); +# 2091 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_ru(float x, float y); +# 2102 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rd(float x, float y); +# 2111 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clz(int x); +# 2122 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffs(int x); +# 2131 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popc(unsigned int x); +# 2140 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __brev(unsigned int x); +# 2149 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clzll(long long int x); +# 2160 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffsll(long long int x); +# 2171 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popcll(unsigned long long int x); +# 2180 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __brevll(unsigned long long int x); +# 2203 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 2215 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __hadd(int x, int y); +# 2228 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __rhadd(int x, int y); +# 2240 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __uhadd(unsigned int x, unsigned int y); +# 2253 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __urhadd(unsigned int x, unsigned int y); +# 2263 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __double2int_rz(double x); +# 2272 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __double2uint_rz(double x); +# 2281 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __double2ll_rz(double x); +# 2290 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 2320 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs2(unsigned int a); +# 2331 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss2(unsigned int a); +# 2342 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd2(unsigned int a, unsigned int b); +# 2353 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss2 (unsigned int a, unsigned int b); +# 2363 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus2 (unsigned int a, unsigned int b); +# 2374 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs2(unsigned int a, unsigned int b); +# 2385 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu2(unsigned int a, unsigned int b); +# 2396 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu2(unsigned int a, unsigned int b); +# 2407 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq2(unsigned int a, unsigned int b); +# 2418 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges2(unsigned int a, unsigned int b); +# 2429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu2(unsigned int a, unsigned int b); +# 2440 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts2(unsigned int a, unsigned int b); +# 2451 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu2(unsigned int a, unsigned int b); +# 2462 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples2(unsigned int a, unsigned int b); +# 2474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu2(unsigned int a, unsigned int b); +# 2485 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts2(unsigned int a, unsigned int b); +# 2496 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu2(unsigned int a, unsigned int b); +# 2507 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne2(unsigned int a, unsigned int b); +# 2518 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu2(unsigned int a, unsigned int b); +# 2529 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs2(unsigned int a, unsigned int b); +# 2540 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu2(unsigned int a, unsigned int b); +# 2551 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins2(unsigned int a, unsigned int b); +# 2562 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu2(unsigned int a, unsigned int b); +# 2573 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq2(unsigned int a, unsigned int b); +# 2584 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges2(unsigned int a, unsigned int b); +# 2595 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu2(unsigned int a, unsigned int b); +# 2606 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts2(unsigned int a, unsigned int b); +# 2617 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu2(unsigned int a, unsigned int b); +# 2628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles2(unsigned int a, unsigned int b); +# 2639 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu2(unsigned int a, unsigned int b); +# 2650 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts2(unsigned int a, unsigned int b); +# 2661 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu2(unsigned int a, unsigned int b); +# 2672 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne2(unsigned int a, unsigned int b); +# 2683 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu2(unsigned int a, unsigned int b); +# 2694 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub2(unsigned int a, unsigned int b); +# 2705 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss2 (unsigned int a, unsigned int b); +# 2716 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus2 (unsigned int a, unsigned int b); +# 2726 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg2(unsigned int a); +# 2736 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss2(unsigned int a); +# 2747 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs2(unsigned int a, unsigned int b); +# 2758 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads2(unsigned int a, unsigned int b); +# 2768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs4(unsigned int a); +# 2779 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss4(unsigned int a); +# 2790 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd4(unsigned int a, unsigned int b); +# 2801 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss4 (unsigned int a, unsigned int b); +# 2811 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus4 (unsigned int a, unsigned int b); +# 2822 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs4(unsigned int a, unsigned int b); +# 2833 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu4(unsigned int a, unsigned int b); +# 2844 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu4(unsigned int a, unsigned int b); +# 2855 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq4(unsigned int a, unsigned int b); +# 2866 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges4(unsigned int a, unsigned int b); +# 2877 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu4(unsigned int a, unsigned int b); +# 2888 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts4(unsigned int a, unsigned int b); +# 2899 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu4(unsigned int a, unsigned int b); +# 2910 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples4(unsigned int a, unsigned int b); +# 2921 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu4(unsigned int a, unsigned int b); +# 2932 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts4(unsigned int a, unsigned int b); +# 2943 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu4(unsigned int a, unsigned int b); +# 2954 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne4(unsigned int a, unsigned int b); +# 2965 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu4(unsigned int a, unsigned int b); +# 2976 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs4(unsigned int a, unsigned int b); +# 2987 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu4(unsigned int a, unsigned int b); +# 2998 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins4(unsigned int a, unsigned int b); +# 3009 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu4(unsigned int a, unsigned int b); +# 3020 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq4(unsigned int a, unsigned int b); +# 3031 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles4(unsigned int a, unsigned int b); +# 3042 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu4(unsigned int a, unsigned int b); +# 3053 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts4(unsigned int a, unsigned int b); +# 3064 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu4(unsigned int a, unsigned int b); +# 3075 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges4(unsigned int a, unsigned int b); +# 3086 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu4(unsigned int a, unsigned int b); +# 3097 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts4(unsigned int a, unsigned int b); +# 3108 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu4(unsigned int a, unsigned int b); +# 3119 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne4(unsigned int a, unsigned int b); +# 3130 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu4(unsigned int a, unsigned int b); +# 3141 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub4(unsigned int a, unsigned int b); +# 3152 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss4(unsigned int a, unsigned int b); +# 3163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus4(unsigned int a, unsigned int b); +# 3173 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg4(unsigned int a); +# 3183 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss4(unsigned int a); +# 3194 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs4(unsigned int a, unsigned int b); +# 3205 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads4(unsigned int a, unsigned int b); +# 3215 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax_s32_relu(const int a, const int b); +# 3227 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin_s32_relu(const int a, const int b); +# 3248 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3257 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3269 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3278 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3290 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3299 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3311 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3320 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3332 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3341 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3353 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3362 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3374 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3395 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3416 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3425 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3437 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3446 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3458 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3468 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3480 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3490 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3511 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3520 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3529 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3538 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3552 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3566 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3580 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3594 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); + + + + + + +} +# 3617 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" 1 +# 81 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 82 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 84 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" 2 +# 108 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +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); +# 159 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 213 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 226 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 243 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + short cS_lo = *(short*)& cU_lo; + short cS_hi = *(short*)& cU_hi; + + + short ansS_lo = (short)max(max(aS_lo, bS_lo), cS_lo); + short ansS_hi = (short)max(max(aS_hi, bS_hi), cS_hi); + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_hi; + + + res = ((unsigned int) ansU_lo) | (((unsigned int) 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){ +# 286 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 332 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 348 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + short cS_lo = *(short*)& cU_lo; + short cS_hi = *(short*)& cU_hi; + + + short ansS_lo = (short)min(min(aS_lo, bS_lo), cS_lo); + short ansS_hi = (short)min(min(aS_hi, bS_hi), cS_hi); + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_hi; + + + res = ((unsigned int) ansU_lo) | (((unsigned int) 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){ +# 392 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 425 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 438 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 456 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + short cS_lo = *(short*)& cU_lo; + short cS_hi = *(short*)& cU_hi; + + + short ansS_lo = (short)max(max(aS_lo, bS_lo), cS_lo); + short ansS_hi = (short)max(max(aS_hi, bS_hi), cS_hi); + + + if(ansS_lo < 0){ansS_lo = 0;} + if(ansS_hi < 0){ansS_hi = 0;} + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_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_relu(const int a, const int b, const int c){ +# 504 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 522 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + short cS_lo = *(short*)& cU_lo; + short cS_hi = *(short*)& cU_hi; + + + short ansS_lo = (short)min(min(aS_lo, bS_lo), cS_lo); + short ansS_hi = (short)min(min(aS_hi, bS_hi), cS_hi); + + + if(ansS_lo < 0){ansS_lo = 0;} + if(ansS_hi < 0){ansS_hi = 0;} + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_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(const int a, const int b, const int c){ +# 570 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 617 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 630 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 663 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 676 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 723 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 736 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 769 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 782 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 834 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 847 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 899 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 918 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 939 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 961 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 983 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 1012 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + + short ansS_lo = (short)max(aS_lo, bS_lo); + short ansS_hi = (short)max(aS_hi, bS_hi); + + *pred_hi = (aS_hi >= bS_hi); + *pred_lo = (aS_lo >= bS_lo); + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_hi; + + + 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 __vibmax_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1065 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 1107 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + + short ansS_lo = (short)min(aS_lo, bS_lo); + short ansS_hi = (short)min(aS_hi, bS_hi); + + *pred_hi = (aS_hi <= bS_hi); + *pred_lo = (aS_lo <= bS_lo); + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_hi; + + + 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_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1160 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; + +} +# 3618 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_atomic_functions.h" 1 +# 89 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_atomic_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_atomic_functions.hpp" 1 +# 62 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_atomic_functions.h" 2 +# 3621 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" 1 +# 83 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 84 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 86 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" 2 + + + + +extern "C" +{ +# 100 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 109 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 266 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 423 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 580 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 737 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 749 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 761 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 773 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 785 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 797 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 809 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 821 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 833 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 845 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 857 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 869 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 881 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 890 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 899 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 908 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 917 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 926 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 935 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 944 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 953 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 962 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 971 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 980 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 989 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 998 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 1007 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 1016 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 1025 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 1059 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 1068 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 1077 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 1086 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 1095 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 1104 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1113 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1122 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1131 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1141 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.hpp" 1 +# 83 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.hpp" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 84 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.hpp" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 86 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" 2 +# 3622 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_atomic_functions.h" 1 +# 88 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_atomic_functions.h" +static __inline__ __attribute__((device)) float atomicAdd(float *address, float val) ; + + + + + + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_atomic_functions.hpp" 1 +# 54 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_atomic_functions.hpp" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) float __fAtomicAdd(float *address, float val); +} +# 82 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_atomic_functions.hpp" +static __inline__ __attribute__((device)) float atomicAdd(float *address, float val) +{ + return __fAtomicAdd(address, val); +} +# 97 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_atomic_functions.h" 2 +# 3623 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_atomic_functions.h" 1 +# 89 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_atomic_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_atomic_functions.hpp" 1 +# 54 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_atomic_functions.h" 2 +# 3624 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_35_atomic_functions.h" 1 +# 56 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_35_atomic_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_atomic_functions.h" 1 +# 57 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_35_atomic_functions.h" 2 +# 3625 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_60_atomic_functions.h" 1 +# 325 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_60_atomic_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_60_atomic_functions.hpp" 1 +# 61 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_60_atomic_functions.h" 2 +# 3626 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" 1 +# 95 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) void __threadfence_system(void); +# 109 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rn(double x, double y); +# 121 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rz(double x, double y); +# 133 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_ru(double x, double y); +# 145 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rd(double x, double y); +# 179 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rn(double x); +# 213 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rz(double x); +# 247 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_ru(double x); +# 281 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rd(double x); +# 313 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rn(double x); +# 345 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rz(double x); +# 377 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_ru(double x); +# 409 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 424 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rn(float x, float y, float z); +# 433 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rd(float x, float y, float z); +# 442 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_ru(float x, float y, float z); +# 451 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rz(float x, float y, float z); +# 464 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 473 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 630 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 944 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 1101 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 1113 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 1125 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 1137 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 1149 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 1161 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 1173 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 1185 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 1197 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 1209 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 1221 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 1233 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 1245 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 1254 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 1263 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 1272 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 1281 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 1290 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 1299 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 1308 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 1317 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 1326 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 1335 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 1344 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 1353 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 1362 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 1371 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 1380 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 1389 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 1414 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 1423 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 1432 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 1441 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 1450 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 1459 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 1468 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1477 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1486 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1495 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1505 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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) ; +# 1554 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.hpp" 1 +# 75 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 131 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1555 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" 2 +# 3627 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_30_intrinsics.h" 1 +# 123 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_30_intrinsics.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_30_intrinsics.hpp" 1 +# 73 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_30_intrinsics.hpp" +extern "C" +{ +} +# 89 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_30_intrinsics.h" 2 +# 3628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.h" 1 +# 91 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_l(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 477 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_lc(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 490 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_r(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_rc(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 512 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.hpp" 1 +# 73 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.hpp" +extern "C" +{ + + +} +# 101 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.h" 2 +# 3629 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_35_intrinsics.h" 1 +# 3630 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" 1 +# 235 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.hpp" 1 +# 236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" 2 +# 3631 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_70_rt.h" 1 +# 128 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_70_rt.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_70_rt.hpp" 1 +# 129 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_70_rt.h" 2 +# 3632 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_80_rt.h" 1 +# 156 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_80_rt.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_80_rt.hpp" 1 +# 157 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_80_rt.h" 2 +# 3633 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" 1 +# 273 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.hpp" 1 +# 274 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" 2 +# 3634 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/texture_indirect_functions.h" 1 +# 65 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +} +# 3636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/surface_indirect_functions.h" 1 +# 58 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 3637 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/cudacc_ext.h" 1 +# 3639 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 119 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_launch_parameters.h" 1 +# 68 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 +# 148 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +# 1 "/usr/include/c++/11/utility" 1 3 +# 58 "/usr/include/c++/11/utility" 3 + +# 59 "/usr/include/c++/11/utility" 3 +# 69 "/usr/include/c++/11/utility" 3 +# 1 "/usr/include/c++/11/bits/stl_relops.h" 1 3 +# 67 "/usr/include/c++/11/bits/stl_relops.h" 3 + +# 67 "/usr/include/c++/11/bits/stl_relops.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + namespace rel_ops + { +# 85 "/usr/include/c++/11/bits/stl_relops.h" 3 + template + inline bool + operator!=(const _Tp& __x, const _Tp& __y) + { return !(__x == __y); } +# 98 "/usr/include/c++/11/bits/stl_relops.h" 3 + template + inline bool + operator>(const _Tp& __x, const _Tp& __y) + { return __y < __x; } +# 111 "/usr/include/c++/11/bits/stl_relops.h" 3 + template + inline bool + operator<=(const _Tp& __x, const _Tp& __y) + { return !(__y < __x); } +# 124 "/usr/include/c++/11/bits/stl_relops.h" 3 + template + inline bool + operator>=(const _Tp& __x, const _Tp& __y) + { return !(__x < __y); } + } + + +} +# 70 "/usr/include/c++/11/utility" 2 3 + + + + + + +# 1 "/usr/include/c++/11/initializer_list" 1 3 +# 33 "/usr/include/c++/11/initializer_list" 3 + +# 34 "/usr/include/c++/11/initializer_list" 3 + + + + + +#pragma GCC visibility push(default) + + + +namespace std +{ + + 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(); } +} + +#pragma GCC visibility pop +# 77 "/usr/include/c++/11/utility" 2 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 + struct tuple_element; + + + template + using __tuple_element_t = typename tuple_element<__i, _Tp>::type; + + template + struct tuple_element<__i, const _Tp> + { + typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; + }; + + template + struct tuple_element<__i, volatile _Tp> + { + typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; + }; + + template + struct tuple_element<__i, const volatile _Tp> + { + typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; + }; + + + + + + + + template + using tuple_element_t = typename tuple_element<__i, _Tp>::type; + + + + + + 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 __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); } + + + + + template + + inline _Tp + exchange(_Tp& __obj, _Up&& __new_val) + { return std::__exchange(__obj, std::forward<_Up>(__new_val)); } + + + + + + template struct _Index_tuple { }; + + + template + struct _Build_index_tuple + { +# 312 "/usr/include/c++/11/utility" 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 + [[nodiscard]] + constexpr add_const_t<_Tp>& + as_const(_Tp& __t) noexcept + { return __t; } + + template + void as_const(const _Tp&&) = delete; +# 476 "/usr/include/c++/11/utility" 3 + +} +# 149 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 +# 206 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" + +# 206 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernel( + const 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); +} +# 277 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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)...); +} +# 340 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel( + const 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); +} +# 384 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaEventCreate( + cudaEvent_t *event, + unsigned int flags +) +{ + return ::cudaEventCreateWithFlags(event, flags); +} +# 428 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 499 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 646 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 749 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 799 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 878 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 932 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 980 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1034 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1103 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1174 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1225 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1273 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1331 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1390 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +} +# 1443 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1493 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolAddress( + void **devPtr, + const T &symbol +) +{ + return ::cudaGetSymbolAddress(devPtr, (const void*)&symbol); +} +# 1525 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolSize( + size_t *size, + const T &symbol +) +{ + return ::cudaGetSymbolSize(size, (const void*)&symbol); +} +# 1577 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 + +} +# 1636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1688 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; + } +}; +# 1758 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +} +# 1954 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 2000 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 2038 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 2097 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 2141 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 2184 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 2224 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetAttributes( + struct cudaFuncAttributes *attr, + T *entry +) +{ + return ::cudaFuncGetAttributes(attr, (const void*)entry); +} +# 2286 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetAttribute( + T *entry, + enum cudaFuncAttribute attr, + int value +) +{ + return ::cudaFuncSetAttribute((const void*)entry, attr, value); +} +# 2318 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetName( + const char **name, + const T *func +) +{ + return ::cudaFuncGetName(name, (const void *)func); +} +# 2341 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetKernel( + cudaKernel_t *kernelPtr, + const T *entryFuncAddr +) +{ + return ::cudaGetKernel(kernelPtr, (const void *)entryFuncAddr); +} +# 2359 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +#pragma GCC diagnostic pop +# 0 "" 2 +# 1 "CMakeCUDACompilerId.cu" +# 492 "CMakeCUDACompilerId.cu" +char const* info_compiler = "INFO" ":" "compiler[" "NVIDIA" "]"; + +char const* info_simulate = "INFO" ":" "simulate[" "GNU" "]"; +# 819 "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' + (((4) / 10000000)%10)), ('0' + (((4) / 1000000)%10)), ('0' + (((4) / 100000)%10)), ('0' + (((4) / 10000)%10)), ('0' + (((4) / 1000)%10)), ('0' + (((4) / 100)%10)), ('0' + (((4) / 10)%10)), ('0' + ((4) % 10)), + + '.', ('0' + (((131) / 10000000)%10)), ('0' + (((131) / 1000000)%10)), ('0' + (((131) / 100000)%10)), ('0' + (((131) / 10000)%10)), ('0' + (((131) / 1000)%10)), ('0' + (((131) / 100)%10)), ('0' + (((131) / 10)%10)), ('0' + ((131) % 10)), + + + + + + ']','\0'}; +# 848 "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' + (((11) / 10000000)%10)), ('0' + (((11) / 1000000)%10)), ('0' + (((11) / 100000)%10)), ('0' + (((11) / 10000)%10)), ('0' + (((11) / 1000)%10)), ('0' + (((11) / 100)%10)), ('0' + (((11) / 10)%10)), ('0' + ((11) % 10)), + + '.', ('0' + (((4) / 10000000)%10)), ('0' + (((4) / 1000000)%10)), ('0' + (((4) / 100000)%10)), ('0' + (((4) / 10000)%10)), ('0' + (((4) / 1000)%10)), ('0' + (((4) / 100)%10)), ('0' + (((4) / 10)%10)), ('0' + ((4) % 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' + (((11) / 10000000)%10)), ('0' + (((11) / 1000000)%10)), ('0' + (((11) / 100000)%10)), ('0' + (((11) / 10000)%10)), ('0' + (((11) / 1000)%10)), ('0' + (((11) / 100)%10)), ('0' + (((11) / 10)%10)), ('0' + ((11) % 10)), + + '.', ('0' + (((4) / 10000000)%10)), ('0' + (((4) / 1000000)%10)), ('0' + (((4) / 100000)%10)), ('0' + (((4) / 10000)%10)), ('0' + (((4) / 1000)%10)), ('0' + (((4) / 100)%10)), ('0' + (((4) / 10)%10)), ('0' + ((4) % 10)), + + '.', ('0' + (((0) / 10000000)%10)), ('0' + (((0) / 1000000)%10)), ('0' + (((0) / 100000)%10)), ('0' + (((0) / 10000)%10)), ('0' + (((0) / 1000)%10)), ('0' + (((0) / 100)%10)), ('0' + (((0) / 10)%10)), ('0' + ((0) % 10)), + + + + + + ']','\0'}; +# 911 "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/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp4.ii b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp4.ii new file mode 100644 index 0000000..0e1e782 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp4.ii @@ -0,0 +1,32659 @@ +# 0 "CMakeCUDACompilerId.cu" +# 0 "" +# 0 "" +# 1 "/usr/include/stdc-predef.h" 1 3 4 +# 0 "" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 1 +# 61 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +#pragma GCC diagnostic push + + +#pragma GCC diagnostic ignored "-Wunused-function" +# 82 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_config.h" 1 +# 218 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_config.h" +# 1 "/usr/include/features.h" 1 3 4 +# 392 "/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/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 21 "/usr/include/features-time64.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 1 3 4 +# 19 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 20 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 2 3 4 +# 22 "/usr/include/features-time64.h" 2 3 4 +# 393 "/usr/include/features.h" 2 3 4 +# 486 "/usr/include/features.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4 +# 559 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 560 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 +# 561 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 +# 487 "/usr/include/features.h" 2 3 4 +# 510 "/usr/include/features.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4 +# 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4 +# 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4 +# 511 "/usr/include/features.h" 2 3 4 +# 219 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_config.h" 2 +# 83 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 + + + + + + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 56 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_types.h" 1 +# 59 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_types.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 64 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" +# 1 "/usr/include/ctype.h" 1 3 4 +# 26 "/usr/include/ctype.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 1 3 4 +# 19 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 20 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 2 3 4 +# 29 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 + + + +# 31 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4 +# 142 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/time64.h" 1 3 4 +# 143 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/endian.h" 1 3 4 +# 35 "/usr/include/x86_64-linux-gnu/bits/endian.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/endianness.h" 1 3 4 +# 36 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/types/locale_t.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 2 +# 60 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_types.h" 2 +# 68 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_types.h" + +# 68 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_types.h" +enum __attribute__((device_builtin)) cudaRoundMode +{ + cudaRoundNearest, + cudaRoundZero, + cudaRoundPosInf, + cudaRoundMinInf +}; +# 57 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 2 + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" 1 +# 59 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 60 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" 1 +# 65 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 66 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" 2 +# 104 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" 2 +# 83 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h" 1 3 4 + + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h" 1 3 4 +# 203 "/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h" 3 4 +# 1 "/usr/include/limits.h" 1 3 4 +# 26 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 +# 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4 +# 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4 +# 1 "/usr/include/linux/limits.h" 1 3 4 +# 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4 +# 81 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h" 3 4 + +# 23 "/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h" 3 4 +extern "C" { +extern long int __sysconf (int __name) noexcept (true); +} +# 82 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4 +# 162 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 +# 196 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4 +# 200 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 1 3 4 +# 64 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/uio_lim.h" 1 3 4 +# 65 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 2 3 4 +# 204 "/usr/include/limits.h" 2 3 4 +# 204 "/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h" 2 3 4 +# 8 "/usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h" 2 3 4 +# 35 "/usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h" 2 3 4 +# 84 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" 2 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 1 3 4 +# 143 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 3 4 +typedef long int ptrdiff_t; +# 209 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 3 4 +typedef long unsigned int size_t; +# 415 "/usr/lib/gcc/x86_64-linux-gnu/11/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)))); +# 426 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 3 4 +} max_align_t; + + + + + + + typedef decltype(nullptr) nullptr_t; +# 85 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" 2 +# 205 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + +# 205 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorAddressOfConstant = 22, +# 345 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorTextureFetchFailed = 23, +# 354 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorTextureNotBound = 24, +# 363 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorSynchronizationError = 25, + + + + + cudaErrorInvalidFilterSetting = 26, + + + + + + cudaErrorInvalidNormSetting = 27, + + + + + + + + cudaErrorMixedDeviceExecution = 28, + + + + + + + + cudaErrorNotYetImplemented = 31, +# 399 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorMemoryValueTooLarge = 32, + + + + + + cudaErrorStubLibrary = 34, + + + + + + + cudaErrorInsufficientDriver = 35, + + + + + + + cudaErrorCallRequiresNewerDriver = 36, + + + + + + cudaErrorInvalidSurface = 37, + + + + + + cudaErrorDuplicateVariableName = 43, + + + + + + cudaErrorDuplicateTextureName = 44, + + + + + + cudaErrorDuplicateSurfaceName = 45, +# 453 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorDevicesUnavailable = 46, +# 466 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorIncompatibleDriverContext = 49, + + + + + + cudaErrorMissingConfiguration = 52, +# 481 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorPriorLaunchFailure = 53, + + + + + + cudaErrorLaunchMaxDepthExceeded = 65, + + + + + + + + cudaErrorLaunchFileScopedTex = 66, + + + + + + + + cudaErrorLaunchFileScopedSurf = 67, +# 519 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorSyncDepthExceeded = 68, +# 531 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorLaunchPendingCountExceeded = 69, + + + + + + cudaErrorInvalidDeviceFunction = 98, + + + + + + cudaErrorNoDevice = 100, + + + + + + + cudaErrorInvalidDevice = 101, + + + + + cudaErrorDeviceNotLicensed = 102, +# 564 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorSoftwareValidityNotEstablished = 103, + + + + + cudaErrorStartupFailure = 127, + + + + + cudaErrorInvalidKernelImage = 200, +# 584 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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, + + + + + cudaErrorInvalidSource = 300, + + + + + cudaErrorFileNotFound = 301, + + + + + cudaErrorSharedObjectSymbolNotFound = 302, + + + + + cudaErrorSharedObjectInitFailed = 303, + + + + + cudaErrorOperatingSystem = 304, + + + + + + + cudaErrorInvalidResourceHandle = 400, + + + + + + cudaErrorIllegalState = 401, + + + + + + + + cudaErrorLossyQuery = 402, + + + + + + + cudaErrorSymbolNotFound = 500, + + + + + + + + cudaErrorNotReady = 600, + + + + + + + + cudaErrorIllegalAddress = 700, +# 786 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorLaunchOutOfResources = 701, +# 797 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorLaunchTimeout = 702, + + + + + + cudaErrorLaunchIncompatibleTexturing = 703, + + + + + + + cudaErrorPeerAccessAlreadyEnabled = 704, + + + + + + + cudaErrorPeerAccessNotEnabled = 705, +# 830 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorSetOnActiveProcess = 708, + + + + + + + cudaErrorContextIsDestroyed = 709, + + + + + + + cudaErrorAssert = 710, + + + + + + + cudaErrorTooManyPeers = 711, + + + + + + cudaErrorHostMemoryAlreadyRegistered = 712, + + + + + + cudaErrorHostMemoryNotRegistered = 713, +# 872 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorHardwareStackError = 714, + + + + + + + + cudaErrorIllegalInstruction = 715, +# 889 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorMisalignedAddress = 716, +# 900 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorInvalidAddressSpace = 717, + + + + + + + + cudaErrorInvalidPc = 718, +# 919 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorLaunchFailure = 719, +# 928 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorCooperativeLaunchTooLarge = 720, + + + + + cudaErrorNotPermitted = 800, + + + + + + cudaErrorNotSupported = 801, +# 948 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorSystemNotReady = 802, + + + + + + + cudaErrorSystemDriverMismatch = 803, +# 964 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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, +# 1080 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaErrorExternalDevice = 911, + + + + + + cudaErrorInvalidClusterSize = 912, + + + + + 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 +}; + + + + +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; +# 1184 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +}; +# 1353 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +struct __attribute__((device_builtin)) cudaAccessPolicyWindow { + void *base_ptr; + size_t num_bytes; + float hitRatio; + enum cudaAccessProperty hitProp; + enum cudaAccessProperty missProp; +}; +# 1371 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 1603 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + int device; + + + + + + void *devicePointer; +# 1618 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 1690 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + int preferredShmemCarveout; + + + + + + int clusterDimMustBeSet; +# 1707 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + int requiredClusterWidth; + int requiredClusterHeight; + int requiredClusterDepth; + + + + + + int clusterSchedulingPolicyPreference; +# 1737 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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, + cudaDevAttrMax +}; + + + + +enum __attribute__((device_builtin)) cudaMemPoolAttr +{ +# 2027 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + cudaMemPoolReuseFollowEventDependencies = 0x1, + + + + + + + cudaMemPoolReuseAllowOpportunistic = 0x2, + + + + + + + + cudaMemPoolReuseAllowInternalDependencies = 0x3, +# 2053 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +}; + + + + +struct __attribute__((device_builtin)) cudaMemPoolProps { + enum cudaMemAllocationType allocType; + enum cudaMemAllocationHandleType handleTypes; + struct cudaMemLocation location; + + + + + + + void *win32SecurityAttributes; + size_t maxSize; + unsigned char reserved[56]; +}; + + + + +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)) 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 reserved2[2]; + int reserved1[1]; + int reserved[60]; +}; +# 2372 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +}; +# 2471 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +struct __attribute__((device_builtin)) cudaExternalMemoryHandleDesc { + + + + enum cudaExternalMemoryHandleType type; + union { + + + + + + int fd; +# 2498 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 2648 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 2712 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 2761 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 2807 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 2858 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + unsigned int flags; + unsigned int reserved[16]; +}; +# 2871 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; + + + + +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, +}; + + + + +struct __attribute__((device_builtin)) cudaConditionalNodeParams { + cudaGraphConditionalHandle handle; + + + enum cudaGraphConditionalNodeType type; + unsigned int size; + cudaGraph_t *phGraph_out; +# 3052 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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, +# 3087 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 3166 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + unsigned char to_port; + + + + + + + unsigned char type; + + + unsigned char reserved[5]; + +} cudaGraphEdgeData; +# 3199 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +} 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 + +}; +# 3365 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +typedef __attribute__((device_builtin)) enum cudaLaunchMemSyncDomain { + cudaLaunchMemSyncDomainDefault = 0, + cudaLaunchMemSyncDomainRemote = 1 +} cudaLaunchMemSyncDomain; +# 3381 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 3411 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + , cudaLaunchAttributeProgrammaticEvent = 7 +# 3437 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + , cudaLaunchAttributePriority = 8 + + , cudaLaunchAttributeMemSyncDomainMap = 9 + + , cudaLaunchAttributeMemSyncDomain = 10 + + , cudaLaunchAttributeLaunchCompletionEvent = 12 +# 3465 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + , cudaLaunchAttributeDeviceUpdatableKernelNode = 13 +# 3493 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +} cudaLaunchAttributeID; + + + + +typedef __attribute__((device_builtin)) union cudaLaunchAttributeValue { + char pad[64]; + struct cudaAccessPolicyWindow accessPolicyWindow; + int cooperative; + + enum cudaSynchronizationPolicy syncPolicy; +# 3517 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" + struct { + unsigned int x; + unsigned int y; + unsigned int z; + } clusterDim; + enum cudaClusterSchedulingPolicy clusterSchedulingPolicyPreference; + + + int programmaticStreamSerializationAllowed; + + struct { + cudaEvent_t event; + int flags; + + int triggerAtBlockStart; + } programmaticEvent; + int priority; + cudaLaunchMemSyncDomainMap memSyncDomainMap; + + + cudaLaunchMemSyncDomain memSyncDomain; + + struct { + cudaEvent_t event; + int flags; + + } launchCompletionEvent; + + struct { + int deviceUpdatable; + cudaGraphDeviceNode_t devNode; + } deviceUpdatableKernelNode; +} 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; +# 3593 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 2 + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/surface_types.h" 1 +# 86 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/texture_types.h" 1 +# 86 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 2 +# 91 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/library_types.h" 1 +# 57 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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_E5M2 = 29, +} cudaDataType; + + +typedef enum libraryPropertyType_t +{ + MAJOR_VERSION, + MINOR_VERSION, + PATCH_LEVEL +} libraryPropertyType; +# 92 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/channel_descriptor.h" 1 +# 61 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/channel_descriptor.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" 1 +# 148 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 149 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 151 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" 2 + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" 1 +# 54 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +# 1 "/usr/include/c++/11/stdlib.h" 1 3 +# 36 "/usr/include/c++/11/stdlib.h" 3 +# 1 "/usr/include/c++/11/cstdlib" 1 3 +# 39 "/usr/include/c++/11/cstdlib" 3 + +# 40 "/usr/include/c++/11/cstdlib" 3 + +# 1 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 1 3 +# 278 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 3 + +# 278 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 3 +namespace std +{ + typedef long unsigned int size_t; + typedef long int ptrdiff_t; + + + typedef decltype(nullptr) nullptr_t; + +} +# 300 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 3 +namespace std +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +namespace __gnu_cxx +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +# 586 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 3 +# 1 "/usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h" 1 3 +# 587 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 2 3 + + +# 1 "/usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h" 1 3 +# 590 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 2 3 +# 777 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 3 +# 1 "/usr/include/c++/11/pstl/pstl_config.h" 1 3 +# 778 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 2 3 +# 42 "/usr/include/c++/11/cstdlib" 2 3 +# 75 "/usr/include/c++/11/cstdlib" 3 +# 1 "/usr/include/stdlib.h" 1 3 4 +# 26 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/stdlib.h" 2 3 4 + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 1 3 4 +# 33 "/usr/include/stdlib.h" 2 3 4 + +extern "C" { + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4 +# 41 "/usr/include/stdlib.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4 +# 42 "/usr/include/stdlib.h" 2 3 4 +# 56 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 1 3 4 +# 74 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 +typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); +# 86 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 +typedef __float128 _Float128; +# 119 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 +# 25 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 2 3 4 +# 214 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef float _Float32; +# 251 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef double _Float64; +# 268 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef double _Float32x; +# 285 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef long double _Float64x; +# 120 "/usr/include/x86_64-linux-gnu/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 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))); +# 233 "/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))); +# 275 "/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 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))); +# 317 "/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))); +# 386 "/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/x86_64-linux-gnu/sys/types.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/types/clock_t.h" 1 3 4 + + + + + + +typedef __clock_t clock_t; +# 127 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" 1 3 4 + + + + + + +typedef __clockid_t clockid_t; +# 129 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" 1 3 4 +# 10 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" 3 4 +typedef __time_t time_t; +# 130 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" 1 3 4 + + + + + + +typedef __timer_t timer_t; +# 131 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + + +typedef __useconds_t useconds_t; + + + +typedef __suseconds_t suseconds_t; + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 1 3 4 +# 145 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + + +typedef unsigned long int ulong; +typedef unsigned short int ushort; +typedef unsigned int uint; + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/types.h" 3 4 +# 1 "/usr/include/endian.h" 1 3 4 +# 35 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4 +# 33 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/uintn-identity.h" 1 3 4 +# 32 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/types.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4 +# 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4 +# 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 1 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/types/sigset_t.h" 2 3 4 + + +typedef __sigset_t sigset_t; +# 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" 1 3 4 + + + + + + + +struct timeval +{ + + + + + __time_t tv_sec; + __suseconds_t tv_usec; + +}; +# 38 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 1 3 4 +# 11 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 3 4 +struct timespec +{ + + + + __time_t tv_sec; + + + + + __syscall_slong_t tv_nsec; +# 31 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 3 4 +}; +# 40 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 +# 49 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +typedef long int __fd_mask; +# 59 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/select.h" 3 4 +extern "C" { +# 102 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/select.h" 3 4 +} +# 180 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/types.h" 3 4 +typedef __blkcnt64_t blkcnt64_t; +typedef __fsblkcnt64_t fsblkcnt64_t; +typedef __fsfilcnt64_t fsfilcnt64_t; + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 1 3 4 +# 44 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 1 3 4 +# 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 2 3 4 +# 45 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 + +# 1 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h" 1 3 4 +# 25 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/struct_mutex.h" 3 4 +}; +# 77 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 +# 89 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/struct_rwlock.h" 3 4 +}; +# 90 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 + + + + +struct __pthread_cond_s +{ + __atomic_wide_counter __wseq; + __atomic_wide_counter __g1_start; + unsigned int __g_refs[2] ; + unsigned int __g_size[2]; + unsigned int __g1_orig_size; + unsigned int __wrefs; + unsigned int __g_signals[2]; +}; + +typedef unsigned int __tss_t; +typedef unsigned long int __thrd_t; + +typedef struct +{ + int __data ; +} __once_flag; +# 24 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/types.h" 2 3 4 + + +} +# 396 "/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 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-linux-gnu/11/include/stddef.h" 1 3 4 +# 25 "/usr/include/alloca.h" 2 3 4 + +extern "C" { + + + + + +extern void *alloca (size_t __size) noexcept (true); + + + + + +} +# 575 "/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__)); + + + +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))); +# 617 "/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); +# 682 "/usr/include/stdlib.h" 3 4 +extern char *mktemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))); +# 695 "/usr/include/stdlib.h" 3 4 +extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 705 "/usr/include/stdlib.h" 3 4 +extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 717 "/usr/include/stdlib.h" 3 4 +extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; +# 727 "/usr/include/stdlib.h" 3 4 +extern int mkstemps64 (char *__template, int __suffixlen) + __attribute__ ((__nonnull__ (1))) ; +# 738 "/usr/include/stdlib.h" 3 4 +extern char *mkdtemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))) ; +# 749 "/usr/include/stdlib.h" 3 4 +extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 759 "/usr/include/stdlib.h" 3 4 +extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 769 "/usr/include/stdlib.h" 3 4 +extern int mkostemps (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 781 "/usr/include/stdlib.h" 3 4 +extern int mkostemps64 (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 791 "/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))) ; +# 808 "/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__)) ; +# 880 "/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))) ; +# 967 "/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))); +# 1023 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4 +# 1024 "/usr/include/stdlib.h" 2 3 4 +# 1035 "/usr/include/stdlib.h" 3 4 +} +# 76 "/usr/include/c++/11/cstdlib" 2 3 + +# 1 "/usr/include/c++/11/bits/std_abs.h" 1 3 +# 33 "/usr/include/c++/11/bits/std_abs.h" 3 + +# 34 "/usr/include/c++/11/bits/std_abs.h" 3 +# 46 "/usr/include/c++/11/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/include/c++/11/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); } + + + + inline constexpr __int128 + abs(__int128 __x) { return __x >= 0 ? __x : -__x; } +# 107 "/usr/include/c++/11/bits/std_abs.h" 3 + +} +} +# 78 "/usr/include/c++/11/cstdlib" 2 3 +# 121 "/usr/include/c++/11/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) { return ldiv(__i, __j); } + + + + +} +# 195 "/usr/include/c++/11/cstdlib" 3 +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + using ::lldiv_t; + + + + + + using ::_Exit; + + + + 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; +# 227 "/usr/include/c++/11/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; +} + + + +} +# 37 "/usr/include/c++/11/stdlib.h" 2 3 + +using std::abort; +using std::atexit; +using std::exit; + + + using std::at_quick_exit; + + + using std::quick_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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" 2 +# 169 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 170 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" 2 +# 180 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" + +# 180 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +extern "C" +{ + + + + + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaDeviceSynchronizeDeprecationAvoidance(void); +# 236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 301 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +} +# 336 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 364 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetEnabled(cudaGraphDeviceNode_t node, bool enable); +# 391 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeSetGridDim(cudaGraphDeviceNode_t node, dim3 gridDim); +# 420 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGraphKernelNodeUpdatesApply(const cudaGraphKernelNodeUpdate *updates, size_t updateCount); +# 438 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) void cudaTriggerProgrammaticLaunchCompletion(void) +{ + asm volatile("griddepcontrol.launch_dependents;":::); +} +# 454 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +static inline __attribute__((device)) __attribute__((cudart_builtin)) void cudaGridDependencySynchronize(void) +{ + asm volatile("griddepcontrol.wait;":::"memory"); +} +# 466 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 695 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 781 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); + } +# 843 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 876 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" 2 +# 283 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern "C" { +# 323 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceReset(void); +# 345 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceSynchronize(void); +# 431 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetLimit(enum cudaLimit limit, size_t value); +# 467 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetLimit(size_t *pValue, enum cudaLimit limit); +# 490 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetTexture1DLinearMaxWidth(size_t *maxWidthInElements, const struct cudaChannelFormatDesc *fmtDesc, int device); +# 524 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 561 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority); +# 605 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetCacheConfig(enum cudaFuncCache cacheConfig); +# 632 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetByPCIBusId(int *device, const char *pciBusId); +# 662 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetPCIBusId(char *pciBusId, int len, int device); +# 712 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcGetEventHandle(cudaIpcEventHandle_t *handle, cudaEvent_t event); +# 755 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcOpenEventHandle(cudaEvent_t *event, cudaIpcEventHandle_t handle); +# 799 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcGetMemHandle(cudaIpcMemHandle_t *handle, void *devPtr); +# 865 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcOpenMemHandle(void **devPtr, cudaIpcMemHandle_t handle, unsigned int flags); +# 903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaIpcCloseMemHandle(void *devPtr); +# 935 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceFlushGPUDirectRDMAWrites(enum cudaFlushGPUDirectRDMAWritesTarget target, enum cudaFlushGPUDirectRDMAWritesScope scope); +# 973 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceRegisterAsyncNotification(int device, cudaAsyncCallback callbackFunc, void* userData, cudaAsyncCallbackHandle_t* callback); +# 996 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceUnregisterAsyncNotification(int device, cudaAsyncCallbackHandle_t callback); +# 1043 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); +# 1089 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaDeviceSetSharedMemConfig(enum cudaSharedMemConfig config); +# 1130 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadExit(void); +# 1156 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSynchronize(void); +# 1205 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetLimit(enum cudaLimit limit, size_t value); +# 1238 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetLimit(size_t *pValue, enum cudaLimit limit); +# 1274 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 1321 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetCacheConfig(enum cudaFuncCache cacheConfig); +# 1386 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetLastError(void); +# 1437 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaPeekAtLastError(void); +# 1453 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorName(cudaError_t error); +# 1469 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorString(cudaError_t error); +# 1498 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceCount(int *count); +# 1803 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceProperties_v2(struct cudaDeviceProp *prop, int device); +# 2005 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +# 2023 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetDefaultMemPool(cudaMemPool_t *memPool, int device); +# 2047 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetMemPool(int device, cudaMemPool_t memPool); +# 2067 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetMemPool(cudaMemPool_t *memPool, int device); +# 2129 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetNvSciSyncAttributes(void *nvSciSyncAttrList, int device, int flags); +# 2169 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetP2PAttribute(int *value, enum cudaDeviceP2PAttr attr, int srcDevice, int dstDevice); +# 2191 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaChooseDevice(int *device, const struct cudaDeviceProp *prop); +# 2220 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaInitDevice(int device, unsigned int deviceFlags, unsigned int flags); +# 2266 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetDevice(int device); +# 2288 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDevice(int *device); +# 2319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetValidDevices(int *device_arr, int len); +# 2389 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaSetDeviceFlags( unsigned int flags ); +# 2434 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDeviceFlags( unsigned int *flags ); +# 2474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamCreate(cudaStream_t *pStream); +# 2506 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +# 2554 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithPriority(cudaStream_t *pStream, unsigned int flags, int priority); +# 2581 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetPriority(cudaStream_t hStream, int *priority); +# 2606 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetFlags(cudaStream_t hStream, unsigned int *flags); +# 2643 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetId(cudaStream_t hStream, unsigned long long *streamId); +# 2658 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCtxResetPersistingL2Cache(void); +# 2678 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCopyAttributes(cudaStream_t dst, cudaStream_t src); +# 2699 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 2723 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamSetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 2757 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamDestroy(cudaStream_t stream); +# 2788 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 2863 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamAddCallback(cudaStream_t stream, + cudaStreamCallback_t callback, void *userData, unsigned int flags); +# 2887 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamSynchronize(cudaStream_t stream); +# 2912 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamQuery(cudaStream_t stream); +# 2996 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3035 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamBeginCapture(cudaStream_t stream, enum cudaStreamCaptureMode mode); +# 3076 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3127 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaThreadExchangeStreamCaptureMode(enum cudaStreamCaptureMode *mode); +# 3156 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamEndCapture(cudaStream_t stream, cudaGraph_t *pGraph); +# 3194 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamIsCapturing(cudaStream_t stream, enum cudaStreamCaptureStatus *pCaptureStatus); +# 3243 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3302 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3342 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaStreamUpdateCaptureDependencies(cudaStream_t stream, cudaGraphNode_t *dependencies, size_t numDependencies, unsigned int flags = 0); +# 3377 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3414 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventCreate(cudaEvent_t *event); +# 3451 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +# 3492 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream = 0); +# 3540 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3573 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventQuery(cudaEvent_t event); +# 3604 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventSynchronize(cudaEvent_t event); +# 3634 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventDestroy(cudaEvent_t event); +# 3679 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaEventElapsedTime(float *ms, cudaEvent_t start, cudaEvent_t end); +# 3860 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaImportExternalMemory(cudaExternalMemory_t *extMem_out, const struct cudaExternalMemoryHandleDesc *memHandleDesc); +# 3915 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedBuffer(void **devPtr, cudaExternalMemory_t extMem, const struct cudaExternalMemoryBufferDesc *bufferDesc); +# 3975 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedMipmappedArray(cudaMipmappedArray_t *mipmap, cudaExternalMemory_t extMem, const struct cudaExternalMemoryMipmappedArrayDesc *mipmapDesc); +# 3999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyExternalMemory(cudaExternalMemory_t extMem); +# 4153 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaImportExternalSemaphore(cudaExternalSemaphore_t *extSem_out, const struct cudaExternalSemaphoreHandleDesc *semHandleDesc); +# 4236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 4312 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 4335 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyExternalSemaphore(cudaExternalSemaphore_t extSem); +# 4402 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 4464 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchKernelExC(const cudaLaunchConfig_t *config, const void *func, void **args); +# 4521 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 4622 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaLaunchCooperativeKernelMultiDevice(struct cudaLaunchParams *launchParamsList, unsigned int numDevices, unsigned int flags = 0); +# 4667 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFuncSetCacheConfig(const void *func, enum cudaFuncCache cacheConfig); +# 4700 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +# 4737 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncSetAttribute(const void *func, enum cudaFuncAttribute attr, int value); +# 4761 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetName(const char **name, const void *func); +# 4783 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 4807 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForDevice(double *d); +# 4831 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForHost(double *d); +# 4897 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaLaunchHostFunc(cudaStream_t stream, cudaHostFn_t fn, void *userData); +# 4971 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig(const void *func, enum cudaSharedMemConfig config); +# 5027 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize); +# 5056 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock(size_t *dynamicSmemSize, const void *func, int numBlocks, int blockSize); +# 5101 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 5136 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxPotentialClusterSize(int *clusterSize, const void *func, const cudaLaunchConfig_t *launchConfig); +# 5175 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveClusters(int *numClusters, const void *func, const cudaLaunchConfig_t *launchConfig); +# 5295 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMallocManaged(void **devPtr, size_t size, unsigned int flags = 0x01); +# 5328 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(void **devPtr, size_t size); +# 5365 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocHost(void **ptr, size_t size); +# 5408 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocPitch(void **devPtr, size_t *pitch, size_t width, size_t height); +# 5460 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 5498 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFree(void *devPtr); +# 5521 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeHost(void *ptr); +# 5544 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeArray(cudaArray_t array); +# 5567 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeMipmappedArray(cudaMipmappedArray_t mipmappedArray); +# 5633 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostAlloc(void **pHost, size_t size, unsigned int flags); +# 5730 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostRegister(void *ptr, size_t size, unsigned int flags); +# 5753 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostUnregister(void *ptr); +# 5798 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostGetDevicePointer(void **pDevice, void *pHost, unsigned int flags); +# 5820 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaHostGetFlags(unsigned int *pFlags, void *pHost); +# 5859 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMalloc3D(struct cudaPitchedPtr* pitchedDevPtr, struct cudaExtent extent); +# 6004 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6149 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6182 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetMipmappedArrayLevel(cudaArray_t *levelArray, cudaMipmappedArray_const_t mipmappedArray, unsigned int level); +# 6287 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3D(const struct cudaMemcpy3DParms *p); +# 6319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeer(const struct cudaMemcpy3DPeerParms *p); +# 6437 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream = 0); +# 6464 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeerAsync(const struct cudaMemcpy3DPeerParms *p, cudaStream_t stream = 0); +# 6498 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemGetInfo(size_t *free, size_t *total); +# 6524 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetInfo(struct cudaChannelFormatDesc *desc, struct cudaExtent *extent, unsigned int *flags, cudaArray_t array); +# 6553 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetPlane(cudaArray_t *pPlaneArray, cudaArray_t hArray, unsigned int planeIdx); +# 6576 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaArray_t array, int device); +# 6600 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaMipmappedArray_t mipmap, int device); +# 6628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaArray_t array); +# 6658 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaMipmappedArray_t mipmap); +# 6703 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpy(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind); +# 6738 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemcpyPeer(void *dst, int dstDevice, const void *src, int srcDevice, size_t count); +# 6787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6837 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6887 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6934 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6977 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7021 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7078 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7113 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7176 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7234 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7291 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7342 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7393 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7422 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset(void *devPtr, int value, size_t count); +# 7456 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset2D(void *devPtr, size_t pitch, int value, size_t width, size_t height); +# 7502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemset3D(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent); +# 7538 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7579 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7632 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7660 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSymbolAddress(void **devPtr, const void *symbol); +# 7687 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSymbolSize(size_t *size, const void *symbol); +# 7757 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync(const void *devPtr, size_t count, int dstDevice, cudaStream_t stream = 0); + +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync_v2(const void *devPtr, size_t count, struct cudaMemLocation location, unsigned int flags, cudaStream_t stream = 0); +# 7873 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemAdvise(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, int device); +# 7996 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemAdvise_v2(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, struct cudaMemLocation location); +# 8078 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8121 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8181 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8223 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8266 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8317 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8367 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8436 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocAsync(void **devPtr, size_t size, cudaStream_t hStream); +# 8462 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaFreeAsync(void *devPtr, cudaStream_t hStream); +# 8487 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolTrimTo(cudaMemPool_t memPool, size_t minBytesToKeep); +# 8531 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolSetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8579 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolGetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8594 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolSetAccess(cudaMemPool_t memPool, const struct cudaMemAccessDesc *descList, size_t count); +# 8607 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolGetAccess(enum cudaMemAccessFlags *flags, cudaMemPool_t memPool, struct cudaMemLocation *location); +# 8645 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolCreate(cudaMemPool_t *memPool, const struct cudaMemPoolProps *poolProps); +# 8667 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolDestroy(cudaMemPool_t memPool); +# 8703 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMallocFromPoolAsync(void **ptr, size_t size, cudaMemPool_t memPool, cudaStream_t stream); +# 8728 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolExportToShareableHandle( + void *shareableHandle, + cudaMemPool_t memPool, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 8755 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolImportFromShareableHandle( + cudaMemPool_t *memPool, + void *shareableHandle, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 8778 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolExportPointer(struct cudaMemPoolPtrExportData *exportData, void *ptr); +# 8807 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaMemPoolImportPointer(void **ptr, cudaMemPool_t memPool, struct cudaMemPoolPtrExportData *exportData); +# 8960 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaPointerGetAttributes(struct cudaPointerAttributes *attributes, const void *ptr); +# 9001 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceCanAccessPeer(int *canAccessPeer, int device, int peerDevice); +# 9043 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceEnablePeerAccess(int peerDevice, unsigned int flags); +# 9065 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceDisablePeerAccess(int peerDevice); +# 9129 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsUnregisterResource(cudaGraphicsResource_t resource); +# 9164 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceSetMapFlags(cudaGraphicsResource_t resource, unsigned int flags); +# 9203 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsMapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 9238 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsUnmapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 9270 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedPointer(void **devPtr, size_t *size, cudaGraphicsResource_t resource); +# 9308 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsSubResourceGetMappedArray(cudaArray_t *array, cudaGraphicsResource_t resource, unsigned int arrayIndex, unsigned int mipLevel); +# 9337 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedMipmappedArray(cudaMipmappedArray_t *mipmappedArray, cudaGraphicsResource_t resource); +# 9372 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetChannelDesc(struct cudaChannelFormatDesc *desc, cudaArray_const_t array); +# 9402 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) struct cudaChannelFormatDesc cudaCreateChannelDesc(int x, int y, int z, int w, enum cudaChannelFormatKind f); +# 9626 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 9646 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroyTextureObject(cudaTextureObject_t texObject); +# 9666 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaTextureObject_t texObject); +# 9686 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectTextureDesc(struct cudaTextureDesc *pTexDesc, cudaTextureObject_t texObject); +# 9707 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceViewDesc(struct cudaResourceViewDesc *pResViewDesc, cudaTextureObject_t texObject); +# 9752 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaCreateSurfaceObject(cudaSurfaceObject_t *pSurfObject, const struct cudaResourceDesc *pResDesc); +# 9772 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDestroySurfaceObject(cudaSurfaceObject_t surfObject); +# 9791 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetSurfaceObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaSurfaceObject_t surfObject); +# 9825 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDriverGetVersion(int *driverVersion); +# 9854 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaRuntimeGetVersion(int *runtimeVersion); +# 9901 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphCreate(cudaGraph_t *pGraph, unsigned int flags); +# 9999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10032 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetParams(cudaGraphNode_t node, struct cudaKernelNodeParams *pNodeParams); +# 10058 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetParams(cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 10078 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeCopyAttributes( + cudaGraphNode_t hSrc, + cudaGraphNode_t hDst); +# 10101 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 10125 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 10176 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10235 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10304 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10372 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeGetParams(cudaGraphNode_t node, struct cudaMemcpy3DParms *pNodeParams); +# 10431 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams(cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 10470 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10516 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10562 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10610 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10633 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeGetParams(cudaGraphNode_t node, struct cudaMemsetParams *pNodeParams); +# 10657 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeSetParams(cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 10699 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10722 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphHostNodeGetParams(cudaGraphNode_t node, struct cudaHostNodeParams *pNodeParams); +# 10746 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphHostNodeSetParams(cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 10787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10814 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphChildGraphNodeGetGraph(cudaGraphNode_t node, cudaGraph_t *pGraph); +# 10852 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphAddEmptyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies); +# 10896 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10923 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 10951 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 10998 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11025 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 11053 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11103 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11136 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreSignalNodeParams *params_out); +# 11164 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11247 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreWaitNodeParams *params_out); +# 11275 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11353 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11380 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemAllocNodeGetParams(cudaGraphNode_t node, struct cudaMemAllocNodeParams *params_out); +# 11441 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11465 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphMemFreeNodeGetParams(cudaGraphNode_t node, void *dptr_out); +# 11493 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGraphMemTrim(int device); +# 11530 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceGetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11564 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaDeviceSetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11592 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphClone(cudaGraph_t *pGraphClone, cudaGraph_t originalGraph); +# 11620 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeFindInClone(cudaGraphNode_t *pNode, cudaGraphNode_t originalNode, cudaGraph_t clonedGraph); +# 11651 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetType(cudaGraphNode_t node, enum cudaGraphNodeType *pType); +# 11682 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetNodes(cudaGraph_t graph, cudaGraphNode_t *nodes, size_t *numNodes); +# 11713 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetRootNodes(cudaGraph_t graph, cudaGraphNode_t *pRootNodes, size_t *pNumRootNodes); +# 11747 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphGetEdges(cudaGraph_t graph, cudaGraphNode_t *from, cudaGraphNode_t *to, size_t *numEdges); +# 11787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11818 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, size_t *pNumDependencies); +# 11855 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies_v2(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, cudaGraphEdgeData *edgeData, size_t *pNumDependencies); +# 11887 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, size_t *pNumDependentNodes); +# 11925 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes_v2(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, cudaGraphEdgeData *edgeData, size_t *pNumDependentNodes); +# 11956 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11988 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12019 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12054 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12084 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDestroyNode(cudaGraphNode_t node); +# 12155 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiate(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12228 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithFlags(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12335 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithParams(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, cudaGraphInstantiateParams *instantiateParams); +# 12360 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecGetFlags(cudaGraphExec_t graphExec, unsigned long long *flags); +# 12419 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecKernelNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 12470 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 12525 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12588 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12649 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12704 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecMemsetNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 12744 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecHostNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 12791 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecChildGraphNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, cudaGraph_t childGraph); +# 12836 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecEventRecordNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 12881 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphExecEventWaitNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 12929 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresSignalNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 12977 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresWaitNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 13017 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeSetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int isEnabled); +# 13051 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeGetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int *isEnabled); +# 13143 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphExecUpdateResultInfo *resultInfo); +# 13168 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + extern __attribute__((host)) cudaError_t cudaGraphUpload(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13199 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13222 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecDestroy(cudaGraphExec_t graphExec); +# 13243 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDestroy(cudaGraph_t graph); +# 13262 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphDebugDotPrint(cudaGraph_t graph, const char *path, unsigned int flags); +# 13298 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 13322 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectRetain(cudaUserObject_t object, unsigned int count = 1); +# 13350 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaUserObjectRelease(cudaUserObject_t object, unsigned int count = 1); +# 13378 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 13403 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphReleaseUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1); +# 13445 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 13489 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 13518 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphNodeSetParams(cudaGraphNode_t node, struct cudaGraphNodeParams *nodeParams); +# 13567 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGraphExecNodeSetParams(cudaGraphExec_t graphExec, cudaGraphNode_t node, struct cudaGraphNodeParams *nodeParams); +# 13593 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 13671 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetDriverEntryPoint(const char *symbol, void **funcPtr, unsigned long long flags, enum cudaDriverEntryPointQueryResult *driverStatus = +# 13671 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" 3 4 + __null +# 13671 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" + ); + + + + + + + +extern __attribute__((host)) cudaError_t cudaGetExportTable(const void **ppExportTable, const cudaUUID_t *pExportTableId); +# 13858 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetFuncBySymbol(cudaFunction_t* functionPtr, const void* symbolPtr); +# 13874 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern __attribute__((host)) cudaError_t cudaGetKernel(cudaKernel_t *kernelPtr, const void *entryFuncAddr); +# 14044 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +} +# 62 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/channel_descriptor.h" 2 +# 117 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 389 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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(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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_functions.h" 1 +# 53 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 54 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 55 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_functions.h" 2 +# 79 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 100 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 + + + + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_functions.h" 1 +# 77 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_functions.hpp" 1 +# 73 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_functions.h" 2 +# 106 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 +# 117 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 1 +# 71 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 72 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 73 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 2 +# 85 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +# 1 "/usr/include/string.h" 1 3 4 +# 26 "/usr/include/string.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/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-linux-gnu/11/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-linux-gnu/11/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 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))); +# 539 "/usr/include/string.h" 3 4 +} +# 86 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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-linux-gnu/11/include/stddef.h" 1 3 4 +# 30 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4 +# 73 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/timex.h" 1 3 4 +# 26 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 4 +struct timex +{ +# 58 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/time.h" 2 3 4 + +extern "C" { + + +extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) noexcept (true); +# 90 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 +} +# 34 "/usr/include/time.h" 2 3 4 + + + + + +# 1 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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) + noexcept (true) __attribute__ ((__const__)); + + +extern time_t mktime (struct tm *__tp) noexcept (true); +# 100 "/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); + + + + +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; +# 249 "/usr/include/time.h" 3 4 +extern time_t timegm (struct tm *__tp) noexcept (true); + +extern time_t timelocal (struct tm *__tp) noexcept (true); +# 262 "/usr/include/time.h" 3 4 +extern int dysize (int __year) noexcept (true) __attribute__ ((__const__)); +# 272 "/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); + + +extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) + noexcept (true); +# 311 "/usr/include/time.h" 3 4 +extern int clock_nanosleep (clockid_t __clock_id, int __flags, + const struct timespec *__req, + struct timespec *__rem); +# 326 "/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); +# 364 "/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))); +# 387 "/usr/include/time.h" 3 4 +extern int timespec_getres (struct timespec *__ts, int __base) + noexcept (true); +# 413 "/usr/include/time.h" 3 4 +extern int getdate_err; +# 422 "/usr/include/time.h" 3 4 +extern struct tm *getdate (const char *__string); +# 436 "/usr/include/time.h" 3 4 +extern int getdate_r (const char *__restrict __string, + struct tm *__restrict __resbufp); + + +} +# 87 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 2 + + +# 88 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +extern "C" +{ + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) clock_t clock(void) + + + + +# 95 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 3 4 +noexcept (true) +# 95 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memset(void*, int, size_t) +# 96 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 3 4 + noexcept (true) +# 96 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memcpy(void*, const void*, size_t) +# 97 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 3 4 + noexcept (true) +# 97 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" + ; + +} +# 303 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 1 +# 112 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 113 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 114 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 +# 124 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern "C" +{ +# 222 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) int abs(int a) +# 222 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 222 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long int labs(long int a) +# 230 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 230 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long long int llabs(long long int a) +# 238 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 238 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 288 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fabs(double x) +# 288 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 288 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 331 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fabsf(float x) +# 331 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 331 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 341 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fminf(float x, float y) +# 383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 403 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmin(double x, double y) +# 403 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 403 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 416 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 459 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaxf(float x, float y) +# 459 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 459 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 479 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmax(double, double) +# 479 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 479 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 523 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sin(double x) +# 523 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 523 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 556 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cos(double x) +# 556 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 556 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincos(double x, double *sptr, double *cptr) +# 575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 591 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincosf(float x, float *sptr, float *cptr) +# 591 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 591 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tan(double x) +# 636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 705 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sqrt(double x) +# 705 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 705 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 777 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rsqrt(double x); +# 847 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rsqrtf(float x); +# 903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log2(double x) +# 903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 968 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp2(double x) +# 968 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 968 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1033 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp2f(float x) +# 1033 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1033 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1100 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp10(double x) +# 1100 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1100 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp10f(float x) +# 1163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1256 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double expm1(double x) +# 1256 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1256 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1348 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expm1f(float x) +# 1348 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1348 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log2f(float x) +# 1404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1458 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log10(double x) +# 1458 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1458 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1528 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log(double x) +# 1528 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1528 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1624 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log1p(double x) +# 1624 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1624 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1723 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log1pf(float x) +# 1723 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1723 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double floor(double x) +# 1787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1866 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp(double x) +# 1866 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1866 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1907 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cosh(double x) +# 1907 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1907 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 1957 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinh(double x) +# 1957 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 1957 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2007 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tanh(double x) +# 2007 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2007 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2062 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acosh(double x) +# 2062 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2062 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2120 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acoshf(float x) +# 2120 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2120 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2173 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asinh(double x) +# 2173 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2173 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2226 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinhf(float x) +# 2226 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2226 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2280 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atanh(double x) +# 2280 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2280 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2334 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanhf(float x) +# 2334 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2334 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ldexp(double x, int exp) +# 2383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ldexpf(float x, int exp) +# 2429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2481 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double logb(double x) +# 2481 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2481 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logbf(float x) +# 2536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2576 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogb(double x) +# 2576 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2576 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogbf(float x) +# 2616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2692 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbn(double x, int n) +# 2692 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2692 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalbnf(float x, int n) +# 2768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2844 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbln(double x, long int n) +# 2844 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2844 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2920 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalblnf(float x, long int n) +# 2920 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2920 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 2997 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double frexp(double x, int *nptr) +# 2997 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 2997 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3071 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float frexpf(float x, int *nptr) +# 3071 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3071 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3123 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double round(double x) +# 3123 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3123 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3178 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float roundf(float x) +# 3178 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3178 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3196 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lround(double x) +# 3196 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3196 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lroundf(float x) +# 3214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3232 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llround(double x) +# 3232 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3232 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3250 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llroundf(float x) +# 3250 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3250 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3378 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rintf(float x) +# 3378 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3378 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3395 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrint(double x) +# 3395 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3395 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3412 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrintf(float x) +# 3412 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3412 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrint(double x) +# 3429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3446 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrintf(float x) +# 3446 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3446 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3499 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nearbyint(double x) +# 3499 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3499 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3552 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nearbyintf(float x) +# 3552 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3552 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3614 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ceil(double x) +# 3614 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3614 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3664 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double trunc(double x) +# 3664 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3664 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float truncf(float x) +# 3717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3743 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fdim(double x, double y) +# 3743 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3743 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 3769 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fdimf(float x, float y) +# 3769 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 3769 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4069 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan2(double y, double x) +# 4069 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4069 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4140 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan(double x) +# 4140 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4140 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acos(double x) +# 4163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asin(double x) +# 4214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4282 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double hypot(double x, double y) +# 4282 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4282 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4337 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rhypot(double x, double y) +# 4337 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4337 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4405 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float hypotf(float x, float y) +# 4405 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4405 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4460 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rhypotf(float x, float y) +# 4460 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4460 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4504 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double norm3d(double a, double b, double c) +# 4504 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4504 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4555 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm3d(double a, double b, double c) +# 4555 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4555 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4604 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double norm4d(double a, double b, double c, double d) +# 4604 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4604 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4660 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm4d(double a, double b, double c, double d) +# 4660 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4660 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + __attribute__((device)) __attribute__((device_builtin)) double norm(int dim, double const * p) +# 4717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4781 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm(int dim, double const * p) +# 4781 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4781 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4846 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnormf(int dim, float const * p) +# 4846 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4846 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + __attribute__((device)) __attribute__((device_builtin)) float normf(int dim, float const * p) +# 4903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4948 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float norm3df(float a, float b, float c) +# 4948 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4948 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 4999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm3df(float a, float b, float c) +# 4999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 4999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 5048 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float norm4df(float a, float b, float c, float d) +# 5048 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 5048 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 5104 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm4df(float a, float b, float c, float d) +# 5104 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 5104 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 5191 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cbrt(double x) +# 5191 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 5191 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 5277 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cbrtf(float x) +# 5277 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 5277 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 5332 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rcbrt(double x); +# 5382 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rcbrtf(float x); +# 5442 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinpi(double x); +# 5502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinpif(float x); +# 5554 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cospi(double x); +# 5606 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cospif(float x); +# 5636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospi(double x, double *sptr, double *cptr); +# 5666 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospif(float x, float *sptr, float *cptr); +# 5999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double pow(double x, double y) +# 5999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 5999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6055 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double modf(double x, double *iptr) +# 6055 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6055 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6114 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmod(double x, double y) +# 6114 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6114 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6210 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remainder(double x, double y) +# 6210 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6210 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6309 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remainderf(float x, float y) +# 6309 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6309 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6381 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remquo(double x, double y, int *quo) +# 6381 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6381 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6453 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remquof(float x, float y, int *quo) +# 6453 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6453 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6494 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j0(double x) +# 6494 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6494 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j0f(float x) +# 6536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6605 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j1(double x) +# 6605 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6605 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6674 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j1f(float x) +# 6674 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6674 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double jn(int n, double x) +# 6717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6760 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float jnf(int n, float x) +# 6760 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6760 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6821 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y0(double x) +# 6821 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6821 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6882 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y0f(float x) +# 6882 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6882 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 6943 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y1(double x) +# 6943 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 6943 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7004 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y1f(float x) +# 7004 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7004 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7067 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double yn(int n, double x) +# 7067 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7067 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7130 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ynf(int n, float x) +# 7130 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7130 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7157 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i0(double x) +# 7157 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7157 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7183 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i0f(float x) +# 7183 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7183 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7210 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i1(double x) +# 7210 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7210 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i1f(float x) +# 7236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erf(double x) +# 7319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7401 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erff(float x) +# 7401 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7401 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7473 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfinv(double x); +# 7538 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfinvf(float x); +# 7577 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfc(double x) +# 7577 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7577 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7615 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcf(float x) +# 7615 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7615 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7732 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double lgamma(double x) +# 7732 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 7732 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 7794 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcinv(double x); +# 7849 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcinvf(float x); +# 7917 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdfinv(double x); +# 7985 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdfinvf(float x); +# 8028 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdf(double x); +# 8071 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdff(float x); +# 8135 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcx(double x); +# 8199 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcxf(float x); +# 8318 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float lgammaf(float x) +# 8318 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8318 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8416 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tgamma(double x) +# 8416 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8416 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8514 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tgammaf(float x) +# 8514 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8514 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8527 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double copysign(double x, double y) +# 8527 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8527 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8540 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float copysignf(float x, float y) +# 8540 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8540 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8559 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nextafter(double x, double y) +# 8559 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8559 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8578 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nextafterf(float x, float y) +# 8578 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8578 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8594 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nan(const char *tagp) +# 8594 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8594 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8610 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nanf(const char *tagp) +# 8610 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8610 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinff(float) +# 8617 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8617 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanf(float) +# 8618 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8618 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finite(double) +# 8628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitef(float) +# 8629 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8629 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbit(double) +# 8630 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8630 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnan(double) +# 8631 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8631 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinf(double) +# 8632 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8632 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitf(float) +# 8635 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8635 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8794 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fma(double x, double y, double z) +# 8794 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8794 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8952 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaf(float x, float y, float z) +# 8952 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8952 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 8963 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitl(long double) +# 8963 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8963 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitel(long double) +# 8969 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8969 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinfl(long double) +# 8970 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8970 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanl(long double) +# 8971 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 8971 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9021 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acosf(float x) +# 9021 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9021 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9080 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinf(float x) +# 9080 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9080 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9160 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanf(float x) +# 9160 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9160 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9457 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atan2f(float y, float x) +# 9457 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9457 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9491 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cosf(float x) +# 9491 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9491 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9533 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinf(float x) +# 9533 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9533 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanf(float x) +# 9575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float coshf(float x) +# 9616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9666 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinhf(float x) +# 9666 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9666 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9716 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanhf(float x) +# 9716 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9716 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logf(float x) +# 9768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9848 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expf(float x) +# 9848 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9848 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9900 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log10f(float x) +# 9900 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9900 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 9955 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float modff(float x, float *iptr) +# 9955 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 9955 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 10285 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float powf(float x, float y) +# 10285 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 10285 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 10354 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sqrtf(float x) +# 10354 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 10354 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 10413 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ceilf(float x) +# 10413 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 10413 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 10474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float floorf(float x) +# 10474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 10474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 10532 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmodf(float x, float y) +# 10532 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 3 4 + noexcept (true) +# 10532 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + ; +# 10547 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +} + + +# 1 "/usr/include/c++/11/math.h" 1 3 +# 36 "/usr/include/c++/11/math.h" 3 +# 1 "/usr/include/c++/11/cmath" 1 3 +# 39 "/usr/include/c++/11/cmath" 3 + +# 40 "/usr/include/c++/11/cmath" 3 + + +# 1 "/usr/include/c++/11/bits/cpp_type_traits.h" 1 3 +# 35 "/usr/include/c++/11/bits/cpp_type_traits.h" 3 + +# 36 "/usr/include/c++/11/bits/cpp_type_traits.h" 3 +# 67 "/usr/include/c++/11/bits/cpp_type_traits.h" 3 + +# 67 "/usr/include/c++/11/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; + }; +# 184 "/usr/include/c++/11/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; + }; +# 270 "/usr/include/c++/11/bits/cpp_type_traits.h" 3 +template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; +# 287 "/usr/include/c++/11/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; + }; + + + + + 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; + }; +# 423 "/usr/include/c++/11/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; + }; +# 532 "/usr/include/c++/11/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; } + + +} +} +# 43 "/usr/include/c++/11/cmath" 2 3 +# 1 "/usr/include/c++/11/ext/type_traits.h" 1 3 +# 32 "/usr/include/c++/11/ext/type_traits.h" 3 + +# 33 "/usr/include/c++/11/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 + inline bool + __is_null_pointer(_Type* __ptr) + { return __ptr == 0; } + + template + inline bool + __is_null_pointer(_Type) + { return false; } + + + inline 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; }; + + + template + using __promoted_t = decltype((typename __promote<_Tp>::__type(0) + ...)); + + + template::__type, + typename _Up2 = typename __promote<_Up>::__type> + struct __promote_2 + { + typedef __typeof__(_Tp2() + _Up2()) __type; + }; + + template::__type, + typename _Up2 = typename __promote<_Up>::__type, + typename _Vp2 = typename __promote<_Vp>::__type> + struct __promote_3 + { + typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; + }; + + template::__type, + typename _Up2 = typename __promote<_Up>::__type, + typename _Vp2 = typename __promote<_Vp>::__type, + typename _Wp2 = typename __promote<_Wp>::__type> + struct __promote_4 + { + typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; + }; + + +} +} +# 44 "/usr/include/c++/11/cmath" 2 3 + +# 1 "/usr/include/math.h" 1 3 4 +# 27 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 28 "/usr/include/math.h" 2 3 4 + + + + + + +extern "C" { + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 1 3 4 +# 25 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h" 1 3 4 +# 26 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 2 3 4 +# 41 "/usr/include/math.h" 2 3 4 +# 152 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h" 1 3 4 +# 153 "/usr/include/math.h" 2 3 4 +# 163 "/usr/include/math.h" 3 4 +typedef float float_t; +typedef double double_t; +# 204 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/fp-logb.h" 1 3 4 +# 205 "/usr/include/math.h" 2 3 4 +# 247 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/fp-fast.h" 1 3 4 +# 248 "/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, + }; +# 312 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/x86_64-linux-gnu/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__)); +# 313 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceil (double __x) noexcept (true) __attribute__ ((__const__)); + + +extern double fabs (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 __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); +# 183 "/usr/include/x86_64-linux-gnu/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 __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); +# 220 "/usr/include/x86_64-linux-gnu/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 __round (double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern double trunc (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 __fmax (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fmin (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 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 __fmaxmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminmag (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 __fmaximum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum (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 __fmaximum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_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 __fmaximum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); + + +extern double fminimum_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 __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 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); +# 314 "/usr/include/math.h" 2 3 4 +# 329 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/x86_64-linux-gnu/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__)); +# 330 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceilf (float __x) noexcept (true) __attribute__ ((__const__)); + + +extern float fabsf (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 __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); +# 177 "/usr/include/x86_64-linux-gnu/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 __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); +# 213 "/usr/include/x86_64-linux-gnu/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 __roundf (float __x) noexcept (true) __attribute__ ((__const__)); + + + +extern float truncf (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 __fmaxf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminf (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 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 __fmaxmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminmagf (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 __fmaximumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimumf (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 __fmaximum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_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 __fmaximum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); + + +extern float fminimum_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 __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 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); +# 331 "/usr/include/math.h" 2 3 4 +# 398 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/x86_64-linux-gnu/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__)); +# 399 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceill (long double __x) noexcept (true) __attribute__ ((__const__)); + + +extern long double fabsl (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 __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); +# 177 "/usr/include/x86_64-linux-gnu/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 __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); +# 213 "/usr/include/x86_64-linux-gnu/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 __roundl (long double __x) noexcept (true) __attribute__ ((__const__)); + + + +extern long double truncl (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 __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 __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 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 __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 __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 __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 __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 __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 __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 __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 __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 __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 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); +# 400 "/usr/include/math.h" 2 3 4 +# 450 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceilf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fabsf32 (_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 __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); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); 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); +# 220 "/usr/include/x86_64-linux-gnu/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); +# 252 "/usr/include/x86_64-linux-gnu/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 __roundf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32 truncf32 (_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 __fmaxf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminf32 (_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 _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 __fmaxmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminmagf32 (_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 __fmaximumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimumf32 (_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 __fmaximum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_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 __fmaximum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32 fminimum_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 __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 _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); +# 451 "/usr/include/math.h" 2 3 4 +# 467 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceilf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fabsf64 (_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 __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); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); 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); +# 220 "/usr/include/x86_64-linux-gnu/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); +# 252 "/usr/include/x86_64-linux-gnu/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 __roundf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64 truncf64 (_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 __fmaxf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminf64 (_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 _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 __fmaxmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminmagf64 (_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 __fmaximumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimumf64 (_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 __fmaximum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_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 __fmaximum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64 fminimum_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 __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 _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); +# 468 "/usr/include/math.h" 2 3 4 +# 481 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 20 "/usr/include/x86_64-linux-gnu/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__)); +# 482 "/usr/include/math.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceilf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fabsf128 (_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 __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); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float128 copysignf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); 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); +# 220 "/usr/include/x86_64-linux-gnu/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); +# 252 "/usr/include/x86_64-linux-gnu/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 __roundf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float128 truncf128 (_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 __fmaxf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminf128 (_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 _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 __fmaxmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminmagf128 (_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 __fmaximumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimumf128 (_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 __fmaximum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_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 __fmaximum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float128 fminimum_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 __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 _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); +# 485 "/usr/include/math.h" 2 3 4 +# 501 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceilf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fabsf32x (_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 __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); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); 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); +# 220 "/usr/include/x86_64-linux-gnu/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); +# 252 "/usr/include/x86_64-linux-gnu/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 __roundf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float32x truncf32x (_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 __fmaxf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminf32x (_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 _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 __fmaxmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminmagf32x (_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 __fmaximumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimumf32x (_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 __fmaximum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_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 __fmaximum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float32x fminimum_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 __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 _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); +# 502 "/usr/include/math.h" 2 3 4 +# 518 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/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 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 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 __ceilf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fabsf64x (_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 __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); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); 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); +# 220 "/usr/include/x86_64-linux-gnu/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); +# 252 "/usr/include/x86_64-linux-gnu/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 __roundf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); + + + +extern _Float64x truncf64x (_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 __fmaxf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminf64x (_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 _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 __fmaxmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminmagf64x (_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 __fmaximumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimumf64x (_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 __fmaximum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_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 __fmaximum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); + + +extern _Float64x fminimum_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 __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 _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); +# 519 "/usr/include/math.h" 2 3 4 +# 566 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 567 "/usr/include/math.h" 2 3 4 +# 587 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 588 "/usr/include/math.h" 2 3 4 +# 616 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 617 "/usr/include/math.h" 2 3 4 +# 697 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 698 "/usr/include/math.h" 2 3 4 +# 707 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 708 "/usr/include/math.h" 2 3 4 +# 717 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 718 "/usr/include/math.h" 2 3 4 +# 727 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 728 "/usr/include/math.h" 2 3 4 +# 747 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 748 "/usr/include/math.h" 2 3 4 +# 757 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 758 "/usr/include/math.h" 2 3 4 +# 767 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 768 "/usr/include/math.h" 2 3 4 +# 787 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 788 "/usr/include/math.h" 2 3 4 +# 797 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 798 "/usr/include/math.h" 2 3 4 +# 817 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/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); +# 818 "/usr/include/math.h" 2 3 4 +# 854 "/usr/include/math.h" 3 4 +extern int signgam; +# 934 "/usr/include/math.h" 3 4 +enum + { + FP_NAN = + + 0, + FP_INFINITE = + + 1, + FP_ZERO = + + 2, + FP_SUBNORMAL = + + 3, + FP_NORMAL = + + 4 + }; +# 1054 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 3 4 +extern int __iscanonicall (long double __x) + noexcept (true) __attribute__ ((__const__)); +# 46 "/usr/include/x86_64-linux-gnu/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); } + +} +# 1055 "/usr/include/math.h" 2 3 4 +# 1066 "/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); } + +} +# 1097 "/usr/include/math.h" 3 4 +extern "C++" { +# 1128 "/usr/include/math.h" 3 4 +template inline bool +iszero (__T __val) +{ + return __val == 0; +} + +} +# 1363 "/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<_Float128> +{ + static int __call (_Float128 __x, _Float128 __y) throw () + { + return __iseqsigf128 (__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); +} + +} + + + + +} +# 46 "/usr/include/c++/11/cmath" 2 3 +# 77 "/usr/include/c++/11/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); } + + + 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)); + } + + 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); } + + + 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)); + } + + 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); } +# 412 "/usr/include/c++/11/cmath" 3 + 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)); + } + + 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); } +# 536 "/usr/include/c++/11/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 __x) + { 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 __x) + { 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 __x) + { 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)); + } +# 1065 "/usr/include/c++/11/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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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)); + } + + + + 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); } + + + + 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); + } + + + + 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); } +# 1852 "/usr/include/c++/11/cmath" 3 + 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); + } +# 1931 "/usr/include/c++/11/cmath" 3 + +} + + +# 1 "/usr/include/c++/11/bits/specfun.h" 1 3 +# 33 "/usr/include/c++/11/bits/specfun.h" 3 +#pragma GCC visibility push(default) +# 45 "/usr/include/c++/11/bits/specfun.h" 3 +# 1 "/usr/include/c++/11/bits/stl_algobase.h" 1 3 +# 60 "/usr/include/c++/11/bits/stl_algobase.h" 3 +# 1 "/usr/include/c++/11/bits/functexcept.h" 1 3 +# 40 "/usr/include/c++/11/bits/functexcept.h" 3 +# 1 "/usr/include/c++/11/bits/exception_defines.h" 1 3 +# 41 "/usr/include/c++/11/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__)); + + void + __throw_bad_typeid(void) __attribute__((__noreturn__)); + + + void + __throw_logic_error(const char*) __attribute__((__noreturn__)); + + void + __throw_domain_error(const char*) __attribute__((__noreturn__)); + + void + __throw_invalid_argument(const char*) __attribute__((__noreturn__)); + + void + __throw_length_error(const char*) __attribute__((__noreturn__)); + + void + __throw_out_of_range(const char*) __attribute__((__noreturn__)); + + void + __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) + __attribute__((__format__(__gnu_printf__, 1, 2))); + + void + __throw_runtime_error(const char*) __attribute__((__noreturn__)); + + void + __throw_range_error(const char*) __attribute__((__noreturn__)); + + void + __throw_overflow_error(const char*) __attribute__((__noreturn__)); + + void + __throw_underflow_error(const char*) __attribute__((__noreturn__)); + + + void + __throw_ios_failure(const char*) __attribute__((__noreturn__)); + + void + __throw_ios_failure(const char*, int) __attribute__((__noreturn__)); + + + void + __throw_system_error(int) __attribute__((__noreturn__)); + + + void + __throw_future_error(int) __attribute__((__noreturn__)); + + + void + __throw_bad_function_call() __attribute__((__noreturn__)); + + +} +# 61 "/usr/include/c++/11/bits/stl_algobase.h" 2 3 + + +# 1 "/usr/include/c++/11/ext/numeric_traits.h" 1 3 +# 32 "/usr/include/c++/11/ext/numeric_traits.h" 3 + +# 33 "/usr/include/c++/11/ext/numeric_traits.h" 3 + + + + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 50 "/usr/include/c++/11/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; +# 135 "/usr/include/c++/11/ext/numeric_traits.h" 3 + template + using __int_traits = __numeric_traits_integer<_Tp>; +# 155 "/usr/include/c++/11/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 + { }; +# 236 "/usr/include/c++/11/ext/numeric_traits.h" 3 + +} +# 64 "/usr/include/c++/11/bits/stl_algobase.h" 2 3 +# 1 "/usr/include/c++/11/bits/stl_pair.h" 1 3 +# 59 "/usr/include/c++/11/bits/stl_pair.h" 3 +# 1 "/usr/include/c++/11/bits/move.h" 1 3 +# 38 "/usr/include/c++/11/bits/move.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + template + inline constexpr _Tp* + __addressof(_Tp& __r) noexcept + { return __builtin_addressof(__r); } + + + + +} + +# 1 "/usr/include/c++/11/type_traits" 1 3 +# 32 "/usr/include/c++/11/type_traits" 3 + +# 33 "/usr/include/c++/11/type_traits" 3 + + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + template + class tuple; + + template + class reference_wrapper; +# 64 "/usr/include/c++/11/type_traits" 3 + template + struct integral_constant + { + static constexpr _Tp value = __v; + typedef _Tp value_type; + typedef integral_constant<_Tp, __v> type; + constexpr operator value_type() const noexcept { return value; } + + + + + constexpr value_type operator()() const noexcept { return value; } + + }; + + template + constexpr _Tp integral_constant<_Tp, __v>::value; + + + using true_type = integral_constant; + + + using false_type = integral_constant; + + + + template + using __bool_constant = integral_constant; + + + + + + + template + using bool_constant = integral_constant; + + + + + template + struct conditional; + + + template + struct __type_identity + { using type = _Type; }; + + template + using __type_identity_t = typename __type_identity<_Tp>::type; + + template + struct __or_; + + template<> + struct __or_<> + : public false_type + { }; + + template + struct __or_<_B1> + : public _B1 + { }; + + template + struct __or_<_B1, _B2> + : public conditional<_B1::value, _B1, _B2>::type + { }; + + template + struct __or_<_B1, _B2, _B3, _Bn...> + : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type + { }; + + template + struct __and_; + + template<> + struct __and_<> + : public true_type + { }; + + template + struct __and_<_B1> + : public _B1 + { }; + + template + struct __and_<_B1, _B2> + : public conditional<_B1::value, _B2, _B1>::type + { }; + + template + struct __and_<_B1, _B2, _B3, _Bn...> + : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type + { }; + + template + struct __not_ + : public __bool_constant + { }; + + + + + + template + inline constexpr bool __or_v = __or_<_Bn...>::value; + template + inline constexpr bool __and_v = __and_<_Bn...>::value; + + + + + template + struct conjunction + : __and_<_Bn...> + { }; + + template + struct disjunction + : __or_<_Bn...> + { }; + + template + struct negation + : __not_<_Pp> + { }; + + + + + 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 + struct __success_type + { typedef _Tp type; }; + + struct __failure_type + { }; + + + template + using __remove_cv_t = typename remove_cv<_Tp>::type; + + + + template + struct __is_void_helper + : public false_type { }; + + template<> + struct __is_void_helper + : public true_type { }; + + + + template + struct is_void + : public __is_void_helper<__remove_cv_t<_Tp>>::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 { }; +# 310 "/usr/include/c++/11/type_traits" 3 + 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<__int128> + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; +# 391 "/usr/include/c++/11/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 { }; +# 421 "/usr/include/c++/11/type_traits" 3 + template + struct is_floating_point + : public __is_floating_point_helper<__remove_cv_t<_Tp>>::type + { }; + + + template + struct is_array + : public false_type { }; + + template + struct is_array<_Tp[_Size]> + : public true_type { }; + + template + struct is_array<_Tp[]> + : public true_type { }; + + 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_helper + : public false_type { }; + + template + struct __is_member_object_pointer_helper<_Tp _Cp::*> + : public __not_>::type { }; + + + template + struct is_member_object_pointer + : public __is_member_object_pointer_helper<__remove_cv_t<_Tp>>::type + { }; + + template + struct __is_member_function_pointer_helper + : public false_type { }; + + template + struct __is_member_function_pointer_helper<_Tp _Cp::*> + : public is_function<_Tp>::type { }; + + + template + struct is_member_function_pointer + : public __is_member_function_pointer_helper<__remove_cv_t<_Tp>>::type + { }; + + + template + struct is_enum + : public integral_constant + { }; + + + template + struct is_union + : public integral_constant + { }; + + + template + struct is_class + : public integral_constant + { }; + + + template + struct is_function + : public __bool_constant::value> { }; + + template + struct is_function<_Tp&> + : public false_type { }; + + template + struct is_function<_Tp&&> + : public false_type { }; + + + + template + struct __is_null_pointer_helper + : public false_type { }; + + template<> + struct __is_null_pointer_helper + : public true_type { }; + + + template + struct is_null_pointer + : public __is_null_pointer_helper<__remove_cv_t<_Tp>>::type + { }; + + + + template + struct __is_nullptr_t + : public is_null_pointer<_Tp> + { } __attribute__ ((__deprecated__ ("use '" "std::is_null_pointer" "' instead"))); + + + + + template + struct is_reference + : public __or_, + is_rvalue_reference<_Tp>>::type + { }; + + + 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 __not_<__or_, is_reference<_Tp>, + is_void<_Tp>>>::type + { }; + + 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 __not_>::type { }; + + + template + struct __is_member_pointer_helper + : public false_type { }; + + template + struct __is_member_pointer_helper<_Tp _Cp::*> + : public true_type { }; + + + + template + struct is_member_pointer + : public __is_member_pointer_helper<__remove_cv_t<_Tp>>::type + { }; + + template + struct is_same; + + + template + using __is_one_of = __or_...>; + + + 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 +# 637 "/usr/include/c++/11/type_traits" 3 + >; + + + 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 +# 656 "/usr/include/c++/11/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_referenceable + : public false_type + { }; + + template + struct __is_referenceable<_Tp, __void_t<_Tp&>> + : public true_type + { }; + + + + + + 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 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 is_trivially_copyable + : 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 is_standard_layout + : 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 + + is_pod + : 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 + [[__deprecated__]] + is_literal_type + : 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 is_empty + : public integral_constant + { }; + + + template + struct is_polymorphic + : public integral_constant + { }; + + + + + + template + struct is_final + : public integral_constant + { }; + + + + template + struct is_abstract + : public integral_constant + { }; + + + template::value> + struct __is_signed_helper + : public false_type { }; + + template + struct __is_signed_helper<_Tp, true> + : public integral_constant + { }; + + + + template + struct is_signed + : public __is_signed_helper<_Tp>::type + { }; + + + template + struct is_unsigned + : public __and_, __not_>> + { }; + + + template + _Up + __declval(int); + + template + _Tp + __declval(long); + + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)); + + template + struct extent; + + template + struct remove_all_extents; + + + template + struct __is_array_known_bounds + : public integral_constant::value > 0)> + { }; + + template + struct __is_array_unknown_bounds + : public __and_, __not_>> + { }; +# 842 "/usr/include/c++/11/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 + { + typedef decltype(__test<_Tp>(0)) type; + }; + + 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 + { + typedef decltype(__test<_Tp>(0)) type; + }; + + 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 + struct __is_constructible_impl + : public __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>::type + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template::value> + struct __is_copy_constructible_impl; + + template + struct __is_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_copy_constructible_impl<_Tp, true> + : public __is_constructible_impl<_Tp, const _Tp&> + { }; + + + + template + struct is_copy_constructible + : public __is_copy_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::value> + struct __is_move_constructible_impl; + + template + struct __is_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_move_constructible_impl<_Tp, true> + : public __is_constructible_impl<_Tp, _Tp&&> + { }; + + + + template + struct is_move_constructible + : public __is_move_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 + using __is_nothrow_constructible_impl + = __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>; + + + + template + struct is_nothrow_constructible + : public __is_nothrow_constructible_impl<_Tp, _Args...>::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_default_constructible + : public __bool_constant<__is_nothrow_constructible(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + + template::value> + struct __is_nothrow_copy_constructible_impl; + + template + struct __is_nothrow_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nothrow_copy_constructible_impl<_Tp, true> + : public __is_nothrow_constructible_impl<_Tp, const _Tp&> + { }; + + + + template + struct is_nothrow_copy_constructible + : public __is_nothrow_copy_constructible_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::value> + struct __is_nothrow_move_constructible_impl; + + template + struct __is_nothrow_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nothrow_move_constructible_impl<_Tp, true> + : public __is_nothrow_constructible_impl<_Tp, _Tp&&> + { }; + + + + template + struct is_nothrow_move_constructible + : public __is_nothrow_move_constructible_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_assignable + : public __bool_constant<__is_assignable(_Tp, _Up)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + template::value> + struct __is_copy_assignable_impl; + + template + struct __is_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_copy_assignable_impl<_Tp, true> + : public __bool_constant<__is_assignable(_Tp&, const _Tp&)> + { }; + + + template + struct is_copy_assignable + : public __is_copy_assignable_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::value> + struct __is_move_assignable_impl; + + template + struct __is_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_move_assignable_impl<_Tp, true> + : public __bool_constant<__is_assignable(_Tp&, _Tp&&)> + { }; + + + template + struct is_move_assignable + : public __is_move_assignable_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 + 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::value> + struct __is_nt_copy_assignable_impl; + + template + struct __is_nt_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nt_copy_assignable_impl<_Tp, true> + : public __is_nothrow_assignable_impl<_Tp&, const _Tp&> + { }; + + + template + struct is_nothrow_copy_assignable + : public __is_nt_copy_assignable_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + template::value> + struct __is_nt_move_assignable_impl; + + template + struct __is_nt_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nt_move_assignable_impl<_Tp, true> + : public __is_nothrow_assignable_impl<_Tp&, _Tp&&> + { }; + + + template + struct is_nothrow_move_assignable + : public __is_nt_move_assignable_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_trivially_constructible + : public __bool_constant<__is_trivially_constructible(_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 __bool_constant<__is_trivially_constructible(_Tp)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + 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 + { + typedef decltype(__test(declval<_Tp>())) type; + }; + + 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>> + { }; + + template::value> + struct __is_trivially_copy_constructible_impl; + + template + struct __is_trivially_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_copy_constructible_impl<_Tp, true> + : public __and_<__is_copy_constructible_impl<_Tp>, + integral_constant> + { }; + + + template + struct is_trivially_copy_constructible + : public __is_trivially_copy_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::value> + struct __is_trivially_move_constructible_impl; + + template + struct __is_trivially_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_move_constructible_impl<_Tp, true> + : public __and_<__is_move_constructible_impl<_Tp>, + integral_constant> + { }; + + + template + struct is_trivially_move_constructible + : public __is_trivially_move_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_trivially_assignable + : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + template::value> + struct __is_trivially_copy_assignable_impl; + + template + struct __is_trivially_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_copy_assignable_impl<_Tp, true> + : public __bool_constant<__is_trivially_assignable(_Tp&, const _Tp&)> + { }; + + + template + struct is_trivially_copy_assignable + : public __is_trivially_copy_assignable_impl<_Tp> + { + static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), + "template argument must be a complete class or an unbounded array"); + }; + + template::value> + struct __is_trivially_move_assignable_impl; + + template + struct __is_trivially_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_move_assignable_impl<_Tp, true> + : public __bool_constant<__is_trivially_assignable(_Tp&, _Tp&&)> + { }; + + + template + struct is_trivially_move_assignable + : public __is_trivially_move_assignable_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_trivially_destructible + : public __and_<__is_destructible_safe<_Tp>, + __bool_constant<__has_trivial_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 has_virtual_destructor + : 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 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], _Uint> + : public integral_constant::value> + { }; + + template + struct extent<_Tp[], _Uint> + : public integral_constant::value> + { }; + + + + + + template + struct is_same + + : public integral_constant + + + + { }; +# 1420 "/usr/include/c++/11/type_traits" 3 + template + struct is_base_of + : public integral_constant + { }; + + template, is_function<_To>, + is_array<_To>>::value> + struct __is_convertible_helper + { + typedef typename is_void<_To>::type type; + }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + template + class __is_convertible_helper<_From, _To, false> + { + template + static void __test_aux(_To1) noexcept; + + template(std::declval<_From1>()))> + static true_type + __test(int); + + template + static false_type + __test(...); + + public: + typedef decltype(__test<_From, _To>(0)) type; + }; +#pragma GCC diagnostic pop + + + template + struct is_convertible + : public __is_convertible_helper<_From, _To>::type + { }; + + + template + using __is_array_convertible + = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>; + + template, is_function<_To>, + is_array<_To>>::value> + struct __is_nt_convertible_helper + : is_void<_To> + { }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + template + class __is_nt_convertible_helper<_From, _To, false> + { + template + static void __test_aux(_To1) noexcept; + + template + static + __bool_constant(std::declval<_From1>()))> + __test(int); + + template + static false_type + __test(...); + + public: + using type = decltype(__test<_From, _To>(0)); + }; +#pragma GCC diagnostic pop +# 1512 "/usr/include/c++/11/type_traits" 3 + template + struct remove_const + { typedef _Tp type; }; + + template + struct remove_const<_Tp const> + { typedef _Tp type; }; + + + template + struct remove_volatile + { typedef _Tp type; }; + + template + struct remove_volatile<_Tp volatile> + { typedef _Tp type; }; + + + template + struct remove_cv + { using type = _Tp; }; + + template + struct remove_cv + { using type = _Tp; }; + + template + struct remove_cv + { using type = _Tp; }; + + template + struct remove_cv + { using type = _Tp; }; + + + template + struct add_const + { typedef _Tp const type; }; + + + template + struct add_volatile + { typedef _Tp volatile type; }; + + + template + struct add_cv + { + typedef typename + add_const::type>::type type; + }; + + + + + + + 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 + { typedef _Tp type; }; + + template + struct remove_reference<_Tp&> + { typedef _Tp type; }; + + template + struct remove_reference<_Tp&&> + { typedef _Tp type; }; + + template::value> + struct __add_lvalue_reference_helper + { typedef _Tp type; }; + + template + struct __add_lvalue_reference_helper<_Tp, true> + { typedef _Tp& type; }; + + + template + struct add_lvalue_reference + : public __add_lvalue_reference_helper<_Tp> + { }; + + template::value> + struct __add_rvalue_reference_helper + { typedef _Tp type; }; + + template + struct __add_rvalue_reference_helper<_Tp, true> + { typedef _Tp&& type; }; + + + template + struct add_rvalue_reference + : public __add_rvalue_reference_helper<_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> + { typedef _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, false, true> + { typedef volatile _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, true, false> + { typedef const _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, true, true> + { typedef const volatile _Unqualified __type; }; + + template::value, + bool _IsVol = is_volatile<_Qualified>::value> + class __match_cv_qualifiers + { + typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; + + public: + typedef typename __match::__type __type; + }; + + + template + struct __make_unsigned + { typedef _Tp __type; }; + + template<> + struct __make_unsigned + { typedef unsigned char __type; }; + + template<> + struct __make_unsigned + { typedef unsigned char __type; }; + + template<> + struct __make_unsigned + { typedef unsigned short __type; }; + + template<> + struct __make_unsigned + { typedef unsigned int __type; }; + + template<> + struct __make_unsigned + { typedef unsigned long __type; }; + + template<> + struct __make_unsigned + { typedef unsigned long long __type; }; + + + template<> + struct __make_unsigned<__int128> + { typedef unsigned __int128 __type; }; +# 1736 "/usr/include/c++/11/type_traits" 3 + template::value, + bool _IsEnum = is_enum<_Tp>::value> + 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; + }; +# 1812 "/usr/include/c++/11/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 + { typedef typename __make_unsigned_selector<_Tp>::__type type; }; + + + template<> + struct make_unsigned; + + + + + template + struct __make_signed + { typedef _Tp __type; }; + + template<> + struct __make_signed + { typedef signed char __type; }; + + template<> + struct __make_signed + { typedef signed char __type; }; + + template<> + struct __make_signed + { typedef signed short __type; }; + + template<> + struct __make_signed + { typedef signed int __type; }; + + template<> + struct __make_signed + { typedef signed long __type; }; + + template<> + struct __make_signed + { typedef signed long long __type; }; + + + template<> + struct __make_signed + { typedef __int128 __type; }; +# 1892 "/usr/include/c++/11/type_traits" 3 + template::value, + bool _IsEnum = is_enum<_Tp>::value> + 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> + { + typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; + + public: + typedef typename __make_signed_selector<__unsigned_type>::__type __type; + }; + + + + + + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; +# 1940 "/usr/include/c++/11/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 + { typedef typename __make_signed_selector<_Tp>::__type type; }; + + + 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 + { typedef _Tp type; }; + + template + struct remove_extent<_Tp[_Size]> + { typedef _Tp type; }; + + template + struct remove_extent<_Tp[]> + { typedef _Tp type; }; + + + template + struct remove_all_extents + { typedef _Tp type; }; + + template + struct remove_all_extents<_Tp[_Size]> + { typedef typename remove_all_extents<_Tp>::type type; }; + + template + struct remove_all_extents<_Tp[]> + { typedef typename remove_all_extents<_Tp>::type 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_helper + { typedef _Tp type; }; + + template + struct __remove_pointer_helper<_Tp, _Up*> + { typedef _Up type; }; + + + template + struct remove_pointer + : public __remove_pointer_helper<_Tp, __remove_cv_t<_Tp>> + { }; + + template, + is_void<_Tp>>::value> + struct __add_pointer_helper + { typedef _Tp type; }; + + template + struct __add_pointer_helper<_Tp, true> + { typedef typename remove_reference<_Tp>::type* type; }; + + + template + struct add_pointer + : public __add_pointer_helper<_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; + }; + }; +# 2076 "/usr/include/c++/11/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; + }; +# 2115 "/usr/include/c++/11/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; + + typedef typename aligned_storage<_S_len, alignment_value>::type type; + }; + + template + const size_t aligned_union<_Len, _Types...>::alignment_value; + + + + + + template::value, + bool _IsFunction = is_function<_Up>::value> + struct __decay_selector; + + + template + struct __decay_selector<_Up, false, false> + { typedef __remove_cv_t<_Up> __type; }; + + template + struct __decay_selector<_Up, true, false> + { typedef typename remove_extent<_Up>::type* __type; }; + + template + struct __decay_selector<_Up, false, true> + { typedef typename add_pointer<_Up>::type __type; }; + + + + template + class decay + { + typedef typename remove_reference<_Tp>::type __remove_type; + + public: + typedef typename __decay_selector<__remove_type>::__type type; + }; + + + + + template + struct __strip_reference_wrapper + { + typedef _Tp __type; + }; + + template + struct __strip_reference_wrapper > + { + typedef _Tp& __type; + }; + + + template + using __decay_t = typename decay<_Tp>::type; + + template + using __decay_and_strip = __strip_reference_wrapper<__decay_t<_Tp>>; + + + + + template + struct enable_if + { }; + + + template + struct enable_if + { typedef _Tp type; }; + + + + + template + using __enable_if_t = typename enable_if<_Cond, _Tp>::type; + + + template + using _Require = __enable_if_t<__and_<_Cond...>::value>; + + + template + using __remove_cvref_t + = typename remove_cv::type>::type; + + + + + template + struct conditional + { typedef _Iftrue type; }; + + + template + struct conditional + { typedef _Iffalse type; }; + + + template + struct common_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); +# 2255 "/usr/include/c++/11/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::value> + 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 + { + typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; + }; + + + 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 + { + typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; + }; + + + 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 + { + typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; + }; + + + 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 + { + typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; + }; + + template + struct __result_of_memobj; + + template + struct __result_of_memobj<_Res _Class::*, _Arg> + { + typedef __remove_cvref_t<_Arg> _Argval; + typedef _Res _Class::* _MemPtr; + typedef typename conditional<__or_, + is_base_of<_Class, _Argval>>::value, + __result_of_memobj_ref<_MemPtr, _Arg>, + __result_of_memobj_deref<_MemPtr, _Arg> + >::type::type type; + }; + + template + struct __result_of_memfun; + + template + struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> + { + typedef typename remove_reference<_Arg>::type _Argval; + typedef _Res _Class::* _MemPtr; + typedef typename conditional::value, + __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, + __result_of_memfun_deref<_MemPtr, _Arg, _Args...> + >::type::type type; + }; + + + + + + + template> + struct __inv_unwrap + { + using type = _Tp; + }; + + template + struct __inv_unwrap<_Tp, reference_wrapper<_Up>> + { + using type = _Up&; + }; + + template + struct __result_of_impl + { + typedef __failure_type 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 + { + typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; + }; + + + 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 + struct result_of<_Functor(_ArgTypes...)> + : public __invoke_result<_Functor, _ArgTypes...> + { }; + + + + template::__type)> + using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; + + template + using aligned_union_t = typename aligned_union<_Len, _Types...>::type; + + + 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; + + + + + + template class _Op, typename... _Args> + struct __detector + { + using value_t = false_type; + using type = _Default; + }; + + + template class _Op, + typename... _Args> + struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> + { + using value_t = true_type; + using type = _Op<_Args...>; + }; + + + 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; +# 2649 "/usr/include/c++/11/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_impl> : true_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 + { + typedef decltype(__test<_Tp>(0)) type; + }; + + template + struct __is_nothrow_swappable_impl + : public __swappable_details::__do_is_nothrow_swappable_impl + { + typedef decltype(__test<_Tp>(0)) type; + }; + + 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 + { + typedef decltype(__test<_Tp, _Up>(0)) type; + }; + + + template + struct __is_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_swappable_impl + { + typedef decltype(__test<_Tp&>(0)) type; + }; + + template + struct __is_nothrow_swappable_with_impl + : public __swappable_with_details::__do_is_nothrow_swappable_with_impl + { + typedef decltype(__test<_Tp, _Up>(0)) type; + }; + + + template + struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_nothrow_swappable_impl + { + typedef decltype(__test<_Tp&>(0)) type; + }; + + + + 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; +# 2876 "/usr/include/c++/11/type_traits" 3 + template::value, typename = void> + struct __is_invocable_impl + : false_type + { + using __nothrow_type = false_type; + }; + + + template + struct __is_invocable_impl<_Result, _Ret, + true, + __void_t> + : true_type + { + using __nothrow_type = true_type; + }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + + template + struct __is_invocable_impl<_Result, _Ret, + false, + __void_t> + { + private: + + + + static typename _Result::type _S_get() noexcept; + + template + static void _S_conv(_Tp) noexcept; + + + template(_S_get())), + bool _Noex = noexcept(_S_conv<_Tp>(_S_get()))> + static __bool_constant<_Check_Noex ? _Noex : true> + _S_test(int); + + template + static false_type + _S_test(...); + + public: + + using type = decltype(_S_test<_Ret>(1)); + + + using __nothrow_type = decltype(_S_test<_Ret, true>(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_type; + + + + 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"); + }; +# 3094 "/usr/include/c++/11/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>::value; +template + inline constexpr bool is_pointer_v = is_pointer<_Tp>::value; +template + inline constexpr bool is_lvalue_reference_v = + is_lvalue_reference<_Tp>::value; +template + inline constexpr bool is_rvalue_reference_v = + is_rvalue_reference<_Tp>::value; +template + inline constexpr bool is_member_object_pointer_v = + is_member_object_pointer<_Tp>::value; +template + inline constexpr bool is_member_function_pointer_v = + is_member_function_pointer<_Tp>::value; +template + inline constexpr bool is_enum_v = is_enum<_Tp>::value; +template + inline constexpr bool is_union_v = is_union<_Tp>::value; +template + inline constexpr bool is_class_v = is_class<_Tp>::value; +template + inline constexpr bool is_function_v = is_function<_Tp>::value; +template + inline constexpr bool is_reference_v = is_reference<_Tp>::value; +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>::value; +template + inline constexpr bool is_scalar_v = is_scalar<_Tp>::value; +template + inline constexpr bool is_compound_v = is_compound<_Tp>::value; +template + inline constexpr bool is_member_pointer_v = is_member_pointer<_Tp>::value; +template + inline constexpr bool is_const_v = is_const<_Tp>::value; +template + inline constexpr bool is_volatile_v = is_volatile<_Tp>::value; +template + inline constexpr bool is_trivial_v = is_trivial<_Tp>::value; +template + inline constexpr bool is_trivially_copyable_v = + is_trivially_copyable<_Tp>::value; +template + inline constexpr bool is_standard_layout_v = is_standard_layout<_Tp>::value; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +template + + inline constexpr bool is_pod_v = is_pod<_Tp>::value; +template + [[__deprecated__]] + inline constexpr bool is_literal_type_v = is_literal_type<_Tp>::value; +#pragma GCC diagnostic pop + template + inline constexpr bool is_empty_v = is_empty<_Tp>::value; +template + inline constexpr bool is_polymorphic_v = is_polymorphic<_Tp>::value; +template + inline constexpr bool is_abstract_v = is_abstract<_Tp>::value; +template + inline constexpr bool is_final_v = is_final<_Tp>::value; +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...>::value; +template + inline constexpr bool is_default_constructible_v = + is_default_constructible<_Tp>::value; +template + inline constexpr bool is_copy_constructible_v = + is_copy_constructible<_Tp>::value; +template + inline constexpr bool is_move_constructible_v = + is_move_constructible<_Tp>::value; +template + inline constexpr bool is_assignable_v = is_assignable<_Tp, _Up>::value; +template + inline constexpr bool is_copy_assignable_v = is_copy_assignable<_Tp>::value; +template + inline constexpr bool is_move_assignable_v = is_move_assignable<_Tp>::value; +template + inline constexpr bool is_destructible_v = is_destructible<_Tp>::value; +template + inline constexpr bool is_trivially_constructible_v = + is_trivially_constructible<_Tp, _Args...>::value; +template + inline constexpr bool is_trivially_default_constructible_v = + is_trivially_default_constructible<_Tp>::value; +template + inline constexpr bool is_trivially_copy_constructible_v = + is_trivially_copy_constructible<_Tp>::value; +template + inline constexpr bool is_trivially_move_constructible_v = + is_trivially_move_constructible<_Tp>::value; +template + inline constexpr bool is_trivially_assignable_v = + is_trivially_assignable<_Tp, _Up>::value; +template + inline constexpr bool is_trivially_copy_assignable_v = + is_trivially_copy_assignable<_Tp>::value; +template + inline constexpr bool is_trivially_move_assignable_v = + is_trivially_move_assignable<_Tp>::value; +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...>::value; +template + inline constexpr bool is_nothrow_default_constructible_v = + is_nothrow_default_constructible<_Tp>::value; +template + inline constexpr bool is_nothrow_copy_constructible_v = + is_nothrow_copy_constructible<_Tp>::value; +template + inline constexpr bool is_nothrow_move_constructible_v = + is_nothrow_move_constructible<_Tp>::value; +template + inline constexpr bool is_nothrow_assignable_v = + is_nothrow_assignable<_Tp, _Up>::value; +template + inline constexpr bool is_nothrow_copy_assignable_v = + is_nothrow_copy_assignable<_Tp>::value; +template + inline constexpr bool is_nothrow_move_assignable_v = + is_nothrow_move_assignable<_Tp>::value; +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>::value; +template + inline constexpr size_t alignment_of_v = alignment_of<_Tp>::value; +template + inline constexpr size_t rank_v = rank<_Tp>::value; +template + inline constexpr size_t extent_v = extent<_Tp, _Idx>::value; + +template + inline constexpr bool is_same_v = __is_same(_Tp, _Up); + + + + +template + inline constexpr bool is_base_of_v = is_base_of<_Base, _Derived>::value; +template + inline constexpr bool is_convertible_v = is_convertible<_From, _To>::value; +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<_Tp>::value; +# 3598 "/usr/include/c++/11/type_traits" 3 + +} +# 58 "/usr/include/c++/11/bits/move.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 74 "/usr/include/c++/11/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type& __t) noexcept + { return static_cast<_Tp&&>(__t); } + + + + + + + + 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); + } + + + + + + + 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 { }; +# 121 "/usr/include/c++/11/bits/move.h" 3 + template + [[__nodiscard__]] + constexpr typename + conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type + move_if_noexcept(_Tp& __x) noexcept + { return std::move(__x); } +# 142 "/usr/include/c++/11/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; + } +# 186 "/usr/include/c++/11/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]); + } + + + +} +# 60 "/usr/include/c++/11/bits/stl_pair.h" 2 3 +# 69 "/usr/include/c++/11/bits/stl_pair.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 80 "/usr/include/c++/11/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 + class tuple; + + template + struct _Index_tuple; + + + + + + + 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 + static constexpr bool _CopyMovePair() + { + using __do_converts = __and_, + is_convertible<_U2&&, _T2>>; + using __converts = typename conditional<__implicit, + __do_converts, + __not_<__do_converts>>::type; + return __and_, + is_constructible<_T2, _U2&&>, + __converts + >::value; + } + + template + static constexpr bool _MoveCopyPair() + { + using __do_converts = __and_, + is_convertible>; + using __converts = typename conditional<__implicit, + __do_converts, + __not_<__do_converts>>::type; + return __and_, + is_constructible<_T2, const _U2&&>, + __converts + >::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; + } + }; + + + 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; + + }; +# 210 "/usr/include/c++/11/bits/stl_pair.h" 3 + template + struct pair + : private __pair_base<_T1, _T2> + { + typedef _T1 first_type; + typedef _T2 second_type; + + _T1 first; + _T2 second; + + + + + + + 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() { } +# 256 "/usr/include/c++/11/bits/stl_pair.h" 3 + 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) { } +# 288 "/usr/include/c++/11/bits/stl_pair.h" 3 + 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) { } + + + + constexpr pair(const pair&) = default; + constexpr pair(pair&&) = default; + + + template(), + bool>::type=true> + constexpr pair(_U1&& __x, const _T2& __y) + : first(std::forward<_U1>(__x)), second(__y) { } + + template(), + bool>::type=false> + explicit constexpr pair(_U1&& __x, const _T2& __y) + : first(std::forward<_U1>(__x)), second(__y) { } + + template(), + bool>::type=true> + constexpr pair(const _T1& __x, _U2&& __y) + : first(__x), second(std::forward<_U2>(__y)) { } + + template(), + bool>::type=false> + explicit pair(const _T1& __x, _U2&& __y) + : first(__x), 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)) { } + + template + + pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); + + pair& + operator=(typename conditional< + __and_, + is_copy_assignable<_T2>>::value, + const pair&, const __nonesuch&>::type __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + pair& + operator=(typename conditional< + __and_, + is_move_assignable<_T2>>::value, + pair&&, __nonesuch&&>::type __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; + } + + + 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); + } + + private: + template + + pair(tuple<_Args1...>&, tuple<_Args2...>&, + _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); + + }; + + + + + template pair(_T1, _T2) -> pair<_T1, _T2>; + + + + template + inline constexpr bool + operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first == __y.first && __x.second == __y.second; } +# 487 "/usr/include/c++/11/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); } +# 524 "/usr/include/c++/11/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); } + + + template + typename enable_if, + __is_swappable<_T2>>::value>::type + swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; +# 564 "/usr/include/c++/11/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)); + } +# 583 "/usr/include/c++/11/bits/stl_pair.h" 3 + +} +# 65 "/usr/include/c++/11/bits/stl_algobase.h" 2 3 +# 1 "/usr/include/c++/11/bits/stl_iterator_base_types.h" 1 3 +# 62 "/usr/include/c++/11/bits/stl_iterator_base_types.h" 3 + +# 63 "/usr/include/c++/11/bits/stl_iterator_base_types.h" 3 +# 74 "/usr/include/c++/11/bits/stl_iterator_base_types.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 93 "/usr/include/c++/11/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/include/c++/11/bits/stl_iterator_base_types.h" 3 + template + struct iterator + { + + typedef _Category iterator_category; + + typedef _Tp value_type; + + typedef _Distance difference_type; + + typedef _Pointer pointer; + + typedef _Reference reference; + }; +# 149 "/usr/include/c++/11/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/include/c++/11/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 + inline constexpr + typename iterator_traits<_Iter>::iterator_category + __iterator_category(const _Iter&) + { return typename iterator_traits<_Iter>::iterator_category(); } + + + + + template + using __iterator_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/include/c++/11/bits/stl_algobase.h" 2 3 +# 1 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 1 3 +# 62 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 3 + +# 63 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 3 + +# 1 "/usr/include/c++/11/bits/concept_check.h" 1 3 +# 33 "/usr/include/c++/11/bits/concept_check.h" 3 + +# 34 "/usr/include/c++/11/bits/concept_check.h" 3 +# 65 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 2 3 +# 1 "/usr/include/c++/11/debug/assertions.h" 1 3 +# 66 "/usr/include/c++/11/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 + 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); +# 135 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 3 + template + 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 (__builtin_is_constant_evaluated() && !bool(__n >= 0)) __builtin_unreachable(); } 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; + } +# 200 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 3 + template + 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 + inline constexpr _InputIterator + next(_InputIterator __x, typename + iterator_traits<_InputIterator>::difference_type __n = 1) + { + + + std::advance(__x, __n); + return __x; + } + + template + inline constexpr _BidirectionalIterator + prev(_BidirectionalIterator __x, typename + iterator_traits<_BidirectionalIterator>::difference_type __n = 1) + { + + + + std::advance(__x, -__n); + return __x; + } + + + + +} +# 67 "/usr/include/c++/11/bits/stl_algobase.h" 2 3 +# 1 "/usr/include/c++/11/bits/stl_iterator.h" 1 3 +# 67 "/usr/include/c++/11/bits/stl_iterator.h" 3 +# 1 "/usr/include/c++/11/bits/ptr_traits.h" 1 3 +# 42 "/usr/include/c++/11/bits/ptr_traits.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + class __undefined; + + + template + struct __replace_first_arg + { }; + + template class _Template, typename _Up, + typename _Tp, typename... _Types> + struct __replace_first_arg<_Template<_Tp, _Types...>, _Up> + { using type = _Template<_Up, _Types...>; }; + + template + using __replace_first_arg_t = typename __replace_first_arg<_Tp, _Up>::type; + + template + using __make_not_void + = typename conditional::value, __undefined, _Tp>::type; + + template + struct __ptr_traits_elem_1 + { }; + + template class _SomePointer, typename _Tp, + typename... _Args> + struct __ptr_traits_elem_1<_SomePointer<_Tp, _Args...>> + { + using element_type = _Tp; + using pointer = _SomePointer<_Tp, _Args...>; + + static pointer + pointer_to(__make_not_void& __e) + { return pointer::pointer_to(__e); } + }; + + template + struct __ptr_traits_elem : __ptr_traits_elem_1<_Ptr> + { }; + + template + struct __ptr_traits_elem<_Ptr, __void_t> + { + using element_type = typename _Ptr::element_type; + + static _Ptr + pointer_to(__make_not_void& __e) + { return _Ptr::pointer_to(__e); } + }; + + + + + + template + struct pointer_traits : __ptr_traits_elem<_Ptr> + { + private: + template + using __difference_type = typename _Tp::difference_type; + + template + struct __rebind : __replace_first_arg<_Tp, _Up> { }; + + template + struct __rebind<_Tp, _Up, __void_t>> + { using type = typename _Tp::template rebind<_Up>; }; + + public: + + using pointer = _Ptr; + + + using difference_type + = __detected_or_t; + + + template + using rebind = typename __rebind<_Ptr, _Up>::type; + }; + + + + + + template + struct pointer_traits<_Tp*> + { + + typedef _Tp* pointer; + + typedef _Tp element_type; + + typedef ptrdiff_t difference_type; + + template + using rebind = _Up*; + + + + + + + static pointer + pointer_to(__make_not_void& __r) noexcept + { return std::addressof(__r); } + }; + + + 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->()); } +# 214 "/usr/include/c++/11/bits/ptr_traits.h" 3 + +} +# 68 "/usr/include/c++/11/bits/stl_iterator.h" 2 3 +# 88 "/usr/include/c++/11/bits/stl_iterator.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 127 "/usr/include/c++/11/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; +# 146 "/usr/include/c++/11/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; +# 177 "/usr/include/c++/11/bits/stl_iterator.h" 3 + constexpr + reverse_iterator() : current() { } + + + + + explicit constexpr + reverse_iterator(iterator_type __x) : current(__x) { } + + + + + constexpr + reverse_iterator(const reverse_iterator& __x) + : current(__x.current) { } + + + reverse_iterator& operator=(const reverse_iterator&) = default; + + + + + + + template + + + + constexpr + reverse_iterator(const reverse_iterator<_Iter>& __x) + : current(__x.current) { } + + + template + + + + + constexpr + reverse_iterator& + operator=(const reverse_iterator<_Iter>& __x) + { + current = __x.current; + return *this; + } + + + + + + constexpr iterator_type + base() const + { return current; } +# 241 "/usr/include/c++/11/bits/stl_iterator.h" 3 + constexpr reference + operator*() const + { + _Iterator __tmp = current; + return *--__tmp; + } + + + + + + + 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; + } + + + + + + + constexpr reverse_iterator + operator+(difference_type __n) const + { return reverse_iterator(current - __n); } + + + + + + + + constexpr reverse_iterator& + operator+=(difference_type __n) + { + current -= __n; + return *this; + } + + + + + + + constexpr reverse_iterator + operator-(difference_type __n) const + { return reverse_iterator(current + __n); } + + + + + + + + constexpr reverse_iterator& + operator-=(difference_type __n) + { + current += __n; + return *this; + } + + + + + + + constexpr reference + operator[](difference_type __n) const + { return *(*this + __n); } +# 395 "/usr/include/c++/11/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->(); } + }; +# 418 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + inline constexpr bool + operator==(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __x.base() == __y.base(); } + + template + inline constexpr bool + operator<(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y.base() < __x.base(); } + + template + inline constexpr bool + operator!=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + inline constexpr bool + operator>(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y < __x; } + + template + inline constexpr bool + operator<=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + inline constexpr bool + operator>=(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return !(__x < __y); } + + + + + template + 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 + 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 + 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(); } +# 575 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + 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 + 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 + inline constexpr reverse_iterator<_Iterator> + make_reverse_iterator(_Iterator __i) + { return reverse_iterator<_Iterator>(__i); } +# 616 "/usr/include/c++/11/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())); } +# 647 "/usr/include/c++/11/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)) { } +# 687 "/usr/include/c++/11/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; + } + + + + + back_insert_iterator& + operator*() + { return *this; } + + + + back_insert_iterator& + operator++() + { return *this; } + + + + back_insert_iterator + operator++(int) + { return *this; } + }; +# 734 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + + inline back_insert_iterator<_Container> + back_inserter(_Container& __x) + { return back_insert_iterator<_Container>(__x); } +# 750 "/usr/include/c++/11/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)) { } +# 790 "/usr/include/c++/11/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; + } + + + + + front_insert_iterator& + operator*() + { return *this; } + + + + front_insert_iterator& + operator++() + { return *this; } + + + + front_insert_iterator + operator++(int) + { return *this; } + }; +# 837 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + + inline front_insert_iterator<_Container> + front_inserter(_Container& __x) + { return front_insert_iterator<_Container>(__x); } +# 857 "/usr/include/c++/11/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; +# 889 "/usr/include/c++/11/bits/stl_iterator.h" 3 + + insert_iterator(_Container& __x, _Iter __i) + : container(std::__addressof(__x)), iter(__i) {} +# 925 "/usr/include/c++/11/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; + } + + + + + insert_iterator& + operator*() + { return *this; } + + + + insert_iterator& + operator++() + { return *this; } + + + + insert_iterator& + operator++(int) + { return *this; } + }; +# 981 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + inline insert_iterator<_Container> + inserter(_Container& __x, typename _Container::iterator __i) + { return insert_iterator<_Container>(__x, __i); } + + + + + +} + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + +# 1003 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + class __normal_iterator + { + protected: + _Iterator _M_current; + + typedef std::iterator_traits<_Iterator> __traits_type; + + 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, + typename __enable_if< + (std::__are_same<_Iter, typename _Container::pointer>::__value), + _Container>::__type>& __i) noexcept + : _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; } + }; +# 1152 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + + inline bool + operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + + inline bool + operator==(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() == __rhs.base(); } + + template + + inline bool + operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + template + + inline bool + operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() != __rhs.base(); } + + + template + inline bool + operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + + inline bool + operator<(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() < __rhs.base(); } + + template + inline bool + operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + + inline bool + operator>(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() > __rhs.base(); } + + template + inline bool + operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + + inline bool + operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() <= __rhs.base(); } + + template + inline bool + operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, + const __normal_iterator<_IteratorR, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + template + + inline bool + operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept + { return __lhs.base() >= __rhs.base(); } + + + + + + + template + + + + 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 + + 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 + + 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(); } +# 1342 "/usr/include/c++/11/bits/stl_iterator.h" 3 + namespace __detail + { +# 1358 "/usr/include/c++/11/bits/stl_iterator.h" 3 + } +# 1369 "/usr/include/c++/11/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; +# 1408 "/usr/include/c++/11/bits/stl_iterator.h" 3 + public: + using iterator_type = _Iterator; +# 1422 "/usr/include/c++/11/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; + + + typedef typename conditional::value, + typename remove_reference<__base_ref>::type&&, + __base_ref>::type reference; + + + 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; + } + + + constexpr iterator_type + base() const + { return _M_current; } +# 1476 "/usr/include/c++/11/bits/stl_iterator.h" 3 + constexpr reference + operator*() const + + + + { return static_cast(*_M_current); } + + + 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; + } + + 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; + } + + 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; + } + + constexpr reference + operator[](difference_type __n) const + + + + { return std::move(_M_current[__n]); } +# 1581 "/usr/include/c++/11/bits/stl_iterator.h" 3 + }; + + template + inline constexpr bool + operator==(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __x.base() == __y.base(); } +# 1600 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + inline constexpr bool + operator!=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + { return !(__x == __y); } + + + template + inline constexpr bool + operator<(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __x.base() < __y.base(); } + + template + inline constexpr bool + operator<=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return !(__y < __x); } + + template + inline constexpr bool + operator>(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return __y < __x; } + + template + inline constexpr bool + operator>=(const move_iterator<_IteratorL>& __x, + const move_iterator<_IteratorR>& __y) + + + + { return !(__x < __y); } + + + + + template + inline constexpr bool + operator==(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __x.base() == __y.base(); } +# 1659 "/usr/include/c++/11/bits/stl_iterator.h" 3 + template + inline constexpr bool + operator!=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x == __y); } + + template + inline constexpr bool + operator<(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __x.base() < __y.base(); } + + template + inline constexpr bool + operator<=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__y < __x); } + + template + inline constexpr bool + operator>(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __y < __x; } + + template + inline constexpr bool + operator>=(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return !(__x < __y); } + + + + template + 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 + inline constexpr move_iterator<_Iterator> + operator+(typename move_iterator<_Iterator>::difference_type __n, + const move_iterator<_Iterator>& __x) + { return __x + __n; } + + template + 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>>::type> + inline constexpr _ReturnType + __make_move_if_noexcept_iterator(_Iterator __i) + { return _ReturnType(__i); } + + + + template::value, + const _Tp*, move_iterator<_Tp*>>::type> + inline constexpr _ReturnType + __make_move_if_noexcept_iterator(_Tp* __i) + { return _ReturnType(__i); } +# 2447 "/usr/include/c++/11/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()); } +# 2479 "/usr/include/c++/11/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/include/c++/11/bits/stl_algobase.h" 2 3 + +# 1 "/usr/include/c++/11/debug/debug.h" 1 3 +# 48 "/usr/include/c++/11/debug/debug.h" 3 +namespace std +{ + namespace __debug { } +} + + + + +namespace __gnu_debug +{ + using namespace std::__debug; + + template + struct _Safe_iterator; +} +# 70 "/usr/include/c++/11/bits/stl_algobase.h" 2 3 + +# 1 "/usr/include/c++/11/bits/predefined_ops.h" 1 3 +# 35 "/usr/include/c++/11/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/include/c++/11/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"); +# 105 "/usr/include/c++/11/bits/stl_algobase.h" 3 + return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); + } +# 149 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline void + iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) + { + + + + +# 182 "/usr/include/c++/11/bits/stl_algobase.h" 3 + swap(*__a, *__b); + + } +# 198 "/usr/include/c++/11/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; + } +# 227 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + constexpr + inline const _Tp& + min(const _Tp& __a, const _Tp& __b) + { + + + + if (__b < __a) + return __b; + return __a; + } +# 251 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + constexpr + inline const _Tp& + max(const _Tp& __a, const _Tp& __b) + { + + + + if (__a < __b) + return __b; + return __a; + } +# 275 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + constexpr + inline const _Tp& + min(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + + if (__comp(__b, __a)) + return __b; + return __a; + } +# 297 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + 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; } + + template + _Ite + __niter_base(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, + std::random_access_iterator_tag>&); + + + + + template + + inline _From + __niter_wrap(_From __from, _To __res) + { return __from + (__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<> + 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 + struct __copy_move<_IsMove, true, random_access_iterator_tag> + { + template + + static _Tp* + __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) + { + + using __assignable = conditional<_IsMove, + is_move_assignable<_Tp>, + is_copy_assignable<_Tp>>; + + static_assert( __assignable::type::value, "type is not assignable" ); + + const ptrdiff_t _Num = __last - __first; + if (_Num) + __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); + 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); +# 608 "/usr/include/c++/11/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); + } +# 641 "/usr/include/c++/11/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 _Tp* + __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) + { + + using __assignable = conditional<_IsMove, + is_move_assignable<_Tp>, + is_copy_assignable<_Tp>>; + + static_assert( __assignable::type::value, "type is not assignable" ); + + const ptrdiff_t _Num = __last - __first; + if (_Num) + __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); + 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>&); +# 845 "/usr/include/c++/11/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); + } +# 881 "/usr/include/c++/11/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; +# 943 "/usr/include/c++/11/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&); +# 989 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline void + fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) + { + + + + ; + + std::__fill_a(__first, __last, __value); + } + + + 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; } + + + inline constexpr __int128 + __size_to_integer(__int128 __n) { return __n; } + inline constexpr unsigned __int128 + __size_to_integer(unsigned __int128 __n) { return __n; } +# 1041 "/usr/include/c++/11/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; } + + + + + + 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; + } +# 1141 "/usr/include/c++/11/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; + } +# 1487 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline _ForwardIterator + lower_bound(_ForwardIterator __first, _ForwardIterator __last, + const _Tp& __val) + { + + + + + ; + + return std::__lower_bound(__first, __last, __val, + __gnu_cxx::__ops::__iter_less_val()); + } + + + + inline constexpr int + __lg(int __n) + { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); } + + inline constexpr unsigned + __lg(unsigned __n) + { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); } + + inline constexpr long + __lg(long __n) + { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); } + + inline constexpr unsigned long + __lg(unsigned long __n) + { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); } + + inline constexpr long long + __lg(long long __n) + { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } + + inline constexpr unsigned long long + __lg(unsigned long long __n) + { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } + + +# 1543 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2) + { + + + + + + + ; + + return std::__equal_aux(__first1, __last1, __first2); + } +# 1574 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + 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; + } + + + + 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 (_RAIters()) + { + auto __d1 = std::distance(__first1, __last1); + auto __d2 = std::distance(__first2, __last2); + if (__d1 != __d2) + return false; + return std::equal(__first1, __last1, __first2); + } + + 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 (_RAIters()) + { + auto __d1 = std::distance(__first1, __last1); + auto __d2 = std::distance(__first2, __last2); + if (__d1 != __d2) + return false; + return std::equal(__first1, __last1, __first2, + __binary_pred); + } + + for (; __first1 != __last1 && __first2 != __last2; + ++__first1, (void)++__first2) + if (!bool(__binary_pred(*__first1, *__first2))) + return false; + return __first1 == __last1 && __first2 == __last2; + } +# 1664 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { + + + + + + + ; + ; + + return std::__equal4(__first1, __last1, __first2, __last2); + } +# 1697 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline bool + equal(_IIter1 __first1, _IIter1 __last1, + _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred) + { + + + + ; + ; + + return std::__equal4(__first1, __last1, __first2, __last2, + __binary_pred); + } +# 1729 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline bool + lexicographical_compare(_II1 __first1, _II1 __last1, + _II2 __first2, _II2 __last2) + { + + + + + + + + + + ; + ; + + return std::__lexicographical_compare_aux(__first1, __last1, + __first2, __last2); + } +# 1764 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + 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)); + } +# 1877 "/usr/include/c++/11/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); + } +# 1905 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2) + { + + + + + + + ; + + return std::__mismatch(__first1, __last1, __first2, + __gnu_cxx::__ops::__iter_equal_to_iter()); + } +# 1939 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + 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); + } +# 1988 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + 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()); + } +# 2024 "/usr/include/c++/11/bits/stl_algobase.h" 3 + template + + 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 + + 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; + } +# 2181 "/usr/include/c++/11/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()); + } + + + +} +# 46 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/limits" 1 3 +# 40 "/usr/include/c++/11/limits" 3 + +# 41 "/usr/include/c++/11/limits" 3 +# 158 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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; + }; +# 1635 "/usr/include/c++/11/limits" 3 + 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; }; 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; }; +# 1667 "/usr/include/c++/11/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; + }; + + + + + + +} +# 47 "/usr/include/c++/11/bits/specfun.h" 2 3 + + +# 1 "/usr/include/c++/11/tr1/gamma.tcc" 1 3 +# 49 "/usr/include/c++/11/tr1/gamma.tcc" 3 +# 1 "/usr/include/c++/11/tr1/special_function_util.h" 1 3 +# 39 "/usr/include/c++/11/tr1/special_function_util.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 50 "/usr/include/c++/11/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/include/c++/11/tr1/special_function_util.h" 3 + template + inline bool __isnan(_Tp __x) + { return std::isnan(__x); } +# 133 "/usr/include/c++/11/tr1/special_function_util.h" 3 + } + + + + + +} +# 50 "/usr/include/c++/11/tr1/gamma.tcc" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/include/c++/11/tr1/gamma.tcc" 3 + namespace __detail + { +# 76 "/usr/include/c++/11/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/include/c++/11/tr1/gamma.tcc" 3 + template + inline _Tp + __bernoulli(int __n) + { return __bernoulli_series<_Tp>(__n); } +# 153 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/gamma.tcc" 3 + template + inline _Tp + __gamma(_Tp __x) + { return std::exp(__log_gamma(__x)); } +# 356 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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; + } + } + } + + + + + + +} +# 50 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/bessel_function.tcc" 1 3 +# 55 "/usr/include/c++/11/tr1/bessel_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 71 "/usr/include/c++/11/tr1/bessel_function.tcc" 3 + namespace __detail + { +# 98 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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; + } + } + } + + + + + + +} +# 51 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/beta_function.tcc" 1 3 +# 49 "/usr/include/c++/11/tr1/beta_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/include/c++/11/tr1/beta_function.tcc" 3 + namespace __detail + { +# 79 "/usr/include/c++/11/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/include/c++/11/tr1/beta_function.tcc" 3 + return __bet; + } +# 127 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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); + } + } + + + + + + +} +# 52 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/ell_integral.tcc" 1 3 +# 45 "/usr/include/c++/11/tr1/ell_integral.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 59 "/usr/include/c++/11/tr1/ell_integral.tcc" 3 + namespace __detail + { +# 76 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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); + } + } + } + + + + + +} +# 53 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/exp_integral.tcc" 1 3 +# 50 "/usr/include/c++/11/tr1/exp_integral.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 64 "/usr/include/c++/11/tr1/exp_integral.tcc" 3 + namespace __detail + { + template _Tp __expint_E1(_Tp); +# 81 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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); + } + } + + + + + +} +# 54 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/hypergeometric.tcc" 1 3 +# 44 "/usr/include/c++/11/tr1/hypergeometric.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 60 "/usr/include/c++/11/tr1/hypergeometric.tcc" 3 + namespace __detail + { +# 83 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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); + } + } + + + + + + +} +# 55 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/legendre_function.tcc" 1 3 +# 49 "/usr/include/c++/11/tr1/legendre_function.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/include/c++/11/tr1/legendre_function.tcc" 3 + namespace __detail + { +# 80 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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; + } + } + } + } + + + + + + +} +# 56 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/modified_bessel_func.tcc" 1 3 +# 51 "/usr/include/c++/11/tr1/modified_bessel_func.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 65 "/usr/include/c++/11/tr1/modified_bessel_func.tcc" 3 + namespace __detail + { +# 83 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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; + } + } + + + + + +} +# 57 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/poly_hermite.tcc" 1 3 +# 42 "/usr/include/c++/11/tr1/poly_hermite.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 56 "/usr/include/c++/11/tr1/poly_hermite.tcc" 3 + namespace __detail + { +# 72 "/usr/include/c++/11/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/include/c++/11/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); + } + } + + + + + +} +# 58 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/poly_laguerre.tcc" 1 3 +# 44 "/usr/include/c++/11/tr1/poly_laguerre.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 60 "/usr/include/c++/11/tr1/poly_laguerre.tcc" 3 + namespace __detail + { +# 75 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/poly_laguerre.tcc" 3 + template + inline _Tp + __laguerre(unsigned int __n, _Tp __x) + { return __poly_laguerre(__n, 0, __x); } + } + + + + + + +} +# 59 "/usr/include/c++/11/bits/specfun.h" 2 3 +# 1 "/usr/include/c++/11/tr1/riemann_zeta.tcc" 1 3 +# 47 "/usr/include/c++/11/tr1/riemann_zeta.tcc" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 63 "/usr/include/c++/11/tr1/riemann_zeta.tcc" 3 + namespace __detail + { +# 78 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/riemann_zeta.tcc" 3 + template + inline _Tp + __hurwitz_zeta(_Tp __a, _Tp __s) + { return __hurwitz_zeta_glob(__a, __s); } + } + + + + + + +} +# 60 "/usr/include/c++/11/bits/specfun.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 205 "/usr/include/c++/11/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); } +# 250 "/usr/include/c++/11/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); + } +# 266 "/usr/include/c++/11/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); } +# 296 "/usr/include/c++/11/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); + } +# 311 "/usr/include/c++/11/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); } +# 341 "/usr/include/c++/11/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); + } +# 357 "/usr/include/c++/11/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); } +# 389 "/usr/include/c++/11/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); + } +# 405 "/usr/include/c++/11/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); } +# 436 "/usr/include/c++/11/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); + } +# 452 "/usr/include/c++/11/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); } +# 487 "/usr/include/c++/11/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); + } +# 503 "/usr/include/c++/11/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); } +# 533 "/usr/include/c++/11/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); + } +# 549 "/usr/include/c++/11/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); } +# 579 "/usr/include/c++/11/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); + } +# 595 "/usr/include/c++/11/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); } +# 631 "/usr/include/c++/11/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); + } +# 647 "/usr/include/c++/11/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); } +# 679 "/usr/include/c++/11/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); + } +# 695 "/usr/include/c++/11/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); } +# 727 "/usr/include/c++/11/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); + } +# 743 "/usr/include/c++/11/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); } +# 775 "/usr/include/c++/11/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); + } +# 791 "/usr/include/c++/11/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); } +# 828 "/usr/include/c++/11/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); + } +# 843 "/usr/include/c++/11/bits/specfun.h" 3 + inline float + expintf(float __x) + { return __detail::__expint(__x); } + + + + + + + + inline long double + expintl(long double __x) + { return __detail::__expint(__x); } +# 868 "/usr/include/c++/11/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); + } +# 884 "/usr/include/c++/11/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); } +# 916 "/usr/include/c++/11/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); + } +# 932 "/usr/include/c++/11/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); } +# 960 "/usr/include/c++/11/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); + } +# 976 "/usr/include/c++/11/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); } +# 1005 "/usr/include/c++/11/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); + } +# 1021 "/usr/include/c++/11/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); } +# 1056 "/usr/include/c++/11/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); + } +# 1072 "/usr/include/c++/11/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); } +# 1100 "/usr/include/c++/11/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); + } +# 1116 "/usr/include/c++/11/bits/specfun.h" 3 + inline float + sph_legendref(unsigned int __l, unsigned int __m, float __theta) + { return __detail::__sph_legendre(__l, __m, __theta); } +# 1127 "/usr/include/c++/11/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); } +# 1147 "/usr/include/c++/11/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); + } +# 1163 "/usr/include/c++/11/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); } +# 1191 "/usr/include/c++/11/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"))) +{ + +# 1218 "/usr/include/c++/11/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; + } +# 1294 "/usr/include/c++/11/bits/specfun.h" 3 + inline float + conf_hypergf(float __a, float __c, float __x) + { return std::__detail::__conf_hyperg(__a, __c, __x); } +# 1305 "/usr/include/c++/11/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); } +# 1325 "/usr/include/c++/11/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); + } +# 1342 "/usr/include/c++/11/bits/specfun.h" 3 + inline float + hypergf(float __a, float __b, float __c, float __x) + { return std::__detail::__hyperg(__a, __b, __c, __x); } +# 1353 "/usr/include/c++/11/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); } +# 1374 "/usr/include/c++/11/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); + } + + + +} + + +#pragma GCC visibility pop +# 1936 "/usr/include/c++/11/cmath" 2 3 + + +} +# 37 "/usr/include/c++/11/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; +# 10551 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 +# 1 "/usr/include/c++/11/stdlib.h" 1 3 +# 10552 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 + + +# 1 "/usr/include/c++/11/cmath" 1 3 +# 39 "/usr/include/c++/11/cmath" 3 + +# 40 "/usr/include/c++/11/cmath" 3 +# 10555 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 +# 1 "/usr/include/c++/11/cstdlib" 1 3 +# 39 "/usr/include/c++/11/cstdlib" 3 + +# 40 "/usr/include/c++/11/cstdlib" 3 +# 10556 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 +# 10626 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" + +# 10626 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 10805 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 11206 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +namespace std { +# 11215 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int abs(long long int); +# 11225 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int abs(long int); +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); +# 11350 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +} +# 11456 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 11595 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11736 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float min(const float a, const float b); +# 11747 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const double b); +# 11757 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const float a, const double b); +# 11767 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11866 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float max(const float a, const float b); +# 11877 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const double b); +# 11887 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const float a, const double b); +# 11897 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const float b); +# 11909 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +} +# 12199 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.hpp" 1 +# 77 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.hpp" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 78 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.hpp" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 79 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.hpp" 2 +# 758 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +} +# 12200 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" 2 +# 304 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" 2 +# 118 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 1 +# 81 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 82 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_types.h" 1 +# 83 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 84 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 95 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +extern "C" +{ +# 106 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mulhi(int x, int y); +# 116 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umulhi(unsigned int x, unsigned int y); +# 126 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int_as_float(int x); +# 154 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float_as_int(float x); +# 163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint_as_float(unsigned int x); +# 172 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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(); +# 207 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __saturatef(float x); +# 276 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __sad(int x, int y, unsigned int z); +# 344 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 354 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mul24(int x, int y); +# 364 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umul24(unsigned int x, unsigned int y); +# 377 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float fdividef(float x, float y); +# 450 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 463 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __sinf(float x) +# 463 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 463 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __cosf(float x) +# 474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 487 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __tanf(float x) +# 487 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 487 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void __sincosf(float x, float *sptr, float *cptr) +# 502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 551 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __expf(float x) +# 551 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 551 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 582 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __exp10f(float x) +# 582 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 582 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 607 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log2f(float x) +# 607 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 607 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 634 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log10f(float x) +# 634 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 634 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 677 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __logf(float x) +# 677 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 677 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 719 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __powf(float x, float y) +# 719 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 3 4 + noexcept (true) +# 719 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" + ; +# 728 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rn(float x); +# 737 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rz(float x); +# 746 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_ru(float); +# 755 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rd(float x); +# 764 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rn(float x); +# 773 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rz(float x); +# 782 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_ru(float x); +# 791 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rd(float x); +# 800 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rn(int x); +# 809 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rz(int x); +# 818 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_ru(int x); +# 827 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rd(int x); +# 836 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rn(unsigned int x); +# 845 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rz(unsigned int x); +# 854 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_ru(unsigned int x); +# 863 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rd(unsigned int x); +# 872 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rn(float x); +# 881 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rz(float x); +# 890 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_ru(float x); +# 899 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rd(float x); +# 908 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rn(float x); +# 917 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rz(float x); +# 926 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_ru(float x); +# 935 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rd(float x); +# 944 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rn(long long int x); +# 953 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rz(long long int x); +# 962 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_ru(long long int x); +# 971 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rd(long long int x); +# 980 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rn(unsigned long long int x); +# 989 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rz(unsigned long long int x); +# 998 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_ru(unsigned long long int x); +# 1007 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rd(unsigned long long int x); +# 1019 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rn(float x, float y); +# 1031 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rz(float x, float y); +# 1043 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_ru(float x, float y); +# 1055 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rd(float x, float y); +# 1067 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rn(float x, float y); +# 1079 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rz(float x, float y); +# 1091 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_ru(float x, float y); +# 1103 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rd(float x, float y); +# 1115 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rn(float x, float y); +# 1127 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rz(float x, float y); +# 1139 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_ru(float x, float y); +# 1151 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rd(float x, float y); +# 1304 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rn(float x, float y, float z); +# 1457 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rz(float x, float y, float z); +# 1610 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_ru(float x, float y, float z); +# 1763 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rd(float x, float y, float z); +# 1796 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rn(float x); +# 1829 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rz(float x); +# 1862 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_ru(float x); +# 1895 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rd(float x); +# 1926 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rn(float x); +# 1957 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rz(float x); +# 1988 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_ru(float x); +# 2019 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rd(float x); +# 2058 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frsqrt_rn(float x); +# 2069 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rn(float x, float y); +# 2080 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rz(float x, float y); +# 2091 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_ru(float x, float y); +# 2102 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rd(float x, float y); +# 2111 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clz(int x); +# 2122 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffs(int x); +# 2131 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popc(unsigned int x); +# 2140 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __brev(unsigned int x); +# 2149 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clzll(long long int x); +# 2160 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffsll(long long int x); +# 2171 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popcll(unsigned long long int x); +# 2180 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __brevll(unsigned long long int x); +# 2203 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 2215 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __hadd(int x, int y); +# 2228 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __rhadd(int x, int y); +# 2240 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __uhadd(unsigned int x, unsigned int y); +# 2253 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __urhadd(unsigned int x, unsigned int y); +# 2263 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __double2int_rz(double x); +# 2272 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __double2uint_rz(double x); +# 2281 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __double2ll_rz(double x); +# 2290 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 2320 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs2(unsigned int a); +# 2331 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss2(unsigned int a); +# 2342 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd2(unsigned int a, unsigned int b); +# 2353 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss2 (unsigned int a, unsigned int b); +# 2363 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus2 (unsigned int a, unsigned int b); +# 2374 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs2(unsigned int a, unsigned int b); +# 2385 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu2(unsigned int a, unsigned int b); +# 2396 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu2(unsigned int a, unsigned int b); +# 2407 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq2(unsigned int a, unsigned int b); +# 2418 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges2(unsigned int a, unsigned int b); +# 2429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu2(unsigned int a, unsigned int b); +# 2440 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts2(unsigned int a, unsigned int b); +# 2451 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu2(unsigned int a, unsigned int b); +# 2462 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples2(unsigned int a, unsigned int b); +# 2474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu2(unsigned int a, unsigned int b); +# 2485 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts2(unsigned int a, unsigned int b); +# 2496 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu2(unsigned int a, unsigned int b); +# 2507 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne2(unsigned int a, unsigned int b); +# 2518 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu2(unsigned int a, unsigned int b); +# 2529 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs2(unsigned int a, unsigned int b); +# 2540 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu2(unsigned int a, unsigned int b); +# 2551 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins2(unsigned int a, unsigned int b); +# 2562 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu2(unsigned int a, unsigned int b); +# 2573 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq2(unsigned int a, unsigned int b); +# 2584 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges2(unsigned int a, unsigned int b); +# 2595 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu2(unsigned int a, unsigned int b); +# 2606 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts2(unsigned int a, unsigned int b); +# 2617 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu2(unsigned int a, unsigned int b); +# 2628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles2(unsigned int a, unsigned int b); +# 2639 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu2(unsigned int a, unsigned int b); +# 2650 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts2(unsigned int a, unsigned int b); +# 2661 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu2(unsigned int a, unsigned int b); +# 2672 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne2(unsigned int a, unsigned int b); +# 2683 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu2(unsigned int a, unsigned int b); +# 2694 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub2(unsigned int a, unsigned int b); +# 2705 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss2 (unsigned int a, unsigned int b); +# 2716 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus2 (unsigned int a, unsigned int b); +# 2726 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg2(unsigned int a); +# 2736 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss2(unsigned int a); +# 2747 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs2(unsigned int a, unsigned int b); +# 2758 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads2(unsigned int a, unsigned int b); +# 2768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs4(unsigned int a); +# 2779 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss4(unsigned int a); +# 2790 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd4(unsigned int a, unsigned int b); +# 2801 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss4 (unsigned int a, unsigned int b); +# 2811 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus4 (unsigned int a, unsigned int b); +# 2822 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs4(unsigned int a, unsigned int b); +# 2833 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu4(unsigned int a, unsigned int b); +# 2844 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu4(unsigned int a, unsigned int b); +# 2855 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq4(unsigned int a, unsigned int b); +# 2866 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges4(unsigned int a, unsigned int b); +# 2877 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu4(unsigned int a, unsigned int b); +# 2888 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts4(unsigned int a, unsigned int b); +# 2899 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu4(unsigned int a, unsigned int b); +# 2910 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples4(unsigned int a, unsigned int b); +# 2921 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu4(unsigned int a, unsigned int b); +# 2932 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts4(unsigned int a, unsigned int b); +# 2943 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu4(unsigned int a, unsigned int b); +# 2954 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne4(unsigned int a, unsigned int b); +# 2965 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu4(unsigned int a, unsigned int b); +# 2976 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs4(unsigned int a, unsigned int b); +# 2987 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu4(unsigned int a, unsigned int b); +# 2998 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins4(unsigned int a, unsigned int b); +# 3009 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu4(unsigned int a, unsigned int b); +# 3020 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq4(unsigned int a, unsigned int b); +# 3031 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles4(unsigned int a, unsigned int b); +# 3042 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu4(unsigned int a, unsigned int b); +# 3053 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts4(unsigned int a, unsigned int b); +# 3064 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu4(unsigned int a, unsigned int b); +# 3075 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges4(unsigned int a, unsigned int b); +# 3086 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu4(unsigned int a, unsigned int b); +# 3097 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts4(unsigned int a, unsigned int b); +# 3108 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu4(unsigned int a, unsigned int b); +# 3119 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne4(unsigned int a, unsigned int b); +# 3130 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu4(unsigned int a, unsigned int b); +# 3141 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub4(unsigned int a, unsigned int b); +# 3152 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss4(unsigned int a, unsigned int b); +# 3163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus4(unsigned int a, unsigned int b); +# 3173 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg4(unsigned int a); +# 3183 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss4(unsigned int a); +# 3194 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs4(unsigned int a, unsigned int b); +# 3205 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads4(unsigned int a, unsigned int b); +# 3215 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimax_s32_relu(const int a, const int b); +# 3227 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static __inline__ __attribute__((device)) __attribute__((host)) __attribute__((cudart_builtin)) int __vimin_s32_relu(const int a, const int b); +# 3248 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3257 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3269 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3278 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3290 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3299 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3311 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3320 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3332 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3341 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3353 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3362 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3374 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3395 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3416 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3425 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3437 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3446 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3458 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3468 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3480 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3490 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3511 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3520 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3529 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3538 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3552 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3566 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3580 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3594 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); + + + + + + +} +# 3617 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" 1 +# 81 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 82 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 84 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" 2 +# 108 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + + short ansS_lo = (short)max(aS_lo, bS_lo); + short ansS_hi = (short)max(aS_hi, bS_hi); + + + if(ansS_lo < 0){ ansS_lo = 0; } + if(ansS_hi < 0){ ansS_hi = 0; } + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_hi; + + + res = ((unsigned int) ansU_lo) | (((unsigned int) 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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + + short ansS_lo = (short)min(aS_lo, bS_lo); + short ansS_hi = (short)min(aS_hi, bS_hi); + + + if(ansS_lo < 0){ ansS_lo = 0; } + if(ansS_hi < 0){ ansS_hi = 0; } + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_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(const int a, const int b, const int c){ +# 226 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 243 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + short cS_lo = *(short*)& cU_lo; + short cS_hi = *(short*)& cU_hi; + + + short ansS_lo = (short)max(max(aS_lo, bS_lo), cS_lo); + short ansS_hi = (short)max(max(aS_hi, bS_hi), cS_hi); + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_hi; + + + res = ((unsigned int) ansU_lo) | (((unsigned int) 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){ +# 286 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 302 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 332 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 348 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + short cS_lo = *(short*)& cU_lo; + short cS_hi = *(short*)& cU_hi; + + + short ansS_lo = (short)min(min(aS_lo, bS_lo), cS_lo); + short ansS_hi = (short)min(min(aS_hi, bS_hi), cS_hi); + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_hi; + + + res = ((unsigned int) ansU_lo) | (((unsigned int) 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){ +# 392 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 408 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 438 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 456 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + short cS_lo = *(short*)& cU_lo; + short cS_hi = *(short*)& cU_hi; + + + short ansS_lo = (short)max(max(aS_lo, bS_lo), cS_lo); + short ansS_hi = (short)max(max(aS_hi, bS_hi), cS_hi); + + + if(ansS_lo < 0){ansS_lo = 0;} + if(ansS_hi < 0){ansS_hi = 0;} + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_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_relu(const int a, const int b, const int c){ +# 504 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 522 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + short cS_lo = *(short*)& cU_lo; + short cS_hi = *(short*)& cU_hi; + + + short ansS_lo = (short)min(min(aS_lo, bS_lo), cS_lo); + short ansS_hi = (short)min(min(aS_hi, bS_hi), cS_hi); + + + if(ansS_lo < 0){ansS_lo = 0;} + if(ansS_hi < 0){ansS_hi = 0;} + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_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(const int a, const int b, const int c){ +# 570 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 586 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + short cS_lo = *(short*)& cU_lo; + short cS_hi = *(short*)& cU_hi; + + + short ansS_lo = (short)max((short)(aS_lo + bS_lo), cS_lo); + short ansS_hi = (short)max((short)(aS_hi + bS_hi), cS_hi); + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_hi; + + + res = ((unsigned int) ansU_lo) | (((unsigned int) 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){ +# 630 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 646 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 676 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 692 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + short cS_lo = *(short*)& cU_lo; + short cS_hi = *(short*)& cU_hi; + + + short ansS_lo = (short)min((short)(aS_lo + bS_lo), cS_lo); + short ansS_hi = (short)min((short)(aS_hi + bS_hi), cS_hi); + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_hi; + + + res = ((unsigned int) ansU_lo) | (((unsigned int) 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){ +# 736 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 752 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 782 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 800 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + short cS_lo = *(short*)& cU_lo; + short cS_hi = *(short*)& cU_hi; + + + short ansS_lo = (short)max((short)(aS_lo + bS_lo), cS_lo); + short ansS_hi = (short)max((short)(aS_hi + bS_hi), cS_hi); + + if(ansS_lo < 0){ansS_lo = 0;} + if(ansS_hi < 0){ansS_hi = 0;} + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_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_relu(const int a, const int b, const int c){ +# 847 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +# 865 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + short cS_lo = *(short*)& cU_lo; + short cS_hi = *(short*)& cU_hi; + + + short ansS_lo = (short)min((short)(aS_lo + bS_lo), cS_lo); + short ansS_hi = (short)min((short)(aS_hi + bS_hi), cS_hi); + + if(ansS_lo < 0){ansS_lo = 0;} + if(ansS_hi < 0){ansS_hi = 0;} + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_hi; + + + res = ((unsigned int) ansU_lo) | (((unsigned int) 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){ +# 918 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 939 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 961 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 983 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 1012 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + + short ansS_lo = (short)max(aS_lo, bS_lo); + short ansS_hi = (short)max(aS_hi, bS_hi); + + *pred_hi = (aS_hi >= bS_hi); + *pred_lo = (aS_lo >= bS_lo); + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_hi; + + + 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 __vibmax_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1065 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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){ +# 1107 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 = *(short*)& aU_lo; + short aS_hi = *(short*)& aU_hi; + + short bS_lo = *(short*)& bU_lo; + short bS_hi = *(short*)& bU_hi; + + + short ansS_lo = (short)min(aS_lo, bS_lo); + short ansS_hi = (short)min(aS_hi, bS_hi); + + *pred_hi = (aS_hi <= bS_hi); + *pred_lo = (aS_lo <= bS_lo); + + + unsigned short ansU_lo = *(unsigned short*)& ansS_lo; + unsigned short ansU_hi = *(unsigned short*)& ansS_hi; + + + 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_u16x2(const unsigned int a, const unsigned int b, bool* const pred_hi, bool* const pred_lo){ +# 1160 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; + +} +# 3618 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 + + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_atomic_functions.h" 1 +# 89 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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) { } +# 3621 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" 1 +# 83 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 84 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 86 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" 2 + + + + +extern "C" +{ +# 100 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 109 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 266 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 423 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 580 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 737 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 749 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 761 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 773 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 785 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 797 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 809 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 821 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 833 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 845 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 857 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 869 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 881 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 890 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 899 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 908 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 917 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 926 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 935 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 944 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 953 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 962 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 971 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 980 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 989 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 998 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 1007 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 1016 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 1025 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 1059 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 1068 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 1077 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 1086 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 1095 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 1104 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1113 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1122 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1131 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1141 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.hpp" 1 +# 83 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.hpp" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 84 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.hpp" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 86 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" 2 +# 3622 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_atomic_functions.h" 1 +# 88 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_atomic_functions.h" +static __inline__ __attribute__((device)) float atomicAdd(float *address, float val) { } +# 3623 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_atomic_functions.h" 1 +# 89 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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) { } +# 3624 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_35_atomic_functions.h" 1 +# 56 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_35_atomic_functions.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_atomic_functions.h" 1 +# 57 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_35_atomic_functions.h" 2 +# 3625 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_60_atomic_functions.h" 1 +# 93 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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) { } +# 3626 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" 1 +# 95 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) void __threadfence_system(void); +# 109 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rn(double x, double y); +# 121 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rz(double x, double y); +# 133 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_ru(double x, double y); +# 145 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rd(double x, double y); +# 179 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rn(double x); +# 213 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rz(double x); +# 247 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_ru(double x); +# 281 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rd(double x); +# 313 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rn(double x); +# 345 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rz(double x); +# 377 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_ru(double x); +# 409 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 424 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rn(float x, float y, float z); +# 433 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rd(float x, float y, float z); +# 442 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_ru(float x, float y, float z); +# 451 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rz(float x, float y, float z); +# 464 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 473 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 630 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 944 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 1101 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 1113 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 1125 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 1137 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 1149 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 1161 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 1173 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 1185 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 1197 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 1209 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 1221 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 1233 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 1245 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 1254 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 1263 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 1272 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 1281 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 1290 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 1299 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 1308 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 1317 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 1326 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 1335 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 1344 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 1353 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 1362 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 1371 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 1380 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 1389 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 1414 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 1423 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 1432 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 1441 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 1450 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 1459 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 1468 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1477 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1486 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1495 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1505 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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) { } +# 3627 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_30_intrinsics.h" 1 +# 123 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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) { } +# 3628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.h" 1 +# 91 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_l(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 477 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_lc(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 490 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_r(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_32_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __funnelshift_rc(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 3629 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_35_intrinsics.h" 1 +# 3630 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" 1 +# 102 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp2a_lo(int srcA, int srcB, int c) { } +# 113 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp2a_lo(unsigned int srcA, unsigned int srcB, unsigned int c) { } +# 125 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp2a_lo(short2 srcA, char4 srcB, int c) { } +# 136 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp2a_lo(ushort2 srcA, uchar4 srcB, unsigned int c) { } +# 148 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp2a_hi(int srcA, int srcB, int c) { } +# 159 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp2a_hi(unsigned int srcA, unsigned int srcB, unsigned int c) { } +# 171 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp2a_hi(short2 srcA, char4 srcB, int c) { } +# 182 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp2a_hi(ushort2 srcA, uchar4 srcB, unsigned int c) { } +# 197 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp4a(int srcA, int srcB, int c) { } +# 206 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp4a(unsigned int srcA, unsigned int srcB, unsigned int c) { } +# 216 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ int __dp4a(char4 srcA, char4 srcB, int c) { } +# 225 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_61_intrinsics.h" +static __attribute__((device)) __inline__ unsigned int __dp4a(uchar4 srcA, uchar4 srcB, unsigned int c) { } +# 3631 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_70_rt.h" 1 +# 84 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_70_rt.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 85 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_70_rt.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 87 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_70_rt.h" 2 +# 98 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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) { } +# 3632 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_80_rt.h" 1 +# 81 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_80_rt.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 82 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_80_rt.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 84 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_80_rt.h" 2 +# 97 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} + +} +# 3633 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" 1 +# 79 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/builtin_types.h" 1 +# 80 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/host_defines.h" 1 +# 82 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" 2 +# 92 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +template +struct __nv_atomic_triv_cp_helper { + + + + + + + static const bool __val = __is_trivially_copyable(_T); + + + + +}; +# 201 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +} +# 3634 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/texture_indirect_functions.h" 1 +# 65 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +} +# 3636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/surface_indirect_functions.h" 1 +# 58 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 3637 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" 2 + +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/cudacc_ext.h" 1 +# 3639 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 119 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 +# 1 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_launch_parameters.h" 1 +# 68 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 +# 148 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +# 1 "/usr/include/c++/11/utility" 1 3 +# 58 "/usr/include/c++/11/utility" 3 + +# 59 "/usr/include/c++/11/utility" 3 +# 69 "/usr/include/c++/11/utility" 3 +# 1 "/usr/include/c++/11/bits/stl_relops.h" 1 3 +# 67 "/usr/include/c++/11/bits/stl_relops.h" 3 + +# 67 "/usr/include/c++/11/bits/stl_relops.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + namespace rel_ops + { +# 85 "/usr/include/c++/11/bits/stl_relops.h" 3 + template + inline bool + operator!=(const _Tp& __x, const _Tp& __y) + { return !(__x == __y); } +# 98 "/usr/include/c++/11/bits/stl_relops.h" 3 + template + inline bool + operator>(const _Tp& __x, const _Tp& __y) + { return __y < __x; } +# 111 "/usr/include/c++/11/bits/stl_relops.h" 3 + template + inline bool + operator<=(const _Tp& __x, const _Tp& __y) + { return !(__y < __x); } +# 124 "/usr/include/c++/11/bits/stl_relops.h" 3 + template + inline bool + operator>=(const _Tp& __x, const _Tp& __y) + { return !(__x < __y); } + } + + +} +# 70 "/usr/include/c++/11/utility" 2 3 + + + + + + +# 1 "/usr/include/c++/11/initializer_list" 1 3 +# 33 "/usr/include/c++/11/initializer_list" 3 + +# 34 "/usr/include/c++/11/initializer_list" 3 + + + + + +#pragma GCC visibility push(default) + + + +namespace std +{ + + 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(); } +} + +#pragma GCC visibility pop +# 77 "/usr/include/c++/11/utility" 2 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 + struct tuple_element; + + + template + using __tuple_element_t = typename tuple_element<__i, _Tp>::type; + + template + struct tuple_element<__i, const _Tp> + { + typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; + }; + + template + struct tuple_element<__i, volatile _Tp> + { + typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; + }; + + template + struct tuple_element<__i, const volatile _Tp> + { + typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; + }; + + + + + + + + template + using tuple_element_t = typename tuple_element<__i, _Tp>::type; + + + + + + 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 __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); } + + + + + template + + inline _Tp + exchange(_Tp& __obj, _Up&& __new_val) + { return std::__exchange(__obj, std::forward<_Up>(__new_val)); } + + + + + + template struct _Index_tuple { }; + + + template + struct _Build_index_tuple + { +# 312 "/usr/include/c++/11/utility" 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 + [[nodiscard]] + constexpr add_const_t<_Tp>& + as_const(_Tp& __t) noexcept + { return __t; } + + template + void as_const(const _Tp&&) = delete; +# 476 "/usr/include/c++/11/utility" 3 + +} +# 149 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" 2 +# 206 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" + +# 206 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernel( + const 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); +} +# 277 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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)...); +} +# 340 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel( + const 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); +} +# 384 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +static __inline__ __attribute__((host)) cudaError_t cudaEventCreate( + cudaEvent_t *event, + unsigned int flags +) +{ + return ::cudaEventCreateWithFlags(event, flags); +} +# 428 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 499 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 646 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 749 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 799 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 878 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 932 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 980 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1034 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1103 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1174 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1225 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1273 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1331 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1390 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +} +# 1443 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1493 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolAddress( + void **devPtr, + const T &symbol +) +{ + return ::cudaGetSymbolAddress(devPtr, (const void*)&symbol); +} +# 1525 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolSize( + size_t *size, + const T &symbol +) +{ + return ::cudaGetSymbolSize(size, (const void*)&symbol); +} +# 1577 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 + +} +# 1636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 1688 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; + } +}; +# 1758 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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; +} +# 1954 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 2000 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 2038 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 2097 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 2141 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 2184 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +} +# 2224 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetAttributes( + struct cudaFuncAttributes *attr, + T *entry +) +{ + return ::cudaFuncGetAttributes(attr, (const void*)entry); +} +# 2286 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetAttribute( + T *entry, + enum cudaFuncAttribute attr, + int value +) +{ + return ::cudaFuncSetAttribute((const void*)entry, attr, value); +} +# 2318 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetName( + const char **name, + const T *func +) +{ + return ::cudaFuncGetName(name, (const void *)func); +} +# 2341 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template +static __inline__ __attribute__((host)) cudaError_t cudaGetKernel( + cudaKernel_t *kernelPtr, + const T *entryFuncAddr +) +{ + return ::cudaGetKernel(kernelPtr, (const void *)entryFuncAddr); +} +# 2359 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +#pragma GCC diagnostic pop +# 0 "" 2 +# 1 "CMakeCUDACompilerId.cu" +# 492 "CMakeCUDACompilerId.cu" +char const* info_compiler = "INFO" ":" "compiler[" "NVIDIA" "]"; + +char const* info_simulate = "INFO" ":" "simulate[" "GNU" "]"; +# 819 "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' + (((4) / 10000000)%10)), ('0' + (((4) / 1000000)%10)), ('0' + (((4) / 100000)%10)), ('0' + (((4) / 10000)%10)), ('0' + (((4) / 1000)%10)), ('0' + (((4) / 100)%10)), ('0' + (((4) / 10)%10)), ('0' + ((4) % 10)), + + '.', ('0' + (((131) / 10000000)%10)), ('0' + (((131) / 1000000)%10)), ('0' + (((131) / 100000)%10)), ('0' + (((131) / 10000)%10)), ('0' + (((131) / 1000)%10)), ('0' + (((131) / 100)%10)), ('0' + (((131) / 10)%10)), ('0' + ((131) % 10)), + + + + + + ']','\0'}; +# 848 "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' + (((11) / 10000000)%10)), ('0' + (((11) / 1000000)%10)), ('0' + (((11) / 100000)%10)), ('0' + (((11) / 10000)%10)), ('0' + (((11) / 1000)%10)), ('0' + (((11) / 100)%10)), ('0' + (((11) / 10)%10)), ('0' + ((11) % 10)), + + '.', ('0' + (((4) / 10000000)%10)), ('0' + (((4) / 1000000)%10)), ('0' + (((4) / 100000)%10)), ('0' + (((4) / 10000)%10)), ('0' + (((4) / 1000)%10)), ('0' + (((4) / 100)%10)), ('0' + (((4) / 10)%10)), ('0' + ((4) % 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' + (((11) / 10000000)%10)), ('0' + (((11) / 1000000)%10)), ('0' + (((11) / 100000)%10)), ('0' + (((11) / 10000)%10)), ('0' + (((11) / 1000)%10)), ('0' + (((11) / 100)%10)), ('0' + (((11) / 10)%10)), ('0' + ((11) % 10)), + + '.', ('0' + (((4) / 10000000)%10)), ('0' + (((4) / 1000000)%10)), ('0' + (((4) / 100000)%10)), ('0' + (((4) / 10000)%10)), ('0' + (((4) / 1000)%10)), ('0' + (((4) / 100)%10)), ('0' + (((4) / 10)%10)), ('0' + ((4) % 10)), + + '.', ('0' + (((0) / 10000000)%10)), ('0' + (((0) / 1000000)%10)), ('0' + (((0) / 100000)%10)), ('0' + (((0) / 10000)%10)), ('0' + (((0) / 1000)%10)), ('0' + (((0) / 100)%10)), ('0' + (((0) / 10)%10)), ('0' + ((0) % 10)), + + + + + + ']','\0'}; +# 911 "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/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.c b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.c new file mode 100644 index 0000000..0a7e876 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.c @@ -0,0 +1,51 @@ +# 1 "CMakeCUDACompilerId.cu" +# 492 "CMakeCUDACompilerId.cu" +extern const char *info_compiler; + +extern const char *info_simulate; +# 819 "CMakeCUDACompilerId.cu" +static const char info_version[50]; +# 848 "CMakeCUDACompilerId.cu" +static const char info_simulate_version[41]; +# 868 "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]; +# 911 "CMakeCUDACompilerId.cu" +extern const char *info_language_standard_default; +# 929 "CMakeCUDACompilerId.cu" +extern const char *info_language_extensions_default; +# 492 "CMakeCUDACompilerId.cu" +const char *info_compiler = ((const char *)"INFO:compiler[NVIDIA]"); + +const char *info_simulate = ((const char *)"INFO:simulate[GNU]"); +# 819 "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)52),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)49),((char)51),((char)49),((char)93),((char)0)}; +# 848 "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)49),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)52),((char)93),((char)0)}; +# 868 "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)49),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)52),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)93),((char)0)}; +# 911 "CMakeCUDACompilerId.cu" +const char *info_language_standard_default = ((const char *)"INFO:standard_default[17]"); +# 929 "CMakeCUDACompilerId.cu" +const char *info_language_extensions_default = ((const char *)"INFO:extensions_default[ON]"); diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.cpp b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.cpp new file mode 100644 index 0000000..f115d8c --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.cpp @@ -0,0 +1,34730 @@ +# 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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +#pragma GCC diagnostic push +# 64 +#pragma GCC diagnostic ignored "-Wunused-function" +# 31 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_types.h" +#if 0 +# 68 +enum cudaRoundMode { +# 70 +cudaRoundNearest, +# 71 +cudaRoundZero, +# 72 +cudaRoundPosInf, +# 73 +cudaRoundMinInf +# 74 +}; +#endif +# 104 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 104 +struct char1 { +# 106 +signed char x; +# 107 +}; +#endif +# 109 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 109 +struct uchar1 { +# 111 +unsigned char x; +# 112 +}; +#endif +# 115 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 115 +struct __attribute((aligned(2))) char2 { +# 117 +signed char x, y; +# 118 +}; +#endif +# 120 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 120 +struct __attribute((aligned(2))) uchar2 { +# 122 +unsigned char x, y; +# 123 +}; +#endif +# 125 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 125 +struct char3 { +# 127 +signed char x, y, z; +# 128 +}; +#endif +# 130 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 130 +struct uchar3 { +# 132 +unsigned char x, y, z; +# 133 +}; +#endif +# 135 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 135 +struct __attribute((aligned(4))) char4 { +# 137 +signed char x, y, z, w; +# 138 +}; +#endif +# 140 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 140 +struct __attribute((aligned(4))) uchar4 { +# 142 +unsigned char x, y, z, w; +# 143 +}; +#endif +# 145 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 145 +struct short1 { +# 147 +short x; +# 148 +}; +#endif +# 150 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 150 +struct ushort1 { +# 152 +unsigned short x; +# 153 +}; +#endif +# 155 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 155 +struct __attribute((aligned(4))) short2 { +# 157 +short x, y; +# 158 +}; +#endif +# 160 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 160 +struct __attribute((aligned(4))) ushort2 { +# 162 +unsigned short x, y; +# 163 +}; +#endif +# 165 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 165 +struct short3 { +# 167 +short x, y, z; +# 168 +}; +#endif +# 170 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 170 +struct ushort3 { +# 172 +unsigned short x, y, z; +# 173 +}; +#endif +# 175 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 175 +struct __attribute((aligned(8))) short4 { short x; short y; short z; short w; }; +#endif +# 176 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 178 +struct int1 { +# 180 +int x; +# 181 +}; +#endif +# 183 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 183 +struct uint1 { +# 185 +unsigned x; +# 186 +}; +#endif +# 188 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 188 +struct __attribute((aligned(8))) int2 { int x; int y; }; +#endif +# 189 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 189 +struct __attribute((aligned(8))) uint2 { unsigned x; unsigned y; }; +#endif +# 191 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 191 +struct int3 { +# 193 +int x, y, z; +# 194 +}; +#endif +# 196 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 196 +struct uint3 { +# 198 +unsigned x, y, z; +# 199 +}; +#endif +# 201 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 201 +struct __attribute((aligned(16))) int4 { +# 203 +int x, y, z, w; +# 204 +}; +#endif +# 206 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 206 +struct __attribute((aligned(16))) uint4 { +# 208 +unsigned x, y, z, w; +# 209 +}; +#endif +# 211 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 211 +struct long1 { +# 213 +long x; +# 214 +}; +#endif +# 216 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 216 +struct ulong1 { +# 218 +unsigned long x; +# 219 +}; +#endif +# 226 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 226 +struct __attribute((aligned((2) * sizeof(long)))) long2 { +# 228 +long x, y; +# 229 +}; +#endif +# 231 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 231 +struct __attribute((aligned((2) * sizeof(unsigned long)))) ulong2 { +# 233 +unsigned long x, y; +# 234 +}; +#endif +# 238 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 238 +struct long3 { +# 240 +long x, y, z; +# 241 +}; +#endif +# 243 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 243 +struct ulong3 { +# 245 +unsigned long x, y, z; +# 246 +}; +#endif +# 248 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 248 +struct __attribute((aligned(16))) long4 { +# 250 +long x, y, z, w; +# 251 +}; +#endif +# 253 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 253 +struct __attribute((aligned(16))) ulong4 { +# 255 +unsigned long x, y, z, w; +# 256 +}; +#endif +# 258 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 258 +struct float1 { +# 260 +float x; +# 261 +}; +#endif +# 280 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 280 +struct __attribute((aligned(8))) float2 { float x; float y; }; +#endif +# 285 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 285 +struct float3 { +# 287 +float x, y, z; +# 288 +}; +#endif +# 290 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 290 +struct __attribute((aligned(16))) float4 { +# 292 +float x, y, z, w; +# 293 +}; +#endif +# 295 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 295 +struct longlong1 { +# 297 +long long x; +# 298 +}; +#endif +# 300 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 300 +struct ulonglong1 { +# 302 +unsigned long long x; +# 303 +}; +#endif +# 305 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 305 +struct __attribute((aligned(16))) longlong2 { +# 307 +long long x, y; +# 308 +}; +#endif +# 310 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 310 +struct __attribute((aligned(16))) ulonglong2 { +# 312 +unsigned long long x, y; +# 313 +}; +#endif +# 315 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 315 +struct longlong3 { +# 317 +long long x, y, z; +# 318 +}; +#endif +# 320 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 320 +struct ulonglong3 { +# 322 +unsigned long long x, y, z; +# 323 +}; +#endif +# 325 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 325 +struct __attribute((aligned(16))) longlong4 { +# 327 +long long x, y, z, w; +# 328 +}; +#endif +# 330 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 330 +struct __attribute((aligned(16))) ulonglong4 { +# 332 +unsigned long long x, y, z, w; +# 333 +}; +#endif +# 335 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 335 +struct double1 { +# 337 +double x; +# 338 +}; +#endif +# 340 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 340 +struct __attribute((aligned(16))) double2 { +# 342 +double x, y; +# 343 +}; +#endif +# 345 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 345 +struct double3 { +# 347 +double x, y, z; +# 348 +}; +#endif +# 350 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 350 +struct __attribute((aligned(16))) double4 { +# 352 +double x, y, z, w; +# 353 +}; +#endif +# 367 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef char1 +# 367 +char1; +#endif +# 368 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef uchar1 +# 368 +uchar1; +#endif +# 369 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef char2 +# 369 +char2; +#endif +# 370 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef uchar2 +# 370 +uchar2; +#endif +# 371 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef char3 +# 371 +char3; +#endif +# 372 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef uchar3 +# 372 +uchar3; +#endif +# 373 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef char4 +# 373 +char4; +#endif +# 374 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef uchar4 +# 374 +uchar4; +#endif +# 375 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef short1 +# 375 +short1; +#endif +# 376 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef ushort1 +# 376 +ushort1; +#endif +# 377 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef short2 +# 377 +short2; +#endif +# 378 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef ushort2 +# 378 +ushort2; +#endif +# 379 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef short3 +# 379 +short3; +#endif +# 380 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef ushort3 +# 380 +ushort3; +#endif +# 381 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef short4 +# 381 +short4; +#endif +# 382 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef ushort4 +# 382 +ushort4; +#endif +# 383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef int1 +# 383 +int1; +#endif +# 384 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef uint1 +# 384 +uint1; +#endif +# 385 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef int2 +# 385 +int2; +#endif +# 386 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef uint2 +# 386 +uint2; +#endif +# 387 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef int3 +# 387 +int3; +#endif +# 388 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef uint3 +# 388 +uint3; +#endif +# 389 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef int4 +# 389 +int4; +#endif +# 390 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef uint4 +# 390 +uint4; +#endif +# 391 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef long1 +# 391 +long1; +#endif +# 392 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef ulong1 +# 392 +ulong1; +#endif +# 393 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef long2 +# 393 +long2; +#endif +# 394 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef ulong2 +# 394 +ulong2; +#endif +# 395 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef long3 +# 395 +long3; +#endif +# 396 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef ulong3 +# 396 +ulong3; +#endif +# 397 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef long4 +# 397 +long4; +#endif +# 398 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef ulong4 +# 398 +ulong4; +#endif +# 399 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef float1 +# 399 +float1; +#endif +# 400 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef float2 +# 400 +float2; +#endif +# 401 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef float3 +# 401 +float3; +#endif +# 402 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef float4 +# 402 +float4; +#endif +# 403 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef longlong1 +# 403 +longlong1; +#endif +# 404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef ulonglong1 +# 404 +ulonglong1; +#endif +# 405 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef longlong2 +# 405 +longlong2; +#endif +# 406 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef ulonglong2 +# 406 +ulonglong2; +#endif +# 407 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef longlong3 +# 407 +longlong3; +#endif +# 408 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef ulonglong3 +# 408 +ulonglong3; +#endif +# 409 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef longlong4 +# 409 +longlong4; +#endif +# 410 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef ulonglong4 +# 410 +ulonglong4; +#endif +# 411 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef double1 +# 411 +double1; +#endif +# 412 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef double2 +# 412 +double2; +#endif +# 413 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef double3 +# 413 +double3; +#endif +# 414 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef double4 +# 414 +double4; +#endif +# 426 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +# 426 +struct dim3 { +# 428 +unsigned x, y, z; +# 440 +}; +#endif +# 442 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/vector_types.h" +#if 0 +typedef dim3 +# 442 +dim3; +#endif +# 23 "/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h" 3 +extern "C" { +# 24 +extern long __sysconf(int __name) noexcept(true); +# 25 +} +# 143 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 3 +typedef long ptrdiff_t; +# 209 "/usr/lib/gcc/x86_64-linux-gnu/11/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" +# 426 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 3 +typedef +# 415 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 3 +struct { +# 416 +long long __max_align_ll __attribute((__aligned__(__alignof__(long long)))); +# 417 +long double __max_align_ld __attribute((__aligned__(__alignof__(long double)))); +# 426 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 3 +} max_align_t; +# 433 +typedef __decltype((nullptr)) nullptr_t; +# 205 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorAddressOfConstant, +# 345 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorTextureFetchFailed, +# 354 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorTextureNotBound, +# 363 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorSynchronizationError, +# 368 +cudaErrorInvalidFilterSetting, +# 374 +cudaErrorInvalidNormSetting, +# 382 +cudaErrorMixedDeviceExecution, +# 390 +cudaErrorNotYetImplemented = 31, +# 399 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorMemoryValueTooLarge, +# 405 +cudaErrorStubLibrary = 34, +# 412 +cudaErrorInsufficientDriver, +# 419 +cudaErrorCallRequiresNewerDriver, +# 425 +cudaErrorInvalidSurface, +# 431 +cudaErrorDuplicateVariableName = 43, +# 437 +cudaErrorDuplicateTextureName, +# 443 +cudaErrorDuplicateSurfaceName, +# 453 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorDevicesUnavailable, +# 466 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorIncompatibleDriverContext = 49, +# 472 +cudaErrorMissingConfiguration = 52, +# 481 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorPriorLaunchFailure, +# 487 +cudaErrorLaunchMaxDepthExceeded = 65, +# 495 +cudaErrorLaunchFileScopedTex, +# 503 +cudaErrorLaunchFileScopedSurf, +# 519 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorSyncDepthExceeded, +# 531 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorLaunchPendingCountExceeded, +# 537 +cudaErrorInvalidDeviceFunction = 98, +# 543 +cudaErrorNoDevice = 100, +# 550 +cudaErrorInvalidDevice, +# 555 +cudaErrorDeviceNotLicensed, +# 564 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorSoftwareValidityNotEstablished, +# 569 +cudaErrorStartupFailure = 127, +# 574 +cudaErrorInvalidKernelImage = 200, +# 584 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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, +# 713 +cudaErrorInvalidSource = 300, +# 718 +cudaErrorFileNotFound, +# 723 +cudaErrorSharedObjectSymbolNotFound, +# 728 +cudaErrorSharedObjectInitFailed, +# 733 +cudaErrorOperatingSystem, +# 740 +cudaErrorInvalidResourceHandle = 400, +# 746 +cudaErrorIllegalState, +# 754 +cudaErrorLossyQuery, +# 761 +cudaErrorSymbolNotFound = 500, +# 769 +cudaErrorNotReady = 600, +# 777 +cudaErrorIllegalAddress = 700, +# 786 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorLaunchOutOfResources, +# 797 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorLaunchTimeout, +# 803 +cudaErrorLaunchIncompatibleTexturing, +# 810 +cudaErrorPeerAccessAlreadyEnabled, +# 817 +cudaErrorPeerAccessNotEnabled, +# 830 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorSetOnActiveProcess = 708, +# 837 +cudaErrorContextIsDestroyed, +# 844 +cudaErrorAssert, +# 851 +cudaErrorTooManyPeers, +# 857 +cudaErrorHostMemoryAlreadyRegistered, +# 863 +cudaErrorHostMemoryNotRegistered, +# 872 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorHardwareStackError, +# 880 +cudaErrorIllegalInstruction, +# 889 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorMisalignedAddress, +# 900 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorInvalidAddressSpace, +# 908 +cudaErrorInvalidPc, +# 919 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorLaunchFailure, +# 928 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorCooperativeLaunchTooLarge, +# 933 +cudaErrorNotPermitted = 800, +# 939 +cudaErrorNotSupported, +# 948 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorSystemNotReady, +# 955 +cudaErrorSystemDriverMismatch, +# 964 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorCompatNotSupportedOnDevice, +# 969 +cudaErrorMpsConnectionFailed, +# 974 +cudaErrorMpsRpcFailure, +# 980 +cudaErrorMpsServerNotReady, +# 985 +cudaErrorMpsMaxClientsReached, +# 990 +cudaErrorMpsMaxConnectionsReached, +# 995 +cudaErrorMpsClientTerminated, +# 1000 +cudaErrorCdpNotSupported, +# 1005 +cudaErrorCdpVersionMismatch, +# 1010 +cudaErrorStreamCaptureUnsupported = 900, +# 1016 +cudaErrorStreamCaptureInvalidated, +# 1022 +cudaErrorStreamCaptureMerge, +# 1027 +cudaErrorStreamCaptureUnmatched, +# 1033 +cudaErrorStreamCaptureUnjoined, +# 1040 +cudaErrorStreamCaptureIsolation, +# 1046 +cudaErrorStreamCaptureImplicit, +# 1052 +cudaErrorCapturedEvent, +# 1059 +cudaErrorStreamCaptureWrongThread, +# 1064 +cudaErrorTimeout, +# 1070 +cudaErrorGraphExecUpdateFailure, +# 1080 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaErrorExternalDevice, +# 1086 +cudaErrorInvalidClusterSize, +# 1091 +cudaErrorUnknown = 999, +# 1099 +cudaErrorApiFailureBase = 10000 +# 1100 +}; +#endif +# 1105 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1105 +enum cudaChannelFormatKind { +# 1107 +cudaChannelFormatKindSigned, +# 1108 +cudaChannelFormatKindUnsigned, +# 1109 +cudaChannelFormatKindFloat, +# 1110 +cudaChannelFormatKindNone, +# 1111 +cudaChannelFormatKindNV12, +# 1112 +cudaChannelFormatKindUnsignedNormalized8X1, +# 1113 +cudaChannelFormatKindUnsignedNormalized8X2, +# 1114 +cudaChannelFormatKindUnsignedNormalized8X4, +# 1115 +cudaChannelFormatKindUnsignedNormalized16X1, +# 1116 +cudaChannelFormatKindUnsignedNormalized16X2, +# 1117 +cudaChannelFormatKindUnsignedNormalized16X4, +# 1118 +cudaChannelFormatKindSignedNormalized8X1, +# 1119 +cudaChannelFormatKindSignedNormalized8X2, +# 1120 +cudaChannelFormatKindSignedNormalized8X4, +# 1121 +cudaChannelFormatKindSignedNormalized16X1, +# 1122 +cudaChannelFormatKindSignedNormalized16X2, +# 1123 +cudaChannelFormatKindSignedNormalized16X4, +# 1124 +cudaChannelFormatKindUnsignedBlockCompressed1, +# 1125 +cudaChannelFormatKindUnsignedBlockCompressed1SRGB, +# 1126 +cudaChannelFormatKindUnsignedBlockCompressed2, +# 1127 +cudaChannelFormatKindUnsignedBlockCompressed2SRGB, +# 1128 +cudaChannelFormatKindUnsignedBlockCompressed3, +# 1129 +cudaChannelFormatKindUnsignedBlockCompressed3SRGB, +# 1130 +cudaChannelFormatKindUnsignedBlockCompressed4, +# 1131 +cudaChannelFormatKindSignedBlockCompressed4, +# 1132 +cudaChannelFormatKindUnsignedBlockCompressed5, +# 1133 +cudaChannelFormatKindSignedBlockCompressed5, +# 1134 +cudaChannelFormatKindUnsignedBlockCompressed6H, +# 1135 +cudaChannelFormatKindSignedBlockCompressed6H, +# 1136 +cudaChannelFormatKindUnsignedBlockCompressed7, +# 1137 +cudaChannelFormatKindUnsignedBlockCompressed7SRGB +# 1138 +}; +#endif +# 1143 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1143 +struct cudaChannelFormatDesc { +# 1145 +int x; +# 1146 +int y; +# 1147 +int z; +# 1148 +int w; +# 1149 +cudaChannelFormatKind f; +# 1150 +}; +#endif +# 1155 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +typedef struct cudaArray *cudaArray_t; +# 1160 +typedef const cudaArray *cudaArray_const_t; +# 1162 +struct cudaArray; +# 1167 +typedef struct cudaMipmappedArray *cudaMipmappedArray_t; +# 1172 +typedef const cudaMipmappedArray *cudaMipmappedArray_const_t; +# 1174 +struct cudaMipmappedArray; +# 1184 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1184 +struct cudaArraySparseProperties { +# 1185 +struct { +# 1186 +unsigned width; +# 1187 +unsigned height; +# 1188 +unsigned depth; +# 1189 +} tileExtent; +# 1190 +unsigned miptailFirstLevel; +# 1191 +unsigned long long miptailSize; +# 1192 +unsigned flags; +# 1193 +unsigned reserved[4]; +# 1194 +}; +#endif +# 1199 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1199 +struct cudaArrayMemoryRequirements { +# 1200 +size_t size; +# 1201 +size_t alignment; +# 1202 +unsigned reserved[4]; +# 1203 +}; +#endif +# 1208 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1208 +enum cudaMemoryType { +# 1210 +cudaMemoryTypeUnregistered, +# 1211 +cudaMemoryTypeHost, +# 1212 +cudaMemoryTypeDevice, +# 1213 +cudaMemoryTypeManaged +# 1214 +}; +#endif +# 1219 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1219 +enum cudaMemcpyKind { +# 1221 +cudaMemcpyHostToHost, +# 1222 +cudaMemcpyHostToDevice, +# 1223 +cudaMemcpyDeviceToHost, +# 1224 +cudaMemcpyDeviceToDevice, +# 1225 +cudaMemcpyDefault +# 1226 +}; +#endif +# 1233 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1233 +struct cudaPitchedPtr { +# 1235 +void *ptr; +# 1236 +size_t pitch; +# 1237 +size_t xsize; +# 1238 +size_t ysize; +# 1239 +}; +#endif +# 1246 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1246 +struct cudaExtent { +# 1248 +size_t width; +# 1249 +size_t height; +# 1250 +size_t depth; +# 1251 +}; +#endif +# 1258 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1258 +struct cudaPos { +# 1260 +size_t x; +# 1261 +size_t y; +# 1262 +size_t z; +# 1263 +}; +#endif +# 1268 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1268 +struct cudaMemcpy3DParms { +# 1270 +cudaArray_t srcArray; +# 1271 +cudaPos srcPos; +# 1272 +cudaPitchedPtr srcPtr; +# 1274 +cudaArray_t dstArray; +# 1275 +cudaPos dstPos; +# 1276 +cudaPitchedPtr dstPtr; +# 1278 +cudaExtent extent; +# 1279 +cudaMemcpyKind kind; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 1280 +}; +#endif +# 1285 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1285 +struct cudaMemcpyNodeParams { +# 1286 +int flags; +# 1287 +int reserved[3]; +# 1288 +cudaMemcpy3DParms copyParams; +# 1289 +}; +#endif +# 1294 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1294 +struct cudaMemcpy3DPeerParms { +# 1296 +cudaArray_t srcArray; +# 1297 +cudaPos srcPos; +# 1298 +cudaPitchedPtr srcPtr; +# 1299 +int srcDevice; +# 1301 +cudaArray_t dstArray; +# 1302 +cudaPos dstPos; +# 1303 +cudaPitchedPtr dstPtr; +# 1304 +int dstDevice; +# 1306 +cudaExtent extent; +# 1307 +}; +#endif +# 1312 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1312 +struct cudaMemsetParams { +# 1313 +void *dst; +# 1314 +size_t pitch; +# 1315 +unsigned value; +# 1316 +unsigned elementSize; +# 1317 +size_t width; +# 1318 +size_t height; +# 1319 +}; +#endif +# 1324 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1324 +struct cudaMemsetParamsV2 { +# 1325 +void *dst; +# 1326 +size_t pitch; +# 1327 +unsigned value; +# 1328 +unsigned elementSize; +# 1329 +size_t width; +# 1330 +size_t height; +# 1331 +}; +#endif +# 1336 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1336 +enum cudaAccessProperty { +# 1337 +cudaAccessPropertyNormal, +# 1338 +cudaAccessPropertyStreaming, +# 1339 +cudaAccessPropertyPersisting +# 1340 +}; +#endif +# 1353 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1353 +struct cudaAccessPolicyWindow { +# 1354 +void *base_ptr; +# 1355 +size_t num_bytes; +# 1356 +float hitRatio; +# 1357 +cudaAccessProperty hitProp; +# 1358 +cudaAccessProperty missProp; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 1359 +}; +#endif +# 1371 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +typedef void (*cudaHostFn_t)(void * userData); +# 1376 +#if 0 +# 1376 +struct cudaHostNodeParams { +# 1377 +cudaHostFn_t fn; +# 1378 +void *userData; +# 1379 +}; +#endif +# 1384 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1384 +struct cudaHostNodeParamsV2 { +# 1385 +cudaHostFn_t fn; +# 1386 +void *userData; +# 1387 +}; +#endif +# 1392 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1392 +enum cudaStreamCaptureStatus { +# 1393 +cudaStreamCaptureStatusNone, +# 1394 +cudaStreamCaptureStatusActive, +# 1395 +cudaStreamCaptureStatusInvalidated +# 1397 +}; +#endif +# 1403 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1403 +enum cudaStreamCaptureMode { +# 1404 +cudaStreamCaptureModeGlobal, +# 1405 +cudaStreamCaptureModeThreadLocal, +# 1406 +cudaStreamCaptureModeRelaxed +# 1407 +}; +#endif +# 1409 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1409 +enum cudaSynchronizationPolicy { +# 1410 +cudaSyncPolicyAuto = 1, +# 1411 +cudaSyncPolicySpin, +# 1412 +cudaSyncPolicyYield, +# 1413 +cudaSyncPolicyBlockingSync +# 1414 +}; +#endif +# 1419 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1419 +enum cudaClusterSchedulingPolicy { +# 1420 +cudaClusterSchedulingPolicyDefault, +# 1421 +cudaClusterSchedulingPolicySpread, +# 1422 +cudaClusterSchedulingPolicyLoadBalancing +# 1423 +}; +#endif +# 1428 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1428 +enum cudaStreamUpdateCaptureDependenciesFlags { +# 1429 +cudaStreamAddCaptureDependencies, +# 1430 +cudaStreamSetCaptureDependencies +# 1431 +}; +#endif +# 1436 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1436 +enum cudaUserObjectFlags { +# 1437 +cudaUserObjectNoDestructorSync = 1 +# 1438 +}; +#endif +# 1443 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1443 +enum cudaUserObjectRetainFlags { +# 1444 +cudaGraphUserObjectMove = 1 +# 1445 +}; +#endif +# 1450 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +struct cudaGraphicsResource; +# 1455 +#if 0 +# 1455 +enum cudaGraphicsRegisterFlags { +# 1457 +cudaGraphicsRegisterFlagsNone, +# 1458 +cudaGraphicsRegisterFlagsReadOnly, +# 1459 +cudaGraphicsRegisterFlagsWriteDiscard, +# 1460 +cudaGraphicsRegisterFlagsSurfaceLoadStore = 4, +# 1461 +cudaGraphicsRegisterFlagsTextureGather = 8 +# 1462 +}; +#endif +# 1467 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1467 +enum cudaGraphicsMapFlags { +# 1469 +cudaGraphicsMapFlagsNone, +# 1470 +cudaGraphicsMapFlagsReadOnly, +# 1471 +cudaGraphicsMapFlagsWriteDiscard +# 1472 +}; +#endif +# 1477 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1477 +enum cudaGraphicsCubeFace { +# 1479 +cudaGraphicsCubeFacePositiveX, +# 1480 +cudaGraphicsCubeFaceNegativeX, +# 1481 +cudaGraphicsCubeFacePositiveY, +# 1482 +cudaGraphicsCubeFaceNegativeY, +# 1483 +cudaGraphicsCubeFacePositiveZ, +# 1484 +cudaGraphicsCubeFaceNegativeZ +# 1485 +}; +#endif +# 1490 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1490 +enum cudaResourceType { +# 1492 +cudaResourceTypeArray, +# 1493 +cudaResourceTypeMipmappedArray, +# 1494 +cudaResourceTypeLinear, +# 1495 +cudaResourceTypePitch2D +# 1496 +}; +#endif +# 1501 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1501 +enum cudaResourceViewFormat { +# 1503 +cudaResViewFormatNone, +# 1504 +cudaResViewFormatUnsignedChar1, +# 1505 +cudaResViewFormatUnsignedChar2, +# 1506 +cudaResViewFormatUnsignedChar4, +# 1507 +cudaResViewFormatSignedChar1, +# 1508 +cudaResViewFormatSignedChar2, +# 1509 +cudaResViewFormatSignedChar4, +# 1510 +cudaResViewFormatUnsignedShort1, +# 1511 +cudaResViewFormatUnsignedShort2, +# 1512 +cudaResViewFormatUnsignedShort4, +# 1513 +cudaResViewFormatSignedShort1, +# 1514 +cudaResViewFormatSignedShort2, +# 1515 +cudaResViewFormatSignedShort4, +# 1516 +cudaResViewFormatUnsignedInt1, +# 1517 +cudaResViewFormatUnsignedInt2, +# 1518 +cudaResViewFormatUnsignedInt4, +# 1519 +cudaResViewFormatSignedInt1, +# 1520 +cudaResViewFormatSignedInt2, +# 1521 +cudaResViewFormatSignedInt4, +# 1522 +cudaResViewFormatHalf1, +# 1523 +cudaResViewFormatHalf2, +# 1524 +cudaResViewFormatHalf4, +# 1525 +cudaResViewFormatFloat1, +# 1526 +cudaResViewFormatFloat2, +# 1527 +cudaResViewFormatFloat4, +# 1528 +cudaResViewFormatUnsignedBlockCompressed1, +# 1529 +cudaResViewFormatUnsignedBlockCompressed2, +# 1530 +cudaResViewFormatUnsignedBlockCompressed3, +# 1531 +cudaResViewFormatUnsignedBlockCompressed4, +# 1532 +cudaResViewFormatSignedBlockCompressed4, +# 1533 +cudaResViewFormatUnsignedBlockCompressed5, +# 1534 +cudaResViewFormatSignedBlockCompressed5, +# 1535 +cudaResViewFormatUnsignedBlockCompressed6H, +# 1536 +cudaResViewFormatSignedBlockCompressed6H, +# 1537 +cudaResViewFormatUnsignedBlockCompressed7 +# 1538 +}; +#endif +# 1543 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1543 +struct cudaResourceDesc { +# 1544 +cudaResourceType resType; +# 1546 +union { +# 1547 +struct { +# 1548 +cudaArray_t array; +# 1549 +} array; +# 1550 +struct { +# 1551 +cudaMipmappedArray_t mipmap; +# 1552 +} mipmap; +# 1553 +struct { +# 1554 +void *devPtr; +# 1555 +cudaChannelFormatDesc desc; +# 1556 +size_t sizeInBytes; +# 1557 +} linear; +# 1558 +struct { +# 1559 +void *devPtr; +# 1560 +cudaChannelFormatDesc desc; +# 1561 +size_t width; +# 1562 +size_t height; +# 1563 +size_t pitchInBytes; +# 1564 +} pitch2D; +# 1565 +} res; +# 1566 +}; +#endif +# 1571 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1571 +struct cudaResourceViewDesc { +# 1573 +cudaResourceViewFormat format; +# 1574 +size_t width; +# 1575 +size_t height; +# 1576 +size_t depth; +# 1577 +unsigned firstMipmapLevel; +# 1578 +unsigned lastMipmapLevel; +# 1579 +unsigned firstLayer; +# 1580 +unsigned lastLayer; +# 1581 +}; +#endif +# 1586 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1586 +struct cudaPointerAttributes { +# 1592 +cudaMemoryType type; +# 1603 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +int device; +# 1609 +void *devicePointer; +# 1618 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +void *hostPointer; +# 1619 +}; +#endif +# 1624 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1624 +struct cudaFuncAttributes { +# 1631 +size_t sharedSizeBytes; +# 1637 +size_t constSizeBytes; +# 1642 +size_t localSizeBytes; +# 1649 +int maxThreadsPerBlock; +# 1654 +int numRegs; +# 1661 +int ptxVersion; +# 1668 +int binaryVersion; +# 1674 +int cacheModeCA; +# 1681 +int maxDynamicSharedSizeBytes; +# 1690 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +int preferredShmemCarveout; +# 1696 +int clusterDimMustBeSet; +# 1707 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +int requiredClusterWidth; +# 1708 +int requiredClusterHeight; +# 1709 +int requiredClusterDepth; +# 1715 +int clusterSchedulingPolicyPreference; +# 1737 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +int nonPortableClusterSizeAllowed; +# 1742 +int reserved[16]; +# 1743 +}; +#endif +# 1748 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1748 +enum cudaFuncAttribute { +# 1750 +cudaFuncAttributeMaxDynamicSharedMemorySize = 8, +# 1751 +cudaFuncAttributePreferredSharedMemoryCarveout, +# 1752 +cudaFuncAttributeClusterDimMustBeSet, +# 1753 +cudaFuncAttributeRequiredClusterWidth, +# 1754 +cudaFuncAttributeRequiredClusterHeight, +# 1755 +cudaFuncAttributeRequiredClusterDepth, +# 1756 +cudaFuncAttributeNonPortableClusterSizeAllowed, +# 1757 +cudaFuncAttributeClusterSchedulingPolicyPreference, +# 1758 +cudaFuncAttributeMax +# 1759 +}; +#endif +# 1764 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1764 +enum cudaFuncCache { +# 1766 +cudaFuncCachePreferNone, +# 1767 +cudaFuncCachePreferShared, +# 1768 +cudaFuncCachePreferL1, +# 1769 +cudaFuncCachePreferEqual +# 1770 +}; +#endif +# 1776 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1776 +enum cudaSharedMemConfig { +# 1778 +cudaSharedMemBankSizeDefault, +# 1779 +cudaSharedMemBankSizeFourByte, +# 1780 +cudaSharedMemBankSizeEightByte +# 1781 +}; +#endif +# 1786 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1786 +enum cudaSharedCarveout { +# 1787 +cudaSharedmemCarveoutDefault = (-1), +# 1788 +cudaSharedmemCarveoutMaxShared = 100, +# 1789 +cudaSharedmemCarveoutMaxL1 = 0 +# 1790 +}; +#endif +# 1795 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1795 +enum cudaComputeMode { +# 1797 +cudaComputeModeDefault, +# 1798 +cudaComputeModeExclusive, +# 1799 +cudaComputeModeProhibited, +# 1800 +cudaComputeModeExclusiveProcess +# 1801 +}; +#endif +# 1806 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1806 +enum cudaLimit { +# 1808 +cudaLimitStackSize, +# 1809 +cudaLimitPrintfFifoSize, +# 1810 +cudaLimitMallocHeapSize, +# 1811 +cudaLimitDevRuntimeSyncDepth, +# 1812 +cudaLimitDevRuntimePendingLaunchCount, +# 1813 +cudaLimitMaxL2FetchGranularity, +# 1814 +cudaLimitPersistingL2CacheSize +# 1815 +}; +#endif +# 1820 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1820 +enum cudaMemoryAdvise { +# 1822 +cudaMemAdviseSetReadMostly = 1, +# 1823 +cudaMemAdviseUnsetReadMostly, +# 1824 +cudaMemAdviseSetPreferredLocation, +# 1825 +cudaMemAdviseUnsetPreferredLocation, +# 1826 +cudaMemAdviseSetAccessedBy, +# 1827 +cudaMemAdviseUnsetAccessedBy +# 1828 +}; +#endif +# 1833 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1833 +enum cudaMemRangeAttribute { +# 1835 +cudaMemRangeAttributeReadMostly = 1, +# 1836 +cudaMemRangeAttributePreferredLocation, +# 1837 +cudaMemRangeAttributeAccessedBy, +# 1838 +cudaMemRangeAttributeLastPrefetchLocation, +# 1839 +cudaMemRangeAttributePreferredLocationType, +# 1840 +cudaMemRangeAttributePreferredLocationId, +# 1841 +cudaMemRangeAttributeLastPrefetchLocationType, +# 1842 +cudaMemRangeAttributeLastPrefetchLocationId +# 1843 +}; +#endif +# 1848 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1848 +enum cudaFlushGPUDirectRDMAWritesOptions { +# 1849 +cudaFlushGPUDirectRDMAWritesOptionHost = (1 << 0), +# 1850 +cudaFlushGPUDirectRDMAWritesOptionMemOps +# 1851 +}; +#endif +# 1856 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1856 +enum cudaGPUDirectRDMAWritesOrdering { +# 1857 +cudaGPUDirectRDMAWritesOrderingNone, +# 1858 +cudaGPUDirectRDMAWritesOrderingOwner = 100, +# 1859 +cudaGPUDirectRDMAWritesOrderingAllDevices = 200 +# 1860 +}; +#endif +# 1865 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1865 +enum cudaFlushGPUDirectRDMAWritesScope { +# 1866 +cudaFlushGPUDirectRDMAWritesToOwner = 100, +# 1867 +cudaFlushGPUDirectRDMAWritesToAllDevices = 200 +# 1868 +}; +#endif +# 1873 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1873 +enum cudaFlushGPUDirectRDMAWritesTarget { +# 1874 +cudaFlushGPUDirectRDMAWritesTargetCurrentDevice +# 1875 +}; +#endif +# 1881 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 1881 +enum cudaDeviceAttr { +# 1883 +cudaDevAttrMaxThreadsPerBlock = 1, +# 1884 +cudaDevAttrMaxBlockDimX, +# 1885 +cudaDevAttrMaxBlockDimY, +# 1886 +cudaDevAttrMaxBlockDimZ, +# 1887 +cudaDevAttrMaxGridDimX, +# 1888 +cudaDevAttrMaxGridDimY, +# 1889 +cudaDevAttrMaxGridDimZ, +# 1890 +cudaDevAttrMaxSharedMemoryPerBlock, +# 1891 +cudaDevAttrTotalConstantMemory, +# 1892 +cudaDevAttrWarpSize, +# 1893 +cudaDevAttrMaxPitch, +# 1894 +cudaDevAttrMaxRegistersPerBlock, +# 1895 +cudaDevAttrClockRate, +# 1896 +cudaDevAttrTextureAlignment, +# 1897 +cudaDevAttrGpuOverlap, +# 1898 +cudaDevAttrMultiProcessorCount, +# 1899 +cudaDevAttrKernelExecTimeout, +# 1900 +cudaDevAttrIntegrated, +# 1901 +cudaDevAttrCanMapHostMemory, +# 1902 +cudaDevAttrComputeMode, +# 1903 +cudaDevAttrMaxTexture1DWidth, +# 1904 +cudaDevAttrMaxTexture2DWidth, +# 1905 +cudaDevAttrMaxTexture2DHeight, +# 1906 +cudaDevAttrMaxTexture3DWidth, +# 1907 +cudaDevAttrMaxTexture3DHeight, +# 1908 +cudaDevAttrMaxTexture3DDepth, +# 1909 +cudaDevAttrMaxTexture2DLayeredWidth, +# 1910 +cudaDevAttrMaxTexture2DLayeredHeight, +# 1911 +cudaDevAttrMaxTexture2DLayeredLayers, +# 1912 +cudaDevAttrSurfaceAlignment, +# 1913 +cudaDevAttrConcurrentKernels, +# 1914 +cudaDevAttrEccEnabled, +# 1915 +cudaDevAttrPciBusId, +# 1916 +cudaDevAttrPciDeviceId, +# 1917 +cudaDevAttrTccDriver, +# 1918 +cudaDevAttrMemoryClockRate, +# 1919 +cudaDevAttrGlobalMemoryBusWidth, +# 1920 +cudaDevAttrL2CacheSize, +# 1921 +cudaDevAttrMaxThreadsPerMultiProcessor, +# 1922 +cudaDevAttrAsyncEngineCount, +# 1923 +cudaDevAttrUnifiedAddressing, +# 1924 +cudaDevAttrMaxTexture1DLayeredWidth, +# 1925 +cudaDevAttrMaxTexture1DLayeredLayers, +# 1926 +cudaDevAttrMaxTexture2DGatherWidth = 45, +# 1927 +cudaDevAttrMaxTexture2DGatherHeight, +# 1928 +cudaDevAttrMaxTexture3DWidthAlt, +# 1929 +cudaDevAttrMaxTexture3DHeightAlt, +# 1930 +cudaDevAttrMaxTexture3DDepthAlt, +# 1931 +cudaDevAttrPciDomainId, +# 1932 +cudaDevAttrTexturePitchAlignment, +# 1933 +cudaDevAttrMaxTextureCubemapWidth, +# 1934 +cudaDevAttrMaxTextureCubemapLayeredWidth, +# 1935 +cudaDevAttrMaxTextureCubemapLayeredLayers, +# 1936 +cudaDevAttrMaxSurface1DWidth, +# 1937 +cudaDevAttrMaxSurface2DWidth, +# 1938 +cudaDevAttrMaxSurface2DHeight, +# 1939 +cudaDevAttrMaxSurface3DWidth, +# 1940 +cudaDevAttrMaxSurface3DHeight, +# 1941 +cudaDevAttrMaxSurface3DDepth, +# 1942 +cudaDevAttrMaxSurface1DLayeredWidth, +# 1943 +cudaDevAttrMaxSurface1DLayeredLayers, +# 1944 +cudaDevAttrMaxSurface2DLayeredWidth, +# 1945 +cudaDevAttrMaxSurface2DLayeredHeight, +# 1946 +cudaDevAttrMaxSurface2DLayeredLayers, +# 1947 +cudaDevAttrMaxSurfaceCubemapWidth, +# 1948 +cudaDevAttrMaxSurfaceCubemapLayeredWidth, +# 1949 +cudaDevAttrMaxSurfaceCubemapLayeredLayers, +# 1950 +cudaDevAttrMaxTexture1DLinearWidth, +# 1951 +cudaDevAttrMaxTexture2DLinearWidth, +# 1952 +cudaDevAttrMaxTexture2DLinearHeight, +# 1953 +cudaDevAttrMaxTexture2DLinearPitch, +# 1954 +cudaDevAttrMaxTexture2DMipmappedWidth, +# 1955 +cudaDevAttrMaxTexture2DMipmappedHeight, +# 1956 +cudaDevAttrComputeCapabilityMajor, +# 1957 +cudaDevAttrComputeCapabilityMinor, +# 1958 +cudaDevAttrMaxTexture1DMipmappedWidth, +# 1959 +cudaDevAttrStreamPrioritiesSupported, +# 1960 +cudaDevAttrGlobalL1CacheSupported, +# 1961 +cudaDevAttrLocalL1CacheSupported, +# 1962 +cudaDevAttrMaxSharedMemoryPerMultiprocessor, +# 1963 +cudaDevAttrMaxRegistersPerMultiprocessor, +# 1964 +cudaDevAttrManagedMemory, +# 1965 +cudaDevAttrIsMultiGpuBoard, +# 1966 +cudaDevAttrMultiGpuBoardGroupID, +# 1967 +cudaDevAttrHostNativeAtomicSupported, +# 1968 +cudaDevAttrSingleToDoublePrecisionPerfRatio, +# 1969 +cudaDevAttrPageableMemoryAccess, +# 1970 +cudaDevAttrConcurrentManagedAccess, +# 1971 +cudaDevAttrComputePreemptionSupported, +# 1972 +cudaDevAttrCanUseHostPointerForRegisteredMem, +# 1973 +cudaDevAttrReserved92, +# 1974 +cudaDevAttrReserved93, +# 1975 +cudaDevAttrReserved94, +# 1976 +cudaDevAttrCooperativeLaunch, +# 1977 +cudaDevAttrCooperativeMultiDeviceLaunch, +# 1978 +cudaDevAttrMaxSharedMemoryPerBlockOptin, +# 1979 +cudaDevAttrCanFlushRemoteWrites, +# 1980 +cudaDevAttrHostRegisterSupported, +# 1981 +cudaDevAttrPageableMemoryAccessUsesHostPageTables, +# 1982 +cudaDevAttrDirectManagedMemAccessFromHost, +# 1983 +cudaDevAttrMaxBlocksPerMultiprocessor = 106, +# 1984 +cudaDevAttrMaxPersistingL2CacheSize = 108, +# 1985 +cudaDevAttrMaxAccessPolicyWindowSize, +# 1986 +cudaDevAttrReservedSharedMemoryPerBlock = 111, +# 1987 +cudaDevAttrSparseCudaArraySupported, +# 1988 +cudaDevAttrHostRegisterReadOnlySupported, +# 1989 +cudaDevAttrTimelineSemaphoreInteropSupported, +# 1990 +cudaDevAttrMaxTimelineSemaphoreInteropSupported = 114, +# 1991 +cudaDevAttrMemoryPoolsSupported, +# 1992 +cudaDevAttrGPUDirectRDMASupported, +# 1993 +cudaDevAttrGPUDirectRDMAFlushWritesOptions, +# 1994 +cudaDevAttrGPUDirectRDMAWritesOrdering, +# 1995 +cudaDevAttrMemoryPoolSupportedHandleTypes, +# 1996 +cudaDevAttrClusterLaunch, +# 1997 +cudaDevAttrDeferredMappingCudaArraySupported, +# 1998 +cudaDevAttrReserved122, +# 1999 +cudaDevAttrReserved123, +# 2000 +cudaDevAttrReserved124, +# 2001 +cudaDevAttrIpcEventSupport, +# 2002 +cudaDevAttrMemSyncDomainCount, +# 2003 +cudaDevAttrReserved127, +# 2004 +cudaDevAttrReserved128, +# 2005 +cudaDevAttrReserved129, +# 2006 +cudaDevAttrNumaConfig, +# 2007 +cudaDevAttrNumaId, +# 2008 +cudaDevAttrReserved132, +# 2009 +cudaDevAttrMpsEnabled, +# 2010 +cudaDevAttrHostNumaId, +# 2011 +cudaDevAttrMax +# 2012 +}; +#endif +# 2017 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2017 +enum cudaMemPoolAttr { +# 2027 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaMemPoolReuseFollowEventDependencies = 1, +# 2034 +cudaMemPoolReuseAllowOpportunistic, +# 2042 +cudaMemPoolReuseAllowInternalDependencies, +# 2053 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaMemPoolAttrReleaseThreshold, +# 2059 +cudaMemPoolAttrReservedMemCurrent, +# 2066 +cudaMemPoolAttrReservedMemHigh, +# 2072 +cudaMemPoolAttrUsedMemCurrent, +# 2079 +cudaMemPoolAttrUsedMemHigh +# 2080 +}; +#endif +# 2085 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2085 +enum cudaMemLocationType { +# 2086 +cudaMemLocationTypeInvalid, +# 2087 +cudaMemLocationTypeDevice, +# 2088 +cudaMemLocationTypeHost, +# 2089 +cudaMemLocationTypeHostNuma, +# 2090 +cudaMemLocationTypeHostNumaCurrent +# 2091 +}; +#endif +# 2099 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2099 +struct cudaMemLocation { +# 2100 +cudaMemLocationType type; +# 2101 +int id; +# 2102 +}; +#endif +# 2107 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2107 +enum cudaMemAccessFlags { +# 2108 +cudaMemAccessFlagsProtNone, +# 2109 +cudaMemAccessFlagsProtRead, +# 2110 +cudaMemAccessFlagsProtReadWrite = 3 +# 2111 +}; +#endif +# 2116 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2116 +struct cudaMemAccessDesc { +# 2117 +cudaMemLocation location; +# 2118 +cudaMemAccessFlags flags; +# 2119 +}; +#endif +# 2124 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2124 +enum cudaMemAllocationType { +# 2125 +cudaMemAllocationTypeInvalid, +# 2129 +cudaMemAllocationTypePinned, +# 2130 +cudaMemAllocationTypeMax = 2147483647 +# 2131 +}; +#endif +# 2136 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2136 +enum cudaMemAllocationHandleType { +# 2137 +cudaMemHandleTypeNone, +# 2138 +cudaMemHandleTypePosixFileDescriptor, +# 2139 +cudaMemHandleTypeWin32, +# 2140 +cudaMemHandleTypeWin32Kmt = 4, +# 2141 +cudaMemHandleTypeFabric = 8 +# 2142 +}; +#endif +# 2147 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2147 +struct cudaMemPoolProps { +# 2148 +cudaMemAllocationType allocType; +# 2149 +cudaMemAllocationHandleType handleTypes; +# 2150 +cudaMemLocation location; +# 2157 +void *win32SecurityAttributes; +# 2158 +size_t maxSize; +# 2159 +unsigned char reserved[56]; +# 2160 +}; +#endif +# 2165 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2165 +struct cudaMemPoolPtrExportData { +# 2166 +unsigned char reserved[64]; +# 2167 +}; +#endif +# 2172 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2172 +struct cudaMemAllocNodeParams { +# 2177 +cudaMemPoolProps poolProps; +# 2178 +const cudaMemAccessDesc *accessDescs; +# 2179 +size_t accessDescCount; +# 2180 +size_t bytesize; +# 2181 +void *dptr; +# 2182 +}; +#endif +# 2187 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2187 +struct cudaMemAllocNodeParamsV2 { +# 2192 +cudaMemPoolProps poolProps; +# 2193 +const cudaMemAccessDesc *accessDescs; +# 2194 +size_t accessDescCount; +# 2195 +size_t bytesize; +# 2196 +void *dptr; +# 2197 +}; +#endif +# 2202 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2202 +struct cudaMemFreeNodeParams { +# 2203 +void *dptr; +# 2204 +}; +#endif +# 2209 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2209 +enum cudaGraphMemAttributeType { +# 2214 +cudaGraphMemAttrUsedMemCurrent, +# 2221 +cudaGraphMemAttrUsedMemHigh, +# 2228 +cudaGraphMemAttrReservedMemCurrent, +# 2235 +cudaGraphMemAttrReservedMemHigh +# 2236 +}; +#endif +# 2242 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2242 +enum cudaDeviceP2PAttr { +# 2243 +cudaDevP2PAttrPerformanceRank = 1, +# 2244 +cudaDevP2PAttrAccessSupported, +# 2245 +cudaDevP2PAttrNativeAtomicSupported, +# 2246 +cudaDevP2PAttrCudaArrayAccessSupported +# 2247 +}; +#endif +# 2254 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2254 +struct CUuuid_st { +# 2255 +char bytes[16]; +# 2256 +}; +#endif +# 2257 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef CUuuid_st +# 2257 +CUuuid; +#endif +# 2259 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef CUuuid_st +# 2259 +cudaUUID_t; +#endif +# 2264 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2264 +struct cudaDeviceProp { +# 2266 +char name[256]; +# 2267 +cudaUUID_t uuid; +# 2268 +char luid[8]; +# 2269 +unsigned luidDeviceNodeMask; +# 2270 +size_t totalGlobalMem; +# 2271 +size_t sharedMemPerBlock; +# 2272 +int regsPerBlock; +# 2273 +int warpSize; +# 2274 +size_t memPitch; +# 2275 +int maxThreadsPerBlock; +# 2276 +int maxThreadsDim[3]; +# 2277 +int maxGridSize[3]; +# 2278 +int clockRate; +# 2279 +size_t totalConstMem; +# 2280 +int major; +# 2281 +int minor; +# 2282 +size_t textureAlignment; +# 2283 +size_t texturePitchAlignment; +# 2284 +int deviceOverlap; +# 2285 +int multiProcessorCount; +# 2286 +int kernelExecTimeoutEnabled; +# 2287 +int integrated; +# 2288 +int canMapHostMemory; +# 2289 +int computeMode; +# 2290 +int maxTexture1D; +# 2291 +int maxTexture1DMipmap; +# 2292 +int maxTexture1DLinear; +# 2293 +int maxTexture2D[2]; +# 2294 +int maxTexture2DMipmap[2]; +# 2295 +int maxTexture2DLinear[3]; +# 2296 +int maxTexture2DGather[2]; +# 2297 +int maxTexture3D[3]; +# 2298 +int maxTexture3DAlt[3]; +# 2299 +int maxTextureCubemap; +# 2300 +int maxTexture1DLayered[2]; +# 2301 +int maxTexture2DLayered[3]; +# 2302 +int maxTextureCubemapLayered[2]; +# 2303 +int maxSurface1D; +# 2304 +int maxSurface2D[2]; +# 2305 +int maxSurface3D[3]; +# 2306 +int maxSurface1DLayered[2]; +# 2307 +int maxSurface2DLayered[3]; +# 2308 +int maxSurfaceCubemap; +# 2309 +int maxSurfaceCubemapLayered[2]; +# 2310 +size_t surfaceAlignment; +# 2311 +int concurrentKernels; +# 2312 +int ECCEnabled; +# 2313 +int pciBusID; +# 2314 +int pciDeviceID; +# 2315 +int pciDomainID; +# 2316 +int tccDriver; +# 2317 +int asyncEngineCount; +# 2318 +int unifiedAddressing; +# 2319 +int memoryClockRate; +# 2320 +int memoryBusWidth; +# 2321 +int l2CacheSize; +# 2322 +int persistingL2CacheMaxSize; +# 2323 +int maxThreadsPerMultiProcessor; +# 2324 +int streamPrioritiesSupported; +# 2325 +int globalL1CacheSupported; +# 2326 +int localL1CacheSupported; +# 2327 +size_t sharedMemPerMultiprocessor; +# 2328 +int regsPerMultiprocessor; +# 2329 +int managedMemory; +# 2330 +int isMultiGpuBoard; +# 2331 +int multiGpuBoardGroupID; +# 2332 +int hostNativeAtomicSupported; +# 2333 +int singleToDoublePrecisionPerfRatio; +# 2334 +int pageableMemoryAccess; +# 2335 +int concurrentManagedAccess; +# 2336 +int computePreemptionSupported; +# 2337 +int canUseHostPointerForRegisteredMem; +# 2338 +int cooperativeLaunch; +# 2339 +int cooperativeMultiDeviceLaunch; +# 2340 +size_t sharedMemPerBlockOptin; +# 2341 +int pageableMemoryAccessUsesHostPageTables; +# 2342 +int directManagedMemAccessFromHost; +# 2343 +int maxBlocksPerMultiProcessor; +# 2344 +int accessPolicyMaxWindowSize; +# 2345 +size_t reservedSharedMemPerBlock; +# 2346 +int hostRegisterSupported; +# 2347 +int sparseCudaArraySupported; +# 2348 +int hostRegisterReadOnlySupported; +# 2349 +int timelineSemaphoreInteropSupported; +# 2350 +int memoryPoolsSupported; +# 2351 +int gpuDirectRDMASupported; +# 2352 +unsigned gpuDirectRDMAFlushWritesOptions; +# 2353 +int gpuDirectRDMAWritesOrdering; +# 2354 +unsigned memoryPoolSupportedHandleTypes; +# 2355 +int deferredMappingCudaArraySupported; +# 2356 +int ipcEventSupported; +# 2357 +int clusterLaunch; +# 2358 +int unifiedFunctionPointers; +# 2359 +int reserved2[2]; +# 2360 +int reserved1[1]; +# 2361 +int reserved[60]; +# 2362 +}; +#endif +# 2375 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 2372 +struct cudaIpcEventHandle_st { +# 2374 +char reserved[64]; +# 2375 +} cudaIpcEventHandle_t; +#endif +# 2383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 2380 +struct cudaIpcMemHandle_st { +# 2382 +char reserved[64]; +# 2383 +} cudaIpcMemHandle_t; +#endif +# 2391 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 2388 +struct cudaMemFabricHandle_st { +# 2390 +char reserved[64]; +# 2391 +} cudaMemFabricHandle_t; +#endif +# 2396 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2396 +enum cudaExternalMemoryHandleType { +# 2400 +cudaExternalMemoryHandleTypeOpaqueFd = 1, +# 2404 +cudaExternalMemoryHandleTypeOpaqueWin32, +# 2408 +cudaExternalMemoryHandleTypeOpaqueWin32Kmt, +# 2412 +cudaExternalMemoryHandleTypeD3D12Heap, +# 2416 +cudaExternalMemoryHandleTypeD3D12Resource, +# 2420 +cudaExternalMemoryHandleTypeD3D11Resource, +# 2424 +cudaExternalMemoryHandleTypeD3D11ResourceKmt, +# 2428 +cudaExternalMemoryHandleTypeNvSciBuf +# 2429 +}; +#endif +# 2471 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2471 +struct cudaExternalMemoryHandleDesc { +# 2475 +cudaExternalMemoryHandleType type; +# 2476 +union { +# 2482 +int fd; +# 2498 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +struct { +# 2502 +void *handle; +# 2507 +const void *name; +# 2508 +} win32; +# 2513 +const void *nvSciBufObject; +# 2514 +} handle; +# 2518 +unsigned long long size; +# 2522 +unsigned flags; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 2523 +}; +#endif +# 2528 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2528 +struct cudaExternalMemoryBufferDesc { +# 2532 +unsigned long long offset; +# 2536 +unsigned long long size; +# 2540 +unsigned flags; +# 2541 +}; +#endif +# 2546 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2546 +struct cudaExternalMemoryMipmappedArrayDesc { +# 2551 +unsigned long long offset; +# 2555 +cudaChannelFormatDesc formatDesc; +# 2559 +cudaExtent extent; +# 2564 +unsigned flags; +# 2568 +unsigned numLevels; +# 2569 +}; +#endif +# 2574 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2574 +enum cudaExternalSemaphoreHandleType { +# 2578 +cudaExternalSemaphoreHandleTypeOpaqueFd = 1, +# 2582 +cudaExternalSemaphoreHandleTypeOpaqueWin32, +# 2586 +cudaExternalSemaphoreHandleTypeOpaqueWin32Kmt, +# 2590 +cudaExternalSemaphoreHandleTypeD3D12Fence, +# 2594 +cudaExternalSemaphoreHandleTypeD3D11Fence, +# 2598 +cudaExternalSemaphoreHandleTypeNvSciSync, +# 2602 +cudaExternalSemaphoreHandleTypeKeyedMutex, +# 2606 +cudaExternalSemaphoreHandleTypeKeyedMutexKmt, +# 2610 +cudaExternalSemaphoreHandleTypeTimelineSemaphoreFd, +# 2614 +cudaExternalSemaphoreHandleTypeTimelineSemaphoreWin32 +# 2615 +}; +#endif +# 2620 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2620 +struct cudaExternalSemaphoreHandleDesc { +# 2624 +cudaExternalSemaphoreHandleType type; +# 2625 +union { +# 2632 +int fd; +# 2648 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +struct { +# 2652 +void *handle; +# 2657 +const void *name; +# 2658 +} win32; +# 2662 +const void *nvSciSyncObj; +# 2663 +} handle; +# 2667 +unsigned flags; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 2668 +}; +#endif +# 2673 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2673 +struct cudaExternalSemaphoreSignalParams_v1 { +# 2674 +struct { +# 2678 +struct { +# 2682 +unsigned long long value; +# 2683 +} fence; +# 2684 +union { +# 2689 +void *fence; +# 2690 +unsigned long long reserved; +# 2691 +} nvSciSync; +# 2695 +struct { +# 2699 +unsigned long long key; +# 2700 +} keyedMutex; +# 2701 +} params; +# 2712 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +unsigned flags; +# 2713 +}; +#endif +# 2718 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2718 +struct cudaExternalSemaphoreWaitParams_v1 { +# 2719 +struct { +# 2723 +struct { +# 2727 +unsigned long long value; +# 2728 +} fence; +# 2729 +union { +# 2734 +void *fence; +# 2735 +unsigned long long reserved; +# 2736 +} nvSciSync; +# 2740 +struct { +# 2744 +unsigned long long key; +# 2748 +unsigned timeoutMs; +# 2749 +} keyedMutex; +# 2750 +} params; +# 2761 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +unsigned flags; +# 2762 +}; +#endif +# 2767 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2767 +struct cudaExternalSemaphoreSignalParams { +# 2768 +struct { +# 2772 +struct { +# 2776 +unsigned long long value; +# 2777 +} fence; +# 2778 +union { +# 2783 +void *fence; +# 2784 +unsigned long long reserved; +# 2785 +} nvSciSync; +# 2789 +struct { +# 2793 +unsigned long long key; +# 2794 +} keyedMutex; +# 2795 +unsigned reserved[12]; +# 2796 +} params; +# 2807 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +unsigned flags; +# 2808 +unsigned reserved[16]; +# 2809 +}; +#endif +# 2814 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2814 +struct cudaExternalSemaphoreWaitParams { +# 2815 +struct { +# 2819 +struct { +# 2823 +unsigned long long value; +# 2824 +} fence; +# 2825 +union { +# 2830 +void *fence; +# 2831 +unsigned long long reserved; +# 2832 +} nvSciSync; +# 2836 +struct { +# 2840 +unsigned long long key; +# 2844 +unsigned timeoutMs; +# 2845 +} keyedMutex; +# 2846 +unsigned reserved[10]; +# 2847 +} params; +# 2858 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +unsigned flags; +# 2859 +unsigned reserved[16]; +# 2860 +}; +#endif +# 2871 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef cudaError +# 2871 +cudaError_t; +#endif +# 2876 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef struct CUstream_st * +# 2876 +cudaStream_t; +#endif +# 2881 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef struct CUevent_st * +# 2881 +cudaEvent_t; +#endif +# 2886 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef cudaGraphicsResource * +# 2886 +cudaGraphicsResource_t; +#endif +# 2891 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef struct CUexternalMemory_st * +# 2891 +cudaExternalMemory_t; +#endif +# 2896 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef struct CUexternalSemaphore_st * +# 2896 +cudaExternalSemaphore_t; +#endif +# 2901 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef struct CUgraph_st * +# 2901 +cudaGraph_t; +#endif +# 2906 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef struct CUgraphNode_st * +# 2906 +cudaGraphNode_t; +#endif +# 2911 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef struct CUuserObject_st * +# 2911 +cudaUserObject_t; +#endif +# 2916 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef unsigned long long +# 2916 +cudaGraphConditionalHandle; +#endif +# 2921 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef struct CUfunc_st * +# 2921 +cudaFunction_t; +#endif +# 2926 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef struct CUkern_st * +# 2926 +cudaKernel_t; +#endif +# 2931 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef struct CUmemPoolHandle_st * +# 2931 +cudaMemPool_t; +#endif +# 2936 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2936 +enum cudaCGScope { +# 2937 +cudaCGScopeInvalid, +# 2938 +cudaCGScopeGrid, +# 2939 +cudaCGScopeMultiGrid +# 2940 +}; +#endif +# 2945 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2945 +struct cudaLaunchParams { +# 2947 +void *func; +# 2948 +dim3 gridDim; +# 2949 +dim3 blockDim; +# 2950 +void **args; +# 2951 +size_t sharedMem; +# 2952 +cudaStream_t stream; +# 2953 +}; +#endif +# 2958 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2958 +struct cudaKernelNodeParams { +# 2959 +void *func; +# 2960 +dim3 gridDim; +# 2961 +dim3 blockDim; +# 2962 +unsigned sharedMemBytes; +# 2963 +void **kernelParams; +# 2964 +void **extra; +# 2965 +}; +#endif +# 2970 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2970 +struct cudaKernelNodeParamsV2 { +# 2971 +void *func; +# 2973 +dim3 gridDim; +# 2974 +dim3 blockDim; +# 2980 +unsigned sharedMemBytes; +# 2981 +void **kernelParams; +# 2982 +void **extra; +# 2983 +}; +#endif +# 2988 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2988 +struct cudaExternalSemaphoreSignalNodeParams { +# 2989 +cudaExternalSemaphore_t *extSemArray; +# 2990 +const cudaExternalSemaphoreSignalParams *paramsArray; +# 2991 +unsigned numExtSems; +# 2992 +}; +#endif +# 2997 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 2997 +struct cudaExternalSemaphoreSignalNodeParamsV2 { +# 2998 +cudaExternalSemaphore_t *extSemArray; +# 2999 +const cudaExternalSemaphoreSignalParams *paramsArray; +# 3000 +unsigned numExtSems; +# 3001 +}; +#endif +# 3006 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3006 +struct cudaExternalSemaphoreWaitNodeParams { +# 3007 +cudaExternalSemaphore_t *extSemArray; +# 3008 +const cudaExternalSemaphoreWaitParams *paramsArray; +# 3009 +unsigned numExtSems; +# 3010 +}; +#endif +# 3015 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3015 +struct cudaExternalSemaphoreWaitNodeParamsV2 { +# 3016 +cudaExternalSemaphore_t *extSemArray; +# 3017 +const cudaExternalSemaphoreWaitParams *paramsArray; +# 3018 +unsigned numExtSems; +# 3019 +}; +#endif +# 3021 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3021 +enum cudaGraphConditionalHandleFlags { +# 3022 +cudaGraphCondAssignDefault = 1 +# 3023 +}; +#endif +# 3028 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3028 +enum cudaGraphConditionalNodeType { +# 3029 +cudaGraphCondTypeIf, +# 3030 +cudaGraphCondTypeWhile +# 3031 +}; +#endif +# 3036 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3036 +struct cudaConditionalNodeParams { +# 3037 +cudaGraphConditionalHandle handle; +# 3040 +cudaGraphConditionalNodeType type; +# 3041 +unsigned size; +# 3042 +cudaGraph_t *phGraph_out; +# 3052 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +}; +#endif +# 3057 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3057 +enum cudaGraphNodeType { +# 3058 +cudaGraphNodeTypeKernel, +# 3059 +cudaGraphNodeTypeMemcpy, +# 3060 +cudaGraphNodeTypeMemset, +# 3061 +cudaGraphNodeTypeHost, +# 3062 +cudaGraphNodeTypeGraph, +# 3063 +cudaGraphNodeTypeEmpty, +# 3064 +cudaGraphNodeTypeWaitEvent, +# 3065 +cudaGraphNodeTypeEventRecord, +# 3066 +cudaGraphNodeTypeExtSemaphoreSignal, +# 3067 +cudaGraphNodeTypeExtSemaphoreWait, +# 3068 +cudaGraphNodeTypeMemAlloc, +# 3069 +cudaGraphNodeTypeMemFree, +# 3070 +cudaGraphNodeTypeConditional = 13, +# 3087 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaGraphNodeTypeCount +# 3088 +}; +#endif +# 3093 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3093 +struct cudaChildGraphNodeParams { +# 3094 +cudaGraph_t graph; +# 3096 +}; +#endif +# 3101 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3101 +struct cudaEventRecordNodeParams { +# 3102 +cudaEvent_t event; +# 3103 +}; +#endif +# 3108 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3108 +struct cudaEventWaitNodeParams { +# 3109 +cudaEvent_t event; +# 3110 +}; +#endif +# 3115 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3115 +struct cudaGraphNodeParams { +# 3116 +cudaGraphNodeType type; +# 3117 +int reserved0[3]; +# 3119 +union { +# 3120 +long long reserved1[29]; +# 3121 +cudaKernelNodeParamsV2 kernel; +# 3122 +cudaMemcpyNodeParams memcpy; +# 3123 +cudaMemsetParamsV2 memset; +# 3124 +cudaHostNodeParamsV2 host; +# 3125 +cudaChildGraphNodeParams graph; +# 3126 +cudaEventWaitNodeParams eventWait; +# 3127 +cudaEventRecordNodeParams eventRecord; +# 3128 +cudaExternalSemaphoreSignalNodeParamsV2 extSemSignal; +# 3129 +cudaExternalSemaphoreWaitNodeParamsV2 extSemWait; +# 3130 +cudaMemAllocNodeParamsV2 alloc; +# 3131 +cudaMemFreeNodeParams free; +# 3132 +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;) +# 3133 +}; +# 3135 +long long reserved2; +# 3136 +}; +#endif +# 3148 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 3141 +enum cudaGraphDependencyType_enum { +# 3142 +cudaGraphDependencyTypeDefault, +# 3143 +cudaGraphDependencyTypeProgrammatic +# 3148 +} cudaGraphDependencyType; +#endif +# 3178 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 3155 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +struct cudaGraphEdgeData_st { +# 3156 +unsigned char from_port; +# 3166 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +unsigned char to_port; +# 3173 +unsigned char type; +# 3176 +unsigned char reserved[5]; +# 3178 +} cudaGraphEdgeData; +#endif +# 3199 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +typedef struct CUgraphExec_st *cudaGraphExec_t; +# 3204 +#if 0 +# 3204 +enum cudaGraphExecUpdateResult { +# 3205 +cudaGraphExecUpdateSuccess, +# 3206 +cudaGraphExecUpdateError, +# 3207 +cudaGraphExecUpdateErrorTopologyChanged, +# 3208 +cudaGraphExecUpdateErrorNodeTypeChanged, +# 3209 +cudaGraphExecUpdateErrorFunctionChanged, +# 3210 +cudaGraphExecUpdateErrorParametersChanged, +# 3211 +cudaGraphExecUpdateErrorNotSupported, +# 3212 +cudaGraphExecUpdateErrorUnsupportedFunctionChange, +# 3213 +cudaGraphExecUpdateErrorAttributesChanged +# 3214 +}; +#endif +# 3225 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 3219 +enum cudaGraphInstantiateResult { +# 3220 +cudaGraphInstantiateSuccess, +# 3221 +cudaGraphInstantiateError, +# 3222 +cudaGraphInstantiateInvalidStructure, +# 3223 +cudaGraphInstantiateNodeOperationNotSupported, +# 3224 +cudaGraphInstantiateMultipleDevicesNotSupported +# 3225 +} cudaGraphInstantiateResult; +#endif +# 3236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 3230 +struct cudaGraphInstantiateParams_st { +# 3232 +unsigned long long flags; +# 3233 +cudaStream_t uploadStream; +# 3234 +cudaGraphNode_t errNode_out; +# 3235 +cudaGraphInstantiateResult result_out; +# 3236 +} cudaGraphInstantiateParams; +#endif +# 3258 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 3241 +struct cudaGraphExecUpdateResultInfo_st { +# 3245 +cudaGraphExecUpdateResult result; +# 3252 +cudaGraphNode_t errorNode; +# 3257 +cudaGraphNode_t errorFromNode; +# 3258 +} cudaGraphExecUpdateResultInfo; +#endif +# 3263 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +typedef struct CUgraphDeviceUpdatableNode_st *cudaGraphDeviceNode_t; +# 3268 +#if 0 +# 3268 +enum cudaGraphKernelNodeField { +# 3270 +cudaGraphKernelNodeFieldInvalid, +# 3271 +cudaGraphKernelNodeFieldGridDim, +# 3272 +cudaGraphKernelNodeFieldParam, +# 3273 +cudaGraphKernelNodeFieldEnabled +# 3274 +}; +#endif +# 3279 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3279 +struct cudaGraphKernelNodeUpdate { +# 3280 +cudaGraphDeviceNode_t node; +# 3281 +cudaGraphKernelNodeField field; +# 3282 +union { +# 3284 +dim3 gridDim; +# 3289 +struct { +# 3290 +const void *pValue; +# 3291 +size_t offset; +# 3292 +size_t size; +# 3293 +} param; +# 3294 +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;) +# 3295 +} updateData; +# 3296 +}; +#endif +# 3302 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3302 +enum cudaGetDriverEntryPointFlags { +# 3303 +cudaEnableDefault, +# 3304 +cudaEnableLegacyStream, +# 3305 +cudaEnablePerThreadDefaultStream +# 3306 +}; +#endif +# 3311 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3311 +enum cudaDriverEntryPointQueryResult { +# 3312 +cudaDriverEntryPointSuccess, +# 3313 +cudaDriverEntryPointSymbolNotFound, +# 3314 +cudaDriverEntryPointVersionNotSufficent +# 3315 +}; +#endif +# 3320 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3320 +enum cudaGraphDebugDotFlags { +# 3321 +cudaGraphDebugDotFlagsVerbose = (1 << 0), +# 3322 +cudaGraphDebugDotFlagsKernelNodeParams = (1 << 2), +# 3323 +cudaGraphDebugDotFlagsMemcpyNodeParams = (1 << 3), +# 3324 +cudaGraphDebugDotFlagsMemsetNodeParams = (1 << 4), +# 3325 +cudaGraphDebugDotFlagsHostNodeParams = (1 << 5), +# 3326 +cudaGraphDebugDotFlagsEventNodeParams = (1 << 6), +# 3327 +cudaGraphDebugDotFlagsExtSemasSignalNodeParams = (1 << 7), +# 3328 +cudaGraphDebugDotFlagsExtSemasWaitNodeParams = (1 << 8), +# 3329 +cudaGraphDebugDotFlagsKernelNodeAttributes = (1 << 9), +# 3330 +cudaGraphDebugDotFlagsHandles = (1 << 10), +# 3331 +cudaGraphDebugDotFlagsConditionalNodeParams = (1 << 15) +# 3332 +}; +#endif +# 3337 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3337 +enum cudaGraphInstantiateFlags { +# 3338 +cudaGraphInstantiateFlagAutoFreeOnLaunch = 1, +# 3339 +cudaGraphInstantiateFlagUpload, +# 3342 +cudaGraphInstantiateFlagDeviceLaunch = 4, +# 3345 +cudaGraphInstantiateFlagUseNodePriority = 8 +# 3347 +}; +#endif +# 3368 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 3365 +enum cudaLaunchMemSyncDomain { +# 3366 +cudaLaunchMemSyncDomainDefault, +# 3367 +cudaLaunchMemSyncDomainRemote +# 3368 +} cudaLaunchMemSyncDomain; +#endif +# 3384 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 3381 +struct cudaLaunchMemSyncDomainMap_st { +# 3382 +unsigned char default_; +# 3383 +unsigned char remote; +# 3384 +} cudaLaunchMemSyncDomainMap; +#endif +# 3493 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 3389 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +enum cudaLaunchAttributeID { +# 3390 +cudaLaunchAttributeIgnore, +# 3391 +cudaLaunchAttributeAccessPolicyWindow, +# 3393 +cudaLaunchAttributeCooperative, +# 3395 +cudaLaunchAttributeSynchronizationPolicy, +# 3396 +cudaLaunchAttributeClusterDimension, +# 3398 +cudaLaunchAttributeClusterSchedulingPolicyPreference, +# 3400 +cudaLaunchAttributeProgrammaticStreamSerialization, +# 3411 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaLaunchAttributeProgrammaticEvent, +# 3437 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaLaunchAttributePriority, +# 3439 +cudaLaunchAttributeMemSyncDomainMap, +# 3441 +cudaLaunchAttributeMemSyncDomain, +# 3443 +cudaLaunchAttributeLaunchCompletionEvent = 12, +# 3465 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +cudaLaunchAttributeDeviceUpdatableKernelNode +# 3493 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +} cudaLaunchAttributeID; +#endif +# 3549 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 3498 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +union cudaLaunchAttributeValue { +# 3499 +char pad[64]; +# 3500 +cudaAccessPolicyWindow accessPolicyWindow; +# 3501 +int cooperative; +# 3503 +cudaSynchronizationPolicy syncPolicy; +# 3517 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +struct { +# 3518 +unsigned x; +# 3519 +unsigned y; +# 3520 +unsigned z; +# 3521 +} clusterDim; +# 3522 +cudaClusterSchedulingPolicy clusterSchedulingPolicyPreference; +# 3525 +int programmaticStreamSerializationAllowed; +# 3527 +struct { +# 3528 +cudaEvent_t event; +# 3529 +int flags; +# 3531 +int triggerAtBlockStart; +# 3532 +} programmaticEvent; +# 3533 +int priority; +# 3534 +cudaLaunchMemSyncDomainMap memSyncDomainMap; +# 3537 +cudaLaunchMemSyncDomain memSyncDomain; +# 3539 +struct { +# 3540 +cudaEvent_t event; +# 3541 +int flags; +# 3543 +} launchCompletionEvent; +# 3545 +struct { +# 3546 +int deviceUpdatable; +# 3547 +cudaGraphDeviceNode_t devNode; +# 3548 +} deviceUpdatableKernelNode; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 3549 +} cudaLaunchAttributeValue; +#endif +# 3558 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 3554 +struct cudaLaunchAttribute_st { +# 3555 +cudaLaunchAttributeID id; +# 3556 +char pad[(8) - sizeof(cudaLaunchAttributeID)]; +# 3557 +cudaLaunchAttributeValue val; +# 3558 +} cudaLaunchAttribute; +#endif +# 3570 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 3563 +struct cudaLaunchConfig_st { +# 3564 +dim3 gridDim; +# 3565 +dim3 blockDim; +# 3566 +size_t dynamicSmemBytes; +# 3567 +cudaStream_t stream; +# 3568 +cudaLaunchAttribute *attrs; +# 3569 +unsigned numAttrs; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 3570 +} cudaLaunchConfig_t; +#endif +# 3593 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +# 3593 +enum cudaDeviceNumaConfig { +# 3594 +cudaDeviceNumaConfigNone, +# 3595 +cudaDeviceNumaConfigNumaNode +# 3596 +}; +#endif +# 3601 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +typedef struct cudaAsyncCallbackEntry *cudaAsyncCallbackHandle_t; +# 3603 +struct cudaAsyncCallbackEntry; +# 3610 +#if 0 +typedef +# 3608 +enum cudaAsyncNotificationType_enum { +# 3609 +cudaAsyncNotificationTypeOverBudget = 1 +# 3610 +} cudaAsyncNotificationType; +#endif +# 3623 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +#if 0 +typedef +# 3615 +struct cudaAsyncNotificationInfo { +# 3617 +cudaAsyncNotificationType type; +# 3618 +union { +# 3619 +struct { +# 3620 +unsigned long long bytesOverBudget; +# 3621 +} overBudget; +# 3622 +} info; +# 3623 +} cudaAsyncNotificationInfo_t; +#endif +# 3625 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/driver_types.h" +typedef void (*cudaAsyncCallback)(cudaAsyncNotificationInfo_t *, void *, cudaAsyncCallbackHandle_t); +# 86 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/surface_types.h" +#if 0 +# 86 +enum cudaSurfaceBoundaryMode { +# 88 +cudaBoundaryModeZero, +# 89 +cudaBoundaryModeClamp, +# 90 +cudaBoundaryModeTrap +# 91 +}; +#endif +# 96 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/surface_types.h" +#if 0 +# 96 +enum cudaSurfaceFormatMode { +# 98 +cudaFormatModeForced, +# 99 +cudaFormatModeAuto +# 100 +}; +#endif +# 105 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/surface_types.h" +#if 0 +typedef unsigned long long +# 105 +cudaSurfaceObject_t; +#endif +# 86 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/texture_types.h" +#if 0 +# 86 +enum cudaTextureAddressMode { +# 88 +cudaAddressModeWrap, +# 89 +cudaAddressModeClamp, +# 90 +cudaAddressModeMirror, +# 91 +cudaAddressModeBorder +# 92 +}; +#endif +# 97 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/texture_types.h" +#if 0 +# 97 +enum cudaTextureFilterMode { +# 99 +cudaFilterModePoint, +# 100 +cudaFilterModeLinear +# 101 +}; +#endif +# 106 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/texture_types.h" +#if 0 +# 106 +enum cudaTextureReadMode { +# 108 +cudaReadModeElementType, +# 109 +cudaReadModeNormalizedFloat +# 110 +}; +#endif +# 115 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/texture_types.h" +#if 0 +typedef unsigned long long +# 174 +cudaTextureObject_t; +#endif +# 89 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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_E5M2 +# 89 +} cudaDataType; +# 97 +typedef +# 92 +enum libraryPropertyType_t { +# 94 +MAJOR_VERSION, +# 95 +MINOR_VERSION, +# 96 +PATCH_LEVEL +# 97 +} libraryPropertyType; +# 278 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 3 +namespace std { +# 280 +typedef unsigned long size_t; +# 281 +typedef long ptrdiff_t; +# 284 +typedef __decltype((nullptr)) nullptr_t; +# 286 +} +# 300 "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" 3 +namespace std { +# 302 +inline namespace __cxx11 __attribute((__abi_tag__("cxx11"))) { } +# 303 +} +# 304 +namespace __gnu_cxx { +# 306 +inline namespace __cxx11 __attribute((__abi_tag__("cxx11"))) { } +# 307 +} +# 34 "/usr/include/stdlib.h" 3 +extern "C" { +# 74 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 +typedef float __complex__ __cfloat128 __attribute((__mode__(__TC__))); +# 86 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 +typedef __float128 _Float128; +# 214 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 +typedef float _Float32; +# 251 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 +typedef double _Float64; +# 268 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 +typedef double _Float32x; +# 285 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 +typedef long double _Float64x; +# 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) +# 179 + __attribute((__nonnull__(1))); +# 181 +extern unsigned long strtoul(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) +# 183 + __attribute((__nonnull__(1))); +# 188 +__extension__ extern long long strtoq(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) +# 190 + __attribute((__nonnull__(1))); +# 193 +__extension__ extern unsigned long long strtouq(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) +# 195 + __attribute((__nonnull__(1))); +# 201 +__extension__ extern long long strtoll(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) +# 203 + __attribute((__nonnull__(1))); +# 206 +__extension__ extern unsigned long long strtoull(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) noexcept(true) +# 208 + __attribute((__nonnull__(1))); +# 213 +extern int strfromd(char * __dest, size_t __size, const char * __format, double __f) noexcept(true) +# 215 + __attribute((__nonnull__(3))); +# 217 +extern int strfromf(char * __dest, size_t __size, const char * __format, float __f) noexcept(true) +# 219 + __attribute((__nonnull__(3))); +# 221 +extern int strfroml(char * __dest, size_t __size, const char * __format, long double __f) noexcept(true) +# 223 + __attribute((__nonnull__(3))); +# 233 "/usr/include/stdlib.h" 3 +extern int strfromf32(char * __dest, size_t __size, const char * __format, _Float32 __f) noexcept(true) +# 235 + __attribute((__nonnull__(3))); +# 239 +extern int strfromf64(char * __dest, size_t __size, const char * __format, _Float64 __f) noexcept(true) +# 241 + __attribute((__nonnull__(3))); +# 245 +extern int strfromf128(char * __dest, size_t __size, const char * __format, _Float128 __f) noexcept(true) +# 247 + __attribute((__nonnull__(3))); +# 251 +extern int strfromf32x(char * __dest, size_t __size, const char * __format, _Float32x __f) noexcept(true) +# 253 + __attribute((__nonnull__(3))); +# 257 +extern int strfromf64x(char * __dest, size_t __size, const char * __format, _Float64x __f) noexcept(true) +# 259 + __attribute((__nonnull__(3))); +# 275 "/usr/include/stdlib.h" 3 +extern long strtol_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) +# 277 + __attribute((__nonnull__(1, 4))); +# 279 +extern unsigned long strtoul_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) +# 282 + __attribute((__nonnull__(1, 4))); +# 285 +__extension__ extern long long strtoll_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) +# 288 + __attribute((__nonnull__(1, 4))); +# 291 +__extension__ extern unsigned long long strtoull_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) noexcept(true) +# 294 + __attribute((__nonnull__(1, 4))); +# 296 +extern double strtod_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 298 + __attribute((__nonnull__(1, 3))); +# 300 +extern float strtof_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 302 + __attribute((__nonnull__(1, 3))); +# 304 +extern long double strtold_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 307 + __attribute((__nonnull__(1, 3))); +# 317 "/usr/include/stdlib.h" 3 +extern _Float32 strtof32_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 320 + __attribute((__nonnull__(1, 3))); +# 324 +extern _Float64 strtof64_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 327 + __attribute((__nonnull__(1, 3))); +# 331 +extern _Float128 strtof128_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 334 + __attribute((__nonnull__(1, 3))); +# 338 +extern _Float32x strtof32x_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 341 + __attribute((__nonnull__(1, 3))); +# 345 +extern _Float64x strtof64x_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) noexcept(true) +# 348 + __attribute((__nonnull__(1, 3))); +# 386 "/usr/include/stdlib.h" 3 +extern char *l64a(long __n) noexcept(true); +# 389 +extern long a64l(const char * __s) noexcept(true) +# 390 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 27 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/types/clock_t.h" 3 +typedef __clock_t clock_t; +# 7 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" 3 +typedef __clockid_t clockid_t; +# 10 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" 3 +typedef __time_t time_t; +# 7 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" 3 +typedef __timer_t timer_t; +# 134 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 +typedef __useconds_t useconds_t; +# 138 +typedef __suseconds_t suseconds_t; +# 148 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 +typedef unsigned long ulong; +# 149 +typedef unsigned short ushort; +# 150 +typedef unsigned uint; +# 24 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/byteswap.h" 3 +__extension__ static inline __uint64_t __bswap_64(__uint64_t __bsx) +# 71 +{ +# 73 +return __builtin_bswap64(__bsx); +# 77 +} +# 33 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/types/__sigset_t.h" 3 +typedef +# 6 +struct { +# 7 +unsigned long __val[(1024) / ((8) * sizeof(unsigned long))]; +# 8 +} __sigset_t; +# 7 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 3 +typedef __sigset_t sigset_t; +# 8 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" 3 +struct timeval { +# 14 +__time_t tv_sec; +# 15 +__suseconds_t tv_usec; +# 17 +}; +# 11 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 3 +struct timespec { +# 16 +__time_t tv_sec; +# 21 +__syscall_slong_t tv_nsec; +# 31 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 3 +}; +# 49 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 +typedef long __fd_mask; +# 70 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/select.h" 3 +extern "C" { +# 102 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/select.h" 3 +} +# 185 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/types.h" 3 +typedef __blkcnt64_t blkcnt64_t; +# 220 +typedef __fsblkcnt64_t fsblkcnt64_t; +# 221 +typedef __fsfilcnt64_t fsfilcnt64_t; +# 33 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/struct_mutex.h" 3 +}; +# 23 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/struct_rwlock.h" 3 +}; +# 94 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 +struct __pthread_cond_s { +# 96 +__atomic_wide_counter __wseq; +# 97 +__atomic_wide_counter __g1_start; +# 98 +unsigned __g_refs[2]; +# 99 +unsigned __g_size[2]; +# 100 +unsigned __g1_orig_size; +# 101 +unsigned __wrefs; +# 102 +unsigned __g_signals[2]; +# 103 +}; +# 105 +typedef unsigned __tss_t; +# 106 +typedef unsigned long __thrd_t; +# 111 +typedef +# 109 +struct { +# 110 +int __data; +# 111 +} __once_flag; +# 27 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/sys/types.h" 3 +} +# 402 "/usr/include/stdlib.h" 3 +extern long random() noexcept(true); +# 405 +extern void srandom(unsigned __seed) noexcept(true); +# 411 +extern char *initstate(unsigned __seed, char * __statebuf, size_t __statelen) noexcept(true) +# 412 + __attribute((__nonnull__(2))); +# 416 +extern char *setstate(char * __statebuf) noexcept(true) __attribute((__nonnull__(1))); +# 424 +struct random_data { +# 426 +int32_t *fptr; +# 427 +int32_t *rptr; +# 428 +int32_t *state; +# 429 +int rand_type; +# 430 +int rand_deg; +# 431 +int rand_sep; +# 432 +int32_t *end_ptr; +# 433 +}; +# 435 +extern int random_r(random_data *__restrict__ __buf, int32_t *__restrict__ __result) noexcept(true) +# 436 + __attribute((__nonnull__(1, 2))); +# 438 +extern int srandom_r(unsigned __seed, random_data * __buf) noexcept(true) +# 439 + __attribute((__nonnull__(2))); +# 441 +extern int initstate_r(unsigned __seed, char *__restrict__ __statebuf, size_t __statelen, random_data *__restrict__ __buf) noexcept(true) +# 444 + __attribute((__nonnull__(2, 4))); +# 446 +extern int setstate_r(char *__restrict__ __statebuf, random_data *__restrict__ __buf) noexcept(true) +# 448 + __attribute((__nonnull__(1, 2))); +# 454 +extern int rand() noexcept(true); +# 456 +extern void srand(unsigned __seed) noexcept(true); +# 460 +extern int rand_r(unsigned * __seed) noexcept(true); +# 468 +extern double drand48() noexcept(true); +# 469 +extern double erand48(unsigned short __xsubi[3]) noexcept(true) __attribute((__nonnull__(1))); +# 472 +extern long lrand48() noexcept(true); +# 473 +extern long nrand48(unsigned short __xsubi[3]) noexcept(true) +# 474 + __attribute((__nonnull__(1))); +# 477 +extern long mrand48() noexcept(true); +# 478 +extern long jrand48(unsigned short __xsubi[3]) noexcept(true) +# 479 + __attribute((__nonnull__(1))); +# 482 +extern void srand48(long __seedval) noexcept(true); +# 483 +extern unsigned short *seed48(unsigned short __seed16v[3]) noexcept(true) +# 484 + __attribute((__nonnull__(1))); +# 485 +extern void lcong48(unsigned short __param[7]) noexcept(true) __attribute((__nonnull__(1))); +# 491 +struct drand48_data { +# 493 +unsigned short __x[3]; +# 494 +unsigned short __old_x[3]; +# 495 +unsigned short __c; +# 496 +unsigned short __init; +# 497 +__extension__ unsigned long long __a; +# 499 +}; +# 502 +extern int drand48_r(drand48_data *__restrict__ __buffer, double *__restrict__ __result) noexcept(true) +# 503 + __attribute((__nonnull__(1, 2))); +# 504 +extern int erand48_r(unsigned short __xsubi[3], drand48_data *__restrict__ __buffer, double *__restrict__ __result) noexcept(true) +# 506 + __attribute((__nonnull__(1, 2))); +# 509 +extern int lrand48_r(drand48_data *__restrict__ __buffer, long *__restrict__ __result) noexcept(true) +# 511 + __attribute((__nonnull__(1, 2))); +# 512 +extern int nrand48_r(unsigned short __xsubi[3], drand48_data *__restrict__ __buffer, long *__restrict__ __result) noexcept(true) +# 515 + __attribute((__nonnull__(1, 2))); +# 518 +extern int mrand48_r(drand48_data *__restrict__ __buffer, long *__restrict__ __result) noexcept(true) +# 520 + __attribute((__nonnull__(1, 2))); +# 521 +extern int jrand48_r(unsigned short __xsubi[3], drand48_data *__restrict__ __buffer, long *__restrict__ __result) noexcept(true) +# 524 + __attribute((__nonnull__(1, 2))); +# 527 +extern int srand48_r(long __seedval, drand48_data * __buffer) noexcept(true) +# 528 + __attribute((__nonnull__(2))); +# 530 +extern int seed48_r(unsigned short __seed16v[3], drand48_data * __buffer) noexcept(true) +# 531 + __attribute((__nonnull__(1, 2))); +# 533 +extern int lcong48_r(unsigned short __param[7], drand48_data * __buffer) noexcept(true) +# 535 + __attribute((__nonnull__(1, 2))); +# 540 +extern void *malloc(size_t __size) noexcept(true) __attribute((__malloc__)) +# 541 + __attribute((__alloc_size__(1))); +# 543 +extern void *calloc(size_t __nmemb, size_t __size) noexcept(true) +# 544 + __attribute((__malloc__)) __attribute((__alloc_size__(1, 2))); +# 551 +extern void *realloc(void * __ptr, size_t __size) noexcept(true) +# 552 + __attribute((__warn_unused_result__)) __attribute((__alloc_size__(2))); +# 555 +extern void free(void * __ptr) noexcept(true); +# 563 +extern void *reallocarray(void * __ptr, size_t __nmemb, size_t __size) noexcept(true) +# 564 + __attribute((__warn_unused_result__)) +# 565 + __attribute((__alloc_size__(2, 3))) +# 566 + __attribute((__malloc__(__builtin_free, 1))); +# 569 +extern void *reallocarray(void * __ptr, size_t __nmemb, size_t __size) noexcept(true) +# 570 + __attribute((__malloc__(reallocarray, 1))); +# 26 "/usr/include/alloca.h" 3 +extern "C" { +# 32 +extern void *alloca(size_t __size) noexcept(true); +# 38 +} +# 580 "/usr/include/stdlib.h" 3 +extern void *valloc(size_t __size) noexcept(true) __attribute((__malloc__)) +# 581 + __attribute((__alloc_size__(1))); +# 586 +extern int posix_memalign(void ** __memptr, size_t __alignment, size_t __size) noexcept(true) +# 587 + __attribute((__nonnull__(1))); +# 592 +extern void *aligned_alloc(size_t __alignment, size_t __size) noexcept(true) +# 593 + __attribute((__malloc__)) __attribute((__alloc_align__(1 ))) +# 594 + __attribute((__alloc_size__(2))); +# 598 +extern void abort() noexcept(true) __attribute((__noreturn__)); +# 602 +extern int atexit(void (* __func)(void)) noexcept(true) __attribute((__nonnull__(1))); +# 607 +extern "C++" int at_quick_exit(void (* __func)(void)) noexcept(true) __asm__("at_quick_exit") +# 608 + __attribute((__nonnull__(1))); +# 617 "/usr/include/stdlib.h" 3 +extern int on_exit(void (* __func)(int __status, void * __arg), void * __arg) noexcept(true) +# 618 + __attribute((__nonnull__(1))); +# 624 +extern void exit(int __status) noexcept(true) __attribute((__noreturn__)); +# 630 +extern void quick_exit(int __status) noexcept(true) __attribute((__noreturn__)); +# 636 +extern void _Exit(int __status) noexcept(true) __attribute((__noreturn__)); +# 641 +extern char *getenv(const char * __name) noexcept(true) __attribute((__nonnull__(1))); +# 646 +extern char *secure_getenv(const char * __name) noexcept(true) +# 647 + __attribute((__nonnull__(1))); +# 654 +extern int putenv(char * __string) noexcept(true) __attribute((__nonnull__(1))); +# 660 +extern int setenv(const char * __name, const char * __value, int __replace) noexcept(true) +# 661 + __attribute((__nonnull__(2))); +# 664 +extern int unsetenv(const char * __name) noexcept(true) __attribute((__nonnull__(1))); +# 671 +extern int clearenv() noexcept(true); +# 682 "/usr/include/stdlib.h" 3 +extern char *mktemp(char * __template) noexcept(true) __attribute((__nonnull__(1))); +# 695 "/usr/include/stdlib.h" 3 +extern int mkstemp(char * __template) __attribute((__nonnull__(1))); +# 705 "/usr/include/stdlib.h" 3 +extern int mkstemp64(char * __template) __attribute((__nonnull__(1))); +# 717 "/usr/include/stdlib.h" 3 +extern int mkstemps(char * __template, int __suffixlen) __attribute((__nonnull__(1))); +# 727 "/usr/include/stdlib.h" 3 +extern int mkstemps64(char * __template, int __suffixlen) +# 728 + __attribute((__nonnull__(1))); +# 738 "/usr/include/stdlib.h" 3 +extern char *mkdtemp(char * __template) noexcept(true) __attribute((__nonnull__(1))); +# 749 "/usr/include/stdlib.h" 3 +extern int mkostemp(char * __template, int __flags) __attribute((__nonnull__(1))); +# 759 "/usr/include/stdlib.h" 3 +extern int mkostemp64(char * __template, int __flags) __attribute((__nonnull__(1))); +# 769 "/usr/include/stdlib.h" 3 +extern int mkostemps(char * __template, int __suffixlen, int __flags) +# 770 + __attribute((__nonnull__(1))); +# 781 "/usr/include/stdlib.h" 3 +extern int mkostemps64(char * __template, int __suffixlen, int __flags) +# 782 + __attribute((__nonnull__(1))); +# 791 "/usr/include/stdlib.h" 3 +extern int system(const char * __command); +# 797 +extern char *canonicalize_file_name(const char * __name) noexcept(true) +# 798 + __attribute((__nonnull__(1))) __attribute((__malloc__)) +# 799 + __attribute((__malloc__(__builtin_free, 1))); +# 808 "/usr/include/stdlib.h" 3 +extern char *realpath(const char *__restrict__ __name, char *__restrict__ __resolved) noexcept(true); +# 816 +typedef int (*__compar_fn_t)(const void *, const void *); +# 819 +typedef __compar_fn_t comparison_fn_t; +# 823 +typedef int (*__compar_d_fn_t)(const void *, const void *, void *); +# 828 +extern void *bsearch(const void * __key, const void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar) +# 830 + __attribute((__nonnull__(1, 2, 5))); +# 838 +extern void qsort(void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar) +# 839 + __attribute((__nonnull__(1, 4))); +# 841 +extern void qsort_r(void * __base, size_t __nmemb, size_t __size, __compar_d_fn_t __compar, void * __arg) +# 843 + __attribute((__nonnull__(1, 4))); +# 848 +extern int abs(int __x) noexcept(true) __attribute((const)); +# 849 +extern long labs(long __x) noexcept(true) __attribute((const)); +# 852 +__extension__ extern long long llabs(long long __x) noexcept(true) +# 853 + __attribute((const)); +# 860 +extern div_t div(int __numer, int __denom) noexcept(true) +# 861 + __attribute((const)); +# 862 +extern ldiv_t ldiv(long __numer, long __denom) noexcept(true) +# 863 + __attribute((const)); +# 866 +__extension__ extern lldiv_t lldiv(long long __numer, long long __denom) noexcept(true) +# 868 + __attribute((const)); +# 880 "/usr/include/stdlib.h" 3 +extern char *ecvt(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) noexcept(true) +# 881 + __attribute((__nonnull__(3, 4))); +# 886 +extern char *fcvt(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) noexcept(true) +# 887 + __attribute((__nonnull__(3, 4))); +# 892 +extern char *gcvt(double __value, int __ndigit, char * __buf) noexcept(true) +# 893 + __attribute((__nonnull__(3))); +# 898 +extern char *qecvt(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) noexcept(true) +# 900 + __attribute((__nonnull__(3, 4))); +# 901 +extern char *qfcvt(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) noexcept(true) +# 903 + __attribute((__nonnull__(3, 4))); +# 904 +extern char *qgcvt(long double __value, int __ndigit, char * __buf) noexcept(true) +# 905 + __attribute((__nonnull__(3))); +# 910 +extern int ecvt_r(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) noexcept(true) +# 912 + __attribute((__nonnull__(3, 4, 5))); +# 913 +extern int fcvt_r(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) noexcept(true) +# 915 + __attribute((__nonnull__(3, 4, 5))); +# 917 +extern int qecvt_r(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) noexcept(true) +# 920 + __attribute((__nonnull__(3, 4, 5))); +# 921 +extern int qfcvt_r(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) noexcept(true) +# 924 + __attribute((__nonnull__(3, 4, 5))); +# 930 +extern int mblen(const char * __s, size_t __n) noexcept(true); +# 933 +extern int mbtowc(wchar_t *__restrict__ __pwc, const char *__restrict__ __s, size_t __n) noexcept(true); +# 937 +extern int wctomb(char * __s, wchar_t __wchar) noexcept(true); +# 941 +extern size_t mbstowcs(wchar_t *__restrict__ __pwcs, const char *__restrict__ __s, size_t __n) noexcept(true) +# 943 + __attribute((__access__(__read_only__ , 2 ))); +# 945 +extern size_t wcstombs(char *__restrict__ __s, const wchar_t *__restrict__ __pwcs, size_t __n) noexcept(true) +# 948 + __attribute((__access__(__write_only__ , 1 , 3 ))) +# 949 + __attribute((__access__(__read_only__ , 2 ))); +# 956 +extern int rpmatch(const char * __response) noexcept(true) __attribute((__nonnull__(1))); +# 967 "/usr/include/stdlib.h" 3 +extern int getsubopt(char **__restrict__ __optionp, char *const *__restrict__ __tokens, char **__restrict__ __valuep) noexcept(true) +# 970 + __attribute((__nonnull__(1, 2, 3))); +# 978 +extern int posix_openpt(int __oflag); +# 986 +extern int grantpt(int __fd) noexcept(true); +# 990 +extern int unlockpt(int __fd) noexcept(true); +# 995 +extern char *ptsname(int __fd) noexcept(true); +# 1002 +extern int ptsname_r(int __fd, char * __buf, size_t __buflen) noexcept(true) +# 1003 + __attribute((__nonnull__(2))) __attribute((__access__(__write_only__ , 2 , 3 ))); +# 1006 +extern int getpt(); +# 1013 +extern int getloadavg(double __loadavg[], int __nelem) noexcept(true) +# 1014 + __attribute((__nonnull__(1))); +# 1035 "/usr/include/stdlib.h" 3 +} +# 46 "/usr/include/c++/11/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/include/c++/11/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 +constexpr __int128 abs(__int128 __x) { return (__x >= (0)) ? __x : (-__x); } +# 108 "/usr/include/c++/11/bits/std_abs.h" 3 +} +# 109 +} +# 121 "/usr/include/c++/11/cstdlib" 3 +extern "C++" { +# 123 +namespace std __attribute((__visibility__("default"))) { +# 127 +using ::div_t; +# 128 +using ::ldiv_t; +# 130 +using ::abort; +# 132 +using ::aligned_alloc; +# 134 +using ::atexit; +# 137 +using ::at_quick_exit; +# 140 +using ::atof; +# 141 +using ::atoi; +# 142 +using ::atol; +# 143 +using ::bsearch; +# 144 +using ::calloc; +# 145 +using ::div; +# 146 +using ::exit; +# 147 +using ::free; +# 148 +using ::getenv; +# 149 +using ::labs; +# 150 +using ::ldiv; +# 151 +using ::malloc; +# 153 +using ::mblen; +# 154 +using ::mbstowcs; +# 155 +using ::mbtowc; +# 157 +using ::qsort; +# 160 +using ::quick_exit; +# 163 +using ::rand; +# 164 +using ::realloc; +# 165 +using ::srand; +# 166 +using ::strtod; +# 167 +using ::strtol; +# 168 +using ::strtoul; +# 169 +using ::system; +# 171 +using ::wcstombs; +# 172 +using ::wctomb; +# 177 +inline ldiv_t div(long __i, long __j) { return ldiv(__i, __j); } +# 182 +} +# 195 "/usr/include/c++/11/cstdlib" 3 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 200 +using ::lldiv_t; +# 206 +using ::_Exit; +# 210 +using ::llabs; +# 213 +inline lldiv_t div(long long __n, long long __d) +# 214 +{ lldiv_t __q; (__q.quot) = (__n / __d); (__q.rem) = (__n % __d); return __q; } +# 216 +using ::lldiv; +# 227 "/usr/include/c++/11/cstdlib" 3 +using ::atoll; +# 228 +using ::strtoll; +# 229 +using ::strtoull; +# 231 +using ::strtof; +# 232 +using ::strtold; +# 235 +} +# 237 +namespace std { +# 240 +using __gnu_cxx::lldiv_t; +# 242 +using __gnu_cxx::_Exit; +# 244 +using __gnu_cxx::llabs; +# 245 +using __gnu_cxx::div; +# 246 +using __gnu_cxx::lldiv; +# 248 +using __gnu_cxx::atoll; +# 249 +using __gnu_cxx::strtof; +# 250 +using __gnu_cxx::strtoll; +# 251 +using __gnu_cxx::strtoull; +# 252 +using __gnu_cxx::strtold; +# 253 +} +# 257 +} +# 38 "/usr/include/c++/11/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; +# 54 +using std::abs; +# 55 +using std::atof; +# 56 +using std::atoi; +# 57 +using std::atol; +# 58 +using std::bsearch; +# 59 +using std::calloc; +# 60 +using std::div; +# 61 +using std::free; +# 62 +using std::getenv; +# 63 +using std::labs; +# 64 +using std::ldiv; +# 65 +using std::malloc; +# 67 +using std::mblen; +# 68 +using std::mbstowcs; +# 69 +using std::mbtowc; +# 71 +using std::qsort; +# 72 +using std::rand; +# 73 +using std::realloc; +# 74 +using std::srand; +# 75 +using std::strtod; +# 76 +using std::strtol; +# 77 +using std::strtoul; +# 78 +using std::system; +# 80 +using std::wcstombs; +# 81 +using std::wctomb; +# 180 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +extern "C" { +# 187 +__attribute__((unused)) extern cudaError_t __cudaDeviceSynchronizeDeprecationAvoidance(); +# 236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t __cudaCDP2DeviceGetAttribute(int * value, cudaDeviceAttr attr, int device); +# 237 +__attribute__((unused)) extern cudaError_t __cudaCDP2DeviceGetLimit(size_t * pValue, cudaLimit limit); +# 238 +__attribute__((unused)) extern cudaError_t __cudaCDP2DeviceGetCacheConfig(cudaFuncCache * pCacheConfig); +# 239 +__attribute__((unused)) extern cudaError_t __cudaCDP2DeviceGetSharedMemConfig(cudaSharedMemConfig * pConfig); +# 240 +__attribute__((unused)) extern cudaError_t __cudaCDP2GetLastError(); +# 241 +__attribute__((unused)) extern cudaError_t __cudaCDP2PeekAtLastError(); +# 242 +__attribute__((unused)) extern const char *__cudaCDP2GetErrorString(cudaError_t error); +# 243 +__attribute__((unused)) extern const char *__cudaCDP2GetErrorName(cudaError_t error); +# 244 +__attribute__((unused)) extern cudaError_t __cudaCDP2GetDeviceCount(int * count); +# 245 +__attribute__((unused)) extern cudaError_t __cudaCDP2GetDevice(int * device); +# 246 +__attribute__((unused)) extern cudaError_t __cudaCDP2StreamCreateWithFlags(cudaStream_t * pStream, unsigned flags); +# 247 +__attribute__((unused)) extern cudaError_t __cudaCDP2StreamDestroy(cudaStream_t stream); +# 248 +__attribute__((unused)) extern cudaError_t __cudaCDP2StreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned flags); +# 249 +__attribute__((unused)) extern cudaError_t __cudaCDP2StreamWaitEvent_ptsz(cudaStream_t stream, cudaEvent_t event, unsigned flags); +# 250 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventCreateWithFlags(cudaEvent_t * event, unsigned flags); +# 251 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventRecord(cudaEvent_t event, cudaStream_t stream); +# 252 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventRecord_ptsz(cudaEvent_t event, cudaStream_t stream); +# 253 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventRecordWithFlags(cudaEvent_t event, cudaStream_t stream, unsigned flags); +# 254 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventRecordWithFlags_ptsz(cudaEvent_t event, cudaStream_t stream, unsigned flags); +# 255 +__attribute__((unused)) extern cudaError_t __cudaCDP2EventDestroy(cudaEvent_t event); +# 256 +__attribute__((unused)) extern cudaError_t __cudaCDP2FuncGetAttributes(cudaFuncAttributes * attr, const void * func); +# 257 +__attribute__((unused)) extern cudaError_t __cudaCDP2Free(void * devPtr); +# 258 +__attribute__((unused)) extern cudaError_t __cudaCDP2Malloc(void ** devPtr, size_t size); +# 259 +__attribute__((unused)) extern cudaError_t __cudaCDP2MemcpyAsync(void * dst, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream); +# 260 +__attribute__((unused)) extern cudaError_t __cudaCDP2MemcpyAsync_ptsz(void * dst, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream); +# 261 +__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); +# 262 +__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); +# 263 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memcpy3DAsync(const cudaMemcpy3DParms * p, cudaStream_t stream); +# 264 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memcpy3DAsync_ptsz(const cudaMemcpy3DParms * p, cudaStream_t stream); +# 265 +__attribute__((unused)) extern cudaError_t __cudaCDP2MemsetAsync(void * devPtr, int value, size_t count, cudaStream_t stream); +# 266 +__attribute__((unused)) extern cudaError_t __cudaCDP2MemsetAsync_ptsz(void * devPtr, int value, size_t count, cudaStream_t stream); +# 267 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memset2DAsync(void * devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +# 268 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memset2DAsync_ptsz(void * devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +# 269 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memset3DAsync(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent, cudaStream_t stream); +# 270 +__attribute__((unused)) extern cudaError_t __cudaCDP2Memset3DAsync_ptsz(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent, cudaStream_t stream); +# 271 +__attribute__((unused)) extern cudaError_t __cudaCDP2RuntimeGetVersion(int * runtimeVersion); +# 272 +__attribute__((unused)) extern void *__cudaCDP2GetParameterBuffer(size_t alignment, size_t size); +# 273 +__attribute__((unused)) extern void *__cudaCDP2GetParameterBufferV2(void * func, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize); +# 274 +__attribute__((unused)) extern cudaError_t __cudaCDP2LaunchDevice_ptsz(void * func, void * parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize, cudaStream_t stream); +# 275 +__attribute__((unused)) extern cudaError_t __cudaCDP2LaunchDeviceV2_ptsz(void * parameterBuffer, cudaStream_t stream); +# 276 +__attribute__((unused)) extern cudaError_t __cudaCDP2LaunchDevice(void * func, void * parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize, cudaStream_t stream); +# 277 +__attribute__((unused)) extern cudaError_t __cudaCDP2LaunchDeviceV2(void * parameterBuffer, cudaStream_t stream); +# 278 +__attribute__((unused)) extern cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessor(int * numBlocks, const void * func, int blockSize, size_t dynamicSmemSize); +# 279 +__attribute__((unused)) extern cudaError_t __cudaCDP2OccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * numBlocks, const void * func, int blockSize, size_t dynamicSmemSize, unsigned flags); +# 282 +extern cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 301 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline cudaGraphExec_t cudaGetCurrentGraphExec() +# 302 +{int volatile ___ = 1; +# 306 +::exit(___);} +#if 0 +# 302 +{ +# 303 +unsigned long long current_graph_exec; +# 304 +__asm__("mov.u64 %0, %%current_graph_exec;" : "=l" (current_graph_exec) :); +# 305 +return (cudaGraphExec_t)current_graph_exec; +# 306 +} +#endif +# 336 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const void * value, size_t size); +# 364 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t cudaGraphKernelNodeSetEnabled(cudaGraphDeviceNode_t node, bool enable); +# 391 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t cudaGraphKernelNodeSetGridDim(cudaGraphDeviceNode_t node, dim3 gridDim); +# 420 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +__attribute__((unused)) extern cudaError_t cudaGraphKernelNodeUpdatesApply(const cudaGraphKernelNodeUpdate * updates, size_t updateCount); +# 438 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline void cudaTriggerProgrammaticLaunchCompletion() +# 439 +{int volatile ___ = 1; +# 441 +::exit(___);} +#if 0 +# 439 +{ +# 440 +__asm__ volatile("griddepcontrol.launch_dependents;" : :); +# 441 +} +#endif +# 454 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline void cudaGridDependencySynchronize() +# 455 +{int volatile ___ = 1; +# 457 +::exit(___);} +#if 0 +# 455 +{ +# 456 +__asm__ volatile("griddepcontrol.wait;" : : : "memory"); +# 457 +} +#endif +# 466 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +__attribute__((unused)) extern void cudaGraphSetConditional(cudaGraphConditionalHandle handle, unsigned value); +# 469 +__attribute__((unused)) extern unsigned long long cudaCGGetIntrinsicHandle(cudaCGScope scope); +# 470 +__attribute__((unused)) extern cudaError_t cudaCGSynchronize(unsigned long long handle, unsigned flags); +# 471 +__attribute__((unused)) extern cudaError_t cudaCGSynchronizeGrid(unsigned long long handle, unsigned flags); +# 472 +__attribute__((unused)) extern cudaError_t cudaCGGetSize(unsigned * numThreads, unsigned * numGrids, unsigned long long handle); +# 473 +__attribute__((unused)) extern cudaError_t cudaCGGetRank(unsigned * threadRank, unsigned * gridRank, unsigned long long handle); +# 695 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline void *cudaGetParameterBuffer(size_t alignment, size_t size) +# 696 +{int volatile ___ = 1;(void)alignment;(void)size; +# 698 +::exit(___);} +#if 0 +# 696 +{ +# 697 +return __cudaCDP2GetParameterBuffer(alignment, size); +# 698 +} +#endif +# 705 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline void *cudaGetParameterBufferV2(void *func, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize) +# 706 +{int volatile ___ = 1;(void)func;(void)gridDimension;(void)blockDimension;(void)sharedMemSize; +# 708 +::exit(___);} +#if 0 +# 706 +{ +# 707 +return __cudaCDP2GetParameterBufferV2(func, gridDimension, blockDimension, sharedMemSize); +# 708 +} +#endif +# 715 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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) +# 716 +{int volatile ___ = 1;(void)func;(void)parameterBuffer;(void)gridDimension;(void)blockDimension;(void)sharedMemSize;(void)stream; +# 718 +::exit(___);} +#if 0 +# 716 +{ +# 717 +return __cudaCDP2LaunchDevice_ptsz(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); +# 718 +} +#endif +# 720 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline cudaError_t cudaLaunchDeviceV2_ptsz(void *parameterBuffer, cudaStream_t stream) +# 721 +{int volatile ___ = 1;(void)parameterBuffer;(void)stream; +# 723 +::exit(___);} +#if 0 +# 721 +{ +# 722 +return __cudaCDP2LaunchDeviceV2_ptsz(parameterBuffer, stream); +# 723 +} +#endif +# 781 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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) +# 782 +{int volatile ___ = 1;(void)func;(void)parameterBuffer;(void)gridDimension;(void)blockDimension;(void)sharedMemSize;(void)stream; +# 784 +::exit(___);} +#if 0 +# 782 +{ +# 783 +return __cudaCDP2LaunchDevice(func, parameterBuffer, gridDimension, blockDimension, sharedMemSize, stream); +# 784 +} +#endif +# 786 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +__attribute__((unused)) static inline cudaError_t cudaLaunchDeviceV2(void *parameterBuffer, cudaStream_t stream) +# 787 +{int volatile ___ = 1;(void)parameterBuffer;(void)stream; +# 789 +::exit(___);} +#if 0 +# 787 +{ +# 788 +return __cudaCDP2LaunchDeviceV2(parameterBuffer, stream); +# 789 +} +#endif +# 843 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +} +# 845 +template< class T> static inline cudaError_t cudaMalloc(T ** devPtr, size_t size); +# 846 +template< class T> static inline cudaError_t cudaFuncGetAttributes(cudaFuncAttributes * attr, T * entry); +# 847 +template< class T> static inline cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int * numBlocks, T func, int blockSize, size_t dynamicSmemSize); +# 848 +template< class T> static inline cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * numBlocks, T func, int blockSize, size_t dynamicSmemSize, unsigned flags); +# 876 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_device_runtime_api.h" +template< class T> __attribute__((unused)) static inline cudaError_t +# 877 +cudaGraphKernelNodeSetParam(cudaGraphDeviceNode_t node, size_t offset, const T &value) +# 878 +{int volatile ___ = 1;(void)node;(void)offset;(void)value; +# 880 +::exit(___);} +#if 0 +# 878 +{ +# 879 +return cudaGraphKernelNodeSetParam(node, offset, &value, sizeof(T)); +# 880 +} +#endif +# 283 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern "C" { +# 323 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceReset(); +# 345 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSynchronize(); +# 431 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSetLimit(cudaLimit limit, size_t value); +# 467 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetLimit(size_t * pValue, cudaLimit limit); +# 490 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetTexture1DLinearMaxWidth(size_t * maxWidthInElements, const cudaChannelFormatDesc * fmtDesc, int device); +# 524 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetCacheConfig(cudaFuncCache * pCacheConfig); +# 561 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetStreamPriorityRange(int * leastPriority, int * greatestPriority); +# 605 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSetCacheConfig(cudaFuncCache cacheConfig); +# 632 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetByPCIBusId(int * device, const char * pciBusId); +# 662 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetPCIBusId(char * pciBusId, int len, int device); +# 712 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaIpcGetEventHandle(cudaIpcEventHandle_t * handle, cudaEvent_t event); +# 755 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaIpcOpenEventHandle(cudaEvent_t * event, cudaIpcEventHandle_t handle); +# 799 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaIpcGetMemHandle(cudaIpcMemHandle_t * handle, void * devPtr); +# 865 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaIpcOpenMemHandle(void ** devPtr, cudaIpcMemHandle_t handle, unsigned flags); +# 903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaIpcCloseMemHandle(void * devPtr); +# 935 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceFlushGPUDirectRDMAWrites(cudaFlushGPUDirectRDMAWritesTarget target, cudaFlushGPUDirectRDMAWritesScope scope); +# 973 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceRegisterAsyncNotification(int device, cudaAsyncCallback callbackFunc, void * userData, cudaAsyncCallbackHandle_t * callback); +# 996 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceUnregisterAsyncNotification(int device, cudaAsyncCallbackHandle_t callback); +# 1043 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaDeviceGetSharedMemConfig(cudaSharedMemConfig * pConfig); +# 1089 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaDeviceSetSharedMemConfig(cudaSharedMemConfig config); +# 1130 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadExit(); +# 1156 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadSynchronize(); +# 1205 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadSetLimit(cudaLimit limit, size_t value); +# 1238 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadGetLimit(size_t * pValue, cudaLimit limit); +# 1274 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadGetCacheConfig(cudaFuncCache * pCacheConfig); +# 1321 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaThreadSetCacheConfig(cudaFuncCache cacheConfig); +# 1386 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetLastError(); +# 1437 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaPeekAtLastError(); +# 1453 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern const char *cudaGetErrorName(cudaError_t error); +# 1469 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern const char *cudaGetErrorString(cudaError_t error); +# 1498 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetDeviceCount(int * count); +# 1803 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetDeviceProperties_v2(cudaDeviceProp * prop, int device); +# 2005 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetAttribute(int * value, cudaDeviceAttr attr, int device); +# 2023 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetDefaultMemPool(cudaMemPool_t * memPool, int device); +# 2047 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSetMemPool(int device, cudaMemPool_t memPool); +# 2067 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetMemPool(cudaMemPool_t * memPool, int device); +# 2129 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetNvSciSyncAttributes(void * nvSciSyncAttrList, int device, int flags); +# 2169 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetP2PAttribute(int * value, cudaDeviceP2PAttr attr, int srcDevice, int dstDevice); +# 2191 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaChooseDevice(int * device, const cudaDeviceProp * prop); +# 2220 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaInitDevice(int device, unsigned deviceFlags, unsigned flags); +# 2266 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaSetDevice(int device); +# 2288 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetDevice(int * device); +# 2319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaSetValidDevices(int * device_arr, int len); +# 2389 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaSetDeviceFlags(unsigned flags); +# 2434 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetDeviceFlags(unsigned * flags); +# 2474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamCreate(cudaStream_t * pStream); +# 2506 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamCreateWithFlags(cudaStream_t * pStream, unsigned flags); +# 2554 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamCreateWithPriority(cudaStream_t * pStream, unsigned flags, int priority); +# 2581 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetPriority(cudaStream_t hStream, int * priority); +# 2606 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetFlags(cudaStream_t hStream, unsigned * flags); +# 2643 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetId(cudaStream_t hStream, unsigned long long * streamId); +# 2658 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaCtxResetPersistingL2Cache(); +# 2678 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamCopyAttributes(cudaStream_t dst, cudaStream_t src); +# 2699 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamGetAttribute(cudaStream_t hStream, cudaLaunchAttributeID attr, cudaLaunchAttributeValue * value_out); +# 2723 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamSetAttribute(cudaStream_t hStream, cudaLaunchAttributeID attr, const cudaLaunchAttributeValue * value); +# 2757 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamDestroy(cudaStream_t stream); +# 2788 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned flags = 0); +# 2796 +typedef void (*cudaStreamCallback_t)(cudaStream_t stream, cudaError_t status, void * userData); +# 2863 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamAddCallback(cudaStream_t stream, cudaStreamCallback_t callback, void * userData, unsigned flags); +# 2887 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamSynchronize(cudaStream_t stream); +# 2912 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamQuery(cudaStream_t stream); +# 2996 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamAttachMemAsync(cudaStream_t stream, void * devPtr, size_t length = 0, unsigned flags = 4); +# 3035 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamBeginCapture(cudaStream_t stream, cudaStreamCaptureMode mode); +# 3076 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3127 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaThreadExchangeStreamCaptureMode(cudaStreamCaptureMode * mode); +# 3156 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamEndCapture(cudaStream_t stream, cudaGraph_t * pGraph); +# 3194 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamIsCapturing(cudaStream_t stream, cudaStreamCaptureStatus * pCaptureStatus); +# 3243 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3302 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3342 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaStreamUpdateCaptureDependencies(cudaStream_t stream, cudaGraphNode_t * dependencies, size_t numDependencies, unsigned flags = 0); +# 3377 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 3414 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaEventCreate(cudaEvent_t * event); +# 3451 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaEventCreateWithFlags(cudaEvent_t * event, unsigned flags); +# 3492 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream = 0); +# 3540 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream = 0, unsigned flags = 0); +# 3573 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaEventQuery(cudaEvent_t event); +# 3604 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaEventSynchronize(cudaEvent_t event); +# 3634 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaEventDestroy(cudaEvent_t event); +# 3679 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaEventElapsedTime(float * ms, cudaEvent_t start, cudaEvent_t end); +# 3860 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaImportExternalMemory(cudaExternalMemory_t * extMem_out, const cudaExternalMemoryHandleDesc * memHandleDesc); +# 3915 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaExternalMemoryGetMappedBuffer(void ** devPtr, cudaExternalMemory_t extMem, const cudaExternalMemoryBufferDesc * bufferDesc); +# 3975 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaExternalMemoryGetMappedMipmappedArray(cudaMipmappedArray_t * mipmap, cudaExternalMemory_t extMem, const cudaExternalMemoryMipmappedArrayDesc * mipmapDesc); +# 3999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDestroyExternalMemory(cudaExternalMemory_t extMem); +# 4153 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaImportExternalSemaphore(cudaExternalSemaphore_t * extSem_out, const cudaExternalSemaphoreHandleDesc * semHandleDesc); +# 4236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaSignalExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t * extSemArray, const cudaExternalSemaphoreSignalParams * paramsArray, unsigned numExtSems, cudaStream_t stream = 0); +# 4312 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaWaitExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t * extSemArray, const cudaExternalSemaphoreWaitParams * paramsArray, unsigned numExtSems, cudaStream_t stream = 0); +# 4335 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDestroyExternalSemaphore(cudaExternalSemaphore_t extSem); +# 4402 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaLaunchKernel(const void * func, dim3 gridDim, dim3 blockDim, void ** args, size_t sharedMem, cudaStream_t stream); +# 4464 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaLaunchKernelExC(const cudaLaunchConfig_t * config, const void * func, void ** args); +# 4521 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaLaunchCooperativeKernel(const void * func, dim3 gridDim, dim3 blockDim, void ** args, size_t sharedMem, cudaStream_t stream); +# 4622 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaLaunchCooperativeKernelMultiDevice(cudaLaunchParams * launchParamsList, unsigned numDevices, unsigned flags = 0); +# 4667 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaFuncSetCacheConfig(const void * func, cudaFuncCache cacheConfig); +# 4700 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaFuncGetAttributes(cudaFuncAttributes * attr, const void * func); +# 4737 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaFuncSetAttribute(const void * func, cudaFuncAttribute attr, int value); +# 4761 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaFuncGetName(const char ** name, const void * func); +# 4783 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaFuncGetParamInfo(const void * func, size_t paramIndex, size_t * paramOffset, size_t * paramSize); +# 4807 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaSetDoubleForDevice(double * d); +# 4831 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaSetDoubleForHost(double * d); +# 4897 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaLaunchHostFunc(cudaStream_t stream, cudaHostFn_t fn, void * userData); +# 4971 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +__attribute((deprecated)) extern cudaError_t cudaFuncSetSharedMemConfig(const void * func, cudaSharedMemConfig config); +# 5027 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int * numBlocks, const void * func, int blockSize, size_t dynamicSMemSize); +# 5056 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock(size_t * dynamicSmemSize, const void * func, int numBlocks, int blockSize); +# 5101 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * numBlocks, const void * func, int blockSize, size_t dynamicSMemSize, unsigned flags); +# 5136 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyMaxPotentialClusterSize(int * clusterSize, const void * func, const cudaLaunchConfig_t * launchConfig); +# 5175 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaOccupancyMaxActiveClusters(int * numClusters, const void * func, const cudaLaunchConfig_t * launchConfig); +# 5295 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMallocManaged(void ** devPtr, size_t size, unsigned flags = 1); +# 5328 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMalloc(void ** devPtr, size_t size); +# 5365 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMallocHost(void ** ptr, size_t size); +# 5408 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMallocPitch(void ** devPtr, size_t * pitch, size_t width, size_t height); +# 5460 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 5498 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaFree(void * devPtr); +# 5521 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaFreeHost(void * ptr); +# 5544 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaFreeArray(cudaArray_t array); +# 5567 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaFreeMipmappedArray(cudaMipmappedArray_t mipmappedArray); +# 5633 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaHostAlloc(void ** pHost, size_t size, unsigned flags); +# 5730 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaHostRegister(void * ptr, size_t size, unsigned flags); +# 5753 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaHostUnregister(void * ptr); +# 5798 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaHostGetDevicePointer(void ** pDevice, void * pHost, unsigned flags); +# 5820 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaHostGetFlags(unsigned * pFlags, void * pHost); +# 5859 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMalloc3D(cudaPitchedPtr * pitchedDevPtr, cudaExtent extent); +# 6004 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMalloc3DArray(cudaArray_t * array, const cudaChannelFormatDesc * desc, cudaExtent extent, unsigned flags = 0); +# 6149 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMallocMipmappedArray(cudaMipmappedArray_t * mipmappedArray, const cudaChannelFormatDesc * desc, cudaExtent extent, unsigned numLevels, unsigned flags = 0); +# 6182 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetMipmappedArrayLevel(cudaArray_t * levelArray, cudaMipmappedArray_const_t mipmappedArray, unsigned level); +# 6287 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3D(const cudaMemcpy3DParms * p); +# 6319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3DPeer(const cudaMemcpy3DPeerParms * p); +# 6437 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3DAsync(const cudaMemcpy3DParms * p, cudaStream_t stream = 0); +# 6464 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy3DPeerAsync(const cudaMemcpy3DPeerParms * p, cudaStream_t stream = 0); +# 6498 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemGetInfo(size_t * free, size_t * total); +# 6524 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaArrayGetInfo(cudaChannelFormatDesc * desc, cudaExtent * extent, unsigned * flags, cudaArray_t array); +# 6553 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaArrayGetPlane(cudaArray_t * pPlaneArray, cudaArray_t hArray, unsigned planeIdx); +# 6576 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaArrayGetMemoryRequirements(cudaArrayMemoryRequirements * memoryRequirements, cudaArray_t array, int device); +# 6600 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMipmappedArrayGetMemoryRequirements(cudaArrayMemoryRequirements * memoryRequirements, cudaMipmappedArray_t mipmap, int device); +# 6628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaArrayGetSparseProperties(cudaArraySparseProperties * sparseProperties, cudaArray_t array); +# 6658 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMipmappedArrayGetSparseProperties(cudaArraySparseProperties * sparseProperties, cudaMipmappedArray_t mipmap); +# 6703 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpy(void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 6738 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyPeer(void * dst, int dstDevice, const void * src, int srcDevice, size_t count); +# 6787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6837 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6887 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6934 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 6977 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7021 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyFromSymbol(void * dst, const void * symbol, size_t count, size_t offset = 0, cudaMemcpyKind kind = cudaMemcpyDeviceToHost); +# 7078 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemcpyAsync(void * dst, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7113 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7176 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7234 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7291 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7342 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7393 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7422 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemset(void * devPtr, int value, size_t count); +# 7456 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemset2D(void * devPtr, size_t pitch, int value, size_t width, size_t height); +# 7502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemset3D(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent); +# 7538 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemsetAsync(void * devPtr, int value, size_t count, cudaStream_t stream = 0); +# 7579 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 7632 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemset3DAsync(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent, cudaStream_t stream = 0); +# 7660 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetSymbolAddress(void ** devPtr, const void * symbol); +# 7687 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetSymbolSize(size_t * size, const void * symbol); +# 7757 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemPrefetchAsync(const void * devPtr, size_t count, int dstDevice, cudaStream_t stream = 0); +# 7759 +extern cudaError_t cudaMemPrefetchAsync_v2(const void * devPtr, size_t count, cudaMemLocation location, unsigned flags, cudaStream_t stream = 0); +# 7873 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemAdvise(const void * devPtr, size_t count, cudaMemoryAdvise advice, int device); +# 7996 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemAdvise_v2(const void * devPtr, size_t count, cudaMemoryAdvise advice, cudaMemLocation location); +# 8078 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemRangeGetAttribute(void * data, size_t dataSize, cudaMemRangeAttribute attribute, const void * devPtr, size_t count); +# 8121 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8181 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8223 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8266 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8317 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8367 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 8436 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMallocAsync(void ** devPtr, size_t size, cudaStream_t hStream); +# 8462 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaFreeAsync(void * devPtr, cudaStream_t hStream); +# 8487 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolTrimTo(cudaMemPool_t memPool, size_t minBytesToKeep); +# 8531 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolSetAttribute(cudaMemPool_t memPool, cudaMemPoolAttr attr, void * value); +# 8579 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolGetAttribute(cudaMemPool_t memPool, cudaMemPoolAttr attr, void * value); +# 8594 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolSetAccess(cudaMemPool_t memPool, const cudaMemAccessDesc * descList, size_t count); +# 8607 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolGetAccess(cudaMemAccessFlags * flags, cudaMemPool_t memPool, cudaMemLocation * location); +# 8645 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolCreate(cudaMemPool_t * memPool, const cudaMemPoolProps * poolProps); +# 8667 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolDestroy(cudaMemPool_t memPool); +# 8703 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMallocFromPoolAsync(void ** ptr, size_t size, cudaMemPool_t memPool, cudaStream_t stream); +# 8728 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolExportToShareableHandle(void * shareableHandle, cudaMemPool_t memPool, cudaMemAllocationHandleType handleType, unsigned flags); +# 8755 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolImportFromShareableHandle(cudaMemPool_t * memPool, void * shareableHandle, cudaMemAllocationHandleType handleType, unsigned flags); +# 8778 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolExportPointer(cudaMemPoolPtrExportData * exportData, void * ptr); +# 8807 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaMemPoolImportPointer(void ** ptr, cudaMemPool_t memPool, cudaMemPoolPtrExportData * exportData); +# 8960 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaPointerGetAttributes(cudaPointerAttributes * attributes, const void * ptr); +# 9001 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceCanAccessPeer(int * canAccessPeer, int device, int peerDevice); +# 9043 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceEnablePeerAccess(int peerDevice, unsigned flags); +# 9065 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceDisablePeerAccess(int peerDevice); +# 9129 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsUnregisterResource(cudaGraphicsResource_t resource); +# 9164 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsResourceSetMapFlags(cudaGraphicsResource_t resource, unsigned flags); +# 9203 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsMapResources(int count, cudaGraphicsResource_t * resources, cudaStream_t stream = 0); +# 9238 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsUnmapResources(int count, cudaGraphicsResource_t * resources, cudaStream_t stream = 0); +# 9270 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsResourceGetMappedPointer(void ** devPtr, size_t * size, cudaGraphicsResource_t resource); +# 9308 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsSubResourceGetMappedArray(cudaArray_t * array, cudaGraphicsResource_t resource, unsigned arrayIndex, unsigned mipLevel); +# 9337 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphicsResourceGetMappedMipmappedArray(cudaMipmappedArray_t * mipmappedArray, cudaGraphicsResource_t resource); +# 9372 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetChannelDesc(cudaChannelFormatDesc * desc, cudaArray_const_t array); +# 9402 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaChannelFormatDesc cudaCreateChannelDesc(int x, int y, int z, int w, cudaChannelFormatKind f); +# 9626 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaCreateTextureObject(cudaTextureObject_t * pTexObject, const cudaResourceDesc * pResDesc, const cudaTextureDesc * pTexDesc, const cudaResourceViewDesc * pResViewDesc); +# 9646 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDestroyTextureObject(cudaTextureObject_t texObject); +# 9666 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetTextureObjectResourceDesc(cudaResourceDesc * pResDesc, cudaTextureObject_t texObject); +# 9686 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetTextureObjectTextureDesc(cudaTextureDesc * pTexDesc, cudaTextureObject_t texObject); +# 9707 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetTextureObjectResourceViewDesc(cudaResourceViewDesc * pResViewDesc, cudaTextureObject_t texObject); +# 9752 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaCreateSurfaceObject(cudaSurfaceObject_t * pSurfObject, const cudaResourceDesc * pResDesc); +# 9772 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDestroySurfaceObject(cudaSurfaceObject_t surfObject); +# 9791 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetSurfaceObjectResourceDesc(cudaResourceDesc * pResDesc, cudaSurfaceObject_t surfObject); +# 9825 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDriverGetVersion(int * driverVersion); +# 9854 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaRuntimeGetVersion(int * runtimeVersion); +# 9901 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphCreate(cudaGraph_t * pGraph, unsigned flags); +# 9999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10032 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeGetParams(cudaGraphNode_t node, cudaKernelNodeParams * pNodeParams); +# 10058 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeSetParams(cudaGraphNode_t node, const cudaKernelNodeParams * pNodeParams); +# 10078 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeCopyAttributes(cudaGraphNode_t hSrc, cudaGraphNode_t hDst); +# 10101 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeGetAttribute(cudaGraphNode_t hNode, cudaLaunchAttributeID attr, cudaLaunchAttributeValue * value_out); +# 10125 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphKernelNodeSetAttribute(cudaGraphNode_t hNode, cudaLaunchAttributeID attr, const cudaLaunchAttributeValue * value); +# 10176 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10235 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10304 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10372 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemcpyNodeGetParams(cudaGraphNode_t node, cudaMemcpy3DParms * pNodeParams); +# 10431 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemcpyNodeSetParams(cudaGraphNode_t node, const cudaMemcpy3DParms * pNodeParams); +# 10470 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10516 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10562 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemcpyNodeSetParams1D(cudaGraphNode_t node, void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 10610 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10633 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemsetNodeGetParams(cudaGraphNode_t node, cudaMemsetParams * pNodeParams); +# 10657 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemsetNodeSetParams(cudaGraphNode_t node, const cudaMemsetParams * pNodeParams); +# 10699 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10722 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphHostNodeGetParams(cudaGraphNode_t node, cudaHostNodeParams * pNodeParams); +# 10746 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphHostNodeSetParams(cudaGraphNode_t node, const cudaHostNodeParams * pNodeParams); +# 10787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10814 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphChildGraphNodeGetGraph(cudaGraphNode_t node, cudaGraph_t * pGraph); +# 10852 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddEmptyNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies); +# 10896 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 10923 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphEventRecordNodeGetEvent(cudaGraphNode_t node, cudaEvent_t * event_out); +# 10951 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphEventRecordNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 10998 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11025 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphEventWaitNodeGetEvent(cudaGraphNode_t node, cudaEvent_t * event_out); +# 11053 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphEventWaitNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11103 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11136 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExternalSemaphoresSignalNodeGetParams(cudaGraphNode_t hNode, cudaExternalSemaphoreSignalNodeParams * params_out); +# 11164 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExternalSemaphoresSignalNodeSetParams(cudaGraphNode_t hNode, const cudaExternalSemaphoreSignalNodeParams * nodeParams); +# 11214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 11247 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExternalSemaphoresWaitNodeGetParams(cudaGraphNode_t hNode, cudaExternalSemaphoreWaitNodeParams * params_out); +# 11275 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExternalSemaphoresWaitNodeSetParams(cudaGraphNode_t hNode, const cudaExternalSemaphoreWaitNodeParams * nodeParams); +# 11353 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemAllocNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaMemAllocNodeParams * nodeParams); +# 11380 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemAllocNodeGetParams(cudaGraphNode_t node, cudaMemAllocNodeParams * params_out); +# 11441 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddMemFreeNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, void * dptr); +# 11465 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphMemFreeNodeGetParams(cudaGraphNode_t node, void * dptr_out); +# 11493 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGraphMemTrim(int device); +# 11530 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceGetGraphMemAttribute(int device, cudaGraphMemAttributeType attr, void * value); +# 11564 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaDeviceSetGraphMemAttribute(int device, cudaGraphMemAttributeType attr, void * value); +# 11592 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphClone(cudaGraph_t * pGraphClone, cudaGraph_t originalGraph); +# 11620 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeFindInClone(cudaGraphNode_t * pNode, cudaGraphNode_t originalNode, cudaGraph_t clonedGraph); +# 11651 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetType(cudaGraphNode_t node, cudaGraphNodeType * pType); +# 11682 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphGetNodes(cudaGraph_t graph, cudaGraphNode_t * nodes, size_t * numNodes); +# 11713 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphGetRootNodes(cudaGraph_t graph, cudaGraphNode_t * pRootNodes, size_t * pNumRootNodes); +# 11747 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphGetEdges(cudaGraph_t graph, cudaGraphNode_t * from, cudaGraphNode_t * to, size_t * numEdges); +# 11787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphGetEdges_v2(cudaGraph_t graph, cudaGraphNode_t * from, cudaGraphNode_t * to, cudaGraphEdgeData * edgeData, size_t * numEdges); +# 11818 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetDependencies(cudaGraphNode_t node, cudaGraphNode_t * pDependencies, size_t * pNumDependencies); +# 11855 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetDependencies_v2(cudaGraphNode_t node, cudaGraphNode_t * pDependencies, cudaGraphEdgeData * edgeData, size_t * pNumDependencies); +# 11887 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetDependentNodes(cudaGraphNode_t node, cudaGraphNode_t * pDependentNodes, size_t * pNumDependentNodes); +# 11925 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetDependentNodes_v2(cudaGraphNode_t node, cudaGraphNode_t * pDependentNodes, cudaGraphEdgeData * edgeData, size_t * pNumDependentNodes); +# 11956 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddDependencies(cudaGraph_t graph, const cudaGraphNode_t * from, const cudaGraphNode_t * to, size_t numDependencies); +# 11988 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12019 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphRemoveDependencies(cudaGraph_t graph, const cudaGraphNode_t * from, const cudaGraphNode_t * to, size_t numDependencies); +# 12054 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12084 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphDestroyNode(cudaGraphNode_t node); +# 12155 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphInstantiate(cudaGraphExec_t * pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12228 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphInstantiateWithFlags(cudaGraphExec_t * pGraphExec, cudaGraph_t graph, unsigned long long flags = 0); +# 12335 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphInstantiateWithParams(cudaGraphExec_t * pGraphExec, cudaGraph_t graph, cudaGraphInstantiateParams * instantiateParams); +# 12360 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecGetFlags(cudaGraphExec_t graphExec, unsigned long long * flags); +# 12419 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecKernelNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaKernelNodeParams * pNodeParams); +# 12470 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecMemcpyNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaMemcpy3DParms * pNodeParams); +# 12525 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12588 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12649 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 12704 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecMemsetNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaMemsetParams * pNodeParams); +# 12744 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecHostNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaHostNodeParams * pNodeParams); +# 12791 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecChildGraphNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, cudaGraph_t childGraph); +# 12836 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecEventRecordNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 12881 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecEventWaitNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 12929 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecExternalSemaphoresSignalNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const cudaExternalSemaphoreSignalNodeParams * nodeParams); +# 12977 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecExternalSemaphoresWaitNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const cudaExternalSemaphoreWaitNodeParams * nodeParams); +# 13017 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeSetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned isEnabled); +# 13051 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeGetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned * isEnabled); +# 13143 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphExecUpdateResultInfo * resultInfo); +# 13168 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphUpload(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13199 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 13222 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecDestroy(cudaGraphExec_t graphExec); +# 13243 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphDestroy(cudaGraph_t graph); +# 13262 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphDebugDotPrint(cudaGraph_t graph, const char * path, unsigned flags); +# 13298 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaUserObjectCreate(cudaUserObject_t * object_out, void * ptr, cudaHostFn_t destroy, unsigned initialRefcount, unsigned flags); +# 13322 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaUserObjectRetain(cudaUserObject_t object, unsigned count = 1); +# 13350 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaUserObjectRelease(cudaUserObject_t object, unsigned count = 1); +# 13378 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphRetainUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned count = 1, unsigned flags = 0); +# 13403 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphReleaseUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned count = 1); +# 13445 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphAddNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaGraphNodeParams * nodeParams); +# 13489 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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); +# 13518 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphNodeSetParams(cudaGraphNode_t node, cudaGraphNodeParams * nodeParams); +# 13567 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphExecNodeSetParams(cudaGraphExec_t graphExec, cudaGraphNode_t node, cudaGraphNodeParams * nodeParams); +# 13593 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGraphConditionalHandleCreate(cudaGraphConditionalHandle * pHandle_out, cudaGraph_t graph, unsigned defaultLaunchValue = 0, unsigned flags = 0); +# 13671 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetDriverEntryPoint(const char * symbol, void ** funcPtr, unsigned long long flags, cudaDriverEntryPointQueryResult * driverStatus = 0); +# 13679 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetExportTable(const void ** ppExportTable, const cudaUUID_t * pExportTableId); +# 13858 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetFuncBySymbol(cudaFunction_t * functionPtr, const void * symbolPtr); +# 13874 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +extern cudaError_t cudaGetKernel(cudaKernel_t * kernelPtr, const void * entryFuncAddr); +# 14044 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime_api.h" +} +# 117 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/channel_descriptor.h" +template< class T> inline cudaChannelFormatDesc cudaCreateChannelDesc() +# 118 +{ +# 119 +return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +# 120 +} +# 122 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf() +# 123 +{ +# 124 +int e = (((int)sizeof(unsigned short)) * 8); +# 126 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 127 +} +# 129 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf1() +# 130 +{ +# 131 +int e = (((int)sizeof(unsigned short)) * 8); +# 133 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 134 +} +# 136 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf2() +# 137 +{ +# 138 +int e = (((int)sizeof(unsigned short)) * 8); +# 140 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +# 141 +} +# 143 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf4() +# 144 +{ +# 145 +int e = (((int)sizeof(unsigned short)) * 8); +# 147 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +# 148 +} +# 150 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char> () +# 151 +{ +# 152 +int e = (((int)sizeof(char)) * 8); +# 157 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 159 +} +# 161 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< signed char> () +# 162 +{ +# 163 +int e = (((int)sizeof(signed char)) * 8); +# 165 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 166 +} +# 168 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< unsigned char> () +# 169 +{ +# 170 +int e = (((int)sizeof(unsigned char)) * 8); +# 172 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 173 +} +# 175 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char1> () +# 176 +{ +# 177 +int e = (((int)sizeof(signed char)) * 8); +# 179 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 180 +} +# 182 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uchar1> () +# 183 +{ +# 184 +int e = (((int)sizeof(unsigned char)) * 8); +# 186 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 187 +} +# 189 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char2> () +# 190 +{ +# 191 +int e = (((int)sizeof(signed char)) * 8); +# 193 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +# 194 +} +# 196 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uchar2> () +# 197 +{ +# 198 +int e = (((int)sizeof(unsigned char)) * 8); +# 200 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +# 201 +} +# 203 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char4> () +# 204 +{ +# 205 +int e = (((int)sizeof(signed char)) * 8); +# 207 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +# 208 +} +# 210 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uchar4> () +# 211 +{ +# 212 +int e = (((int)sizeof(unsigned char)) * 8); +# 214 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +# 215 +} +# 217 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short> () +# 218 +{ +# 219 +int e = (((int)sizeof(short)) * 8); +# 221 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 222 +} +# 224 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< unsigned short> () +# 225 +{ +# 226 +int e = (((int)sizeof(unsigned short)) * 8); +# 228 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 229 +} +# 231 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short1> () +# 232 +{ +# 233 +int e = (((int)sizeof(short)) * 8); +# 235 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 236 +} +# 238 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< ushort1> () +# 239 +{ +# 240 +int e = (((int)sizeof(unsigned short)) * 8); +# 242 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 243 +} +# 245 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short2> () +# 246 +{ +# 247 +int e = (((int)sizeof(short)) * 8); +# 249 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +# 250 +} +# 252 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< ushort2> () +# 253 +{ +# 254 +int e = (((int)sizeof(unsigned short)) * 8); +# 256 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +# 257 +} +# 259 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short4> () +# 260 +{ +# 261 +int e = (((int)sizeof(short)) * 8); +# 263 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +# 264 +} +# 266 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< ushort4> () +# 267 +{ +# 268 +int e = (((int)sizeof(unsigned short)) * 8); +# 270 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +# 271 +} +# 273 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int> () +# 274 +{ +# 275 +int e = (((int)sizeof(int)) * 8); +# 277 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 278 +} +# 280 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< unsigned> () +# 281 +{ +# 282 +int e = (((int)sizeof(unsigned)) * 8); +# 284 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 285 +} +# 287 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int1> () +# 288 +{ +# 289 +int e = (((int)sizeof(int)) * 8); +# 291 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 292 +} +# 294 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uint1> () +# 295 +{ +# 296 +int e = (((int)sizeof(unsigned)) * 8); +# 298 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 299 +} +# 301 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int2> () +# 302 +{ +# 303 +int e = (((int)sizeof(int)) * 8); +# 305 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +# 306 +} +# 308 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uint2> () +# 309 +{ +# 310 +int e = (((int)sizeof(unsigned)) * 8); +# 312 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +# 313 +} +# 315 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int4> () +# 316 +{ +# 317 +int e = (((int)sizeof(int)) * 8); +# 319 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +# 320 +} +# 322 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uint4> () +# 323 +{ +# 324 +int e = (((int)sizeof(unsigned)) * 8); +# 326 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +# 327 +} +# 389 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/channel_descriptor.h" +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float> () +# 390 +{ +# 391 +int e = (((int)sizeof(float)) * 8); +# 393 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 394 +} +# 396 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float1> () +# 397 +{ +# 398 +int e = (((int)sizeof(float)) * 8); +# 400 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 401 +} +# 403 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float2> () +# 404 +{ +# 405 +int e = (((int)sizeof(float)) * 8); +# 407 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +# 408 +} +# 410 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float4> () +# 411 +{ +# 412 +int e = (((int)sizeof(float)) * 8); +# 414 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +# 415 +} +# 417 +static inline cudaChannelFormatDesc cudaCreateChannelDescNV12() +# 418 +{ +# 419 +int e = (((int)sizeof(char)) * 8); +# 421 +return cudaCreateChannelDesc(e, e, e, 0, cudaChannelFormatKindNV12); +# 422 +} +# 424 +template< cudaChannelFormatKind > inline cudaChannelFormatDesc cudaCreateChannelDesc() +# 425 +{ +# 426 +return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +# 427 +} +# 430 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized8X1> () +# 431 +{ +# 432 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedNormalized8X1); +# 433 +} +# 435 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized8X2> () +# 436 +{ +# 437 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedNormalized8X2); +# 438 +} +# 440 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized8X4> () +# 441 +{ +# 442 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindSignedNormalized8X4); +# 443 +} +# 446 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized8X1> () +# 447 +{ +# 448 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized8X1); +# 449 +} +# 451 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized8X2> () +# 452 +{ +# 453 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedNormalized8X2); +# 454 +} +# 456 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized8X4> () +# 457 +{ +# 458 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedNormalized8X4); +# 459 +} +# 462 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized16X1> () +# 463 +{ +# 464 +return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindSignedNormalized16X1); +# 465 +} +# 467 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized16X2> () +# 468 +{ +# 469 +return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindSignedNormalized16X2); +# 470 +} +# 472 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized16X4> () +# 473 +{ +# 474 +return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindSignedNormalized16X4); +# 475 +} +# 478 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized16X1> () +# 479 +{ +# 480 +return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized16X1); +# 481 +} +# 483 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized16X2> () +# 484 +{ +# 485 +return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindUnsignedNormalized16X2); +# 486 +} +# 488 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized16X4> () +# 489 +{ +# 490 +return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindUnsignedNormalized16X4); +# 491 +} +# 494 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindNV12> () +# 495 +{ +# 496 +return cudaCreateChannelDesc(8, 8, 8, 0, cudaChannelFormatKindNV12); +# 497 +} +# 500 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed1> () +# 501 +{ +# 502 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1); +# 503 +} +# 506 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed1SRGB> () +# 507 +{ +# 508 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1SRGB); +# 509 +} +# 512 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed2> () +# 513 +{ +# 514 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2); +# 515 +} +# 518 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed2SRGB> () +# 519 +{ +# 520 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2SRGB); +# 521 +} +# 524 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed3> () +# 525 +{ +# 526 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3); +# 527 +} +# 530 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed3SRGB> () +# 531 +{ +# 532 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3SRGB); +# 533 +} +# 536 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed4> () +# 537 +{ +# 538 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed4); +# 539 +} +# 542 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedBlockCompressed4> () +# 543 +{ +# 544 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedBlockCompressed4); +# 545 +} +# 548 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed5> () +# 549 +{ +# 550 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed5); +# 551 +} +# 554 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedBlockCompressed5> () +# 555 +{ +# 556 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedBlockCompressed5); +# 557 +} +# 560 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed6H> () +# 561 +{ +# 562 +return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindUnsignedBlockCompressed6H); +# 563 +} +# 566 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedBlockCompressed6H> () +# 567 +{ +# 568 +return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindSignedBlockCompressed6H); +# 569 +} +# 572 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed7> () +# 573 +{ +# 574 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7); +# 575 +} +# 578 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed7SRGB> () +# 579 +{ +# 580 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7SRGB); +# 581 +} +# 79 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 int strverscmp(const char * __s1, const char * __s2) noexcept(true) +# 507 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 510 +extern char *strfry(char * __string) noexcept(true) __attribute((__nonnull__(1))); +# 513 +extern void *memfrob(void * __s, size_t __n) noexcept(true) __attribute((__nonnull__(1))) +# 514 + __attribute((__access__(__read_write__ , 1 , 2 ))); +# 522 +extern "C++" char *basename(char * __filename) noexcept(true) __asm__("basename") +# 523 + __attribute((__nonnull__(1))); +# 524 +extern "C++" const char *basename(const char * __filename) noexcept(true) __asm__("basename") +# 525 + __attribute((__nonnull__(1))); +# 539 "/usr/include/string.h" 3 +} +# 26 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 +struct timex { +# 58 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/bits/time.h" 3 +extern "C" { +# 78 +extern int clock_adjtime(__clockid_t __clock_id, timex * __utx) noexcept(true); +# 90 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 +} +# 7 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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) noexcept(true) +# 80 + __attribute((const)); +# 83 +extern time_t mktime(tm * __tp) noexcept(true); +# 100 "/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); +# 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; +# 249 "/usr/include/time.h" 3 +extern time_t timegm(tm * __tp) noexcept(true); +# 251 +extern time_t timelocal(tm * __tp) noexcept(true); +# 262 "/usr/include/time.h" 3 +extern int dysize(int __year) noexcept(true) __attribute((const)); +# 272 "/usr/include/time.h" 3 +extern int nanosleep(const timespec * __requested_time, timespec * __remaining); +# 276 +extern int clock_getres(clockid_t __clock_id, timespec * __res) noexcept(true); +# 279 +extern int clock_gettime(clockid_t __clock_id, timespec * __tp) noexcept(true); +# 282 +extern int clock_settime(clockid_t __clock_id, const timespec * __tp) noexcept(true); +# 311 "/usr/include/time.h" 3 +extern int clock_nanosleep(clockid_t __clock_id, int __flags, const timespec * __req, timespec * __rem); +# 326 "/usr/include/time.h" 3 +extern int clock_getcpuclockid(pid_t __pid, clockid_t * __clock_id) noexcept(true); +# 331 +extern int timer_create(clockid_t __clock_id, sigevent *__restrict__ __evp, timer_t *__restrict__ __timerid) noexcept(true); +# 336 +extern int timer_delete(timer_t __timerid) noexcept(true); +# 340 +extern int timer_settime(timer_t __timerid, int __flags, const itimerspec *__restrict__ __value, itimerspec *__restrict__ __ovalue) noexcept(true); +# 345 +extern int timer_gettime(timer_t __timerid, itimerspec * __value) noexcept(true); +# 364 "/usr/include/time.h" 3 +extern int timer_getoverrun(timer_t __timerid) noexcept(true); +# 371 +extern int timespec_get(timespec * __ts, int __base) noexcept(true) +# 372 + __attribute((__nonnull__(1))); +# 387 "/usr/include/time.h" 3 +extern int timespec_getres(timespec * __ts, int __base) noexcept(true); +# 413 "/usr/include/time.h" 3 +extern int getdate_err; +# 422 "/usr/include/time.h" 3 +extern tm *getdate(const char * __string); +# 436 "/usr/include/time.h" 3 +extern int getdate_r(const char *__restrict__ __string, tm *__restrict__ __resbufp); +# 440 +} +# 88 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +extern "C" { +# 91 +extern clock_t clock() noexcept(true); +# 96 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +extern void *memset(void *, int, size_t) noexcept(true); +# 97 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +extern void *memcpy(void *, const void *, size_t) noexcept(true); +# 99 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/common_functions.h" +} +# 124 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern "C" { +# 222 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int abs(int a) noexcept(true); +# 230 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern long labs(long a) noexcept(true); +# 238 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern long long llabs(long long a) noexcept(true); +# 288 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double fabs(double x) noexcept(true); +# 331 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float fabsf(float x) noexcept(true); +# 341 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern inline int min(const int a, const int b); +# 348 +extern inline unsigned umin(const unsigned a, const unsigned b); +# 355 +extern inline long long llmin(const long long a, const long long b); +# 362 +extern inline unsigned long long ullmin(const unsigned long long a, const unsigned long long b); +# 383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float fminf(float x, float y) noexcept(true); +# 403 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double fmin(double x, double y) noexcept(true); +# 416 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern inline int max(const int a, const int b); +# 424 +extern inline unsigned umax(const unsigned a, const unsigned b); +# 431 +extern inline long long llmax(const long long a, const long long b); +# 438 +extern inline unsigned long long ullmax(const unsigned long long a, const unsigned long long b); +# 459 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float fmaxf(float x, float y) noexcept(true); +# 479 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double fmax(double, double) noexcept(true); +# 523 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double sin(double x) noexcept(true); +# 556 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double cos(double x) noexcept(true); +# 575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern void sincos(double x, double * sptr, double * cptr) noexcept(true); +# 591 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern void sincosf(float x, float * sptr, float * cptr) noexcept(true); +# 636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double tan(double x) noexcept(true); +# 705 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double sqrt(double x) noexcept(true); +# 777 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double rsqrt(double x); +# 847 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float rsqrtf(float x); +# 903 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double log2(double x) noexcept(true); +# 968 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double exp2(double x) noexcept(true); +# 1033 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float exp2f(float x) noexcept(true); +# 1100 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double exp10(double x) noexcept(true); +# 1163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float exp10f(float x) noexcept(true); +# 1256 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double expm1(double x) noexcept(true); +# 1348 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float expm1f(float x) noexcept(true); +# 1404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float log2f(float x) noexcept(true); +# 1458 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double log10(double x) noexcept(true); +# 1528 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double log(double x) noexcept(true); +# 1624 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double log1p(double x) noexcept(true); +# 1723 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float log1pf(float x) noexcept(true); +# 1787 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double floor(double x) noexcept(true); +# 1866 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double exp(double x) noexcept(true); +# 1907 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double cosh(double x) noexcept(true); +# 1957 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double sinh(double x) noexcept(true); +# 2007 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double tanh(double x) noexcept(true); +# 2062 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double acosh(double x) noexcept(true); +# 2120 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float acoshf(float x) noexcept(true); +# 2173 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double asinh(double x) noexcept(true); +# 2226 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float asinhf(float x) noexcept(true); +# 2280 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double atanh(double x) noexcept(true); +# 2334 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float atanhf(float x) noexcept(true); +# 2383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double ldexp(double x, int exp) noexcept(true); +# 2429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float ldexpf(float x, int exp) noexcept(true); +# 2481 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double logb(double x) noexcept(true); +# 2536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float logbf(float x) noexcept(true); +# 2576 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int ilogb(double x) noexcept(true); +# 2616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int ilogbf(float x) noexcept(true); +# 2692 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double scalbn(double x, int n) noexcept(true); +# 2768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float scalbnf(float x, int n) noexcept(true); +# 2844 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double scalbln(double x, long n) noexcept(true); +# 2920 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float scalblnf(float x, long n) noexcept(true); +# 2997 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double frexp(double x, int * nptr) noexcept(true); +# 3071 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float frexpf(float x, int * nptr) noexcept(true); +# 3123 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double round(double x) noexcept(true); +# 3178 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float roundf(float x) noexcept(true); +# 3196 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern long lround(double x) noexcept(true); +# 3214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern long lroundf(float x) noexcept(true); +# 3232 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern long long llround(double x) noexcept(true); +# 3250 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern long long llroundf(float x) noexcept(true); +# 3378 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float rintf(float x) noexcept(true); +# 3395 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern long lrint(double x) noexcept(true); +# 3412 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern long lrintf(float x) noexcept(true); +# 3429 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern long long llrint(double x) noexcept(true); +# 3446 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern long long llrintf(float x) noexcept(true); +# 3499 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double nearbyint(double x) noexcept(true); +# 3552 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float nearbyintf(float x) noexcept(true); +# 3614 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double ceil(double x) noexcept(true); +# 3664 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double trunc(double x) noexcept(true); +# 3717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float truncf(float x) noexcept(true); +# 3743 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double fdim(double x, double y) noexcept(true); +# 3769 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float fdimf(float x, float y) noexcept(true); +# 4069 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double atan2(double y, double x) noexcept(true); +# 4140 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double atan(double x) noexcept(true); +# 4163 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double acos(double x) noexcept(true); +# 4214 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double asin(double x) noexcept(true); +# 4282 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double hypot(double x, double y) noexcept(true); +# 4405 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float hypotf(float x, float y) noexcept(true); +# 5191 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double cbrt(double x) noexcept(true); +# 5277 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float cbrtf(float x) noexcept(true); +# 5332 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double rcbrt(double x); +# 5382 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float rcbrtf(float x); +# 5442 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double sinpi(double x); +# 5502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float sinpif(float x); +# 5554 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double cospi(double x); +# 5606 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float cospif(float x); +# 5636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern void sincospi(double x, double * sptr, double * cptr); +# 5666 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern void sincospif(float x, float * sptr, float * cptr); +# 5999 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double pow(double x, double y) noexcept(true); +# 6055 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double modf(double x, double * iptr) noexcept(true); +# 6114 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double fmod(double x, double y) noexcept(true); +# 6210 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double remainder(double x, double y) noexcept(true); +# 6309 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float remainderf(float x, float y) noexcept(true); +# 6381 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double remquo(double x, double y, int * quo) noexcept(true); +# 6453 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float remquof(float x, float y, int * quo) noexcept(true); +# 6494 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double j0(double x) noexcept(true); +# 6536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float j0f(float x) noexcept(true); +# 6605 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double j1(double x) noexcept(true); +# 6674 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float j1f(float x) noexcept(true); +# 6717 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double jn(int n, double x) noexcept(true); +# 6760 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float jnf(int n, float x) noexcept(true); +# 6821 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double y0(double x) noexcept(true); +# 6882 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float y0f(float x) noexcept(true); +# 6943 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double y1(double x) noexcept(true); +# 7004 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float y1f(float x) noexcept(true); +# 7067 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double yn(int n, double x) noexcept(true); +# 7130 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float ynf(int n, float x) noexcept(true); +# 7319 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double erf(double x) noexcept(true); +# 7401 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float erff(float x) noexcept(true); +# 7473 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double erfinv(double x); +# 7538 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float erfinvf(float x); +# 7577 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double erfc(double x) noexcept(true); +# 7615 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float erfcf(float x) noexcept(true); +# 7732 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double lgamma(double x) noexcept(true); +# 7794 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double erfcinv(double x); +# 7849 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float erfcinvf(float x); +# 7917 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double normcdfinv(double x); +# 7985 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float normcdfinvf(float x); +# 8028 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double normcdf(double x); +# 8071 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float normcdff(float x); +# 8135 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double erfcx(double x); +# 8199 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float erfcxf(float x); +# 8318 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float lgammaf(float x) noexcept(true); +# 8416 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double tgamma(double x) noexcept(true); +# 8514 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float tgammaf(float x) noexcept(true); +# 8527 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double copysign(double x, double y) noexcept(true); +# 8540 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float copysignf(float x, float y) noexcept(true); +# 8559 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double nextafter(double x, double y) noexcept(true); +# 8578 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float nextafterf(float x, float y) noexcept(true); +# 8594 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double nan(const char * tagp) noexcept(true); +# 8610 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float nanf(const char * tagp) noexcept(true); +# 8617 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int __isinff(float) noexcept(true); +# 8618 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int __isnanf(float) noexcept(true); +# 8628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int __finite(double) noexcept(true); +# 8629 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int __finitef(float) noexcept(true); +# 8630 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int __signbit(double) noexcept(true); +# 8631 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int __isnan(double) noexcept(true); +# 8632 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int __isinf(double) noexcept(true); +# 8635 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int __signbitf(float) noexcept(true); +# 8794 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern double fma(double x, double y, double z) noexcept(true); +# 8952 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float fmaf(float x, float y, float z) noexcept(true); +# 8963 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int __signbitl(long double) noexcept(true); +# 8969 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int __finitel(long double) noexcept(true); +# 8970 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int __isinfl(long double) noexcept(true); +# 8971 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern int __isnanl(long double) noexcept(true); +# 9021 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float acosf(float x) noexcept(true); +# 9080 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float asinf(float x) noexcept(true); +# 9160 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float atanf(float x) noexcept(true); +# 9457 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float atan2f(float y, float x) noexcept(true); +# 9491 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float cosf(float x) noexcept(true); +# 9533 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float sinf(float x) noexcept(true); +# 9575 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float tanf(float x) noexcept(true); +# 9616 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float coshf(float x) noexcept(true); +# 9666 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float sinhf(float x) noexcept(true); +# 9716 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float tanhf(float x) noexcept(true); +# 9768 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float logf(float x) noexcept(true); +# 9848 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float expf(float x) noexcept(true); +# 9900 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float log10f(float x) noexcept(true); +# 9955 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float modff(float x, float * iptr) noexcept(true); +# 10285 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float powf(float x, float y) noexcept(true); +# 10354 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float sqrtf(float x) noexcept(true); +# 10413 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float ceilf(float x) noexcept(true); +# 10474 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float floorf(float x) noexcept(true); +# 10532 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern float fmodf(float x, float y) noexcept(true); +# 10547 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +} +# 67 "/usr/include/c++/11/bits/cpp_type_traits.h" 3 +extern "C++" { +# 69 +namespace std __attribute((__visibility__("default"))) { +# 73 +struct __true_type { }; +# 74 +struct __false_type { }; +# 76 +template< bool > +# 77 +struct __truth_type { +# 78 +typedef __false_type __type; }; +# 81 +template<> struct __truth_type< true> { +# 82 +typedef __true_type __type; }; +# 86 +template< class _Sp, class _Tp> +# 87 +struct __traitor { +# 89 +enum { __value = ((bool)_Sp::__value) || ((bool)_Tp::__value)}; +# 90 +typedef typename __truth_type< __value> ::__type __type; +# 91 +}; +# 94 +template< class , class > +# 95 +struct __are_same { +# 97 +enum { __value}; +# 98 +typedef __false_type __type; +# 99 +}; +# 101 +template< class _Tp> +# 102 +struct __are_same< _Tp, _Tp> { +# 104 +enum { __value = 1}; +# 105 +typedef __true_type __type; +# 106 +}; +# 109 +template< class _Tp> +# 110 +struct __is_void { +# 112 +enum { __value}; +# 113 +typedef __false_type __type; +# 114 +}; +# 117 +template<> struct __is_void< void> { +# 119 +enum { __value = 1}; +# 120 +typedef __true_type __type; +# 121 +}; +# 126 +template< class _Tp> +# 127 +struct __is_integer { +# 129 +enum { __value}; +# 130 +typedef __false_type __type; +# 131 +}; +# 138 +template<> struct __is_integer< bool> { +# 140 +enum { __value = 1}; +# 141 +typedef __true_type __type; +# 142 +}; +# 145 +template<> struct __is_integer< char> { +# 147 +enum { __value = 1}; +# 148 +typedef __true_type __type; +# 149 +}; +# 152 +template<> struct __is_integer< signed char> { +# 154 +enum { __value = 1}; +# 155 +typedef __true_type __type; +# 156 +}; +# 159 +template<> struct __is_integer< unsigned char> { +# 161 +enum { __value = 1}; +# 162 +typedef __true_type __type; +# 163 +}; +# 167 +template<> struct __is_integer< wchar_t> { +# 169 +enum { __value = 1}; +# 170 +typedef __true_type __type; +# 171 +}; +# 185 "/usr/include/c++/11/bits/cpp_type_traits.h" 3 +template<> struct __is_integer< char16_t> { +# 187 +enum { __value = 1}; +# 188 +typedef __true_type __type; +# 189 +}; +# 192 +template<> struct __is_integer< char32_t> { +# 194 +enum { __value = 1}; +# 195 +typedef __true_type __type; +# 196 +}; +# 200 +template<> struct __is_integer< short> { +# 202 +enum { __value = 1}; +# 203 +typedef __true_type __type; +# 204 +}; +# 207 +template<> struct __is_integer< unsigned short> { +# 209 +enum { __value = 1}; +# 210 +typedef __true_type __type; +# 211 +}; +# 214 +template<> struct __is_integer< int> { +# 216 +enum { __value = 1}; +# 217 +typedef __true_type __type; +# 218 +}; +# 221 +template<> struct __is_integer< unsigned> { +# 223 +enum { __value = 1}; +# 224 +typedef __true_type __type; +# 225 +}; +# 228 +template<> struct __is_integer< long> { +# 230 +enum { __value = 1}; +# 231 +typedef __true_type __type; +# 232 +}; +# 235 +template<> struct __is_integer< unsigned long> { +# 237 +enum { __value = 1}; +# 238 +typedef __true_type __type; +# 239 +}; +# 242 +template<> struct __is_integer< long long> { +# 244 +enum { __value = 1}; +# 245 +typedef __true_type __type; +# 246 +}; +# 249 +template<> struct __is_integer< unsigned long long> { +# 251 +enum { __value = 1}; +# 252 +typedef __true_type __type; +# 253 +}; +# 270 "/usr/include/c++/11/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; }; +# 287 "/usr/include/c++/11/bits/cpp_type_traits.h" 3 +template< class _Tp> +# 288 +struct __is_floating { +# 290 +enum { __value}; +# 291 +typedef __false_type __type; +# 292 +}; +# 296 +template<> struct __is_floating< float> { +# 298 +enum { __value = 1}; +# 299 +typedef __true_type __type; +# 300 +}; +# 303 +template<> struct __is_floating< double> { +# 305 +enum { __value = 1}; +# 306 +typedef __true_type __type; +# 307 +}; +# 310 +template<> struct __is_floating< long double> { +# 312 +enum { __value = 1}; +# 313 +typedef __true_type __type; +# 314 +}; +# 319 +template< class _Tp> +# 320 +struct __is_pointer { +# 322 +enum { __value}; +# 323 +typedef __false_type __type; +# 324 +}; +# 326 +template< class _Tp> +# 327 +struct __is_pointer< _Tp *> { +# 329 +enum { __value = 1}; +# 330 +typedef __true_type __type; +# 331 +}; +# 336 +template< class _Tp> +# 337 +struct __is_arithmetic : public __traitor< __is_integer< _Tp> , __is_floating< _Tp> > { +# 339 +}; +# 344 +template< class _Tp> +# 345 +struct __is_scalar : public __traitor< __is_arithmetic< _Tp> , __is_pointer< _Tp> > { +# 347 +}; +# 352 +template< class _Tp> +# 353 +struct __is_char { +# 355 +enum { __value}; +# 356 +typedef __false_type __type; +# 357 +}; +# 360 +template<> struct __is_char< char> { +# 362 +enum { __value = 1}; +# 363 +typedef __true_type __type; +# 364 +}; +# 368 +template<> struct __is_char< wchar_t> { +# 370 +enum { __value = 1}; +# 371 +typedef __true_type __type; +# 372 +}; +# 375 +template< class _Tp> +# 376 +struct __is_byte { +# 378 +enum { __value}; +# 379 +typedef __false_type __type; +# 380 +}; +# 383 +template<> struct __is_byte< char> { +# 385 +enum { __value = 1}; +# 386 +typedef __true_type __type; +# 387 +}; +# 390 +template<> struct __is_byte< signed char> { +# 392 +enum { __value = 1}; +# 393 +typedef __true_type __type; +# 394 +}; +# 397 +template<> struct __is_byte< unsigned char> { +# 399 +enum { __value = 1}; +# 400 +typedef __true_type __type; +# 401 +}; +# 404 +enum class byte: unsigned char; +# 407 +template<> struct __is_byte< byte> { +# 409 +enum { __value = 1}; +# 410 +typedef __true_type __type; +# 411 +}; +# 423 "/usr/include/c++/11/bits/cpp_type_traits.h" 3 +template< class > struct iterator_traits; +# 426 +template< class _Tp> +# 427 +struct __is_nonvolatile_trivially_copyable { +# 429 +enum { __value = __is_trivially_copyable(_Tp)}; +# 430 +}; +# 435 +template< class _Tp> +# 436 +struct __is_nonvolatile_trivially_copyable< volatile _Tp> { +# 438 +enum { __value}; +# 439 +}; +# 442 +template< class _OutputIter, class _InputIter> +# 443 +struct __memcpyable { +# 445 +enum { __value}; +# 446 +}; +# 448 +template< class _Tp> +# 449 +struct __memcpyable< _Tp *, _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 451 +}; +# 453 +template< class _Tp> +# 454 +struct __memcpyable< _Tp *, const _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 456 +}; +# 463 +template< class _Iter1, class _Iter2> +# 464 +struct __memcmpable { +# 466 +enum { __value}; +# 467 +}; +# 470 +template< class _Tp> +# 471 +struct __memcmpable< _Tp *, _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 473 +}; +# 475 +template< class _Tp> +# 476 +struct __memcmpable< const _Tp *, _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 478 +}; +# 480 +template< class _Tp> +# 481 +struct __memcmpable< _Tp *, const _Tp *> : public __is_nonvolatile_trivially_copyable< _Tp> { +# 483 +}; +# 491 +template< class _Tp, bool _TreatAsBytes = __is_byte< _Tp> ::__value> +# 498 +struct __is_memcmp_ordered { +# 500 +static const bool __value = (((_Tp)(-1)) > ((_Tp)1)); +# 501 +}; +# 503 +template< class _Tp> +# 504 +struct __is_memcmp_ordered< _Tp, false> { +# 506 +static const bool __value = false; +# 507 +}; +# 510 +template< class _Tp, class _Up, bool = sizeof(_Tp) == sizeof(_Up)> +# 511 +struct __is_memcmp_ordered_with { +# 513 +static const bool __value = (__is_memcmp_ordered< _Tp> ::__value && __is_memcmp_ordered< _Up> ::__value); +# 515 +}; +# 517 +template< class _Tp, class _Up> +# 518 +struct __is_memcmp_ordered_with< _Tp, _Up, false> { +# 520 +static const bool __value = false; +# 521 +}; +# 533 "/usr/include/c++/11/bits/cpp_type_traits.h" 3 +template<> struct __is_memcmp_ordered_with< byte, byte, true> { +# 534 +static constexpr inline bool __value = true; }; +# 536 +template< class _Tp, bool _SameSize> +# 537 +struct __is_memcmp_ordered_with< _Tp, byte, _SameSize> { +# 538 +static constexpr inline bool __value = false; }; +# 540 +template< class _Up, bool _SameSize> +# 541 +struct __is_memcmp_ordered_with< byte, _Up, _SameSize> { +# 542 +static constexpr inline bool __value = false; }; +# 548 +template< class _Tp> +# 549 +struct __is_move_iterator { +# 551 +enum { __value}; +# 552 +typedef __false_type __type; +# 553 +}; +# 557 +template< class _Iterator> inline _Iterator +# 560 +__miter_base(_Iterator __it) +# 561 +{ return __it; } +# 564 +} +# 565 +} +# 37 "/usr/include/c++/11/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> inline bool +# 152 +__is_null_pointer(_Type *__ptr) +# 153 +{ return __ptr == 0; } +# 155 +template< class _Type> inline bool +# 157 +__is_null_pointer(_Type) +# 158 +{ return false; } +# 162 +inline bool __is_null_pointer(std::nullptr_t) +# 163 +{ return true; } +# 168 +template< class _Tp, bool = std::template __is_integer< _Tp> ::__value> +# 169 +struct __promote { +# 170 +typedef double __type; }; +# 175 +template< class _Tp> +# 176 +struct __promote< _Tp, false> { +# 177 +}; +# 180 +template<> struct __promote< long double> { +# 181 +typedef long double __type; }; +# 184 +template<> struct __promote< double> { +# 185 +typedef double __type; }; +# 188 +template<> struct __promote< float> { +# 189 +typedef float __type; }; +# 192 +template< class ..._Tp> using __promoted_t = __decltype(((((typename __promote< _Tp> ::__type)0) + ... ))); +# 196 +template< class _Tp, class _Up, class +# 197 +_Tp2 = typename __promote< _Tp> ::__type, class +# 198 +_Up2 = typename __promote< _Up> ::__type> +# 199 +struct __promote_2 { +# 201 +typedef __typeof__(_Tp2() + _Up2()) __type; +# 202 +}; +# 204 +template< class _Tp, class _Up, class _Vp, class +# 205 +_Tp2 = typename __promote< _Tp> ::__type, class +# 206 +_Up2 = typename __promote< _Up> ::__type, class +# 207 +_Vp2 = typename __promote< _Vp> ::__type> +# 208 +struct __promote_3 { +# 210 +typedef __typeof__((_Tp2() + _Up2()) + _Vp2()) __type; +# 211 +}; +# 213 +template< class _Tp, class _Up, class _Vp, class _Wp, class +# 214 +_Tp2 = typename __promote< _Tp> ::__type, class +# 215 +_Up2 = typename __promote< _Up> ::__type, class +# 216 +_Vp2 = typename __promote< _Vp> ::__type, class +# 217 +_Wp2 = typename __promote< _Wp> ::__type> +# 218 +struct __promote_4 { +# 220 +typedef __typeof__(((_Tp2() + _Up2()) + _Vp2()) + _Wp2()) __type; +# 221 +}; +# 224 +} +# 225 +} +# 34 "/usr/include/math.h" 3 +extern "C" { +# 163 "/usr/include/math.h" 3 +typedef float float_t; +# 164 +typedef double double_t; +# 252 "/usr/include/math.h" 3 +enum { +# 253 +FP_INT_UPWARD, +# 256 +FP_INT_DOWNWARD, +# 259 +FP_INT_TOWARDZERO, +# 262 +FP_INT_TONEARESTFROMZERO, +# 265 +FP_INT_TONEAREST +# 268 +}; +# 20 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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); +# 71 +extern double cosh(double __x) noexcept(true); extern double __cosh(double __x) noexcept(true); +# 73 +extern double sinh(double __x) noexcept(true); extern double __sinh(double __x) noexcept(true); +# 75 +extern double tanh(double __x) noexcept(true); extern double __tanh(double __x) noexcept(true); +# 79 +extern void sincos(double __x, double * __sinx, double * __cosx) noexcept(true); extern void __sincos(double __x, double * __sinx, double * __cosx) noexcept(true); +# 85 +extern double acosh(double __x) noexcept(true); extern double __acosh(double __x) noexcept(true); +# 87 +extern double asinh(double __x) noexcept(true); extern double __asinh(double __x) noexcept(true); +# 89 +extern double atanh(double __x) noexcept(true); extern double __atanh(double __x) noexcept(true); +# 95 +extern double exp(double __x) noexcept(true); extern double __exp(double __x) noexcept(true); +# 98 +extern double frexp(double __x, int * __exponent) noexcept(true); extern double __frexp(double __x, int * __exponent) noexcept(true); +# 101 +extern double ldexp(double __x, int __exponent) noexcept(true); extern double __ldexp(double __x, int __exponent) noexcept(true); +# 104 +extern double log(double __x) noexcept(true); extern double __log(double __x) noexcept(true); +# 107 +extern double log10(double __x) noexcept(true); extern double __log10(double __x) noexcept(true); +# 110 +extern double modf(double __x, double * __iptr) noexcept(true); extern double __modf(double __x, double * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 114 +extern double exp10(double __x) noexcept(true); extern double __exp10(double __x) noexcept(true); +# 119 +extern double expm1(double __x) noexcept(true); extern double __expm1(double __x) noexcept(true); +# 122 +extern double log1p(double __x) noexcept(true); extern double __log1p(double __x) noexcept(true); +# 125 +extern double logb(double __x) noexcept(true); extern double __logb(double __x) noexcept(true); +# 130 +extern double exp2(double __x) noexcept(true); extern double __exp2(double __x) noexcept(true); +# 133 +extern double log2(double __x) noexcept(true); extern double __log2(double __x) noexcept(true); +# 140 +extern double pow(double __x, double __y) noexcept(true); extern double __pow(double __x, double __y) noexcept(true); +# 143 +extern double sqrt(double __x) noexcept(true); extern double __sqrt(double __x) noexcept(true); +# 147 +extern double hypot(double __x, double __y) noexcept(true); extern double __hypot(double __x, double __y) noexcept(true); +# 152 +extern double cbrt(double __x) noexcept(true); extern double __cbrt(double __x) noexcept(true); +# 159 +extern double ceil(double __x) noexcept(true) __attribute((const)); extern double __ceil(double __x) noexcept(true) __attribute((const)); +# 162 +extern double fabs(double __x) noexcept(true) __attribute((const)); extern double __fabs(double __x) noexcept(true) __attribute((const)); +# 165 +extern double floor(double __x) noexcept(true) __attribute((const)); extern double __floor(double __x) noexcept(true) __attribute((const)); +# 168 +extern double fmod(double __x, double __y) noexcept(true); extern double __fmod(double __x, double __y) noexcept(true); +# 183 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern int finite(double __value) noexcept(true) +# 184 + __attribute((const)); +# 187 +extern double drem(double __x, double __y) noexcept(true); extern double __drem(double __x, double __y) noexcept(true); +# 191 +extern double significand(double __x) noexcept(true); extern double __significand(double __x) noexcept(true); +# 198 +extern double copysign(double __x, double __y) noexcept(true) __attribute((const)); extern double __copysign(double __x, double __y) noexcept(true) __attribute((const)); +# 203 +extern double nan(const char * __tagb) noexcept(true); extern double __nan(const char * __tagb) noexcept(true); +# 220 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern double j0(double) noexcept(true); extern double __j0(double) noexcept(true); +# 221 +extern double j1(double) noexcept(true); extern double __j1(double) noexcept(true); +# 222 +extern double jn(int, double) noexcept(true); extern double __jn(int, double) noexcept(true); +# 223 +extern double y0(double) noexcept(true); extern double __y0(double) noexcept(true); +# 224 +extern double y1(double) noexcept(true); extern double __y1(double) noexcept(true); +# 225 +extern double yn(int, double) noexcept(true); extern double __yn(int, double) noexcept(true); +# 231 +extern double erf(double) noexcept(true); extern double __erf(double) noexcept(true); +# 232 +extern double erfc(double) noexcept(true); extern double __erfc(double) noexcept(true); +# 233 +extern double lgamma(double) noexcept(true); extern double __lgamma(double) noexcept(true); +# 238 +extern double tgamma(double) noexcept(true); extern double __tgamma(double) noexcept(true); +# 244 +extern double gamma(double) noexcept(true); extern double __gamma(double) noexcept(true); +# 252 +extern double lgamma_r(double, int * __signgamp) noexcept(true); extern double __lgamma_r(double, int * __signgamp) noexcept(true); +# 259 +extern double rint(double __x) noexcept(true); extern double __rint(double __x) noexcept(true); +# 262 +extern double nextafter(double __x, double __y) noexcept(true); extern double __nextafter(double __x, double __y) noexcept(true); +# 264 +extern double nexttoward(double __x, long double __y) noexcept(true); extern double __nexttoward(double __x, long double __y) noexcept(true); +# 269 +extern double nextdown(double __x) noexcept(true); extern double __nextdown(double __x) noexcept(true); +# 271 +extern double nextup(double __x) noexcept(true); extern double __nextup(double __x) noexcept(true); +# 275 +extern double remainder(double __x, double __y) noexcept(true); extern double __remainder(double __x, double __y) noexcept(true); +# 279 +extern double scalbn(double __x, int __n) noexcept(true); extern double __scalbn(double __x, int __n) noexcept(true); +# 283 +extern int ilogb(double __x) noexcept(true); extern int __ilogb(double __x) noexcept(true); +# 288 +extern long llogb(double __x) noexcept(true); extern long __llogb(double __x) noexcept(true); +# 293 +extern double scalbln(double __x, long __n) noexcept(true); extern double __scalbln(double __x, long __n) noexcept(true); +# 297 +extern double nearbyint(double __x) noexcept(true); extern double __nearbyint(double __x) noexcept(true); +# 301 +extern double round(double __x) noexcept(true) __attribute((const)); extern double __round(double __x) noexcept(true) __attribute((const)); +# 305 +extern double trunc(double __x) noexcept(true) __attribute((const)); extern double __trunc(double __x) noexcept(true) __attribute((const)); +# 310 +extern double remquo(double __x, double __y, int * __quo) noexcept(true); extern double __remquo(double __x, double __y, int * __quo) noexcept(true); +# 317 +extern long lrint(double __x) noexcept(true); extern long __lrint(double __x) noexcept(true); +# 319 +__extension__ extern long long llrint(double __x) noexcept(true); extern long long __llrint(double __x) noexcept(true); +# 323 +extern long lround(double __x) noexcept(true); extern long __lround(double __x) noexcept(true); +# 325 +__extension__ extern long long llround(double __x) noexcept(true); extern long long __llround(double __x) noexcept(true); +# 329 +extern double fdim(double __x, double __y) noexcept(true); extern double __fdim(double __x, double __y) noexcept(true); +# 333 +extern double fmax(double __x, double __y) noexcept(true) __attribute((const)); extern double __fmax(double __x, double __y) noexcept(true) __attribute((const)); +# 336 +extern double fmin(double __x, double __y) noexcept(true) __attribute((const)); extern double __fmin(double __x, double __y) noexcept(true) __attribute((const)); +# 340 +extern double fma(double __x, double __y, double __z) noexcept(true); extern double __fma(double __x, double __y, double __z) noexcept(true); +# 345 +extern double roundeven(double __x) noexcept(true) __attribute((const)); extern double __roundeven(double __x) noexcept(true) __attribute((const)); +# 349 +extern __intmax_t fromfp(double __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfp(double __x, int __round, unsigned __width) noexcept(true); +# 354 +extern __uintmax_t ufromfp(double __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfp(double __x, int __round, unsigned __width) noexcept(true); +# 360 +extern __intmax_t fromfpx(double __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpx(double __x, int __round, unsigned __width) noexcept(true); +# 366 +extern __uintmax_t ufromfpx(double __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpx(double __x, int __round, unsigned __width) noexcept(true); +# 370 +extern int canonicalize(double * __cx, const double * __x) noexcept(true); +# 377 +extern double fmaxmag(double __x, double __y) noexcept(true) __attribute((const)); extern double __fmaxmag(double __x, double __y) noexcept(true) __attribute((const)); +# 380 +extern double fminmag(double __x, double __y) noexcept(true) __attribute((const)); extern double __fminmag(double __x, double __y) noexcept(true) __attribute((const)); +# 385 +extern double fmaximum(double __x, double __y) noexcept(true) __attribute((const)); extern double __fmaximum(double __x, double __y) noexcept(true) __attribute((const)); +# 388 +extern double fminimum(double __x, double __y) noexcept(true) __attribute((const)); extern double __fminimum(double __x, double __y) noexcept(true) __attribute((const)); +# 391 +extern double fmaximum_num(double __x, double __y) noexcept(true) __attribute((const)); extern double __fmaximum_num(double __x, double __y) noexcept(true) __attribute((const)); +# 394 +extern double fminimum_num(double __x, double __y) noexcept(true) __attribute((const)); extern double __fminimum_num(double __x, double __y) noexcept(true) __attribute((const)); +# 397 +extern double fmaximum_mag(double __x, double __y) noexcept(true) __attribute((const)); extern double __fmaximum_mag(double __x, double __y) noexcept(true) __attribute((const)); +# 400 +extern double fminimum_mag(double __x, double __y) noexcept(true) __attribute((const)); extern double __fminimum_mag(double __x, double __y) noexcept(true) __attribute((const)); +# 403 +extern double fmaximum_mag_num(double __x, double __y) noexcept(true) __attribute((const)); extern double __fmaximum_mag_num(double __x, double __y) noexcept(true) __attribute((const)); +# 406 +extern double fminimum_mag_num(double __x, double __y) noexcept(true) __attribute((const)); extern double __fminimum_mag_num(double __x, double __y) noexcept(true) __attribute((const)); +# 411 +extern int totalorder(const double * __x, const double * __y) noexcept(true) +# 413 + __attribute((__pure__)); +# 416 +extern int totalordermag(const double * __x, const double * __y) noexcept(true) +# 418 + __attribute((__pure__)); +# 421 +extern double getpayload(const double * __x) noexcept(true); extern double __getpayload(const double * __x) noexcept(true); +# 424 +extern int setpayload(double * __x, double __payload) noexcept(true); +# 427 +extern int setpayloadsig(double * __x, double __payload) noexcept(true); +# 435 +extern double scalb(double __x, double __n) noexcept(true); extern double __scalb(double __x, double __n) noexcept(true); +# 20 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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); +# 71 +extern float coshf(float __x) noexcept(true); extern float __coshf(float __x) noexcept(true); +# 73 +extern float sinhf(float __x) noexcept(true); extern float __sinhf(float __x) noexcept(true); +# 75 +extern float tanhf(float __x) noexcept(true); extern float __tanhf(float __x) noexcept(true); +# 79 +extern void sincosf(float __x, float * __sinx, float * __cosx) noexcept(true); +# 85 +extern float acoshf(float __x) noexcept(true); extern float __acoshf(float __x) noexcept(true); +# 87 +extern float asinhf(float __x) noexcept(true); extern float __asinhf(float __x) noexcept(true); +# 89 +extern float atanhf(float __x) noexcept(true); extern float __atanhf(float __x) noexcept(true); +# 95 +extern float expf(float __x) noexcept(true); +# 98 +extern float frexpf(float __x, int * __exponent) noexcept(true); extern float __frexpf(float __x, int * __exponent) noexcept(true); +# 101 +extern float ldexpf(float __x, int __exponent) noexcept(true); extern float __ldexpf(float __x, int __exponent) noexcept(true); +# 104 +extern float logf(float __x) noexcept(true); +# 107 +extern float log10f(float __x) noexcept(true); +# 110 +extern float modff(float __x, float * __iptr) noexcept(true); extern float __modff(float __x, float * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 114 +extern float exp10f(float __x) noexcept(true); +# 119 +extern float expm1f(float __x) noexcept(true); extern float __expm1f(float __x) noexcept(true); +# 122 +extern float log1pf(float __x) noexcept(true); extern float __log1pf(float __x) noexcept(true); +# 125 +extern float logbf(float __x) noexcept(true); extern float __logbf(float __x) noexcept(true); +# 130 +extern float exp2f(float __x) noexcept(true); extern float __exp2f(float __x) noexcept(true); +# 133 +extern float log2f(float __x) noexcept(true); +# 140 +extern float powf(float __x, float __y) noexcept(true); +# 143 +extern float sqrtf(float __x) noexcept(true); extern float __sqrtf(float __x) noexcept(true); +# 147 +extern float hypotf(float __x, float __y) noexcept(true); extern float __hypotf(float __x, float __y) noexcept(true); +# 152 +extern float cbrtf(float __x) noexcept(true); extern float __cbrtf(float __x) noexcept(true); +# 159 +extern float ceilf(float __x) noexcept(true) __attribute((const)); extern float __ceilf(float __x) noexcept(true) __attribute((const)); +# 162 +extern float fabsf(float __x) noexcept(true) __attribute((const)); extern float __fabsf(float __x) noexcept(true) __attribute((const)); +# 165 +extern float floorf(float __x) noexcept(true) __attribute((const)); extern float __floorf(float __x) noexcept(true) __attribute((const)); +# 168 +extern float fmodf(float __x, float __y) noexcept(true); extern float __fmodf(float __x, float __y) noexcept(true); +# 177 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern int isinff(float __value) noexcept(true) +# 178 + __attribute((const)); +# 183 +extern int finitef(float __value) noexcept(true) +# 184 + __attribute((const)); +# 187 +extern float dremf(float __x, float __y) noexcept(true); extern float __dremf(float __x, float __y) noexcept(true); +# 191 +extern float significandf(float __x) noexcept(true); extern float __significandf(float __x) noexcept(true); +# 198 +extern float copysignf(float __x, float __y) noexcept(true) __attribute((const)); extern float __copysignf(float __x, float __y) noexcept(true) __attribute((const)); +# 203 +extern float nanf(const char * __tagb) noexcept(true); extern float __nanf(const char * __tagb) noexcept(true); +# 213 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern int isnanf(float __value) noexcept(true) +# 214 + __attribute((const)); +# 220 +extern float j0f(float) noexcept(true); extern float __j0f(float) noexcept(true); +# 221 +extern float j1f(float) noexcept(true); extern float __j1f(float) noexcept(true); +# 222 +extern float jnf(int, float) noexcept(true); extern float __jnf(int, float) noexcept(true); +# 223 +extern float y0f(float) noexcept(true); extern float __y0f(float) noexcept(true); +# 224 +extern float y1f(float) noexcept(true); extern float __y1f(float) noexcept(true); +# 225 +extern float ynf(int, float) noexcept(true); extern float __ynf(int, float) noexcept(true); +# 231 +extern float erff(float) noexcept(true); extern float __erff(float) noexcept(true); +# 232 +extern float erfcf(float) noexcept(true); extern float __erfcf(float) noexcept(true); +# 233 +extern float lgammaf(float) noexcept(true); extern float __lgammaf(float) noexcept(true); +# 238 +extern float tgammaf(float) noexcept(true); extern float __tgammaf(float) noexcept(true); +# 244 +extern float gammaf(float) noexcept(true); extern float __gammaf(float) noexcept(true); +# 252 +extern float lgammaf_r(float, int * __signgamp) noexcept(true); extern float __lgammaf_r(float, int * __signgamp) noexcept(true); +# 259 +extern float rintf(float __x) noexcept(true); extern float __rintf(float __x) noexcept(true); +# 262 +extern float nextafterf(float __x, float __y) noexcept(true); extern float __nextafterf(float __x, float __y) noexcept(true); +# 264 +extern float nexttowardf(float __x, long double __y) noexcept(true); extern float __nexttowardf(float __x, long double __y) noexcept(true); +# 269 +extern float nextdownf(float __x) noexcept(true); extern float __nextdownf(float __x) noexcept(true); +# 271 +extern float nextupf(float __x) noexcept(true); extern float __nextupf(float __x) noexcept(true); +# 275 +extern float remainderf(float __x, float __y) noexcept(true); extern float __remainderf(float __x, float __y) noexcept(true); +# 279 +extern float scalbnf(float __x, int __n) noexcept(true); extern float __scalbnf(float __x, int __n) noexcept(true); +# 283 +extern int ilogbf(float __x) noexcept(true); extern int __ilogbf(float __x) noexcept(true); +# 288 +extern long llogbf(float __x) noexcept(true); extern long __llogbf(float __x) noexcept(true); +# 293 +extern float scalblnf(float __x, long __n) noexcept(true); extern float __scalblnf(float __x, long __n) noexcept(true); +# 297 +extern float nearbyintf(float __x) noexcept(true); extern float __nearbyintf(float __x) noexcept(true); +# 301 +extern float roundf(float __x) noexcept(true) __attribute((const)); extern float __roundf(float __x) noexcept(true) __attribute((const)); +# 305 +extern float truncf(float __x) noexcept(true) __attribute((const)); extern float __truncf(float __x) noexcept(true) __attribute((const)); +# 310 +extern float remquof(float __x, float __y, int * __quo) noexcept(true); extern float __remquof(float __x, float __y, int * __quo) noexcept(true); +# 317 +extern long lrintf(float __x) noexcept(true); extern long __lrintf(float __x) noexcept(true); +# 319 +__extension__ extern long long llrintf(float __x) noexcept(true); extern long long __llrintf(float __x) noexcept(true); +# 323 +extern long lroundf(float __x) noexcept(true); extern long __lroundf(float __x) noexcept(true); +# 325 +__extension__ extern long long llroundf(float __x) noexcept(true); extern long long __llroundf(float __x) noexcept(true); +# 329 +extern float fdimf(float __x, float __y) noexcept(true); extern float __fdimf(float __x, float __y) noexcept(true); +# 333 +extern float fmaxf(float __x, float __y) noexcept(true) __attribute((const)); extern float __fmaxf(float __x, float __y) noexcept(true) __attribute((const)); +# 336 +extern float fminf(float __x, float __y) noexcept(true) __attribute((const)); extern float __fminf(float __x, float __y) noexcept(true) __attribute((const)); +# 340 +extern float fmaf(float __x, float __y, float __z) noexcept(true); extern float __fmaf(float __x, float __y, float __z) noexcept(true); +# 345 +extern float roundevenf(float __x) noexcept(true) __attribute((const)); extern float __roundevenf(float __x) noexcept(true) __attribute((const)); +# 349 +extern __intmax_t fromfpf(float __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf(float __x, int __round, unsigned __width) noexcept(true); +# 354 +extern __uintmax_t ufromfpf(float __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf(float __x, int __round, unsigned __width) noexcept(true); +# 360 +extern __intmax_t fromfpxf(float __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf(float __x, int __round, unsigned __width) noexcept(true); +# 366 +extern __uintmax_t ufromfpxf(float __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf(float __x, int __round, unsigned __width) noexcept(true); +# 370 +extern int canonicalizef(float * __cx, const float * __x) noexcept(true); +# 377 +extern float fmaxmagf(float __x, float __y) noexcept(true) __attribute((const)); extern float __fmaxmagf(float __x, float __y) noexcept(true) __attribute((const)); +# 380 +extern float fminmagf(float __x, float __y) noexcept(true) __attribute((const)); extern float __fminmagf(float __x, float __y) noexcept(true) __attribute((const)); +# 385 +extern float fmaximumf(float __x, float __y) noexcept(true) __attribute((const)); extern float __fmaximumf(float __x, float __y) noexcept(true) __attribute((const)); +# 388 +extern float fminimumf(float __x, float __y) noexcept(true) __attribute((const)); extern float __fminimumf(float __x, float __y) noexcept(true) __attribute((const)); +# 391 +extern float fmaximum_numf(float __x, float __y) noexcept(true) __attribute((const)); extern float __fmaximum_numf(float __x, float __y) noexcept(true) __attribute((const)); +# 394 +extern float fminimum_numf(float __x, float __y) noexcept(true) __attribute((const)); extern float __fminimum_numf(float __x, float __y) noexcept(true) __attribute((const)); +# 397 +extern float fmaximum_magf(float __x, float __y) noexcept(true) __attribute((const)); extern float __fmaximum_magf(float __x, float __y) noexcept(true) __attribute((const)); +# 400 +extern float fminimum_magf(float __x, float __y) noexcept(true) __attribute((const)); extern float __fminimum_magf(float __x, float __y) noexcept(true) __attribute((const)); +# 403 +extern float fmaximum_mag_numf(float __x, float __y) noexcept(true) __attribute((const)); extern float __fmaximum_mag_numf(float __x, float __y) noexcept(true) __attribute((const)); +# 406 +extern float fminimum_mag_numf(float __x, float __y) noexcept(true) __attribute((const)); extern float __fminimum_mag_numf(float __x, float __y) noexcept(true) __attribute((const)); +# 411 +extern int totalorderf(const float * __x, const float * __y) noexcept(true) +# 413 + __attribute((__pure__)); +# 416 +extern int totalordermagf(const float * __x, const float * __y) noexcept(true) +# 418 + __attribute((__pure__)); +# 421 +extern float getpayloadf(const float * __x) noexcept(true); extern float __getpayloadf(const float * __x) noexcept(true); +# 424 +extern int setpayloadf(float * __x, float __payload) noexcept(true); +# 427 +extern int setpayloadsigf(float * __x, float __payload) noexcept(true); +# 435 +extern float scalbf(float __x, float __n) noexcept(true); extern float __scalbf(float __x, float __n) noexcept(true); +# 20 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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); +# 71 +extern long double coshl(long double __x) noexcept(true); extern long double __coshl(long double __x) noexcept(true); +# 73 +extern long double sinhl(long double __x) noexcept(true); extern long double __sinhl(long double __x) noexcept(true); +# 75 +extern long double tanhl(long double __x) noexcept(true); extern long double __tanhl(long double __x) noexcept(true); +# 79 +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); +# 85 +extern long double acoshl(long double __x) noexcept(true); extern long double __acoshl(long double __x) noexcept(true); +# 87 +extern long double asinhl(long double __x) noexcept(true); extern long double __asinhl(long double __x) noexcept(true); +# 89 +extern long double atanhl(long double __x) noexcept(true); extern long double __atanhl(long double __x) noexcept(true); +# 95 +extern long double expl(long double __x) noexcept(true); extern long double __expl(long double __x) noexcept(true); +# 98 +extern long double frexpl(long double __x, int * __exponent) noexcept(true); extern long double __frexpl(long double __x, int * __exponent) noexcept(true); +# 101 +extern long double ldexpl(long double __x, int __exponent) noexcept(true); extern long double __ldexpl(long double __x, int __exponent) noexcept(true); +# 104 +extern long double logl(long double __x) noexcept(true); extern long double __logl(long double __x) noexcept(true); +# 107 +extern long double log10l(long double __x) noexcept(true); extern long double __log10l(long double __x) noexcept(true); +# 110 +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))); +# 114 +extern long double exp10l(long double __x) noexcept(true); extern long double __exp10l(long double __x) noexcept(true); +# 119 +extern long double expm1l(long double __x) noexcept(true); extern long double __expm1l(long double __x) noexcept(true); +# 122 +extern long double log1pl(long double __x) noexcept(true); extern long double __log1pl(long double __x) noexcept(true); +# 125 +extern long double logbl(long double __x) noexcept(true); extern long double __logbl(long double __x) noexcept(true); +# 130 +extern long double exp2l(long double __x) noexcept(true); extern long double __exp2l(long double __x) noexcept(true); +# 133 +extern long double log2l(long double __x) noexcept(true); extern long double __log2l(long double __x) noexcept(true); +# 140 +extern long double powl(long double __x, long double __y) noexcept(true); extern long double __powl(long double __x, long double __y) noexcept(true); +# 143 +extern long double sqrtl(long double __x) noexcept(true); extern long double __sqrtl(long double __x) noexcept(true); +# 147 +extern long double hypotl(long double __x, long double __y) noexcept(true); extern long double __hypotl(long double __x, long double __y) noexcept(true); +# 152 +extern long double cbrtl(long double __x) noexcept(true); extern long double __cbrtl(long double __x) noexcept(true); +# 159 +extern long double ceill(long double __x) noexcept(true) __attribute((const)); extern long double __ceill(long double __x) noexcept(true) __attribute((const)); +# 162 +extern long double fabsl(long double __x) noexcept(true) __attribute((const)); extern long double __fabsl(long double __x) noexcept(true) __attribute((const)); +# 165 +extern long double floorl(long double __x) noexcept(true) __attribute((const)); extern long double __floorl(long double __x) noexcept(true) __attribute((const)); +# 168 +extern long double fmodl(long double __x, long double __y) noexcept(true); extern long double __fmodl(long double __x, long double __y) noexcept(true); +# 177 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern int isinfl(long double __value) noexcept(true) +# 178 + __attribute((const)); +# 183 +extern int finitel(long double __value) noexcept(true) +# 184 + __attribute((const)); +# 187 +extern long double dreml(long double __x, long double __y) noexcept(true); extern long double __dreml(long double __x, long double __y) noexcept(true); +# 191 +extern long double significandl(long double __x) noexcept(true); extern long double __significandl(long double __x) noexcept(true); +# 198 +extern long double copysignl(long double __x, long double __y) noexcept(true) __attribute((const)); extern long double __copysignl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 203 +extern long double nanl(const char * __tagb) noexcept(true); extern long double __nanl(const char * __tagb) noexcept(true); +# 213 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern int isnanl(long double __value) noexcept(true) +# 214 + __attribute((const)); +# 220 +extern long double j0l(long double) noexcept(true); extern long double __j0l(long double) noexcept(true); +# 221 +extern long double j1l(long double) noexcept(true); extern long double __j1l(long double) noexcept(true); +# 222 +extern long double jnl(int, long double) noexcept(true); extern long double __jnl(int, long double) noexcept(true); +# 223 +extern long double y0l(long double) noexcept(true); extern long double __y0l(long double) noexcept(true); +# 224 +extern long double y1l(long double) noexcept(true); extern long double __y1l(long double) noexcept(true); +# 225 +extern long double ynl(int, long double) noexcept(true); extern long double __ynl(int, long double) noexcept(true); +# 231 +extern long double erfl(long double) noexcept(true); extern long double __erfl(long double) noexcept(true); +# 232 +extern long double erfcl(long double) noexcept(true); extern long double __erfcl(long double) noexcept(true); +# 233 +extern long double lgammal(long double) noexcept(true); extern long double __lgammal(long double) noexcept(true); +# 238 +extern long double tgammal(long double) noexcept(true); extern long double __tgammal(long double) noexcept(true); +# 244 +extern long double gammal(long double) noexcept(true); extern long double __gammal(long double) noexcept(true); +# 252 +extern long double lgammal_r(long double, int * __signgamp) noexcept(true); extern long double __lgammal_r(long double, int * __signgamp) noexcept(true); +# 259 +extern long double rintl(long double __x) noexcept(true); extern long double __rintl(long double __x) noexcept(true); +# 262 +extern long double nextafterl(long double __x, long double __y) noexcept(true); extern long double __nextafterl(long double __x, long double __y) noexcept(true); +# 264 +extern long double nexttowardl(long double __x, long double __y) noexcept(true); extern long double __nexttowardl(long double __x, long double __y) noexcept(true); +# 269 +extern long double nextdownl(long double __x) noexcept(true); extern long double __nextdownl(long double __x) noexcept(true); +# 271 +extern long double nextupl(long double __x) noexcept(true); extern long double __nextupl(long double __x) noexcept(true); +# 275 +extern long double remainderl(long double __x, long double __y) noexcept(true); extern long double __remainderl(long double __x, long double __y) noexcept(true); +# 279 +extern long double scalbnl(long double __x, int __n) noexcept(true); extern long double __scalbnl(long double __x, int __n) noexcept(true); +# 283 +extern int ilogbl(long double __x) noexcept(true); extern int __ilogbl(long double __x) noexcept(true); +# 288 +extern long llogbl(long double __x) noexcept(true); extern long __llogbl(long double __x) noexcept(true); +# 293 +extern long double scalblnl(long double __x, long __n) noexcept(true); extern long double __scalblnl(long double __x, long __n) noexcept(true); +# 297 +extern long double nearbyintl(long double __x) noexcept(true); extern long double __nearbyintl(long double __x) noexcept(true); +# 301 +extern long double roundl(long double __x) noexcept(true) __attribute((const)); extern long double __roundl(long double __x) noexcept(true) __attribute((const)); +# 305 +extern long double truncl(long double __x) noexcept(true) __attribute((const)); extern long double __truncl(long double __x) noexcept(true) __attribute((const)); +# 310 +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); +# 317 +extern long lrintl(long double __x) noexcept(true); extern long __lrintl(long double __x) noexcept(true); +# 319 +__extension__ extern long long llrintl(long double __x) noexcept(true); extern long long __llrintl(long double __x) noexcept(true); +# 323 +extern long lroundl(long double __x) noexcept(true); extern long __lroundl(long double __x) noexcept(true); +# 325 +__extension__ extern long long llroundl(long double __x) noexcept(true); extern long long __llroundl(long double __x) noexcept(true); +# 329 +extern long double fdiml(long double __x, long double __y) noexcept(true); extern long double __fdiml(long double __x, long double __y) noexcept(true); +# 333 +extern long double fmaxl(long double __x, long double __y) noexcept(true) __attribute((const)); extern long double __fmaxl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 336 +extern long double fminl(long double __x, long double __y) noexcept(true) __attribute((const)); extern long double __fminl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 340 +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); +# 345 +extern long double roundevenl(long double __x) noexcept(true) __attribute((const)); extern long double __roundevenl(long double __x) noexcept(true) __attribute((const)); +# 349 +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); +# 354 +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); +# 360 +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); +# 366 +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); +# 370 +extern int canonicalizel(long double * __cx, const long double * __x) noexcept(true); +# 377 +extern long double fmaxmagl(long double __x, long double __y) noexcept(true) __attribute((const)); extern long double __fmaxmagl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 380 +extern long double fminmagl(long double __x, long double __y) noexcept(true) __attribute((const)); extern long double __fminmagl(long double __x, long double __y) noexcept(true) __attribute((const)); +# 385 +extern long double fmaximuml(long double __x, long double __y) noexcept(true) __attribute((const)); extern long double __fmaximuml(long double __x, long double __y) noexcept(true) __attribute((const)); +# 388 +extern long double fminimuml(long double __x, long double __y) noexcept(true) __attribute((const)); extern long double __fminimuml(long double __x, long double __y) noexcept(true) __attribute((const)); +# 391 +extern long double fmaximum_numl(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)); +# 394 +extern long double fminimum_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)); +# 397 +extern long double fmaximum_magl(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)); +# 400 +extern long double fminimum_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)); +# 403 +extern long double fmaximum_mag_numl(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)); +# 406 +extern long double fminimum_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)); +# 411 +extern int totalorderl(const long double * __x, const long double * __y) noexcept(true) +# 413 + __attribute((__pure__)); +# 416 +extern int totalordermagl(const long double * __x, const long double * __y) noexcept(true) +# 418 + __attribute((__pure__)); +# 421 +extern long double getpayloadl(const long double * __x) noexcept(true); extern long double __getpayloadl(const long double * __x) noexcept(true); +# 424 +extern int setpayloadl(long double * __x, long double __payload) noexcept(true); +# 427 +extern int setpayloadsigl(long double * __x, long double __payload) noexcept(true); +# 435 +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/x86_64-linux-gnu/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); +# 71 +extern _Float32 coshf32(_Float32 __x) noexcept(true); extern _Float32 __coshf32(_Float32 __x) noexcept(true); +# 73 +extern _Float32 sinhf32(_Float32 __x) noexcept(true); extern _Float32 __sinhf32(_Float32 __x) noexcept(true); +# 75 +extern _Float32 tanhf32(_Float32 __x) noexcept(true); extern _Float32 __tanhf32(_Float32 __x) noexcept(true); +# 79 +extern void sincosf32(_Float32 __x, _Float32 * __sinx, _Float32 * __cosx) noexcept(true); extern void __sincosf32(_Float32 __x, _Float32 * __sinx, _Float32 * __cosx) noexcept(true); +# 85 +extern _Float32 acoshf32(_Float32 __x) noexcept(true); extern _Float32 __acoshf32(_Float32 __x) noexcept(true); +# 87 +extern _Float32 asinhf32(_Float32 __x) noexcept(true); extern _Float32 __asinhf32(_Float32 __x) noexcept(true); +# 89 +extern _Float32 atanhf32(_Float32 __x) noexcept(true); extern _Float32 __atanhf32(_Float32 __x) noexcept(true); +# 95 +extern _Float32 expf32(_Float32 __x) noexcept(true); extern _Float32 __expf32(_Float32 __x) noexcept(true); +# 98 +extern _Float32 frexpf32(_Float32 __x, int * __exponent) noexcept(true); extern _Float32 __frexpf32(_Float32 __x, int * __exponent) noexcept(true); +# 101 +extern _Float32 ldexpf32(_Float32 __x, int __exponent) noexcept(true); extern _Float32 __ldexpf32(_Float32 __x, int __exponent) noexcept(true); +# 104 +extern _Float32 logf32(_Float32 __x) noexcept(true); extern _Float32 __logf32(_Float32 __x) noexcept(true); +# 107 +extern _Float32 log10f32(_Float32 __x) noexcept(true); extern _Float32 __log10f32(_Float32 __x) noexcept(true); +# 110 +extern _Float32 modff32(_Float32 __x, _Float32 * __iptr) noexcept(true); extern _Float32 __modff32(_Float32 __x, _Float32 * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 114 +extern _Float32 exp10f32(_Float32 __x) noexcept(true); extern _Float32 __exp10f32(_Float32 __x) noexcept(true); +# 119 +extern _Float32 expm1f32(_Float32 __x) noexcept(true); extern _Float32 __expm1f32(_Float32 __x) noexcept(true); +# 122 +extern _Float32 log1pf32(_Float32 __x) noexcept(true); extern _Float32 __log1pf32(_Float32 __x) noexcept(true); +# 125 +extern _Float32 logbf32(_Float32 __x) noexcept(true); extern _Float32 __logbf32(_Float32 __x) noexcept(true); +# 130 +extern _Float32 exp2f32(_Float32 __x) noexcept(true); extern _Float32 __exp2f32(_Float32 __x) noexcept(true); +# 133 +extern _Float32 log2f32(_Float32 __x) noexcept(true); extern _Float32 __log2f32(_Float32 __x) noexcept(true); +# 140 +extern _Float32 powf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __powf32(_Float32 __x, _Float32 __y) noexcept(true); +# 143 +extern _Float32 sqrtf32(_Float32 __x) noexcept(true); extern _Float32 __sqrtf32(_Float32 __x) noexcept(true); +# 147 +extern _Float32 hypotf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __hypotf32(_Float32 __x, _Float32 __y) noexcept(true); +# 152 +extern _Float32 cbrtf32(_Float32 __x) noexcept(true); extern _Float32 __cbrtf32(_Float32 __x) noexcept(true); +# 159 +extern _Float32 ceilf32(_Float32 __x) noexcept(true) __attribute((const)); extern _Float32 __ceilf32(_Float32 __x) noexcept(true) __attribute((const)); +# 162 +extern _Float32 fabsf32(_Float32 __x) noexcept(true) __attribute((const)); extern _Float32 __fabsf32(_Float32 __x) noexcept(true) __attribute((const)); +# 165 +extern _Float32 floorf32(_Float32 __x) noexcept(true) __attribute((const)); extern _Float32 __floorf32(_Float32 __x) noexcept(true) __attribute((const)); +# 168 +extern _Float32 fmodf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __fmodf32(_Float32 __x, _Float32 __y) noexcept(true); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32 copysignf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); extern _Float32 __copysignf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 203 +extern _Float32 nanf32(const char * __tagb) noexcept(true); extern _Float32 __nanf32(const char * __tagb) noexcept(true); +# 220 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32 j0f32(_Float32) noexcept(true); extern _Float32 __j0f32(_Float32) noexcept(true); +# 221 +extern _Float32 j1f32(_Float32) noexcept(true); extern _Float32 __j1f32(_Float32) noexcept(true); +# 222 +extern _Float32 jnf32(int, _Float32) noexcept(true); extern _Float32 __jnf32(int, _Float32) noexcept(true); +# 223 +extern _Float32 y0f32(_Float32) noexcept(true); extern _Float32 __y0f32(_Float32) noexcept(true); +# 224 +extern _Float32 y1f32(_Float32) noexcept(true); extern _Float32 __y1f32(_Float32) noexcept(true); +# 225 +extern _Float32 ynf32(int, _Float32) noexcept(true); extern _Float32 __ynf32(int, _Float32) noexcept(true); +# 231 +extern _Float32 erff32(_Float32) noexcept(true); extern _Float32 __erff32(_Float32) noexcept(true); +# 232 +extern _Float32 erfcf32(_Float32) noexcept(true); extern _Float32 __erfcf32(_Float32) noexcept(true); +# 233 +extern _Float32 lgammaf32(_Float32) noexcept(true); extern _Float32 __lgammaf32(_Float32) noexcept(true); +# 238 +extern _Float32 tgammaf32(_Float32) noexcept(true); extern _Float32 __tgammaf32(_Float32) noexcept(true); +# 252 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32 lgammaf32_r(_Float32, int * __signgamp) noexcept(true); extern _Float32 __lgammaf32_r(_Float32, int * __signgamp) noexcept(true); +# 259 +extern _Float32 rintf32(_Float32 __x) noexcept(true); extern _Float32 __rintf32(_Float32 __x) noexcept(true); +# 262 +extern _Float32 nextafterf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __nextafterf32(_Float32 __x, _Float32 __y) noexcept(true); +# 269 +extern _Float32 nextdownf32(_Float32 __x) noexcept(true); extern _Float32 __nextdownf32(_Float32 __x) noexcept(true); +# 271 +extern _Float32 nextupf32(_Float32 __x) noexcept(true); extern _Float32 __nextupf32(_Float32 __x) noexcept(true); +# 275 +extern _Float32 remainderf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __remainderf32(_Float32 __x, _Float32 __y) noexcept(true); +# 279 +extern _Float32 scalbnf32(_Float32 __x, int __n) noexcept(true); extern _Float32 __scalbnf32(_Float32 __x, int __n) noexcept(true); +# 283 +extern int ilogbf32(_Float32 __x) noexcept(true); extern int __ilogbf32(_Float32 __x) noexcept(true); +# 288 +extern long llogbf32(_Float32 __x) noexcept(true); extern long __llogbf32(_Float32 __x) noexcept(true); +# 293 +extern _Float32 scalblnf32(_Float32 __x, long __n) noexcept(true); extern _Float32 __scalblnf32(_Float32 __x, long __n) noexcept(true); +# 297 +extern _Float32 nearbyintf32(_Float32 __x) noexcept(true); extern _Float32 __nearbyintf32(_Float32 __x) noexcept(true); +# 301 +extern _Float32 roundf32(_Float32 __x) noexcept(true) __attribute((const)); extern _Float32 __roundf32(_Float32 __x) noexcept(true) __attribute((const)); +# 305 +extern _Float32 truncf32(_Float32 __x) noexcept(true) __attribute((const)); extern _Float32 __truncf32(_Float32 __x) noexcept(true) __attribute((const)); +# 310 +extern _Float32 remquof32(_Float32 __x, _Float32 __y, int * __quo) noexcept(true); extern _Float32 __remquof32(_Float32 __x, _Float32 __y, int * __quo) noexcept(true); +# 317 +extern long lrintf32(_Float32 __x) noexcept(true); extern long __lrintf32(_Float32 __x) noexcept(true); +# 319 +__extension__ extern long long llrintf32(_Float32 __x) noexcept(true); extern long long __llrintf32(_Float32 __x) noexcept(true); +# 323 +extern long lroundf32(_Float32 __x) noexcept(true); extern long __lroundf32(_Float32 __x) noexcept(true); +# 325 +__extension__ extern long long llroundf32(_Float32 __x) noexcept(true); extern long long __llroundf32(_Float32 __x) noexcept(true); +# 329 +extern _Float32 fdimf32(_Float32 __x, _Float32 __y) noexcept(true); extern _Float32 __fdimf32(_Float32 __x, _Float32 __y) noexcept(true); +# 333 +extern _Float32 fmaxf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); extern _Float32 __fmaxf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 336 +extern _Float32 fminf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); extern _Float32 __fminf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 340 +extern _Float32 fmaf32(_Float32 __x, _Float32 __y, _Float32 __z) noexcept(true); extern _Float32 __fmaf32(_Float32 __x, _Float32 __y, _Float32 __z) noexcept(true); +# 345 +extern _Float32 roundevenf32(_Float32 __x) noexcept(true) __attribute((const)); extern _Float32 __roundevenf32(_Float32 __x) noexcept(true) __attribute((const)); +# 349 +extern __intmax_t fromfpf32(_Float32 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf32(_Float32 __x, int __round, unsigned __width) noexcept(true); +# 354 +extern __uintmax_t ufromfpf32(_Float32 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf32(_Float32 __x, int __round, unsigned __width) noexcept(true); +# 360 +extern __intmax_t fromfpxf32(_Float32 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf32(_Float32 __x, int __round, unsigned __width) noexcept(true); +# 366 +extern __uintmax_t ufromfpxf32(_Float32 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf32(_Float32 __x, int __round, unsigned __width) noexcept(true); +# 370 +extern int canonicalizef32(_Float32 * __cx, const _Float32 * __x) noexcept(true); +# 377 +extern _Float32 fmaxmagf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); extern _Float32 __fmaxmagf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 380 +extern _Float32 fminmagf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); extern _Float32 __fminmagf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 385 +extern _Float32 fmaximumf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); extern _Float32 __fmaximumf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 388 +extern _Float32 fminimumf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); extern _Float32 __fminimumf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 391 +extern _Float32 fmaximum_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); extern _Float32 __fmaximum_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 394 +extern _Float32 fminimum_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); extern _Float32 __fminimum_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 397 +extern _Float32 fmaximum_magf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); extern _Float32 __fmaximum_magf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 400 +extern _Float32 fminimum_magf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); extern _Float32 __fminimum_magf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 403 +extern _Float32 fmaximum_mag_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); extern _Float32 __fmaximum_mag_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 406 +extern _Float32 fminimum_mag_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); extern _Float32 __fminimum_mag_numf32(_Float32 __x, _Float32 __y) noexcept(true) __attribute((const)); +# 411 +extern int totalorderf32(const _Float32 * __x, const _Float32 * __y) noexcept(true) +# 413 + __attribute((__pure__)); +# 416 +extern int totalordermagf32(const _Float32 * __x, const _Float32 * __y) noexcept(true) +# 418 + __attribute((__pure__)); +# 421 +extern _Float32 getpayloadf32(const _Float32 * __x) noexcept(true); extern _Float32 __getpayloadf32(const _Float32 * __x) noexcept(true); +# 424 +extern int setpayloadf32(_Float32 * __x, _Float32 __payload) noexcept(true); +# 427 +extern int setpayloadsigf32(_Float32 * __x, _Float32 __payload) noexcept(true); +# 53 "/usr/include/x86_64-linux-gnu/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); +# 71 +extern _Float64 coshf64(_Float64 __x) noexcept(true); extern _Float64 __coshf64(_Float64 __x) noexcept(true); +# 73 +extern _Float64 sinhf64(_Float64 __x) noexcept(true); extern _Float64 __sinhf64(_Float64 __x) noexcept(true); +# 75 +extern _Float64 tanhf64(_Float64 __x) noexcept(true); extern _Float64 __tanhf64(_Float64 __x) noexcept(true); +# 79 +extern void sincosf64(_Float64 __x, _Float64 * __sinx, _Float64 * __cosx) noexcept(true); extern void __sincosf64(_Float64 __x, _Float64 * __sinx, _Float64 * __cosx) noexcept(true); +# 85 +extern _Float64 acoshf64(_Float64 __x) noexcept(true); extern _Float64 __acoshf64(_Float64 __x) noexcept(true); +# 87 +extern _Float64 asinhf64(_Float64 __x) noexcept(true); extern _Float64 __asinhf64(_Float64 __x) noexcept(true); +# 89 +extern _Float64 atanhf64(_Float64 __x) noexcept(true); extern _Float64 __atanhf64(_Float64 __x) noexcept(true); +# 95 +extern _Float64 expf64(_Float64 __x) noexcept(true); extern _Float64 __expf64(_Float64 __x) noexcept(true); +# 98 +extern _Float64 frexpf64(_Float64 __x, int * __exponent) noexcept(true); extern _Float64 __frexpf64(_Float64 __x, int * __exponent) noexcept(true); +# 101 +extern _Float64 ldexpf64(_Float64 __x, int __exponent) noexcept(true); extern _Float64 __ldexpf64(_Float64 __x, int __exponent) noexcept(true); +# 104 +extern _Float64 logf64(_Float64 __x) noexcept(true); extern _Float64 __logf64(_Float64 __x) noexcept(true); +# 107 +extern _Float64 log10f64(_Float64 __x) noexcept(true); extern _Float64 __log10f64(_Float64 __x) noexcept(true); +# 110 +extern _Float64 modff64(_Float64 __x, _Float64 * __iptr) noexcept(true); extern _Float64 __modff64(_Float64 __x, _Float64 * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 114 +extern _Float64 exp10f64(_Float64 __x) noexcept(true); extern _Float64 __exp10f64(_Float64 __x) noexcept(true); +# 119 +extern _Float64 expm1f64(_Float64 __x) noexcept(true); extern _Float64 __expm1f64(_Float64 __x) noexcept(true); +# 122 +extern _Float64 log1pf64(_Float64 __x) noexcept(true); extern _Float64 __log1pf64(_Float64 __x) noexcept(true); +# 125 +extern _Float64 logbf64(_Float64 __x) noexcept(true); extern _Float64 __logbf64(_Float64 __x) noexcept(true); +# 130 +extern _Float64 exp2f64(_Float64 __x) noexcept(true); extern _Float64 __exp2f64(_Float64 __x) noexcept(true); +# 133 +extern _Float64 log2f64(_Float64 __x) noexcept(true); extern _Float64 __log2f64(_Float64 __x) noexcept(true); +# 140 +extern _Float64 powf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __powf64(_Float64 __x, _Float64 __y) noexcept(true); +# 143 +extern _Float64 sqrtf64(_Float64 __x) noexcept(true); extern _Float64 __sqrtf64(_Float64 __x) noexcept(true); +# 147 +extern _Float64 hypotf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __hypotf64(_Float64 __x, _Float64 __y) noexcept(true); +# 152 +extern _Float64 cbrtf64(_Float64 __x) noexcept(true); extern _Float64 __cbrtf64(_Float64 __x) noexcept(true); +# 159 +extern _Float64 ceilf64(_Float64 __x) noexcept(true) __attribute((const)); extern _Float64 __ceilf64(_Float64 __x) noexcept(true) __attribute((const)); +# 162 +extern _Float64 fabsf64(_Float64 __x) noexcept(true) __attribute((const)); extern _Float64 __fabsf64(_Float64 __x) noexcept(true) __attribute((const)); +# 165 +extern _Float64 floorf64(_Float64 __x) noexcept(true) __attribute((const)); extern _Float64 __floorf64(_Float64 __x) noexcept(true) __attribute((const)); +# 168 +extern _Float64 fmodf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __fmodf64(_Float64 __x, _Float64 __y) noexcept(true); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64 copysignf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); extern _Float64 __copysignf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 203 +extern _Float64 nanf64(const char * __tagb) noexcept(true); extern _Float64 __nanf64(const char * __tagb) noexcept(true); +# 220 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64 j0f64(_Float64) noexcept(true); extern _Float64 __j0f64(_Float64) noexcept(true); +# 221 +extern _Float64 j1f64(_Float64) noexcept(true); extern _Float64 __j1f64(_Float64) noexcept(true); +# 222 +extern _Float64 jnf64(int, _Float64) noexcept(true); extern _Float64 __jnf64(int, _Float64) noexcept(true); +# 223 +extern _Float64 y0f64(_Float64) noexcept(true); extern _Float64 __y0f64(_Float64) noexcept(true); +# 224 +extern _Float64 y1f64(_Float64) noexcept(true); extern _Float64 __y1f64(_Float64) noexcept(true); +# 225 +extern _Float64 ynf64(int, _Float64) noexcept(true); extern _Float64 __ynf64(int, _Float64) noexcept(true); +# 231 +extern _Float64 erff64(_Float64) noexcept(true); extern _Float64 __erff64(_Float64) noexcept(true); +# 232 +extern _Float64 erfcf64(_Float64) noexcept(true); extern _Float64 __erfcf64(_Float64) noexcept(true); +# 233 +extern _Float64 lgammaf64(_Float64) noexcept(true); extern _Float64 __lgammaf64(_Float64) noexcept(true); +# 238 +extern _Float64 tgammaf64(_Float64) noexcept(true); extern _Float64 __tgammaf64(_Float64) noexcept(true); +# 252 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64 lgammaf64_r(_Float64, int * __signgamp) noexcept(true); extern _Float64 __lgammaf64_r(_Float64, int * __signgamp) noexcept(true); +# 259 +extern _Float64 rintf64(_Float64 __x) noexcept(true); extern _Float64 __rintf64(_Float64 __x) noexcept(true); +# 262 +extern _Float64 nextafterf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __nextafterf64(_Float64 __x, _Float64 __y) noexcept(true); +# 269 +extern _Float64 nextdownf64(_Float64 __x) noexcept(true); extern _Float64 __nextdownf64(_Float64 __x) noexcept(true); +# 271 +extern _Float64 nextupf64(_Float64 __x) noexcept(true); extern _Float64 __nextupf64(_Float64 __x) noexcept(true); +# 275 +extern _Float64 remainderf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __remainderf64(_Float64 __x, _Float64 __y) noexcept(true); +# 279 +extern _Float64 scalbnf64(_Float64 __x, int __n) noexcept(true); extern _Float64 __scalbnf64(_Float64 __x, int __n) noexcept(true); +# 283 +extern int ilogbf64(_Float64 __x) noexcept(true); extern int __ilogbf64(_Float64 __x) noexcept(true); +# 288 +extern long llogbf64(_Float64 __x) noexcept(true); extern long __llogbf64(_Float64 __x) noexcept(true); +# 293 +extern _Float64 scalblnf64(_Float64 __x, long __n) noexcept(true); extern _Float64 __scalblnf64(_Float64 __x, long __n) noexcept(true); +# 297 +extern _Float64 nearbyintf64(_Float64 __x) noexcept(true); extern _Float64 __nearbyintf64(_Float64 __x) noexcept(true); +# 301 +extern _Float64 roundf64(_Float64 __x) noexcept(true) __attribute((const)); extern _Float64 __roundf64(_Float64 __x) noexcept(true) __attribute((const)); +# 305 +extern _Float64 truncf64(_Float64 __x) noexcept(true) __attribute((const)); extern _Float64 __truncf64(_Float64 __x) noexcept(true) __attribute((const)); +# 310 +extern _Float64 remquof64(_Float64 __x, _Float64 __y, int * __quo) noexcept(true); extern _Float64 __remquof64(_Float64 __x, _Float64 __y, int * __quo) noexcept(true); +# 317 +extern long lrintf64(_Float64 __x) noexcept(true); extern long __lrintf64(_Float64 __x) noexcept(true); +# 319 +__extension__ extern long long llrintf64(_Float64 __x) noexcept(true); extern long long __llrintf64(_Float64 __x) noexcept(true); +# 323 +extern long lroundf64(_Float64 __x) noexcept(true); extern long __lroundf64(_Float64 __x) noexcept(true); +# 325 +__extension__ extern long long llroundf64(_Float64 __x) noexcept(true); extern long long __llroundf64(_Float64 __x) noexcept(true); +# 329 +extern _Float64 fdimf64(_Float64 __x, _Float64 __y) noexcept(true); extern _Float64 __fdimf64(_Float64 __x, _Float64 __y) noexcept(true); +# 333 +extern _Float64 fmaxf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); extern _Float64 __fmaxf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 336 +extern _Float64 fminf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); extern _Float64 __fminf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 340 +extern _Float64 fmaf64(_Float64 __x, _Float64 __y, _Float64 __z) noexcept(true); extern _Float64 __fmaf64(_Float64 __x, _Float64 __y, _Float64 __z) noexcept(true); +# 345 +extern _Float64 roundevenf64(_Float64 __x) noexcept(true) __attribute((const)); extern _Float64 __roundevenf64(_Float64 __x) noexcept(true) __attribute((const)); +# 349 +extern __intmax_t fromfpf64(_Float64 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf64(_Float64 __x, int __round, unsigned __width) noexcept(true); +# 354 +extern __uintmax_t ufromfpf64(_Float64 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf64(_Float64 __x, int __round, unsigned __width) noexcept(true); +# 360 +extern __intmax_t fromfpxf64(_Float64 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf64(_Float64 __x, int __round, unsigned __width) noexcept(true); +# 366 +extern __uintmax_t ufromfpxf64(_Float64 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf64(_Float64 __x, int __round, unsigned __width) noexcept(true); +# 370 +extern int canonicalizef64(_Float64 * __cx, const _Float64 * __x) noexcept(true); +# 377 +extern _Float64 fmaxmagf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); extern _Float64 __fmaxmagf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 380 +extern _Float64 fminmagf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); extern _Float64 __fminmagf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 385 +extern _Float64 fmaximumf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); extern _Float64 __fmaximumf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 388 +extern _Float64 fminimumf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); extern _Float64 __fminimumf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 391 +extern _Float64 fmaximum_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); extern _Float64 __fmaximum_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 394 +extern _Float64 fminimum_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); extern _Float64 __fminimum_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 397 +extern _Float64 fmaximum_magf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); extern _Float64 __fmaximum_magf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 400 +extern _Float64 fminimum_magf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); extern _Float64 __fminimum_magf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 403 +extern _Float64 fmaximum_mag_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); extern _Float64 __fmaximum_mag_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 406 +extern _Float64 fminimum_mag_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); extern _Float64 __fminimum_mag_numf64(_Float64 __x, _Float64 __y) noexcept(true) __attribute((const)); +# 411 +extern int totalorderf64(const _Float64 * __x, const _Float64 * __y) noexcept(true) +# 413 + __attribute((__pure__)); +# 416 +extern int totalordermagf64(const _Float64 * __x, const _Float64 * __y) noexcept(true) +# 418 + __attribute((__pure__)); +# 421 +extern _Float64 getpayloadf64(const _Float64 * __x) noexcept(true); extern _Float64 __getpayloadf64(const _Float64 * __x) noexcept(true); +# 424 +extern int setpayloadf64(_Float64 * __x, _Float64 __payload) noexcept(true); +# 427 +extern int setpayloadsigf64(_Float64 * __x, _Float64 __payload) noexcept(true); +# 20 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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); +# 71 +extern _Float128 coshf128(_Float128 __x) noexcept(true); extern _Float128 __coshf128(_Float128 __x) noexcept(true); +# 73 +extern _Float128 sinhf128(_Float128 __x) noexcept(true); extern _Float128 __sinhf128(_Float128 __x) noexcept(true); +# 75 +extern _Float128 tanhf128(_Float128 __x) noexcept(true); extern _Float128 __tanhf128(_Float128 __x) noexcept(true); +# 79 +extern void sincosf128(_Float128 __x, _Float128 * __sinx, _Float128 * __cosx) noexcept(true); extern void __sincosf128(_Float128 __x, _Float128 * __sinx, _Float128 * __cosx) noexcept(true); +# 85 +extern _Float128 acoshf128(_Float128 __x) noexcept(true); extern _Float128 __acoshf128(_Float128 __x) noexcept(true); +# 87 +extern _Float128 asinhf128(_Float128 __x) noexcept(true); extern _Float128 __asinhf128(_Float128 __x) noexcept(true); +# 89 +extern _Float128 atanhf128(_Float128 __x) noexcept(true); extern _Float128 __atanhf128(_Float128 __x) noexcept(true); +# 95 +extern _Float128 expf128(_Float128 __x) noexcept(true); extern _Float128 __expf128(_Float128 __x) noexcept(true); +# 98 +extern _Float128 frexpf128(_Float128 __x, int * __exponent) noexcept(true); extern _Float128 __frexpf128(_Float128 __x, int * __exponent) noexcept(true); +# 101 +extern _Float128 ldexpf128(_Float128 __x, int __exponent) noexcept(true); extern _Float128 __ldexpf128(_Float128 __x, int __exponent) noexcept(true); +# 104 +extern _Float128 logf128(_Float128 __x) noexcept(true); extern _Float128 __logf128(_Float128 __x) noexcept(true); +# 107 +extern _Float128 log10f128(_Float128 __x) noexcept(true); extern _Float128 __log10f128(_Float128 __x) noexcept(true); +# 110 +extern _Float128 modff128(_Float128 __x, _Float128 * __iptr) noexcept(true); extern _Float128 __modff128(_Float128 __x, _Float128 * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 114 +extern _Float128 exp10f128(_Float128 __x) noexcept(true); extern _Float128 __exp10f128(_Float128 __x) noexcept(true); +# 119 +extern _Float128 expm1f128(_Float128 __x) noexcept(true); extern _Float128 __expm1f128(_Float128 __x) noexcept(true); +# 122 +extern _Float128 log1pf128(_Float128 __x) noexcept(true); extern _Float128 __log1pf128(_Float128 __x) noexcept(true); +# 125 +extern _Float128 logbf128(_Float128 __x) noexcept(true); extern _Float128 __logbf128(_Float128 __x) noexcept(true); +# 130 +extern _Float128 exp2f128(_Float128 __x) noexcept(true); extern _Float128 __exp2f128(_Float128 __x) noexcept(true); +# 133 +extern _Float128 log2f128(_Float128 __x) noexcept(true); extern _Float128 __log2f128(_Float128 __x) noexcept(true); +# 140 +extern _Float128 powf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __powf128(_Float128 __x, _Float128 __y) noexcept(true); +# 143 +extern _Float128 sqrtf128(_Float128 __x) noexcept(true); extern _Float128 __sqrtf128(_Float128 __x) noexcept(true); +# 147 +extern _Float128 hypotf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __hypotf128(_Float128 __x, _Float128 __y) noexcept(true); +# 152 +extern _Float128 cbrtf128(_Float128 __x) noexcept(true); extern _Float128 __cbrtf128(_Float128 __x) noexcept(true); +# 159 +extern _Float128 ceilf128(_Float128 __x) noexcept(true) __attribute((const)); extern _Float128 __ceilf128(_Float128 __x) noexcept(true) __attribute((const)); +# 162 +extern _Float128 fabsf128(_Float128 __x) noexcept(true) __attribute((const)); extern _Float128 __fabsf128(_Float128 __x) noexcept(true) __attribute((const)); +# 165 +extern _Float128 floorf128(_Float128 __x) noexcept(true) __attribute((const)); extern _Float128 __floorf128(_Float128 __x) noexcept(true) __attribute((const)); +# 168 +extern _Float128 fmodf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __fmodf128(_Float128 __x, _Float128 __y) noexcept(true); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float128 copysignf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); extern _Float128 __copysignf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 203 +extern _Float128 nanf128(const char * __tagb) noexcept(true); extern _Float128 __nanf128(const char * __tagb) noexcept(true); +# 220 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float128 j0f128(_Float128) noexcept(true); extern _Float128 __j0f128(_Float128) noexcept(true); +# 221 +extern _Float128 j1f128(_Float128) noexcept(true); extern _Float128 __j1f128(_Float128) noexcept(true); +# 222 +extern _Float128 jnf128(int, _Float128) noexcept(true); extern _Float128 __jnf128(int, _Float128) noexcept(true); +# 223 +extern _Float128 y0f128(_Float128) noexcept(true); extern _Float128 __y0f128(_Float128) noexcept(true); +# 224 +extern _Float128 y1f128(_Float128) noexcept(true); extern _Float128 __y1f128(_Float128) noexcept(true); +# 225 +extern _Float128 ynf128(int, _Float128) noexcept(true); extern _Float128 __ynf128(int, _Float128) noexcept(true); +# 231 +extern _Float128 erff128(_Float128) noexcept(true); extern _Float128 __erff128(_Float128) noexcept(true); +# 232 +extern _Float128 erfcf128(_Float128) noexcept(true); extern _Float128 __erfcf128(_Float128) noexcept(true); +# 233 +extern _Float128 lgammaf128(_Float128) noexcept(true); extern _Float128 __lgammaf128(_Float128) noexcept(true); +# 238 +extern _Float128 tgammaf128(_Float128) noexcept(true); extern _Float128 __tgammaf128(_Float128) noexcept(true); +# 252 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float128 lgammaf128_r(_Float128, int * __signgamp) noexcept(true); extern _Float128 __lgammaf128_r(_Float128, int * __signgamp) noexcept(true); +# 259 +extern _Float128 rintf128(_Float128 __x) noexcept(true); extern _Float128 __rintf128(_Float128 __x) noexcept(true); +# 262 +extern _Float128 nextafterf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __nextafterf128(_Float128 __x, _Float128 __y) noexcept(true); +# 269 +extern _Float128 nextdownf128(_Float128 __x) noexcept(true); extern _Float128 __nextdownf128(_Float128 __x) noexcept(true); +# 271 +extern _Float128 nextupf128(_Float128 __x) noexcept(true); extern _Float128 __nextupf128(_Float128 __x) noexcept(true); +# 275 +extern _Float128 remainderf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __remainderf128(_Float128 __x, _Float128 __y) noexcept(true); +# 279 +extern _Float128 scalbnf128(_Float128 __x, int __n) noexcept(true); extern _Float128 __scalbnf128(_Float128 __x, int __n) noexcept(true); +# 283 +extern int ilogbf128(_Float128 __x) noexcept(true); extern int __ilogbf128(_Float128 __x) noexcept(true); +# 288 +extern long llogbf128(_Float128 __x) noexcept(true); extern long __llogbf128(_Float128 __x) noexcept(true); +# 293 +extern _Float128 scalblnf128(_Float128 __x, long __n) noexcept(true); extern _Float128 __scalblnf128(_Float128 __x, long __n) noexcept(true); +# 297 +extern _Float128 nearbyintf128(_Float128 __x) noexcept(true); extern _Float128 __nearbyintf128(_Float128 __x) noexcept(true); +# 301 +extern _Float128 roundf128(_Float128 __x) noexcept(true) __attribute((const)); extern _Float128 __roundf128(_Float128 __x) noexcept(true) __attribute((const)); +# 305 +extern _Float128 truncf128(_Float128 __x) noexcept(true) __attribute((const)); extern _Float128 __truncf128(_Float128 __x) noexcept(true) __attribute((const)); +# 310 +extern _Float128 remquof128(_Float128 __x, _Float128 __y, int * __quo) noexcept(true); extern _Float128 __remquof128(_Float128 __x, _Float128 __y, int * __quo) noexcept(true); +# 317 +extern long lrintf128(_Float128 __x) noexcept(true); extern long __lrintf128(_Float128 __x) noexcept(true); +# 319 +__extension__ extern long long llrintf128(_Float128 __x) noexcept(true); extern long long __llrintf128(_Float128 __x) noexcept(true); +# 323 +extern long lroundf128(_Float128 __x) noexcept(true); extern long __lroundf128(_Float128 __x) noexcept(true); +# 325 +__extension__ extern long long llroundf128(_Float128 __x) noexcept(true); extern long long __llroundf128(_Float128 __x) noexcept(true); +# 329 +extern _Float128 fdimf128(_Float128 __x, _Float128 __y) noexcept(true); extern _Float128 __fdimf128(_Float128 __x, _Float128 __y) noexcept(true); +# 333 +extern _Float128 fmaxf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); extern _Float128 __fmaxf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 336 +extern _Float128 fminf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); extern _Float128 __fminf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 340 +extern _Float128 fmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); extern _Float128 __fmaf128(_Float128 __x, _Float128 __y, _Float128 __z) noexcept(true); +# 345 +extern _Float128 roundevenf128(_Float128 __x) noexcept(true) __attribute((const)); extern _Float128 __roundevenf128(_Float128 __x) noexcept(true) __attribute((const)); +# 349 +extern __intmax_t fromfpf128(_Float128 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf128(_Float128 __x, int __round, unsigned __width) noexcept(true); +# 354 +extern __uintmax_t ufromfpf128(_Float128 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf128(_Float128 __x, int __round, unsigned __width) noexcept(true); +# 360 +extern __intmax_t fromfpxf128(_Float128 __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf128(_Float128 __x, int __round, unsigned __width) noexcept(true); +# 366 +extern __uintmax_t ufromfpxf128(_Float128 __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf128(_Float128 __x, int __round, unsigned __width) noexcept(true); +# 370 +extern int canonicalizef128(_Float128 * __cx, const _Float128 * __x) noexcept(true); +# 377 +extern _Float128 fmaxmagf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); extern _Float128 __fmaxmagf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 380 +extern _Float128 fminmagf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); extern _Float128 __fminmagf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 385 +extern _Float128 fmaximumf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); extern _Float128 __fmaximumf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 388 +extern _Float128 fminimumf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); extern _Float128 __fminimumf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 391 +extern _Float128 fmaximum_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); extern _Float128 __fmaximum_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 394 +extern _Float128 fminimum_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); extern _Float128 __fminimum_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 397 +extern _Float128 fmaximum_magf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); extern _Float128 __fmaximum_magf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 400 +extern _Float128 fminimum_magf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); extern _Float128 __fminimum_magf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 403 +extern _Float128 fmaximum_mag_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); extern _Float128 __fmaximum_mag_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 406 +extern _Float128 fminimum_mag_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); extern _Float128 __fminimum_mag_numf128(_Float128 __x, _Float128 __y) noexcept(true) __attribute((const)); +# 411 +extern int totalorderf128(const _Float128 * __x, const _Float128 * __y) noexcept(true) +# 413 + __attribute((__pure__)); +# 416 +extern int totalordermagf128(const _Float128 * __x, const _Float128 * __y) noexcept(true) +# 418 + __attribute((__pure__)); +# 421 +extern _Float128 getpayloadf128(const _Float128 * __x) noexcept(true); extern _Float128 __getpayloadf128(const _Float128 * __x) noexcept(true); +# 424 +extern int setpayloadf128(_Float128 * __x, _Float128 __payload) noexcept(true); +# 427 +extern int setpayloadsigf128(_Float128 * __x, _Float128 __payload) noexcept(true); +# 53 "/usr/include/x86_64-linux-gnu/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); +# 71 +extern _Float32x coshf32x(_Float32x __x) noexcept(true); extern _Float32x __coshf32x(_Float32x __x) noexcept(true); +# 73 +extern _Float32x sinhf32x(_Float32x __x) noexcept(true); extern _Float32x __sinhf32x(_Float32x __x) noexcept(true); +# 75 +extern _Float32x tanhf32x(_Float32x __x) noexcept(true); extern _Float32x __tanhf32x(_Float32x __x) noexcept(true); +# 79 +extern void sincosf32x(_Float32x __x, _Float32x * __sinx, _Float32x * __cosx) noexcept(true); extern void __sincosf32x(_Float32x __x, _Float32x * __sinx, _Float32x * __cosx) noexcept(true); +# 85 +extern _Float32x acoshf32x(_Float32x __x) noexcept(true); extern _Float32x __acoshf32x(_Float32x __x) noexcept(true); +# 87 +extern _Float32x asinhf32x(_Float32x __x) noexcept(true); extern _Float32x __asinhf32x(_Float32x __x) noexcept(true); +# 89 +extern _Float32x atanhf32x(_Float32x __x) noexcept(true); extern _Float32x __atanhf32x(_Float32x __x) noexcept(true); +# 95 +extern _Float32x expf32x(_Float32x __x) noexcept(true); extern _Float32x __expf32x(_Float32x __x) noexcept(true); +# 98 +extern _Float32x frexpf32x(_Float32x __x, int * __exponent) noexcept(true); extern _Float32x __frexpf32x(_Float32x __x, int * __exponent) noexcept(true); +# 101 +extern _Float32x ldexpf32x(_Float32x __x, int __exponent) noexcept(true); extern _Float32x __ldexpf32x(_Float32x __x, int __exponent) noexcept(true); +# 104 +extern _Float32x logf32x(_Float32x __x) noexcept(true); extern _Float32x __logf32x(_Float32x __x) noexcept(true); +# 107 +extern _Float32x log10f32x(_Float32x __x) noexcept(true); extern _Float32x __log10f32x(_Float32x __x) noexcept(true); +# 110 +extern _Float32x modff32x(_Float32x __x, _Float32x * __iptr) noexcept(true); extern _Float32x __modff32x(_Float32x __x, _Float32x * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 114 +extern _Float32x exp10f32x(_Float32x __x) noexcept(true); extern _Float32x __exp10f32x(_Float32x __x) noexcept(true); +# 119 +extern _Float32x expm1f32x(_Float32x __x) noexcept(true); extern _Float32x __expm1f32x(_Float32x __x) noexcept(true); +# 122 +extern _Float32x log1pf32x(_Float32x __x) noexcept(true); extern _Float32x __log1pf32x(_Float32x __x) noexcept(true); +# 125 +extern _Float32x logbf32x(_Float32x __x) noexcept(true); extern _Float32x __logbf32x(_Float32x __x) noexcept(true); +# 130 +extern _Float32x exp2f32x(_Float32x __x) noexcept(true); extern _Float32x __exp2f32x(_Float32x __x) noexcept(true); +# 133 +extern _Float32x log2f32x(_Float32x __x) noexcept(true); extern _Float32x __log2f32x(_Float32x __x) noexcept(true); +# 140 +extern _Float32x powf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __powf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 143 +extern _Float32x sqrtf32x(_Float32x __x) noexcept(true); extern _Float32x __sqrtf32x(_Float32x __x) noexcept(true); +# 147 +extern _Float32x hypotf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __hypotf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 152 +extern _Float32x cbrtf32x(_Float32x __x) noexcept(true); extern _Float32x __cbrtf32x(_Float32x __x) noexcept(true); +# 159 +extern _Float32x ceilf32x(_Float32x __x) noexcept(true) __attribute((const)); extern _Float32x __ceilf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 162 +extern _Float32x fabsf32x(_Float32x __x) noexcept(true) __attribute((const)); extern _Float32x __fabsf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 165 +extern _Float32x floorf32x(_Float32x __x) noexcept(true) __attribute((const)); extern _Float32x __floorf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 168 +extern _Float32x fmodf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __fmodf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32x copysignf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); extern _Float32x __copysignf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 203 +extern _Float32x nanf32x(const char * __tagb) noexcept(true); extern _Float32x __nanf32x(const char * __tagb) noexcept(true); +# 220 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32x j0f32x(_Float32x) noexcept(true); extern _Float32x __j0f32x(_Float32x) noexcept(true); +# 221 +extern _Float32x j1f32x(_Float32x) noexcept(true); extern _Float32x __j1f32x(_Float32x) noexcept(true); +# 222 +extern _Float32x jnf32x(int, _Float32x) noexcept(true); extern _Float32x __jnf32x(int, _Float32x) noexcept(true); +# 223 +extern _Float32x y0f32x(_Float32x) noexcept(true); extern _Float32x __y0f32x(_Float32x) noexcept(true); +# 224 +extern _Float32x y1f32x(_Float32x) noexcept(true); extern _Float32x __y1f32x(_Float32x) noexcept(true); +# 225 +extern _Float32x ynf32x(int, _Float32x) noexcept(true); extern _Float32x __ynf32x(int, _Float32x) noexcept(true); +# 231 +extern _Float32x erff32x(_Float32x) noexcept(true); extern _Float32x __erff32x(_Float32x) noexcept(true); +# 232 +extern _Float32x erfcf32x(_Float32x) noexcept(true); extern _Float32x __erfcf32x(_Float32x) noexcept(true); +# 233 +extern _Float32x lgammaf32x(_Float32x) noexcept(true); extern _Float32x __lgammaf32x(_Float32x) noexcept(true); +# 238 +extern _Float32x tgammaf32x(_Float32x) noexcept(true); extern _Float32x __tgammaf32x(_Float32x) noexcept(true); +# 252 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32x lgammaf32x_r(_Float32x, int * __signgamp) noexcept(true); extern _Float32x __lgammaf32x_r(_Float32x, int * __signgamp) noexcept(true); +# 259 +extern _Float32x rintf32x(_Float32x __x) noexcept(true); extern _Float32x __rintf32x(_Float32x __x) noexcept(true); +# 262 +extern _Float32x nextafterf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __nextafterf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 269 +extern _Float32x nextdownf32x(_Float32x __x) noexcept(true); extern _Float32x __nextdownf32x(_Float32x __x) noexcept(true); +# 271 +extern _Float32x nextupf32x(_Float32x __x) noexcept(true); extern _Float32x __nextupf32x(_Float32x __x) noexcept(true); +# 275 +extern _Float32x remainderf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __remainderf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 279 +extern _Float32x scalbnf32x(_Float32x __x, int __n) noexcept(true); extern _Float32x __scalbnf32x(_Float32x __x, int __n) noexcept(true); +# 283 +extern int ilogbf32x(_Float32x __x) noexcept(true); extern int __ilogbf32x(_Float32x __x) noexcept(true); +# 288 +extern long llogbf32x(_Float32x __x) noexcept(true); extern long __llogbf32x(_Float32x __x) noexcept(true); +# 293 +extern _Float32x scalblnf32x(_Float32x __x, long __n) noexcept(true); extern _Float32x __scalblnf32x(_Float32x __x, long __n) noexcept(true); +# 297 +extern _Float32x nearbyintf32x(_Float32x __x) noexcept(true); extern _Float32x __nearbyintf32x(_Float32x __x) noexcept(true); +# 301 +extern _Float32x roundf32x(_Float32x __x) noexcept(true) __attribute((const)); extern _Float32x __roundf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 305 +extern _Float32x truncf32x(_Float32x __x) noexcept(true) __attribute((const)); extern _Float32x __truncf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 310 +extern _Float32x remquof32x(_Float32x __x, _Float32x __y, int * __quo) noexcept(true); extern _Float32x __remquof32x(_Float32x __x, _Float32x __y, int * __quo) noexcept(true); +# 317 +extern long lrintf32x(_Float32x __x) noexcept(true); extern long __lrintf32x(_Float32x __x) noexcept(true); +# 319 +__extension__ extern long long llrintf32x(_Float32x __x) noexcept(true); extern long long __llrintf32x(_Float32x __x) noexcept(true); +# 323 +extern long lroundf32x(_Float32x __x) noexcept(true); extern long __lroundf32x(_Float32x __x) noexcept(true); +# 325 +__extension__ extern long long llroundf32x(_Float32x __x) noexcept(true); extern long long __llroundf32x(_Float32x __x) noexcept(true); +# 329 +extern _Float32x fdimf32x(_Float32x __x, _Float32x __y) noexcept(true); extern _Float32x __fdimf32x(_Float32x __x, _Float32x __y) noexcept(true); +# 333 +extern _Float32x fmaxf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); extern _Float32x __fmaxf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 336 +extern _Float32x fminf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); extern _Float32x __fminf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 340 +extern _Float32x fmaf32x(_Float32x __x, _Float32x __y, _Float32x __z) noexcept(true); extern _Float32x __fmaf32x(_Float32x __x, _Float32x __y, _Float32x __z) noexcept(true); +# 345 +extern _Float32x roundevenf32x(_Float32x __x) noexcept(true) __attribute((const)); extern _Float32x __roundevenf32x(_Float32x __x) noexcept(true) __attribute((const)); +# 349 +extern __intmax_t fromfpf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); +# 354 +extern __uintmax_t ufromfpf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); +# 360 +extern __intmax_t fromfpxf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); +# 366 +extern __uintmax_t ufromfpxf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf32x(_Float32x __x, int __round, unsigned __width) noexcept(true); +# 370 +extern int canonicalizef32x(_Float32x * __cx, const _Float32x * __x) noexcept(true); +# 377 +extern _Float32x fmaxmagf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); extern _Float32x __fmaxmagf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 380 +extern _Float32x fminmagf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); extern _Float32x __fminmagf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 385 +extern _Float32x fmaximumf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); extern _Float32x __fmaximumf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 388 +extern _Float32x fminimumf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); extern _Float32x __fminimumf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 391 +extern _Float32x fmaximum_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); extern _Float32x __fmaximum_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 394 +extern _Float32x fminimum_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); extern _Float32x __fminimum_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 397 +extern _Float32x fmaximum_magf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); extern _Float32x __fmaximum_magf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 400 +extern _Float32x fminimum_magf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); extern _Float32x __fminimum_magf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 403 +extern _Float32x fmaximum_mag_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); extern _Float32x __fmaximum_mag_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 406 +extern _Float32x fminimum_mag_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); extern _Float32x __fminimum_mag_numf32x(_Float32x __x, _Float32x __y) noexcept(true) __attribute((const)); +# 411 +extern int totalorderf32x(const _Float32x * __x, const _Float32x * __y) noexcept(true) +# 413 + __attribute((__pure__)); +# 416 +extern int totalordermagf32x(const _Float32x * __x, const _Float32x * __y) noexcept(true) +# 418 + __attribute((__pure__)); +# 421 +extern _Float32x getpayloadf32x(const _Float32x * __x) noexcept(true); extern _Float32x __getpayloadf32x(const _Float32x * __x) noexcept(true); +# 424 +extern int setpayloadf32x(_Float32x * __x, _Float32x __payload) noexcept(true); +# 427 +extern int setpayloadsigf32x(_Float32x * __x, _Float32x __payload) noexcept(true); +# 53 "/usr/include/x86_64-linux-gnu/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); +# 71 +extern _Float64x coshf64x(_Float64x __x) noexcept(true); extern _Float64x __coshf64x(_Float64x __x) noexcept(true); +# 73 +extern _Float64x sinhf64x(_Float64x __x) noexcept(true); extern _Float64x __sinhf64x(_Float64x __x) noexcept(true); +# 75 +extern _Float64x tanhf64x(_Float64x __x) noexcept(true); extern _Float64x __tanhf64x(_Float64x __x) noexcept(true); +# 79 +extern void sincosf64x(_Float64x __x, _Float64x * __sinx, _Float64x * __cosx) noexcept(true); extern void __sincosf64x(_Float64x __x, _Float64x * __sinx, _Float64x * __cosx) noexcept(true); +# 85 +extern _Float64x acoshf64x(_Float64x __x) noexcept(true); extern _Float64x __acoshf64x(_Float64x __x) noexcept(true); +# 87 +extern _Float64x asinhf64x(_Float64x __x) noexcept(true); extern _Float64x __asinhf64x(_Float64x __x) noexcept(true); +# 89 +extern _Float64x atanhf64x(_Float64x __x) noexcept(true); extern _Float64x __atanhf64x(_Float64x __x) noexcept(true); +# 95 +extern _Float64x expf64x(_Float64x __x) noexcept(true); extern _Float64x __expf64x(_Float64x __x) noexcept(true); +# 98 +extern _Float64x frexpf64x(_Float64x __x, int * __exponent) noexcept(true); extern _Float64x __frexpf64x(_Float64x __x, int * __exponent) noexcept(true); +# 101 +extern _Float64x ldexpf64x(_Float64x __x, int __exponent) noexcept(true); extern _Float64x __ldexpf64x(_Float64x __x, int __exponent) noexcept(true); +# 104 +extern _Float64x logf64x(_Float64x __x) noexcept(true); extern _Float64x __logf64x(_Float64x __x) noexcept(true); +# 107 +extern _Float64x log10f64x(_Float64x __x) noexcept(true); extern _Float64x __log10f64x(_Float64x __x) noexcept(true); +# 110 +extern _Float64x modff64x(_Float64x __x, _Float64x * __iptr) noexcept(true); extern _Float64x __modff64x(_Float64x __x, _Float64x * __iptr) noexcept(true) __attribute((__nonnull__(2))); +# 114 +extern _Float64x exp10f64x(_Float64x __x) noexcept(true); extern _Float64x __exp10f64x(_Float64x __x) noexcept(true); +# 119 +extern _Float64x expm1f64x(_Float64x __x) noexcept(true); extern _Float64x __expm1f64x(_Float64x __x) noexcept(true); +# 122 +extern _Float64x log1pf64x(_Float64x __x) noexcept(true); extern _Float64x __log1pf64x(_Float64x __x) noexcept(true); +# 125 +extern _Float64x logbf64x(_Float64x __x) noexcept(true); extern _Float64x __logbf64x(_Float64x __x) noexcept(true); +# 130 +extern _Float64x exp2f64x(_Float64x __x) noexcept(true); extern _Float64x __exp2f64x(_Float64x __x) noexcept(true); +# 133 +extern _Float64x log2f64x(_Float64x __x) noexcept(true); extern _Float64x __log2f64x(_Float64x __x) noexcept(true); +# 140 +extern _Float64x powf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __powf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 143 +extern _Float64x sqrtf64x(_Float64x __x) noexcept(true); extern _Float64x __sqrtf64x(_Float64x __x) noexcept(true); +# 147 +extern _Float64x hypotf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __hypotf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 152 +extern _Float64x cbrtf64x(_Float64x __x) noexcept(true); extern _Float64x __cbrtf64x(_Float64x __x) noexcept(true); +# 159 +extern _Float64x ceilf64x(_Float64x __x) noexcept(true) __attribute((const)); extern _Float64x __ceilf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 162 +extern _Float64x fabsf64x(_Float64x __x) noexcept(true) __attribute((const)); extern _Float64x __fabsf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 165 +extern _Float64x floorf64x(_Float64x __x) noexcept(true) __attribute((const)); extern _Float64x __floorf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 168 +extern _Float64x fmodf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __fmodf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 198 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64x copysignf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); extern _Float64x __copysignf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 203 +extern _Float64x nanf64x(const char * __tagb) noexcept(true); extern _Float64x __nanf64x(const char * __tagb) noexcept(true); +# 220 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64x j0f64x(_Float64x) noexcept(true); extern _Float64x __j0f64x(_Float64x) noexcept(true); +# 221 +extern _Float64x j1f64x(_Float64x) noexcept(true); extern _Float64x __j1f64x(_Float64x) noexcept(true); +# 222 +extern _Float64x jnf64x(int, _Float64x) noexcept(true); extern _Float64x __jnf64x(int, _Float64x) noexcept(true); +# 223 +extern _Float64x y0f64x(_Float64x) noexcept(true); extern _Float64x __y0f64x(_Float64x) noexcept(true); +# 224 +extern _Float64x y1f64x(_Float64x) noexcept(true); extern _Float64x __y1f64x(_Float64x) noexcept(true); +# 225 +extern _Float64x ynf64x(int, _Float64x) noexcept(true); extern _Float64x __ynf64x(int, _Float64x) noexcept(true); +# 231 +extern _Float64x erff64x(_Float64x) noexcept(true); extern _Float64x __erff64x(_Float64x) noexcept(true); +# 232 +extern _Float64x erfcf64x(_Float64x) noexcept(true); extern _Float64x __erfcf64x(_Float64x) noexcept(true); +# 233 +extern _Float64x lgammaf64x(_Float64x) noexcept(true); extern _Float64x __lgammaf64x(_Float64x) noexcept(true); +# 238 +extern _Float64x tgammaf64x(_Float64x) noexcept(true); extern _Float64x __tgammaf64x(_Float64x) noexcept(true); +# 252 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64x lgammaf64x_r(_Float64x, int * __signgamp) noexcept(true); extern _Float64x __lgammaf64x_r(_Float64x, int * __signgamp) noexcept(true); +# 259 +extern _Float64x rintf64x(_Float64x __x) noexcept(true); extern _Float64x __rintf64x(_Float64x __x) noexcept(true); +# 262 +extern _Float64x nextafterf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __nextafterf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 269 +extern _Float64x nextdownf64x(_Float64x __x) noexcept(true); extern _Float64x __nextdownf64x(_Float64x __x) noexcept(true); +# 271 +extern _Float64x nextupf64x(_Float64x __x) noexcept(true); extern _Float64x __nextupf64x(_Float64x __x) noexcept(true); +# 275 +extern _Float64x remainderf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __remainderf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 279 +extern _Float64x scalbnf64x(_Float64x __x, int __n) noexcept(true); extern _Float64x __scalbnf64x(_Float64x __x, int __n) noexcept(true); +# 283 +extern int ilogbf64x(_Float64x __x) noexcept(true); extern int __ilogbf64x(_Float64x __x) noexcept(true); +# 288 +extern long llogbf64x(_Float64x __x) noexcept(true); extern long __llogbf64x(_Float64x __x) noexcept(true); +# 293 +extern _Float64x scalblnf64x(_Float64x __x, long __n) noexcept(true); extern _Float64x __scalblnf64x(_Float64x __x, long __n) noexcept(true); +# 297 +extern _Float64x nearbyintf64x(_Float64x __x) noexcept(true); extern _Float64x __nearbyintf64x(_Float64x __x) noexcept(true); +# 301 +extern _Float64x roundf64x(_Float64x __x) noexcept(true) __attribute((const)); extern _Float64x __roundf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 305 +extern _Float64x truncf64x(_Float64x __x) noexcept(true) __attribute((const)); extern _Float64x __truncf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 310 +extern _Float64x remquof64x(_Float64x __x, _Float64x __y, int * __quo) noexcept(true); extern _Float64x __remquof64x(_Float64x __x, _Float64x __y, int * __quo) noexcept(true); +# 317 +extern long lrintf64x(_Float64x __x) noexcept(true); extern long __lrintf64x(_Float64x __x) noexcept(true); +# 319 +__extension__ extern long long llrintf64x(_Float64x __x) noexcept(true); extern long long __llrintf64x(_Float64x __x) noexcept(true); +# 323 +extern long lroundf64x(_Float64x __x) noexcept(true); extern long __lroundf64x(_Float64x __x) noexcept(true); +# 325 +__extension__ extern long long llroundf64x(_Float64x __x) noexcept(true); extern long long __llroundf64x(_Float64x __x) noexcept(true); +# 329 +extern _Float64x fdimf64x(_Float64x __x, _Float64x __y) noexcept(true); extern _Float64x __fdimf64x(_Float64x __x, _Float64x __y) noexcept(true); +# 333 +extern _Float64x fmaxf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); extern _Float64x __fmaxf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 336 +extern _Float64x fminf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); extern _Float64x __fminf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 340 +extern _Float64x fmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) noexcept(true); extern _Float64x __fmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) noexcept(true); +# 345 +extern _Float64x roundevenf64x(_Float64x __x) noexcept(true) __attribute((const)); extern _Float64x __roundevenf64x(_Float64x __x) noexcept(true) __attribute((const)); +# 349 +extern __intmax_t fromfpf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); +# 354 +extern __uintmax_t ufromfpf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); +# 360 +extern __intmax_t fromfpxf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); extern __intmax_t __fromfpxf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); +# 366 +extern __uintmax_t ufromfpxf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); extern __uintmax_t __ufromfpxf64x(_Float64x __x, int __round, unsigned __width) noexcept(true); +# 370 +extern int canonicalizef64x(_Float64x * __cx, const _Float64x * __x) noexcept(true); +# 377 +extern _Float64x fmaxmagf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); extern _Float64x __fmaxmagf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 380 +extern _Float64x fminmagf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); extern _Float64x __fminmagf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 385 +extern _Float64x fmaximumf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); extern _Float64x __fmaximumf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 388 +extern _Float64x fminimumf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); extern _Float64x __fminimumf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 391 +extern _Float64x fmaximum_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); extern _Float64x __fmaximum_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 394 +extern _Float64x fminimum_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); extern _Float64x __fminimum_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 397 +extern _Float64x fmaximum_magf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); extern _Float64x __fmaximum_magf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 400 +extern _Float64x fminimum_magf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); extern _Float64x __fminimum_magf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 403 +extern _Float64x fmaximum_mag_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); extern _Float64x __fmaximum_mag_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 406 +extern _Float64x fminimum_mag_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); extern _Float64x __fminimum_mag_numf64x(_Float64x __x, _Float64x __y) noexcept(true) __attribute((const)); +# 411 +extern int totalorderf64x(const _Float64x * __x, const _Float64x * __y) noexcept(true) +# 413 + __attribute((__pure__)); +# 416 +extern int totalordermagf64x(const _Float64x * __x, const _Float64x * __y) noexcept(true) +# 418 + __attribute((__pure__)); +# 421 +extern _Float64x getpayloadf64x(const _Float64x * __x) noexcept(true); extern _Float64x __getpayloadf64x(const _Float64x * __x) noexcept(true); +# 424 +extern int setpayloadf64x(_Float64x * __x, _Float64x __payload) noexcept(true); +# 427 +extern int setpayloadsigf64x(_Float64x * __x, _Float64x __payload) noexcept(true); +# 24 "/usr/include/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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/x86_64-linux-gnu/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); +# 854 "/usr/include/math.h" 3 +extern int signgam; +# 935 "/usr/include/math.h" 3 +enum { +# 936 +FP_NAN, +# 939 +FP_INFINITE, +# 942 +FP_ZERO, +# 945 +FP_SUBNORMAL, +# 948 +FP_NORMAL +# 951 +}; +# 23 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 3 +extern int __iscanonicall(long double __x) noexcept(true) +# 24 + __attribute((const)); +# 46 "/usr/include/x86_64-linux-gnu/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 +} +# 1066 "/usr/include/math.h" 3 +extern "C++" { +# 1067 +inline int issignaling(float __val) { return __issignalingf(__val); } +# 1068 +inline int issignaling(double __val) { return __issignaling(__val); } +# 1070 +inline int issignaling(long double __val) +# 1071 +{ +# 1075 +return __issignalingl(__val); +# 1077 +} +# 1081 +inline int issignaling(_Float128 __val) { return __issignalingf128(__val); } +# 1083 +} +# 1097 "/usr/include/math.h" 3 +extern "C++" { +# 1128 "/usr/include/math.h" 3 +template< class __T> inline bool +# 1129 +iszero(__T __val) +# 1130 +{ +# 1131 +return __val == 0; +# 1132 +} +# 1134 +} +# 1363 "/usr/include/math.h" 3 +extern "C++" { +# 1364 +template< class > struct __iseqsig_type; +# 1366 +template<> struct __iseqsig_type< float> { +# 1368 +static int __call(float __x, float __y) throw() +# 1369 +{ +# 1370 +return __iseqsigf(__x, __y); +# 1371 +} +# 1372 +}; +# 1374 +template<> struct __iseqsig_type< double> { +# 1376 +static int __call(double __x, double __y) throw() +# 1377 +{ +# 1378 +return __iseqsig(__x, __y); +# 1379 +} +# 1380 +}; +# 1382 +template<> struct __iseqsig_type< long double> { +# 1384 +static int __call(long double __x, long double __y) throw() +# 1385 +{ +# 1387 +return __iseqsigl(__x, __y); +# 1391 +} +# 1392 +}; +# 1397 +template<> struct __iseqsig_type< __float128> { +# 1399 +static int __call(_Float128 __x, _Float128 __y) throw() +# 1400 +{ +# 1401 +return __iseqsigf128(__x, __y); +# 1402 +} +# 1403 +}; +# 1406 +template< class _T1, class _T2> inline int +# 1408 +iseqsig(_T1 __x, _T2 __y) throw() +# 1409 +{ +# 1411 +typedef __decltype(((__x + __y) + (0.0F))) _T3; +# 1415 +return __iseqsig_type< __decltype(((__x + __y) + (0.0F)))> ::__call(__x, __y); +# 1416 +} +# 1418 +} +# 1423 +} +# 77 "/usr/include/c++/11/cmath" 3 +extern "C++" { +# 79 +namespace std __attribute((__visibility__("default"))) { +# 83 +using ::acos; +# 87 +constexpr float acos(float __x) +# 88 +{ return __builtin_acosf(__x); } +# 91 +constexpr long double acos(long double __x) +# 92 +{ return __builtin_acosl(__x); } +# 95 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 99 +acos(_Tp __x) +# 100 +{ return __builtin_acos(__x); } +# 102 +using ::asin; +# 106 +constexpr float asin(float __x) +# 107 +{ return __builtin_asinf(__x); } +# 110 +constexpr long double asin(long double __x) +# 111 +{ return __builtin_asinl(__x); } +# 114 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 118 +asin(_Tp __x) +# 119 +{ return __builtin_asin(__x); } +# 121 +using ::atan; +# 125 +constexpr float atan(float __x) +# 126 +{ return __builtin_atanf(__x); } +# 129 +constexpr long double atan(long double __x) +# 130 +{ return __builtin_atanl(__x); } +# 133 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 137 +atan(_Tp __x) +# 138 +{ return __builtin_atan(__x); } +# 140 +using ::atan2; +# 144 +constexpr float atan2(float __y, float __x) +# 145 +{ return __builtin_atan2f(__y, __x); } +# 148 +constexpr long double atan2(long double __y, long double __x) +# 149 +{ return __builtin_atan2l(__y, __x); } +# 152 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 155 +atan2(_Tp __y, _Up __x) +# 156 +{ +# 157 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 158 +return atan2((__type)__y, (__type)__x); +# 159 +} +# 161 +using ::ceil; +# 165 +constexpr float ceil(float __x) +# 166 +{ return __builtin_ceilf(__x); } +# 169 +constexpr long double ceil(long double __x) +# 170 +{ return __builtin_ceill(__x); } +# 173 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 177 +ceil(_Tp __x) +# 178 +{ return __builtin_ceil(__x); } +# 180 +using ::cos; +# 184 +constexpr float cos(float __x) +# 185 +{ return __builtin_cosf(__x); } +# 188 +constexpr long double cos(long double __x) +# 189 +{ return __builtin_cosl(__x); } +# 192 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 196 +cos(_Tp __x) +# 197 +{ return __builtin_cos(__x); } +# 199 +using ::cosh; +# 203 +constexpr float cosh(float __x) +# 204 +{ return __builtin_coshf(__x); } +# 207 +constexpr long double cosh(long double __x) +# 208 +{ return __builtin_coshl(__x); } +# 211 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 215 +cosh(_Tp __x) +# 216 +{ return __builtin_cosh(__x); } +# 218 +using ::exp; +# 222 +constexpr float exp(float __x) +# 223 +{ return __builtin_expf(__x); } +# 226 +constexpr long double exp(long double __x) +# 227 +{ return __builtin_expl(__x); } +# 230 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 234 +exp(_Tp __x) +# 235 +{ return __builtin_exp(__x); } +# 237 +using ::fabs; +# 241 +constexpr float fabs(float __x) +# 242 +{ return __builtin_fabsf(__x); } +# 245 +constexpr long double fabs(long double __x) +# 246 +{ return __builtin_fabsl(__x); } +# 249 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 253 +fabs(_Tp __x) +# 254 +{ return __builtin_fabs(__x); } +# 256 +using ::floor; +# 260 +constexpr float floor(float __x) +# 261 +{ return __builtin_floorf(__x); } +# 264 +constexpr long double floor(long double __x) +# 265 +{ return __builtin_floorl(__x); } +# 268 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 272 +floor(_Tp __x) +# 273 +{ return __builtin_floor(__x); } +# 275 +using ::fmod; +# 279 +constexpr float fmod(float __x, float __y) +# 280 +{ return __builtin_fmodf(__x, __y); } +# 283 +constexpr long double fmod(long double __x, long double __y) +# 284 +{ return __builtin_fmodl(__x, __y); } +# 287 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 290 +fmod(_Tp __x, _Up __y) +# 291 +{ +# 292 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 293 +return fmod((__type)__x, (__type)__y); +# 294 +} +# 296 +using ::frexp; +# 300 +inline float frexp(float __x, int *__exp) +# 301 +{ return __builtin_frexpf(__x, __exp); } +# 304 +inline long double frexp(long double __x, int *__exp) +# 305 +{ return __builtin_frexpl(__x, __exp); } +# 308 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 312 +frexp(_Tp __x, int *__exp) +# 313 +{ return __builtin_frexp(__x, __exp); } +# 315 +using ::ldexp; +# 319 +constexpr float ldexp(float __x, int __exp) +# 320 +{ return __builtin_ldexpf(__x, __exp); } +# 323 +constexpr long double ldexp(long double __x, int __exp) +# 324 +{ return __builtin_ldexpl(__x, __exp); } +# 327 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 331 +ldexp(_Tp __x, int __exp) +# 332 +{ return __builtin_ldexp(__x, __exp); } +# 334 +using ::log; +# 338 +constexpr float log(float __x) +# 339 +{ return __builtin_logf(__x); } +# 342 +constexpr long double log(long double __x) +# 343 +{ return __builtin_logl(__x); } +# 346 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 350 +log(_Tp __x) +# 351 +{ return __builtin_log(__x); } +# 353 +using ::log10; +# 357 +constexpr float log10(float __x) +# 358 +{ return __builtin_log10f(__x); } +# 361 +constexpr long double log10(long double __x) +# 362 +{ return __builtin_log10l(__x); } +# 365 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 369 +log10(_Tp __x) +# 370 +{ return __builtin_log10(__x); } +# 372 +using ::modf; +# 376 +inline float modf(float __x, float *__iptr) +# 377 +{ return __builtin_modff(__x, __iptr); } +# 380 +inline long double modf(long double __x, long double *__iptr) +# 381 +{ return __builtin_modfl(__x, __iptr); } +# 384 +using ::pow; +# 388 +constexpr float pow(float __x, float __y) +# 389 +{ return __builtin_powf(__x, __y); } +# 392 +constexpr long double pow(long double __x, long double __y) +# 393 +{ return __builtin_powl(__x, __y); } +# 412 "/usr/include/c++/11/cmath" 3 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 415 +pow(_Tp __x, _Up __y) +# 416 +{ +# 417 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 418 +return pow((__type)__x, (__type)__y); +# 419 +} +# 421 +using ::sin; +# 425 +constexpr float sin(float __x) +# 426 +{ return __builtin_sinf(__x); } +# 429 +constexpr long double sin(long double __x) +# 430 +{ return __builtin_sinl(__x); } +# 433 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 437 +sin(_Tp __x) +# 438 +{ return __builtin_sin(__x); } +# 440 +using ::sinh; +# 444 +constexpr float sinh(float __x) +# 445 +{ return __builtin_sinhf(__x); } +# 448 +constexpr long double sinh(long double __x) +# 449 +{ return __builtin_sinhl(__x); } +# 452 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 456 +sinh(_Tp __x) +# 457 +{ return __builtin_sinh(__x); } +# 459 +using ::sqrt; +# 463 +constexpr float sqrt(float __x) +# 464 +{ return __builtin_sqrtf(__x); } +# 467 +constexpr long double sqrt(long double __x) +# 468 +{ return __builtin_sqrtl(__x); } +# 471 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 475 +sqrt(_Tp __x) +# 476 +{ return __builtin_sqrt(__x); } +# 478 +using ::tan; +# 482 +constexpr float tan(float __x) +# 483 +{ return __builtin_tanf(__x); } +# 486 +constexpr long double tan(long double __x) +# 487 +{ return __builtin_tanl(__x); } +# 490 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 494 +tan(_Tp __x) +# 495 +{ return __builtin_tan(__x); } +# 497 +using ::tanh; +# 501 +constexpr float tanh(float __x) +# 502 +{ return __builtin_tanhf(__x); } +# 505 +constexpr long double tanh(long double __x) +# 506 +{ return __builtin_tanhl(__x); } +# 509 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 513 +tanh(_Tp __x) +# 514 +{ return __builtin_tanh(__x); } +# 537 "/usr/include/c++/11/cmath" 3 +constexpr int fpclassify(float __x) +# 538 +{ return __builtin_fpclassify(0, 1, 4, 3, 2, __x); +# 539 +} +# 542 +constexpr int fpclassify(double __x) +# 543 +{ return __builtin_fpclassify(0, 1, 4, 3, 2, __x); +# 544 +} +# 547 +constexpr int fpclassify(long double __x) +# 548 +{ return __builtin_fpclassify(0, 1, 4, 3, 2, __x); +# 549 +} +# 553 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, int> ::__type +# 556 +fpclassify(_Tp __x) +# 557 +{ return (__x != 0) ? 4 : 2; } +# 562 +constexpr bool isfinite(float __x) +# 563 +{ return __builtin_isfinite(__x); } +# 566 +constexpr bool isfinite(double __x) +# 567 +{ return __builtin_isfinite(__x); } +# 570 +constexpr bool isfinite(long double __x) +# 571 +{ return __builtin_isfinite(__x); } +# 575 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 578 +isfinite(_Tp __x) +# 579 +{ return true; } +# 584 +constexpr bool isinf(float __x) +# 585 +{ return __builtin_isinf(__x); } +# 592 +constexpr bool isinf(double __x) +# 593 +{ return __builtin_isinf(__x); } +# 597 +constexpr bool isinf(long double __x) +# 598 +{ return __builtin_isinf(__x); } +# 602 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 605 +isinf(_Tp __x) +# 606 +{ return false; } +# 611 +constexpr bool isnan(float __x) +# 612 +{ return __builtin_isnan(__x); } +# 619 +constexpr bool isnan(double __x) +# 620 +{ return __builtin_isnan(__x); } +# 624 +constexpr bool isnan(long double __x) +# 625 +{ return __builtin_isnan(__x); } +# 629 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 632 +isnan(_Tp __x) +# 633 +{ return false; } +# 638 +constexpr bool isnormal(float __x) +# 639 +{ return __builtin_isnormal(__x); } +# 642 +constexpr bool isnormal(double __x) +# 643 +{ return __builtin_isnormal(__x); } +# 646 +constexpr bool isnormal(long double __x) +# 647 +{ return __builtin_isnormal(__x); } +# 651 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 654 +isnormal(_Tp __x) +# 655 +{ return (__x != 0) ? true : false; } +# 661 +constexpr bool signbit(float __x) +# 662 +{ return __builtin_signbit(__x); } +# 665 +constexpr bool signbit(double __x) +# 666 +{ return __builtin_signbit(__x); } +# 669 +constexpr bool signbit(long double __x) +# 670 +{ return __builtin_signbit(__x); } +# 674 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 677 +signbit(_Tp __x) +# 678 +{ return (__x < 0) ? true : false; } +# 683 +constexpr bool isgreater(float __x, float __y) +# 684 +{ return __builtin_isgreater(__x, __y); } +# 687 +constexpr bool isgreater(double __x, double __y) +# 688 +{ return __builtin_isgreater(__x, __y); } +# 691 +constexpr bool isgreater(long double __x, long double __y) +# 692 +{ return __builtin_isgreater(__x, __y); } +# 696 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 700 +isgreater(_Tp __x, _Up __y) +# 701 +{ +# 702 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 703 +return __builtin_isgreater((__type)__x, (__type)__y); +# 704 +} +# 709 +constexpr bool isgreaterequal(float __x, float __y) +# 710 +{ return __builtin_isgreaterequal(__x, __y); } +# 713 +constexpr bool isgreaterequal(double __x, double __y) +# 714 +{ return __builtin_isgreaterequal(__x, __y); } +# 717 +constexpr bool isgreaterequal(long double __x, long double __y) +# 718 +{ return __builtin_isgreaterequal(__x, __y); } +# 722 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 726 +isgreaterequal(_Tp __x, _Up __y) +# 727 +{ +# 728 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 729 +return __builtin_isgreaterequal((__type)__x, (__type)__y); +# 730 +} +# 735 +constexpr bool isless(float __x, float __y) +# 736 +{ return __builtin_isless(__x, __y); } +# 739 +constexpr bool isless(double __x, double __y) +# 740 +{ return __builtin_isless(__x, __y); } +# 743 +constexpr bool isless(long double __x, long double __y) +# 744 +{ return __builtin_isless(__x, __y); } +# 748 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 752 +isless(_Tp __x, _Up __y) +# 753 +{ +# 754 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 755 +return __builtin_isless((__type)__x, (__type)__y); +# 756 +} +# 761 +constexpr bool islessequal(float __x, float __y) +# 762 +{ return __builtin_islessequal(__x, __y); } +# 765 +constexpr bool islessequal(double __x, double __y) +# 766 +{ return __builtin_islessequal(__x, __y); } +# 769 +constexpr bool islessequal(long double __x, long double __y) +# 770 +{ return __builtin_islessequal(__x, __y); } +# 774 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 778 +islessequal(_Tp __x, _Up __y) +# 779 +{ +# 780 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 781 +return __builtin_islessequal((__type)__x, (__type)__y); +# 782 +} +# 787 +constexpr bool islessgreater(float __x, float __y) +# 788 +{ return __builtin_islessgreater(__x, __y); } +# 791 +constexpr bool islessgreater(double __x, double __y) +# 792 +{ return __builtin_islessgreater(__x, __y); } +# 795 +constexpr bool islessgreater(long double __x, long double __y) +# 796 +{ return __builtin_islessgreater(__x, __y); } +# 800 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 804 +islessgreater(_Tp __x, _Up __y) +# 805 +{ +# 806 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 807 +return __builtin_islessgreater((__type)__x, (__type)__y); +# 808 +} +# 813 +constexpr bool isunordered(float __x, float __y) +# 814 +{ return __builtin_isunordered(__x, __y); } +# 817 +constexpr bool isunordered(double __x, double __y) +# 818 +{ return __builtin_isunordered(__x, __y); } +# 821 +constexpr bool isunordered(long double __x, long double __y) +# 822 +{ return __builtin_isunordered(__x, __y); } +# 826 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 830 +isunordered(_Tp __x, _Up __y) +# 831 +{ +# 832 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 833 +return __builtin_isunordered((__type)__x, (__type)__y); +# 834 +} +# 1065 "/usr/include/c++/11/cmath" 3 +using ::double_t; +# 1066 +using ::float_t; +# 1069 +using ::acosh; +# 1070 +using ::acoshf; +# 1071 +using ::acoshl; +# 1073 +using ::asinh; +# 1074 +using ::asinhf; +# 1075 +using ::asinhl; +# 1077 +using ::atanh; +# 1078 +using ::atanhf; +# 1079 +using ::atanhl; +# 1081 +using ::cbrt; +# 1082 +using ::cbrtf; +# 1083 +using ::cbrtl; +# 1085 +using ::copysign; +# 1086 +using ::copysignf; +# 1087 +using ::copysignl; +# 1089 +using ::erf; +# 1090 +using ::erff; +# 1091 +using ::erfl; +# 1093 +using ::erfc; +# 1094 +using ::erfcf; +# 1095 +using ::erfcl; +# 1097 +using ::exp2; +# 1098 +using ::exp2f; +# 1099 +using ::exp2l; +# 1101 +using ::expm1; +# 1102 +using ::expm1f; +# 1103 +using ::expm1l; +# 1105 +using ::fdim; +# 1106 +using ::fdimf; +# 1107 +using ::fdiml; +# 1109 +using ::fma; +# 1110 +using ::fmaf; +# 1111 +using ::fmal; +# 1113 +using ::fmax; +# 1114 +using ::fmaxf; +# 1115 +using ::fmaxl; +# 1117 +using ::fmin; +# 1118 +using ::fminf; +# 1119 +using ::fminl; +# 1121 +using ::hypot; +# 1122 +using ::hypotf; +# 1123 +using ::hypotl; +# 1125 +using ::ilogb; +# 1126 +using ::ilogbf; +# 1127 +using ::ilogbl; +# 1129 +using ::lgamma; +# 1130 +using ::lgammaf; +# 1131 +using ::lgammal; +# 1134 +using ::llrint; +# 1135 +using ::llrintf; +# 1136 +using ::llrintl; +# 1138 +using ::llround; +# 1139 +using ::llroundf; +# 1140 +using ::llroundl; +# 1143 +using ::log1p; +# 1144 +using ::log1pf; +# 1145 +using ::log1pl; +# 1147 +using ::log2; +# 1148 +using ::log2f; +# 1149 +using ::log2l; +# 1151 +using ::logb; +# 1152 +using ::logbf; +# 1153 +using ::logbl; +# 1155 +using ::lrint; +# 1156 +using ::lrintf; +# 1157 +using ::lrintl; +# 1159 +using ::lround; +# 1160 +using ::lroundf; +# 1161 +using ::lroundl; +# 1163 +using ::nan; +# 1164 +using ::nanf; +# 1165 +using ::nanl; +# 1167 +using ::nearbyint; +# 1168 +using ::nearbyintf; +# 1169 +using ::nearbyintl; +# 1171 +using ::nextafter; +# 1172 +using ::nextafterf; +# 1173 +using ::nextafterl; +# 1175 +using ::nexttoward; +# 1176 +using ::nexttowardf; +# 1177 +using ::nexttowardl; +# 1179 +using ::remainder; +# 1180 +using ::remainderf; +# 1181 +using ::remainderl; +# 1183 +using ::remquo; +# 1184 +using ::remquof; +# 1185 +using ::remquol; +# 1187 +using ::rint; +# 1188 +using ::rintf; +# 1189 +using ::rintl; +# 1191 +using ::round; +# 1192 +using ::roundf; +# 1193 +using ::roundl; +# 1195 +using ::scalbln; +# 1196 +using ::scalblnf; +# 1197 +using ::scalblnl; +# 1199 +using ::scalbn; +# 1200 +using ::scalbnf; +# 1201 +using ::scalbnl; +# 1203 +using ::tgamma; +# 1204 +using ::tgammaf; +# 1205 +using ::tgammal; +# 1207 +using ::trunc; +# 1208 +using ::truncf; +# 1209 +using ::truncl; +# 1214 +constexpr float acosh(float __x) +# 1215 +{ return __builtin_acoshf(__x); } +# 1218 +constexpr long double acosh(long double __x) +# 1219 +{ return __builtin_acoshl(__x); } +# 1223 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1226 +acosh(_Tp __x) +# 1227 +{ return __builtin_acosh(__x); } +# 1232 +constexpr float asinh(float __x) +# 1233 +{ return __builtin_asinhf(__x); } +# 1236 +constexpr long double asinh(long double __x) +# 1237 +{ return __builtin_asinhl(__x); } +# 1241 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1244 +asinh(_Tp __x) +# 1245 +{ return __builtin_asinh(__x); } +# 1250 +constexpr float atanh(float __x) +# 1251 +{ return __builtin_atanhf(__x); } +# 1254 +constexpr long double atanh(long double __x) +# 1255 +{ return __builtin_atanhl(__x); } +# 1259 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1262 +atanh(_Tp __x) +# 1263 +{ return __builtin_atanh(__x); } +# 1268 +constexpr float cbrt(float __x) +# 1269 +{ return __builtin_cbrtf(__x); } +# 1272 +constexpr long double cbrt(long double __x) +# 1273 +{ return __builtin_cbrtl(__x); } +# 1277 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1280 +cbrt(_Tp __x) +# 1281 +{ return __builtin_cbrt(__x); } +# 1286 +constexpr float copysign(float __x, float __y) +# 1287 +{ return __builtin_copysignf(__x, __y); } +# 1290 +constexpr long double copysign(long double __x, long double __y) +# 1291 +{ return __builtin_copysignl(__x, __y); } +# 1295 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1297 +copysign(_Tp __x, _Up __y) +# 1298 +{ +# 1299 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1300 +return copysign((__type)__x, (__type)__y); +# 1301 +} +# 1306 +constexpr float erf(float __x) +# 1307 +{ return __builtin_erff(__x); } +# 1310 +constexpr long double erf(long double __x) +# 1311 +{ return __builtin_erfl(__x); } +# 1315 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1318 +erf(_Tp __x) +# 1319 +{ return __builtin_erf(__x); } +# 1324 +constexpr float erfc(float __x) +# 1325 +{ return __builtin_erfcf(__x); } +# 1328 +constexpr long double erfc(long double __x) +# 1329 +{ return __builtin_erfcl(__x); } +# 1333 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1336 +erfc(_Tp __x) +# 1337 +{ return __builtin_erfc(__x); } +# 1342 +constexpr float exp2(float __x) +# 1343 +{ return __builtin_exp2f(__x); } +# 1346 +constexpr long double exp2(long double __x) +# 1347 +{ return __builtin_exp2l(__x); } +# 1351 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1354 +exp2(_Tp __x) +# 1355 +{ return __builtin_exp2(__x); } +# 1360 +constexpr float expm1(float __x) +# 1361 +{ return __builtin_expm1f(__x); } +# 1364 +constexpr long double expm1(long double __x) +# 1365 +{ return __builtin_expm1l(__x); } +# 1369 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1372 +expm1(_Tp __x) +# 1373 +{ return __builtin_expm1(__x); } +# 1378 +constexpr float fdim(float __x, float __y) +# 1379 +{ return __builtin_fdimf(__x, __y); } +# 1382 +constexpr long double fdim(long double __x, long double __y) +# 1383 +{ return __builtin_fdiml(__x, __y); } +# 1387 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1389 +fdim(_Tp __x, _Up __y) +# 1390 +{ +# 1391 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1392 +return fdim((__type)__x, (__type)__y); +# 1393 +} +# 1398 +constexpr float fma(float __x, float __y, float __z) +# 1399 +{ return __builtin_fmaf(__x, __y, __z); } +# 1402 +constexpr long double fma(long double __x, long double __y, long double __z) +# 1403 +{ return __builtin_fmal(__x, __y, __z); } +# 1407 +template< class _Tp, class _Up, class _Vp> constexpr typename __gnu_cxx::__promote_3< _Tp, _Up, _Vp> ::__type +# 1409 +fma(_Tp __x, _Up __y, _Vp __z) +# 1410 +{ +# 1411 +typedef typename __gnu_cxx::__promote_3< _Tp, _Up, _Vp> ::__type __type; +# 1412 +return fma((__type)__x, (__type)__y, (__type)__z); +# 1413 +} +# 1418 +constexpr float fmax(float __x, float __y) +# 1419 +{ return __builtin_fmaxf(__x, __y); } +# 1422 +constexpr long double fmax(long double __x, long double __y) +# 1423 +{ return __builtin_fmaxl(__x, __y); } +# 1427 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1429 +fmax(_Tp __x, _Up __y) +# 1430 +{ +# 1431 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1432 +return fmax((__type)__x, (__type)__y); +# 1433 +} +# 1438 +constexpr float fmin(float __x, float __y) +# 1439 +{ return __builtin_fminf(__x, __y); } +# 1442 +constexpr long double fmin(long double __x, long double __y) +# 1443 +{ return __builtin_fminl(__x, __y); } +# 1447 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1449 +fmin(_Tp __x, _Up __y) +# 1450 +{ +# 1451 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1452 +return fmin((__type)__x, (__type)__y); +# 1453 +} +# 1458 +constexpr float hypot(float __x, float __y) +# 1459 +{ return __builtin_hypotf(__x, __y); } +# 1462 +constexpr long double hypot(long double __x, long double __y) +# 1463 +{ return __builtin_hypotl(__x, __y); } +# 1467 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1469 +hypot(_Tp __x, _Up __y) +# 1470 +{ +# 1471 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1472 +return hypot((__type)__x, (__type)__y); +# 1473 +} +# 1478 +constexpr int ilogb(float __x) +# 1479 +{ return __builtin_ilogbf(__x); } +# 1482 +constexpr int ilogb(long double __x) +# 1483 +{ return __builtin_ilogbl(__x); } +# 1487 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, int> ::__type +# 1491 +ilogb(_Tp __x) +# 1492 +{ return __builtin_ilogb(__x); } +# 1497 +constexpr float lgamma(float __x) +# 1498 +{ return __builtin_lgammaf(__x); } +# 1501 +constexpr long double lgamma(long double __x) +# 1502 +{ return __builtin_lgammal(__x); } +# 1506 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1509 +lgamma(_Tp __x) +# 1510 +{ return __builtin_lgamma(__x); } +# 1515 +constexpr long long llrint(float __x) +# 1516 +{ return __builtin_llrintf(__x); } +# 1519 +constexpr long long llrint(long double __x) +# 1520 +{ return __builtin_llrintl(__x); } +# 1524 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long long> ::__type +# 1527 +llrint(_Tp __x) +# 1528 +{ return __builtin_llrint(__x); } +# 1533 +constexpr long long llround(float __x) +# 1534 +{ return __builtin_llroundf(__x); } +# 1537 +constexpr long long llround(long double __x) +# 1538 +{ return __builtin_llroundl(__x); } +# 1542 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long long> ::__type +# 1545 +llround(_Tp __x) +# 1546 +{ return __builtin_llround(__x); } +# 1551 +constexpr float log1p(float __x) +# 1552 +{ return __builtin_log1pf(__x); } +# 1555 +constexpr long double log1p(long double __x) +# 1556 +{ return __builtin_log1pl(__x); } +# 1560 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1563 +log1p(_Tp __x) +# 1564 +{ return __builtin_log1p(__x); } +# 1570 +constexpr float log2(float __x) +# 1571 +{ return __builtin_log2f(__x); } +# 1574 +constexpr long double log2(long double __x) +# 1575 +{ return __builtin_log2l(__x); } +# 1579 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1582 +log2(_Tp __x) +# 1583 +{ return __builtin_log2(__x); } +# 1588 +constexpr float logb(float __x) +# 1589 +{ return __builtin_logbf(__x); } +# 1592 +constexpr long double logb(long double __x) +# 1593 +{ return __builtin_logbl(__x); } +# 1597 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1600 +logb(_Tp __x) +# 1601 +{ return __builtin_logb(__x); } +# 1606 +constexpr long lrint(float __x) +# 1607 +{ return __builtin_lrintf(__x); } +# 1610 +constexpr long lrint(long double __x) +# 1611 +{ return __builtin_lrintl(__x); } +# 1615 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long> ::__type +# 1618 +lrint(_Tp __x) +# 1619 +{ return __builtin_lrint(__x); } +# 1624 +constexpr long lround(float __x) +# 1625 +{ return __builtin_lroundf(__x); } +# 1628 +constexpr long lround(long double __x) +# 1629 +{ return __builtin_lroundl(__x); } +# 1633 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long> ::__type +# 1636 +lround(_Tp __x) +# 1637 +{ return __builtin_lround(__x); } +# 1642 +constexpr float nearbyint(float __x) +# 1643 +{ return __builtin_nearbyintf(__x); } +# 1646 +constexpr long double nearbyint(long double __x) +# 1647 +{ return __builtin_nearbyintl(__x); } +# 1651 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1654 +nearbyint(_Tp __x) +# 1655 +{ return __builtin_nearbyint(__x); } +# 1660 +constexpr float nextafter(float __x, float __y) +# 1661 +{ return __builtin_nextafterf(__x, __y); } +# 1664 +constexpr long double nextafter(long double __x, long double __y) +# 1665 +{ return __builtin_nextafterl(__x, __y); } +# 1669 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1671 +nextafter(_Tp __x, _Up __y) +# 1672 +{ +# 1673 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1674 +return nextafter((__type)__x, (__type)__y); +# 1675 +} +# 1680 +constexpr float nexttoward(float __x, long double __y) +# 1681 +{ return __builtin_nexttowardf(__x, __y); } +# 1684 +constexpr long double nexttoward(long double __x, long double __y) +# 1685 +{ return __builtin_nexttowardl(__x, __y); } +# 1689 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1692 +nexttoward(_Tp __x, long double __y) +# 1693 +{ return __builtin_nexttoward(__x, __y); } +# 1698 +constexpr float remainder(float __x, float __y) +# 1699 +{ return __builtin_remainderf(__x, __y); } +# 1702 +constexpr long double remainder(long double __x, long double __y) +# 1703 +{ return __builtin_remainderl(__x, __y); } +# 1707 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1709 +remainder(_Tp __x, _Up __y) +# 1710 +{ +# 1711 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1712 +return remainder((__type)__x, (__type)__y); +# 1713 +} +# 1718 +inline float remquo(float __x, float __y, int *__pquo) +# 1719 +{ return __builtin_remquof(__x, __y, __pquo); } +# 1722 +inline long double remquo(long double __x, long double __y, int *__pquo) +# 1723 +{ return __builtin_remquol(__x, __y, __pquo); } +# 1727 +template< class _Tp, class _Up> inline typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1729 +remquo(_Tp __x, _Up __y, int *__pquo) +# 1730 +{ +# 1731 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1732 +return remquo((__type)__x, (__type)__y, __pquo); +# 1733 +} +# 1738 +constexpr float rint(float __x) +# 1739 +{ return __builtin_rintf(__x); } +# 1742 +constexpr long double rint(long double __x) +# 1743 +{ return __builtin_rintl(__x); } +# 1747 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1750 +rint(_Tp __x) +# 1751 +{ return __builtin_rint(__x); } +# 1756 +constexpr float round(float __x) +# 1757 +{ return __builtin_roundf(__x); } +# 1760 +constexpr long double round(long double __x) +# 1761 +{ return __builtin_roundl(__x); } +# 1765 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1768 +round(_Tp __x) +# 1769 +{ return __builtin_round(__x); } +# 1774 +constexpr float scalbln(float __x, long __ex) +# 1775 +{ return __builtin_scalblnf(__x, __ex); } +# 1778 +constexpr long double scalbln(long double __x, long __ex) +# 1779 +{ return __builtin_scalblnl(__x, __ex); } +# 1783 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1786 +scalbln(_Tp __x, long __ex) +# 1787 +{ return __builtin_scalbln(__x, __ex); } +# 1792 +constexpr float scalbn(float __x, int __ex) +# 1793 +{ return __builtin_scalbnf(__x, __ex); } +# 1796 +constexpr long double scalbn(long double __x, int __ex) +# 1797 +{ return __builtin_scalbnl(__x, __ex); } +# 1801 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1804 +scalbn(_Tp __x, int __ex) +# 1805 +{ return __builtin_scalbn(__x, __ex); } +# 1810 +constexpr float tgamma(float __x) +# 1811 +{ return __builtin_tgammaf(__x); } +# 1814 +constexpr long double tgamma(long double __x) +# 1815 +{ return __builtin_tgammal(__x); } +# 1819 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1822 +tgamma(_Tp __x) +# 1823 +{ return __builtin_tgamma(__x); } +# 1828 +constexpr float trunc(float __x) +# 1829 +{ return __builtin_truncf(__x); } +# 1832 +constexpr long double trunc(long double __x) +# 1833 +{ return __builtin_truncl(__x); } +# 1837 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1840 +trunc(_Tp __x) +# 1841 +{ return __builtin_trunc(__x); } +# 1852 "/usr/include/c++/11/cmath" 3 +template< class _Tp> inline _Tp +# 1854 +__hypot3(_Tp __x, _Tp __y, _Tp __z) +# 1855 +{ +# 1856 +__x = std::abs(__x); +# 1857 +__y = std::abs(__y); +# 1858 +__z = std::abs(__z); +# 1859 +if (_Tp __a = (__x < __y) ? (__y < __z) ? __z : __y : ((__x < __z) ? __z : __x)) { +# 1860 +return __a * std::sqrt((((__x / __a) * (__x / __a)) + ((__y / __a) * (__y / __a))) + ((__z / __a) * (__z / __a))); } else { +# 1864 +return {}; } +# 1865 +} +# 1868 +inline float hypot(float __x, float __y, float __z) +# 1869 +{ return std::__hypot3< float> (__x, __y, __z); } +# 1872 +inline double hypot(double __x, double __y, double __z) +# 1873 +{ return std::__hypot3< double> (__x, __y, __z); } +# 1876 +inline long double hypot(long double __x, long double __y, long double __z) +# 1877 +{ return std::__hypot3< long double> (__x, __y, __z); } +# 1879 +template< class _Tp, class _Up, class _Vp> __gnu_cxx::__promoted_t< _Tp, _Up, _Vp> +# 1881 +hypot(_Tp __x, _Up __y, _Vp __z) +# 1882 +{ +# 1883 +using __type = __gnu_cxx::__promoted_t< _Tp, _Up, _Vp> ; +# 1884 +return std::__hypot3< __gnu_cxx::__promoted_t< _Tp, _Up, _Vp> > (__x, __y, __z); +# 1885 +} +# 1932 "/usr/include/c++/11/cmath" 3 +} +# 33 "/usr/include/c++/11/bits/specfun.h" 3 +#pragma GCC visibility push ( default ) +# 42 "/usr/include/c++/11/bits/functexcept.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 48 +void __throw_bad_exception() __attribute((__noreturn__)); +# 52 +void __throw_bad_alloc() __attribute((__noreturn__)); +# 55 +void __throw_bad_array_new_length() __attribute((__noreturn__)); +# 59 +void __throw_bad_cast() __attribute((__noreturn__)); +# 62 +void __throw_bad_typeid() __attribute((__noreturn__)); +# 66 +void __throw_logic_error(const char *) __attribute((__noreturn__)); +# 69 +void __throw_domain_error(const char *) __attribute((__noreturn__)); +# 72 +void __throw_invalid_argument(const char *) __attribute((__noreturn__)); +# 75 +void __throw_length_error(const char *) __attribute((__noreturn__)); +# 78 +void __throw_out_of_range(const char *) __attribute((__noreturn__)); +# 81 +void __throw_out_of_range_fmt(const char *, ...) __attribute((__noreturn__)) +# 82 + __attribute((__format__(__gnu_printf__, 1, 2))); +# 85 +void __throw_runtime_error(const char *) __attribute((__noreturn__)); +# 88 +void __throw_range_error(const char *) __attribute((__noreturn__)); +# 91 +void __throw_overflow_error(const char *) __attribute((__noreturn__)); +# 94 +void __throw_underflow_error(const char *) __attribute((__noreturn__)); +# 98 +void __throw_ios_failure(const char *) __attribute((__noreturn__)); +# 101 +void __throw_ios_failure(const char *, int) __attribute((__noreturn__)); +# 105 +void __throw_system_error(int) __attribute((__noreturn__)); +# 109 +void __throw_future_error(int) __attribute((__noreturn__)); +# 113 +void __throw_bad_function_call() __attribute((__noreturn__)); +# 116 +} +# 37 "/usr/include/c++/11/ext/numeric_traits.h" 3 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 50 "/usr/include/c++/11/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; +# 135 "/usr/include/c++/11/ext/numeric_traits.h" 3 +template< class _Tp> using __int_traits = __numeric_traits_integer< _Tp> ; +# 155 "/usr/include/c++/11/ext/numeric_traits.h" 3 +template< class _Value> +# 156 +struct __numeric_traits_floating { +# 159 +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))); +# 162 +static const bool __is_signed = true; +# 163 +static const int __digits10 = ((std::template __are_same< _Value, float> ::__value) ? 6 : ((std::template __are_same< _Value, double> ::__value) ? 15 : 18)); +# 164 +static const int __max_exponent10 = ((std::template __are_same< _Value, float> ::__value) ? 38 : ((std::template __are_same< _Value, double> ::__value) ? 308 : 4932)); +# 165 +}; +# 167 +template< class _Value> const int __numeric_traits_floating< _Value> ::__max_digits10; +# 170 +template< class _Value> const bool __numeric_traits_floating< _Value> ::__is_signed; +# 173 +template< class _Value> const int __numeric_traits_floating< _Value> ::__digits10; +# 176 +template< class _Value> const int __numeric_traits_floating< _Value> ::__max_exponent10; +# 184 +template< class _Value> +# 185 +struct __numeric_traits : public __numeric_traits_integer< _Value> { +# 187 +}; +# 190 +template<> struct __numeric_traits< float> : public __numeric_traits_floating< float> { +# 192 +}; +# 195 +template<> struct __numeric_traits< double> : public __numeric_traits_floating< double> { +# 197 +}; +# 200 +template<> struct __numeric_traits< long double> : public __numeric_traits_floating< long double> { +# 202 +}; +# 237 "/usr/include/c++/11/ext/numeric_traits.h" 3 +} +# 38 "/usr/include/c++/11/bits/move.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 47 +template< class _Tp> constexpr _Tp * +# 49 +__addressof(_Tp &__r) noexcept +# 50 +{ return __builtin_addressof(__r); } +# 55 +} +# 40 "/usr/include/c++/11/type_traits" 3 +namespace std __attribute((__visibility__("default"))) { +# 44 +template< class ..._Elements> class tuple; +# 47 +template< class _Tp> class reference_wrapper; +# 64 "/usr/include/c++/11/type_traits" 3 +template< class _Tp, _Tp __v> +# 65 +struct integral_constant { +# 67 +static constexpr inline _Tp value = (__v); +# 68 +typedef _Tp value_type; +# 69 +typedef integral_constant type; +# 70 +constexpr operator value_type() const noexcept { return value; } +# 75 +constexpr value_type operator()() const noexcept { return value; } +# 77 +}; +# 79 +template< class _Tp, _Tp __v> constexpr inline _Tp integral_constant< _Tp, __v> ::value; +# 83 +using true_type = integral_constant< bool, true> ; +# 86 +using false_type = integral_constant< bool, false> ; +# 90 +template< bool __v> using __bool_constant = integral_constant< bool, __v> ; +# 98 +template< bool __v> using bool_constant = integral_constant< bool, __v> ; +# 104 +template< bool , class , class > struct conditional; +# 108 +template< class _Type> +# 109 +struct __type_identity { +# 110 +using type = _Type; }; +# 112 +template< class _Tp> using __type_identity_t = typename __type_identity< _Tp> ::type; +# 115 +template< class ...> struct __or_; +# 119 +template<> struct __or_< > : public false_type { +# 121 +}; +# 123 +template< class _B1> +# 124 +struct __or_< _B1> : public _B1 { +# 126 +}; +# 128 +template< class _B1, class _B2> +# 129 +struct __or_< _B1, _B2> : public conditional< _B1::value, _B1, _B2> ::type { +# 131 +}; +# 133 +template< class _B1, class _B2, class _B3, class ..._Bn> +# 134 +struct __or_< _B1, _B2, _B3, _Bn...> : public conditional< _B1::value, _B1, std::__or_< _B2, _B3, _Bn...> > ::type { +# 136 +}; +# 138 +template< class ...> struct __and_; +# 142 +template<> struct __and_< > : public true_type { +# 144 +}; +# 146 +template< class _B1> +# 147 +struct __and_< _B1> : public _B1 { +# 149 +}; +# 151 +template< class _B1, class _B2> +# 152 +struct __and_< _B1, _B2> : public conditional< _B1::value, _B2, _B1> ::type { +# 154 +}; +# 156 +template< class _B1, class _B2, class _B3, class ..._Bn> +# 157 +struct __and_< _B1, _B2, _B3, _Bn...> : public conditional< _B1::value, std::__and_< _B2, _B3, _Bn...> , _B1> ::type { +# 159 +}; +# 161 +template< class _Pp> +# 162 +struct __not_ : public __bool_constant< !((bool)_Pp::value)> { +# 164 +}; +# 170 +template< class ..._Bn> constexpr inline bool +# 171 +__or_v = (__or_< _Bn...> ::value); +# 172 +template< class ..._Bn> constexpr inline bool +# 173 +__and_v = (__and_< _Bn...> ::value); +# 178 +template< class ..._Bn> +# 179 +struct conjunction : public __and_< _Bn...> { +# 181 +}; +# 183 +template< class ..._Bn> +# 184 +struct disjunction : public __or_< _Bn...> { +# 186 +}; +# 188 +template< class _Pp> +# 189 +struct negation : public __not_< _Pp> { +# 191 +}; +# 196 +template< class ..._Bn> constexpr inline bool +# 197 +conjunction_v = (conjunction< _Bn...> ::value); +# 199 +template< class ..._Bn> constexpr inline bool +# 200 +disjunction_v = (disjunction< _Bn...> ::value); +# 202 +template< class _Pp> constexpr inline bool +# 203 +negation_v = (negation< _Pp> ::value); +# 209 +template< class > struct is_reference; +# 211 +template< class > struct is_function; +# 213 +template< class > struct is_void; +# 215 +template< class > struct remove_cv; +# 217 +template< class > struct is_const; +# 221 +template< class > struct __is_array_unknown_bounds; +# 227 +template< class _Tp, size_t = sizeof(_Tp)> constexpr true_type +# 228 +__is_complete_or_unbounded(__type_identity< _Tp> ) +# 229 +{ return {}; } +# 231 +template< class _TypeIdentity, class +# 232 +_NestedType = typename _TypeIdentity::type> constexpr typename __or_< is_reference< _NestedType> , is_function< _NestedType> , is_void< _NestedType> , __is_array_unknown_bounds< _NestedType> > ::type +# 238 +__is_complete_or_unbounded(_TypeIdentity) +# 239 +{ return {}; } +# 246 +template< class _Tp> +# 247 +struct __success_type { +# 248 +typedef _Tp type; }; +# 250 +struct __failure_type { +# 251 +}; +# 254 +template< class _Tp> using __remove_cv_t = typename remove_cv< _Tp> ::type; +# 259 +template< class > +# 260 +struct __is_void_helper : public false_type { +# 261 +}; +# 264 +template<> struct __is_void_helper< void> : public true_type { +# 265 +}; +# 269 +template< class _Tp> +# 270 +struct is_void : public __is_void_helper< __remove_cv_t< _Tp> > ::type { +# 272 +}; +# 275 +template< class > +# 276 +struct __is_integral_helper : public false_type { +# 277 +}; +# 280 +template<> struct __is_integral_helper< bool> : public true_type { +# 281 +}; +# 284 +template<> struct __is_integral_helper< char> : public true_type { +# 285 +}; +# 288 +template<> struct __is_integral_helper< signed char> : public true_type { +# 289 +}; +# 292 +template<> struct __is_integral_helper< unsigned char> : public true_type { +# 293 +}; +# 300 +template<> struct __is_integral_helper< wchar_t> : public true_type { +# 301 +}; +# 311 "/usr/include/c++/11/type_traits" 3 +template<> struct __is_integral_helper< char16_t> : public true_type { +# 312 +}; +# 315 +template<> struct __is_integral_helper< char32_t> : public true_type { +# 316 +}; +# 319 +template<> struct __is_integral_helper< short> : public true_type { +# 320 +}; +# 323 +template<> struct __is_integral_helper< unsigned short> : public true_type { +# 324 +}; +# 327 +template<> struct __is_integral_helper< int> : public true_type { +# 328 +}; +# 331 +template<> struct __is_integral_helper< unsigned> : public true_type { +# 332 +}; +# 335 +template<> struct __is_integral_helper< long> : public true_type { +# 336 +}; +# 339 +template<> struct __is_integral_helper< unsigned long> : public true_type { +# 340 +}; +# 343 +template<> struct __is_integral_helper< long long> : public true_type { +# 344 +}; +# 347 +template<> struct __is_integral_helper< unsigned long long> : public true_type { +# 348 +}; +# 354 +template<> struct __is_integral_helper< __int128> : public true_type { +# 355 +}; +# 358 +template<> struct __is_integral_helper< unsigned __int128> : public true_type { +# 359 +}; +# 391 "/usr/include/c++/11/type_traits" 3 +template< class _Tp> +# 392 +struct is_integral : public __is_integral_helper< __remove_cv_t< _Tp> > ::type { +# 394 +}; +# 397 +template< class > +# 398 +struct __is_floating_point_helper : public false_type { +# 399 +}; +# 402 +template<> struct __is_floating_point_helper< float> : public true_type { +# 403 +}; +# 406 +template<> struct __is_floating_point_helper< double> : public true_type { +# 407 +}; +# 410 +template<> struct __is_floating_point_helper< long double> : public true_type { +# 411 +}; +# 421 "/usr/include/c++/11/type_traits" 3 +template< class _Tp> +# 422 +struct is_floating_point : public __is_floating_point_helper< __remove_cv_t< _Tp> > ::type { +# 424 +}; +# 427 +template< class > +# 428 +struct is_array : public false_type { +# 429 +}; +# 431 +template< class _Tp, size_t _Size> +# 432 +struct is_array< _Tp [_Size]> : public true_type { +# 433 +}; +# 435 +template< class _Tp> +# 436 +struct is_array< _Tp []> : public true_type { +# 437 +}; +# 439 +template< class > +# 440 +struct __is_pointer_helper : public false_type { +# 441 +}; +# 443 +template< class _Tp> +# 444 +struct __is_pointer_helper< _Tp *> : public true_type { +# 445 +}; +# 448 +template< class _Tp> +# 449 +struct is_pointer : public __is_pointer_helper< __remove_cv_t< _Tp> > ::type { +# 451 +}; +# 454 +template< class > +# 455 +struct is_lvalue_reference : public false_type { +# 456 +}; +# 458 +template< class _Tp> +# 459 +struct is_lvalue_reference< _Tp &> : public true_type { +# 460 +}; +# 463 +template< class > +# 464 +struct is_rvalue_reference : public false_type { +# 465 +}; +# 467 +template< class _Tp> +# 468 +struct is_rvalue_reference< _Tp &&> : public true_type { +# 469 +}; +# 471 +template< class > +# 472 +struct __is_member_object_pointer_helper : public false_type { +# 473 +}; +# 475 +template< class _Tp, class _Cp> +# 476 +struct __is_member_object_pointer_helper< _Tp (_Cp::*)> : public __not_< is_function< _Tp> > ::type { +# 477 +}; +# 480 +template< class _Tp> +# 481 +struct is_member_object_pointer : public __is_member_object_pointer_helper< __remove_cv_t< _Tp> > ::type { +# 483 +}; +# 485 +template< class > +# 486 +struct __is_member_function_pointer_helper : public false_type { +# 487 +}; +# 489 +template< class _Tp, class _Cp> +# 490 +struct __is_member_function_pointer_helper< _Tp (_Cp::*)> : public is_function< _Tp> ::type { +# 491 +}; +# 494 +template< class _Tp> +# 495 +struct is_member_function_pointer : public __is_member_function_pointer_helper< __remove_cv_t< _Tp> > ::type { +# 497 +}; +# 500 +template< class _Tp> +# 501 +struct is_enum : public integral_constant< bool, __is_enum(_Tp)> { +# 503 +}; +# 506 +template< class _Tp> +# 507 +struct is_union : public integral_constant< bool, __is_union(_Tp)> { +# 509 +}; +# 512 +template< class _Tp> +# 513 +struct is_class : public integral_constant< bool, __is_class(_Tp)> { +# 515 +}; +# 518 +template< class _Tp> +# 519 +struct is_function : public __bool_constant< !is_const< const _Tp> ::value> { +# 520 +}; +# 522 +template< class _Tp> +# 523 +struct is_function< _Tp &> : public false_type { +# 524 +}; +# 526 +template< class _Tp> +# 527 +struct is_function< _Tp &&> : public false_type { +# 528 +}; +# 532 +template< class > +# 533 +struct __is_null_pointer_helper : public false_type { +# 534 +}; +# 537 +template<> struct __is_null_pointer_helper< __decltype((nullptr))> : public true_type { +# 538 +}; +# 541 +template< class _Tp> +# 542 +struct is_null_pointer : public __is_null_pointer_helper< __remove_cv_t< _Tp> > ::type { +# 544 +}; +# 548 +template< class _Tp> +# 549 +struct __is_nullptr_t : public is_null_pointer< _Tp> { +# 551 +} __attribute((__deprecated__("use \'std::is_null_pointer\' instead"))); +# 556 +template< class _Tp> +# 557 +struct is_reference : public __or_< is_lvalue_reference< _Tp> , is_rvalue_reference< _Tp> > ::type { +# 560 +}; +# 563 +template< class _Tp> +# 564 +struct is_arithmetic : public __or_< is_integral< _Tp> , is_floating_point< _Tp> > ::type { +# 566 +}; +# 569 +template< class _Tp> +# 570 +struct is_fundamental : public __or_< is_arithmetic< _Tp> , is_void< _Tp> , is_null_pointer< _Tp> > ::type { +# 573 +}; +# 576 +template< class _Tp> +# 577 +struct is_object : public __not_< __or_< is_function< _Tp> , is_reference< _Tp> , is_void< _Tp> > > ::type { +# 580 +}; +# 582 +template< class > struct is_member_pointer; +# 586 +template< class _Tp> +# 587 +struct is_scalar : public __or_< is_arithmetic< _Tp> , is_enum< _Tp> , is_pointer< _Tp> , is_member_pointer< _Tp> , is_null_pointer< _Tp> > ::type { +# 590 +}; +# 593 +template< class _Tp> +# 594 +struct is_compound : public __not_< is_fundamental< _Tp> > ::type { +# 595 +}; +# 598 +template< class _Tp> +# 599 +struct __is_member_pointer_helper : public false_type { +# 600 +}; +# 602 +template< class _Tp, class _Cp> +# 603 +struct __is_member_pointer_helper< _Tp (_Cp::*)> : public true_type { +# 604 +}; +# 608 +template< class _Tp> +# 609 +struct is_member_pointer : public __is_member_pointer_helper< __remove_cv_t< _Tp> > ::type { +# 611 +}; +# 613 +template< class , class > struct is_same; +# 617 +template< class _Tp, class ..._Types> using __is_one_of = __or_< is_same< _Tp, _Types> ...> ; +# 621 +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> ; +# 640 "/usr/include/c++/11/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> ; +# 659 "/usr/include/c++/11/type_traits" 3 +template< class _Tp> using __is_standard_integer = __or_< __is_signed_integer< _Tp> , __is_unsigned_integer< _Tp> > ; +# 664 +template< class ...> using __void_t = void; +# 668 +template< class _Tp, class = void> +# 669 +struct __is_referenceable : public false_type { +# 671 +}; +# 673 +template< class _Tp> +# 674 +struct __is_referenceable< _Tp, __void_t< _Tp &> > : public true_type { +# 676 +}; +# 682 +template< class > +# 683 +struct is_const : public false_type { +# 684 +}; +# 686 +template< class _Tp> +# 687 +struct is_const< const _Tp> : public true_type { +# 688 +}; +# 691 +template< class > +# 692 +struct is_volatile : public false_type { +# 693 +}; +# 695 +template< class _Tp> +# 696 +struct is_volatile< volatile _Tp> : public true_type { +# 697 +}; +# 700 +template< class _Tp> +# 701 +struct is_trivial : public integral_constant< bool, __is_trivial(_Tp)> { +# 704 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 706 +}; +# 709 +template< class _Tp> +# 710 +struct is_trivially_copyable : public integral_constant< bool, __is_trivially_copyable(_Tp)> { +# 713 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 715 +}; +# 718 +template< class _Tp> +# 719 +struct is_standard_layout : public integral_constant< bool, __is_standard_layout(_Tp)> { +# 722 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 724 +}; +# 730 +template< class _Tp> +# 733 +struct is_pod : public integral_constant< bool, __is_pod(_Tp)> { +# 736 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 738 +}; +# 743 +template< class _Tp> +# 746 +struct +# 745 + [[__deprecated__]] is_literal_type : public integral_constant< bool, __is_literal_type(_Tp)> { +# 749 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 751 +}; +# 754 +template< class _Tp> +# 755 +struct is_empty : public integral_constant< bool, __is_empty(_Tp)> { +# 757 +}; +# 760 +template< class _Tp> +# 761 +struct is_polymorphic : public integral_constant< bool, __is_polymorphic(_Tp)> { +# 763 +}; +# 769 +template< class _Tp> +# 770 +struct is_final : public integral_constant< bool, __is_final(_Tp)> { +# 772 +}; +# 776 +template< class _Tp> +# 777 +struct is_abstract : public integral_constant< bool, __is_abstract(_Tp)> { +# 779 +}; +# 782 +template< class _Tp, bool +# 783 + = is_arithmetic< _Tp> ::value> +# 784 +struct __is_signed_helper : public false_type { +# 785 +}; +# 787 +template< class _Tp> +# 788 +struct __is_signed_helper< _Tp, true> : public integral_constant< bool, ((_Tp)(-1)) < ((_Tp)0)> { +# 790 +}; +# 794 +template< class _Tp> +# 795 +struct is_signed : public __is_signed_helper< _Tp> ::type { +# 797 +}; +# 800 +template< class _Tp> +# 801 +struct is_unsigned : public __and_< is_arithmetic< _Tp> , __not_< is_signed< _Tp> > > { +# 803 +}; +# 806 +template< class _Tp, class _Up = _Tp &&> _Up __declval(int); +# 810 +template< class _Tp> _Tp __declval(long); +# 815 +template< class _Tp> auto declval() noexcept->__decltype((__declval< _Tp> (0))); +# 818 +template< class , unsigned = 0U> struct extent; +# 821 +template< class > struct remove_all_extents; +# 825 +template< class _Tp> +# 826 +struct __is_array_known_bounds : public integral_constant< bool, (extent< _Tp> ::value > 0)> { +# 828 +}; +# 830 +template< class _Tp> +# 831 +struct __is_array_unknown_bounds : public __and_< is_array< _Tp> , __not_< extent< _Tp> > > { +# 833 +}; +# 842 "/usr/include/c++/11/type_traits" 3 +struct __do_is_destructible_impl { +# 844 +template< class _Tp, class = __decltype((declval< _Tp &> ().~_Tp()))> static true_type __test(int); +# 847 +template< class > static false_type __test(...); +# 849 +}; +# 851 +template< class _Tp> +# 852 +struct __is_destructible_impl : public __do_is_destructible_impl { +# 855 +typedef __decltype((__test< _Tp> (0))) type; +# 856 +}; +# 858 +template< class _Tp, bool +# 859 + = __or_< is_void< _Tp> , __is_array_unknown_bounds< _Tp> , is_function< _Tp> > ::value, bool +# 862 + = __or_< is_reference< _Tp> , is_scalar< _Tp> > ::value> struct __is_destructible_safe; +# 865 +template< class _Tp> +# 866 +struct __is_destructible_safe< _Tp, false, false> : public __is_destructible_impl< typename remove_all_extents< _Tp> ::type> ::type { +# 869 +}; +# 871 +template< class _Tp> +# 872 +struct __is_destructible_safe< _Tp, true, false> : public false_type { +# 873 +}; +# 875 +template< class _Tp> +# 876 +struct __is_destructible_safe< _Tp, false, true> : public true_type { +# 877 +}; +# 881 +template< class _Tp> +# 882 +struct is_destructible : public __is_destructible_safe< _Tp> ::type { +# 885 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 887 +}; +# 895 +struct __do_is_nt_destructible_impl { +# 897 +template< class _Tp> static __bool_constant< noexcept(declval< _Tp &> ().~_Tp())> __test(int); +# 901 +template< class > static false_type __test(...); +# 903 +}; +# 905 +template< class _Tp> +# 906 +struct __is_nt_destructible_impl : public __do_is_nt_destructible_impl { +# 909 +typedef __decltype((__test< _Tp> (0))) type; +# 910 +}; +# 912 +template< class _Tp, bool +# 913 + = __or_< is_void< _Tp> , __is_array_unknown_bounds< _Tp> , is_function< _Tp> > ::value, bool +# 916 + = __or_< is_reference< _Tp> , is_scalar< _Tp> > ::value> struct __is_nt_destructible_safe; +# 919 +template< class _Tp> +# 920 +struct __is_nt_destructible_safe< _Tp, false, false> : public __is_nt_destructible_impl< typename remove_all_extents< _Tp> ::type> ::type { +# 923 +}; +# 925 +template< class _Tp> +# 926 +struct __is_nt_destructible_safe< _Tp, true, false> : public false_type { +# 927 +}; +# 929 +template< class _Tp> +# 930 +struct __is_nt_destructible_safe< _Tp, false, true> : public true_type { +# 931 +}; +# 935 +template< class _Tp> +# 936 +struct is_nothrow_destructible : public __is_nt_destructible_safe< _Tp> ::type { +# 939 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 941 +}; +# 944 +template< class _Tp, class ..._Args> +# 945 +struct __is_constructible_impl : public __bool_constant< __is_constructible(_Tp, _Args...)> { +# 947 +}; +# 951 +template< class _Tp, class ..._Args> +# 952 +struct is_constructible : public __is_constructible_impl< _Tp, _Args...> { +# 955 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 957 +}; +# 960 +template< class _Tp> +# 961 +struct is_default_constructible : public __is_constructible_impl< _Tp> ::type { +# 964 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 966 +}; +# 969 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_copy_constructible_impl; +# 972 +template< class _Tp> +# 973 +struct __is_copy_constructible_impl< _Tp, false> : public false_type { +# 974 +}; +# 976 +template< class _Tp> +# 977 +struct __is_copy_constructible_impl< _Tp, true> : public __is_constructible_impl< _Tp, const _Tp &> { +# 979 +}; +# 983 +template< class _Tp> +# 984 +struct is_copy_constructible : public __is_copy_constructible_impl< _Tp> { +# 987 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 989 +}; +# 992 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_move_constructible_impl; +# 995 +template< class _Tp> +# 996 +struct __is_move_constructible_impl< _Tp, false> : public false_type { +# 997 +}; +# 999 +template< class _Tp> +# 1000 +struct __is_move_constructible_impl< _Tp, true> : public __is_constructible_impl< _Tp, _Tp &&> { +# 1002 +}; +# 1006 +template< class _Tp> +# 1007 +struct is_move_constructible : public __is_move_constructible_impl< _Tp> { +# 1010 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1012 +}; +# 1015 +template< class _Tp, class ..._Args> using __is_nothrow_constructible_impl = __bool_constant< __is_nothrow_constructible(_Tp, _Args...)> ; +# 1021 +template< class _Tp, class ..._Args> +# 1022 +struct is_nothrow_constructible : public __is_nothrow_constructible_impl< _Tp, _Args...> ::type { +# 1025 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1027 +}; +# 1030 +template< class _Tp> +# 1031 +struct is_nothrow_default_constructible : public __bool_constant< __is_nothrow_constructible(_Tp)> { +# 1034 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1036 +}; +# 1039 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_nothrow_copy_constructible_impl; +# 1042 +template< class _Tp> +# 1043 +struct __is_nothrow_copy_constructible_impl< _Tp, false> : public false_type { +# 1044 +}; +# 1046 +template< class _Tp> +# 1047 +struct __is_nothrow_copy_constructible_impl< _Tp, true> : public __is_nothrow_constructible_impl< _Tp, const _Tp &> { +# 1049 +}; +# 1053 +template< class _Tp> +# 1054 +struct is_nothrow_copy_constructible : public __is_nothrow_copy_constructible_impl< _Tp> ::type { +# 1057 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1059 +}; +# 1062 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_nothrow_move_constructible_impl; +# 1065 +template< class _Tp> +# 1066 +struct __is_nothrow_move_constructible_impl< _Tp, false> : public false_type { +# 1067 +}; +# 1069 +template< class _Tp> +# 1070 +struct __is_nothrow_move_constructible_impl< _Tp, true> : public __is_nothrow_constructible_impl< _Tp, _Tp &&> { +# 1072 +}; +# 1076 +template< class _Tp> +# 1077 +struct is_nothrow_move_constructible : public __is_nothrow_move_constructible_impl< _Tp> ::type { +# 1080 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1082 +}; +# 1085 +template< class _Tp, class _Up> +# 1086 +struct is_assignable : public __bool_constant< __is_assignable(_Tp, _Up)> { +# 1089 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1091 +}; +# 1093 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_copy_assignable_impl; +# 1096 +template< class _Tp> +# 1097 +struct __is_copy_assignable_impl< _Tp, false> : public false_type { +# 1098 +}; +# 1100 +template< class _Tp> +# 1101 +struct __is_copy_assignable_impl< _Tp, true> : public __bool_constant< __is_assignable(_Tp &, const _Tp &)> { +# 1103 +}; +# 1106 +template< class _Tp> +# 1107 +struct is_copy_assignable : public __is_copy_assignable_impl< _Tp> ::type { +# 1110 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1112 +}; +# 1114 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_move_assignable_impl; +# 1117 +template< class _Tp> +# 1118 +struct __is_move_assignable_impl< _Tp, false> : public false_type { +# 1119 +}; +# 1121 +template< class _Tp> +# 1122 +struct __is_move_assignable_impl< _Tp, true> : public __bool_constant< __is_assignable(_Tp &, _Tp &&)> { +# 1124 +}; +# 1127 +template< class _Tp> +# 1128 +struct is_move_assignable : public __is_move_assignable_impl< _Tp> ::type { +# 1131 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1133 +}; +# 1135 +template< class _Tp, class _Up> using __is_nothrow_assignable_impl = __bool_constant< __is_nothrow_assignable(_Tp, _Up)> ; +# 1140 +template< class _Tp, class _Up> +# 1141 +struct is_nothrow_assignable : public __is_nothrow_assignable_impl< _Tp, _Up> { +# 1144 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1146 +}; +# 1148 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_nt_copy_assignable_impl; +# 1151 +template< class _Tp> +# 1152 +struct __is_nt_copy_assignable_impl< _Tp, false> : public false_type { +# 1153 +}; +# 1155 +template< class _Tp> +# 1156 +struct __is_nt_copy_assignable_impl< _Tp, true> : public __is_nothrow_assignable_impl< _Tp &, const _Tp &> { +# 1158 +}; +# 1161 +template< class _Tp> +# 1162 +struct is_nothrow_copy_assignable : public __is_nt_copy_assignable_impl< _Tp> { +# 1165 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1167 +}; +# 1169 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_nt_move_assignable_impl; +# 1172 +template< class _Tp> +# 1173 +struct __is_nt_move_assignable_impl< _Tp, false> : public false_type { +# 1174 +}; +# 1176 +template< class _Tp> +# 1177 +struct __is_nt_move_assignable_impl< _Tp, true> : public __is_nothrow_assignable_impl< _Tp &, _Tp &&> { +# 1179 +}; +# 1182 +template< class _Tp> +# 1183 +struct is_nothrow_move_assignable : public __is_nt_move_assignable_impl< _Tp> { +# 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, class ..._Args> +# 1192 +struct is_trivially_constructible : public __bool_constant< __is_trivially_constructible(_Tp, _Args...)> { +# 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_trivially_default_constructible : public __bool_constant< __is_trivially_constructible(_Tp)> { +# 1204 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1206 +}; +# 1208 +struct __do_is_implicitly_default_constructible_impl { +# 1210 +template< class _Tp> static void __helper(const _Tp &); +# 1213 +template< class _Tp> static true_type __test(const _Tp &, __decltype((__helper< const _Tp &> ({}))) * = 0); +# 1217 +static false_type __test(...); +# 1218 +}; +# 1220 +template< class _Tp> +# 1221 +struct __is_implicitly_default_constructible_impl : public __do_is_implicitly_default_constructible_impl { +# 1224 +typedef __decltype((__test(declval< _Tp> ()))) type; +# 1225 +}; +# 1227 +template< class _Tp> +# 1228 +struct __is_implicitly_default_constructible_safe : public __is_implicitly_default_constructible_impl< _Tp> ::type { +# 1230 +}; +# 1232 +template< class _Tp> +# 1233 +struct __is_implicitly_default_constructible : public __and_< __is_constructible_impl< _Tp> , __is_implicitly_default_constructible_safe< _Tp> > { +# 1236 +}; +# 1238 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_trivially_copy_constructible_impl; +# 1241 +template< class _Tp> +# 1242 +struct __is_trivially_copy_constructible_impl< _Tp, false> : public false_type { +# 1243 +}; +# 1245 +template< class _Tp> +# 1246 +struct __is_trivially_copy_constructible_impl< _Tp, true> : public __and_< __is_copy_constructible_impl< _Tp> , integral_constant< bool, __is_trivially_constructible(_Tp, const _Tp &)> > { +# 1250 +}; +# 1253 +template< class _Tp> +# 1254 +struct is_trivially_copy_constructible : public __is_trivially_copy_constructible_impl< _Tp> { +# 1257 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1259 +}; +# 1261 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_trivially_move_constructible_impl; +# 1264 +template< class _Tp> +# 1265 +struct __is_trivially_move_constructible_impl< _Tp, false> : public false_type { +# 1266 +}; +# 1268 +template< class _Tp> +# 1269 +struct __is_trivially_move_constructible_impl< _Tp, true> : public __and_< __is_move_constructible_impl< _Tp> , integral_constant< bool, __is_trivially_constructible(_Tp, _Tp &&)> > { +# 1273 +}; +# 1276 +template< class _Tp> +# 1277 +struct is_trivially_move_constructible : public __is_trivially_move_constructible_impl< _Tp> { +# 1280 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1282 +}; +# 1285 +template< class _Tp, class _Up> +# 1286 +struct is_trivially_assignable : public __bool_constant< __is_trivially_assignable(_Tp, _Up)> { +# 1289 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1291 +}; +# 1293 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_trivially_copy_assignable_impl; +# 1296 +template< class _Tp> +# 1297 +struct __is_trivially_copy_assignable_impl< _Tp, false> : public false_type { +# 1298 +}; +# 1300 +template< class _Tp> +# 1301 +struct __is_trivially_copy_assignable_impl< _Tp, true> : public __bool_constant< __is_trivially_assignable(_Tp &, const _Tp &)> { +# 1303 +}; +# 1306 +template< class _Tp> +# 1307 +struct is_trivially_copy_assignable : public __is_trivially_copy_assignable_impl< _Tp> { +# 1310 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1312 +}; +# 1314 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_trivially_move_assignable_impl; +# 1317 +template< class _Tp> +# 1318 +struct __is_trivially_move_assignable_impl< _Tp, false> : public false_type { +# 1319 +}; +# 1321 +template< class _Tp> +# 1322 +struct __is_trivially_move_assignable_impl< _Tp, true> : public __bool_constant< __is_trivially_assignable(_Tp &, _Tp &&)> { +# 1324 +}; +# 1327 +template< class _Tp> +# 1328 +struct is_trivially_move_assignable : public __is_trivially_move_assignable_impl< _Tp> { +# 1331 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1333 +}; +# 1336 +template< class _Tp> +# 1337 +struct is_trivially_destructible : public __and_< __is_destructible_safe< _Tp> , __bool_constant< __has_trivial_destructor(_Tp)> > { +# 1341 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1343 +}; +# 1347 +template< class _Tp> +# 1348 +struct has_virtual_destructor : public integral_constant< bool, __has_virtual_destructor(_Tp)> { +# 1351 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1353 +}; +# 1359 +template< class _Tp> +# 1360 +struct alignment_of : public integral_constant< unsigned long, __alignof__(_Tp)> { +# 1363 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 1365 +}; +# 1368 +template< class > +# 1369 +struct rank : public integral_constant< unsigned long, 0UL> { +# 1370 +}; +# 1372 +template< class _Tp, size_t _Size> +# 1373 +struct rank< _Tp [_Size]> : public integral_constant< unsigned long, 1 + std::rank< _Tp> ::value> { +# 1374 +}; +# 1376 +template< class _Tp> +# 1377 +struct rank< _Tp []> : public integral_constant< unsigned long, 1 + std::rank< _Tp> ::value> { +# 1378 +}; +# 1381 +template< class , unsigned _Uint> +# 1382 +struct extent : public integral_constant< unsigned long, 0UL> { +# 1383 +}; +# 1385 +template< class _Tp, unsigned _Uint, size_t _Size> +# 1386 +struct extent< _Tp [_Size], _Uint> : public integral_constant< unsigned long, (_Uint == (0)) ? _Size : std::extent< _Tp, _Uint - (1)> ::value> { +# 1390 +}; +# 1392 +template< class _Tp, unsigned _Uint> +# 1393 +struct extent< _Tp [], _Uint> : public integral_constant< unsigned long, (_Uint == (0)) ? 0 : std::extent< _Tp, _Uint - (1)> ::value> { +# 1397 +}; +# 1403 +template< class _Tp, class _Up> +# 1404 +struct is_same : public integral_constant< bool, __is_same(_Tp, _Up)> { +# 1410 +}; +# 1420 "/usr/include/c++/11/type_traits" 3 +template< class _Base, class _Derived> +# 1421 +struct is_base_of : public integral_constant< bool, __is_base_of(_Base, _Derived)> { +# 1423 +}; +# 1425 +template< class _From, class _To, bool +# 1426 + = __or_< is_void< _From> , is_function< _To> , is_array< _To> > ::value> +# 1428 +struct __is_convertible_helper { +# 1430 +typedef typename is_void< _To> ::type type; +# 1431 +}; +# 1433 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" +template< class _From, class _To> +# 1436 +class __is_convertible_helper< _From, _To, false> { +# 1438 +template< class _To1> static void __test_aux(_To1) noexcept; +# 1441 +template< class _From1, class _To1, class +# 1442 + = __decltype((__test_aux< _To1> (std::declval< _From1> ())))> static true_type +# 1441 +__test(int); +# 1446 +template< class , class > static false_type __test(...); +# 1451 +public: typedef __decltype((__test< _From, _To> (0))) type; +# 1452 +}; +#pragma GCC diagnostic pop +# 1456 +template< class _From, class _To> +# 1457 +struct is_convertible : public __is_convertible_helper< _From, _To> ::type { +# 1459 +}; +# 1462 +template< class _ToElementType, class _FromElementType> using __is_array_convertible = is_convertible< _FromElementType (*)[], _ToElementType (*)[]> ; +# 1466 +template< class _From, class _To, bool +# 1467 + = __or_< is_void< _From> , is_function< _To> , is_array< _To> > ::value> +# 1469 +struct __is_nt_convertible_helper : public is_void< _To> { +# 1471 +}; +# 1473 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" +template< class _From, class _To> +# 1476 +class __is_nt_convertible_helper< _From, _To, false> { +# 1478 +template< class _To1> static void __test_aux(_To1) noexcept; +# 1481 +template< class _From1, class _To1> static __bool_constant< noexcept(__test_aux< _To1> (std::declval< _From1> ()))> __test(int); +# 1486 +template< class , class > static false_type __test(...); +# 1491 +public: using type = __decltype((__test< _From, _To> (0))); +# 1492 +}; +#pragma GCC diagnostic pop +# 1512 "/usr/include/c++/11/type_traits" 3 +template< class _Tp> +# 1513 +struct remove_const { +# 1514 +typedef _Tp type; }; +# 1516 +template< class _Tp> +# 1517 +struct remove_const< const _Tp> { +# 1518 +typedef _Tp type; }; +# 1521 +template< class _Tp> +# 1522 +struct remove_volatile { +# 1523 +typedef _Tp type; }; +# 1525 +template< class _Tp> +# 1526 +struct remove_volatile< volatile _Tp> { +# 1527 +typedef _Tp type; }; +# 1530 +template< class _Tp> +# 1531 +struct remove_cv { +# 1532 +using type = _Tp; }; +# 1534 +template< class _Tp> +# 1535 +struct remove_cv< const _Tp> { +# 1536 +using type = _Tp; }; +# 1538 +template< class _Tp> +# 1539 +struct remove_cv< volatile _Tp> { +# 1540 +using type = _Tp; }; +# 1542 +template< class _Tp> +# 1543 +struct remove_cv< const volatile _Tp> { +# 1544 +using type = _Tp; }; +# 1547 +template< class _Tp> +# 1548 +struct add_const { +# 1549 +typedef const _Tp type; }; +# 1552 +template< class _Tp> +# 1553 +struct add_volatile { +# 1554 +typedef volatile _Tp type; }; +# 1557 +template< class _Tp> +# 1558 +struct add_cv { +# 1561 +typedef typename add_const< typename add_volatile< _Tp> ::type> ::type type; +# 1562 +}; +# 1569 +template< class _Tp> using remove_const_t = typename remove_const< _Tp> ::type; +# 1573 +template< class _Tp> using remove_volatile_t = typename remove_volatile< _Tp> ::type; +# 1577 +template< class _Tp> using remove_cv_t = typename remove_cv< _Tp> ::type; +# 1581 +template< class _Tp> using add_const_t = typename add_const< _Tp> ::type; +# 1585 +template< class _Tp> using add_volatile_t = typename add_volatile< _Tp> ::type; +# 1589 +template< class _Tp> using add_cv_t = typename add_cv< _Tp> ::type; +# 1596 +template< class _Tp> +# 1597 +struct remove_reference { +# 1598 +typedef _Tp type; }; +# 1600 +template< class _Tp> +# 1601 +struct remove_reference< _Tp &> { +# 1602 +typedef _Tp type; }; +# 1604 +template< class _Tp> +# 1605 +struct remove_reference< _Tp &&> { +# 1606 +typedef _Tp type; }; +# 1608 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> +# 1609 +struct __add_lvalue_reference_helper { +# 1610 +typedef _Tp type; }; +# 1612 +template< class _Tp> +# 1613 +struct __add_lvalue_reference_helper< _Tp, true> { +# 1614 +typedef _Tp &type; }; +# 1617 +template< class _Tp> +# 1618 +struct add_lvalue_reference : public __add_lvalue_reference_helper< _Tp> { +# 1620 +}; +# 1622 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> +# 1623 +struct __add_rvalue_reference_helper { +# 1624 +typedef _Tp type; }; +# 1626 +template< class _Tp> +# 1627 +struct __add_rvalue_reference_helper< _Tp, true> { +# 1628 +typedef _Tp &&type; }; +# 1631 +template< class _Tp> +# 1632 +struct add_rvalue_reference : public __add_rvalue_reference_helper< _Tp> { +# 1634 +}; +# 1638 +template< class _Tp> using remove_reference_t = typename remove_reference< _Tp> ::type; +# 1642 +template< class _Tp> using add_lvalue_reference_t = typename add_lvalue_reference< _Tp> ::type; +# 1646 +template< class _Tp> using add_rvalue_reference_t = typename add_rvalue_reference< _Tp> ::type; +# 1655 +template< class _Unqualified, bool _IsConst, bool _IsVol> struct __cv_selector; +# 1658 +template< class _Unqualified> +# 1659 +struct __cv_selector< _Unqualified, false, false> { +# 1660 +typedef _Unqualified __type; }; +# 1662 +template< class _Unqualified> +# 1663 +struct __cv_selector< _Unqualified, false, true> { +# 1664 +typedef volatile _Unqualified __type; }; +# 1666 +template< class _Unqualified> +# 1667 +struct __cv_selector< _Unqualified, true, false> { +# 1668 +typedef const _Unqualified __type; }; +# 1670 +template< class _Unqualified> +# 1671 +struct __cv_selector< _Unqualified, true, true> { +# 1672 +typedef const volatile _Unqualified __type; }; +# 1674 +template< class _Qualified, class _Unqualified, bool +# 1675 +_IsConst = is_const< _Qualified> ::value, bool +# 1676 +_IsVol = is_volatile< _Qualified> ::value> +# 1677 +class __match_cv_qualifiers { +# 1679 +typedef __cv_selector< _Unqualified, _IsConst, _IsVol> __match; +# 1682 +public: typedef typename __cv_selector< _Unqualified, _IsConst, _IsVol> ::__type __type; +# 1683 +}; +# 1686 +template< class _Tp> +# 1687 +struct __make_unsigned { +# 1688 +typedef _Tp __type; }; +# 1691 +template<> struct __make_unsigned< char> { +# 1692 +typedef unsigned char __type; }; +# 1695 +template<> struct __make_unsigned< signed char> { +# 1696 +typedef unsigned char __type; }; +# 1699 +template<> struct __make_unsigned< short> { +# 1700 +typedef unsigned short __type; }; +# 1703 +template<> struct __make_unsigned< int> { +# 1704 +typedef unsigned __type; }; +# 1707 +template<> struct __make_unsigned< long> { +# 1708 +typedef unsigned long __type; }; +# 1711 +template<> struct __make_unsigned< long long> { +# 1712 +typedef unsigned long long __type; }; +# 1716 +template<> struct __make_unsigned< __int128> { +# 1717 +typedef unsigned __int128 __type; }; +# 1736 "/usr/include/c++/11/type_traits" 3 +template< class _Tp, bool +# 1737 +_IsInt = is_integral< _Tp> ::value, bool +# 1738 +_IsEnum = is_enum< _Tp> ::value> class __make_unsigned_selector; +# 1741 +template< class _Tp> +# 1742 +class __make_unsigned_selector< _Tp, true, false> { +# 1744 +using __unsigned_type = typename __make_unsigned< __remove_cv_t< _Tp> > ::__type; +# 1748 +public: using __type = typename __match_cv_qualifiers< _Tp, __unsigned_type> ::__type; +# 1750 +}; +# 1752 +class __make_unsigned_selector_base { +# 1755 +protected: template< class ...> struct _List { }; +# 1757 +template< class _Tp, class ..._Up> +# 1758 +struct _List< _Tp, _Up...> : public __make_unsigned_selector_base::_List< _Up...> { +# 1759 +static constexpr inline std::size_t __size = sizeof(_Tp); }; +# 1761 +template< size_t _Sz, class _Tp, bool = _Sz <= _Tp::__size> struct __select; +# 1764 +template< size_t _Sz, class _Uint, class ..._UInts> +# 1765 +struct __select< _Sz, _List< _Uint, _UInts...> , true> { +# 1766 +using __type = _Uint; }; +# 1768 +template< size_t _Sz, class _Uint, class ..._UInts> +# 1769 +struct __select< _Sz, _List< _Uint, _UInts...> , false> : public __make_unsigned_selector_base::__select< _Sz, _List< _UInts...> > { +# 1771 +}; +# 1772 +}; +# 1775 +template< class _Tp> +# 1776 +class __make_unsigned_selector< _Tp, false, true> : private __make_unsigned_selector_base { +# 1780 +using _UInts = _List< unsigned char, unsigned short, unsigned, unsigned long, unsigned long long> ; +# 1783 +using __unsigned_type = typename __select< sizeof(_Tp), _List< unsigned char, unsigned short, unsigned, unsigned long, unsigned long long> > ::__type; +# 1786 +public: using __type = typename __match_cv_qualifiers< _Tp, __unsigned_type> ::__type; +# 1788 +}; +# 1796 +template<> struct __make_unsigned< wchar_t> { +# 1798 +using __type = __make_unsigned_selector< wchar_t, false, true> ::__type; +# 1800 +}; +# 1813 "/usr/include/c++/11/type_traits" 3 +template<> struct __make_unsigned< char16_t> { +# 1815 +using __type = __make_unsigned_selector< char16_t, false, true> ::__type; +# 1817 +}; +# 1820 +template<> struct __make_unsigned< char32_t> { +# 1822 +using __type = __make_unsigned_selector< char32_t, false, true> ::__type; +# 1824 +}; +# 1831 +template< class _Tp> +# 1832 +struct make_unsigned { +# 1833 +typedef typename __make_unsigned_selector< _Tp> ::__type type; }; +# 1837 +template<> struct make_unsigned< bool> ; +# 1842 +template< class _Tp> +# 1843 +struct __make_signed { +# 1844 +typedef _Tp __type; }; +# 1847 +template<> struct __make_signed< char> { +# 1848 +typedef signed char __type; }; +# 1851 +template<> struct __make_signed< unsigned char> { +# 1852 +typedef signed char __type; }; +# 1855 +template<> struct __make_signed< unsigned short> { +# 1856 +typedef signed short __type; }; +# 1859 +template<> struct __make_signed< unsigned> { +# 1860 +typedef signed int __type; }; +# 1863 +template<> struct __make_signed< unsigned long> { +# 1864 +typedef signed long __type; }; +# 1867 +template<> struct __make_signed< unsigned long long> { +# 1868 +typedef signed long long __type; }; +# 1872 +template<> struct __make_signed< unsigned __int128> { +# 1873 +typedef __int128 __type; }; +# 1892 "/usr/include/c++/11/type_traits" 3 +template< class _Tp, bool +# 1893 +_IsInt = is_integral< _Tp> ::value, bool +# 1894 +_IsEnum = is_enum< _Tp> ::value> class __make_signed_selector; +# 1897 +template< class _Tp> +# 1898 +class __make_signed_selector< _Tp, true, false> { +# 1900 +using __signed_type = typename __make_signed< __remove_cv_t< _Tp> > ::__type; +# 1904 +public: using __type = typename __match_cv_qualifiers< _Tp, __signed_type> ::__type; +# 1906 +}; +# 1909 +template< class _Tp> +# 1910 +class __make_signed_selector< _Tp, false, true> { +# 1912 +typedef typename __make_unsigned_selector< _Tp> ::__type __unsigned_type; +# 1915 +public: typedef typename std::__make_signed_selector< __unsigned_type> ::__type __type; +# 1916 +}; +# 1924 +template<> struct __make_signed< wchar_t> { +# 1926 +using __type = __make_signed_selector< wchar_t, false, true> ::__type; +# 1928 +}; +# 1941 "/usr/include/c++/11/type_traits" 3 +template<> struct __make_signed< char16_t> { +# 1943 +using __type = __make_signed_selector< char16_t, false, true> ::__type; +# 1945 +}; +# 1948 +template<> struct __make_signed< char32_t> { +# 1950 +using __type = __make_signed_selector< char32_t, false, true> ::__type; +# 1952 +}; +# 1959 +template< class _Tp> +# 1960 +struct make_signed { +# 1961 +typedef typename __make_signed_selector< _Tp> ::__type type; }; +# 1965 +template<> struct make_signed< bool> ; +# 1969 +template< class _Tp> using make_signed_t = typename make_signed< _Tp> ::type; +# 1973 +template< class _Tp> using make_unsigned_t = typename make_unsigned< _Tp> ::type; +# 1980 +template< class _Tp> +# 1981 +struct remove_extent { +# 1982 +typedef _Tp type; }; +# 1984 +template< class _Tp, size_t _Size> +# 1985 +struct remove_extent< _Tp [_Size]> { +# 1986 +typedef _Tp type; }; +# 1988 +template< class _Tp> +# 1989 +struct remove_extent< _Tp []> { +# 1990 +typedef _Tp type; }; +# 1993 +template< class _Tp> +# 1994 +struct remove_all_extents { +# 1995 +typedef _Tp type; }; +# 1997 +template< class _Tp, size_t _Size> +# 1998 +struct remove_all_extents< _Tp [_Size]> { +# 1999 +typedef typename std::remove_all_extents< _Tp> ::type type; }; +# 2001 +template< class _Tp> +# 2002 +struct remove_all_extents< _Tp []> { +# 2003 +typedef typename std::remove_all_extents< _Tp> ::type type; }; +# 2007 +template< class _Tp> using remove_extent_t = typename remove_extent< _Tp> ::type; +# 2011 +template< class _Tp> using remove_all_extents_t = typename remove_all_extents< _Tp> ::type; +# 2017 +template< class _Tp, class > +# 2018 +struct __remove_pointer_helper { +# 2019 +typedef _Tp type; }; +# 2021 +template< class _Tp, class _Up> +# 2022 +struct __remove_pointer_helper< _Tp, _Up *> { +# 2023 +typedef _Up type; }; +# 2026 +template< class _Tp> +# 2027 +struct remove_pointer : public __remove_pointer_helper< _Tp, __remove_cv_t< _Tp> > { +# 2029 +}; +# 2031 +template< class _Tp, bool = __or_< __is_referenceable< _Tp> , is_void< _Tp> > ::value> +# 2033 +struct __add_pointer_helper { +# 2034 +typedef _Tp type; }; +# 2036 +template< class _Tp> +# 2037 +struct __add_pointer_helper< _Tp, true> { +# 2038 +typedef typename remove_reference< _Tp> ::type *type; }; +# 2041 +template< class _Tp> +# 2042 +struct add_pointer : public __add_pointer_helper< _Tp> { +# 2044 +}; +# 2048 +template< class _Tp> using remove_pointer_t = typename remove_pointer< _Tp> ::type; +# 2052 +template< class _Tp> using add_pointer_t = typename add_pointer< _Tp> ::type; +# 2056 +template< size_t _Len> +# 2057 +struct __aligned_storage_msa { +# 2059 +union __type { +# 2061 +unsigned char __data[_Len]; +# 2062 +struct __attribute((__aligned__)) { } __align; +# 2063 +}; +# 2064 +}; +# 2076 "/usr/include/c++/11/type_traits" 3 +template< size_t _Len, size_t _Align = __alignof__(typename __aligned_storage_msa< _Len> ::__type)> +# 2078 +struct aligned_storage { +# 2080 +union type { +# 2082 +unsigned char __data[_Len]; +# 2083 +struct __attribute((__aligned__(_Align))) { } __align; +# 2084 +}; +# 2085 +}; +# 2087 +template< class ..._Types> +# 2088 +struct __strictest_alignment { +# 2090 +static const size_t _S_alignment = (0); +# 2091 +static const size_t _S_size = (0); +# 2092 +}; +# 2094 +template< class _Tp, class ..._Types> +# 2095 +struct __strictest_alignment< _Tp, _Types...> { +# 2097 +static const size_t _S_alignment = ((__alignof__(_Tp) > __strictest_alignment< _Types...> ::_S_alignment) ? __alignof__(_Tp) : __strictest_alignment< _Types...> ::_S_alignment); +# 2100 +static const size_t _S_size = ((sizeof(_Tp) > __strictest_alignment< _Types...> ::_S_size) ? sizeof(_Tp) : __strictest_alignment< _Types...> ::_S_size); +# 2103 +}; +# 2115 "/usr/include/c++/11/type_traits" 3 +template< size_t _Len, class ..._Types> +# 2116 +struct aligned_union { +# 2119 +static_assert((sizeof...(_Types) != (0)), "At least one type is required"); +# 2121 +private: using __strictest = __strictest_alignment< _Types...> ; +# 2122 +static const size_t _S_len = ((_Len > __strictest::_S_size) ? _Len : __strictest::_S_size); +# 2126 +public: static const size_t alignment_value = (__strictest::_S_alignment); +# 2128 +typedef typename aligned_storage< _S_len, alignment_value> ::type type; +# 2129 +}; +# 2131 +template< size_t _Len, class ..._Types> const size_t aligned_union< _Len, _Types...> ::alignment_value; +# 2138 +template< class _Up, bool +# 2139 +_IsArray = is_array< _Up> ::value, bool +# 2140 +_IsFunction = is_function< _Up> ::value> struct __decay_selector; +# 2144 +template< class _Up> +# 2145 +struct __decay_selector< _Up, false, false> { +# 2146 +typedef __remove_cv_t< _Up> __type; }; +# 2148 +template< class _Up> +# 2149 +struct __decay_selector< _Up, true, false> { +# 2150 +typedef typename remove_extent< _Up> ::type *__type; }; +# 2152 +template< class _Up> +# 2153 +struct __decay_selector< _Up, false, true> { +# 2154 +typedef typename add_pointer< _Up> ::type __type; }; +# 2158 +template< class _Tp> +# 2159 +class decay { +# 2161 +typedef typename remove_reference< _Tp> ::type __remove_type; +# 2164 +public: typedef typename __decay_selector< __remove_type> ::__type type; +# 2165 +}; +# 2170 +template< class _Tp> +# 2171 +struct __strip_reference_wrapper { +# 2173 +typedef _Tp __type; +# 2174 +}; +# 2176 +template< class _Tp> +# 2177 +struct __strip_reference_wrapper< reference_wrapper< _Tp> > { +# 2179 +typedef _Tp &__type; +# 2180 +}; +# 2183 +template< class _Tp> using __decay_t = typename decay< _Tp> ::type; +# 2186 +template< class _Tp> using __decay_and_strip = __strip_reference_wrapper< __decay_t< _Tp> > ; +# 2192 +template< bool , class _Tp = void> +# 2193 +struct enable_if { +# 2194 +}; +# 2197 +template< class _Tp> +# 2198 +struct enable_if< true, _Tp> { +# 2199 +typedef _Tp type; }; +# 2204 +template< bool _Cond, class _Tp = void> using __enable_if_t = typename enable_if< _Cond, _Tp> ::type; +# 2208 +template< class ..._Cond> using _Require = __enable_if_t< __and_< _Cond...> ::value> ; +# 2212 +template< class _Tp> using __remove_cvref_t = typename remove_cv< typename remove_reference< _Tp> ::type> ::type; +# 2219 +template< bool _Cond, class _Iftrue, class _Iffalse> +# 2220 +struct conditional { +# 2221 +typedef _Iftrue type; }; +# 2224 +template< class _Iftrue, class _Iffalse> +# 2225 +struct conditional< false, _Iftrue, _Iffalse> { +# 2226 +typedef _Iffalse type; }; +# 2229 +template< class ..._Tp> struct common_type; +# 2235 +struct __do_common_type_impl { +# 2237 +template< class _Tp, class _Up> using __cond_t = __decltype((true ? std::declval< _Tp> () : std::declval< _Up> ())); +# 2243 +template< class _Tp, class _Up> static __success_type< __decay_t< __cond_t< _Tp, _Up> > > _S_test(int); +# 2255 "/usr/include/c++/11/type_traits" 3 +template< class , class > static __failure_type _S_test_2(...); +# 2259 +template< class _Tp, class _Up> static __decltype((_S_test_2< _Tp, _Up> (0))) _S_test(...); +# 2262 +}; +# 2266 +template<> struct common_type< > { +# 2267 +}; +# 2270 +template< class _Tp0> +# 2271 +struct common_type< _Tp0> : public std::common_type< _Tp0, _Tp0> { +# 2273 +}; +# 2276 +template< class _Tp1, class _Tp2, class +# 2277 +_Dp1 = __decay_t< _Tp1> , class _Dp2 = __decay_t< _Tp2> > +# 2278 +struct __common_type_impl { +# 2282 +using type = common_type< _Dp1, _Dp2> ; +# 2283 +}; +# 2285 +template< class _Tp1, class _Tp2> +# 2286 +struct __common_type_impl< _Tp1, _Tp2, _Tp1, _Tp2> : private __do_common_type_impl { +# 2291 +using type = __decltype((_S_test< _Tp1, _Tp2> (0))); +# 2292 +}; +# 2295 +template< class _Tp1, class _Tp2> +# 2296 +struct common_type< _Tp1, _Tp2> : public __common_type_impl< _Tp1, _Tp2> ::type { +# 2298 +}; +# 2300 +template< class ...> +# 2301 +struct __common_type_pack { +# 2302 +}; +# 2304 +template< class , class , class = void> struct __common_type_fold; +# 2308 +template< class _Tp1, class _Tp2, class ..._Rp> +# 2309 +struct common_type< _Tp1, _Tp2, _Rp...> : public __common_type_fold< std::common_type< _Tp1, _Tp2> , __common_type_pack< _Rp...> > { +# 2312 +}; +# 2317 +template< class _CTp, class ..._Rp> +# 2318 +struct __common_type_fold< _CTp, __common_type_pack< _Rp...> , __void_t< typename _CTp::type> > : public common_type< typename _CTp::type, _Rp...> { +# 2321 +}; +# 2324 +template< class _CTp, class _Rp> +# 2325 +struct __common_type_fold< _CTp, _Rp, void> { +# 2326 +}; +# 2328 +template< class _Tp, bool = is_enum< _Tp> ::value> +# 2329 +struct __underlying_type_impl { +# 2331 +using type = __underlying_type(_Tp); +# 2332 +}; +# 2334 +template< class _Tp> +# 2335 +struct __underlying_type_impl< _Tp, false> { +# 2336 +}; +# 2340 +template< class _Tp> +# 2341 +struct underlying_type : public __underlying_type_impl< _Tp> { +# 2343 +}; +# 2346 +template< class _Tp> +# 2347 +struct __declval_protector { +# 2349 +static const bool __stop = false; +# 2350 +}; +# 2357 +template< class _Tp> auto +# 2358 +declval() noexcept->__decltype((__declval< _Tp> (0))) +# 2359 +{ +# 2360 +static_assert((__declval_protector< _Tp> ::__stop), "declval() must not be used!"); +# 2362 +return __declval< _Tp> (0); +# 2363 +} +# 2366 +template< class _Signature> struct result_of; +# 2374 +struct __invoke_memfun_ref { }; +# 2375 +struct __invoke_memfun_deref { }; +# 2376 +struct __invoke_memobj_ref { }; +# 2377 +struct __invoke_memobj_deref { }; +# 2378 +struct __invoke_other { }; +# 2381 +template< class _Tp, class _Tag> +# 2382 +struct __result_of_success : public __success_type< _Tp> { +# 2383 +using __invoke_type = _Tag; }; +# 2386 +struct __result_of_memfun_ref_impl { +# 2388 +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); +# 2393 +template< class ...> static __failure_type _S_test(...); +# 2395 +}; +# 2397 +template< class _MemPtr, class _Arg, class ..._Args> +# 2398 +struct __result_of_memfun_ref : private __result_of_memfun_ref_impl { +# 2401 +typedef __decltype((_S_test< _MemPtr, _Arg, _Args...> (0))) type; +# 2402 +}; +# 2405 +struct __result_of_memfun_deref_impl { +# 2407 +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); +# 2412 +template< class ...> static __failure_type _S_test(...); +# 2414 +}; +# 2416 +template< class _MemPtr, class _Arg, class ..._Args> +# 2417 +struct __result_of_memfun_deref : private __result_of_memfun_deref_impl { +# 2420 +typedef __decltype((_S_test< _MemPtr, _Arg, _Args...> (0))) type; +# 2421 +}; +# 2424 +struct __result_of_memobj_ref_impl { +# 2426 +template< class _Fp, class _Tp1> static __result_of_success< __decltype((std::declval< _Tp1> ().*std::declval< _Fp> ())), __invoke_memobj_ref> _S_test(int); +# 2431 +template< class , class > static __failure_type _S_test(...); +# 2433 +}; +# 2435 +template< class _MemPtr, class _Arg> +# 2436 +struct __result_of_memobj_ref : private __result_of_memobj_ref_impl { +# 2439 +typedef __decltype((_S_test< _MemPtr, _Arg> (0))) type; +# 2440 +}; +# 2443 +struct __result_of_memobj_deref_impl { +# 2445 +template< class _Fp, class _Tp1> static __result_of_success< __decltype(((*std::declval< _Tp1> ()).*std::declval< _Fp> ())), __invoke_memobj_deref> _S_test(int); +# 2450 +template< class , class > static __failure_type _S_test(...); +# 2452 +}; +# 2454 +template< class _MemPtr, class _Arg> +# 2455 +struct __result_of_memobj_deref : private __result_of_memobj_deref_impl { +# 2458 +typedef __decltype((_S_test< _MemPtr, _Arg> (0))) type; +# 2459 +}; +# 2461 +template< class _MemPtr, class _Arg> struct __result_of_memobj; +# 2464 +template< class _Res, class _Class, class _Arg> +# 2465 +struct __result_of_memobj< _Res (_Class::*), _Arg> { +# 2467 +typedef __remove_cvref_t< _Arg> _Argval; +# 2468 +typedef _Res (_Class::*_MemPtr); +# 2473 +typedef typename conditional< __or_< is_same< _Argval, _Class> , is_base_of< _Class, _Argval> > ::value, __result_of_memobj_ref< _MemPtr, _Arg> , __result_of_memobj_deref< _MemPtr, _Arg> > ::type::type type; +# 2474 +}; +# 2476 +template< class _MemPtr, class _Arg, class ..._Args> struct __result_of_memfun; +# 2479 +template< class _Res, class _Class, class _Arg, class ..._Args> +# 2480 +struct __result_of_memfun< _Res (_Class::*), _Arg, _Args...> { +# 2482 +typedef typename remove_reference< _Arg> ::type _Argval; +# 2483 +typedef _Res (_Class::*_MemPtr); +# 2487 +typedef typename conditional< is_base_of< _Class, _Argval> ::value, __result_of_memfun_ref< _MemPtr, _Arg, _Args...> , __result_of_memfun_deref< _MemPtr, _Arg, _Args...> > ::type::type type; +# 2488 +}; +# 2495 +template< class _Tp, class _Up = __remove_cvref_t< _Tp> > +# 2496 +struct __inv_unwrap { +# 2498 +using type = _Tp; +# 2499 +}; +# 2501 +template< class _Tp, class _Up> +# 2502 +struct __inv_unwrap< _Tp, reference_wrapper< _Up> > { +# 2504 +using type = _Up &; +# 2505 +}; +# 2507 +template< bool , bool , class _Functor, class ..._ArgTypes> +# 2508 +struct __result_of_impl { +# 2510 +typedef __failure_type type; +# 2511 +}; +# 2513 +template< class _MemPtr, class _Arg> +# 2514 +struct __result_of_impl< true, false, _MemPtr, _Arg> : public __result_of_memobj< __decay_t< _MemPtr> , typename __inv_unwrap< _Arg> ::type> { +# 2517 +}; +# 2519 +template< class _MemPtr, class _Arg, class ..._Args> +# 2520 +struct __result_of_impl< false, true, _MemPtr, _Arg, _Args...> : public __result_of_memfun< __decay_t< _MemPtr> , typename __inv_unwrap< _Arg> ::type, _Args...> { +# 2523 +}; +# 2526 +struct __result_of_other_impl { +# 2528 +template< class _Fn, class ..._Args> static __result_of_success< __decltype((std::declval< _Fn> ()(std::declval< _Args> ()...))), __invoke_other> _S_test(int); +# 2533 +template< class ...> static __failure_type _S_test(...); +# 2535 +}; +# 2537 +template< class _Functor, class ..._ArgTypes> +# 2538 +struct __result_of_impl< false, false, _Functor, _ArgTypes...> : private __result_of_other_impl { +# 2541 +typedef __decltype((_S_test< _Functor, _ArgTypes...> (0))) type; +# 2542 +}; +# 2545 +template< class _Functor, class ..._ArgTypes> +# 2546 +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 { +# 2556 +}; +# 2559 +template< class _Functor, class ..._ArgTypes> +# 2560 +struct result_of< _Functor (_ArgTypes ...)> : public __invoke_result< _Functor, _ArgTypes...> { +# 2562 +}; +# 2566 +template< size_t _Len, size_t _Align = __alignof__(typename __aligned_storage_msa< _Len> ::__type)> using aligned_storage_t = typename aligned_storage< _Len, _Align> ::type; +# 2570 +template< size_t _Len, class ..._Types> using aligned_union_t = typename aligned_union< _Len, _Types...> ::type; +# 2574 +template< class _Tp> using decay_t = typename decay< _Tp> ::type; +# 2578 +template< bool _Cond, class _Tp = void> using enable_if_t = typename enable_if< _Cond, _Tp> ::type; +# 2582 +template< bool _Cond, class _Iftrue, class _Iffalse> using conditional_t = typename conditional< _Cond, _Iftrue, _Iffalse> ::type; +# 2586 +template< class ..._Tp> using common_type_t = typename common_type< _Tp...> ::type; +# 2590 +template< class _Tp> using underlying_type_t = typename underlying_type< _Tp> ::type; +# 2594 +template< class _Tp> using result_of_t = typename result_of< _Tp> ::type; +# 2601 +template< class ...> using void_t = void; +# 2607 +template< class _Default, class _AlwaysVoid, +# 2608 +template< class ...> class _Op, class ..._Args> +# 2609 +struct __detector { +# 2611 +using value_t = false_type; +# 2612 +using type = _Default; +# 2613 +}; +# 2616 +template< class _Default, template< class ...> class _Op, class ... +# 2617 +_Args> +# 2618 +struct __detector< _Default, __void_t< _Op< _Args...> > , _Op, _Args...> { +# 2620 +using value_t = true_type; +# 2621 +using type = _Op< _Args...> ; +# 2622 +}; +# 2625 +template< class _Default, template< class ...> class _Op, class ... +# 2626 +_Args> using __detected_or = __detector< _Default, void, _Op, _Args...> ; +# 2630 +template< class _Default, template< class ...> class _Op, class ... +# 2631 +_Args> using __detected_or_t = typename __detected_or< _Default, _Op, _Args...> ::type; +# 2649 "/usr/include/c++/11/type_traits" 3 +template< class _Tp> struct __is_swappable; +# 2652 +template< class _Tp> struct __is_nothrow_swappable; +# 2655 +template< class > +# 2656 +struct __is_tuple_like_impl : public false_type { +# 2657 +}; +# 2659 +template< class ..._Tps> +# 2660 +struct __is_tuple_like_impl< tuple< _Tps...> > : public true_type { +# 2661 +}; +# 2664 +template< class _Tp> +# 2665 +struct __is_tuple_like : public __is_tuple_like_impl< __remove_cvref_t< _Tp> > ::type { +# 2667 +}; +# 2670 +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); +# 2680 +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); +# 2688 +namespace __swappable_details { +# 2689 +using std::swap; +# 2691 +struct __do_is_swappable_impl { +# 2693 +template< class _Tp, class +# 2694 + = __decltype((swap(std::declval< _Tp &> (), std::declval< _Tp &> ())))> static true_type +# 2693 +__test(int); +# 2697 +template< class > static false_type __test(...); +# 2699 +}; +# 2701 +struct __do_is_nothrow_swappable_impl { +# 2703 +template< class _Tp> static __bool_constant< noexcept(swap(std::declval< _Tp &> (), std::declval< _Tp &> ()))> __test(int); +# 2708 +template< class > static false_type __test(...); +# 2710 +}; +# 2712 +} +# 2714 +template< class _Tp> +# 2715 +struct __is_swappable_impl : public __swappable_details::__do_is_swappable_impl { +# 2718 +typedef __decltype((__test< _Tp> (0))) type; +# 2719 +}; +# 2721 +template< class _Tp> +# 2722 +struct __is_nothrow_swappable_impl : public __swappable_details::__do_is_nothrow_swappable_impl { +# 2725 +typedef __decltype((__test< _Tp> (0))) type; +# 2726 +}; +# 2728 +template< class _Tp> +# 2729 +struct __is_swappable : public __is_swappable_impl< _Tp> ::type { +# 2731 +}; +# 2733 +template< class _Tp> +# 2734 +struct __is_nothrow_swappable : public __is_nothrow_swappable_impl< _Tp> ::type { +# 2736 +}; +# 2744 +template< class _Tp> +# 2745 +struct is_swappable : public __is_swappable_impl< _Tp> ::type { +# 2748 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 2750 +}; +# 2753 +template< class _Tp> +# 2754 +struct is_nothrow_swappable : public __is_nothrow_swappable_impl< _Tp> ::type { +# 2757 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 2759 +}; +# 2763 +template< class _Tp> constexpr inline bool +# 2764 +is_swappable_v = (is_swappable< _Tp> ::value); +# 2768 +template< class _Tp> constexpr inline bool +# 2769 +is_nothrow_swappable_v = (is_nothrow_swappable< _Tp> ::value); +# 2774 +namespace __swappable_with_details { +# 2775 +using std::swap; +# 2777 +struct __do_is_swappable_with_impl { +# 2779 +template< class _Tp, class _Up, class +# 2780 + = __decltype((swap(std::declval< _Tp> (), std::declval< _Up> ()))), class +# 2782 + = __decltype((swap(std::declval< _Up> (), std::declval< _Tp> ())))> static true_type +# 2779 +__test(int); +# 2785 +template< class , class > static false_type __test(...); +# 2787 +}; +# 2789 +struct __do_is_nothrow_swappable_with_impl { +# 2791 +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); +# 2798 +template< class , class > static false_type __test(...); +# 2800 +}; +# 2802 +} +# 2804 +template< class _Tp, class _Up> +# 2805 +struct __is_swappable_with_impl : public __swappable_with_details::__do_is_swappable_with_impl { +# 2808 +typedef __decltype((__test< _Tp, _Up> (0))) type; +# 2809 +}; +# 2812 +template< class _Tp> +# 2813 +struct __is_swappable_with_impl< _Tp &, _Tp &> : public __swappable_details::__do_is_swappable_impl { +# 2816 +typedef __decltype((__test< _Tp &> (0))) type; +# 2817 +}; +# 2819 +template< class _Tp, class _Up> +# 2820 +struct __is_nothrow_swappable_with_impl : public __swappable_with_details::__do_is_nothrow_swappable_with_impl { +# 2823 +typedef __decltype((__test< _Tp, _Up> (0))) type; +# 2824 +}; +# 2827 +template< class _Tp> +# 2828 +struct __is_nothrow_swappable_with_impl< _Tp &, _Tp &> : public __swappable_details::__do_is_nothrow_swappable_impl { +# 2831 +typedef __decltype((__test< _Tp &> (0))) type; +# 2832 +}; +# 2836 +template< class _Tp, class _Up> +# 2837 +struct is_swappable_with : public __is_swappable_with_impl< _Tp, _Up> ::type { +# 2840 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "first template argument must be a complete class or an unbounded array"); +# 2842 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Up> {})), "second template argument must be a complete class or an unbounded array"); +# 2844 +}; +# 2847 +template< class _Tp, class _Up> +# 2848 +struct is_nothrow_swappable_with : public __is_nothrow_swappable_with_impl< _Tp, _Up> ::type { +# 2851 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "first template argument must be a complete class or an unbounded array"); +# 2853 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Up> {})), "second template argument must be a complete class or an unbounded array"); +# 2855 +}; +# 2859 +template< class _Tp, class _Up> constexpr inline bool +# 2860 +is_swappable_with_v = (is_swappable_with< _Tp, _Up> ::value); +# 2864 +template< class _Tp, class _Up> constexpr inline bool +# 2865 +is_nothrow_swappable_with_v = (is_nothrow_swappable_with< _Tp, _Up> ::value); +# 2876 "/usr/include/c++/11/type_traits" 3 +template< class _Result, class _Ret, bool +# 2877 + = is_void< _Ret> ::value, class = void> +# 2878 +struct __is_invocable_impl : public false_type { +# 2881 +using __nothrow_type = false_type; +# 2882 +}; +# 2885 +template< class _Result, class _Ret> +# 2886 +struct __is_invocable_impl< _Result, _Ret, true, __void_t< typename _Result::type> > : public true_type { +# 2891 +using __nothrow_type = true_type; +# 2892 +}; +# 2894 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" +# 2897 +template< class _Result, class _Ret> +# 2898 +struct __is_invocable_impl< _Result, _Ret, false, __void_t< typename _Result::type> > { +# 2906 +private: static typename _Result::type _S_get() noexcept; +# 2908 +template< class _Tp> static void _S_conv(_Tp) noexcept; +# 2912 +template< class _Tp, bool _Check_Noex = false, class +# 2913 + = __decltype((_S_conv< _Tp> ((_S_get)()))), bool +# 2914 +_Noex = noexcept(_S_conv< _Tp> ((_S_get)()))> static __bool_constant< _Check_Noex ? _Noex : true> +# 2912 +_S_test(int); +# 2918 +template< class _Tp, bool = false> static false_type _S_test(...); +# 2924 +public: using type = __decltype((_S_test< _Ret> (1))); +# 2927 +using __nothrow_type = __decltype((_S_test< _Ret, true> (1))); +# 2928 +}; +#pragma GCC diagnostic pop +# 2931 +template< class _Fn, class ..._ArgTypes> +# 2932 +struct __is_invocable : public __is_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , void> ::type { +# 2934 +}; +# 2936 +template< class _Fn, class _Tp, class ..._Args> constexpr bool +# 2937 +__call_is_nt(__invoke_memfun_ref) +# 2938 +{ +# 2939 +using _Up = typename __inv_unwrap< _Tp> ::type; +# 2940 +return noexcept((std::declval< typename __inv_unwrap< _Tp> ::type> ().*std::declval< _Fn> ())(std::declval< _Args> ()...)); +# 2942 +} +# 2944 +template< class _Fn, class _Tp, class ..._Args> constexpr bool +# 2945 +__call_is_nt(__invoke_memfun_deref) +# 2946 +{ +# 2947 +return noexcept(((*std::declval< _Tp> ()).*std::declval< _Fn> ())(std::declval< _Args> ()...)); +# 2949 +} +# 2951 +template< class _Fn, class _Tp> constexpr bool +# 2952 +__call_is_nt(__invoke_memobj_ref) +# 2953 +{ +# 2954 +using _Up = typename __inv_unwrap< _Tp> ::type; +# 2955 +return noexcept((std::declval< typename __inv_unwrap< _Tp> ::type> ().*std::declval< _Fn> ())); +# 2956 +} +# 2958 +template< class _Fn, class _Tp> constexpr bool +# 2959 +__call_is_nt(__invoke_memobj_deref) +# 2960 +{ +# 2961 +return noexcept(((*std::declval< _Tp> ()).*std::declval< _Fn> ())); +# 2962 +} +# 2964 +template< class _Fn, class ..._Args> constexpr bool +# 2965 +__call_is_nt(__invoke_other) +# 2966 +{ +# 2967 +return noexcept(std::declval< _Fn> ()(std::declval< _Args> ()...)); +# 2968 +} +# 2970 +template< class _Result, class _Fn, class ..._Args> +# 2971 +struct __call_is_nothrow : public __bool_constant< std::__call_is_nt< _Fn, _Args...> (typename _Result::__invoke_type{})> { +# 2975 +}; +# 2977 +template< class _Fn, class ..._Args> using __call_is_nothrow_ = __call_is_nothrow< __invoke_result< _Fn, _Args...> , _Fn, _Args...> ; +# 2982 +template< class _Fn, class ..._Args> +# 2983 +struct __is_nothrow_invocable : public __and_< __is_invocable< _Fn, _Args...> , __call_is_nothrow_< _Fn, _Args...> > ::type { +# 2986 +}; +# 2988 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" +struct __nonesuchbase { }; +# 2991 +struct __nonesuch : private __nonesuchbase { +# 2992 +~__nonesuch() = delete; +# 2993 +__nonesuch(const __nonesuch &) = delete; +# 2994 +void operator=(const __nonesuch &) = delete; +# 2995 +}; +#pragma GCC diagnostic pop +# 3003 +template< class _Functor, class ..._ArgTypes> +# 3004 +struct invoke_result : public __invoke_result< _Functor, _ArgTypes...> { +# 3007 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Functor> {})), "_Functor must be a complete class or an unbounded array"); +# 3009 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3012 +}; +# 3015 +template< class _Fn, class ..._Args> using invoke_result_t = typename invoke_result< _Fn, _Args...> ::type; +# 3019 +template< class _Fn, class ..._ArgTypes> +# 3020 +struct is_invocable : public __is_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , void> ::type { +# 3023 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Fn> {})), "_Fn must be a complete class or an unbounded array"); +# 3025 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3028 +}; +# 3031 +template< class _Ret, class _Fn, class ..._ArgTypes> +# 3032 +struct is_invocable_r : public __is_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , _Ret> ::type { +# 3035 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Fn> {})), "_Fn must be a complete class or an unbounded array"); +# 3037 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3040 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Ret> {})), "_Ret must be a complete class or an unbounded array"); +# 3042 +}; +# 3045 +template< class _Fn, class ..._ArgTypes> +# 3046 +struct is_nothrow_invocable : public __and_< __is_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , void> , __call_is_nothrow_< _Fn, _ArgTypes...> > ::type { +# 3050 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Fn> {})), "_Fn must be a complete class or an unbounded array"); +# 3052 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3055 +}; +# 3058 +template< class _Result, class _Ret> using __is_nt_invocable_impl = typename __is_invocable_impl< _Result, _Ret> ::__nothrow_type; +# 3064 +template< class _Ret, class _Fn, class ..._ArgTypes> +# 3065 +struct is_nothrow_invocable_r : public __and_< __is_nt_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , _Ret> , __call_is_nothrow_< _Fn, _ArgTypes...> > ::type { +# 3069 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Fn> {})), "_Fn must be a complete class or an unbounded array"); +# 3071 +static_assert(((std::__is_complete_or_unbounded(__type_identity< _ArgTypes> {}) && ... )), "each argument type must be a complete class or an unbounded array"); +# 3074 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Ret> {})), "_Ret must be a complete class or an unbounded array"); +# 3076 +}; +# 3094 "/usr/include/c++/11/type_traits" 3 +template< class _Tp> constexpr inline bool +# 3095 +is_void_v = (is_void< _Tp> ::value); +# 3096 +template< class _Tp> constexpr inline bool +# 3097 +is_null_pointer_v = (is_null_pointer< _Tp> ::value); +# 3098 +template< class _Tp> constexpr inline bool +# 3099 +is_integral_v = (is_integral< _Tp> ::value); +# 3100 +template< class _Tp> constexpr inline bool +# 3101 +is_floating_point_v = (is_floating_point< _Tp> ::value); +# 3102 +template< class _Tp> constexpr inline bool +# 3103 +is_array_v = (is_array< _Tp> ::value); +# 3104 +template< class _Tp> constexpr inline bool +# 3105 +is_pointer_v = (is_pointer< _Tp> ::value); +# 3106 +template< class _Tp> constexpr inline bool +# 3107 +is_lvalue_reference_v = (is_lvalue_reference< _Tp> ::value); +# 3109 +template< class _Tp> constexpr inline bool +# 3110 +is_rvalue_reference_v = (is_rvalue_reference< _Tp> ::value); +# 3112 +template< class _Tp> constexpr inline bool +# 3113 +is_member_object_pointer_v = (is_member_object_pointer< _Tp> ::value); +# 3115 +template< class _Tp> constexpr inline bool +# 3116 +is_member_function_pointer_v = (is_member_function_pointer< _Tp> ::value); +# 3118 +template< class _Tp> constexpr inline bool +# 3119 +is_enum_v = (is_enum< _Tp> ::value); +# 3120 +template< class _Tp> constexpr inline bool +# 3121 +is_union_v = (is_union< _Tp> ::value); +# 3122 +template< class _Tp> constexpr inline bool +# 3123 +is_class_v = (is_class< _Tp> ::value); +# 3124 +template< class _Tp> constexpr inline bool +# 3125 +is_function_v = (is_function< _Tp> ::value); +# 3126 +template< class _Tp> constexpr inline bool +# 3127 +is_reference_v = (is_reference< _Tp> ::value); +# 3128 +template< class _Tp> constexpr inline bool +# 3129 +is_arithmetic_v = (is_arithmetic< _Tp> ::value); +# 3130 +template< class _Tp> constexpr inline bool +# 3131 +is_fundamental_v = (is_fundamental< _Tp> ::value); +# 3132 +template< class _Tp> constexpr inline bool +# 3133 +is_object_v = (is_object< _Tp> ::value); +# 3134 +template< class _Tp> constexpr inline bool +# 3135 +is_scalar_v = (is_scalar< _Tp> ::value); +# 3136 +template< class _Tp> constexpr inline bool +# 3137 +is_compound_v = (is_compound< _Tp> ::value); +# 3138 +template< class _Tp> constexpr inline bool +# 3139 +is_member_pointer_v = (is_member_pointer< _Tp> ::value); +# 3140 +template< class _Tp> constexpr inline bool +# 3141 +is_const_v = (is_const< _Tp> ::value); +# 3142 +template< class _Tp> constexpr inline bool +# 3143 +is_volatile_v = (is_volatile< _Tp> ::value); +# 3144 +template< class _Tp> constexpr inline bool +# 3145 +is_trivial_v = (is_trivial< _Tp> ::value); +# 3146 +template< class _Tp> constexpr inline bool +# 3147 +is_trivially_copyable_v = (is_trivially_copyable< _Tp> ::value); +# 3149 +template< class _Tp> constexpr inline bool +# 3150 +is_standard_layout_v = (is_standard_layout< _Tp> ::value); +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +template< class _Tp> constexpr inline bool +# 3155 +is_pod_v = (is_pod< _Tp> ::value); +# 3156 +template< class _Tp> +# 3157 +[[__deprecated__]] constexpr inline bool +# 3158 +is_literal_type_v = (is_literal_type< _Tp> ::value); +#pragma GCC diagnostic pop +template< class _Tp> constexpr inline bool +# 3161 +is_empty_v = (is_empty< _Tp> ::value); +# 3162 +template< class _Tp> constexpr inline bool +# 3163 +is_polymorphic_v = (is_polymorphic< _Tp> ::value); +# 3164 +template< class _Tp> constexpr inline bool +# 3165 +is_abstract_v = (is_abstract< _Tp> ::value); +# 3166 +template< class _Tp> constexpr inline bool +# 3167 +is_final_v = (is_final< _Tp> ::value); +# 3168 +template< class _Tp> constexpr inline bool +# 3169 +is_signed_v = (is_signed< _Tp> ::value); +# 3170 +template< class _Tp> constexpr inline bool +# 3171 +is_unsigned_v = (is_unsigned< _Tp> ::value); +# 3172 +template< class _Tp, class ..._Args> constexpr inline bool +# 3173 +is_constructible_v = (is_constructible< _Tp, _Args...> ::value); +# 3175 +template< class _Tp> constexpr inline bool +# 3176 +is_default_constructible_v = (is_default_constructible< _Tp> ::value); +# 3178 +template< class _Tp> constexpr inline bool +# 3179 +is_copy_constructible_v = (is_copy_constructible< _Tp> ::value); +# 3181 +template< class _Tp> constexpr inline bool +# 3182 +is_move_constructible_v = (is_move_constructible< _Tp> ::value); +# 3184 +template< class _Tp, class _Up> constexpr inline bool +# 3185 +is_assignable_v = (is_assignable< _Tp, _Up> ::value); +# 3186 +template< class _Tp> constexpr inline bool +# 3187 +is_copy_assignable_v = (is_copy_assignable< _Tp> ::value); +# 3188 +template< class _Tp> constexpr inline bool +# 3189 +is_move_assignable_v = (is_move_assignable< _Tp> ::value); +# 3190 +template< class _Tp> constexpr inline bool +# 3191 +is_destructible_v = (is_destructible< _Tp> ::value); +# 3192 +template< class _Tp, class ..._Args> constexpr inline bool +# 3193 +is_trivially_constructible_v = (is_trivially_constructible< _Tp, _Args...> ::value); +# 3195 +template< class _Tp> constexpr inline bool +# 3196 +is_trivially_default_constructible_v = (is_trivially_default_constructible< _Tp> ::value); +# 3198 +template< class _Tp> constexpr inline bool +# 3199 +is_trivially_copy_constructible_v = (is_trivially_copy_constructible< _Tp> ::value); +# 3201 +template< class _Tp> constexpr inline bool +# 3202 +is_trivially_move_constructible_v = (is_trivially_move_constructible< _Tp> ::value); +# 3204 +template< class _Tp, class _Up> constexpr inline bool +# 3205 +is_trivially_assignable_v = (is_trivially_assignable< _Tp, _Up> ::value); +# 3207 +template< class _Tp> constexpr inline bool +# 3208 +is_trivially_copy_assignable_v = (is_trivially_copy_assignable< _Tp> ::value); +# 3210 +template< class _Tp> constexpr inline bool +# 3211 +is_trivially_move_assignable_v = (is_trivially_move_assignable< _Tp> ::value); +# 3213 +template< class _Tp> constexpr inline bool +# 3214 +is_trivially_destructible_v = (is_trivially_destructible< _Tp> ::value); +# 3216 +template< class _Tp, class ..._Args> constexpr inline bool +# 3217 +is_nothrow_constructible_v = (is_nothrow_constructible< _Tp, _Args...> ::value); +# 3219 +template< class _Tp> constexpr inline bool +# 3220 +is_nothrow_default_constructible_v = (is_nothrow_default_constructible< _Tp> ::value); +# 3222 +template< class _Tp> constexpr inline bool +# 3223 +is_nothrow_copy_constructible_v = (is_nothrow_copy_constructible< _Tp> ::value); +# 3225 +template< class _Tp> constexpr inline bool +# 3226 +is_nothrow_move_constructible_v = (is_nothrow_move_constructible< _Tp> ::value); +# 3228 +template< class _Tp, class _Up> constexpr inline bool +# 3229 +is_nothrow_assignable_v = (is_nothrow_assignable< _Tp, _Up> ::value); +# 3231 +template< class _Tp> constexpr inline bool +# 3232 +is_nothrow_copy_assignable_v = (is_nothrow_copy_assignable< _Tp> ::value); +# 3234 +template< class _Tp> constexpr inline bool +# 3235 +is_nothrow_move_assignable_v = (is_nothrow_move_assignable< _Tp> ::value); +# 3237 +template< class _Tp> constexpr inline bool +# 3238 +is_nothrow_destructible_v = (is_nothrow_destructible< _Tp> ::value); +# 3240 +template< class _Tp> constexpr inline bool +# 3241 +has_virtual_destructor_v = (has_virtual_destructor< _Tp> ::value); +# 3243 +template< class _Tp> constexpr inline size_t +# 3244 +alignment_of_v = (alignment_of< _Tp> ::value); +# 3245 +template< class _Tp> constexpr inline size_t +# 3246 +rank_v = (rank< _Tp> ::value); +# 3247 +template< class _Tp, unsigned _Idx = 0U> constexpr inline size_t +# 3248 +extent_v = (extent< _Tp, _Idx> ::value); +# 3250 +template< class _Tp, class _Up> constexpr inline bool +# 3251 +is_same_v = __is_same(_Tp, _Up); +# 3256 +template< class _Base, class _Derived> constexpr inline bool +# 3257 +is_base_of_v = (is_base_of< _Base, _Derived> ::value); +# 3258 +template< class _From, class _To> constexpr inline bool +# 3259 +is_convertible_v = (is_convertible< _From, _To> ::value); +# 3260 +template< class _Fn, class ..._Args> constexpr inline bool +# 3261 +is_invocable_v = (is_invocable< _Fn, _Args...> ::value); +# 3262 +template< class _Fn, class ..._Args> constexpr inline bool +# 3263 +is_nothrow_invocable_v = (is_nothrow_invocable< _Fn, _Args...> ::value); +# 3265 +template< class _Ret, class _Fn, class ..._Args> constexpr inline bool +# 3266 +is_invocable_r_v = (is_invocable_r< _Ret, _Fn, _Args...> ::value); +# 3268 +template< class _Ret, class _Fn, class ..._Args> constexpr inline bool +# 3269 +is_nothrow_invocable_r_v = (is_nothrow_invocable_r< _Ret, _Fn, _Args...> ::value); +# 3276 +template< class _Tp> +# 3277 +struct has_unique_object_representations : public bool_constant< __has_unique_object_representations(remove_cv_t< remove_all_extents_t< _Tp> > )> { +# 3282 +static_assert((std::__is_complete_or_unbounded(__type_identity< _Tp> {})), "template argument must be a complete class or an unbounded array"); +# 3284 +}; +# 3287 +template< class _Tp> constexpr inline bool +# 3288 +has_unique_object_representations_v = (has_unique_object_representations< _Tp> ::value); +# 3295 +template< class _Tp> +# 3296 +struct is_aggregate : public bool_constant< __is_aggregate(remove_cv_t< _Tp> )> { +# 3298 +}; +# 3301 +template< class _Tp> constexpr inline bool +# 3302 +is_aggregate_v = (is_aggregate< _Tp> ::value); +# 3599 "/usr/include/c++/11/type_traits" 3 +} +# 59 "/usr/include/c++/11/bits/move.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 74 "/usr/include/c++/11/bits/move.h" 3 +template< class _Tp> +# 75 +[[__nodiscard__]] constexpr _Tp && +# 77 +forward(typename remove_reference< _Tp> ::type &__t) noexcept +# 78 +{ return static_cast< _Tp &&>(__t); } +# 86 +template< class _Tp> +# 87 +[[__nodiscard__]] constexpr _Tp && +# 89 +forward(typename remove_reference< _Tp> ::type &&__t) noexcept +# 90 +{ +# 91 +static_assert((!std::template is_lvalue_reference< _Tp> ::value), "std::forward must not be used to convert an rvalue to an lvalue"); +# 93 +return static_cast< _Tp &&>(__t); +# 94 +} +# 101 +template< class _Tp> +# 102 +[[__nodiscard__]] constexpr typename remove_reference< _Tp> ::type && +# 104 +move(_Tp &&__t) noexcept +# 105 +{ return static_cast< typename remove_reference< _Tp> ::type &&>(__t); } +# 108 +template< class _Tp> +# 109 +struct __move_if_noexcept_cond : public __and_< __not_< is_nothrow_move_constructible< _Tp> > , is_copy_constructible< _Tp> > ::type { +# 111 +}; +# 121 "/usr/include/c++/11/bits/move.h" 3 +template< class _Tp> +# 122 +[[__nodiscard__]] constexpr typename conditional< __move_if_noexcept_cond< _Tp> ::value, const _Tp &, _Tp &&> ::type +# 125 +move_if_noexcept(_Tp &__x) noexcept +# 126 +{ return std::move(__x); } +# 142 "/usr/include/c++/11/bits/move.h" 3 +template< class _Tp> +# 143 +[[__nodiscard__]] constexpr _Tp * +# 145 +addressof(_Tp &__r) noexcept +# 146 +{ return std::__addressof(__r); } +# 150 +template < typename _Tp > + const _Tp * addressof ( const _Tp && ) = delete; +# 154 +template< class _Tp, class _Up = _Tp> inline _Tp +# 157 +__exchange(_Tp &__obj, _Up &&__new_val) +# 158 +{ +# 159 +_Tp __old_val = std::move(__obj); +# 160 +__obj = std::forward< _Up> (__new_val); +# 161 +return __old_val; +# 162 +} +# 186 "/usr/include/c++/11/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 +# 196 +swap(_Tp &__a, _Tp &__b) noexcept(__and_< is_nothrow_move_constructible< _Tp> , is_nothrow_move_assignable< _Tp> > ::value) +# 199 +{ +# 204 +_Tp __tmp = std::move(__a); +# 205 +__a = std::move(__b); +# 206 +__b = std::move(__tmp); +# 207 +} +# 212 +template< class _Tp, size_t _Nm> inline typename enable_if< __is_swappable< _Tp> ::value> ::type +# 220 +swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) noexcept(__is_nothrow_swappable< _Tp> ::value) +# 222 +{ +# 223 +for (size_t __n = (0); __n < _Nm; ++__n) { +# 224 +swap(__a[__n], __b[__n]); } +# 225 +} +# 229 +} +# 69 "/usr/include/c++/11/bits/stl_pair.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 80 "/usr/include/c++/11/bits/stl_pair.h" 3 +struct piecewise_construct_t { explicit piecewise_construct_t() = default;}; +# 83 +constexpr inline piecewise_construct_t piecewise_construct = piecewise_construct_t(); +# 89 +template< class ...> class tuple; +# 92 +template< size_t ...> struct _Index_tuple; +# 100 +template< bool , class _T1, class _T2> +# 101 +struct _PCC { +# 103 +template< class _U1, class _U2> static constexpr bool +# 104 +_ConstructiblePair() +# 105 +{ +# 106 +return __and_< is_constructible< _T1, const _U1 &> , is_constructible< _T2, const _U2 &> > ::value; +# 108 +} +# 110 +template< class _U1, class _U2> static constexpr bool +# 111 +_ImplicitlyConvertiblePair() +# 112 +{ +# 113 +return __and_< is_convertible< const _U1 &, _T1> , is_convertible< const _U2 &, _T2> > ::value; +# 115 +} +# 117 +template< class _U1, class _U2> static constexpr bool +# 118 +_MoveConstructiblePair() +# 119 +{ +# 120 +return __and_< is_constructible< _T1, _U1 &&> , is_constructible< _T2, _U2 &&> > ::value; +# 122 +} +# 124 +template< class _U1, class _U2> static constexpr bool +# 125 +_ImplicitlyMoveConvertiblePair() +# 126 +{ +# 127 +return __and_< is_convertible< _U1 &&, _T1> , is_convertible< _U2 &&, _T2> > ::value; +# 129 +} +# 131 +template< bool __implicit, class _U1, class _U2> static constexpr bool +# 132 +_CopyMovePair() +# 133 +{ +# 134 +using __do_converts = __and_< is_convertible< const _U1 &, _T1> , is_convertible< _U2 &&, _T2> > ; +# 136 +using __converts = typename conditional< __implicit, __and_< is_convertible< const _U1 &, _T1> , is_convertible< _U2 &&, _T2> > , __not_< __and_< is_convertible< const _U1 &, _T1> , is_convertible< _U2 &&, _T2> > > > ::type; +# 139 +return __and_< is_constructible< _T1, const _U1 &> , is_constructible< _T2, _U2 &&> , typename conditional< __implicit, __and_< is_convertible< const _U1 &, _T1> , is_convertible< _U2 &&, _T2> > , __not_< __and_< is_convertible< const _U1 &, _T1> , is_convertible< _U2 &&, _T2> > > > ::type> ::value; +# 143 +} +# 145 +template< bool __implicit, class _U1, class _U2> static constexpr bool +# 146 +_MoveCopyPair() +# 147 +{ +# 148 +using __do_converts = __and_< is_convertible< _U1 &&, _T1> , is_convertible< const _U2 &, _T2> > ; +# 150 +using __converts = typename conditional< __implicit, __and_< is_convertible< _U1 &&, _T1> , is_convertible< const _U2 &, _T2> > , __not_< __and_< is_convertible< _U1 &&, _T1> , is_convertible< const _U2 &, _T2> > > > ::type; +# 153 +return __and_< is_constructible< _T1, _U1 &&> , is_constructible< _T2, const _U2 &&> , typename conditional< __implicit, __and_< is_convertible< _U1 &&, _T1> , is_convertible< const _U2 &, _T2> > , __not_< __and_< is_convertible< _U1 &&, _T1> , is_convertible< const _U2 &, _T2> > > > ::type> ::value; +# 157 +} +# 158 +}; +# 160 +template< class _T1, class _T2> +# 161 +struct _PCC< false, _T1, _T2> { +# 163 +template< class _U1, class _U2> static constexpr bool +# 164 +_ConstructiblePair() +# 165 +{ +# 166 +return false; +# 167 +} +# 169 +template< class _U1, class _U2> static constexpr bool +# 170 +_ImplicitlyConvertiblePair() +# 171 +{ +# 172 +return false; +# 173 +} +# 175 +template< class _U1, class _U2> static constexpr bool +# 176 +_MoveConstructiblePair() +# 177 +{ +# 178 +return false; +# 179 +} +# 181 +template< class _U1, class _U2> static constexpr bool +# 182 +_ImplicitlyMoveConvertiblePair() +# 183 +{ +# 184 +return false; +# 185 +} +# 186 +}; +# 189 +template< class _U1, class _U2> class __pair_base { +# 192 +template< class _T1, class _T2> friend struct pair; +# 193 +__pair_base() = default; +# 194 +~__pair_base() = default; +# 195 +__pair_base(const __pair_base &) = default; +# 196 +__pair_base &operator=(const __pair_base &) = delete; +# 198 +}; +# 210 "/usr/include/c++/11/bits/stl_pair.h" 3 +template< class _T1, class _T2> +# 211 +struct pair : private __pair_base< _T1, _T2> { +# 214 +typedef _T1 first_type; +# 215 +typedef _T2 second_type; +# 217 +_T1 first; +# 218 +_T2 second; +# 225 +template< class _U1 = _T1, class +# 226 +_U2 = _T2, typename enable_if< __and_< __is_implicitly_default_constructible< _U1> , __is_implicitly_default_constructible< _U2> > ::value, bool> ::type +# 230 + = true> constexpr +# 232 +pair() : first(), second() +# 233 +{ } +# 236 +template< class _U1 = _T1, class +# 237 +_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 +# 244 + = false> constexpr explicit +# 245 +pair() : first(), second() +# 246 +{ } +# 256 "/usr/include/c++/11/bits/stl_pair.h" 3 +using _PCCP = _PCC< true, _T1, _T2> ; +# 260 +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 +# 265 + = true> constexpr +# 266 +pair(const _T1 &__a, const _T2 &__b) : first(__a), second(__b) +# 267 +{ } +# 270 +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 +# 275 + = false> constexpr explicit +# 276 +pair(const _T1 &__a, const _T2 &__b) : first(__a), second(__b) +# 277 +{ } +# 288 "/usr/include/c++/11/bits/stl_pair.h" 3 +template< class _U1, class _U2> using _PCCFP = _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ; +# 294 +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 +# 299 + = true> constexpr +# 300 +pair(const pair< _U1, _U2> &__p) : first((__p.first)), second((__p.second)) +# 301 +{ } +# 303 +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 +# 308 + = false> constexpr explicit +# 309 +pair(const pair< _U1, _U2> &__p) : first((__p.first)), second((__p.second)) +# 310 +{ } +# 314 +constexpr pair(const pair &) = default; +# 315 +constexpr pair(pair &&) = default; +# 318 +template< class _U1, typename enable_if< _PCC< true, _T1, _T2> ::template _MoveCopyPair< true, _U1, _T2> (), bool> ::type +# 321 + = true> constexpr +# 322 +pair(_U1 &&__x, const _T2 &__y) : first(std::forward< _U1> (__x)), second(__y) +# 323 +{ } +# 325 +template< class _U1, typename enable_if< _PCC< true, _T1, _T2> ::template _MoveCopyPair< false, _U1, _T2> (), bool> ::type +# 328 + = false> constexpr explicit +# 329 +pair(_U1 &&__x, const _T2 &__y) : first(std::forward< _U1> (__x)), second(__y) +# 330 +{ } +# 332 +template< class _U2, typename enable_if< _PCC< true, _T1, _T2> ::template _CopyMovePair< true, _T1, _U2> (), bool> ::type +# 335 + = true> constexpr +# 336 +pair(const _T1 &__x, _U2 &&__y) : first(__x), second(std::forward< _U2> (__y)) +# 337 +{ } +# 339 +template< class _U2, typename enable_if< _PCC< true, _T1, _T2> ::template _CopyMovePair< false, _T1, _U2> (), bool> ::type +# 342 + = false> explicit +# 343 +pair(const _T1 &__x, _U2 &&__y) : first(__x), second(std::forward< _U2> (__y)) +# 344 +{ } +# 346 +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 +# 351 + = true> constexpr +# 352 +pair(_U1 &&__x, _U2 &&__y) : first(std::forward< _U1> (__x)), second(std::forward< _U2> (__y)) +# 353 +{ } +# 355 +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 +# 360 + = false> constexpr explicit +# 361 +pair(_U1 &&__x, _U2 &&__y) : first(std::forward< _U1> (__x)), second(std::forward< _U2> (__y)) +# 362 +{ } +# 365 +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 +# 370 + = true> constexpr +# 371 +pair(pair< _U1, _U2> &&__p) : first(std::forward< _U1> ((__p.first))), second(std::forward< _U2> ((__p.second))) +# 373 +{ } +# 375 +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 +# 380 + = false> constexpr explicit +# 381 +pair(pair< _U1, _U2> &&__p) : first(std::forward< _U1> ((__p.first))), second(std::forward< _U2> ((__p.second))) +# 383 +{ } +# 385 +template< class ..._Args1, class ..._Args2> pair(std::piecewise_construct_t, tuple< _Args1...> , tuple< _Args2...> ); +# 390 +pair &operator=(typename conditional< __and_< is_copy_assignable< _T1> , is_copy_assignable< _T2> > ::value, const pair &, const std::__nonesuch &> ::type +# 393 +__p) +# 394 +{ +# 395 +(first) = (__p.first); +# 396 +(second) = (__p.second); +# 397 +return *this; +# 398 +} +# 401 +pair &operator=(typename conditional< __and_< is_move_assignable< _T1> , is_move_assignable< _T2> > ::value, pair &&, std::__nonesuch &&> ::type +# 404 +__p) noexcept(__and_< is_nothrow_move_assignable< _T1> , is_nothrow_move_assignable< _T2> > ::value) +# 407 +{ +# 408 +(first) = std::forward< first_type> ((__p.first)); +# 409 +(second) = std::forward< second_type> ((__p.second)); +# 410 +return *this; +# 411 +} +# 413 +template< class _U1, class _U2> typename enable_if< __and_< is_assignable< _T1 &, const _U1 &> , is_assignable< _T2 &, const _U2 &> > ::value, pair &> ::type +# 418 +operator=(const pair< _U1, _U2> &__p) +# 419 +{ +# 420 +(first) = (__p.first); +# 421 +(second) = (__p.second); +# 422 +return *this; +# 423 +} +# 425 +template< class _U1, class _U2> typename enable_if< __and_< is_assignable< _T1 &, _U1 &&> , is_assignable< _T2 &, _U2 &&> > ::value, pair &> ::type +# 430 +operator=(pair< _U1, _U2> &&__p) +# 431 +{ +# 432 +(first) = std::forward< _U1> ((__p.first)); +# 433 +(second) = std::forward< _U2> ((__p.second)); +# 434 +return *this; +# 435 +} +# 439 +void swap(pair &__p) noexcept(__and_< __is_nothrow_swappable< _T1> , __is_nothrow_swappable< _T2> > ::value) +# 442 +{ +# 443 +using std::swap; +# 444 +swap(first, __p.first); +# 445 +swap(second, __p.second); +# 446 +} +# 449 +private: template< class ..._Args1, std::size_t ..._Indexes1, class ... +# 450 +_Args2, std::size_t ..._Indexes2> +# 449 +pair(tuple< _Args1...> &, tuple< _Args2...> &, _Index_tuple< _Indexes1...> , _Index_tuple< _Indexes2...> ); +# 455 +}; +# 460 +template< class _T1, class _T2> pair(_T1, _T2)->pair< _T1, _T2> ; +# 464 +template< class _T1, class _T2> constexpr bool +# 466 +operator==(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 467 +{ return ((__x.first) == (__y.first)) && ((__x.second) == (__y.second)); } +# 487 "/usr/include/c++/11/bits/stl_pair.h" 3 +template< class _T1, class _T2> constexpr bool +# 489 +operator<(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 490 +{ return ((__x.first) < (__y.first)) || ((!((__y.first) < (__x.first))) && ((__x.second) < (__y.second))); +# 491 +} +# 494 +template< class _T1, class _T2> constexpr bool +# 496 +operator!=(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 497 +{ return !(__x == __y); } +# 500 +template< class _T1, class _T2> constexpr bool +# 502 +operator>(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 503 +{ return __y < __x; } +# 506 +template< class _T1, class _T2> constexpr bool +# 508 +operator<=(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 509 +{ return !(__y < __x); } +# 512 +template< class _T1, class _T2> constexpr bool +# 514 +operator>=(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 515 +{ return !(__x < __y); } +# 524 "/usr/include/c++/11/bits/stl_pair.h" 3 +template< class _T1, class _T2> inline typename enable_if< __and_< __is_swappable< _T1> , __is_swappable< _T2> > ::value> ::type +# 533 +swap(pair< _T1, _T2> &__x, pair< _T1, _T2> &__y) noexcept(noexcept(__x.swap(__y))) +# 535 +{ __x.swap(__y); } +# 538 +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; +# 564 "/usr/include/c++/11/bits/stl_pair.h" 3 +template< class _T1, class _T2> constexpr pair< typename __decay_and_strip< _T1> ::__type, typename __decay_and_strip< _T2> ::__type> +# 567 +make_pair(_T1 &&__x, _T2 &&__y) +# 568 +{ +# 569 +typedef typename __decay_and_strip< _T1> ::__type __ds_type1; +# 570 +typedef typename __decay_and_strip< _T2> ::__type __ds_type2; +# 571 +typedef pair< typename __decay_and_strip< _T1> ::__type, typename __decay_and_strip< _T2> ::__type> __pair_type; +# 572 +return __pair_type(std::forward< _T1> (__x), std::forward< _T2> (__y)); +# 573 +} +# 584 "/usr/include/c++/11/bits/stl_pair.h" 3 +} +# 74 "/usr/include/c++/11/bits/stl_iterator_base_types.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 93 "/usr/include/c++/11/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/include/c++/11/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 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/include/c++/11/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/include/c++/11/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> constexpr typename iterator_traits< _Iter> ::iterator_category +# 238 +__iterator_category(const _Iter &) +# 239 +{ return typename iterator_traits< _Iter> ::iterator_category(); } +# 244 +template< class _Iter> using __iterator_category_t = typename iterator_traits< _Iter> ::iterator_category; +# 248 +template< class _InIter> using _RequireInputIter = __enable_if_t< is_convertible< __iterator_category_t< _InIter> , input_iterator_tag> ::value> ; +# 253 +template< class _It, class +# 254 +_Cat = __iterator_category_t< _It> > +# 255 +struct __is_random_access_iter : public is_base_of< random_access_iterator_tag, _Cat> { +# 258 +typedef is_base_of< std::random_access_iterator_tag, _Cat> _Base; +# 259 +enum { __value = is_base_of< std::random_access_iterator_tag, _Cat> ::value}; +# 260 +}; +# 269 +} +# 67 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 73 +template< class > struct _List_iterator; +# 74 +template< class > struct _List_const_iterator; +# 77 +template< class _InputIterator> constexpr typename iterator_traits< _InputIterator> ::difference_type +# 80 +__distance(_InputIterator __first, _InputIterator __last, input_iterator_tag) +# 82 +{ +# 86 +typename iterator_traits< _InputIterator> ::difference_type __n = (0); +# 87 +while (__first != __last) +# 88 +{ +# 89 +++__first; +# 90 +++__n; +# 91 +} +# 92 +return __n; +# 93 +} +# 95 +template< class _RandomAccessIterator> constexpr typename iterator_traits< _RandomAccessIterator> ::difference_type +# 98 +__distance(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag) +# 100 +{ +# 104 +return __last - __first; +# 105 +} +# 109 +template< class _Tp> ptrdiff_t __distance(_List_iterator< _Tp> , _List_iterator< _Tp> , input_iterator_tag); +# 115 +template< class _Tp> ptrdiff_t __distance(_List_const_iterator< _Tp> , _List_const_iterator< _Tp> , input_iterator_tag); +# 135 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 3 +template< class _InputIterator> constexpr typename iterator_traits< _InputIterator> ::difference_type +# 138 +distance(_InputIterator __first, _InputIterator __last) +# 139 +{ +# 141 +return std::__distance(__first, __last, std::__iterator_category(__first)); +# 143 +} +# 145 +template< class _InputIterator, class _Distance> constexpr void +# 147 +__advance(_InputIterator &__i, _Distance __n, input_iterator_tag) +# 148 +{ +# 151 +do { if (__builtin_is_constant_evaluated() && (!((bool)(__n >= 0)))) { __builtin_unreachable(); } } while (false); +# 152 +while (__n--) { +# 153 +++__i; } +# 154 +} +# 156 +template< class _BidirectionalIterator, class _Distance> constexpr void +# 158 +__advance(_BidirectionalIterator &__i, _Distance __n, bidirectional_iterator_tag) +# 160 +{ +# 164 +if (__n > 0) { +# 165 +while (__n--) { +# 166 +++__i; } } else { +# 168 +while (__n++) { +# 169 +--__i; } } +# 170 +} +# 172 +template< class _RandomAccessIterator, class _Distance> constexpr void +# 174 +__advance(_RandomAccessIterator &__i, _Distance __n, random_access_iterator_tag) +# 176 +{ +# 180 +if (__builtin_constant_p(__n) && (__n == 1)) { +# 181 +++__i; } else { +# 182 +if (__builtin_constant_p(__n) && (__n == (-1))) { +# 183 +--__i; } else { +# 185 +__i += __n; } } +# 186 +} +# 200 "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" 3 +template< class _InputIterator, class _Distance> constexpr void +# 202 +advance(_InputIterator &__i, _Distance __n) +# 203 +{ +# 205 +typename iterator_traits< _InputIterator> ::difference_type __d = __n; +# 206 +std::__advance(__i, __d, std::__iterator_category(__i)); +# 207 +} +# 211 +template< class _InputIterator> constexpr _InputIterator +# 213 +next(_InputIterator __x, typename iterator_traits< _InputIterator> ::difference_type +# 214 +__n = 1) +# 215 +{ +# 218 +std::advance(__x, __n); +# 219 +return __x; +# 220 +} +# 222 +template< class _BidirectionalIterator> constexpr _BidirectionalIterator +# 224 +prev(_BidirectionalIterator __x, typename iterator_traits< _BidirectionalIterator> ::difference_type +# 225 +__n = 1) +# 226 +{ +# 230 +std::advance(__x, -__n); +# 231 +return __x; +# 232 +} +# 237 +} +# 42 "/usr/include/c++/11/bits/ptr_traits.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 46 +class __undefined; +# 49 +template< class _Tp, class _Up> +# 50 +struct __replace_first_arg { +# 51 +}; +# 53 +template< template< class , class ...> class _Template, class _Up, class +# 54 +_Tp, class ..._Types> +# 55 +struct __replace_first_arg< _Template< _Tp, _Types...> , _Up> { +# 56 +using type = _Template< _Up, _Types...> ; }; +# 58 +template< class _Tp, class _Up> using __replace_first_arg_t = typename __replace_first_arg< _Tp, _Up> ::type; +# 61 +template< class _Tp> using __make_not_void = typename conditional< is_void< _Tp> ::value, __undefined, _Tp> ::type; +# 65 +template< class _Ptr> +# 66 +struct __ptr_traits_elem_1 { +# 67 +}; +# 69 +template< template< class , class ...> class _SomePointer, class _Tp, class ... +# 70 +_Args> +# 71 +struct __ptr_traits_elem_1< _SomePointer< _Tp, _Args...> > { +# 73 +using element_type = _Tp; +# 74 +using pointer = _SomePointer< _Tp, _Args...> ; +# 77 +static pointer pointer_to(__make_not_void< element_type> &__e) +# 78 +{ return pointer::pointer_to(__e); } +# 79 +}; +# 81 +template< class _Ptr, class = void> +# 82 +struct __ptr_traits_elem : public __ptr_traits_elem_1< _Ptr> { +# 83 +}; +# 85 +template< class _Ptr> +# 86 +struct __ptr_traits_elem< _Ptr, __void_t< typename _Ptr::element_type> > { +# 88 +using element_type = typename _Ptr::element_type; +# 91 +static _Ptr pointer_to(__make_not_void< element_type> &__e) +# 92 +{ return _Ptr::pointer_to(__e); } +# 93 +}; +# 99 +template< class _Ptr> +# 100 +struct pointer_traits : public __ptr_traits_elem< _Ptr> { +# 104 +private: +# 103 +template< class _Tp> using __difference_type = typename _Tp::difference_type; +# 106 +template< class _Tp, class _Up, class = void> +# 107 +struct __rebind : public __replace_first_arg< _Tp, _Up> { }; +# 109 +template< class _Tp, class _Up> +# 110 +struct __rebind< _Tp, _Up, std::__void_t< typename _Tp::template rebind< _Up> > > { +# 111 +using type = typename _Tp::template rebind< _Up> ; }; +# 115 +public: using pointer = _Ptr; +# 118 +using difference_type = std::__detected_or_t< std::ptrdiff_t, __difference_type, _Ptr> ; +# 122 +template< class _Up> using rebind = typename __rebind< _Ptr, _Up> ::type; +# 124 +}; +# 130 +template< class _Tp> +# 131 +struct pointer_traits< _Tp *> { +# 134 +typedef _Tp *pointer; +# 136 +typedef _Tp element_type; +# 138 +typedef ptrdiff_t difference_type; +# 140 +template< class _Up> using rebind = _Up *; +# 149 +static pointer pointer_to(__make_not_void< element_type> &__r) noexcept +# 150 +{ return std::addressof(__r); } +# 151 +}; +# 154 +template< class _Ptr, class _Tp> using __ptr_rebind = typename pointer_traits< _Ptr> ::template rebind< _Tp> ; +# 157 +template< class _Tp> constexpr _Tp * +# 159 +__to_address(_Tp *__ptr) noexcept +# 160 +{ +# 161 +static_assert((!std::template is_function< _Tp> ::value), "not a function pointer"); +# 162 +return __ptr; +# 163 +} +# 166 +template< class _Ptr> constexpr typename pointer_traits< _Ptr> ::element_type * +# 168 +__to_address(const _Ptr &__ptr) +# 169 +{ return std::__to_address(__ptr.operator->()); } +# 215 "/usr/include/c++/11/bits/ptr_traits.h" 3 +} +# 88 "/usr/include/c++/11/bits/stl_iterator.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 127 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _Iterator> +# 128 +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> { +# 135 +template< class _Iter> friend class reverse_iterator; +# 147 "/usr/include/c++/11/bits/stl_iterator.h" 3 +protected: _Iterator current; +# 149 +typedef iterator_traits< _Iterator> __traits_type; +# 152 +public: typedef _Iterator iterator_type; +# 153 +typedef typename iterator_traits< _Iterator> ::pointer pointer; +# 155 +typedef typename iterator_traits< _Iterator> ::difference_type difference_type; +# 156 +typedef typename iterator_traits< _Iterator> ::reference reference; +# 178 "/usr/include/c++/11/bits/stl_iterator.h" 3 +constexpr reverse_iterator() : current() { } +# 184 +constexpr explicit reverse_iterator(iterator_type __x) : current(__x) { } +# 190 +constexpr reverse_iterator(const reverse_iterator &__x) : current(__x.current) +# 191 +{ } +# 194 +reverse_iterator &operator=(const reverse_iterator &) = default; +# 201 +template< class _Iter> constexpr +# 206 +reverse_iterator(const reverse_iterator< _Iter> &__x) : current((__x.current)) +# 207 +{ } +# 210 +template< class _Iter> constexpr reverse_iterator & +# 217 +operator=(const reverse_iterator< _Iter> &__x) +# 218 +{ +# 219 +(current) = (__x.current); +# 220 +return *this; +# 221 +} +# 228 +constexpr iterator_type base() const +# 229 +{ return current; } +# 242 "/usr/include/c++/11/bits/stl_iterator.h" 3 +constexpr reference operator*() const +# 243 +{ +# 244 +_Iterator __tmp = current; +# 245 +return *(--__tmp); +# 246 +} +# 254 +constexpr pointer operator->() const +# 259 +{ +# 262 +_Iterator __tmp = current; +# 263 +--__tmp; +# 264 +return _S_to_pointer(__tmp); +# 265 +} +# 273 +constexpr reverse_iterator &operator++() +# 274 +{ +# 275 +--(current); +# 276 +return *this; +# 277 +} +# 285 +constexpr reverse_iterator operator++(int) +# 286 +{ +# 287 +reverse_iterator __tmp = *this; +# 288 +--(current); +# 289 +return __tmp; +# 290 +} +# 298 +constexpr reverse_iterator &operator--() +# 299 +{ +# 300 +++(current); +# 301 +return *this; +# 302 +} +# 310 +constexpr reverse_iterator operator--(int) +# 311 +{ +# 312 +reverse_iterator __tmp = *this; +# 313 +++(current); +# 314 +return __tmp; +# 315 +} +# 323 +constexpr reverse_iterator operator+(difference_type __n) const +# 324 +{ return ((reverse_iterator)((current) - __n)); } +# 333 +constexpr reverse_iterator &operator+=(difference_type __n) +# 334 +{ +# 335 +(current) -= __n; +# 336 +return *this; +# 337 +} +# 345 +constexpr reverse_iterator operator-(difference_type __n) const +# 346 +{ return ((reverse_iterator)((current) + __n)); } +# 355 +constexpr reverse_iterator &operator-=(difference_type __n) +# 356 +{ +# 357 +(current) += __n; +# 358 +return *this; +# 359 +} +# 367 +constexpr reference operator[](difference_type __n) const +# 368 +{ return *((*this) + __n); } +# 398 "/usr/include/c++/11/bits/stl_iterator.h" 3 +private: +# 396 +template< class _Tp> static constexpr _Tp * +# 398 +_S_to_pointer(_Tp *__p) +# 399 +{ return __p; } +# 401 +template< class _Tp> static constexpr pointer +# 403 +_S_to_pointer(_Tp __t) +# 404 +{ return __t.operator->(); } +# 405 +}; +# 418 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _Iterator> constexpr bool +# 420 +operator==(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 421 +__y) +# 422 +{ return __x.base() == __y.base(); } +# 424 +template< class _Iterator> constexpr bool +# 426 +operator<(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 427 +__y) +# 428 +{ return __y.base() < __x.base(); } +# 430 +template< class _Iterator> constexpr bool +# 432 +operator!=(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 433 +__y) +# 434 +{ return !(__x == __y); } +# 436 +template< class _Iterator> constexpr bool +# 438 +operator>(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 439 +__y) +# 440 +{ return __y < __x; } +# 442 +template< class _Iterator> constexpr bool +# 444 +operator<=(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 445 +__y) +# 446 +{ return !(__y < __x); } +# 448 +template< class _Iterator> constexpr bool +# 450 +operator>=(const reverse_iterator< _Iterator> &__x, const reverse_iterator< _Iterator> & +# 451 +__y) +# 452 +{ return !(__x < __y); } +# 457 +template< class _IteratorL, class _IteratorR> constexpr bool +# 459 +operator==(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 460 +__y) +# 461 +{ return __x.base() == __y.base(); } +# 463 +template< class _IteratorL, class _IteratorR> constexpr bool +# 465 +operator<(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 466 +__y) +# 467 +{ return __x.base() > __y.base(); } +# 469 +template< class _IteratorL, class _IteratorR> constexpr bool +# 471 +operator!=(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 472 +__y) +# 473 +{ return __x.base() != __y.base(); } +# 475 +template< class _IteratorL, class _IteratorR> constexpr bool +# 477 +operator>(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 478 +__y) +# 479 +{ return __x.base() < __y.base(); } +# 481 +template< class _IteratorL, class _IteratorR> constexpr bool +# 483 +operator<=(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 484 +__y) +# 485 +{ return __x.base() >= __y.base(); } +# 487 +template< class _IteratorL, class _IteratorR> constexpr bool +# 489 +operator>=(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 490 +__y) +# 491 +{ return __x.base() <= __y.base(); } +# 575 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _IteratorL, class _IteratorR> constexpr auto +# 577 +operator-(const reverse_iterator< _IteratorL> &__x, const reverse_iterator< _IteratorR> & +# 578 +__y)->__decltype((__y.base() - __x.base())) +# 580 +{ return __y.base() - __x.base(); } +# 583 +template< class _Iterator> constexpr reverse_iterator< _Iterator> +# 585 +operator+(typename reverse_iterator< _Iterator> ::difference_type __n, const reverse_iterator< _Iterator> & +# 586 +__x) +# 587 +{ return ((reverse_iterator< _Iterator> )(__x.base() - __n)); } +# 591 +template< class _Iterator> constexpr reverse_iterator< _Iterator> +# 593 +__make_reverse_iterator(_Iterator __i) +# 594 +{ return ((reverse_iterator< _Iterator> )(__i)); } +# 602 +template< class _Iterator> constexpr reverse_iterator< _Iterator> +# 604 +make_reverse_iterator(_Iterator __i) +# 605 +{ return ((reverse_iterator< _Iterator> )(__i)); } +# 616 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _Iterator> auto +# 619 +__niter_base(reverse_iterator< _Iterator> __it)->__decltype((__make_reverse_iterator(__niter_base(__it.base())))) +# 621 +{ return __make_reverse_iterator(__niter_base(__it.base())); } +# 623 +template< class _Iterator> +# 624 +struct __is_move_iterator< reverse_iterator< _Iterator> > : public std::__is_move_iterator< _Iterator> { +# 626 +}; +# 628 +template< class _Iterator> auto +# 631 +__miter_base(reverse_iterator< _Iterator> __it)->__decltype((__make_reverse_iterator(__miter_base(__it.base())))) +# 633 +{ return __make_reverse_iterator(__miter_base(__it.base())); } +# 647 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _Container> +# 648 +class back_insert_iterator : public iterator< output_iterator_tag, void, void, void, void> { +# 652 +protected: _Container *container; +# 656 +public: typedef _Container container_type; +# 665 +explicit back_insert_iterator(_Container &__x) : container(std::__addressof(__x)) +# 666 +{ } +# 689 "/usr/include/c++/11/bits/stl_iterator.h" 3 +back_insert_iterator &operator=(const typename _Container::value_type &__value) +# 690 +{ +# 691 +(container)->push_back(__value); +# 692 +return *this; +# 693 +} +# 697 +back_insert_iterator &operator=(typename _Container::value_type &&__value) +# 698 +{ +# 699 +(container)->push_back(std::move(__value)); +# 700 +return *this; +# 701 +} +# 707 +back_insert_iterator &operator*() +# 708 +{ return *this; } +# 713 +back_insert_iterator &operator++() +# 714 +{ return *this; } +# 719 +back_insert_iterator operator++(int) +# 720 +{ return *this; } +# 721 +}; +# 734 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _Container> inline back_insert_iterator< _Container> +# 737 +back_inserter(_Container &__x) +# 738 +{ return ((back_insert_iterator< _Container> )(__x)); } +# 750 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _Container> +# 751 +class front_insert_iterator : public iterator< output_iterator_tag, void, void, void, void> { +# 755 +protected: _Container *container; +# 759 +public: typedef _Container container_type; +# 768 +explicit front_insert_iterator(_Container &__x) : container(std::__addressof(__x)) +# 769 +{ } +# 792 "/usr/include/c++/11/bits/stl_iterator.h" 3 +front_insert_iterator &operator=(const typename _Container::value_type &__value) +# 793 +{ +# 794 +(container)->push_front(__value); +# 795 +return *this; +# 796 +} +# 800 +front_insert_iterator &operator=(typename _Container::value_type &&__value) +# 801 +{ +# 802 +(container)->push_front(std::move(__value)); +# 803 +return *this; +# 804 +} +# 810 +front_insert_iterator &operator*() +# 811 +{ return *this; } +# 816 +front_insert_iterator &operator++() +# 817 +{ return *this; } +# 822 +front_insert_iterator operator++(int) +# 823 +{ return *this; } +# 824 +}; +# 837 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _Container> inline front_insert_iterator< _Container> +# 840 +front_inserter(_Container &__x) +# 841 +{ return ((front_insert_iterator< _Container> )(__x)); } +# 857 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _Container> +# 858 +class insert_iterator : public iterator< output_iterator_tag, void, void, void, void> { +# 868 +typedef typename _Container::iterator _Iter; +# 871 +protected: _Container *container; +# 872 +_Iter iter; +# 877 +public: typedef _Container container_type; +# 890 "/usr/include/c++/11/bits/stl_iterator.h" 3 +insert_iterator(_Container &__x, _Iter __i) : container(std::__addressof(__x)), iter(__i) +# 891 +{ } +# 927 "/usr/include/c++/11/bits/stl_iterator.h" 3 +insert_iterator &operator=(const typename _Container::value_type &__value) +# 928 +{ +# 929 +(iter) = (container)->insert(iter, __value); +# 930 +++(iter); +# 931 +return *this; +# 932 +} +# 936 +insert_iterator &operator=(typename _Container::value_type &&__value) +# 937 +{ +# 938 +(iter) = (container)->insert(iter, std::move(__value)); +# 939 +++(iter); +# 940 +return *this; +# 941 +} +# 947 +insert_iterator &operator*() +# 948 +{ return *this; } +# 953 +insert_iterator &operator++() +# 954 +{ return *this; } +# 959 +insert_iterator &operator++(int) +# 960 +{ return *this; } +# 961 +}; +# 981 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _Container> inline insert_iterator< _Container> +# 983 +inserter(_Container &__x, typename _Container::iterator __i) +# 984 +{ return insert_iterator< _Container> (__x, __i); } +# 990 +} +# 992 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 1003 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _Iterator, class _Container> +# 1004 +class __normal_iterator { +# 1007 +protected: _Iterator _M_current; +# 1009 +typedef std::iterator_traits< _Iterator> __traits_type; +# 1012 +public: typedef _Iterator iterator_type; +# 1013 +typedef typename std::iterator_traits< _Iterator> ::iterator_category iterator_category; +# 1014 +typedef typename std::iterator_traits< _Iterator> ::value_type value_type; +# 1015 +typedef typename std::iterator_traits< _Iterator> ::difference_type difference_type; +# 1016 +typedef typename std::iterator_traits< _Iterator> ::reference reference; +# 1017 +typedef typename std::iterator_traits< _Iterator> ::pointer pointer; +# 1023 +constexpr __normal_iterator() noexcept : _M_current(_Iterator()) +# 1024 +{ } +# 1027 +explicit __normal_iterator(const _Iterator &__i) noexcept : _M_current(__i) +# 1028 +{ } +# 1031 +template< class _Iter> +# 1033 +__normal_iterator(const __normal_iterator< _Iter, typename __enable_if< std::__are_same< _Iter, typename _Container::pointer> ::__value, _Container> ::__type> & +# 1036 +__i) noexcept : _M_current(__i.base()) +# 1037 +{ } +# 1042 +reference operator*() const noexcept +# 1043 +{ return *(_M_current); } +# 1047 +pointer operator->() const noexcept +# 1048 +{ return _M_current; } +# 1052 +__normal_iterator &operator++() noexcept +# 1053 +{ +# 1054 +++(_M_current); +# 1055 +return *this; +# 1056 +} +# 1060 +__normal_iterator operator++(int) noexcept +# 1061 +{ return ((__normal_iterator)((_M_current)++)); } +# 1066 +__normal_iterator &operator--() noexcept +# 1067 +{ +# 1068 +--(_M_current); +# 1069 +return *this; +# 1070 +} +# 1074 +__normal_iterator operator--(int) noexcept +# 1075 +{ return ((__normal_iterator)((_M_current)--)); } +# 1080 +reference operator[](difference_type __n) const noexcept +# 1081 +{ return (_M_current)[__n]; } +# 1085 +__normal_iterator &operator+=(difference_type __n) noexcept +# 1086 +{ (_M_current) += __n; return *this; } +# 1090 +__normal_iterator operator+(difference_type __n) const noexcept +# 1091 +{ return ((__normal_iterator)((_M_current) + __n)); } +# 1095 +__normal_iterator &operator-=(difference_type __n) noexcept +# 1096 +{ (_M_current) -= __n; return *this; } +# 1100 +__normal_iterator operator-(difference_type __n) const noexcept +# 1101 +{ return ((__normal_iterator)((_M_current) - __n)); } +# 1105 +const _Iterator &base() const noexcept +# 1106 +{ return _M_current; } +# 1107 +}; +# 1152 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _IteratorL, class _IteratorR, class _Container> inline bool +# 1155 +operator==(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1156 +__rhs) noexcept +# 1158 +{ return __lhs.base() == __rhs.base(); } +# 1160 +template< class _Iterator, class _Container> inline bool +# 1163 +operator==(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1164 +__rhs) noexcept +# 1166 +{ return __lhs.base() == __rhs.base(); } +# 1168 +template< class _IteratorL, class _IteratorR, class _Container> inline bool +# 1171 +operator!=(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1172 +__rhs) noexcept +# 1174 +{ return __lhs.base() != __rhs.base(); } +# 1176 +template< class _Iterator, class _Container> inline bool +# 1179 +operator!=(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1180 +__rhs) noexcept +# 1182 +{ return __lhs.base() != __rhs.base(); } +# 1185 +template< class _IteratorL, class _IteratorR, class _Container> inline bool +# 1187 +operator<(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1188 +__rhs) noexcept +# 1190 +{ return __lhs.base() < __rhs.base(); } +# 1192 +template< class _Iterator, class _Container> inline bool +# 1195 +operator<(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1196 +__rhs) noexcept +# 1198 +{ return __lhs.base() < __rhs.base(); } +# 1200 +template< class _IteratorL, class _IteratorR, class _Container> inline bool +# 1202 +operator>(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1203 +__rhs) noexcept +# 1205 +{ return __lhs.base() > __rhs.base(); } +# 1207 +template< class _Iterator, class _Container> inline bool +# 1210 +operator>(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1211 +__rhs) noexcept +# 1213 +{ return __lhs.base() > __rhs.base(); } +# 1215 +template< class _IteratorL, class _IteratorR, class _Container> inline bool +# 1217 +operator<=(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1218 +__rhs) noexcept +# 1220 +{ return __lhs.base() <= __rhs.base(); } +# 1222 +template< class _Iterator, class _Container> inline bool +# 1225 +operator<=(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1226 +__rhs) noexcept +# 1228 +{ return __lhs.base() <= __rhs.base(); } +# 1230 +template< class _IteratorL, class _IteratorR, class _Container> inline bool +# 1232 +operator>=(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1233 +__rhs) noexcept +# 1235 +{ return __lhs.base() >= __rhs.base(); } +# 1237 +template< class _Iterator, class _Container> inline bool +# 1240 +operator>=(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1241 +__rhs) noexcept +# 1243 +{ return __lhs.base() >= __rhs.base(); } +# 1250 +template< class _IteratorL, class _IteratorR, class _Container> inline auto +# 1255 +operator-(const __normal_iterator< _IteratorL, _Container> &__lhs, const __normal_iterator< _IteratorR, _Container> & +# 1256 +__rhs) noexcept->__decltype((__lhs.base() - __rhs.base())) +# 1263 +{ return __lhs.base() - __rhs.base(); } +# 1265 +template< class _Iterator, class _Container> inline typename __normal_iterator< _Iterator, _Container> ::difference_type +# 1268 +operator-(const __normal_iterator< _Iterator, _Container> &__lhs, const __normal_iterator< _Iterator, _Container> & +# 1269 +__rhs) noexcept +# 1271 +{ return __lhs.base() - __rhs.base(); } +# 1273 +template< class _Iterator, class _Container> inline __normal_iterator< _Iterator, _Container> +# 1276 +operator+(typename __normal_iterator< _Iterator, _Container> ::difference_type +# 1277 +__n, const __normal_iterator< _Iterator, _Container> &__i) noexcept +# 1279 +{ return ((__normal_iterator< _Iterator, _Container> )(__i.base() + __n)); } +# 1282 +} +# 1284 +namespace std __attribute((__visibility__("default"))) { +# 1288 +template< class _Iterator, class _Container> _Iterator +# 1291 +__niter_base(__gnu_cxx::__normal_iterator< _Iterator, _Container> __it) noexcept(std::template is_nothrow_copy_constructible< _Iterator> ::value) +# 1293 +{ return __it.base(); } +# 1342 "/usr/include/c++/11/bits/stl_iterator.h" 3 +namespace __detail { +# 1358 "/usr/include/c++/11/bits/stl_iterator.h" 3 +} +# 1369 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _Iterator> +# 1370 +class move_iterator { +# 1375 +_Iterator _M_current; +# 1377 +using __traits_type = iterator_traits< _Iterator> ; +# 1379 +using __base_ref = typename iterator_traits< _Iterator> ::reference; +# 1382 +template< class _Iter2> friend class move_iterator; +# 1409 "/usr/include/c++/11/bits/stl_iterator.h" 3 +public: using iterator_type = _Iterator; +# 1422 "/usr/include/c++/11/bits/stl_iterator.h" 3 +typedef typename iterator_traits< _Iterator> ::iterator_category iterator_category; +# 1423 +typedef typename iterator_traits< _Iterator> ::value_type value_type; +# 1424 +typedef typename iterator_traits< _Iterator> ::difference_type difference_type; +# 1426 +typedef _Iterator pointer; +# 1431 +typedef typename conditional< is_reference< __base_ref> ::value, typename remove_reference< __base_ref> ::type &&, __base_ref> ::type reference; +# 1435 +constexpr move_iterator() : _M_current() +# 1436 +{ } +# 1439 +constexpr explicit move_iterator(iterator_type __i) : _M_current(std::move(__i)) +# 1440 +{ } +# 1442 +template< class _Iter> constexpr +# 1447 +move_iterator(const move_iterator< _Iter> &__i) : _M_current((__i._M_current)) +# 1448 +{ } +# 1450 +template< class _Iter> constexpr move_iterator & +# 1456 +operator=(const move_iterator< _Iter> &__i) +# 1457 +{ +# 1458 +(_M_current) = (__i._M_current); +# 1459 +return *this; +# 1460 +} +# 1464 +constexpr iterator_type base() const +# 1465 +{ return _M_current; } +# 1477 "/usr/include/c++/11/bits/stl_iterator.h" 3 +constexpr reference operator*() const +# 1481 +{ return static_cast< reference>(*(_M_current)); } +# 1485 +constexpr pointer operator->() const +# 1486 +{ return _M_current; } +# 1489 +constexpr move_iterator &operator++() +# 1490 +{ +# 1491 +++(_M_current); +# 1492 +return *this; +# 1493 +} +# 1496 +constexpr move_iterator operator++(int) +# 1497 +{ +# 1498 +move_iterator __tmp = *this; +# 1499 +++(_M_current); +# 1500 +return __tmp; +# 1501 +} +# 1510 +constexpr move_iterator &operator--() +# 1511 +{ +# 1512 +--(_M_current); +# 1513 +return *this; +# 1514 +} +# 1517 +constexpr move_iterator operator--(int) +# 1518 +{ +# 1519 +move_iterator __tmp = *this; +# 1520 +--(_M_current); +# 1521 +return __tmp; +# 1522 +} +# 1525 +constexpr move_iterator operator+(difference_type __n) const +# 1526 +{ return ((move_iterator)((_M_current) + __n)); } +# 1529 +constexpr move_iterator &operator+=(difference_type __n) +# 1530 +{ +# 1531 +(_M_current) += __n; +# 1532 +return *this; +# 1533 +} +# 1536 +constexpr move_iterator operator-(difference_type __n) const +# 1537 +{ return ((move_iterator)((_M_current) - __n)); } +# 1540 +constexpr move_iterator &operator-=(difference_type __n) +# 1541 +{ +# 1542 +(_M_current) -= __n; +# 1543 +return *this; +# 1544 +} +# 1547 +constexpr reference operator[](difference_type __n) const +# 1551 +{ return std::move((_M_current)[__n]); } +# 1581 "/usr/include/c++/11/bits/stl_iterator.h" 3 +}; +# 1583 +template< class _IteratorL, class _IteratorR> constexpr bool +# 1585 +operator==(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1586 +__y) +# 1590 +{ return __x.base() == __y.base(); } +# 1600 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _IteratorL, class _IteratorR> constexpr bool +# 1602 +operator!=(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1603 +__y) +# 1604 +{ return !(__x == __y); } +# 1607 +template< class _IteratorL, class _IteratorR> constexpr bool +# 1609 +operator<(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1610 +__y) +# 1614 +{ return __x.base() < __y.base(); } +# 1616 +template< class _IteratorL, class _IteratorR> constexpr bool +# 1618 +operator<=(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1619 +__y) +# 1623 +{ return !(__y < __x); } +# 1625 +template< class _IteratorL, class _IteratorR> constexpr bool +# 1627 +operator>(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1628 +__y) +# 1632 +{ return __y < __x; } +# 1634 +template< class _IteratorL, class _IteratorR> constexpr bool +# 1636 +operator>=(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1637 +__y) +# 1641 +{ return !(__x < __y); } +# 1646 +template< class _Iterator> constexpr bool +# 1648 +operator==(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1649 +__y) +# 1650 +{ return __x.base() == __y.base(); } +# 1659 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _Iterator> constexpr bool +# 1661 +operator!=(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1662 +__y) +# 1663 +{ return !(__x == __y); } +# 1665 +template< class _Iterator> constexpr bool +# 1667 +operator<(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1668 +__y) +# 1669 +{ return __x.base() < __y.base(); } +# 1671 +template< class _Iterator> constexpr bool +# 1673 +operator<=(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1674 +__y) +# 1675 +{ return !(__y < __x); } +# 1677 +template< class _Iterator> constexpr bool +# 1679 +operator>(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1680 +__y) +# 1681 +{ return __y < __x; } +# 1683 +template< class _Iterator> constexpr bool +# 1685 +operator>=(const move_iterator< _Iterator> &__x, const move_iterator< _Iterator> & +# 1686 +__y) +# 1687 +{ return !(__x < __y); } +# 1691 +template< class _IteratorL, class _IteratorR> constexpr auto +# 1693 +operator-(const move_iterator< _IteratorL> &__x, const move_iterator< _IteratorR> & +# 1694 +__y)->__decltype((__x.base() - __y.base())) +# 1696 +{ return __x.base() - __y.base(); } +# 1698 +template< class _Iterator> constexpr move_iterator< _Iterator> +# 1700 +operator+(typename move_iterator< _Iterator> ::difference_type __n, const move_iterator< _Iterator> & +# 1701 +__x) +# 1702 +{ return __x + __n; } +# 1704 +template< class _Iterator> constexpr move_iterator< _Iterator> +# 1706 +make_move_iterator(_Iterator __i) +# 1707 +{ return ((move_iterator< _Iterator> )(std::move(__i))); } +# 1709 +template< class _Iterator, class _ReturnType = typename conditional< __move_if_noexcept_cond< typename iterator_traits< _Iterator> ::value_type> ::value, _Iterator, move_iterator< _Iterator> > ::type> constexpr _ReturnType +# 1714 +__make_move_if_noexcept_iterator(_Iterator __i) +# 1715 +{ return (_ReturnType)__i; } +# 1719 +template< class _Tp, class _ReturnType = typename conditional< __move_if_noexcept_cond< _Tp> ::value, const _Tp *, move_iterator< _Tp *> > ::type> constexpr _ReturnType +# 1723 +__make_move_if_noexcept_iterator(_Tp *__i) +# 1724 +{ return (_ReturnType)__i; } +# 2447 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _Iterator> auto +# 2450 +__niter_base(move_iterator< _Iterator> __it)->__decltype((make_move_iterator(__niter_base(__it.base())))) +# 2452 +{ return make_move_iterator(__niter_base(__it.base())); } +# 2454 +template< class _Iterator> +# 2455 +struct __is_move_iterator< move_iterator< _Iterator> > { +# 2457 +enum { __value = 1}; +# 2458 +typedef __true_type __type; +# 2459 +}; +# 2461 +template< class _Iterator> auto +# 2464 +__miter_base(move_iterator< _Iterator> __it)->__decltype((__miter_base(__it.base()))) +# 2466 +{ return __miter_base(__it.base()); } +# 2479 "/usr/include/c++/11/bits/stl_iterator.h" 3 +template< class _InputIterator> using __iter_key_t = remove_const_t< typename iterator_traits< _InputIterator> ::value_type::first_type> ; +# 2483 +template< class _InputIterator> using __iter_val_t = typename iterator_traits< _InputIterator> ::value_type::second_type; +# 2487 +template< class _T1, class _T2> struct pair; +# 2490 +template< class _InputIterator> using __iter_to_alloc_t = pair< add_const_t< __iter_key_t< _InputIterator> > , __iter_val_t< _InputIterator> > ; +# 2497 +} +# 48 "/usr/include/c++/11/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/include/c++/11/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 +} +# 79 "/usr/include/c++/11/bits/stl_algobase.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 87 +template< class _Tp, class _Up> constexpr int +# 90 +__memcmp(const _Tp *__first1, const _Up *__first2, size_t __num) +# 91 +{ +# 93 +static_assert((sizeof(_Tp) == sizeof(_Up)), "can be compared with memcmp"); +# 105 "/usr/include/c++/11/bits/stl_algobase.h" 3 +return __builtin_memcmp(__first1, __first2, sizeof(_Tp) * __num); +# 106 +} +# 149 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _ForwardIterator1, class _ForwardIterator2> inline void +# 152 +iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) +# 153 +{ +# 182 "/usr/include/c++/11/bits/stl_algobase.h" 3 +swap(*__a, *__b); +# 184 +} +# 198 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _ForwardIterator1, class _ForwardIterator2> _ForwardIterator2 +# 201 +swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 +# 202 +__first2) +# 203 +{ +# 209 +; +# 211 +for (; __first1 != __last1; (++__first1), ((void)(++__first2))) { +# 212 +std::iter_swap(__first1, __first2); } +# 213 +return __first2; +# 214 +} +# 227 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _Tp> constexpr const _Tp & +# 230 +min(const _Tp &__a, const _Tp &__b) +# 231 +{ +# 235 +if (__b < __a) { +# 236 +return __b; } +# 237 +return __a; +# 238 +} +# 251 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _Tp> constexpr const _Tp & +# 254 +max(const _Tp &__a, const _Tp &__b) +# 255 +{ +# 259 +if (__a < __b) { +# 260 +return __b; } +# 261 +return __a; +# 262 +} +# 275 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _Tp, class _Compare> constexpr const _Tp & +# 278 +min(const _Tp &__a, const _Tp &__b, _Compare __comp) +# 279 +{ +# 281 +if (__comp(__b, __a)) { +# 282 +return __b; } +# 283 +return __a; +# 284 +} +# 297 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _Tp, class _Compare> constexpr const _Tp & +# 300 +max(const _Tp &__a, const _Tp &__b, _Compare __comp) +# 301 +{ +# 303 +if (__comp(__a, __b)) { +# 304 +return __b; } +# 305 +return __a; +# 306 +} +# 310 +template< class _Iterator> inline _Iterator +# 313 +__niter_base(_Iterator __it) noexcept(std::template is_nothrow_copy_constructible< _Iterator> ::value) +# 315 +{ return __it; } +# 317 +template< class _Ite, class _Seq> _Ite __niter_base(const __gnu_debug::_Safe_iterator< _Ite, _Seq, random_access_iterator_tag> &); +# 325 +template< class _From, class _To> inline _From +# 328 +__niter_wrap(_From __from, _To __res) +# 329 +{ return __from + (__res - std::__niter_base(__from)); } +# 332 +template< class _Iterator> inline _Iterator +# 335 +__niter_wrap(const _Iterator &, _Iterator __res) +# 336 +{ return __res; } +# 344 +template< bool _IsMove, bool _IsSimple, class _Category> +# 345 +struct __copy_move { +# 347 +template< class _II, class _OI> static _OI +# 350 +__copy_m(_II __first, _II __last, _OI __result) +# 351 +{ +# 352 +for (; __first != __last; (++__result), ((void)(++__first))) { +# 353 +(*__result) = (*__first); } +# 354 +return __result; +# 355 +} +# 356 +}; +# 359 +template< class _Category> +# 360 +struct __copy_move< true, false, _Category> { +# 362 +template< class _II, class _OI> static _OI +# 365 +__copy_m(_II __first, _II __last, _OI __result) +# 366 +{ +# 367 +for (; __first != __last; (++__result), ((void)(++__first))) { +# 368 +(*__result) = std::move(*__first); } +# 369 +return __result; +# 370 +} +# 371 +}; +# 375 +template<> struct __copy_move< false, false, random_access_iterator_tag> { +# 377 +template< class _II, class _OI> static _OI +# 380 +__copy_m(_II __first, _II __last, _OI __result) +# 381 +{ +# 382 +typedef typename iterator_traits< _II> ::difference_type _Distance; +# 383 +for (_Distance __n = __last - __first; __n > 0; --__n) +# 384 +{ +# 385 +(*__result) = (*__first); +# 386 +++__first; +# 387 +++__result; +# 388 +} +# 389 +return __result; +# 390 +} +# 391 +}; +# 395 +template<> struct __copy_move< true, false, random_access_iterator_tag> { +# 397 +template< class _II, class _OI> static _OI +# 400 +__copy_m(_II __first, _II __last, _OI __result) +# 401 +{ +# 402 +typedef typename iterator_traits< _II> ::difference_type _Distance; +# 403 +for (_Distance __n = __last - __first; __n > 0; --__n) +# 404 +{ +# 405 +(*__result) = std::move(*__first); +# 406 +++__first; +# 407 +++__result; +# 408 +} +# 409 +return __result; +# 410 +} +# 411 +}; +# 414 +template< bool _IsMove> +# 415 +struct __copy_move< _IsMove, true, random_access_iterator_tag> { +# 417 +template< class _Tp> static _Tp * +# 420 +__copy_m(const _Tp *__first, const _Tp *__last, _Tp *__result) +# 421 +{ +# 423 +using __assignable = conditional< _IsMove, is_move_assignable< _Tp> , is_copy_assignable< _Tp> > ; +# 427 +static_assert((__assignable::type::value), "type is not assignable"); +# 429 +const ptrdiff_t _Num = __last - __first; +# 430 +if (_Num) { +# 431 +__builtin_memmove(__result, __first, sizeof(_Tp) * _Num); } +# 432 +return __result + _Num; +# 433 +} +# 434 +}; +# 438 +template< class _Tp, class _Ref, class _Ptr> struct _Deque_iterator; +# 441 +struct _Bit_iterator; +# 447 +template< class _CharT> struct char_traits; +# 450 +template< class _CharT, class _Traits> class istreambuf_iterator; +# 453 +template< class _CharT, class _Traits> class ostreambuf_iterator; +# 456 +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> > ); +# 462 +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> > ); +# 468 +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 *); +# 474 +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 *> ); +# 483 +template< bool _IsMove, class _II, class _OI> inline _OI +# 486 +__copy_move_a2(_II __first, _II __last, _OI __result) +# 487 +{ +# 488 +typedef typename iterator_traits< _II> ::iterator_category _Category; +# 494 +return std::template __copy_move< _IsMove, __memcpyable< _OI, _II> ::__value, typename iterator_traits< _II> ::iterator_category> ::__copy_m(__first, __last, __result); +# 496 +} +# 498 +template< bool _IsMove, class +# 499 +_Tp, class _Ref, class _Ptr, class _OI> _OI +# 498 +__copy_move_a1(_Deque_iterator< _Tp, _Ref, _Ptr> , _Deque_iterator< _Tp, _Ref, _Ptr> , _OI); +# 505 +template< bool _IsMove, class +# 506 +_ITp, class _IRef, class _IPtr, class _OTp> _Deque_iterator< _OTp, _OTp &, _OTp *> +# 505 +__copy_move_a1(_Deque_iterator< _ITp, _IRef, _IPtr> , _Deque_iterator< _ITp, _IRef, _IPtr> , _Deque_iterator< _OTp, _OTp &, _OTp *> ); +# 512 +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 *> ); +# 518 +template< bool _IsMove, class _II, class _OI> inline _OI +# 521 +__copy_move_a1(_II __first, _II __last, _OI __result) +# 522 +{ return std::__copy_move_a2< _IsMove> (__first, __last, __result); } +# 524 +template< bool _IsMove, class _II, class _OI> inline _OI +# 527 +__copy_move_a(_II __first, _II __last, _OI __result) +# 528 +{ +# 529 +return std::__niter_wrap(__result, std::__copy_move_a1< _IsMove> (std::__niter_base(__first), std::__niter_base(__last), std::__niter_base(__result))); +# 533 +} +# 535 +template< bool _IsMove, class +# 536 +_Ite, class _Seq, class _Cat, class _OI> _OI +# 535 +__copy_move_a(const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, _OI); +# 542 +template< bool _IsMove, class +# 543 +_II, class _Ite, class _Seq, class _Cat> __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> +# 542 +__copy_move_a(_II, _II, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &); +# 548 +template< bool _IsMove, class +# 549 +_IIte, class _ISeq, class _ICat, class +# 550 +_OIte, class _OSeq, class _OCat> __gnu_debug::_Safe_iterator< _OIte, _OSeq, _OCat> +# 548 +__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> &); +# 556 +template< class _InputIterator, class _Size, class _OutputIterator> _OutputIterator +# 559 +__copy_n_a(_InputIterator __first, _Size __n, _OutputIterator __result, bool) +# 561 +{ +# 562 +if (__n > 0) +# 563 +{ +# 564 +while (true) +# 565 +{ +# 566 +(*__result) = (*__first); +# 567 +++__result; +# 568 +if ((--__n) > 0) { +# 569 +++__first; } else { +# 571 +break; } +# 572 +} +# 573 +} +# 574 +return __result; +# 575 +} +# 577 +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); +# 583 +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); +# 608 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _II, class _OI> inline _OI +# 611 +copy(_II __first, _II __last, _OI __result) +# 612 +{ +# 617 +; +# 619 +return std::__copy_move_a< __is_move_iterator< _II> ::__value> (std::__miter_base(__first), std::__miter_base(__last), __result); +# 621 +} +# 641 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _II, class _OI> inline _OI +# 644 +move(_II __first, _II __last, _OI __result) +# 645 +{ +# 650 +; +# 652 +return std::__copy_move_a< true> (std::__miter_base(__first), std::__miter_base(__last), __result); +# 654 +} +# 661 +template< bool _IsMove, bool _IsSimple, class _Category> +# 662 +struct __copy_move_backward { +# 664 +template< class _BI1, class _BI2> static _BI2 +# 667 +__copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) +# 668 +{ +# 669 +while (__first != __last) { +# 670 +(*(--__result)) = (*(--__last)); } +# 671 +return __result; +# 672 +} +# 673 +}; +# 676 +template< class _Category> +# 677 +struct __copy_move_backward< true, false, _Category> { +# 679 +template< class _BI1, class _BI2> static _BI2 +# 682 +__copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) +# 683 +{ +# 684 +while (__first != __last) { +# 685 +(*(--__result)) = std::move(*(--__last)); } +# 686 +return __result; +# 687 +} +# 688 +}; +# 692 +template<> struct __copy_move_backward< false, false, random_access_iterator_tag> { +# 694 +template< class _BI1, class _BI2> static _BI2 +# 697 +__copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) +# 698 +{ +# 700 +typename iterator_traits< _BI1> ::difference_type __n = __last - __first; +# 701 +for (; __n > 0; --__n) { +# 702 +(*(--__result)) = (*(--__last)); } +# 703 +return __result; +# 704 +} +# 705 +}; +# 709 +template<> struct __copy_move_backward< true, false, random_access_iterator_tag> { +# 711 +template< class _BI1, class _BI2> static _BI2 +# 714 +__copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) +# 715 +{ +# 717 +typename iterator_traits< _BI1> ::difference_type __n = __last - __first; +# 718 +for (; __n > 0; --__n) { +# 719 +(*(--__result)) = std::move(*(--__last)); } +# 720 +return __result; +# 721 +} +# 722 +}; +# 725 +template< bool _IsMove> +# 726 +struct __copy_move_backward< _IsMove, true, random_access_iterator_tag> { +# 728 +template< class _Tp> static _Tp * +# 731 +__copy_move_b(const _Tp *__first, const _Tp *__last, _Tp *__result) +# 732 +{ +# 734 +using __assignable = conditional< _IsMove, is_move_assignable< _Tp> , is_copy_assignable< _Tp> > ; +# 738 +static_assert((__assignable::type::value), "type is not assignable"); +# 740 +const ptrdiff_t _Num = __last - __first; +# 741 +if (_Num) { +# 742 +__builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); } +# 743 +return __result - _Num; +# 744 +} +# 745 +}; +# 747 +template< bool _IsMove, class _BI1, class _BI2> inline _BI2 +# 750 +__copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) +# 751 +{ +# 752 +typedef typename iterator_traits< _BI1> ::iterator_category _Category; +# 758 +return std::template __copy_move_backward< _IsMove, __memcpyable< _BI2, _BI1> ::__value, typename iterator_traits< _BI1> ::iterator_category> ::__copy_move_b(__first, __last, __result); +# 763 +} +# 765 +template< bool _IsMove, class _BI1, class _BI2> inline _BI2 +# 768 +__copy_move_backward_a1(_BI1 __first, _BI1 __last, _BI2 __result) +# 769 +{ return std::__copy_move_backward_a2< _IsMove> (__first, __last, __result); } +# 771 +template< bool _IsMove, class +# 772 +_Tp, class _Ref, class _Ptr, class _OI> _OI +# 771 +__copy_move_backward_a1(_Deque_iterator< _Tp, _Ref, _Ptr> , _Deque_iterator< _Tp, _Ref, _Ptr> , _OI); +# 778 +template< bool _IsMove, class +# 779 +_ITp, class _IRef, class _IPtr, class _OTp> _Deque_iterator< _OTp, _OTp &, _OTp *> +# 778 +__copy_move_backward_a1(_Deque_iterator< _ITp, _IRef, _IPtr> , _Deque_iterator< _ITp, _IRef, _IPtr> , _Deque_iterator< _OTp, _OTp &, _OTp *> ); +# 786 +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 *> ); +# 793 +template< bool _IsMove, class _II, class _OI> inline _OI +# 796 +__copy_move_backward_a(_II __first, _II __last, _OI __result) +# 797 +{ +# 798 +return std::__niter_wrap(__result, std::__copy_move_backward_a1< _IsMove> (std::__niter_base(__first), std::__niter_base(__last), std::__niter_base(__result))); +# 802 +} +# 804 +template< bool _IsMove, class +# 805 +_Ite, class _Seq, class _Cat, class _OI> _OI +# 804 +__copy_move_backward_a(const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &, _OI); +# 812 +template< bool _IsMove, class +# 813 +_II, class _Ite, class _Seq, class _Cat> __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> +# 812 +__copy_move_backward_a(_II, _II, const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> &); +# 818 +template< bool _IsMove, class +# 819 +_IIte, class _ISeq, class _ICat, class +# 820 +_OIte, class _OSeq, class _OCat> __gnu_debug::_Safe_iterator< _OIte, _OSeq, _OCat> +# 818 +__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> &); +# 845 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _BI1, class _BI2> inline _BI2 +# 848 +copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) +# 849 +{ +# 856 +; +# 858 +return std::__copy_move_backward_a< __is_move_iterator< _BI1> ::__value> (std::__miter_base(__first), std::__miter_base(__last), __result); +# 860 +} +# 881 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _BI1, class _BI2> inline _BI2 +# 884 +move_backward(_BI1 __first, _BI1 __last, _BI2 __result) +# 885 +{ +# 892 +; +# 894 +return std::__copy_move_backward_a< true> (std::__miter_base(__first), std::__miter_base(__last), __result); +# 897 +} +# 904 +template< class _ForwardIterator, class _Tp> inline typename __gnu_cxx::__enable_if< !__is_scalar< _Tp> ::__value, void> ::__type +# 908 +__fill_a1(_ForwardIterator __first, _ForwardIterator __last, const _Tp & +# 909 +__value) +# 910 +{ +# 911 +for (; __first != __last; ++__first) { +# 912 +(*__first) = __value; } +# 913 +} +# 915 +template< class _ForwardIterator, class _Tp> inline typename __gnu_cxx::__enable_if< __is_scalar< _Tp> ::__value, void> ::__type +# 919 +__fill_a1(_ForwardIterator __first, _ForwardIterator __last, const _Tp & +# 920 +__value) +# 921 +{ +# 922 +const _Tp __tmp = __value; +# 923 +for (; __first != __last; ++__first) { +# 924 +(*__first) = __tmp; } +# 925 +} +# 928 +template< class _Tp> inline typename __gnu_cxx::__enable_if< __is_byte< _Tp> ::__value, void> ::__type +# 932 +__fill_a1(_Tp *__first, _Tp *__last, const _Tp &__c) +# 933 +{ +# 934 +const _Tp __tmp = __c; +# 943 "/usr/include/c++/11/bits/stl_algobase.h" 3 +if (const size_t __len = __last - __first) { +# 944 +__builtin_memset(__first, static_cast< unsigned char>(__tmp), __len); } +# 945 +} +# 947 +template< class _Ite, class _Cont, class _Tp> inline void +# 950 +__fill_a1(__gnu_cxx::__normal_iterator< _Ite, _Cont> __first, __gnu_cxx::__normal_iterator< _Ite, _Cont> +# 951 +__last, const _Tp & +# 952 +__value) +# 953 +{ std::__fill_a1(__first.base(), __last.base(), __value); } +# 955 +template< class _Tp, class _VTp> void __fill_a1(const _Deque_iterator< _Tp, _Tp &, _Tp *> &, const _Deque_iterator< _Tp, _Tp &, _Tp *> &, const _VTp &); +# 962 +void __fill_a1(_Bit_iterator, _Bit_iterator, const bool &); +# 965 +template< class _FIte, class _Tp> inline void +# 968 +__fill_a(_FIte __first, _FIte __last, const _Tp &__value) +# 969 +{ std::__fill_a1(__first, __last, __value); } +# 971 +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 &); +# 989 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _ForwardIterator, class _Tp> inline void +# 992 +fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value) +# 993 +{ +# 997 +; +# 999 +std::__fill_a(__first, __last, __value); +# 1000 +} +# 1004 +constexpr int __size_to_integer(int __n) { return __n; } +# 1006 +constexpr unsigned __size_to_integer(unsigned __n) { return __n; } +# 1008 +constexpr long __size_to_integer(long __n) { return __n; } +# 1010 +constexpr unsigned long __size_to_integer(unsigned long __n) { return __n; } +# 1012 +constexpr long long __size_to_integer(long long __n) { return __n; } +# 1014 +constexpr unsigned long long __size_to_integer(unsigned long long __n) { return __n; } +# 1018 +constexpr __int128 __size_to_integer(__int128 __n) { return __n; } +# 1020 +constexpr unsigned __int128 __size_to_integer(unsigned __int128 __n) { return __n; } +# 1042 "/usr/include/c++/11/bits/stl_algobase.h" 3 +constexpr long long __size_to_integer(float __n) { return (long long)__n; } +# 1044 +constexpr long long __size_to_integer(double __n) { return (long long)__n; } +# 1046 +constexpr long long __size_to_integer(long double __n) { return (long long)__n; } +# 1052 +template< class _OutputIterator, class _Size, class _Tp> inline typename __gnu_cxx::__enable_if< !__is_scalar< _Tp> ::__value, _OutputIterator> ::__type +# 1056 +__fill_n_a1(_OutputIterator __first, _Size __n, const _Tp &__value) +# 1057 +{ +# 1058 +for (; __n > 0; (--__n), ((void)(++__first))) { +# 1059 +(*__first) = __value; } +# 1060 +return __first; +# 1061 +} +# 1063 +template< class _OutputIterator, class _Size, class _Tp> inline typename __gnu_cxx::__enable_if< __is_scalar< _Tp> ::__value, _OutputIterator> ::__type +# 1067 +__fill_n_a1(_OutputIterator __first, _Size __n, const _Tp &__value) +# 1068 +{ +# 1069 +const _Tp __tmp = __value; +# 1070 +for (; __n > 0; (--__n), ((void)(++__first))) { +# 1071 +(*__first) = __tmp; } +# 1072 +return __first; +# 1073 +} +# 1075 +template< class _Ite, class _Seq, class _Cat, class _Size, class +# 1076 +_Tp> __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> +# 1075 +__fill_n_a(const __gnu_debug::_Safe_iterator< _Ite, _Seq, _Cat> & __first, _Size __n, const _Tp & __value, input_iterator_tag); +# 1082 +template< class _OutputIterator, class _Size, class _Tp> inline _OutputIterator +# 1085 +__fill_n_a(_OutputIterator __first, _Size __n, const _Tp &__value, output_iterator_tag) +# 1087 +{ +# 1089 +static_assert((is_integral< _Size> {}), "fill_n must pass integral size"); +# 1091 +return __fill_n_a1(__first, __n, __value); +# 1092 +} +# 1094 +template< class _OutputIterator, class _Size, class _Tp> inline _OutputIterator +# 1097 +__fill_n_a(_OutputIterator __first, _Size __n, const _Tp &__value, input_iterator_tag) +# 1099 +{ +# 1101 +static_assert((is_integral< _Size> {}), "fill_n must pass integral size"); +# 1103 +return __fill_n_a1(__first, __n, __value); +# 1104 +} +# 1106 +template< class _OutputIterator, class _Size, class _Tp> inline _OutputIterator +# 1109 +__fill_n_a(_OutputIterator __first, _Size __n, const _Tp &__value, random_access_iterator_tag) +# 1111 +{ +# 1113 +static_assert((is_integral< _Size> {}), "fill_n must pass integral size"); +# 1115 +if (__n <= 0) { +# 1116 +return __first; } +# 1118 +; +# 1120 +std::__fill_a(__first, __first + __n, __value); +# 1121 +return __first + __n; +# 1122 +} +# 1141 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _OI, class _Size, class _Tp> inline _OI +# 1144 +fill_n(_OI __first, _Size __n, const _Tp &__value) +# 1145 +{ +# 1149 +return std::__fill_n_a(__first, std::__size_to_integer(__n), __value, std::__iterator_category(__first)); +# 1151 +} +# 1153 +template< bool _BoolType> +# 1154 +struct __equal { +# 1156 +template< class _II1, class _II2> static bool +# 1159 +equal(_II1 __first1, _II1 __last1, _II2 __first2) +# 1160 +{ +# 1161 +for (; __first1 != __last1; (++__first1), ((void)(++__first2))) { +# 1162 +if (!((*__first1) == (*__first2))) { +# 1163 +return false; } } +# 1164 +return true; +# 1165 +} +# 1166 +}; +# 1169 +template<> struct __equal< true> { +# 1171 +template< class _Tp> static bool +# 1174 +equal(const _Tp *__first1, const _Tp *__last1, const _Tp *__first2) +# 1175 +{ +# 1176 +if (const size_t __len = __last1 - __first1) { +# 1177 +return !std::__memcmp(__first1, __first2, __len); } +# 1178 +return true; +# 1179 +} +# 1180 +}; +# 1182 +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); +# 1189 +template< class _Tp1, class _Ref1, class _Ptr1, class +# 1190 +_Tp2, class _Ref2, class _Ptr2> bool +# 1189 +__equal_aux1(_Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp2, _Ref2, _Ptr2> ); +# 1196 +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> ); +# 1202 +template< class _II1, class _II2> inline bool +# 1205 +__equal_aux1(_II1 __first1, _II1 __last1, _II2 __first2) +# 1206 +{ +# 1207 +typedef typename iterator_traits< _II1> ::value_type _ValueType1; +# 1208 +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); +# 1211 +return std::template __equal< __simple> ::equal(__first1, __last1, __first2); +# 1212 +} +# 1214 +template< class _II1, class _II2> inline bool +# 1217 +__equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) +# 1218 +{ +# 1219 +return std::__equal_aux1(std::__niter_base(__first1), std::__niter_base(__last1), std::__niter_base(__first2)); +# 1222 +} +# 1224 +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); +# 1230 +template< class _II1, class _II2, class _Seq2, class _Cat2> bool __equal_aux(_II1, _II1, const __gnu_debug::_Safe_iterator< _II2, _Seq2, _Cat2> &); +# 1235 +template< class _II1, class _Seq1, class _Cat1, class +# 1236 +_II2, class _Seq2, class _Cat2> bool +# 1235 +__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> &); +# 1242 +template< class , class > +# 1243 +struct __lc_rai { +# 1245 +template< class _II1, class _II2> static _II1 +# 1248 +__newlast1(_II1, _II1 __last1, _II2, _II2) +# 1249 +{ return __last1; } +# 1251 +template< class _II> static bool +# 1254 +__cnd2(_II __first, _II __last) +# 1255 +{ return __first != __last; } +# 1256 +}; +# 1259 +template<> struct __lc_rai< random_access_iterator_tag, random_access_iterator_tag> { +# 1261 +template< class _RAI1, class _RAI2> static _RAI1 +# 1264 +__newlast1(_RAI1 __first1, _RAI1 __last1, _RAI2 +# 1265 +__first2, _RAI2 __last2) +# 1266 +{ +# 1268 +const typename iterator_traits< _RAI1> ::difference_type __diff1 = __last1 - __first1; +# 1270 +const typename iterator_traits< _RAI2> ::difference_type __diff2 = __last2 - __first2; +# 1271 +return (__diff2 < __diff1) ? __first1 + __diff2 : __last1; +# 1272 +} +# 1274 +template< class _RAI> static bool +# 1276 +__cnd2(_RAI, _RAI) +# 1277 +{ return true; } +# 1278 +}; +# 1280 +template< class _II1, class _II2, class _Compare> bool +# 1283 +__lexicographical_compare_impl(_II1 __first1, _II1 __last1, _II2 +# 1284 +__first2, _II2 __last2, _Compare +# 1285 +__comp) +# 1286 +{ +# 1287 +typedef typename iterator_traits< _II1> ::iterator_category _Category1; +# 1288 +typedef typename iterator_traits< _II2> ::iterator_category _Category2; +# 1289 +typedef __lc_rai< typename iterator_traits< _II1> ::iterator_category, typename iterator_traits< _II2> ::iterator_category> __rai_type; +# 1291 +__last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); +# 1292 +for (; (__first1 != __last1) && __rai_type::__cnd2(__first2, __last2); (++__first1), ((void)(++__first2))) +# 1294 +{ +# 1295 +if (__comp(__first1, __first2)) { +# 1296 +return true; } +# 1297 +if (__comp(__first2, __first1)) { +# 1298 +return false; } +# 1299 +} +# 1300 +return (__first1 == __last1) && (__first2 != __last2); +# 1301 +} +# 1303 +template< bool _BoolType> +# 1304 +struct __lexicographical_compare { +# 1306 +template< class _II1, class _II2> static bool +# 1309 +__lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) +# 1310 +{ +# 1311 +using __gnu_cxx::__ops::__iter_less_iter; +# 1312 +return std::__lexicographical_compare_impl(__first1, __last1, __first2, __last2, __iter_less_iter()); +# 1315 +} +# 1317 +template< class _II1, class _II2> static int +# 1320 +__3way(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) +# 1321 +{ +# 1322 +while (__first1 != __last1) +# 1323 +{ +# 1324 +if (__first2 == __last2) { +# 1325 +return +1; } +# 1326 +if ((*__first1) < (*__first2)) { +# 1327 +return -1; } +# 1328 +if ((*__first2) < (*__first1)) { +# 1329 +return +1; } +# 1330 +++__first1; +# 1331 +++__first2; +# 1332 +} +# 1333 +return ((int)(__first2 == __last2)) - 1; +# 1334 +} +# 1335 +}; +# 1338 +template<> struct __lexicographical_compare< true> { +# 1340 +template< class _Tp, class _Up> static bool +# 1343 +__lc(const _Tp *__first1, const _Tp *__last1, const _Up * +# 1344 +__first2, const _Up *__last2) +# 1345 +{ return __3way(__first1, __last1, __first2, __last2) < 0; } +# 1347 +template< class _Tp, class _Up> static ptrdiff_t +# 1350 +__3way(const _Tp *__first1, const _Tp *__last1, const _Up * +# 1351 +__first2, const _Up *__last2) +# 1352 +{ +# 1353 +const size_t __len1 = __last1 - __first1; +# 1354 +const size_t __len2 = __last2 - __first2; +# 1355 +if (const size_t __len = std::min(__len1, __len2)) { +# 1356 +if (int __result = std::__memcmp(__first1, __first2, __len)) { +# 1357 +return __result; } } +# 1358 +return (ptrdiff_t)(__len1 - __len2); +# 1359 +} +# 1360 +}; +# 1362 +template< class _II1, class _II2> inline bool +# 1365 +__lexicographical_compare_aux1(_II1 __first1, _II1 __last1, _II2 +# 1366 +__first2, _II2 __last2) +# 1367 +{ +# 1368 +typedef typename iterator_traits< _II1> ::value_type _ValueType1; +# 1369 +typedef typename iterator_traits< _II2> ::value_type _ValueType2; +# 1370 +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); +# 1383 +return std::template __lexicographical_compare< __simple> ::__lc(__first1, __last1, __first2, __last2); +# 1385 +} +# 1387 +template< class _Tp1, class _Ref1, class _Ptr1, class +# 1388 +_Tp2> bool +# 1387 +__lexicographical_compare_aux1(_Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Tp2 *, _Tp2 *); +# 1395 +template< class _Tp1, class +# 1396 +_Tp2, class _Ref2, class _Ptr2> bool +# 1395 +__lexicographical_compare_aux1(_Tp1 *, _Tp1 *, _Deque_iterator< _Tp2, _Ref2, _Ptr2> , _Deque_iterator< _Tp2, _Ref2, _Ptr2> ); +# 1402 +template< class _Tp1, class _Ref1, class _Ptr1, class +# 1403 +_Tp2, class _Ref2, class _Ptr2> bool +# 1402 +__lexicographical_compare_aux1(_Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp1, _Ref1, _Ptr1> , _Deque_iterator< _Tp2, _Ref2, _Ptr2> , _Deque_iterator< _Tp2, _Ref2, _Ptr2> ); +# 1411 +template< class _II1, class _II2> inline bool +# 1414 +__lexicographical_compare_aux(_II1 __first1, _II1 __last1, _II2 +# 1415 +__first2, _II2 __last2) +# 1416 +{ +# 1417 +return std::__lexicographical_compare_aux1(std::__niter_base(__first1), std::__niter_base(__last1), std::__niter_base(__first2), std::__niter_base(__last2)); +# 1421 +} +# 1423 +template< class _Iter1, class _Seq1, class _Cat1, class +# 1424 +_II2> bool +# 1423 +__lexicographical_compare_aux(const __gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1> &, const __gnu_debug::_Safe_iterator< _Iter1, _Seq1, _Cat1> &, _II2, _II2); +# 1431 +template< class _II1, class +# 1432 +_Iter2, class _Seq2, class _Cat2> bool +# 1431 +__lexicographical_compare_aux(_II1, _II1, const __gnu_debug::_Safe_iterator< _Iter2, _Seq2, _Cat2> &, const __gnu_debug::_Safe_iterator< _Iter2, _Seq2, _Cat2> &); +# 1439 +template< class _Iter1, class _Seq1, class _Cat1, class +# 1440 +_Iter2, class _Seq2, class _Cat2> bool +# 1439 +__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> &); +# 1448 +template< class _ForwardIterator, class _Tp, class _Compare> _ForwardIterator +# 1451 +__lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp & +# 1452 +__val, _Compare __comp) +# 1453 +{ +# 1455 +typedef typename iterator_traits< _ForwardIterator> ::difference_type _DistanceType; +# 1457 +_DistanceType __len = std::distance(__first, __last); +# 1459 +while (__len > 0) +# 1460 +{ +# 1461 +_DistanceType __half = __len >> 1; +# 1462 +_ForwardIterator __middle = __first; +# 1463 +std::advance(__middle, __half); +# 1464 +if (__comp(__middle, __val)) +# 1465 +{ +# 1466 +__first = __middle; +# 1467 +++__first; +# 1468 +__len = ((__len - __half) - 1); +# 1469 +} else { +# 1471 +__len = __half; } +# 1472 +} +# 1473 +return __first; +# 1474 +} +# 1487 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _ForwardIterator, class _Tp> inline _ForwardIterator +# 1490 +lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp & +# 1491 +__val) +# 1492 +{ +# 1497 +; +# 1499 +return std::__lower_bound(__first, __last, __val, __gnu_cxx::__ops::__iter_less_val()); +# 1501 +} +# 1506 +constexpr int __lg(int __n) +# 1507 +{ return ((((int)sizeof(int)) * 8) - 1) - __builtin_clz(__n); } +# 1510 +constexpr unsigned __lg(unsigned __n) +# 1511 +{ return ((((int)sizeof(int)) * 8) - 1) - __builtin_clz(__n); } +# 1514 +constexpr long __lg(long __n) +# 1515 +{ return ((((int)sizeof(long)) * 8) - 1) - __builtin_clzl(__n); } +# 1518 +constexpr unsigned long __lg(unsigned long __n) +# 1519 +{ return ((((int)sizeof(long)) * 8) - 1) - __builtin_clzl(__n); } +# 1522 +constexpr long long __lg(long long __n) +# 1523 +{ return ((((int)sizeof(long long)) * 8) - 1) - __builtin_clzll(__n); } +# 1526 +constexpr unsigned long long __lg(unsigned long long __n) +# 1527 +{ return ((((int)sizeof(long long)) * 8) - 1) - __builtin_clzll(__n); } +# 1543 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _II1, class _II2> inline bool +# 1546 +equal(_II1 __first1, _II1 __last1, _II2 __first2) +# 1547 +{ +# 1554 +; +# 1556 +return std::__equal_aux(__first1, __last1, __first2); +# 1557 +} +# 1574 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _IIter1, class _IIter2, class _BinaryPredicate> inline bool +# 1577 +equal(_IIter1 __first1, _IIter1 __last1, _IIter2 +# 1578 +__first2, _BinaryPredicate __binary_pred) +# 1579 +{ +# 1583 +; +# 1585 +for (; __first1 != __last1; (++__first1), ((void)(++__first2))) { +# 1586 +if (!((bool)__binary_pred(*__first1, *__first2))) { +# 1587 +return false; } } +# 1588 +return true; +# 1589 +} +# 1593 +template< class _II1, class _II2> inline bool +# 1596 +__equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) +# 1597 +{ +# 1598 +using _RATag = random_access_iterator_tag; +# 1599 +using _Cat1 = typename iterator_traits< _II1> ::iterator_category; +# 1600 +using _Cat2 = typename iterator_traits< _II2> ::iterator_category; +# 1601 +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> > ; +# 1602 +if (_RAIters()) +# 1603 +{ +# 1604 +auto __d1 = std::distance(__first1, __last1); +# 1605 +auto __d2 = std::distance(__first2, __last2); +# 1606 +if (__d1 != __d2) { +# 1607 +return false; } +# 1608 +return std::equal(__first1, __last1, __first2); +# 1609 +} +# 1611 +for (; (__first1 != __last1) && (__first2 != __last2); (++__first1), ((void)(++__first2))) { +# 1613 +if (!((*__first1) == (*__first2))) { +# 1614 +return false; } } +# 1615 +return (__first1 == __last1) && (__first2 == __last2); +# 1616 +} +# 1619 +template< class _II1, class _II2, class _BinaryPredicate> inline bool +# 1622 +__equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, _BinaryPredicate +# 1623 +__binary_pred) +# 1624 +{ +# 1625 +using _RATag = random_access_iterator_tag; +# 1626 +using _Cat1 = typename iterator_traits< _II1> ::iterator_category; +# 1627 +using _Cat2 = typename iterator_traits< _II2> ::iterator_category; +# 1628 +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> > ; +# 1629 +if (_RAIters()) +# 1630 +{ +# 1631 +auto __d1 = std::distance(__first1, __last1); +# 1632 +auto __d2 = std::distance(__first2, __last2); +# 1633 +if (__d1 != __d2) { +# 1634 +return false; } +# 1635 +return std::equal(__first1, __last1, __first2, __binary_pred); +# 1637 +} +# 1639 +for (; (__first1 != __last1) && (__first2 != __last2); (++__first1), ((void)(++__first2))) { +# 1641 +if (!((bool)__binary_pred(*__first1, *__first2))) { +# 1642 +return false; } } +# 1643 +return (__first1 == __last1) && (__first2 == __last2); +# 1644 +} +# 1664 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _II1, class _II2> inline bool +# 1667 +equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) +# 1668 +{ +# 1675 +; +# 1676 +; +# 1678 +return std::__equal4(__first1, __last1, __first2, __last2); +# 1679 +} +# 1697 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _IIter1, class _IIter2, class _BinaryPredicate> inline bool +# 1700 +equal(_IIter1 __first1, _IIter1 __last1, _IIter2 +# 1701 +__first2, _IIter2 __last2, _BinaryPredicate __binary_pred) +# 1702 +{ +# 1706 +; +# 1707 +; +# 1709 +return std::__equal4(__first1, __last1, __first2, __last2, __binary_pred); +# 1711 +} +# 1729 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _II1, class _II2> inline bool +# 1732 +lexicographical_compare(_II1 __first1, _II1 __last1, _II2 +# 1733 +__first2, _II2 __last2) +# 1734 +{ +# 1744 +; +# 1745 +; +# 1747 +return std::__lexicographical_compare_aux(__first1, __last1, __first2, __last2); +# 1749 +} +# 1764 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _II1, class _II2, class _Compare> inline bool +# 1767 +lexicographical_compare(_II1 __first1, _II1 __last1, _II2 +# 1768 +__first2, _II2 __last2, _Compare __comp) +# 1769 +{ +# 1773 +; +# 1774 +; +# 1776 +return std::__lexicographical_compare_impl(__first1, __last1, __first2, __last2, __gnu_cxx::__ops::__iter_comp_iter(__comp)); +# 1779 +} +# 1877 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2, class +# 1878 +_BinaryPredicate> pair< _InputIterator1, _InputIterator2> +# 1881 +__mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 1882 +__first2, _BinaryPredicate __binary_pred) +# 1883 +{ +# 1884 +while ((__first1 != __last1) && __binary_pred(__first1, __first2)) +# 1885 +{ +# 1886 +++__first1; +# 1887 +++__first2; +# 1888 +} +# 1889 +return pair< _InputIterator1, _InputIterator2> (__first1, __first2); +# 1890 +} +# 1905 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2> inline pair< _InputIterator1, _InputIterator2> +# 1908 +mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 1909 +__first2) +# 1910 +{ +# 1917 +; +# 1919 +return std::__mismatch(__first1, __last1, __first2, __gnu_cxx::__ops::__iter_equal_to_iter()); +# 1921 +} +# 1939 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2, class +# 1940 +_BinaryPredicate> inline pair< _InputIterator1, _InputIterator2> +# 1943 +mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 1944 +__first2, _BinaryPredicate __binary_pred) +# 1945 +{ +# 1949 +; +# 1951 +return std::__mismatch(__first1, __last1, __first2, __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); +# 1953 +} +# 1957 +template< class _InputIterator1, class _InputIterator2, class +# 1958 +_BinaryPredicate> pair< _InputIterator1, _InputIterator2> +# 1961 +__mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 1962 +__first2, _InputIterator2 __last2, _BinaryPredicate +# 1963 +__binary_pred) +# 1964 +{ +# 1965 +while ((__first1 != __last1) && (__first2 != __last2) && __binary_pred(__first1, __first2)) +# 1967 +{ +# 1968 +++__first1; +# 1969 +++__first2; +# 1970 +} +# 1971 +return pair< _InputIterator1, _InputIterator2> (__first1, __first2); +# 1972 +} +# 1988 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2> inline pair< _InputIterator1, _InputIterator2> +# 1991 +mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 1992 +__first2, _InputIterator2 __last2) +# 1993 +{ +# 2000 +; +# 2001 +; +# 2003 +return std::__mismatch(__first1, __last1, __first2, __last2, __gnu_cxx::__ops::__iter_equal_to_iter()); +# 2005 +} +# 2024 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _InputIterator1, class _InputIterator2, class +# 2025 +_BinaryPredicate> inline pair< _InputIterator1, _InputIterator2> +# 2028 +mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 +# 2029 +__first2, _InputIterator2 __last2, _BinaryPredicate +# 2030 +__binary_pred) +# 2031 +{ +# 2035 +; +# 2036 +; +# 2038 +return std::__mismatch(__first1, __last1, __first2, __last2, __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); +# 2040 +} +# 2046 +template< class _InputIterator, class _Predicate> inline _InputIterator +# 2049 +__find_if(_InputIterator __first, _InputIterator __last, _Predicate +# 2050 +__pred, input_iterator_tag) +# 2051 +{ +# 2052 +while ((__first != __last) && (!__pred(__first))) { +# 2053 +++__first; } +# 2054 +return __first; +# 2055 +} +# 2058 +template< class _RandomAccessIterator, class _Predicate> _RandomAccessIterator +# 2061 +__find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, _Predicate +# 2062 +__pred, random_access_iterator_tag) +# 2063 +{ +# 2065 +typename iterator_traits< _RandomAccessIterator> ::difference_type __trip_count = (__last - __first) >> 2; +# 2067 +for (; __trip_count > 0; --__trip_count) +# 2068 +{ +# 2069 +if (__pred(__first)) { +# 2070 +return __first; } +# 2071 +++__first; +# 2073 +if (__pred(__first)) { +# 2074 +return __first; } +# 2075 +++__first; +# 2077 +if (__pred(__first)) { +# 2078 +return __first; } +# 2079 +++__first; +# 2081 +if (__pred(__first)) { +# 2082 +return __first; } +# 2083 +++__first; +# 2084 +} +# 2086 +switch (__last - __first) +# 2087 +{ +# 2088 +case 3: +# 2089 +if (__pred(__first)) { +# 2090 +return __first; } +# 2091 +++__first; +# 2093 +case 2: +# 2094 +if (__pred(__first)) { +# 2095 +return __first; } +# 2096 +++__first; +# 2098 +case 1: +# 2099 +if (__pred(__first)) { +# 2100 +return __first; } +# 2101 +++__first; +# 2103 +case 0: +# 2104 +default: +# 2105 +return __last; +# 2106 +} +# 2107 +} +# 2109 +template< class _Iterator, class _Predicate> inline _Iterator +# 2112 +__find_if(_Iterator __first, _Iterator __last, _Predicate __pred) +# 2113 +{ +# 2114 +return __find_if(__first, __last, __pred, std::__iterator_category(__first)); +# 2116 +} +# 2118 +template< class _InputIterator, class _Predicate> typename iterator_traits< _InputIterator> ::difference_type +# 2121 +__count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) +# 2122 +{ +# 2123 +typename iterator_traits< _InputIterator> ::difference_type __n = (0); +# 2124 +for (; __first != __last; ++__first) { +# 2125 +if (__pred(__first)) { +# 2126 +++__n; } } +# 2127 +return __n; +# 2128 +} +# 2131 +template< class _ForwardIterator1, class _ForwardIterator2, class +# 2132 +_BinaryPredicate> bool +# 2135 +__is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 +# 2136 +__first2, _BinaryPredicate __pred) +# 2137 +{ +# 2140 +for (; __first1 != __last1; (++__first1), ((void)(++__first2))) { +# 2141 +if (!__pred(__first1, __first2)) { +# 2142 +break; } } +# 2144 +if (__first1 == __last1) { +# 2145 +return true; } +# 2149 +_ForwardIterator2 __last2 = __first2; +# 2150 +std::advance(__last2, std::distance(__first1, __last1)); +# 2151 +for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) +# 2152 +{ +# 2153 +if (__scan != std::__find_if(__first1, __scan, __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) { +# 2155 +continue; } +# 2157 +auto __matches = std::__count_if(__first2, __last2, __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); +# 2160 +if ((0 == __matches) || (std::__count_if(__scan, __last1, __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) != __matches)) { +# 2164 +return false; } +# 2165 +} +# 2166 +return true; +# 2167 +} +# 2181 "/usr/include/c++/11/bits/stl_algobase.h" 3 +template< class _ForwardIterator1, class _ForwardIterator2> inline bool +# 2184 +is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 +# 2185 +__first2) +# 2186 +{ +# 2193 +; +# 2195 +return std::__is_permutation(__first1, __last1, __first2, __gnu_cxx::__ops::__iter_equal_to_iter()); +# 2197 +} +# 2201 +} +# 158 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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 +}; +# 1635 "/usr/include/c++/11/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; }; +# 1668 "/usr/include/c++/11/limits" 3 +template<> struct numeric_limits< float> { +# 1670 +static constexpr inline bool is_specialized = true; +# 1673 +static constexpr float min() noexcept { return (1.1754944E-38F); } +# 1676 +static constexpr float max() noexcept { return (3.4028235E38F); } +# 1680 +static constexpr float lowest() noexcept { return -(3.4028235E38F); } +# 1683 +static constexpr inline int digits = 24; +# 1684 +static constexpr inline int digits10 = 6; +# 1686 +static constexpr inline int max_digits10 = ((2) + (((24) * 643L) / (2136))); +# 1689 +static constexpr inline bool is_signed = true; +# 1690 +static constexpr inline bool is_integer = false; +# 1691 +static constexpr inline bool is_exact = false; +# 1692 +static constexpr inline int radix = 2; +# 1695 +static constexpr float epsilon() noexcept { return (1.1920929E-7F); } +# 1698 +static constexpr float round_error() noexcept { return (0.5F); } +# 1700 +static constexpr inline int min_exponent = (-125); +# 1701 +static constexpr inline int min_exponent10 = (-37); +# 1702 +static constexpr inline int max_exponent = 128; +# 1703 +static constexpr inline int max_exponent10 = 38; +# 1705 +static constexpr inline bool has_infinity = (1); +# 1706 +static constexpr inline bool has_quiet_NaN = (1); +# 1707 +static constexpr inline bool has_signaling_NaN = has_quiet_NaN; +# 1708 +static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); +# 1710 +static constexpr inline bool has_denorm_loss = false; +# 1714 +static constexpr float infinity() noexcept { return __builtin_huge_valf(); } +# 1717 +static constexpr float quiet_NaN() noexcept { return __builtin_nanf(""); } +# 1720 +static constexpr float signaling_NaN() noexcept { return __builtin_nansf(""); } +# 1723 +static constexpr float denorm_min() noexcept { return (1.4E-45F); } +# 1725 +static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); +# 1727 +static constexpr inline bool is_bounded = true; +# 1728 +static constexpr inline bool is_modulo = false; +# 1730 +static constexpr inline bool traps = false; +# 1731 +static constexpr inline bool tinyness_before = false; +# 1733 +static constexpr inline float_round_style round_style = round_to_nearest; +# 1735 +}; +# 1743 +template<> struct numeric_limits< double> { +# 1745 +static constexpr inline bool is_specialized = true; +# 1748 +static constexpr double min() noexcept { return (double)(2.2250738585072013831E-308L); } +# 1751 +static constexpr double max() noexcept { return (double)(1.7976931348623157081E308L); } +# 1755 +static constexpr double lowest() noexcept { return -((double)(1.7976931348623157081E308L)); } +# 1758 +static constexpr inline int digits = 53; +# 1759 +static constexpr inline int digits10 = 15; +# 1761 +static constexpr inline int max_digits10 = ((2) + (((53) * 643L) / (2136))); +# 1764 +static constexpr inline bool is_signed = true; +# 1765 +static constexpr inline bool is_integer = false; +# 1766 +static constexpr inline bool is_exact = false; +# 1767 +static constexpr inline int radix = 2; +# 1770 +static constexpr double epsilon() noexcept { return (double)(2.2204460492503130808E-16L); } +# 1773 +static constexpr double round_error() noexcept { return (0.5); } +# 1775 +static constexpr inline int min_exponent = (-1021); +# 1776 +static constexpr inline int min_exponent10 = (-307); +# 1777 +static constexpr inline int max_exponent = 1024; +# 1778 +static constexpr inline int max_exponent10 = 308; +# 1780 +static constexpr inline bool has_infinity = (1); +# 1781 +static constexpr inline bool has_quiet_NaN = (1); +# 1782 +static constexpr inline bool has_signaling_NaN = has_quiet_NaN; +# 1783 +static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); +# 1785 +static constexpr inline bool has_denorm_loss = false; +# 1789 +static constexpr double infinity() noexcept { return __builtin_huge_val(); } +# 1792 +static constexpr double quiet_NaN() noexcept { return __builtin_nan(""); } +# 1795 +static constexpr double signaling_NaN() noexcept { return __builtin_nans(""); } +# 1798 +static constexpr double denorm_min() noexcept { return (double)(4.940656458412465442E-324L); } +# 1800 +static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); +# 1802 +static constexpr inline bool is_bounded = true; +# 1803 +static constexpr inline bool is_modulo = false; +# 1805 +static constexpr inline bool traps = false; +# 1806 +static constexpr inline bool tinyness_before = false; +# 1808 +static constexpr inline float_round_style round_style = round_to_nearest; +# 1810 +}; +# 1818 +template<> struct numeric_limits< long double> { +# 1820 +static constexpr inline bool is_specialized = true; +# 1823 +static constexpr long double min() noexcept { return (3.3621031431120935063E-4932L); } +# 1826 +static constexpr long double max() noexcept { return (1.189731495357231765E4932L); } +# 1830 +static constexpr long double lowest() noexcept { return -(1.189731495357231765E4932L); } +# 1833 +static constexpr inline int digits = 64; +# 1834 +static constexpr inline int digits10 = 18; +# 1836 +static constexpr inline int max_digits10 = ((2) + (((64) * 643L) / (2136))); +# 1839 +static constexpr inline bool is_signed = true; +# 1840 +static constexpr inline bool is_integer = false; +# 1841 +static constexpr inline bool is_exact = false; +# 1842 +static constexpr inline int radix = 2; +# 1845 +static constexpr long double epsilon() noexcept { return (1.084202172485504434E-19L); } +# 1848 +static constexpr long double round_error() noexcept { return (0.5L); } +# 1850 +static constexpr inline int min_exponent = (-16381); +# 1851 +static constexpr inline int min_exponent10 = (-4931); +# 1852 +static constexpr inline int max_exponent = 16384; +# 1853 +static constexpr inline int max_exponent10 = 4932; +# 1855 +static constexpr inline bool has_infinity = (1); +# 1856 +static constexpr inline bool has_quiet_NaN = (1); +# 1857 +static constexpr inline bool has_signaling_NaN = has_quiet_NaN; +# 1858 +static constexpr inline float_denorm_style has_denorm = (((bool)1) ? denorm_present : denorm_absent); +# 1860 +static constexpr inline bool has_denorm_loss = false; +# 1864 +static constexpr long double infinity() noexcept { return __builtin_huge_vall(); } +# 1867 +static constexpr long double quiet_NaN() noexcept { return __builtin_nanl(""); } +# 1870 +static constexpr long double signaling_NaN() noexcept { return __builtin_nansl(""); } +# 1873 +static constexpr long double denorm_min() noexcept { return (3.6E-4951L); } +# 1875 +static constexpr inline bool is_iec559 = (has_infinity && has_quiet_NaN && (has_denorm == (denorm_present))); +# 1877 +static constexpr inline bool is_bounded = true; +# 1878 +static constexpr inline bool is_modulo = false; +# 1880 +static constexpr inline bool traps = false; +# 1881 +static constexpr inline bool tinyness_before = false; +# 1883 +static constexpr inline float_round_style round_style = round_to_nearest; +# 1885 +}; +# 1892 +} +# 39 "/usr/include/c++/11/tr1/special_function_util.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 50 "/usr/include/c++/11/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/include/c++/11/tr1/special_function_util.h" 3 +template< class _Tp> inline bool +# 115 +__isnan(_Tp __x) +# 116 +{ return std::isnan(__x); } +# 133 "/usr/include/c++/11/tr1/special_function_util.h" 3 +} +# 139 +} +# 51 "/usr/include/c++/11/tr1/gamma.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 65 "/usr/include/c++/11/tr1/gamma.tcc" 3 +namespace __detail { +# 76 "/usr/include/c++/11/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/include/c++/11/tr1/gamma.tcc" 3 +template< class _Tp> inline _Tp +# 141 +__bernoulli(int __n) +# 142 +{ return __bernoulli_series< _Tp> (__n); } +# 153 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/gamma.tcc" 3 +template< class _Tp> inline _Tp +# 339 +__gamma(_Tp __x) +# 340 +{ return std::exp(__log_gamma(__x)); } +# 356 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/bessel_function.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 71 "/usr/include/c++/11/tr1/bessel_function.tcc" 3 +namespace __detail { +# 98 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/beta_function.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 65 "/usr/include/c++/11/tr1/beta_function.tcc" 3 +namespace __detail { +# 79 "/usr/include/c++/11/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/include/c++/11/tr1/beta_function.tcc" 3 +return __bet; +# 112 +} +# 127 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/ell_integral.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 59 "/usr/include/c++/11/tr1/ell_integral.tcc" 3 +namespace __detail { +# 76 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/exp_integral.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 64 "/usr/include/c++/11/tr1/exp_integral.tcc" 3 +namespace __detail { +# 66 +template< class _Tp> _Tp __expint_E1(_Tp); +# 81 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/hypergeometric.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 60 "/usr/include/c++/11/tr1/hypergeometric.tcc" 3 +namespace __detail { +# 83 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/legendre_function.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 65 "/usr/include/c++/11/tr1/legendre_function.tcc" 3 +namespace __detail { +# 80 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/modified_bessel_func.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 65 "/usr/include/c++/11/tr1/modified_bessel_func.tcc" 3 +namespace __detail { +# 83 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/poly_hermite.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 56 "/usr/include/c++/11/tr1/poly_hermite.tcc" 3 +namespace __detail { +# 72 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/poly_laguerre.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 60 "/usr/include/c++/11/tr1/poly_laguerre.tcc" 3 +namespace __detail { +# 75 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/tr1/riemann_zeta.tcc" 3 +namespace std __attribute((__visibility__("default"))) { +# 63 "/usr/include/c++/11/tr1/riemann_zeta.tcc" 3 +namespace __detail { +# 78 "/usr/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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/include/c++/11/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 +} +# 61 "/usr/include/c++/11/bits/specfun.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 206 "/usr/include/c++/11/bits/specfun.h" 3 +inline float assoc_laguerref(unsigned __n, unsigned __m, float __x) +# 207 +{ return __detail::__assoc_laguerre< float> (__n, __m, __x); } +# 216 +inline long double assoc_laguerrel(unsigned __n, unsigned __m, long double __x) +# 217 +{ return __detail::__assoc_laguerre< long double> (__n, __m, __x); } +# 250 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 252 +assoc_laguerre(unsigned __n, unsigned __m, _Tp __x) +# 253 +{ +# 254 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 255 +return __detail::__assoc_laguerre< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __m, __x); +# 256 +} +# 267 "/usr/include/c++/11/bits/specfun.h" 3 +inline float assoc_legendref(unsigned __l, unsigned __m, float __x) +# 268 +{ return __detail::__assoc_legendre_p< float> (__l, __m, __x); } +# 276 +inline long double assoc_legendrel(unsigned __l, unsigned __m, long double __x) +# 277 +{ return __detail::__assoc_legendre_p< long double> (__l, __m, __x); } +# 296 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 298 +assoc_legendre(unsigned __l, unsigned __m, _Tp __x) +# 299 +{ +# 300 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 301 +return __detail::__assoc_legendre_p< typename __gnu_cxx::__promote< _Tp> ::__type> (__l, __m, __x); +# 302 +} +# 312 "/usr/include/c++/11/bits/specfun.h" 3 +inline float betaf(float __a, float __b) +# 313 +{ return __detail::__beta< float> (__a, __b); } +# 322 +inline long double betal(long double __a, long double __b) +# 323 +{ return __detail::__beta< long double> (__a, __b); } +# 341 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tpa, class _Tpb> inline typename __gnu_cxx::__promote_2< _Tpa, _Tpb> ::__type +# 343 +beta(_Tpa __a, _Tpb __b) +# 344 +{ +# 345 +typedef typename __gnu_cxx::__promote_2< _Tpa, _Tpb> ::__type __type; +# 346 +return __detail::__beta< typename __gnu_cxx::__promote_2< _Tpa, _Tpb> ::__type> (__a, __b); +# 347 +} +# 358 "/usr/include/c++/11/bits/specfun.h" 3 +inline float comp_ellint_1f(float __k) +# 359 +{ return __detail::__comp_ellint_1< float> (__k); } +# 368 +inline long double comp_ellint_1l(long double __k) +# 369 +{ return __detail::__comp_ellint_1< long double> (__k); } +# 389 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 391 +comp_ellint_1(_Tp __k) +# 392 +{ +# 393 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 394 +return __detail::__comp_ellint_1< typename __gnu_cxx::__promote< _Tp> ::__type> (__k); +# 395 +} +# 406 "/usr/include/c++/11/bits/specfun.h" 3 +inline float comp_ellint_2f(float __k) +# 407 +{ return __detail::__comp_ellint_2< float> (__k); } +# 416 +inline long double comp_ellint_2l(long double __k) +# 417 +{ return __detail::__comp_ellint_2< long double> (__k); } +# 436 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 438 +comp_ellint_2(_Tp __k) +# 439 +{ +# 440 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 441 +return __detail::__comp_ellint_2< typename __gnu_cxx::__promote< _Tp> ::__type> (__k); +# 442 +} +# 453 "/usr/include/c++/11/bits/specfun.h" 3 +inline float comp_ellint_3f(float __k, float __nu) +# 454 +{ return __detail::__comp_ellint_3< float> (__k, __nu); } +# 463 +inline long double comp_ellint_3l(long double __k, long double __nu) +# 464 +{ return __detail::__comp_ellint_3< long double> (__k, __nu); } +# 487 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp, class _Tpn> inline typename __gnu_cxx::__promote_2< _Tp, _Tpn> ::__type +# 489 +comp_ellint_3(_Tp __k, _Tpn __nu) +# 490 +{ +# 491 +typedef typename __gnu_cxx::__promote_2< _Tp, _Tpn> ::__type __type; +# 492 +return __detail::__comp_ellint_3< typename __gnu_cxx::__promote_2< _Tp, _Tpn> ::__type> (__k, __nu); +# 493 +} +# 504 "/usr/include/c++/11/bits/specfun.h" 3 +inline float cyl_bessel_if(float __nu, float __x) +# 505 +{ return __detail::__cyl_bessel_i< float> (__nu, __x); } +# 514 +inline long double cyl_bessel_il(long double __nu, long double __x) +# 515 +{ return __detail::__cyl_bessel_i< long double> (__nu, __x); } +# 533 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tpnu, class _Tp> inline typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type +# 535 +cyl_bessel_i(_Tpnu __nu, _Tp __x) +# 536 +{ +# 537 +typedef typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type __type; +# 538 +return __detail::__cyl_bessel_i< typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type> (__nu, __x); +# 539 +} +# 550 "/usr/include/c++/11/bits/specfun.h" 3 +inline float cyl_bessel_jf(float __nu, float __x) +# 551 +{ return __detail::__cyl_bessel_j< float> (__nu, __x); } +# 560 +inline long double cyl_bessel_jl(long double __nu, long double __x) +# 561 +{ return __detail::__cyl_bessel_j< long double> (__nu, __x); } +# 579 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tpnu, class _Tp> inline typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type +# 581 +cyl_bessel_j(_Tpnu __nu, _Tp __x) +# 582 +{ +# 583 +typedef typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type __type; +# 584 +return __detail::__cyl_bessel_j< typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type> (__nu, __x); +# 585 +} +# 596 "/usr/include/c++/11/bits/specfun.h" 3 +inline float cyl_bessel_kf(float __nu, float __x) +# 597 +{ return __detail::__cyl_bessel_k< float> (__nu, __x); } +# 606 +inline long double cyl_bessel_kl(long double __nu, long double __x) +# 607 +{ return __detail::__cyl_bessel_k< long double> (__nu, __x); } +# 631 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tpnu, class _Tp> inline typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type +# 633 +cyl_bessel_k(_Tpnu __nu, _Tp __x) +# 634 +{ +# 635 +typedef typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type __type; +# 636 +return __detail::__cyl_bessel_k< typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type> (__nu, __x); +# 637 +} +# 648 "/usr/include/c++/11/bits/specfun.h" 3 +inline float cyl_neumannf(float __nu, float __x) +# 649 +{ return __detail::__cyl_neumann_n< float> (__nu, __x); } +# 658 +inline long double cyl_neumannl(long double __nu, long double __x) +# 659 +{ return __detail::__cyl_neumann_n< long double> (__nu, __x); } +# 679 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tpnu, class _Tp> inline typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type +# 681 +cyl_neumann(_Tpnu __nu, _Tp __x) +# 682 +{ +# 683 +typedef typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type __type; +# 684 +return __detail::__cyl_neumann_n< typename __gnu_cxx::__promote_2< _Tpnu, _Tp> ::__type> (__nu, __x); +# 685 +} +# 696 "/usr/include/c++/11/bits/specfun.h" 3 +inline float ellint_1f(float __k, float __phi) +# 697 +{ return __detail::__ellint_1< float> (__k, __phi); } +# 706 +inline long double ellint_1l(long double __k, long double __phi) +# 707 +{ return __detail::__ellint_1< long double> (__k, __phi); } +# 727 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp, class _Tpp> inline typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type +# 729 +ellint_1(_Tp __k, _Tpp __phi) +# 730 +{ +# 731 +typedef typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type __type; +# 732 +return __detail::__ellint_1< typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type> (__k, __phi); +# 733 +} +# 744 "/usr/include/c++/11/bits/specfun.h" 3 +inline float ellint_2f(float __k, float __phi) +# 745 +{ return __detail::__ellint_2< float> (__k, __phi); } +# 754 +inline long double ellint_2l(long double __k, long double __phi) +# 755 +{ return __detail::__ellint_2< long double> (__k, __phi); } +# 775 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp, class _Tpp> inline typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type +# 777 +ellint_2(_Tp __k, _Tpp __phi) +# 778 +{ +# 779 +typedef typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type __type; +# 780 +return __detail::__ellint_2< typename __gnu_cxx::__promote_2< _Tp, _Tpp> ::__type> (__k, __phi); +# 781 +} +# 792 "/usr/include/c++/11/bits/specfun.h" 3 +inline float ellint_3f(float __k, float __nu, float __phi) +# 793 +{ return __detail::__ellint_3< float> (__k, __nu, __phi); } +# 802 +inline long double ellint_3l(long double __k, long double __nu, long double __phi) +# 803 +{ return __detail::__ellint_3< long double> (__k, __nu, __phi); } +# 828 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp, class _Tpn, class _Tpp> inline typename __gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp> ::__type +# 830 +ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi) +# 831 +{ +# 832 +typedef typename __gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp> ::__type __type; +# 833 +return __detail::__ellint_3< typename __gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp> ::__type> (__k, __nu, __phi); +# 834 +} +# 844 "/usr/include/c++/11/bits/specfun.h" 3 +inline float expintf(float __x) +# 845 +{ return __detail::__expint< float> (__x); } +# 854 +inline long double expintl(long double __x) +# 855 +{ return __detail::__expint< long double> (__x); } +# 868 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 870 +expint(_Tp __x) +# 871 +{ +# 872 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 873 +return __detail::__expint< typename __gnu_cxx::__promote< _Tp> ::__type> (__x); +# 874 +} +# 885 "/usr/include/c++/11/bits/specfun.h" 3 +inline float hermitef(unsigned __n, float __x) +# 886 +{ return __detail::__poly_hermite< float> (__n, __x); } +# 895 +inline long double hermitel(unsigned __n, long double __x) +# 896 +{ return __detail::__poly_hermite< long double> (__n, __x); } +# 916 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 918 +hermite(unsigned __n, _Tp __x) +# 919 +{ +# 920 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 921 +return __detail::__poly_hermite< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __x); +# 922 +} +# 933 "/usr/include/c++/11/bits/specfun.h" 3 +inline float laguerref(unsigned __n, float __x) +# 934 +{ return __detail::__laguerre< float> (__n, __x); } +# 943 +inline long double laguerrel(unsigned __n, long double __x) +# 944 +{ return __detail::__laguerre< long double> (__n, __x); } +# 960 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 962 +laguerre(unsigned __n, _Tp __x) +# 963 +{ +# 964 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 965 +return __detail::__laguerre< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __x); +# 966 +} +# 977 "/usr/include/c++/11/bits/specfun.h" 3 +inline float legendref(unsigned __l, float __x) +# 978 +{ return __detail::__poly_legendre_p< float> (__l, __x); } +# 987 +inline long double legendrel(unsigned __l, long double __x) +# 988 +{ return __detail::__poly_legendre_p< long double> (__l, __x); } +# 1005 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1007 +legendre(unsigned __l, _Tp __x) +# 1008 +{ +# 1009 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1010 +return __detail::__poly_legendre_p< typename __gnu_cxx::__promote< _Tp> ::__type> (__l, __x); +# 1011 +} +# 1022 "/usr/include/c++/11/bits/specfun.h" 3 +inline float riemann_zetaf(float __s) +# 1023 +{ return __detail::__riemann_zeta< float> (__s); } +# 1032 +inline long double riemann_zetal(long double __s) +# 1033 +{ return __detail::__riemann_zeta< long double> (__s); } +# 1056 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1058 +riemann_zeta(_Tp __s) +# 1059 +{ +# 1060 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1061 +return __detail::__riemann_zeta< typename __gnu_cxx::__promote< _Tp> ::__type> (__s); +# 1062 +} +# 1073 "/usr/include/c++/11/bits/specfun.h" 3 +inline float sph_besself(unsigned __n, float __x) +# 1074 +{ return __detail::__sph_bessel< float> (__n, __x); } +# 1083 +inline long double sph_bessell(unsigned __n, long double __x) +# 1084 +{ return __detail::__sph_bessel< long double> (__n, __x); } +# 1100 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1102 +sph_bessel(unsigned __n, _Tp __x) +# 1103 +{ +# 1104 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1105 +return __detail::__sph_bessel< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __x); +# 1106 +} +# 1117 "/usr/include/c++/11/bits/specfun.h" 3 +inline float sph_legendref(unsigned __l, unsigned __m, float __theta) +# 1118 +{ return __detail::__sph_legendre< float> (__l, __m, __theta); } +# 1128 "/usr/include/c++/11/bits/specfun.h" 3 +inline long double sph_legendrel(unsigned __l, unsigned __m, long double __theta) +# 1129 +{ return __detail::__sph_legendre< long double> (__l, __m, __theta); } +# 1147 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1149 +sph_legendre(unsigned __l, unsigned __m, _Tp __theta) +# 1150 +{ +# 1151 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1152 +return __detail::__sph_legendre< typename __gnu_cxx::__promote< _Tp> ::__type> (__l, __m, __theta); +# 1153 +} +# 1164 "/usr/include/c++/11/bits/specfun.h" 3 +inline float sph_neumannf(unsigned __n, float __x) +# 1165 +{ return __detail::__sph_neumann< float> (__n, __x); } +# 1174 +inline long double sph_neumannl(unsigned __n, long double __x) +# 1175 +{ return __detail::__sph_neumann< long double> (__n, __x); } +# 1191 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tp> inline typename __gnu_cxx::__promote< _Tp> ::__type +# 1193 +sph_neumann(unsigned __n, _Tp __x) +# 1194 +{ +# 1195 +typedef typename __gnu_cxx::__promote< _Tp> ::__type __type; +# 1196 +return __detail::__sph_neumann< typename __gnu_cxx::__promote< _Tp> ::__type> (__n, __x); +# 1197 +} +# 1202 +} +# 1205 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 1219 "/usr/include/c++/11/bits/specfun.h" 3 +inline float airy_aif(float __x) +# 1220 +{ +# 1221 +float __Ai, __Bi, __Aip, __Bip; +# 1222 +std::__detail::__airy< float> (__x, __Ai, __Bi, __Aip, __Bip); +# 1223 +return __Ai; +# 1224 +} +# 1230 +inline long double airy_ail(long double __x) +# 1231 +{ +# 1232 +long double __Ai, __Bi, __Aip, __Bip; +# 1233 +std::__detail::__airy< long double> (__x, __Ai, __Bi, __Aip, __Bip); +# 1234 +return __Ai; +# 1235 +} +# 1240 +template< class _Tp> inline typename __promote< _Tp> ::__type +# 1242 +airy_ai(_Tp __x) +# 1243 +{ +# 1244 +typedef typename __promote< _Tp> ::__type __type; +# 1245 +__type __Ai, __Bi, __Aip, __Bip; +# 1246 +std::__detail::__airy< typename __promote< _Tp> ::__type> (__x, __Ai, __Bi, __Aip, __Bip); +# 1247 +return __Ai; +# 1248 +} +# 1254 +inline float airy_bif(float __x) +# 1255 +{ +# 1256 +float __Ai, __Bi, __Aip, __Bip; +# 1257 +std::__detail::__airy< float> (__x, __Ai, __Bi, __Aip, __Bip); +# 1258 +return __Bi; +# 1259 +} +# 1265 +inline long double airy_bil(long double __x) +# 1266 +{ +# 1267 +long double __Ai, __Bi, __Aip, __Bip; +# 1268 +std::__detail::__airy< long double> (__x, __Ai, __Bi, __Aip, __Bip); +# 1269 +return __Bi; +# 1270 +} +# 1275 +template< class _Tp> inline typename __promote< _Tp> ::__type +# 1277 +airy_bi(_Tp __x) +# 1278 +{ +# 1279 +typedef typename __promote< _Tp> ::__type __type; +# 1280 +__type __Ai, __Bi, __Aip, __Bip; +# 1281 +std::__detail::__airy< typename __promote< _Tp> ::__type> (__x, __Ai, __Bi, __Aip, __Bip); +# 1282 +return __Bi; +# 1283 +} +# 1295 "/usr/include/c++/11/bits/specfun.h" 3 +inline float conf_hypergf(float __a, float __c, float __x) +# 1296 +{ return std::__detail::__conf_hyperg< float> (__a, __c, __x); } +# 1306 "/usr/include/c++/11/bits/specfun.h" 3 +inline long double conf_hypergl(long double __a, long double __c, long double __x) +# 1307 +{ return std::__detail::__conf_hyperg< long double> (__a, __c, __x); } +# 1325 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tpa, class _Tpc, class _Tp> inline typename __promote_3< _Tpa, _Tpc, _Tp> ::__type +# 1327 +conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x) +# 1328 +{ +# 1329 +typedef typename __promote_3< _Tpa, _Tpc, _Tp> ::__type __type; +# 1330 +return std::__detail::__conf_hyperg< typename __promote_3< _Tpa, _Tpc, _Tp> ::__type> (__a, __c, __x); +# 1331 +} +# 1343 "/usr/include/c++/11/bits/specfun.h" 3 +inline float hypergf(float __a, float __b, float __c, float __x) +# 1344 +{ return std::__detail::__hyperg< float> (__a, __b, __c, __x); } +# 1354 "/usr/include/c++/11/bits/specfun.h" 3 +inline long double hypergl(long double __a, long double __b, long double __c, long double __x) +# 1355 +{ return std::__detail::__hyperg< long double> (__a, __b, __c, __x); } +# 1374 "/usr/include/c++/11/bits/specfun.h" 3 +template< class _Tpa, class _Tpb, class _Tpc, class _Tp> inline typename __promote_4< _Tpa, _Tpb, _Tpc, _Tp> ::__type +# 1376 +hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x) +# 1377 +{ +# 1379 +typedef typename __promote_4< _Tpa, _Tpb, _Tpc, _Tp> ::__type __type; +# 1380 +return std::__detail::__hyperg< typename __promote_4< _Tpa, _Tpb, _Tpc, _Tp> ::__type> (__a, __b, __c, __x); +# 1381 +} +# 1385 +} +# 1938 "/usr/include/c++/11/cmath" 3 +} +# 1388 "/usr/include/c++/11/bits/specfun.h" 3 +#pragma GCC visibility pop +# 38 "/usr/include/c++/11/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; +# 10626 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +namespace std { +# 10627 +constexpr bool signbit(float x); +# 10628 +constexpr bool signbit(double x); +# 10629 +constexpr bool signbit(long double x); +# 10630 +constexpr bool isfinite(float x); +# 10631 +constexpr bool isfinite(double x); +# 10632 +constexpr bool isfinite(long double x); +# 10633 +constexpr bool isnan(float x); +# 10638 +constexpr bool isnan(double x); +# 10640 +constexpr bool isnan(long double x); +# 10641 +constexpr bool isinf(float x); +# 10646 +constexpr bool isinf(double x); +# 10648 +constexpr bool isinf(long double x); +# 10649 +} +# 10805 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +namespace std { +# 10807 +template< class T> extern T __pow_helper(T, int); +# 10808 +template< class T> extern T __cmath_power(T, unsigned); +# 10809 +} +# 10811 +using std::abs; +# 10812 +using std::fabs; +# 10813 +using std::ceil; +# 10814 +using std::floor; +# 10815 +using std::sqrt; +# 10817 +using std::pow; +# 10819 +using std::log; +# 10820 +using std::log10; +# 10821 +using std::fmod; +# 10822 +using std::modf; +# 10823 +using std::exp; +# 10824 +using std::frexp; +# 10825 +using std::ldexp; +# 10826 +using std::asin; +# 10827 +using std::sin; +# 10828 +using std::sinh; +# 10829 +using std::acos; +# 10830 +using std::cos; +# 10831 +using std::cosh; +# 10832 +using std::atan; +# 10833 +using std::atan2; +# 10834 +using std::tan; +# 10835 +using std::tanh; +# 11206 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +namespace std { +# 11215 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern inline long long abs(long long); +# 11225 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern inline long abs(long); +# 11226 +extern constexpr float abs(float); +# 11227 +extern constexpr double abs(double); +# 11228 +extern constexpr float fabs(float); +# 11229 +extern constexpr float ceil(float); +# 11230 +extern constexpr float floor(float); +# 11231 +extern constexpr float sqrt(float); +# 11232 +extern constexpr float pow(float, float); +# 11237 +template< class _Tp, class _Up> extern constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type pow(_Tp, _Up); +# 11247 +extern constexpr float log(float); +# 11248 +extern constexpr float log10(float); +# 11249 +extern constexpr float fmod(float, float); +# 11250 +extern inline float modf(float, float *); +# 11251 +extern constexpr float exp(float); +# 11252 +extern inline float frexp(float, int *); +# 11253 +extern constexpr float ldexp(float, int); +# 11254 +extern constexpr float asin(float); +# 11255 +extern constexpr float sin(float); +# 11256 +extern constexpr float sinh(float); +# 11257 +extern constexpr float acos(float); +# 11258 +extern constexpr float cos(float); +# 11259 +extern constexpr float cosh(float); +# 11260 +extern constexpr float atan(float); +# 11261 +extern constexpr float atan2(float, float); +# 11262 +extern constexpr float tan(float); +# 11263 +extern constexpr float tanh(float); +# 11350 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +} +# 11456 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +namespace std { +# 11457 +constexpr float logb(float a); +# 11458 +constexpr int ilogb(float a); +# 11459 +constexpr float scalbn(float a, int b); +# 11460 +constexpr float scalbln(float a, long b); +# 11461 +constexpr float exp2(float a); +# 11462 +constexpr float expm1(float a); +# 11463 +constexpr float log2(float a); +# 11464 +constexpr float log1p(float a); +# 11465 +constexpr float acosh(float a); +# 11466 +constexpr float asinh(float a); +# 11467 +constexpr float atanh(float a); +# 11468 +constexpr float hypot(float a, float b); +# 11469 +constexpr float cbrt(float a); +# 11470 +constexpr float erf(float a); +# 11471 +constexpr float erfc(float a); +# 11472 +constexpr float lgamma(float a); +# 11473 +constexpr float tgamma(float a); +# 11474 +constexpr float copysign(float a, float b); +# 11475 +constexpr float nextafter(float a, float b); +# 11476 +constexpr float remainder(float a, float b); +# 11477 +inline float remquo(float a, float b, int * quo); +# 11478 +constexpr float round(float a); +# 11479 +constexpr long lround(float a); +# 11480 +constexpr long long llround(float a); +# 11481 +constexpr float trunc(float a); +# 11482 +constexpr float rint(float a); +# 11483 +constexpr long lrint(float a); +# 11484 +constexpr long long llrint(float a); +# 11485 +constexpr float nearbyint(float a); +# 11486 +constexpr float fdim(float a, float b); +# 11487 +constexpr float fma(float a, float b, float c); +# 11488 +constexpr float fmax(float a, float b); +# 11489 +constexpr float fmin(float a, float b); +# 11490 +} +# 11595 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline float exp10(const float a); +# 11597 +static inline float rsqrt(const float a); +# 11599 +static inline float rcbrt(const float a); +# 11601 +static inline float sinpi(const float a); +# 11603 +static inline float cospi(const float a); +# 11605 +static inline void sincospi(const float a, float *const sptr, float *const cptr); +# 11607 +static inline void sincos(const float a, float *const sptr, float *const cptr); +# 11609 +static inline float j0(const float a); +# 11611 +static inline float j1(const float a); +# 11613 +static inline float jn(const int n, const float a); +# 11615 +static inline float y0(const float a); +# 11617 +static inline float y1(const float a); +# 11619 +static inline float yn(const int n, const float a); +# 11621 +__attribute__((unused)) static inline float cyl_bessel_i0(const float a); +# 11623 +__attribute__((unused)) static inline float cyl_bessel_i1(const float a); +# 11625 +static inline float erfinv(const float a); +# 11627 +static inline float erfcinv(const float a); +# 11629 +static inline float normcdfinv(const float a); +# 11631 +static inline float normcdf(const float a); +# 11633 +static inline float erfcx(const float a); +# 11635 +static inline double copysign(const double a, const float b); +# 11637 +static inline double copysign(const float a, const double b); +# 11645 +static inline unsigned min(const unsigned a, const unsigned b); +# 11653 +static inline unsigned min(const int a, const unsigned b); +# 11661 +static inline unsigned min(const unsigned a, const int b); +# 11669 +static inline long min(const long a, const long b); +# 11677 +static inline unsigned long min(const unsigned long a, const unsigned long b); +# 11685 +static inline unsigned long min(const long a, const unsigned long b); +# 11693 +static inline unsigned long min(const unsigned long a, const long b); +# 11701 +static inline long long min(const long long a, const long long b); +# 11709 +static inline unsigned long long min(const unsigned long long a, const unsigned long long b); +# 11717 +static inline unsigned long long min(const long long a, const unsigned long long b); +# 11725 +static inline unsigned long long min(const unsigned long long a, const long long b); +# 11736 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline float min(const float a, const float b); +# 11747 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline double min(const double a, const double b); +# 11757 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline double min(const float a, const double b); +# 11767 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline double min(const double a, const float b); +# 11775 +static inline unsigned max(const unsigned a, const unsigned b); +# 11783 +static inline unsigned max(const int a, const unsigned b); +# 11791 +static inline unsigned max(const unsigned a, const int b); +# 11799 +static inline long max(const long a, const long b); +# 11807 +static inline unsigned long max(const unsigned long a, const unsigned long b); +# 11815 +static inline unsigned long max(const long a, const unsigned long b); +# 11823 +static inline unsigned long max(const unsigned long a, const long b); +# 11831 +static inline long long max(const long long a, const long long b); +# 11839 +static inline unsigned long long max(const unsigned long long a, const unsigned long long b); +# 11847 +static inline unsigned long long max(const long long a, const unsigned long long b); +# 11855 +static inline unsigned long long max(const unsigned long long a, const long long b); +# 11866 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline float max(const float a, const float b); +# 11877 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline double max(const double a, const double b); +# 11887 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline double max(const float a, const double b); +# 11897 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +static inline double max(const double a, const float b); +# 11909 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +extern "C" { +# 11910 +__attribute__((unused)) inline void *__nv_aligned_device_malloc(size_t size, size_t align) +# 11911 +{int volatile ___ = 1;(void)size;(void)align; +# 11914 +::exit(___);} +#if 0 +# 11911 +{ +# 11912 +__attribute__((unused)) void *__nv_aligned_device_malloc_impl(size_t, size_t); +# 11913 +return __nv_aligned_device_malloc_impl(size, align); +# 11914 +} +#endif +# 11915 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/math_functions.h" +} +# 758 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +extern "C" { +# 3215 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline int __vimax_s32_relu(const int a, const int b); +# 3227 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vimax_s16x2_relu(const unsigned a, const unsigned b); +# 3236 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline int __vimin_s32_relu(const int a, const int b); +# 3248 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vimin_s16x2_relu(const unsigned a, const unsigned b); +# 3257 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline int __vimax3_s32(const int a, const int b, const int c); +# 3269 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vimax3_s16x2(const unsigned a, const unsigned b, const unsigned c); +# 3278 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vimax3_u32(const unsigned a, const unsigned b, const unsigned c); +# 3290 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vimax3_u16x2(const unsigned a, const unsigned b, const unsigned c); +# 3299 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline int __vimin3_s32(const int a, const int b, const int c); +# 3311 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vimin3_s16x2(const unsigned a, const unsigned b, const unsigned c); +# 3320 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vimin3_u32(const unsigned a, const unsigned b, const unsigned c); +# 3332 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vimin3_u16x2(const unsigned a, const unsigned b, const unsigned c); +# 3341 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline int __vimax3_s32_relu(const int a, const int b, const int c); +# 3353 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vimax3_s16x2_relu(const unsigned a, const unsigned b, const unsigned c); +# 3362 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline int __vimin3_s32_relu(const int a, const int b, const int c); +# 3374 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vimin3_s16x2_relu(const unsigned a, const unsigned b, const unsigned c); +# 3383 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline int __viaddmax_s32(const int a, const int b, const int c); +# 3395 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __viaddmax_s16x2(const unsigned a, const unsigned b, const unsigned c); +# 3404 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __viaddmax_u32(const unsigned a, const unsigned b, const unsigned c); +# 3416 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __viaddmax_u16x2(const unsigned a, const unsigned b, const unsigned c); +# 3425 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline int __viaddmin_s32(const int a, const int b, const int c); +# 3437 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __viaddmin_s16x2(const unsigned a, const unsigned b, const unsigned c); +# 3446 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __viaddmin_u32(const unsigned a, const unsigned b, const unsigned c); +# 3458 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __viaddmin_u16x2(const unsigned a, const unsigned b, const unsigned c); +# 3468 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline int __viaddmax_s32_relu(const int a, const int b, const int c); +# 3480 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __viaddmax_s16x2_relu(const unsigned a, const unsigned b, const unsigned c); +# 3490 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline int __viaddmin_s32_relu(const int a, const int b, const int c); +# 3502 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __viaddmin_s16x2_relu(const unsigned a, const unsigned b, const unsigned c); +# 3511 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline int __vibmax_s32(const int a, const int b, bool *const pred); +# 3520 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vibmax_u32(const unsigned a, const unsigned b, bool *const pred); +# 3529 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline int __vibmin_s32(const int a, const int b, bool *const pred); +# 3538 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vibmin_u32(const unsigned a, const unsigned b, bool *const pred); +# 3552 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vibmax_s16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo); +# 3566 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vibmax_u16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo); +# 3580 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vibmin_s16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo); +# 3594 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +static inline unsigned __vibmin_u16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo); +# 3601 +} +# 108 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +static inline int __vimax_s32_relu(const int a, const int b) { +# 115 +int ans = max(a, b); +# 117 +return (ans > 0) ? ans : 0; +# 119 +} +# 121 +static inline unsigned __vimax_s16x2_relu(const unsigned a, const unsigned b) { +# 122 +unsigned res; +# 130 +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 131 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 133 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 134 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 137 +short aS_lo = *((short *)(&aU_lo)); +# 138 +short aS_hi = *((short *)(&aU_hi)); +# 140 +short bS_lo = *((short *)(&bU_lo)); +# 141 +short bS_hi = *((short *)(&bU_hi)); +# 144 +short ansS_lo = (short)max(aS_lo, bS_lo); +# 145 +short ansS_hi = (short)max(aS_hi, bS_hi); +# 148 +if (ansS_lo < 0) { ansS_lo = (0); } +# 149 +if (ansS_hi < 0) { ansS_hi = (0); } +# 152 +unsigned short ansU_lo = *((unsigned short *)(&ansS_lo)); +# 153 +unsigned short ansU_hi = *((unsigned short *)(&ansS_hi)); +# 156 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 159 +return res; +# 160 +} +# 162 +static inline int __vimin_s32_relu(const int a, const int b) { +# 169 +int ans = min(a, b); +# 171 +return (ans > 0) ? ans : 0; +# 173 +} +# 175 +static inline unsigned __vimin_s16x2_relu(const unsigned a, const unsigned b) { +# 176 +unsigned res; +# 184 +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 185 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 187 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 188 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 191 +short aS_lo = *((short *)(&aU_lo)); +# 192 +short aS_hi = *((short *)(&aU_hi)); +# 194 +short bS_lo = *((short *)(&bU_lo)); +# 195 +short bS_hi = *((short *)(&bU_hi)); +# 198 +short ansS_lo = (short)min(aS_lo, bS_lo); +# 199 +short ansS_hi = (short)min(aS_hi, bS_hi); +# 202 +if (ansS_lo < 0) { ansS_lo = (0); } +# 203 +if (ansS_hi < 0) { ansS_hi = (0); } +# 206 +unsigned short ansU_lo = *((unsigned short *)(&ansS_lo)); +# 207 +unsigned short ansU_hi = *((unsigned short *)(&ansS_hi)); +# 210 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 213 +return res; +# 214 +} +# 216 +static inline int __vimax3_s32(const int a, const int b, const int c) { +# 226 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +return max(max(a, b), c); +# 228 +} +# 230 +static inline unsigned __vimax3_s16x2(const unsigned a, const unsigned b, const unsigned c) { +# 231 +unsigned res; +# 243 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 244 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 246 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 247 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 249 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 250 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 253 +short aS_lo = *((short *)(&aU_lo)); +# 254 +short aS_hi = *((short *)(&aU_hi)); +# 256 +short bS_lo = *((short *)(&bU_lo)); +# 257 +short bS_hi = *((short *)(&bU_hi)); +# 259 +short cS_lo = *((short *)(&cU_lo)); +# 260 +short cS_hi = *((short *)(&cU_hi)); +# 263 +short ansS_lo = (short)max(max(aS_lo, bS_lo), cS_lo); +# 264 +short ansS_hi = (short)max(max(aS_hi, bS_hi), cS_hi); +# 267 +unsigned short ansU_lo = *((unsigned short *)(&ansS_lo)); +# 268 +unsigned short ansU_hi = *((unsigned short *)(&ansS_hi)); +# 271 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 273 +return res; +# 274 +} +# 276 +static inline unsigned __vimax3_u32(const unsigned a, const unsigned b, const unsigned c) { +# 286 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +return max(max(a, b), c); +# 288 +} +# 290 +static inline unsigned __vimax3_u16x2(const unsigned a, const unsigned b, const unsigned c) { +# 291 +unsigned res; +# 302 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 303 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 305 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 306 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 308 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 309 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 312 +unsigned short ansU_lo = (unsigned short)max(max(aU_lo, bU_lo), cU_lo); +# 313 +unsigned short ansU_hi = (unsigned short)max(max(aU_hi, bU_hi), cU_hi); +# 316 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 319 +return res; +# 320 +} +# 322 +static inline int __vimin3_s32(const int a, const int b, const int c) { +# 332 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +return min(min(a, b), c); +# 334 +} +# 336 +static inline unsigned __vimin3_s16x2(const unsigned a, const unsigned b, const unsigned c) { +# 337 +unsigned res; +# 348 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 349 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 351 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 352 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 354 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 355 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 358 +short aS_lo = *((short *)(&aU_lo)); +# 359 +short aS_hi = *((short *)(&aU_hi)); +# 361 +short bS_lo = *((short *)(&bU_lo)); +# 362 +short bS_hi = *((short *)(&bU_hi)); +# 364 +short cS_lo = *((short *)(&cU_lo)); +# 365 +short cS_hi = *((short *)(&cU_hi)); +# 368 +short ansS_lo = (short)min(min(aS_lo, bS_lo), cS_lo); +# 369 +short ansS_hi = (short)min(min(aS_hi, bS_hi), cS_hi); +# 372 +unsigned short ansU_lo = *((unsigned short *)(&ansS_lo)); +# 373 +unsigned short ansU_hi = *((unsigned short *)(&ansS_hi)); +# 376 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 379 +return res; +# 380 +} +# 382 +static inline unsigned __vimin3_u32(const unsigned a, const unsigned b, const unsigned c) { +# 392 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +return min(min(a, b), c); +# 394 +} +# 396 +static inline unsigned __vimin3_u16x2(const unsigned a, const unsigned b, const unsigned c) { +# 397 +unsigned res; +# 408 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 409 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 411 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 412 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 414 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 415 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 418 +unsigned short ansU_lo = (unsigned short)min(min(aU_lo, bU_lo), cU_lo); +# 419 +unsigned short ansU_hi = (unsigned short)min(min(aU_hi, bU_hi), cU_hi); +# 422 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 425 +return res; +# 426 +} +# 428 +static inline int __vimax3_s32_relu(const int a, const int b, const int c) { +# 438 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +int ans = max(max(a, b), c); +# 440 +return (ans > 0) ? ans : 0; +# 442 +} +# 444 +static inline unsigned __vimax3_s16x2_relu(const unsigned a, const unsigned b, const unsigned c) { +# 445 +unsigned res; +# 456 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 457 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 459 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 460 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 462 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 463 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 466 +short aS_lo = *((short *)(&aU_lo)); +# 467 +short aS_hi = *((short *)(&aU_hi)); +# 469 +short bS_lo = *((short *)(&bU_lo)); +# 470 +short bS_hi = *((short *)(&bU_hi)); +# 472 +short cS_lo = *((short *)(&cU_lo)); +# 473 +short cS_hi = *((short *)(&cU_hi)); +# 476 +short ansS_lo = (short)max(max(aS_lo, bS_lo), cS_lo); +# 477 +short ansS_hi = (short)max(max(aS_hi, bS_hi), cS_hi); +# 480 +if (ansS_lo < 0) { ansS_lo = (0); } +# 481 +if (ansS_hi < 0) { ansS_hi = (0); } +# 484 +unsigned short ansU_lo = *((unsigned short *)(&ansS_lo)); +# 485 +unsigned short ansU_hi = *((unsigned short *)(&ansS_hi)); +# 488 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 491 +return res; +# 492 +} +# 494 +static inline int __vimin3_s32_relu(const int a, const int b, const int c) { +# 504 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +int ans = min(min(a, b), c); +# 506 +return (ans > 0) ? ans : 0; +# 508 +} +# 510 +static inline unsigned __vimin3_s16x2_relu(const unsigned a, const unsigned b, const unsigned c) { +# 511 +unsigned res; +# 522 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 523 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 525 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 526 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 528 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 529 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 532 +short aS_lo = *((short *)(&aU_lo)); +# 533 +short aS_hi = *((short *)(&aU_hi)); +# 535 +short bS_lo = *((short *)(&bU_lo)); +# 536 +short bS_hi = *((short *)(&bU_hi)); +# 538 +short cS_lo = *((short *)(&cU_lo)); +# 539 +short cS_hi = *((short *)(&cU_hi)); +# 542 +short ansS_lo = (short)min(min(aS_lo, bS_lo), cS_lo); +# 543 +short ansS_hi = (short)min(min(aS_hi, bS_hi), cS_hi); +# 546 +if (ansS_lo < 0) { ansS_lo = (0); } +# 547 +if (ansS_hi < 0) { ansS_hi = (0); } +# 550 +unsigned short ansU_lo = *((unsigned short *)(&ansS_lo)); +# 551 +unsigned short ansU_hi = *((unsigned short *)(&ansS_hi)); +# 554 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 557 +return res; +# 558 +} +# 560 +static inline int __viaddmax_s32(const int a, const int b, const int c) { +# 570 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +return max(a + b, c); +# 572 +} +# 574 +static inline unsigned __viaddmax_s16x2(const unsigned a, const unsigned b, const unsigned c) { +# 575 +unsigned res; +# 586 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 587 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 589 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 590 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 592 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 593 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 596 +short aS_lo = *((short *)(&aU_lo)); +# 597 +short aS_hi = *((short *)(&aU_hi)); +# 599 +short bS_lo = *((short *)(&bU_lo)); +# 600 +short bS_hi = *((short *)(&bU_hi)); +# 602 +short cS_lo = *((short *)(&cU_lo)); +# 603 +short cS_hi = *((short *)(&cU_hi)); +# 606 +short ansS_lo = (short)max((short)(aS_lo + bS_lo), cS_lo); +# 607 +short ansS_hi = (short)max((short)(aS_hi + bS_hi), cS_hi); +# 610 +unsigned short ansU_lo = *((unsigned short *)(&ansS_lo)); +# 611 +unsigned short ansU_hi = *((unsigned short *)(&ansS_hi)); +# 614 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 617 +return res; +# 618 +} +# 620 +static inline unsigned __viaddmax_u32(const unsigned a, const unsigned b, const unsigned c) { +# 630 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +return max(a + b, c); +# 632 +} +# 634 +static inline unsigned __viaddmax_u16x2(const unsigned a, const unsigned b, const unsigned c) { +# 635 +unsigned res; +# 646 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 647 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 649 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 650 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 652 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 653 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 656 +unsigned short ansU_lo = (unsigned short)max((unsigned short)(aU_lo + bU_lo), cU_lo); +# 657 +unsigned short ansU_hi = (unsigned short)max((unsigned short)(aU_hi + bU_hi), cU_hi); +# 660 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 663 +return res; +# 664 +} +# 666 +static inline int __viaddmin_s32(const int a, const int b, const int c) { +# 676 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +return min(a + b, c); +# 678 +} +# 680 +static inline unsigned __viaddmin_s16x2(const unsigned a, const unsigned b, const unsigned c) { +# 681 +unsigned res; +# 692 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 693 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 695 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 696 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 698 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 699 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 702 +short aS_lo = *((short *)(&aU_lo)); +# 703 +short aS_hi = *((short *)(&aU_hi)); +# 705 +short bS_lo = *((short *)(&bU_lo)); +# 706 +short bS_hi = *((short *)(&bU_hi)); +# 708 +short cS_lo = *((short *)(&cU_lo)); +# 709 +short cS_hi = *((short *)(&cU_hi)); +# 712 +short ansS_lo = (short)min((short)(aS_lo + bS_lo), cS_lo); +# 713 +short ansS_hi = (short)min((short)(aS_hi + bS_hi), cS_hi); +# 716 +unsigned short ansU_lo = *((unsigned short *)(&ansS_lo)); +# 717 +unsigned short ansU_hi = *((unsigned short *)(&ansS_hi)); +# 720 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 723 +return res; +# 724 +} +# 726 +static inline unsigned __viaddmin_u32(const unsigned a, const unsigned b, const unsigned c) { +# 736 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +return min(a + b, c); +# 738 +} +# 740 +static inline unsigned __viaddmin_u16x2(const unsigned a, const unsigned b, const unsigned c) { +# 741 +unsigned res; +# 752 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 753 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 755 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 756 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 758 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 759 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 762 +unsigned short ansU_lo = (unsigned short)min((unsigned short)(aU_lo + bU_lo), cU_lo); +# 763 +unsigned short ansU_hi = (unsigned short)min((unsigned short)(aU_hi + bU_hi), cU_hi); +# 766 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 769 +return res; +# 770 +} +# 772 +static inline int __viaddmax_s32_relu(const int a, const int b, const int c) { +# 782 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +int ans = max(a + b, c); +# 784 +return (ans > 0) ? ans : 0; +# 786 +} +# 788 +static inline unsigned __viaddmax_s16x2_relu(const unsigned a, const unsigned b, const unsigned c) { +# 789 +unsigned res; +# 800 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 801 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 803 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 804 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 806 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 807 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 810 +short aS_lo = *((short *)(&aU_lo)); +# 811 +short aS_hi = *((short *)(&aU_hi)); +# 813 +short bS_lo = *((short *)(&bU_lo)); +# 814 +short bS_hi = *((short *)(&bU_hi)); +# 816 +short cS_lo = *((short *)(&cU_lo)); +# 817 +short cS_hi = *((short *)(&cU_hi)); +# 820 +short ansS_lo = (short)max((short)(aS_lo + bS_lo), cS_lo); +# 821 +short ansS_hi = (short)max((short)(aS_hi + bS_hi), cS_hi); +# 823 +if (ansS_lo < 0) { ansS_lo = (0); } +# 824 +if (ansS_hi < 0) { ansS_hi = (0); } +# 827 +unsigned short ansU_lo = *((unsigned short *)(&ansS_lo)); +# 828 +unsigned short ansU_hi = *((unsigned short *)(&ansS_hi)); +# 831 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 834 +return res; +# 835 +} +# 837 +static inline int __viaddmin_s32_relu(const int a, const int b, const int c) { +# 847 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +int ans = min(a + b, c); +# 849 +return (ans > 0) ? ans : 0; +# 851 +} +# 853 +static inline unsigned __viaddmin_s16x2_relu(const unsigned a, const unsigned b, const unsigned c) { +# 854 +unsigned res; +# 865 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 866 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 868 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 869 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 871 +unsigned short cU_lo = (unsigned short)(c & 65535U); +# 872 +unsigned short cU_hi = (unsigned short)(c >> 16); +# 875 +short aS_lo = *((short *)(&aU_lo)); +# 876 +short aS_hi = *((short *)(&aU_hi)); +# 878 +short bS_lo = *((short *)(&bU_lo)); +# 879 +short bS_hi = *((short *)(&bU_hi)); +# 881 +short cS_lo = *((short *)(&cU_lo)); +# 882 +short cS_hi = *((short *)(&cU_hi)); +# 885 +short ansS_lo = (short)min((short)(aS_lo + bS_lo), cS_lo); +# 886 +short ansS_hi = (short)min((short)(aS_hi + bS_hi), cS_hi); +# 888 +if (ansS_lo < 0) { ansS_lo = (0); } +# 889 +if (ansS_hi < 0) { ansS_hi = (0); } +# 892 +unsigned short ansU_lo = *((unsigned short *)(&ansS_lo)); +# 893 +unsigned short ansU_hi = *((unsigned short *)(&ansS_hi)); +# 896 +res = (((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16)); +# 899 +return res; +# 900 +} +# 904 +static inline int __vibmax_s32(const int a, const int b, bool *const pred) { +# 918 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +int ans = max(a, b); +# 920 +(*pred) = (a >= b); +# 921 +return ans; +# 923 +} +# 925 +static inline unsigned __vibmax_u32(const unsigned a, const unsigned b, bool *const pred) { +# 939 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned ans = max(a, b); +# 941 +(*pred) = (a >= b); +# 942 +return ans; +# 944 +} +# 947 +static inline int __vibmin_s32(const int a, const int b, bool *const pred) { +# 961 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +int ans = min(a, b); +# 963 +(*pred) = (a <= b); +# 964 +return ans; +# 966 +} +# 969 +static inline unsigned __vibmin_u32(const unsigned a, const unsigned b, bool *const pred) { +# 983 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned ans = min(a, b); +# 985 +(*pred) = (a <= b); +# 986 +return ans; +# 988 +} +# 990 +static inline unsigned __vibmax_s16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo) { +# 1012 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 1013 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 1015 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 1016 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 1019 +short aS_lo = *((short *)(&aU_lo)); +# 1020 +short aS_hi = *((short *)(&aU_hi)); +# 1022 +short bS_lo = *((short *)(&bU_lo)); +# 1023 +short bS_hi = *((short *)(&bU_hi)); +# 1026 +short ansS_lo = (short)max(aS_lo, bS_lo); +# 1027 +short ansS_hi = (short)max(aS_hi, bS_hi); +# 1029 +(*pred_hi) = (aS_hi >= bS_hi); +# 1030 +(*pred_lo) = (aS_lo >= bS_lo); +# 1033 +unsigned short ansU_lo = *((unsigned short *)(&ansS_lo)); +# 1034 +unsigned short ansU_hi = *((unsigned short *)(&ansS_hi)); +# 1037 +unsigned ans = ((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16); +# 1039 +return ans; +# 1041 +} +# 1043 +static inline unsigned __vibmax_u16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo) { +# 1065 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 1066 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 1068 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 1069 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 1072 +unsigned short ansU_lo = (unsigned short)max(aU_lo, bU_lo); +# 1073 +unsigned short ansU_hi = (unsigned short)max(aU_hi, bU_hi); +# 1075 +(*pred_hi) = (aU_hi >= bU_hi); +# 1076 +(*pred_lo) = (aU_lo >= bU_lo); +# 1079 +unsigned ans = ((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16); +# 1081 +return ans; +# 1083 +} +# 1085 +static inline unsigned __vibmin_s16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo) { +# 1107 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 1108 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 1110 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 1111 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 1114 +short aS_lo = *((short *)(&aU_lo)); +# 1115 +short aS_hi = *((short *)(&aU_hi)); +# 1117 +short bS_lo = *((short *)(&bU_lo)); +# 1118 +short bS_hi = *((short *)(&bU_hi)); +# 1121 +short ansS_lo = (short)min(aS_lo, bS_lo); +# 1122 +short ansS_hi = (short)min(aS_hi, bS_hi); +# 1124 +(*pred_hi) = (aS_hi <= bS_hi); +# 1125 +(*pred_lo) = (aS_lo <= bS_lo); +# 1128 +unsigned short ansU_lo = *((unsigned short *)(&ansS_lo)); +# 1129 +unsigned short ansU_hi = *((unsigned short *)(&ansS_hi)); +# 1132 +unsigned ans = ((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16); +# 1134 +return ans; +# 1136 +} +# 1138 +static inline unsigned __vibmin_u16x2(const unsigned a, const unsigned b, bool *const pred_hi, bool *const pred_lo) { +# 1160 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.hpp" +unsigned short aU_lo = (unsigned short)(a & 65535U); +# 1161 +unsigned short aU_hi = (unsigned short)(a >> 16); +# 1163 +unsigned short bU_lo = (unsigned short)(b & 65535U); +# 1164 +unsigned short bU_hi = (unsigned short)(b >> 16); +# 1167 +unsigned short ansU_lo = (unsigned short)min(aU_lo, bU_lo); +# 1168 +unsigned short ansU_hi = (unsigned short)min(aU_hi, bU_hi); +# 1170 +(*pred_hi) = (aU_hi <= bU_hi); +# 1171 +(*pred_lo) = (aU_lo <= bU_lo); +# 1174 +unsigned ans = ((unsigned)ansU_lo) | (((unsigned)ansU_hi) << 16); +# 1176 +return ans; +# 1178 +} +# 89 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/device_atomic_functions.h" +extern "C" { +# 160 +} +# 169 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_double_functions.h" +extern "C" { +# 1142 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 95 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +extern "C" { +# 1508 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +} +# 1515 +__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 +# 1515 +{ } +#endif +# 1517 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +__attribute__((unused)) static inline int syncthreads_count(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1517 +{ } +#endif +# 1519 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +__attribute__((unused)) static inline bool syncthreads_and(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1519 +{ } +#endif +# 1521 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +__attribute__((unused)) static inline bool syncthreads_or(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1521 +{ } +#endif +# 1526 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isGlobal(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1526 +{ } +#endif +# 1527 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isShared(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1527 +{ } +#endif +# 1528 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isConstant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1528 +{ } +#endif +# 1529 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isLocal(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1529 +{ } +#endif +# 1531 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_20_intrinsics.h" +__attribute__((unused)) static inline unsigned __isGridConstant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1531 +{ } +#endif +# 1533 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 1533 +{ } +#endif +# 1534 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 1534 +{ } +#endif +# 1535 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 1535 +{ } +#endif +# 1536 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 1536 +{ } +#endif +# 1538 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 1538 +{ } +#endif +# 1541 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 1541 +{ } +#endif +# 1542 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 1542 +{ } +#endif +# 1543 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 1543 +{ } +#endif +# 1544 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 1544 +{ } +#endif +# 1546 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 1546 +{ } +#endif +# 123 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/sm_30_intrinsics.h" +__attribute__((unused)) static inline unsigned __activemask() {int volatile ___ = 1;::exit(___);} +#if 0 +# 131 +{ } +#endif +# 140 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_80_rt.h" +} +# 92 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __clusterDimIsSpecified() {int volatile ___ = 1;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 98 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +__attribute__((unused)) static inline dim3 __clusterDim() {int volatile ___ = 1;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +__attribute__((unused)) static inline dim3 __clusterRelativeBlockIdx() {int volatile ___ = 1;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 100 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +__attribute__((unused)) static inline dim3 __clusterGridDimInClusters() {int volatile ___ = 1;::exit(___);} +#if 0 +# 100 +{ } +#endif +# 101 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +__attribute__((unused)) static inline dim3 __clusterIdx() {int volatile ___ = 1;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 102 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __clusterRelativeBlockRank() {int volatile ___ = 1;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 103 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +__attribute__((unused)) static inline unsigned __clusterSizeInBlocks() {int volatile ___ = 1;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 104 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void __cluster_barrier_arrive() {int volatile ___ = 1;::exit(___);} +#if 0 +# 104 +{ } +#endif +# 105 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void __cluster_barrier_arrive_relaxed() {int volatile ___ = 1;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 106 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void __cluster_barrier_wait() {int volatile ___ = 1;::exit(___);} +#if 0 +# 106 +{ } +#endif +# 107 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/sm_90_rt.h" +__attribute__((unused)) static inline void __threadfence_cluster() {int volatile ___ = 1;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 109 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 65 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +# 3641 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/crt/device_functions.h" +extern "C" unsigned __cudaPushCallConfiguration(dim3 gridDim, dim3 blockDim, size_t sharedMem = 0, CUstream_st * stream = 0); +# 68 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 +} +# 67 "/usr/include/c++/11/bits/stl_relops.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 71 +namespace rel_ops { +# 85 "/usr/include/c++/11/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 87 +operator!=(const _Tp &__x, const _Tp &__y) +# 88 +{ return !(__x == __y); } +# 98 "/usr/include/c++/11/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 100 +operator>(const _Tp &__x, const _Tp &__y) +# 101 +{ return __y < __x; } +# 111 "/usr/include/c++/11/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 113 +operator<=(const _Tp &__x, const _Tp &__y) +# 114 +{ return !(__y < __x); } +# 124 "/usr/include/c++/11/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 126 +operator>=(const _Tp &__x, const _Tp &__y) +# 127 +{ return !(__x < __y); } +# 128 +} +# 131 +} +# 39 "/usr/include/c++/11/initializer_list" 3 +#pragma GCC visibility push ( default ) +# 43 +namespace std { +# 46 +template< class _E> +# 47 +class initializer_list { +# 50 +public: typedef _E value_type; +# 51 +typedef const _E &reference; +# 52 +typedef const _E &const_reference; +# 53 +typedef size_t size_type; +# 54 +typedef const _E *iterator; +# 55 +typedef const _E *const_iterator; +# 58 +private: iterator _M_array; +# 59 +size_type _M_len; +# 62 +constexpr initializer_list(const_iterator __a, size_type __l) : _M_array(__a), _M_len(__l) +# 63 +{ } +# 66 +public: constexpr initializer_list() noexcept : _M_array((0)), _M_len((0)) +# 67 +{ } +# 71 +constexpr size_type size() const noexcept { return _M_len; } +# 75 +constexpr const_iterator begin() const noexcept { return _M_array; } +# 79 +constexpr const_iterator end() const noexcept { return begin() + size(); } +# 80 +}; +# 88 +template< class _Tp> constexpr const _Tp * +# 90 +begin(initializer_list< _Tp> __ils) noexcept +# 91 +{ return __ils.begin(); } +# 99 +template< class _Tp> constexpr const _Tp * +# 101 +end(initializer_list< _Tp> __ils) noexcept +# 102 +{ return __ils.end(); } +# 103 +} +# 105 +#pragma GCC visibility pop +# 82 "/usr/include/c++/11/utility" 3 +namespace std __attribute((__visibility__("default"))) { +# 87 +template< class _Tp> struct tuple_size; +# 94 +template< class _Tp, class +# 95 +_Up = typename remove_cv< _Tp> ::type, class +# 96 + = typename enable_if< is_same< _Tp, _Up> ::value> ::type, size_t +# 97 + = tuple_size< _Tp> ::value> using __enable_if_has_tuple_size = _Tp; +# 100 +template< class _Tp> +# 101 +struct tuple_size< const __enable_if_has_tuple_size< _Tp> > : public std::tuple_size< _Tp> { +# 102 +}; +# 104 +template< class _Tp> +# 105 +struct tuple_size< volatile __enable_if_has_tuple_size< _Tp> > : public std::tuple_size< _Tp> { +# 106 +}; +# 108 +template< class _Tp> +# 109 +struct tuple_size< const volatile __enable_if_has_tuple_size< _Tp> > : public std::tuple_size< _Tp> { +# 110 +}; +# 113 +template< size_t __i, class _Tp> struct tuple_element; +# 117 +template< size_t __i, class _Tp> using __tuple_element_t = typename tuple_element< __i, _Tp> ::type; +# 120 +template< size_t __i, class _Tp> +# 121 +struct tuple_element< __i, const _Tp> { +# 123 +typedef typename add_const< __tuple_element_t< __i, _Tp> > ::type type; +# 124 +}; +# 126 +template< size_t __i, class _Tp> +# 127 +struct tuple_element< __i, volatile _Tp> { +# 129 +typedef typename add_volatile< __tuple_element_t< __i, _Tp> > ::type type; +# 130 +}; +# 132 +template< size_t __i, class _Tp> +# 133 +struct tuple_element< __i, const volatile _Tp> { +# 135 +typedef typename add_cv< __tuple_element_t< __i, _Tp> > ::type type; +# 136 +}; +# 144 +template< size_t __i, class _Tp> using tuple_element_t = typename tuple_element< __i, _Tp> ::type; +# 151 +template< class _T1, class _T2> +# 152 +struct __is_tuple_like_impl< pair< _T1, _T2> > : public true_type { +# 153 +}; +# 156 +template< class _Tp1, class _Tp2> +# 157 +struct tuple_size< pair< _Tp1, _Tp2> > : public integral_constant< unsigned long, 2UL> { +# 158 +}; +# 161 +template< class _Tp1, class _Tp2> +# 162 +struct tuple_element< 0, pair< _Tp1, _Tp2> > { +# 163 +typedef _Tp1 type; }; +# 166 +template< class _Tp1, class _Tp2> +# 167 +struct tuple_element< 1, pair< _Tp1, _Tp2> > { +# 168 +typedef _Tp2 type; }; +# 170 +template< size_t _Int> struct __pair_get; +# 174 +template<> struct __pair_get< 0UL> { +# 176 +template< class _Tp1, class _Tp2> static constexpr _Tp1 & +# 178 +__get(pair< _Tp1, _Tp2> &__pair) noexcept +# 179 +{ return __pair.first; } +# 181 +template< class _Tp1, class _Tp2> static constexpr _Tp1 && +# 183 +__move_get(pair< _Tp1, _Tp2> &&__pair) noexcept +# 184 +{ return std::forward< _Tp1> ((__pair.first)); } +# 186 +template< class _Tp1, class _Tp2> static constexpr const _Tp1 & +# 188 +__const_get(const pair< _Tp1, _Tp2> &__pair) noexcept +# 189 +{ return __pair.first; } +# 191 +template< class _Tp1, class _Tp2> static constexpr const _Tp1 && +# 193 +__const_move_get(const pair< _Tp1, _Tp2> &&__pair) noexcept +# 194 +{ return std::forward< const _Tp1> ((__pair.first)); } +# 195 +}; +# 198 +template<> struct __pair_get< 1UL> { +# 200 +template< class _Tp1, class _Tp2> static constexpr _Tp2 & +# 202 +__get(pair< _Tp1, _Tp2> &__pair) noexcept +# 203 +{ return __pair.second; } +# 205 +template< class _Tp1, class _Tp2> static constexpr _Tp2 && +# 207 +__move_get(pair< _Tp1, _Tp2> &&__pair) noexcept +# 208 +{ return std::forward< _Tp2> ((__pair.second)); } +# 210 +template< class _Tp1, class _Tp2> static constexpr const _Tp2 & +# 212 +__const_get(const pair< _Tp1, _Tp2> &__pair) noexcept +# 213 +{ return __pair.second; } +# 215 +template< class _Tp1, class _Tp2> static constexpr const _Tp2 && +# 217 +__const_move_get(const pair< _Tp1, _Tp2> &&__pair) noexcept +# 218 +{ return std::forward< const _Tp2> ((__pair.second)); } +# 219 +}; +# 221 +template< size_t _Int, class _Tp1, class _Tp2> constexpr typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type & +# 223 +get(pair< _Tp1, _Tp2> &__in) noexcept +# 224 +{ return __pair_get< _Int> ::__get(__in); } +# 226 +template< size_t _Int, class _Tp1, class _Tp2> constexpr typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type && +# 228 +get(pair< _Tp1, _Tp2> &&__in) noexcept +# 229 +{ return __pair_get< _Int> ::__move_get(std::move(__in)); } +# 231 +template< size_t _Int, class _Tp1, class _Tp2> constexpr const typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type & +# 233 +get(const pair< _Tp1, _Tp2> &__in) noexcept +# 234 +{ return __pair_get< _Int> ::__const_get(__in); } +# 236 +template< size_t _Int, class _Tp1, class _Tp2> constexpr const typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type && +# 238 +get(const pair< _Tp1, _Tp2> &&__in) noexcept +# 239 +{ return __pair_get< _Int> ::__const_move_get(std::move(__in)); } +# 245 +template< class _Tp, class _Up> constexpr _Tp & +# 247 +get(pair< _Tp, _Up> &__p) noexcept +# 248 +{ return __p.first; } +# 250 +template< class _Tp, class _Up> constexpr const _Tp & +# 252 +get(const pair< _Tp, _Up> &__p) noexcept +# 253 +{ return __p.first; } +# 255 +template< class _Tp, class _Up> constexpr _Tp && +# 257 +get(pair< _Tp, _Up> &&__p) noexcept +# 258 +{ return std::move((__p.first)); } +# 260 +template< class _Tp, class _Up> constexpr const _Tp && +# 262 +get(const pair< _Tp, _Up> &&__p) noexcept +# 263 +{ return std::move((__p.first)); } +# 265 +template< class _Tp, class _Up> constexpr _Tp & +# 267 +get(pair< _Up, _Tp> &__p) noexcept +# 268 +{ return __p.second; } +# 270 +template< class _Tp, class _Up> constexpr const _Tp & +# 272 +get(const pair< _Up, _Tp> &__p) noexcept +# 273 +{ return __p.second; } +# 275 +template< class _Tp, class _Up> constexpr _Tp && +# 277 +get(pair< _Up, _Tp> &&__p) noexcept +# 278 +{ return std::move((__p.second)); } +# 280 +template< class _Tp, class _Up> constexpr const _Tp && +# 282 +get(const pair< _Up, _Tp> &&__p) noexcept +# 283 +{ return std::move((__p.second)); } +# 288 +template< class _Tp, class _Up = _Tp> inline _Tp +# 291 +exchange(_Tp &__obj, _Up &&__new_val) +# 292 +{ return std::__exchange(__obj, std::forward< _Up> (__new_val)); } +# 298 +template< size_t ..._Indexes> struct _Index_tuple { }; +# 301 +template< size_t _Num> +# 302 +struct _Build_index_tuple { +# 312 "/usr/include/c++/11/utility" 3 +using __type = _Index_tuple< __integer_pack(_Num)...> ; +# 314 +}; +# 321 +template< class _Tp, _Tp ..._Idx> +# 322 +struct integer_sequence { +# 324 +typedef _Tp value_type; +# 325 +static constexpr size_t size() noexcept { return sizeof...(_Idx); } +# 326 +}; +# 329 +template< class _Tp, _Tp _Num> using make_integer_sequence = integer_sequence< _Tp, __integer_pack(_Num)...> ; +# 338 +template< size_t ..._Idx> using index_sequence = integer_sequence< unsigned long, _Idx...> ; +# 342 +template< size_t _Num> using make_index_sequence = make_integer_sequence< unsigned long, _Num> ; +# 346 +template< class ..._Types> using index_sequence_for = make_index_sequence< sizeof...(_Types)> ; +# 352 +struct in_place_t { +# 353 +explicit in_place_t() = default; +# 354 +}; +# 356 +constexpr inline in_place_t in_place{}; +# 358 +template< class _Tp> struct in_place_type_t { +# 360 +explicit in_place_type_t() = default; +# 361 +}; +# 363 +template< class _Tp> constexpr inline in_place_type_t< _Tp> +# 364 +in_place_type{}; +# 366 +template< size_t _Idx> struct in_place_index_t { +# 368 +explicit in_place_index_t() = default; +# 369 +}; +# 371 +template< size_t _Idx> constexpr inline in_place_index_t< _Idx> +# 372 +in_place_index{}; +# 374 +template< class > constexpr inline bool +# 375 +__is_in_place_type_v = false; +# 377 +template< class _Tp> constexpr inline bool +# 378 +__is_in_place_type_v< in_place_type_t< _Tp> > = true; +# 380 +template< class _Tp> using __is_in_place_type = bool_constant< __is_in_place_type_v< _Tp> > ; +# 384 +template< class _Tp> +# 385 +[[nodiscard]] constexpr add_const_t< _Tp> & +# 387 +as_const(_Tp &__t) noexcept +# 388 +{ return __t; } +# 390 +template < typename _Tp > + void as_const ( const _Tp && ) = delete; +# 477 "/usr/include/c++/11/utility" 3 +} +# 206 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 207 +cudaLaunchKernel(const T * +# 208 +func, dim3 +# 209 +gridDim, dim3 +# 210 +blockDim, void ** +# 211 +args, size_t +# 212 +sharedMem = 0, cudaStream_t +# 213 +stream = 0) +# 215 +{ +# 216 +return ::cudaLaunchKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +# 217 +} +# 277 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class ...ExpTypes, class ...ActTypes> static inline cudaError_t +# 278 +cudaLaunchKernelEx(const cudaLaunchConfig_t * +# 279 +config, void (* +# 280 +kernel)(ExpTypes ...), ActTypes &&... +# 281 +args) +# 283 +{ +# 284 +return [&](ExpTypes ...coercedArgs) { +# 285 +void *pArgs[] = {(&coercedArgs)...}; +# 286 +return ::cudaLaunchKernelExC(config, (const void *)(kernel), pArgs); +# 287 +} (std::forward< ActTypes> (args)...); +# 288 +} +# 340 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 341 +cudaLaunchCooperativeKernel(const T * +# 342 +func, dim3 +# 343 +gridDim, dim3 +# 344 +blockDim, void ** +# 345 +args, size_t +# 346 +sharedMem = 0, cudaStream_t +# 347 +stream = 0) +# 349 +{ +# 350 +return ::cudaLaunchCooperativeKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +# 351 +} +# 384 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +static inline cudaError_t cudaEventCreate(cudaEvent_t * +# 385 +event, unsigned +# 386 +flags) +# 388 +{ +# 389 +return ::cudaEventCreateWithFlags(event, flags); +# 390 +} +# 428 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +static inline cudaError_t cudaGraphInstantiate(cudaGraphExec_t * +# 429 +pGraphExec, cudaGraph_t +# 430 +graph, cudaGraphNode_t * +# 431 +pErrorNode, char * +# 432 +pLogBuffer, size_t +# 433 +bufferSize) +# 435 +{ +# 436 +(void)pErrorNode; +# 437 +(void)pLogBuffer; +# 438 +(void)bufferSize; +# 439 +return ::cudaGraphInstantiate(pGraphExec, graph, 0); +# 440 +} +# 499 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +static inline cudaError_t cudaMallocHost(void ** +# 500 +ptr, size_t +# 501 +size, unsigned +# 502 +flags) +# 504 +{ +# 505 +return ::cudaHostAlloc(ptr, size, flags); +# 506 +} +# 508 +template< class T> static inline cudaError_t +# 509 +cudaHostAlloc(T ** +# 510 +ptr, size_t +# 511 +size, unsigned +# 512 +flags) +# 514 +{ +# 515 +return ::cudaHostAlloc((void **)((void *)ptr), size, flags); +# 516 +} +# 518 +template< class T> static inline cudaError_t +# 519 +cudaHostGetDevicePointer(T ** +# 520 +pDevice, void * +# 521 +pHost, unsigned +# 522 +flags) +# 524 +{ +# 525 +return ::cudaHostGetDevicePointer((void **)((void *)pDevice), pHost, flags); +# 526 +} +# 628 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 629 +cudaMallocManaged(T ** +# 630 +devPtr, size_t +# 631 +size, unsigned +# 632 +flags = 1) +# 634 +{ +# 635 +return ::cudaMallocManaged((void **)((void *)devPtr), size, flags); +# 636 +} +# 646 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> cudaError_t +# 647 +cudaMemAdvise(T * +# 648 +devPtr, size_t +# 649 +count, cudaMemoryAdvise +# 650 +advice, cudaMemLocation +# 651 +location) +# 653 +{ +# 654 +return ::cudaMemAdvise_v2((const void *)devPtr, count, advice, location); +# 655 +} +# 657 +template< class T> static inline cudaError_t +# 658 +cudaMemPrefetchAsync(T * +# 659 +devPtr, size_t +# 660 +count, cudaMemLocation +# 661 +location, unsigned +# 662 +flags, cudaStream_t +# 663 +stream = 0) +# 665 +{ +# 666 +return ::cudaMemPrefetchAsync_v2((const void *)devPtr, count, location, flags, stream); +# 667 +} +# 749 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 750 +cudaStreamAttachMemAsync(cudaStream_t +# 751 +stream, T * +# 752 +devPtr, size_t +# 753 +length = 0, unsigned +# 754 +flags = 4) +# 756 +{ +# 757 +return ::cudaStreamAttachMemAsync(stream, (void *)devPtr, length, flags); +# 758 +} +# 760 +template< class T> inline cudaError_t +# 761 +cudaMalloc(T ** +# 762 +devPtr, size_t +# 763 +size) +# 765 +{ +# 766 +return ::cudaMalloc((void **)((void *)devPtr), size); +# 767 +} +# 769 +template< class T> static inline cudaError_t +# 770 +cudaMallocHost(T ** +# 771 +ptr, size_t +# 772 +size, unsigned +# 773 +flags = 0) +# 775 +{ +# 776 +return cudaMallocHost((void **)((void *)ptr), size, flags); +# 777 +} +# 779 +template< class T> static inline cudaError_t +# 780 +cudaMallocPitch(T ** +# 781 +devPtr, size_t * +# 782 +pitch, size_t +# 783 +width, size_t +# 784 +height) +# 786 +{ +# 787 +return ::cudaMallocPitch((void **)((void *)devPtr), pitch, width, height); +# 788 +} +# 799 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +static inline cudaError_t cudaMallocAsync(void ** +# 800 +ptr, size_t +# 801 +size, cudaMemPool_t +# 802 +memPool, cudaStream_t +# 803 +stream) +# 805 +{ +# 806 +return ::cudaMallocFromPoolAsync(ptr, size, memPool, stream); +# 807 +} +# 809 +template< class T> static inline cudaError_t +# 810 +cudaMallocAsync(T ** +# 811 +ptr, size_t +# 812 +size, cudaMemPool_t +# 813 +memPool, cudaStream_t +# 814 +stream) +# 816 +{ +# 817 +return ::cudaMallocFromPoolAsync((void **)((void *)ptr), size, memPool, stream); +# 818 +} +# 820 +template< class T> static inline cudaError_t +# 821 +cudaMallocAsync(T ** +# 822 +ptr, size_t +# 823 +size, cudaStream_t +# 824 +stream) +# 826 +{ +# 827 +return ::cudaMallocAsync((void **)((void *)ptr), size, stream); +# 828 +} +# 830 +template< class T> static inline cudaError_t +# 831 +cudaMallocFromPoolAsync(T ** +# 832 +ptr, size_t +# 833 +size, cudaMemPool_t +# 834 +memPool, cudaStream_t +# 835 +stream) +# 837 +{ +# 838 +return ::cudaMallocFromPoolAsync((void **)((void *)ptr), size, memPool, stream); +# 839 +} +# 878 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 879 +cudaMemcpyToSymbol(const T & +# 880 +symbol, const void * +# 881 +src, size_t +# 882 +count, size_t +# 883 +offset = 0, cudaMemcpyKind +# 884 +kind = cudaMemcpyHostToDevice) +# 886 +{ +# 887 +return ::cudaMemcpyToSymbol((const void *)(&symbol), src, count, offset, kind); +# 888 +} +# 932 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 933 +cudaMemcpyToSymbolAsync(const T & +# 934 +symbol, const void * +# 935 +src, size_t +# 936 +count, size_t +# 937 +offset = 0, cudaMemcpyKind +# 938 +kind = cudaMemcpyHostToDevice, cudaStream_t +# 939 +stream = 0) +# 941 +{ +# 942 +return ::cudaMemcpyToSymbolAsync((const void *)(&symbol), src, count, offset, kind, stream); +# 943 +} +# 980 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 981 +cudaMemcpyFromSymbol(void * +# 982 +dst, const T & +# 983 +symbol, size_t +# 984 +count, size_t +# 985 +offset = 0, cudaMemcpyKind +# 986 +kind = cudaMemcpyDeviceToHost) +# 988 +{ +# 989 +return ::cudaMemcpyFromSymbol(dst, (const void *)(&symbol), count, offset, kind); +# 990 +} +# 1034 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1035 +cudaMemcpyFromSymbolAsync(void * +# 1036 +dst, const T & +# 1037 +symbol, size_t +# 1038 +count, size_t +# 1039 +offset = 0, cudaMemcpyKind +# 1040 +kind = cudaMemcpyDeviceToHost, cudaStream_t +# 1041 +stream = 0) +# 1043 +{ +# 1044 +return ::cudaMemcpyFromSymbolAsync(dst, (const void *)(&symbol), count, offset, kind, stream); +# 1045 +} +# 1103 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1104 +cudaGraphAddMemcpyNodeToSymbol(cudaGraphNode_t * +# 1105 +pGraphNode, cudaGraph_t +# 1106 +graph, const cudaGraphNode_t * +# 1107 +pDependencies, size_t +# 1108 +numDependencies, const T & +# 1109 +symbol, const void * +# 1110 +src, size_t +# 1111 +count, size_t +# 1112 +offset, cudaMemcpyKind +# 1113 +kind) +# 1114 +{ +# 1115 +return ::cudaGraphAddMemcpyNodeToSymbol(pGraphNode, graph, pDependencies, numDependencies, (const void *)(&symbol), src, count, offset, kind); +# 1116 +} +# 1174 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1175 +cudaGraphAddMemcpyNodeFromSymbol(cudaGraphNode_t * +# 1176 +pGraphNode, cudaGraph_t +# 1177 +graph, const cudaGraphNode_t * +# 1178 +pDependencies, size_t +# 1179 +numDependencies, void * +# 1180 +dst, const T & +# 1181 +symbol, size_t +# 1182 +count, size_t +# 1183 +offset, cudaMemcpyKind +# 1184 +kind) +# 1185 +{ +# 1186 +return ::cudaGraphAddMemcpyNodeFromSymbol(pGraphNode, graph, pDependencies, numDependencies, dst, (const void *)(&symbol), count, offset, kind); +# 1187 +} +# 1225 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1226 +cudaGraphMemcpyNodeSetParamsToSymbol(cudaGraphNode_t +# 1227 +node, const T & +# 1228 +symbol, const void * +# 1229 +src, size_t +# 1230 +count, size_t +# 1231 +offset, cudaMemcpyKind +# 1232 +kind) +# 1233 +{ +# 1234 +return ::cudaGraphMemcpyNodeSetParamsToSymbol(node, (const void *)(&symbol), src, count, offset, kind); +# 1235 +} +# 1273 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1274 +cudaGraphMemcpyNodeSetParamsFromSymbol(cudaGraphNode_t +# 1275 +node, void * +# 1276 +dst, const T & +# 1277 +symbol, size_t +# 1278 +count, size_t +# 1279 +offset, cudaMemcpyKind +# 1280 +kind) +# 1281 +{ +# 1282 +return ::cudaGraphMemcpyNodeSetParamsFromSymbol(node, dst, (const void *)(&symbol), count, offset, kind); +# 1283 +} +# 1331 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1332 +cudaGraphExecMemcpyNodeSetParamsToSymbol(cudaGraphExec_t +# 1333 +hGraphExec, cudaGraphNode_t +# 1334 +node, const T & +# 1335 +symbol, const void * +# 1336 +src, size_t +# 1337 +count, size_t +# 1338 +offset, cudaMemcpyKind +# 1339 +kind) +# 1340 +{ +# 1341 +return ::cudaGraphExecMemcpyNodeSetParamsToSymbol(hGraphExec, node, (const void *)(&symbol), src, count, offset, kind); +# 1342 +} +# 1390 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1391 +cudaGraphExecMemcpyNodeSetParamsFromSymbol(cudaGraphExec_t +# 1392 +hGraphExec, cudaGraphNode_t +# 1393 +node, void * +# 1394 +dst, const T & +# 1395 +symbol, size_t +# 1396 +count, size_t +# 1397 +offset, cudaMemcpyKind +# 1398 +kind) +# 1399 +{ +# 1400 +return ::cudaGraphExecMemcpyNodeSetParamsFromSymbol(hGraphExec, node, dst, (const void *)(&symbol), count, offset, kind); +# 1401 +} +# 1404 +static inline cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphNode_t *hErrorNode_out, cudaGraphExecUpdateResult *updateResult_out) +# 1405 +{ +# 1406 +cudaGraphExecUpdateResultInfo resultInfo; +# 1407 +cudaError_t status = cudaGraphExecUpdate(hGraphExec, hGraph, &resultInfo); +# 1408 +if (hErrorNode_out) { +# 1409 +(*hErrorNode_out) = (resultInfo.errorNode); +# 1410 +} +# 1411 +if (updateResult_out) { +# 1412 +(*updateResult_out) = (resultInfo.result); +# 1413 +} +# 1414 +return status; +# 1415 +} +# 1443 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1444 +cudaUserObjectCreate(cudaUserObject_t * +# 1445 +object_out, T * +# 1446 +objectToWrap, unsigned +# 1447 +initialRefcount, unsigned +# 1448 +flags) +# 1449 +{ +# 1450 +return ::cudaUserObjectCreate(object_out, objectToWrap, [](void * +# 1453 +vpObj) { delete (reinterpret_cast< T *>(vpObj)); } , initialRefcount, flags); +# 1456 +} +# 1458 +template< class T> static inline cudaError_t +# 1459 +cudaUserObjectCreate(cudaUserObject_t * +# 1460 +object_out, T * +# 1461 +objectToWrap, unsigned +# 1462 +initialRefcount, cudaUserObjectFlags +# 1463 +flags) +# 1464 +{ +# 1465 +return cudaUserObjectCreate(object_out, objectToWrap, initialRefcount, (unsigned)flags); +# 1466 +} +# 1493 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1494 +cudaGetSymbolAddress(void ** +# 1495 +devPtr, const T & +# 1496 +symbol) +# 1498 +{ +# 1499 +return ::cudaGetSymbolAddress(devPtr, (const void *)(&symbol)); +# 1500 +} +# 1525 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1526 +cudaGetSymbolSize(size_t * +# 1527 +size, const T & +# 1528 +symbol) +# 1530 +{ +# 1531 +return ::cudaGetSymbolSize(size, (const void *)(&symbol)); +# 1532 +} +# 1577 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 1578 +cudaFuncSetCacheConfig(T * +# 1579 +func, cudaFuncCache +# 1580 +cacheConfig) +# 1582 +{ +# 1583 +return ::cudaFuncSetCacheConfig((const void *)func, cacheConfig); +# 1584 +} +# 1586 +template< class T> +# 1588 +__attribute((deprecated)) static inline cudaError_t +# 1589 +cudaFuncSetSharedMemConfig(T * +# 1590 +func, cudaSharedMemConfig +# 1591 +config) +# 1593 +{ +# 1595 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# 1600 +return ::cudaFuncSetSharedMemConfig((const void *)func, config); +# 1602 +#pragma GCC diagnostic pop +# 1604 +} +# 1636 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> inline cudaError_t +# 1637 +cudaOccupancyMaxActiveBlocksPerMultiprocessor(int * +# 1638 +numBlocks, T +# 1639 +func, int +# 1640 +blockSize, size_t +# 1641 +dynamicSMemSize) +# 1642 +{ +# 1643 +return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void *)func, blockSize, dynamicSMemSize, 0); +# 1644 +} +# 1688 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> inline cudaError_t +# 1689 +cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * +# 1690 +numBlocks, T +# 1691 +func, int +# 1692 +blockSize, size_t +# 1693 +dynamicSMemSize, unsigned +# 1694 +flags) +# 1695 +{ +# 1696 +return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void *)func, blockSize, dynamicSMemSize, flags); +# 1697 +} +# 1702 +class __cudaOccupancyB2DHelper { +# 1703 +size_t n; +# 1705 +public: __cudaOccupancyB2DHelper(size_t n_) : n(n_) { } +# 1706 +size_t operator()(int) +# 1707 +{ +# 1708 +return n; +# 1709 +} +# 1710 +}; +# 1758 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class UnaryFunction, class T> static inline cudaError_t +# 1759 +cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(int * +# 1760 +minGridSize, int * +# 1761 +blockSize, T +# 1762 +func, UnaryFunction +# 1763 +blockSizeToDynamicSMemSize, int +# 1764 +blockSizeLimit = 0, unsigned +# 1765 +flags = 0) +# 1766 +{ +# 1767 +cudaError_t status; +# 1770 +int device; +# 1771 +cudaFuncAttributes attr; +# 1774 +int maxThreadsPerMultiProcessor; +# 1775 +int warpSize; +# 1776 +int devMaxThreadsPerBlock; +# 1777 +int multiProcessorCount; +# 1778 +int funcMaxThreadsPerBlock; +# 1779 +int occupancyLimit; +# 1780 +int granularity; +# 1783 +int maxBlockSize = 0; +# 1784 +int numBlocks = 0; +# 1785 +int maxOccupancy = 0; +# 1788 +int blockSizeToTryAligned; +# 1789 +int blockSizeToTry; +# 1790 +int blockSizeLimitAligned; +# 1791 +int occupancyInBlocks; +# 1792 +int occupancyInThreads; +# 1793 +size_t dynamicSMemSize; +# 1799 +if (((!minGridSize) || (!blockSize)) || (!func)) { +# 1800 +return cudaErrorInvalidValue; +# 1801 +} +# 1807 +status = ::cudaGetDevice(&device); +# 1808 +if (status != (cudaSuccess)) { +# 1809 +return status; +# 1810 +} +# 1812 +status = cudaDeviceGetAttribute(&maxThreadsPerMultiProcessor, cudaDevAttrMaxThreadsPerMultiProcessor, device); +# 1816 +if (status != (cudaSuccess)) { +# 1817 +return status; +# 1818 +} +# 1820 +status = cudaDeviceGetAttribute(&warpSize, cudaDevAttrWarpSize, device); +# 1824 +if (status != (cudaSuccess)) { +# 1825 +return status; +# 1826 +} +# 1828 +status = cudaDeviceGetAttribute(&devMaxThreadsPerBlock, cudaDevAttrMaxThreadsPerBlock, device); +# 1832 +if (status != (cudaSuccess)) { +# 1833 +return status; +# 1834 +} +# 1836 +status = cudaDeviceGetAttribute(&multiProcessorCount, cudaDevAttrMultiProcessorCount, device); +# 1840 +if (status != (cudaSuccess)) { +# 1841 +return status; +# 1842 +} +# 1844 +status = cudaFuncGetAttributes(&attr, func); +# 1845 +if (status != (cudaSuccess)) { +# 1846 +return status; +# 1847 +} +# 1849 +funcMaxThreadsPerBlock = (attr.maxThreadsPerBlock); +# 1855 +occupancyLimit = maxThreadsPerMultiProcessor; +# 1856 +granularity = warpSize; +# 1858 +if (blockSizeLimit == 0) { +# 1859 +blockSizeLimit = devMaxThreadsPerBlock; +# 1860 +} +# 1862 +if (devMaxThreadsPerBlock < blockSizeLimit) { +# 1863 +blockSizeLimit = devMaxThreadsPerBlock; +# 1864 +} +# 1866 +if (funcMaxThreadsPerBlock < blockSizeLimit) { +# 1867 +blockSizeLimit = funcMaxThreadsPerBlock; +# 1868 +} +# 1870 +blockSizeLimitAligned = (((blockSizeLimit + (granularity - 1)) / granularity) * granularity); +# 1872 +for (blockSizeToTryAligned = blockSizeLimitAligned; blockSizeToTryAligned > 0; blockSizeToTryAligned -= granularity) { +# 1876 +if (blockSizeLimit < blockSizeToTryAligned) { +# 1877 +blockSizeToTry = blockSizeLimit; +# 1878 +} else { +# 1879 +blockSizeToTry = blockSizeToTryAligned; +# 1880 +} +# 1882 +dynamicSMemSize = blockSizeToDynamicSMemSize(blockSizeToTry); +# 1884 +status = cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(&occupancyInBlocks, func, blockSizeToTry, dynamicSMemSize, flags); +# 1891 +if (status != (cudaSuccess)) { +# 1892 +return status; +# 1893 +} +# 1895 +occupancyInThreads = (blockSizeToTry * occupancyInBlocks); +# 1897 +if (occupancyInThreads > maxOccupancy) { +# 1898 +maxBlockSize = blockSizeToTry; +# 1899 +numBlocks = occupancyInBlocks; +# 1900 +maxOccupancy = occupancyInThreads; +# 1901 +} +# 1905 +if (occupancyLimit == maxOccupancy) { +# 1906 +break; +# 1907 +} +# 1908 +} +# 1916 +(*minGridSize) = (numBlocks * multiProcessorCount); +# 1917 +(*blockSize) = maxBlockSize; +# 1919 +return status; +# 1920 +} +# 1954 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class UnaryFunction, class T> static inline cudaError_t +# 1955 +cudaOccupancyMaxPotentialBlockSizeVariableSMem(int * +# 1956 +minGridSize, int * +# 1957 +blockSize, T +# 1958 +func, UnaryFunction +# 1959 +blockSizeToDynamicSMemSize, int +# 1960 +blockSizeLimit = 0) +# 1961 +{ +# 1962 +return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, blockSizeToDynamicSMemSize, blockSizeLimit, 0); +# 1963 +} +# 2000 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2001 +cudaOccupancyMaxPotentialBlockSize(int * +# 2002 +minGridSize, int * +# 2003 +blockSize, T +# 2004 +func, size_t +# 2005 +dynamicSMemSize = 0, int +# 2006 +blockSizeLimit = 0) +# 2007 +{ +# 2008 +return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, ((__cudaOccupancyB2DHelper)(dynamicSMemSize)), blockSizeLimit, 0); +# 2009 +} +# 2038 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2039 +cudaOccupancyAvailableDynamicSMemPerBlock(size_t * +# 2040 +dynamicSmemSize, T +# 2041 +func, int +# 2042 +numBlocks, int +# 2043 +blockSize) +# 2044 +{ +# 2045 +return ::cudaOccupancyAvailableDynamicSMemPerBlock(dynamicSmemSize, (const void *)func, numBlocks, blockSize); +# 2046 +} +# 2097 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2098 +cudaOccupancyMaxPotentialBlockSizeWithFlags(int * +# 2099 +minGridSize, int * +# 2100 +blockSize, T +# 2101 +func, size_t +# 2102 +dynamicSMemSize = 0, int +# 2103 +blockSizeLimit = 0, unsigned +# 2104 +flags = 0) +# 2105 +{ +# 2106 +return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, ((__cudaOccupancyB2DHelper)(dynamicSMemSize)), blockSizeLimit, flags); +# 2107 +} +# 2141 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2142 +cudaOccupancyMaxPotentialClusterSize(int * +# 2143 +clusterSize, T * +# 2144 +func, const cudaLaunchConfig_t * +# 2145 +config) +# 2146 +{ +# 2147 +return ::cudaOccupancyMaxPotentialClusterSize(clusterSize, (const void *)func, config); +# 2148 +} +# 2184 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2185 +cudaOccupancyMaxActiveClusters(int * +# 2186 +numClusters, T * +# 2187 +func, const cudaLaunchConfig_t * +# 2188 +config) +# 2189 +{ +# 2190 +return ::cudaOccupancyMaxActiveClusters(numClusters, (const void *)func, config); +# 2191 +} +# 2224 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> inline cudaError_t +# 2225 +cudaFuncGetAttributes(cudaFuncAttributes * +# 2226 +attr, T * +# 2227 +entry) +# 2229 +{ +# 2230 +return ::cudaFuncGetAttributes(attr, (const void *)entry); +# 2231 +} +# 2286 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2287 +cudaFuncSetAttribute(T * +# 2288 +entry, cudaFuncAttribute +# 2289 +attr, int +# 2290 +value) +# 2292 +{ +# 2293 +return ::cudaFuncSetAttribute((const void *)entry, attr, value); +# 2294 +} +# 2318 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2319 +cudaFuncGetName(const char ** +# 2320 +name, const T * +# 2321 +func) +# 2323 +{ +# 2324 +return ::cudaFuncGetName(name, (const void *)func); +# 2325 +} +# 2341 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +template< class T> static inline cudaError_t +# 2342 +cudaGetKernel(cudaKernel_t * +# 2343 +kernelPtr, const T * +# 2344 +entryFuncAddr) +# 2346 +{ +# 2347 +return ::cudaGetKernel(kernelPtr, (const void *)entryFuncAddr); +# 2348 +} +# 2359 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include/cuda_runtime.h" +#pragma GCC diagnostic pop +# 492 "CMakeCUDACompilerId.cu" +const char *info_compiler = ("INFO:compiler[NVIDIA]"); +# 494 +const char *info_simulate = ("INFO:simulate[GNU]"); +# 819 "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') + ((4 / 10000000) % 10)), (('0') + ((4 / 1000000) % 10)), (('0') + ((4 / 100000) % 10)), (('0') + ((4 / 10000) % 10)), (('0') + ((4 / 1000) % 10)), (('0') + ((4 / 100) % 10)), (('0') + ((4 / 10) % 10)), (('0') + (4 % 10)), '.', (('0') + ((131 / 10000000) % 10)), (('0') + ((131 / 1000000) % 10)), (('0') + ((131 / 100000) % 10)), (('0') + ((131 / 10000) % 10)), (('0') + ((131 / 1000) % 10)), (('0') + ((131 / 100) % 10)), (('0') + ((131 / 10) % 10)), (('0') + (131 % 10)), ']', '\000'}; +# 848 "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') + ((11 / 10000000) % 10)), (('0') + ((11 / 1000000) % 10)), (('0') + ((11 / 100000) % 10)), (('0') + ((11 / 10000) % 10)), (('0') + ((11 / 1000) % 10)), (('0') + ((11 / 100) % 10)), (('0') + ((11 / 10) % 10)), (('0') + (11 % 10)), '.', (('0') + ((4 / 10000000) % 10)), (('0') + ((4 / 1000000) % 10)), (('0') + ((4 / 100000) % 10)), (('0') + ((4 / 10000) % 10)), (('0') + ((4 / 1000) % 10)), (('0') + ((4 / 100) % 10)), (('0') + ((4 / 10) % 10)), (('0') + (4 % 10)), ']', '\000'}; +# 868 +const char *info_platform = ("INFO:platform[Linux]"); +# 869 +const char *info_arch = ("INFO:arch[]"); +# 874 +const char *info_host_compiler = ("INFO:host_compiler[GNU]"); +# 879 +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') + ((11 / 10000000) % 10)), (('0') + ((11 / 1000000) % 10)), (('0') + ((11 / 100000) % 10)), (('0') + ((11 / 10000) % 10)), (('0') + ((11 / 1000) % 10)), (('0') + ((11 / 100) % 10)), (('0') + ((11 / 10) % 10)), (('0') + (11 % 10)), '.', (('0') + ((4 / 10000000) % 10)), (('0') + ((4 / 1000000) % 10)), (('0') + ((4 / 100000) % 10)), (('0') + ((4 / 10000) % 10)), (('0') + ((4 / 1000) % 10)), (('0') + ((4 / 100) % 10)), (('0') + ((4 / 10) % 10)), (('0') + (4 % 10)), '.', (('0') + ((0 / 10000000) % 10)), (('0') + ((0 / 1000000) % 10)), (('0') + ((0 / 100000) % 10)), (('0') + ((0 / 10000) % 10)), (('0') + ((0 / 1000) % 10)), (('0') + ((0 / 100) % 10)), (('0') + ((0 / 10) % 10)), (('0') + (0 % 10)), ']', '\000'}; +# 911 "CMakeCUDACompilerId.cu" +const char *info_language_standard_default = ("INFO:standard_default[17]"); +# 929 +const char *info_language_extensions_default = ("INFO:extensions_default[ON]"); +# 940 +int main(int argc, char *argv[]) +# 941 +{ +# 942 +int require = 0; +# 943 +require += (info_compiler[argc]); +# 944 +require += (info_platform[argc]); +# 946 +require += (info_version[argc]); +# 949 +require += (info_simulate[argc]); +# 952 +require += (info_simulate_version[argc]); +# 955 +require += (info_host_compiler[argc]); +# 958 +require += (info_host_compiler_version[argc]); +# 960 +require += (info_language_standard_default[argc]); +# 961 +require += (info_language_extensions_default[argc]); +# 962 +(void)argv; +# 963 +return require; +# 964 +} + +# 1 "CMakeCUDACompilerId.cudafe1.stub.c" +#define _NV_ANON_NAMESPACE _GLOBAL__N__804f93ba_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/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.gpu b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.gpu new file mode 100644 index 0000000..5f64d40 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.gpu @@ -0,0 +1,379 @@ +typedef char __nv_bool; +# 209 "/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h" 3 +typedef unsigned long size_t; +#include "crt/device_runtime.h" +# 280 "/usr/include/x86_64-linux-gnu/c++/11/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 +#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 diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.stub.c b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.stub.c new file mode 100644 index 0000000..2ebe7e6 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/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/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin new file mode 100644 index 0000000..194326b Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin.c b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin.c new file mode 100644 index 0000000..2def4bc --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/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,0x0000000000000448,0x0000004801010002,0x0000000000000368\n" +".quad 0x0000000000000000,0x0000003400010007,0x0000000000000000,0x0000000000000011\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000000000000,0x33010102464c457f\n" +".quad 0x0000000000000007,0x0000007c00be0002,0x0000000000000000,0x00000000000002f8\n" +".quad 0x0000000000000178,0x0038004000340534,0x0001000600400002,0x7472747368732e00\n" +".quad 0x747274732e006261,0x746d79732e006261,0x746d79732e006261,0x78646e68735f6261\n" +".quad 0x666e692e766e2e00,0x61632e766e2e006f,0x0068706172676c6c,0x746f72702e766e2e\n" +".quad 0x6e2e00657079746f,0x63612e6c65722e76,0x732e00006e6f6974,0x0062617472747368\n" +".quad 0x006261747274732e,0x006261746d79732e,0x5f6261746d79732e,0x6e2e0078646e6873\n" +".quad 0x2e006f666e692e76,0x676c6c61632e766e,0x766e2e0068706172,0x79746f746f72702e\n" +".quad 0x722e766e2e006570,0x6f697463612e6c65,0x000000000000006e,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0004000300000032,0x0000000000000000\n" +".quad 0x0000000000000000,0x000500030000004e,0x0000000000000000,0x0000000000000000\n" +".quad 0xffffffff00000000,0xfffffffe00000000,0xfffffffd00000000,0xfffffffc00000000\n" +".quad 0x0000000000000073,0x3605002511000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000300000001,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000040,0x000000000000005d,0x0000000000000000\n" +".quad 0x0000000000000001,0x0000000000000000,0x000000030000000b,0x0000000000000000\n" +".quad 0x0000000000000000,0x000000000000009d,0x000000000000005d,0x0000000000000000\n" +".quad 0x0000000000000001,0x0000000000000000,0x0000000200000013,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000100,0x0000000000000048,0x0000000300000002\n" +".quad 0x0000000000000008,0x0000000000000018,0x7000000100000032,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000148,0x0000000000000020,0x0000000000000003\n" +".quad 0x0000000000000004,0x0000000000000008,0x7000000b0000004e,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000168,0x0000000000000010,0x0000000000000000\n" +".quad 0x0000000000000008,0x0000000000000008,0x0000000500000006,0x00000000000002f8\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000000000070,0x0000000000000070\n" +".quad 0x0000000000000008,0x0000000500000001,0x00000000000002f8,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000070,0x0000000000000070,0x0000000000000008\n" +".quad 0x0000005801010001,0x0000000000000040,0x0000004800000039,0x0000003400080004\n" +".quad 0x0000000000000000,0x0000000000002011,0x0000000000000000,0x0000000000000044\n" +".quad 0x0000000000000000,0x0000000000000050,0x0000000000000000,0x22f000032f2f0a3c\n" +".quad 0x6f69737265762e0a,0x742e0a342e38206e,0x6d73207465677261,0x6464612e0a32355f\n" +".quad 0x7a69735f73736572, 0x0a0a0a0a34362065, 0x0000000000000000\n" +".text\n"); +#ifdef __cplusplus +extern "C" { +#endif +extern const unsigned long long fatbinData[139]; +#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/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.module_id b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.module_id new file mode 100644 index 0000000..3b2d605 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.module_id @@ -0,0 +1 @@ +_804f93ba_22_CMakeCUDACompilerId_cu_bd57c623 \ No newline at end of file diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.o new file mode 100644 index 0000000..32a11cc Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.ptx b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.ptx new file mode 100644 index 0000000..4fa6b10 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.ptx @@ -0,0 +1,14 @@ +// +// Generated by NVIDIA NVVM Compiler +// +// Compiler Build ID: CL-34097967 +// Cuda compilation tools, release 12.4, V12.4.131 +// Based on NVVM 7.0.1 +// + +.version 8.4 +.target sm_52 +.address_size 64 + + + diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.sm_52.cubin b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.sm_52.cubin new file mode 100644 index 0000000..894b6aa Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/CMakeCUDACompilerId.sm_52.cubin differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.fatbin b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.fatbin new file mode 100644 index 0000000..e693947 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.fatbin differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.fatbin.c b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.fatbin.c new file mode 100644 index 0000000..4bba780 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/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,0x00000000000003b0,0x0000004801010002,0x0000000000000368\n" +".quad 0x0000000000000000,0x0000003400010007,0x0000000000000000,0x0000000000000011\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000000000000,0x33010102464c457f\n" +".quad 0x0000000000000007,0x0000007c00be0002,0x0000000000000000,0x00000000000002f8\n" +".quad 0x0000000000000178,0x0038004000340534,0x0001000600400002,0x7472747368732e00\n" +".quad 0x747274732e006261,0x746d79732e006261,0x746d79732e006261,0x78646e68735f6261\n" +".quad 0x666e692e766e2e00,0x61632e766e2e006f,0x0068706172676c6c,0x746f72702e766e2e\n" +".quad 0x6e2e00657079746f,0x63612e6c65722e76,0x732e00006e6f6974,0x0062617472747368\n" +".quad 0x006261747274732e,0x006261746d79732e,0x5f6261746d79732e,0x6e2e0078646e6873\n" +".quad 0x2e006f666e692e76,0x676c6c61632e766e,0x766e2e0068706172,0x79746f746f72702e\n" +".quad 0x722e766e2e006570,0x6f697463612e6c65,0x000000000000006e,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0004000300000032,0x0000000000000000\n" +".quad 0x0000000000000000,0x000500030000004e,0x0000000000000000,0x0000000000000000\n" +".quad 0xffffffff00000000,0xfffffffe00000000,0xfffffffd00000000,0xfffffffc00000000\n" +".quad 0x0000000000000073,0x3605002511000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000300000001,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000040,0x000000000000005d,0x0000000000000000\n" +".quad 0x0000000000000001,0x0000000000000000,0x000000030000000b,0x0000000000000000\n" +".quad 0x0000000000000000,0x000000000000009d,0x000000000000005d,0x0000000000000000\n" +".quad 0x0000000000000001,0x0000000000000000,0x0000000200000013,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000100,0x0000000000000048,0x0000000300000002\n" +".quad 0x0000000000000008,0x0000000000000018,0x7000000100000032,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000148,0x0000000000000020,0x0000000000000003\n" +".quad 0x0000000000000004,0x0000000000000008,0x7000000b0000004e,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000168,0x0000000000000010,0x0000000000000000\n" +".quad 0x0000000000000008,0x0000000000000008,0x0000000500000006,0x00000000000002f8\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000000000070,0x0000000000000070\n" +".quad 0x0000000000000008,0x0000000500000001,0x00000000000002f8,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000070,0x0000000000000070,0x0000000000000008\n" +".text\n"); +#ifdef __cplusplus +extern "C" { +#endif +extern const unsigned long long fatbinData[120]; +#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/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.o new file mode 100644 index 0000000..dae5446 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.reg.c b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.reg.c new file mode 100644 index 0000000..af69ecb --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.reg.c @@ -0,0 +1 @@ +#define NUM_PRELINKED_OBJECTS 0 diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.sm_52.cubin b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.sm_52.cubin new file mode 100644 index 0000000..894b6aa Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/tmp/a_dlink.sm_52.cubin differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..b35f567 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,949 @@ +/* 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(__RENESAS__) +# define COMPILER_ID "Renesas" +/* __RENESAS_VERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__RENESAS_VERSION__ >> 24 & 0xFF) +# define COMPILER_VERSION_MINOR HEX(__RENESAS_VERSION__ >> 16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__RENESAS_VERSION__ >> 8 & 0xFF) + +#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 + +#elif defined(__DCC__) && defined(_DIAB_TOOL) +# define COMPILER_ID "Diab" + # define COMPILER_VERSION_MAJOR DEC(__VERSION_MAJOR_NUMBER__) + # define COMPILER_VERSION_MINOR DEC(__VERSION_MINOR_NUMBER__) + # define COMPILER_VERSION_PATCH DEC(__VERSION_ARCH_FEATURE_NUMBER__) + # define COMPILER_VERSION_TWEAK DEC(__VERSION_BUG_FIX_NUMBER__) + + + +/* 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 + +#elif defined(__RENESAS__) +# if defined(__CCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__CCRL__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__CCRH__) +# define ARCHITECTURE_ID "RH850" + +# 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(__RENESAS__)) && \ + !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/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCXX/a.out b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCXX/a.out new file mode 100755 index 0000000..f42a64b Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCXX/a.out differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CMakeConfigureLog.yaml b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CMakeConfigureLog.yaml new file mode 100644 index 0000000..bb4a7f4 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CMakeConfigureLog.yaml @@ -0,0 +1,3018 @@ + +--- +events: + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineSystem.cmake:12 (find_program)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_UNAME" + description: "Path to a program." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: true + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "uname" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/uname" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/uname" + - "/home/richard/miniconda3/envs/bilateral-cuda124/uname" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/uname" + - "/home/richard/.npm-global/bin/uname" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/uname" + - "/home/richard/.local/bin/uname" + - "/home/richard/miniconda3/condabin/uname" + - "/home/richard/.cargo/bin/uname" + - "/usr/local/sbin/uname" + - "/usr/local/bin/uname" + - "/usr/sbin/uname" + found: "/usr/bin/uname" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "message-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineSystem.cmake:212 (message)" + - "CMakeLists.txt:2 (project)" + message: | + The system is: Linux - 6.6.87.2-microsoft-standard-WSL2 - x86_64 + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeNinjaFindMake.cmake:5 (find_program)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_MAKE_PROGRAM" + description: "Program used to build from build.ninja files." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: true + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "ninja-build" + - "ninja" + - "samu" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/ninja-build" + found: "/home/richard/miniconda3/envs/bilateral-cuda124/bin/ninja" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompiler.cmake:73 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:39 (_cmake_find_compiler)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_CUDA_COMPILER" + description: "CUDA compiler" + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: true + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "nvcc" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + found: "/home/richard/miniconda3/envs/bilateral-cuda124/bin/nvcc" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "message-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:1290 (message)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:99 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)" + - "CMakeLists.txt:2 (project)" + message: | + Checking whether the CUDA compiler is NVIDIA using "" matched "nvcc: [^ + ]+ Cuda compiler driver": + nvcc: NVIDIA (R) Cuda compiler driver + Copyright (c) 2005-2024 NVIDIA Corporation + Built on Thu_Mar_28_02:18:24_PDT_2024 + Cuda compilation tools, release 12.4, V12.4.131 + Build cuda_12.4.r12.4/compiler.34097967_0 + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:462 (find_file)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:500 (CMAKE_DETERMINE_COMPILER_ID_WRITE)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:8 (CMAKE_DETERMINE_COMPILER_ID_BUILD)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:53 (__determine_compiler_id_test)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:163 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:2 (project)" + mode: "file" + variable: "src_in" + description: "Path to a file." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: true + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "CMakeCUDACompilerId.cu.in" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/" + found: "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCUDACompilerId.cu.in" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "message-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:53 (__determine_compiler_id_test)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:163 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:2 (project)" + message: | + Compiling the CUDA compiler identification source file "CMakeCUDACompilerId.cu" succeeded. + Compiler: /home/richard/miniconda3/envs/bilateral-cuda124/bin/nvcc + Build flags: + Id flags: --keep;--keep-dir;tmp -v + + The output was: + 0 + #$ _NVVM_BRANCH_=nvvm + #$ _NVVM_BRANCH_SUFFIX_= + #$ _SPACE_= + #$ _CUDART_=cudart + #$ _HERE_=/home/richard/miniconda3/envs/bilateral-cuda124/bin + #$ _THERE_=/home/richard/miniconda3/envs/bilateral-cuda124/bin + #$ _TARGET_SIZE_= + #$ _TARGET_DIR_= + #$ _TARGET_SIZE_=64 + #$ TOP=/home/richard/miniconda3/envs/bilateral-cuda124/bin/.. + #$ NVVMIR_LIBRARY_DIR=/home/richard/miniconda3/envs/bilateral-cuda124/bin/../nvvm/libdevice + #$ LD_LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib:/home/richard/miniconda3/envs/bilateral-cuda124/lib:/usr/lib/wsl/lib:/home/richard/miniconda3/envs/bilateral-cuda124/lib + #$ PATH=/home/richard/miniconda3/envs/bilateral-cuda124/bin/../nvvm/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/.npm-global/bin:/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli:/home/richard/.npm-global/bin:/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli:/home/richard/.npm-global/bin:/home/richard/.local/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/miniconda3/condabin:/home/richard/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/usr/local/go/bin:/home/richard/go/bin:/usr/local/go/bin:/home/richard/go/bin:/usr/local/go/bin:/home/richard/go/bin + #$ INCLUDES="-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" + #$ LIBRARIES= "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" + #$ CUDAFE_FLAGS= + #$ PTXAS_FLAGS= + #$ rm tmp/a_dlink.reg.c + #$ gcc -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -D__CUDACC__ -D__NVCC__ "-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" + #$ cudafe++ --c++17 --gnu_version=110400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/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" + #$ gcc -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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" + #$ cicc --c++17 --gnu_version=110400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/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" + #$ gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -Wno-psabi "-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o" + #$ nvlink -m64 --arch=sm_52 --register-link-binaries="tmp/a_dlink.reg.c" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "gcc" + #$ 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" + #$ gcc -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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -m64 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/crt/link.stub" -o "tmp/a_dlink.o" + #$ g++ -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCUDA/a.out + The host compiler identification is GNU + + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:186 (include)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_AR" + description: "Path to a program." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: false + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "ar" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/ar" + - "/home/richard/.npm-global/bin/ar" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/ar" + - "/home/richard/.local/bin/ar" + - "/home/richard/miniconda3/condabin/ar" + - "/home/richard/.cargo/bin/ar" + - "/usr/local/sbin/ar" + - "/usr/local/bin/ar" + - "/usr/sbin/ar" + found: "/usr/bin/ar" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:186 (include)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_RANLIB" + description: "Path to a program." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: false + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "ranlib" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/ranlib" + - "/home/richard/.npm-global/bin/ranlib" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/ranlib" + - "/home/richard/.local/bin/ranlib" + - "/home/richard/miniconda3/condabin/ranlib" + - "/home/richard/.cargo/bin/ranlib" + - "/usr/local/sbin/ranlib" + - "/usr/local/bin/ranlib" + - "/usr/sbin/ranlib" + found: "/usr/bin/ranlib" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:186 (include)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_STRIP" + description: "Path to a program." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: false + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "strip" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/strip" + - "/home/richard/.npm-global/bin/strip" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/strip" + - "/home/richard/.local/bin/strip" + - "/home/richard/miniconda3/condabin/strip" + - "/home/richard/.cargo/bin/strip" + - "/usr/local/sbin/strip" + - "/usr/local/bin/strip" + - "/usr/sbin/strip" + found: "/usr/bin/strip" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:186 (include)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_LINKER" + description: "Path to a program." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: false + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "ld" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/ld" + - "/home/richard/.npm-global/bin/ld" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/ld" + - "/home/richard/.local/bin/ld" + - "/home/richard/miniconda3/condabin/ld" + - "/home/richard/.cargo/bin/ld" + - "/usr/local/sbin/ld" + - "/usr/local/bin/ld" + - "/usr/sbin/ld" + found: "/usr/bin/ld" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:186 (include)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_NM" + description: "Path to a program." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: false + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "nm" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/nm" + - "/home/richard/.npm-global/bin/nm" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/nm" + - "/home/richard/.local/bin/nm" + - "/home/richard/miniconda3/condabin/nm" + - "/home/richard/.cargo/bin/nm" + - "/usr/local/sbin/nm" + - "/usr/local/bin/nm" + - "/usr/sbin/nm" + found: "/usr/bin/nm" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:186 (include)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_OBJDUMP" + description: "Path to a program." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: false + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "objdump" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/objdump" + - "/home/richard/.npm-global/bin/objdump" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/objdump" + - "/home/richard/.local/bin/objdump" + - "/home/richard/miniconda3/condabin/objdump" + - "/home/richard/.cargo/bin/objdump" + - "/usr/local/sbin/objdump" + - "/usr/local/bin/objdump" + - "/usr/sbin/objdump" + found: "/usr/bin/objdump" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:186 (include)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_OBJCOPY" + description: "Path to a program." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: false + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "objcopy" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/objcopy" + - "/home/richard/.npm-global/bin/objcopy" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/objcopy" + - "/home/richard/.local/bin/objcopy" + - "/home/richard/miniconda3/condabin/objcopy" + - "/home/richard/.cargo/bin/objcopy" + - "/usr/local/sbin/objcopy" + - "/usr/local/bin/objcopy" + - "/usr/sbin/objcopy" + found: "/usr/bin/objcopy" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:186 (include)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_READELF" + description: "Path to a program." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: false + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "readelf" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/readelf" + - "/home/richard/.npm-global/bin/readelf" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/readelf" + - "/home/richard/.local/bin/readelf" + - "/home/richard/miniconda3/condabin/readelf" + - "/home/richard/.cargo/bin/readelf" + - "/usr/local/sbin/readelf" + - "/usr/local/bin/readelf" + - "/usr/sbin/readelf" + found: "/usr/bin/readelf" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:186 (include)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_DLLTOOL" + description: "Path to a program." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: false + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "dlltool" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/dlltool" + - "/home/richard/.npm-global/bin/dlltool" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/dlltool" + - "/home/richard/.local/bin/dlltool" + - "/home/richard/miniconda3/condabin/dlltool" + - "/home/richard/.cargo/bin/dlltool" + - "/usr/local/sbin/dlltool" + - "/usr/local/bin/dlltool" + - "/usr/sbin/dlltool" + - "/usr/bin/dlltool" + - "/sbin/dlltool" + - "/bin/dlltool" + - "/usr/games/dlltool" + - "/usr/local/games/dlltool" + - "/usr/lib/wsl/lib/dlltool" + - "/usr/local/go/bin/dlltool" + - "/home/richard/go/bin/dlltool" + found: false + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:186 (include)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_ADDR2LINE" + description: "Path to a program." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: false + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "addr2line" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/addr2line" + - "/home/richard/.npm-global/bin/addr2line" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/addr2line" + - "/home/richard/.local/bin/addr2line" + - "/home/richard/miniconda3/condabin/addr2line" + - "/home/richard/.cargo/bin/addr2line" + - "/usr/local/sbin/addr2line" + - "/usr/local/bin/addr2line" + - "/usr/sbin/addr2line" + found: "/usr/bin/addr2line" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:186 (include)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_TAPI" + description: "Path to a program." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: false + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "tapi" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/tapi" + - "/home/richard/.npm-global/bin/tapi" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/tapi" + - "/home/richard/.local/bin/tapi" + - "/home/richard/miniconda3/condabin/tapi" + - "/home/richard/.cargo/bin/tapi" + - "/usr/local/sbin/tapi" + - "/usr/local/bin/tapi" + - "/usr/sbin/tapi" + - "/usr/bin/tapi" + - "/sbin/tapi" + - "/bin/tapi" + - "/usr/games/tapi" + - "/usr/local/games/tapi" + - "/usr/lib/wsl/lib/tapi" + - "/usr/local/go/bin/tapi" + - "/home/richard/go/bin/tapi" + found: false + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeNVCCParseImplicitInfo.cmake:97 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:295 (cmake_nvcc_parse_implicit_info)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "_nvcc_find_host_link_launcher" + description: "Path to a program." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: true + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "g++" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/nvvm/bin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/nvvm/bin/g++" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/g++" + - "/home/richard/.npm-global/bin/g++" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/g++" + - "/home/richard/.local/bin/g++" + - "/home/richard/miniconda3/condabin/g++" + - "/home/richard/.cargo/bin/g++" + - "/usr/local/sbin/g++" + - "/usr/local/bin/g++" + - "/usr/sbin/g++" + found: "/usr/bin/g++" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "message-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeNVCCParseImplicitInfo.cmake:136 (message)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:295 (cmake_nvcc_parse_implicit_info)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CUDA nvcc implicit link information: + found 'PATH=' string: [/home/richard/miniconda3/envs/bilateral-cuda124/bin/../nvvm/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/.npm-global/bin:/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli:/home/richard/.npm-global/bin:/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli:/home/richard/.npm-global/bin:/home/richard/.local/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/miniconda3/condabin:/home/richard/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/usr/local/go/bin:/home/richard/go/bin:/usr/local/go/bin:/home/richard/go/bin:/usr/local/go/bin:/home/richard/go/bin] + found 'LIBRARIES=' string: ["-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib"] + found 'INCLUDES=' string: ["-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" ] + no 'SYSTEM_INCLUDES=' string found in nvcc output: + #$ _NVVM_BRANCH_=nvvm + #$ _NVVM_BRANCH_SUFFIX_= + #$ _SPACE_= + #$ _CUDART_=cudart + #$ _HERE_=/home/richard/miniconda3/envs/bilateral-cuda124/bin + #$ _THERE_=/home/richard/miniconda3/envs/bilateral-cuda124/bin + #$ _TARGET_SIZE_= + #$ _TARGET_DIR_= + #$ _TARGET_SIZE_=64 + #$ TOP=/home/richard/miniconda3/envs/bilateral-cuda124/bin/.. + #$ NVVMIR_LIBRARY_DIR=/home/richard/miniconda3/envs/bilateral-cuda124/bin/../nvvm/libdevice + #$ LD_LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib:/home/richard/miniconda3/envs/bilateral-cuda124/lib:/usr/lib/wsl/lib:/home/richard/miniconda3/envs/bilateral-cuda124/lib + #$ PATH=/home/richard/miniconda3/envs/bilateral-cuda124/bin/../nvvm/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/.npm-global/bin:/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli:/home/richard/.npm-global/bin:/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli:/home/richard/.npm-global/bin:/home/richard/.local/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/miniconda3/condabin:/home/richard/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/usr/local/go/bin:/home/richard/go/bin:/usr/local/go/bin:/home/richard/go/bin:/usr/local/go/bin:/home/richard/go/bin + #$ INCLUDES="-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" + #$ LIBRARIES= "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" + #$ CUDAFE_FLAGS= + #$ PTXAS_FLAGS= + #$ rm tmp/a_dlink.reg.c + #$ gcc -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -D__CUDACC__ -D__NVCC__ "-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" + #$ cudafe++ --c++17 --gnu_version=110400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/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" + #$ gcc -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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" + #$ cicc --c++17 --gnu_version=110400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/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" + #$ gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -Wno-psabi "-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o" + #$ nvlink -m64 --arch=sm_52 --register-link-binaries="tmp/a_dlink.reg.c" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "gcc" + #$ 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" + #$ gcc -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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -m64 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/crt/link.stub" -o "tmp/a_dlink.o" + #$ g++ -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" + + considering line: [#$ rm tmp/a_dlink.reg.c] + considering line: [gcc -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -D__CUDACC__ -D__NVCC__ "-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: [cudafe++ --c++17 --gnu_version=110400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/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: [gcc -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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" ] + considering line: [cicc --c++17 --gnu_version=110400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/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: [gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -Wno-psabi "-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "gcc"] + 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: [gcc -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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -m64 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/crt/link.stub" -o "tmp/a_dlink.o" ] + considering line: [g++ -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + extracted link line: [g++ -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + considering line: [] + extracted link launcher name: [g++] + found link launcher absolute path: [/usr/bin/g++] + + 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 g++ -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + arg [cuda-fake-ld] ==> ignore + arg [g++] ==> 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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs] + arg [-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 [/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs] + collapse library dir [/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + implicit libs: [cudadevrt;cudart_static;rt;pthread;dl] + implicit objs: [] + implicit dirs: [/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs;/home/richard/miniconda3/envs/bilateral-cuda124/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeNVCCParseImplicitInfo.cmake:165 (message)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake:295 (cmake_nvcc_parse_implicit_info)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CUDA nvcc include information: + found 'PATH=' string: [/home/richard/miniconda3/envs/bilateral-cuda124/bin/../nvvm/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/.npm-global/bin:/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli:/home/richard/.npm-global/bin:/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli:/home/richard/.npm-global/bin:/home/richard/.local/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/miniconda3/condabin:/home/richard/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/usr/local/go/bin:/home/richard/go/bin:/usr/local/go/bin:/home/richard/go/bin:/usr/local/go/bin:/home/richard/go/bin] + found 'LIBRARIES=' string: ["-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib"] + found 'INCLUDES=' string: ["-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" ] + no 'SYSTEM_INCLUDES=' string found in nvcc output: + #$ _NVVM_BRANCH_=nvvm + #$ _NVVM_BRANCH_SUFFIX_= + #$ _SPACE_= + #$ _CUDART_=cudart + #$ _HERE_=/home/richard/miniconda3/envs/bilateral-cuda124/bin + #$ _THERE_=/home/richard/miniconda3/envs/bilateral-cuda124/bin + #$ _TARGET_SIZE_= + #$ _TARGET_DIR_= + #$ _TARGET_SIZE_=64 + #$ TOP=/home/richard/miniconda3/envs/bilateral-cuda124/bin/.. + #$ NVVMIR_LIBRARY_DIR=/home/richard/miniconda3/envs/bilateral-cuda124/bin/../nvvm/libdevice + #$ LD_LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib:/home/richard/miniconda3/envs/bilateral-cuda124/lib:/usr/lib/wsl/lib:/home/richard/miniconda3/envs/bilateral-cuda124/lib + #$ PATH=/home/richard/miniconda3/envs/bilateral-cuda124/bin/../nvvm/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/.npm-global/bin:/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli:/home/richard/.npm-global/bin:/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli:/home/richard/.npm-global/bin:/home/richard/.local/bin:/home/richard/miniconda3/envs/bilateral-cuda124/bin:/home/richard/miniconda3/condabin:/home/richard/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/usr/local/go/bin:/home/richard/go/bin:/usr/local/go/bin:/home/richard/go/bin:/usr/local/go/bin:/home/richard/go/bin + #$ INCLUDES="-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" + #$ LIBRARIES= "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" + #$ CUDAFE_FLAGS= + #$ PTXAS_FLAGS= + #$ rm tmp/a_dlink.reg.c + #$ gcc -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -D__CUDACC__ -D__NVCC__ "-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" + #$ cudafe++ --c++17 --gnu_version=110400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/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" + #$ gcc -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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" + #$ cicc --c++17 --gnu_version=110400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/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" + #$ gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -Wno-psabi "-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o" + #$ nvlink -m64 --arch=sm_52 --register-link-binaries="tmp/a_dlink.reg.c" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "gcc" + #$ 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" + #$ gcc -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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -m64 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/crt/link.stub" -o "tmp/a_dlink.o" + #$ g++ -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" + + considering line: [#$ rm tmp/a_dlink.reg.c] + considering line: [gcc -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++ -D__CUDACC__ -D__NVCC__ "-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: [cudafe++ --c++17 --gnu_version=110400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/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: [gcc -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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" ] + considering line: [cicc --c++17 --gnu_version=110400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/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: [gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -Wno-psabi "-I/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "gcc"] + 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: [gcc -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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include" -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=4 -D__CUDACC_VER_BUILD__=131 -D__CUDA_API_VER_MAJOR__=12 -D__CUDA_API_VER_MINOR__=4 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -m64 "/home/richard/miniconda3/envs/bilateral-cuda124/bin/crt/link.stub" -o "tmp/a_dlink.o" ] + considering line: [g++ -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + extracted link line: [g++ -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + considering line: [] + extracted link launcher name: [g++] + found link launcher absolute path: [/usr/bin/g++] + + 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 g++ -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs" "-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib" -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + arg [cuda-fake-ld] ==> ignore + arg [g++] ==> 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/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs] + arg [-L/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/bin/../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 [/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib/stubs] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs] + collapse library dir [/home/richard/miniconda3/envs/bilateral-cuda124/bin/../lib] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + implicit libs: [cudadevrt;cudart_static;rt;pthread;dl] + implicit objs: [] + implicit dirs: [/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs;/home/richard/miniconda3/envs/bilateral-cuda124/lib] + implicit fwks: [] + + + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompiler.cmake:54 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCXXCompiler.cmake:69 (_cmake_find_compiler)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_CXX_COMPILER" + description: "CXX compiler" + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: true + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "c++" + - "CC" + - "g++" + - "aCC" + - "cl" + - "bcc" + - "xlC" + - "icpx" + - "icx" + - "clang++" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/c++" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/CC" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/g++" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/aCC" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/cl" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/bcc" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/xlC" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/icpx" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/icx" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/clang++" + found: false + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompiler.cmake:73 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCXXCompiler.cmake:69 (_cmake_find_compiler)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_CXX_COMPILER" + description: "CXX compiler" + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: true + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "c++" + - "CC" + - "g++" + - "aCC" + - "cl" + - "bcc" + - "xlC" + - "icpx" + - "icx" + - "clang++" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/c++" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/c++" + - "/home/richard/miniconda3/envs/bilateral-cuda124/c++" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/c++" + - "/home/richard/.npm-global/bin/c++" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/c++" + - "/home/richard/.local/bin/c++" + - "/home/richard/miniconda3/condabin/c++" + - "/home/richard/.cargo/bin/c++" + - "/usr/local/sbin/c++" + - "/usr/local/bin/c++" + - "/usr/sbin/c++" + found: "/usr/bin/c++" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:462 (find_file)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:500 (CMAKE_DETERMINE_COMPILER_ID_WRITE)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:8 (CMAKE_DETERMINE_COMPILER_ID_BUILD)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCXXCompiler.cmake:125 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:2 (project)" + mode: "file" + variable: "src_in" + description: "Path to a file." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: true + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "CMakeCXXCompilerId.cpp.in" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/" + found: "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCXXCompilerId.cpp.in" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "message-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCXXCompiler.cmake:125 (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/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/4.2.3/CompilerIdCXX/a.out + + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU-FindBinUtils.cmake:18 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCXXCompiler.cmake:207 (include)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_CXX_COMPILER_AR" + description: "A wrapper around 'ar' adding the appropriate '--plugin' option for the GCC compiler" + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: false + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "gcc-ar-11.4" + - "gcc-ar-11" + - "gcc-ar11" + - "gcc-ar" + candidate_directories: + - "/usr/bin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/usr/bin/gcc-ar-11.4" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/gcc-ar-11.4" + - "/home/richard/.npm-global/bin/gcc-ar-11.4" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/gcc-ar-11.4" + - "/home/richard/.local/bin/gcc-ar-11.4" + - "/home/richard/miniconda3/condabin/gcc-ar-11.4" + - "/home/richard/.cargo/bin/gcc-ar-11.4" + - "/usr/local/sbin/gcc-ar-11.4" + - "/usr/local/bin/gcc-ar-11.4" + - "/usr/sbin/gcc-ar-11.4" + - "/sbin/gcc-ar-11.4" + - "/bin/gcc-ar-11.4" + - "/usr/games/gcc-ar-11.4" + - "/usr/local/games/gcc-ar-11.4" + - "/usr/lib/wsl/lib/gcc-ar-11.4" + - "/usr/local/go/bin/gcc-ar-11.4" + - "/home/richard/go/bin/gcc-ar-11.4" + found: "/usr/bin/gcc-ar-11" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU-FindBinUtils.cmake:30 (find_program)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCXXCompiler.cmake:207 (include)" + - "CMakeLists.txt:2 (project)" + mode: "program" + variable: "CMAKE_CXX_COMPILER_RANLIB" + description: "A wrapper around 'ranlib' adding the appropriate '--plugin' option for the GCC compiler" + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: false + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "gcc-ranlib-11.4" + - "gcc-ranlib-11" + - "gcc-ranlib11" + - "gcc-ranlib" + candidate_directories: + - "/usr/bin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + searched_directories: + - "/usr/bin/gcc-ranlib-11.4" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/gcc-ranlib-11.4" + - "/home/richard/.npm-global/bin/gcc-ranlib-11.4" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/gcc-ranlib-11.4" + - "/home/richard/.local/bin/gcc-ranlib-11.4" + - "/home/richard/miniconda3/condabin/gcc-ranlib-11.4" + - "/home/richard/.cargo/bin/gcc-ranlib-11.4" + - "/usr/local/sbin/gcc-ranlib-11.4" + - "/usr/local/bin/gcc-ranlib-11.4" + - "/usr/sbin/gcc-ranlib-11.4" + - "/sbin/gcc-ranlib-11.4" + - "/bin/gcc-ranlib-11.4" + - "/usr/games/gcc-ranlib-11.4" + - "/usr/local/games/gcc-ranlib-11.4" + - "/usr/lib/wsl/lib/gcc-ranlib-11.4" + - "/usr/local/go/bin/gcc-ranlib-11.4" + - "/home/richard/go/bin/gcc-ranlib-11.4" + found: "/usr/bin/gcc-ranlib-11" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - + kind: "try_compile-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake:83 (try_compile)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeTestCUDACompiler.cmake:19 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + checks: + - "Detecting CUDA compiler ABI info" + directories: + source: "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CMakeScratch/TryCompile-I3HvwS" + binary: "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CMakeScratch/TryCompile-I3HvwS" + 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/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CMakeScratch/TryCompile-I3HvwS' + + Run Build Command(s): /home/richard/miniconda3/envs/bilateral-cuda124/bin/ninja -v cmTC_4d9f7 + [1/2] /home/richard/miniconda3/envs/bilateral-cuda124/bin/nvcc -forward-unknown-to-host-compiler "--generate-code=arch=compute_52,code=[compute_52,sm_52]" -Xcompiler=-v -MD -MT CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o -MF CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o.d -x cu -c /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCUDACompilerABI.cu -o CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o + Using built-in specs. + COLLECT_GCC=gcc + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04.2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.2) + 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' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=4' '-D' '__CUDACC_VER_BUILD__=131' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=4' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00001541_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/' + /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -E -quiet -v -I /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include -imultiarch x86_64-linux-gnu -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__=4 -D __CUDACC_VER_BUILD__=131 -D __CUDA_API_VER_MAJOR__=12 -D __CUDA_API_VER_MINOR__=4 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -include cuda_runtime.h /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00001541_00000000-7_CMakeCUDACompilerABI.cpp1.ii -m64 -mtune=generic -march=x86-64 -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -dumpdir /tmp/ -dumpbase tmpxft_00001541_00000000-7_CMakeCUDACompilerABI.cpp1.cu -dumpbase-ext .cu + ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11" + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" + ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include" + ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include" + #include "..." search starts here: + #include <...> search starts here: + /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include + /usr/include/c++/11 + /usr/include/x86_64-linux-gnu/c++/11 + /usr/include/c++/11/backward + /usr/lib/gcc/x86_64-linux-gnu/11/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/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' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=4' '-D' '__CUDACC_VER_BUILD__=131' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=4' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00001541_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/tmpxft_00001541_00000000-7_CMakeCUDACompilerABI.cpp1.' + Using built-in specs. + COLLECT_GCC=gcc + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04.2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.2) + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=4' '-D' '__CUDACC_VER_BUILD__=131' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=4' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00001541_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/' + /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -E -quiet -v -I /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include -imultiarch x86_64-linux-gnu -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__=4 -D __CUDACC_VER_BUILD__=131 -D __CUDA_API_VER_MAJOR__=12 -D __CUDA_API_VER_MINOR__=4 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -include cuda_runtime.h /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00001541_00000000-5_CMakeCUDACompilerABI.cpp4.ii -m64 -mtune=generic -march=x86-64 -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -dumpdir /tmp/ -dumpbase tmpxft_00001541_00000000-5_CMakeCUDACompilerABI.cpp4.cu -dumpbase-ext .cu + ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11" + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" + ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include" + ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include" + #include "..." search starts here: + #include <...> search starts here: + /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include + /usr/include/c++/11 + /usr/include/x86_64-linux-gnu/c++/11 + /usr/include/c++/11/backward + /usr/lib/gcc/x86_64-linux-gnu/11/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=4' '-D' '__CUDACC_VER_BUILD__=131' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=4' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00001541_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/tmpxft_00001541_00000000-5_CMakeCUDACompilerABI.cpp4.' + Using built-in specs. + COLLECT_GCC=gcc + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04.2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.2) + 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' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-m64' '-o' 'CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4d9f7.dir/' + /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -I /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D CUDA_DOUBLE_MATH_FUNCTIONS /tmp/tmpxft_00001541_00000000-6_CMakeCUDACompilerABI.cudafe1.cpp -quiet -dumpdir CMakeFiles/cmTC_4d9f7.dir/ -dumpbase CMakeCUDACompilerABI.cu.cpp -dumpbase-ext .cpp -m64 -mtune=generic -march=x86-64 -Wno-psabi -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccZnm46M.s + GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04.2) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP + + warning: GMP header version 6.2.1 differs from library version 6.3.0. + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11" + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" + ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include" + ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include" + #include "..." search starts here: + #include <...> search starts here: + /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include + /usr/include/c++/11 + /usr/include/x86_64-linux-gnu/c++/11 + /usr/include/c++/11/backward + /usr/lib/gcc/x86_64-linux-gnu/11/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04.2) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP + + warning: GMP header version 6.2.1 differs from library version 6.3.0. + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + Compiler executable checksum: 6c87588fc345655b93b8c25f48f88886 + 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' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-m64' '-o' 'CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4d9f7.dir/' + as -v -I /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include --64 -o CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o /tmp/ccZnm46M.s + GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38 + COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/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' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-m64' '-o' 'CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.' + [2/2] : && /usr/bin/g++ -v -Wl,-v CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o -o cmTC_4d9f7 -lcudadevrt -lcudart_static -lrt -lpthread -ldl -L"/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs" -L"/home/richard/miniconda3/envs/bilateral-cuda124/lib" && : + Using built-in specs. + COLLECT_GCC=/usr/bin/g++ + COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04.2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.2) + COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4d9f7' '-L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs' '-L/home/richard/miniconda3/envs/bilateral-cuda124/lib' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4d9f7.' + /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc8t4emG.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 -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4d9f7 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o + collect2 version 11.4.0 + /usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc8t4emG.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 -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4d9f7 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o + GNU ld (GNU Binutils for Ubuntu) 2.38 + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4d9f7' '-L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs' '-L/home/richard/miniconda3/envs/bilateral-cuda124/lib' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4d9f7.' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake:217 (message)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/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: [/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include] + add: [/usr/include/c++/11] + add: [/usr/include/x86_64-linux-gnu/c++/11] + add: [/usr/include/c++/11/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/11/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/include] + collapse include dir [/usr/include/c++/11] ==> [/usr/include/c++/11] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/11] ==> [/usr/include/x86_64-linux-gnu/c++/11] + collapse include dir [/usr/include/c++/11/backward] ==> [/usr/include/c++/11/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/11/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/11/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/home/richard/miniconda3/envs/bilateral-cuda124/include;/usr/include/c++/11;/usr/include/x86_64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake:253 (message)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/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: [^[ ]*(->|"|[0-9]+>[ -]*Build:[ 0-9]+ ms[ ]*)?[ ]*(([^"]*[/\\])?(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)))("|,| |$)] + ignore line: [Change Dir: '/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CMakeScratch/TryCompile-I3HvwS'] + ignore line: [] + ignore line: [Run Build Command(s): /home/richard/miniconda3/envs/bilateral-cuda124/bin/ninja -v cmTC_4d9f7] + ignore line: [[1/2] /home/richard/miniconda3/envs/bilateral-cuda124/bin/nvcc -forward-unknown-to-host-compiler "--generate-code=arch=compute_52 code=[compute_52 sm_52]" -Xcompiler=-v -MD -MT CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o -MF CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o.d -x cu -c /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCUDACompilerABI.cu -o CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=gcc] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04.2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.2) ] + 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' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=4' '-D' '__CUDACC_VER_BUILD__=131' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=4' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00001541_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -E -quiet -v -I /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include -imultiarch x86_64-linux-gnu -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__=4 -D __CUDACC_VER_BUILD__=131 -D __CUDA_API_VER_MAJOR__=12 -D __CUDA_API_VER_MINOR__=4 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -include cuda_runtime.h /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00001541_00000000-7_CMakeCUDACompilerABI.cpp1.ii -m64 -mtune=generic -march=x86-64 -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -dumpdir /tmp/ -dumpbase tmpxft_00001541_00000000-7_CMakeCUDACompilerABI.cpp1.cu -dumpbase-ext .cu] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"] + ignore line: [ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include"] + ignore line: [ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include] + ignore line: [ /usr/include/c++/11] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/11] + ignore line: [ /usr/include/c++/11/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/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' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=4' '-D' '__CUDACC_VER_BUILD__=131' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=4' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00001541_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/tmpxft_00001541_00000000-7_CMakeCUDACompilerABI.cpp1.'] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=gcc] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04.2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.2) ] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=4' '-D' '__CUDACC_VER_BUILD__=131' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=4' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00001541_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -E -quiet -v -I /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include -imultiarch x86_64-linux-gnu -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__=4 -D __CUDACC_VER_BUILD__=131 -D __CUDA_API_VER_MAJOR__=12 -D __CUDA_API_VER_MINOR__=4 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -include cuda_runtime.h /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00001541_00000000-5_CMakeCUDACompilerABI.cpp4.ii -m64 -mtune=generic -march=x86-64 -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -dumpdir /tmp/ -dumpbase tmpxft_00001541_00000000-5_CMakeCUDACompilerABI.cpp4.cu -dumpbase-ext .cu] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"] + ignore line: [ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include"] + ignore line: [ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include] + ignore line: [ /usr/include/c++/11] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/11] + ignore line: [ /usr/include/c++/11/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-D' '__NV_LEGACY_LAUNCH' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-I' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-D' '__CUDACC_VER_MAJOR__=12' '-D' '__CUDACC_VER_MINOR__=4' '-D' '__CUDACC_VER_BUILD__=131' '-D' '__CUDA_API_VER_MAJOR__=12' '-D' '__CUDA_API_VER_MINOR__=4' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00001541_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-mtune=generic' '-march=x86-64' '-dumpdir' '/tmp/tmpxft_00001541_00000000-5_CMakeCUDACompilerABI.cpp4.'] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=gcc] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04.2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.2) ] + 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' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-m64' '-o' 'CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4d9f7.dir/'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -I /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D __NV_LEGACY_LAUNCH -D CUDA_DOUBLE_MATH_FUNCTIONS /tmp/tmpxft_00001541_00000000-6_CMakeCUDACompilerABI.cudafe1.cpp -quiet -dumpdir CMakeFiles/cmTC_4d9f7.dir/ -dumpbase CMakeCUDACompilerABI.cu.cpp -dumpbase-ext .cpp -m64 -mtune=generic -march=x86-64 -Wno-psabi -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccZnm46M.s] + ignore line: [GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04.2) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.1 MPFR version 4.1.0 MPC version 1.2.1 isl version isl-0.24-GMP] + ignore line: [] + ignore line: [warning: GMP header version 6.2.1 differs from library version 6.3.0.] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"] + ignore line: [ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include"] + ignore line: [ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include] + ignore line: [ /usr/include/c++/11] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/11] + ignore line: [ /usr/include/c++/11/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04.2) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.1 MPFR version 4.1.0 MPC version 1.2.1 isl version isl-0.24-GMP] + ignore line: [] + ignore line: [warning: GMP header version 6.2.1 differs from library version 6.3.0.] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: 6c87588fc345655b93b8c25f48f88886] + 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' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-m64' '-o' 'CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4d9f7.dir/'] + ignore line: [ as -v -I /home/richard/miniconda3/envs/bilateral-cuda124/bin/../include --64 -o CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o /tmp/ccZnm46M.s] + ignore line: [GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/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' '/home/richard/miniconda3/envs/bilateral-cuda124/bin/../include' '-m64' '-o' 'CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.'] + ignore line: [[2/2] : && /usr/bin/g++ -v -Wl,-v CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o -o cmTC_4d9f7 -lcudadevrt -lcudart_static -lrt -lpthread -ldl -L"/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs" -L"/home/richard/miniconda3/envs/bilateral-cuda124/lib" && :] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/g++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04.2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.2) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4d9f7' '-L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs' '-L/home/richard/miniconda3/envs/bilateral-cuda124/lib' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4d9f7.'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc8t4emG.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 -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4d9f7 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cc8t4emG.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 [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_4d9f7] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] + arg [-L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs] + arg [-L/home/richard/miniconda3/envs/bilateral-cuda124/lib] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + arg [-L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib] + arg [-L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/home/richard/miniconda3/envs/bilateral-cuda124/lib] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + arg [-L/home/richard/miniconda3/envs/bilateral-cuda124/lib] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] + arg [-v] ==> ignore + arg [CMakeFiles/cmTC_4d9f7.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-linux-gnu/11/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] + ignore line: [collect2 version 11.4.0] + ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc8t4emG.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 -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4d9f7 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_4d9f7.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] + linker tool for 'CUDA': /usr/bin/ld + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs] + collapse library dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + collapse library dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + collapse library dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11] ==> [/usr/lib/gcc/x86_64-linux-gnu/11] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + collapse library dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> [/usr/lib] + implicit libs: [cudadevrt;cudart_static;rt;pthread;dl;stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs;/home/richard/miniconda3/envs/bilateral-cuda124/lib;/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeDetermineLinkerId.cmake:38 (message)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake:299 (cmake_determine_linker_id)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/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 for Ubuntu) 2.38 + - + kind: "try_compile-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake:83 (try_compile)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + checks: + - "Detecting CXX compiler ABI info" + directories: + source: "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CMakeScratch/TryCompile-vdPXwe" + binary: "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CMakeScratch/TryCompile-vdPXwe" + cmakeVariables: + CMAKE_CUDA_ARCHITECTURES: "52" + 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/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CMakeScratch/TryCompile-vdPXwe' + + Run Build Command(s): /home/richard/miniconda3/envs/bilateral-cuda124/bin/ninja -v cmTC_13360 + [1/2] /usr/bin/c++ -v -o CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o -c /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCXXCompilerABI.cpp + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04.2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.2) + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_13360.dir/' + /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_13360.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccS5o3Ac.s + GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04.2) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP + + warning: GMP header version 6.2.1 differs from library version 6.3.0. + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11" + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" + ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include" + #include "..." search starts here: + #include <...> search starts here: + /home/richard/miniconda3/envs/bilateral-cuda124/include + /usr/include/c++/11 + /usr/include/x86_64-linux-gnu/c++/11 + /usr/include/c++/11/backward + /usr/lib/gcc/x86_64-linux-gnu/11/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04.2) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP + + warning: GMP header version 6.2.1 differs from library version 6.3.0. + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + Compiler executable checksum: 6c87588fc345655b93b8c25f48f88886 + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_13360.dir/' + as -v --64 -o CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccS5o3Ac.s + GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38 + COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.' + [2/2] : && /usr/bin/c++ -v -Wl,-v CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_13360 && : + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04.2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.2) + COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_13360' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_13360.' + /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccr9pG8K.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 -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_13360 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o + collect2 version 11.4.0 + /usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccr9pG8K.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 -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_13360 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o + GNU ld (GNU Binutils for Ubuntu) 2.38 + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_13360' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_13360.' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake:217 (message)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/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: [/home/richard/miniconda3/envs/bilateral-cuda124/include] + add: [/usr/include/c++/11] + add: [/usr/include/x86_64-linux-gnu/c++/11] + add: [/usr/include/c++/11/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/11/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/home/richard/miniconda3/envs/bilateral-cuda124/include] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/include] + collapse include dir [/usr/include/c++/11] ==> [/usr/include/c++/11] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/11] ==> [/usr/include/x86_64-linux-gnu/c++/11] + collapse include dir [/usr/include/c++/11/backward] ==> [/usr/include/c++/11/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/11/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/11/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/home/richard/miniconda3/envs/bilateral-cuda124/include;/usr/include/c++/11;/usr/include/x86_64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake:253 (message)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/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: [^[ ]*(->|"|[0-9]+>[ -]*Build:[ 0-9]+ ms[ ]*)?[ ]*(([^"]*[/\\])?(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)))("|,| |$)] + ignore line: [Change Dir: '/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CMakeScratch/TryCompile-vdPXwe'] + ignore line: [] + ignore line: [Run Build Command(s): /home/richard/miniconda3/envs/bilateral-cuda124/bin/ninja -v cmTC_13360] + ignore line: [[1/2] /usr/bin/c++ -v -o CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o -c /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04.2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.2) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_13360.dir/'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_13360.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccS5o3Ac.s] + ignore line: [GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04.2) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.1 MPFR version 4.1.0 MPC version 1.2.1 isl version isl-0.24-GMP] + ignore line: [] + ignore line: [warning: GMP header version 6.2.1 differs from library version 6.3.0.] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"] + ignore line: [ignoring duplicate directory "/home/richard/miniconda3/envs/bilateral-cuda124/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /home/richard/miniconda3/envs/bilateral-cuda124/include] + ignore line: [ /usr/include/c++/11] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/11] + ignore line: [ /usr/include/c++/11/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04.2) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.1 MPFR version 4.1.0 MPC version 1.2.1 isl version isl-0.24-GMP] + ignore line: [] + ignore line: [warning: GMP header version 6.2.1 differs from library version 6.3.0.] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: 6c87588fc345655b93b8c25f48f88886] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_13360.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccS5o3Ac.s] + ignore line: [GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.'] + ignore line: [[2/2] : && /usr/bin/c++ -v -Wl -v CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_13360 && :] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04.2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-2Y5pKs/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.2) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/home/richard/miniconda3/envs/bilateral-cuda124/lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_13360' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_13360.'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccr9pG8K.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 -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_13360 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccr9pG8K.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 [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_13360] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] + arg [-L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib] + arg [-L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/home/richard/miniconda3/envs/bilateral-cuda124/lib] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + arg [-L/home/richard/miniconda3/envs/bilateral-cuda124/lib] ==> dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] + arg [-v] ==> ignore + arg [CMakeFiles/cmTC_13360.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/lib/gcc/x86_64-linux-gnu/11/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] + ignore line: [collect2 version 11.4.0] + ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccr9pG8K.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 -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_13360 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/home/richard/miniconda3/envs/bilateral-cuda124/lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_13360.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] + linker tool for 'CXX': /usr/bin/ld + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + collapse library dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib/../lib] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11] ==> [/usr/lib/gcc/x86_64-linux-gnu/11] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + collapse library dir [/home/richard/miniconda3/envs/bilateral-cuda124/lib] ==> [/home/richard/miniconda3/envs/bilateral-cuda124/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/home/richard/miniconda3/envs/bilateral-cuda124/lib;/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeDetermineLinkerId.cmake:38 (message)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake:299 (cmake_determine_linker_id)" + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/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 for Ubuntu) 2.38 + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CTest.cmake:188 (find_program)" + - "CMakeLists.txt:10 (include)" + mode: "program" + variable: "MEMORYCHECK_COMMAND" + description: "Path to the memory checking command, used for memory error detection." + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: true + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "purify" + - "valgrind" + - "boundscheck" + - "drmemory" + - "cuda-memcheck" + - "compute-sanitizer" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + - "/usr/local/bin/" + - "/usr/local/sbin/" + - "/usr/local/" + - "/usr/bin/" + - "/usr/sbin/" + - "/usr/" + - "/bin/" + - "/sbin/" + - "/usr/X11R6/bin/" + - "/usr/X11R6/sbin/" + - "/usr/X11R6/" + - "/usr/pkg/bin/" + - "/usr/pkg/sbin/" + - "/usr/pkg/" + - "/opt/bin/" + - "/opt/sbin/" + - "/opt/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/purify" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/purify" + - "/home/richard/miniconda3/envs/bilateral-cuda124/purify" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/purify" + - "/home/richard/.npm-global/bin/purify" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/purify" + - "/home/richard/.local/bin/purify" + - "/home/richard/miniconda3/condabin/purify" + - "/home/richard/.cargo/bin/purify" + - "/usr/local/sbin/purify" + - "/usr/local/bin/purify" + - "/usr/sbin/purify" + - "/usr/bin/purify" + - "/sbin/purify" + - "/bin/purify" + - "/usr/games/purify" + - "/usr/local/games/purify" + - "/usr/lib/wsl/lib/purify" + - "/usr/local/go/bin/purify" + - "/home/richard/go/bin/purify" + - "/usr/local/bin/purify" + - "/usr/local/sbin/purify" + - "/usr/local/purify" + - "/usr/bin/purify" + - "/usr/sbin/purify" + - "/usr/purify" + - "/bin/purify" + - "/sbin/purify" + - "/usr/X11R6/bin/purify" + - "/usr/X11R6/sbin/purify" + - "/usr/X11R6/purify" + - "/usr/pkg/bin/purify" + - "/usr/pkg/sbin/purify" + - "/usr/pkg/purify" + - "/opt/bin/purify" + - "/opt/sbin/purify" + - "/opt/purify" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/valgrind" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/valgrind" + - "/home/richard/miniconda3/envs/bilateral-cuda124/valgrind" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/valgrind" + - "/home/richard/.npm-global/bin/valgrind" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/valgrind" + - "/home/richard/.local/bin/valgrind" + - "/home/richard/miniconda3/condabin/valgrind" + - "/home/richard/.cargo/bin/valgrind" + - "/usr/local/sbin/valgrind" + - "/usr/local/bin/valgrind" + - "/usr/sbin/valgrind" + - "/usr/bin/valgrind" + - "/sbin/valgrind" + - "/bin/valgrind" + - "/usr/games/valgrind" + - "/usr/local/games/valgrind" + - "/usr/lib/wsl/lib/valgrind" + - "/usr/local/go/bin/valgrind" + - "/home/richard/go/bin/valgrind" + - "/usr/local/bin/valgrind" + - "/usr/local/sbin/valgrind" + - "/usr/local/valgrind" + - "/usr/bin/valgrind" + - "/usr/sbin/valgrind" + - "/usr/valgrind" + - "/bin/valgrind" + - "/sbin/valgrind" + - "/usr/X11R6/bin/valgrind" + - "/usr/X11R6/sbin/valgrind" + - "/usr/X11R6/valgrind" + - "/usr/pkg/bin/valgrind" + - "/usr/pkg/sbin/valgrind" + - "/usr/pkg/valgrind" + - "/opt/bin/valgrind" + - "/opt/sbin/valgrind" + - "/opt/valgrind" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/boundscheck" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/boundscheck" + - "/home/richard/miniconda3/envs/bilateral-cuda124/boundscheck" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/boundscheck" + - "/home/richard/.npm-global/bin/boundscheck" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/boundscheck" + - "/home/richard/.local/bin/boundscheck" + - "/home/richard/miniconda3/condabin/boundscheck" + - "/home/richard/.cargo/bin/boundscheck" + - "/usr/local/sbin/boundscheck" + - "/usr/local/bin/boundscheck" + - "/usr/sbin/boundscheck" + - "/usr/bin/boundscheck" + - "/sbin/boundscheck" + - "/bin/boundscheck" + - "/usr/games/boundscheck" + - "/usr/local/games/boundscheck" + - "/usr/lib/wsl/lib/boundscheck" + - "/usr/local/go/bin/boundscheck" + - "/home/richard/go/bin/boundscheck" + - "/usr/local/bin/boundscheck" + - "/usr/local/sbin/boundscheck" + - "/usr/local/boundscheck" + - "/usr/bin/boundscheck" + - "/usr/sbin/boundscheck" + - "/usr/boundscheck" + - "/bin/boundscheck" + - "/sbin/boundscheck" + - "/usr/X11R6/bin/boundscheck" + - "/usr/X11R6/sbin/boundscheck" + - "/usr/X11R6/boundscheck" + - "/usr/pkg/bin/boundscheck" + - "/usr/pkg/sbin/boundscheck" + - "/usr/pkg/boundscheck" + - "/opt/bin/boundscheck" + - "/opt/sbin/boundscheck" + - "/opt/boundscheck" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/drmemory" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/drmemory" + - "/home/richard/miniconda3/envs/bilateral-cuda124/drmemory" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/drmemory" + - "/home/richard/.npm-global/bin/drmemory" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/drmemory" + - "/home/richard/.local/bin/drmemory" + - "/home/richard/miniconda3/condabin/drmemory" + - "/home/richard/.cargo/bin/drmemory" + - "/usr/local/sbin/drmemory" + - "/usr/local/bin/drmemory" + - "/usr/sbin/drmemory" + - "/usr/bin/drmemory" + - "/sbin/drmemory" + - "/bin/drmemory" + - "/usr/games/drmemory" + - "/usr/local/games/drmemory" + - "/usr/lib/wsl/lib/drmemory" + - "/usr/local/go/bin/drmemory" + - "/home/richard/go/bin/drmemory" + - "/usr/local/bin/drmemory" + - "/usr/local/sbin/drmemory" + - "/usr/local/drmemory" + - "/usr/bin/drmemory" + - "/usr/sbin/drmemory" + - "/usr/drmemory" + - "/bin/drmemory" + - "/sbin/drmemory" + - "/usr/X11R6/bin/drmemory" + - "/usr/X11R6/sbin/drmemory" + - "/usr/X11R6/drmemory" + - "/usr/pkg/bin/drmemory" + - "/usr/pkg/sbin/drmemory" + - "/usr/pkg/drmemory" + - "/opt/bin/drmemory" + - "/opt/sbin/drmemory" + - "/opt/drmemory" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/cuda-memcheck" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/cuda-memcheck" + - "/home/richard/miniconda3/envs/bilateral-cuda124/cuda-memcheck" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/cuda-memcheck" + - "/home/richard/.npm-global/bin/cuda-memcheck" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/cuda-memcheck" + - "/home/richard/.local/bin/cuda-memcheck" + - "/home/richard/miniconda3/condabin/cuda-memcheck" + - "/home/richard/.cargo/bin/cuda-memcheck" + - "/usr/local/sbin/cuda-memcheck" + - "/usr/local/bin/cuda-memcheck" + - "/usr/sbin/cuda-memcheck" + - "/usr/bin/cuda-memcheck" + - "/sbin/cuda-memcheck" + - "/bin/cuda-memcheck" + - "/usr/games/cuda-memcheck" + - "/usr/local/games/cuda-memcheck" + - "/usr/lib/wsl/lib/cuda-memcheck" + - "/usr/local/go/bin/cuda-memcheck" + - "/home/richard/go/bin/cuda-memcheck" + - "/usr/local/bin/cuda-memcheck" + - "/usr/local/sbin/cuda-memcheck" + - "/usr/local/cuda-memcheck" + - "/usr/bin/cuda-memcheck" + - "/usr/sbin/cuda-memcheck" + - "/usr/cuda-memcheck" + - "/bin/cuda-memcheck" + - "/sbin/cuda-memcheck" + - "/usr/X11R6/bin/cuda-memcheck" + - "/usr/X11R6/sbin/cuda-memcheck" + - "/usr/X11R6/cuda-memcheck" + - "/usr/pkg/bin/cuda-memcheck" + - "/usr/pkg/sbin/cuda-memcheck" + - "/usr/pkg/cuda-memcheck" + - "/opt/bin/cuda-memcheck" + - "/opt/sbin/cuda-memcheck" + - "/opt/cuda-memcheck" + found: "/home/richard/miniconda3/envs/bilateral-cuda124/bin/compute-sanitizer" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + CMAKE_INSTALL_PREFIX: "/usr/local" + CMAKE_SYSTEM_PREFIX_PATH: + - "/usr/local" + - "/usr" + - "/" + - "/home/richard/miniconda3/envs/bilateral-cuda124" + - "/usr/local" + - "/usr/X11R6" + - "/usr/pkg" + - "/opt" + - + kind: "find-v1" + backtrace: + - "/home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CTest.cmake:196 (find_program)" + - "CMakeLists.txt:10 (include)" + mode: "program" + variable: "COVERAGE_COMMAND" + description: "Path to the coverage program that CTest uses for performing coverage inspection" + settings: + SearchFramework: "NEVER" + SearchAppBundle: "NEVER" + CMAKE_FIND_USE_CMAKE_PATH: true + CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true + CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true + CMAKE_FIND_USE_INSTALL_PREFIX: true + names: + - "gcov" + candidate_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/" + - "/home/richard/.npm-global/bin/" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/" + - "/home/richard/.local/bin/" + - "/home/richard/miniconda3/condabin/" + - "/home/richard/.cargo/bin/" + - "/usr/local/sbin/" + - "/usr/local/bin/" + - "/usr/sbin/" + - "/usr/bin/" + - "/sbin/" + - "/bin/" + - "/usr/games/" + - "/usr/local/games/" + - "/usr/lib/wsl/lib/" + - "/usr/local/go/bin/" + - "/home/richard/go/bin/" + - "/usr/local/bin/" + - "/usr/local/sbin/" + - "/usr/local/" + - "/usr/bin/" + - "/usr/sbin/" + - "/usr/" + - "/bin/" + - "/sbin/" + - "/usr/X11R6/bin/" + - "/usr/X11R6/sbin/" + - "/usr/X11R6/" + - "/usr/pkg/bin/" + - "/usr/pkg/sbin/" + - "/usr/pkg/" + - "/opt/bin/" + - "/opt/sbin/" + - "/opt/" + searched_directories: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/gcov" + - "/home/richard/miniconda3/envs/bilateral-cuda124/sbin/gcov" + - "/home/richard/miniconda3/envs/bilateral-cuda124/gcov" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin/gcov" + - "/home/richard/.npm-global/bin/gcov" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli/gcov" + - "/home/richard/.local/bin/gcov" + - "/home/richard/miniconda3/condabin/gcov" + - "/home/richard/.cargo/bin/gcov" + - "/usr/local/sbin/gcov" + - "/usr/local/bin/gcov" + - "/usr/sbin/gcov" + found: "/usr/bin/gcov" + search_context: + CMAKE_PREFIX_PATH: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{CMAKE_PREFIX_PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124" + ENV{PATH}: + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.vscode-server/bin/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/bin/remote-cli" + - "/home/richard/.npm-global/bin" + - "/home/richard/.local/bin" + - "/home/richard/miniconda3/envs/bilateral-cuda124/bin" + - "/home/richard/miniconda3/condabin" + - "/home/richard/.cargo/bin" + - "/usr/local/sbin" + - "/usr/local/bin" + - "/usr/sbin" + - "/usr/bin" + - "/sbin" + - "/bin" + - "/usr/games" + - "/usr/local/games" + - "/usr/lib/wsl/lib" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + - "/usr/local/go/bin" + - "/home/richard/go/bin" + CMAKE_INSTALL_PREFIX: "/usr/local" + CMAKE_SYSTEM_PREFIX_PATH: + - "/usr/local" + - "/usr" + - "/" + - "/home/richard/miniconda3/envs/bilateral-cuda124" + - "/usr/local" + - "/usr/X11R6" + - "/usr/pkg" + - "/opt" +... diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CTestScript.cmake b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CTestScript.cmake new file mode 100644 index 0000000..034e966 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/CTestScript.cmake @@ -0,0 +1,167 @@ +# This file is configured by CMake automatically as CTestScript.cmake +# If you choose not to use CMake, this file may be hand configured, by +# filling in the required variables. + +cmake_minimum_required(VERSION 4.2.3) + +# CTest Start Step +set(CTEST_SOURCE_DIRECTORY "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard") +set(CTEST_BINARY_DIRECTORY "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release") + +# CTest Update Step +set(CTEST_UPDATE_COMMAND "") +set(CTEST_UPDATE_OPTIONS "") +set(CTEST_UPDATE_VERSION_ONLY "") +set(CTEST_NIGHTLY_START_TIME "00:00:00 EDT") + +# CVS options +set(CTEST_CVS_COMMAND "") +set(CTEST_CVS_UPDATE_OPTIONS "") + +# Subversion options +set(CTEST_SVN_COMMAND "") +set(CTEST_SVN_OPTIONS "") +set(CTEST_SVN_UPDATE_OPTIONS "") + +# Git options +set(CTEST_GIT_COMMAND "") +set(CTEST_GIT_INIT_SUBMODULES "") +set(CTEST_GIT_UPDATE_CUSTOM "") +set(CTEST_GIT_UPDATE_OPTIONS "") + +# Perforce options +set(CTEST_P4_COMMAND "") +set(CTEST_P4_CLIENT "") +set(CTEST_P4_OPTIONS "") +set(CTEST_P4_UPDATE_CUSTOM "") +set(CTEST_P4_UPDATE_OPTIONS "") + +# CTest Configure Step +set(CTEST_CMAKE_GENERATOR "Ninja") +set(CTEST_LABELS_FOR_SUBPROJECTS "") + +# CTest Build Step +set(CTEST_CONFIGURATION_TYPE "Release") +set(CTEST_USE_LAUNCHERS "") + +# CTest Test Step +set(CTEST_RESOURCE_SPEC_FILE "") +set(CTEST_TEST_LOAD "") +set(CTEST_TEST_TIMEOUT "1500") + +# CTest Coverage Step +set(CTEST_COVERAGE_COMMAND "/usr/bin/gcov") +set(CTEST_COVERAGE_EXTRA_FLAGS "-l") + +# CTest MemCheck Step +set(CTEST_MEMORYCHECK_COMMAND "/home/richard/miniconda3/envs/bilateral-cuda124/bin/compute-sanitizer") +set(CTEST_MEMORYCHECK_COMMAND_OPTIONS "") +set(CTEST_MEMORYCHECK_TYPE "") +set(CTEST_MEMORYCHECK_SANITIZER_OPTIONS "") +set(CTEST_MEMORYCHECK_SUPPRESSIONS_FILE "") + +# CTest Submit Step +set(CTEST_SITE "Desktop") +set(CTEST_BUILD_NAME "Linux-c++") +set(CTEST_SUBMIT_URL "http://") +set(CTEST_SUBMIT_INACTIVITY_TIMEOUT "") +set(CTEST_TLS_VERIFY "") +set(CTEST_TLS_VERSION "") + +################################################################################ + +if(NOT MODEL) + set(MODEL "Experimental") +endif() + +if(MODEL STREQUAL "NightlyMemoryCheck") + set(MODEL "Nightly") + set(ACTIONS "Start;Update;Configure;Build;MemCheck;Coverage;Submit") +endif() + +if(NOT ACTIONS) + if(MODEL STREQUAL "Experimental") + set(ACTIONS "Start;Configure;Build;Test;Coverage;Submit") + else() + set(ACTIONS "Start;Update;Configure;Build;Test;Coverage;Submit") + endif() +endif() + +################################################################################ + +set(_exit_code 0) + +if("Start" IN_LIST ACTIONS OR NOT EXISTS "${CTEST_BINARY_DIRECTORY}/Testing/TAG") + ctest_start("${MODEL}") +else() + ctest_start("${MODEL}" APPEND) +endif() + +if("Update" IN_LIST ACTIONS) + ctest_update(RETURN_VALUE update_count) + if(update_count LESS 0) + math(EXPR _exit_code "${_exit_code} | 0x01") + endif() + if(MODEL STREQUAL "Continuous" AND update_count EQUAL 0) + return() + endif() +endif() + +if("Configure" IN_LIST ACTIONS) + ctest_configure(RETURN_VALUE success) + if(success LESS 0) + math(EXPR _exit_code "${_exit_code} | 0x02") + endif() +endif() + +if("Build" IN_LIST ACTIONS) + ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}") + ctest_build(RETURN_VALUE success) + if(NOT success EQUAL 0) + math(EXPR _exit_code "${_exit_code} | 0x04") + endif() +endif() + +if("Test" IN_LIST ACTIONS) + ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}") + ctest_test(RETURN_VALUE success) + if(NOT success EQUAL 0) + math(EXPR _exit_code "${_exit_code} | 0x08") + endif() +endif() + +if("Coverage" IN_LIST ACTIONS) + ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}") + ctest_coverage(RETURN_VALUE success) + if(NOT success EQUAL 0) + math(EXPR _exit_code "${_exit_code} | 0x20") + endif() +endif() + +if("MemCheck" IN_LIST ACTIONS) + ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}") + ctest_memcheck(RETURN_VALUE success) + if(NOT success EQUAL 0) + math(EXPR _exit_code "${_exit_code} | 0x10") + endif() +endif() + +file(GLOB notes_files LIST_DIRECTORIES OFF + "${CTEST_BINARY_DIRECTORY}/Testing/Notes/*") +if(notes_files) + list(APPEND CTEST_NOTES_FILES "${notes_files}") +endif() + +if("Submit" IN_LIST ACTIONS) + ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}") + ctest_submit( + RETRY_COUNT "3" + RETRY_DELAY "5" + RETURN_VALUE success + ) + if(NOT success EQUAL 0) + math(EXPR _exit_code "${_exit_code} | 0x40") + endif() +endif() + +cmake_language(EXIT "${_exit_code}") diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/InstallScripts.json b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/InstallScripts.json new file mode 100644 index 0000000..e7d0d58 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/InstallScripts.json @@ -0,0 +1,7 @@ +{ + "InstallScripts" : + [ + "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/cmake_install.cmake" + ], + "Parallel" : false +} diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/TargetDirectories.txt b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..f8db9eb --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,34 @@ +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/Experimental.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/Nightly.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/Continuous.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/NightlyMemoryCheck.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/NightlyStart.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/NightlyUpdate.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/NightlyConfigure.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/NightlyBuild.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/NightlyTest.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/NightlyCoverage.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/NightlyMemCheck.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/NightlySubmit.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ExperimentalStart.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ExperimentalUpdate.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ExperimentalConfigure.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ExperimentalBuild.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ExperimentalTest.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ExperimentalCoverage.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ExperimentalMemCheck.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ExperimentalSubmit.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ContinuousStart.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ContinuousUpdate.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ContinuousConfigure.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ContinuousBuild.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ContinuousTest.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ContinuousCoverage.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ContinuousMemCheck.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/ContinuousSubmit.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/edit_cache.dir +/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/rebuild_cache.dir diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/cmake_device_link.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/cmake_device_link.o new file mode 100644 index 0000000..32e41e0 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/cmake_device_link.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/bilateral_filter.cu.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/bilateral_filter.cu.o new file mode 100644 index 0000000..0fcf7e6 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/bilateral_filter.cu.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/io.cpp.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/io.cpp.o new file mode 100644 index 0000000..e2d03ac Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/io.cpp.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/main.cu.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/main.cu.o new file mode 100644 index 0000000..b6045e0 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/main.cu.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/metrics.cpp.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/metrics.cpp.o new file mode 100644 index 0000000..7563d3f Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/metrics.cpp.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/reference.cpp.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/reference.cpp.o new file mode 100644 index 0000000..ad46951 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/reference.cpp.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/cmake.check_cache b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/rules.ninja b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/rules.ninja new file mode 100644 index 0000000..d95192e --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/rules.ninja @@ -0,0 +1,159 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 4.2 + +# 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: bilateral_filter +# Configurations: Release +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for compiling CUDA files. + +rule CUDA_COMPILER__bilateral_filter_unscanned_Release + depfile = $DEP_FILE + deps = gcc + command = ${LAUNCHER}${CODE_CHECK}/home/richard/miniconda3/envs/bilateral-cuda124/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 compiling CXX files. + +rule CXX_COMPILER__bilateral_filter_unscanned_Release + depfile = $DEP_FILE + deps = gcc + command = ${LAUNCHER}${CODE_CHECK}/usr/bin/c++ $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building CXX object $out + + +############################################# +# Rule for linking CXX executable. + +rule CXX_EXECUTABLE_DEVICE_LINKER__bilateral_filter_Release + command = /home/richard/miniconda3/envs/bilateral-cuda124/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 CXX executable $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for linking CXX executable. + +rule CXX_EXECUTABLE_LINKER__bilateral_filter_Release + command = $PRE_LINK && /usr/bin/c++ $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX executable $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for compiling CUDA files. + +rule CUDA_COMPILER__test_correctness_unscanned_Release + depfile = $DEP_FILE + deps = gcc + command = ${LAUNCHER}${CODE_CHECK}/home/richard/miniconda3/envs/bilateral-cuda124/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 compiling CXX files. + +rule CXX_COMPILER__test_correctness_unscanned_Release + depfile = $DEP_FILE + deps = gcc + command = ${LAUNCHER}${CODE_CHECK}/usr/bin/c++ $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building CXX object $out + + +############################################# +# Rule for linking CXX executable. + +rule CXX_EXECUTABLE_DEVICE_LINKER__test_correctness_Release + command = /home/richard/miniconda3/envs/bilateral-cuda124/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 CXX executable $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for linking CXX executable. + +rule CXX_EXECUTABLE_LINKER__test_correctness_Release + command = $PRE_LINK && /usr/bin/c++ $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX executable $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for compiling CUDA files. + +rule CUDA_COMPILER__test_performance_unscanned_Release + depfile = $DEP_FILE + deps = gcc + command = ${LAUNCHER}${CODE_CHECK}/home/richard/miniconda3/envs/bilateral-cuda124/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 compiling CXX files. + +rule CXX_COMPILER__test_performance_unscanned_Release + depfile = $DEP_FILE + deps = gcc + command = ${LAUNCHER}${CODE_CHECK}/usr/bin/c++ $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building CXX object $out + + +############################################# +# Rule for linking CXX executable. + +rule CXX_EXECUTABLE_DEVICE_LINKER__test_performance_Release + command = /home/richard/miniconda3/envs/bilateral-cuda124/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 CXX executable $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for linking CXX executable. + +rule CXX_EXECUTABLE_LINKER__test_performance_Release + command = $PRE_LINK && /usr/bin/c++ $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX 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 = /home/richard/miniconda3/envs/bilateral-cuda124/bin/cmake --regenerate-during-build -S/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard -B/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/richard/miniconda3/envs/bilateral-cuda124/bin/ninja $FILE_ARG -t clean $TARGETS + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/richard/miniconda3/envs/bilateral-cuda124/bin/ninja -t targets + description = All primary targets available: + diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/cmake_device_link.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/cmake_device_link.o new file mode 100644 index 0000000..9022fc4 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/cmake_device_link.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/bilateral_filter.cu.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/bilateral_filter.cu.o new file mode 100644 index 0000000..24525d8 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/bilateral_filter.cu.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/io.cpp.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/io.cpp.o new file mode 100644 index 0000000..e2d03ac Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/io.cpp.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/metrics.cpp.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/metrics.cpp.o new file mode 100644 index 0000000..7563d3f Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/metrics.cpp.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/reference.cpp.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/reference.cpp.o new file mode 100644 index 0000000..ad46951 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/reference.cpp.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/test/test_correctness.cpp.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/test/test_correctness.cpp.o new file mode 100644 index 0000000..4967de5 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/test/test_correctness.cpp.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/cmake_device_link.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/cmake_device_link.o new file mode 100644 index 0000000..9022fc4 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/cmake_device_link.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/bilateral_filter.cu.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/bilateral_filter.cu.o new file mode 100644 index 0000000..4b8f6ae Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/bilateral_filter.cu.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/io.cpp.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/io.cpp.o new file mode 100644 index 0000000..e2d03ac Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/io.cpp.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/metrics.cpp.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/metrics.cpp.o new file mode 100644 index 0000000..7563d3f Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/metrics.cpp.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/reference.cpp.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/reference.cpp.o new file mode 100644 index 0000000..ad46951 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/reference.cpp.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/test/test_performance.cpp.o b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/test/test_performance.cpp.o new file mode 100644 index 0000000..7b44f46 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/test/test_performance.cpp.o differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/CTestTestfile.cmake b/08_bilateral_filter/MLRichard/build/conda-release/CTestTestfile.cmake new file mode 100644 index 0000000..1fec3ca --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/CTestTestfile.cmake @@ -0,0 +1,10 @@ +# CMake generated Testfile for +# Source directory: /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard +# Build directory: /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +add_test([=[correctness]=] "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/test_correctness") +set_tests_properties([=[correctness]=] PROPERTIES LABELS "correctness" _BACKTRACE_TRIPLES "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/CMakeLists.txt;48;add_test;/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/CMakeLists.txt;0;") +add_test([=[performance]=] "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/test_performance") +set_tests_properties([=[performance]=] PROPERTIES LABELS "performance;benchmark" _BACKTRACE_TRIPLES "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/CMakeLists.txt;51;add_test;/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/CMakeLists.txt;0;") diff --git a/08_bilateral_filter/MLRichard/build/conda-release/DartConfiguration.tcl b/08_bilateral_filter/MLRichard/build/conda-release/DartConfiguration.tcl new file mode 100644 index 0000000..9c593eb --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/DartConfiguration.tcl @@ -0,0 +1,109 @@ +# This file is configured by CMake automatically as DartConfiguration.tcl +# If you choose not to use CMake, this file may be hand configured, by +# filling in the required variables. + + +# Configuration directories and files +SourceDirectory: /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard +BuildDirectory: /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release + +# Where to place the cost data store +CostDataFile: + +# Site is something like machine.domain, i.e. pragmatic.crd +Site: Desktop + +# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++ +BuildName: Linux-c++ + +# Subprojects +LabelsForSubprojects: + +# Submission information +SubmitURL: http:// +SubmitInactivityTimeout: + +# Dashboard start time +NightlyStartTime: 00:00:00 EDT + +# Commands for the build/test/submit cycle +ConfigureCommand: "/home/richard/miniconda3/envs/bilateral-cuda124/bin/cmake" "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard" +MakeCommand: /home/richard/miniconda3/envs/bilateral-cuda124/bin/cmake --build . --config "${CTEST_CONFIGURATION_TYPE}" +DefaultCTestConfigurationType: Release + +# version control +UpdateVersionOnly: + +# CVS options +# Default is "-d -P -A" +CVSCommand: +CVSUpdateOptions: + +# Subversion options +SVNCommand: +SVNOptions: +SVNUpdateOptions: + +# Git options +GITCommand: +GITInitSubmodules: +GITUpdateOptions: +GITUpdateCustom: + +# Perforce options +P4Command: +P4Client: +P4Options: +P4UpdateOptions: +P4UpdateCustom: + +# Generic update command +UpdateCommand: +UpdateOptions: +UpdateType: + +# Compiler info +Compiler: /usr/bin/c++ +CompilerVersion: 11.4.0 + +# Dynamic analysis (MemCheck) +PurifyCommand: +ValgrindCommand: +ValgrindCommandOptions: +DrMemoryCommand: +DrMemoryCommandOptions: +CudaSanitizerCommand: +CudaSanitizerCommandOptions: +MemoryCheckType: +MemoryCheckSanitizerOptions: +MemoryCheckCommand: /home/richard/miniconda3/envs/bilateral-cuda124/bin/compute-sanitizer +MemoryCheckCommandOptions: +MemoryCheckSuppressionFile: + +# Coverage +CoverageCommand: /usr/bin/gcov +CoverageExtraFlags: -l + +# Testing options +# TimeOut is the amount of time in seconds to wait for processes +# to complete during testing. After TimeOut seconds, the +# process will be summarily terminated. +# Currently set to 25 minutes +TimeOut: 1500 + +# During parallel testing CTest will not start a new test if doing +# so would cause the system load to exceed this value. +TestLoad: + +TLSVerify: +TLSVersion: + +UseLaunchers: +CurlOptions: +# warning, if you add new options here that have to do with submit, +# you have to update cmCTestSubmitCommand.cxx + +# For CTest submissions that timeout, these options +# specify behavior for retrying the submission +CTestSubmitRetryDelay: 5 +CTestSubmitRetryCount: 3 diff --git a/08_bilateral_filter/MLRichard/build/conda-release/Testing/Temporary/CTestCostData.txt b/08_bilateral_filter/MLRichard/build/conda-release/Testing/Temporary/CTestCostData.txt new file mode 100644 index 0000000..4774c40 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/Testing/Temporary/CTestCostData.txt @@ -0,0 +1,3 @@ +correctness 1 0.369481 +performance 1 1.94391 +--- diff --git a/08_bilateral_filter/MLRichard/build/conda-release/Testing/Temporary/LastTest.log b/08_bilateral_filter/MLRichard/build/conda-release/Testing/Temporary/LastTest.log new file mode 100644 index 0000000..5f0b363 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/Testing/Temporary/LastTest.log @@ -0,0 +1,54 @@ +Start testing: Mar 15 16:52 CST +---------------------------------------------------------- +1/2 Testing: correctness +1/2 Test: correctness +Command: "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/test_correctness" +Directory: /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release +"correctness" start time: Mar 15 16:52 CST +Output: +---------------------------------------------------------- +[naive_gray] W=512 H=512 C=1 MAE=0.7235 PSNR=48.84 dB PASS +[naive_rgb] W=512 H=512 C=3 MAE=0.4779 PSNR=51.52 dB PASS +[shared_gray] W=512 H=512 C=1 MAE=0.7651 PSNR=47.62 dB PASS +[shared_rgb] W=512 H=512 C=3 MAE=0.4920 PSNR=50.86 dB PASS +[adaptive_rgb] W=512 H=512 C=3 MAE=0.7010 PSNR=47.41 dB PASS +All tests passed! + +Test time = 0.37 sec +---------------------------------------------------------- +Test Passed. +"correctness" end time: Mar 15 16:52 CST +"correctness" time elapsed: 00:00:00 +---------------------------------------------------------- + +2/2 Testing: performance +2/2 Test: performance +Command: "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/test_performance" +Directory: /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release +"performance" start time: Mar 15 16:52 CST +Output: +---------------------------------------------------------- +=== Bilateral Filter Benchmark === + +[naive_512_rgb ] 512x512 C=3 GPU=0.33ms Throughput=805.9MPix/s CPU=19.1ms Speedup=58.8x MAE=0.4780 PSNR=51.52dB +[shared_512_rgb ] 512x512 C=3 GPU=0.28ms Throughput=941.9MPix/s CPU=3.4ms Speedup=12.2x MAE=0.4922 PSNR=50.83dB +[adaptive_512_rgb ] 512x512 C=3 GPU=0.81ms Throughput=322.9MPix/s CPU=26.3ms Speedup=32.4x MAE=0.7032 PSNR=47.37dB +[naive_4K_rgb ] 3840x2160 C=3 GPU=7.54ms Throughput=1100.3MPix/s CPU=124.8ms Speedup=16.6x MAE=0.4735 PSNR=51.64dB +[shared_4K_rgb ] 3840x2160 C=3 GPU=5.98ms Throughput=1386.2MPix/s CPU=150.9ms Speedup=25.2x MAE=0.4762 PSNR=51.50dB +[adaptive_4K_rgb ] 3840x2160 C=3 GPU=5.99ms Throughput=1385.3MPix/s CPU=114.7ms Speedup=19.2x MAE=0.6957 PSNR=47.54dB + +Test time = 1.94 sec +---------------------------------------------------------- +Test Passed. +"performance" end time: Mar 15 16:52 CST +"performance" time elapsed: 00:00:01 +---------------------------------------------------------- + +End testing: Mar 15 16:52 CST + +benchmark = 1.94 sec*proc + +correctness = 0.37 sec*proc + +performance = 1.94 sec*proc + diff --git a/08_bilateral_filter/MLRichard/build/conda-release/Testing/Temporary/LastTestsFailed.log b/08_bilateral_filter/MLRichard/build/conda-release/Testing/Temporary/LastTestsFailed.log new file mode 100644 index 0000000..baef8a0 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/Testing/Temporary/LastTestsFailed.log @@ -0,0 +1,2 @@ +1:correctness +2:performance diff --git a/08_bilateral_filter/MLRichard/build/conda-release/bilateral_filter b/08_bilateral_filter/MLRichard/build/conda-release/bilateral_filter new file mode 100755 index 0000000..68d6f08 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/bilateral_filter differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/build.ninja b/08_bilateral_filter/MLRichard/build/conda-release/build.ninja new file mode 100644 index 0000000..860484a --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/build.ninja @@ -0,0 +1,822 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 4.2 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: bilateral_filter +# Configurations: Release +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + + +############################################# +# Set configuration variable for custom commands. + +CONFIGURATION = Release +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include CMakeFiles/rules.ninja + +# ============================================================================= + +############################################# +# Logical path to working directory; prefix for absolute paths. + +cmake_ninja_workdir = /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/ + +############################################# +# Utility command for Experimental + +build Experimental: phony CMakeFiles/Experimental + + +############################################# +# Utility command for Nightly + +build Nightly: phony CMakeFiles/Nightly + + +############################################# +# Utility command for Continuous + +build Continuous: phony CMakeFiles/Continuous + + +############################################# +# Utility command for NightlyMemoryCheck + +build NightlyMemoryCheck: phony CMakeFiles/NightlyMemoryCheck + + +############################################# +# Utility command for NightlyStart + +build NightlyStart: phony CMakeFiles/NightlyStart + + +############################################# +# Utility command for NightlyUpdate + +build NightlyUpdate: phony CMakeFiles/NightlyUpdate + + +############################################# +# Utility command for NightlyConfigure + +build NightlyConfigure: phony CMakeFiles/NightlyConfigure + + +############################################# +# Utility command for NightlyBuild + +build NightlyBuild: phony CMakeFiles/NightlyBuild + + +############################################# +# Utility command for NightlyTest + +build NightlyTest: phony CMakeFiles/NightlyTest + + +############################################# +# Utility command for NightlyCoverage + +build NightlyCoverage: phony CMakeFiles/NightlyCoverage + + +############################################# +# Utility command for NightlyMemCheck + +build NightlyMemCheck: phony CMakeFiles/NightlyMemCheck + + +############################################# +# Utility command for NightlySubmit + +build NightlySubmit: phony CMakeFiles/NightlySubmit + + +############################################# +# Utility command for ExperimentalStart + +build ExperimentalStart: phony CMakeFiles/ExperimentalStart + + +############################################# +# Utility command for ExperimentalUpdate + +build ExperimentalUpdate: phony CMakeFiles/ExperimentalUpdate + + +############################################# +# Utility command for ExperimentalConfigure + +build ExperimentalConfigure: phony CMakeFiles/ExperimentalConfigure + + +############################################# +# Utility command for ExperimentalBuild + +build ExperimentalBuild: phony CMakeFiles/ExperimentalBuild + + +############################################# +# Utility command for ExperimentalTest + +build ExperimentalTest: phony CMakeFiles/ExperimentalTest + + +############################################# +# Utility command for ExperimentalCoverage + +build ExperimentalCoverage: phony CMakeFiles/ExperimentalCoverage + + +############################################# +# Utility command for ExperimentalMemCheck + +build ExperimentalMemCheck: phony CMakeFiles/ExperimentalMemCheck + + +############################################# +# Utility command for ExperimentalSubmit + +build ExperimentalSubmit: phony CMakeFiles/ExperimentalSubmit + + +############################################# +# Utility command for ContinuousStart + +build ContinuousStart: phony CMakeFiles/ContinuousStart + + +############################################# +# Utility command for ContinuousUpdate + +build ContinuousUpdate: phony CMakeFiles/ContinuousUpdate + + +############################################# +# Utility command for ContinuousConfigure + +build ContinuousConfigure: phony CMakeFiles/ContinuousConfigure + + +############################################# +# Utility command for ContinuousBuild + +build ContinuousBuild: phony CMakeFiles/ContinuousBuild + + +############################################# +# Utility command for ContinuousTest + +build ContinuousTest: phony CMakeFiles/ContinuousTest + + +############################################# +# Utility command for ContinuousCoverage + +build ContinuousCoverage: phony CMakeFiles/ContinuousCoverage + + +############################################# +# Utility command for ContinuousMemCheck + +build ContinuousMemCheck: phony CMakeFiles/ContinuousMemCheck + + +############################################# +# Utility command for ContinuousSubmit + +build ContinuousSubmit: phony CMakeFiles/ContinuousSubmit + +# ============================================================================= +# Object build statements for EXECUTABLE target bilateral_filter + + +############################################# +# Order-only phony target for bilateral_filter + +build cmake_object_order_depends_target_bilateral_filter: phony || . + +build CMakeFiles/bilateral_filter.dir/src/main.cu.o: CUDA_COMPILER__bilateral_filter_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/main.cu || cmake_object_order_depends_target_bilateral_filter + CONFIG = Release + DEP_FILE = CMakeFiles/bilateral_filter.dir/src/main.cu.o.d + FLAGS = -O3 -DNDEBUG -std=c++17 "--generate-code=arch=compute_75,code=[compute_75,sm_75]" "--generate-code=arch=compute_80,code=[compute_80,sm_80]" "--generate-code=arch=compute_86,code=[compute_86,sm_86]" "--generate-code=arch=compute_89,code=[compute_89,sm_89]" + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/bilateral_filter.dir + OBJECT_FILE_DIR = CMakeFiles/bilateral_filter.dir/src + TARGET_COMPILE_PDB = CMakeFiles/bilateral_filter.dir/ + TARGET_PDB = bilateral_filter.pdb + TARGET_SUPPORT_DIR = CMakeFiles/bilateral_filter.dir + +build CMakeFiles/bilateral_filter.dir/src/bilateral_filter.cu.o: CUDA_COMPILER__bilateral_filter_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/bilateral_filter.cu || cmake_object_order_depends_target_bilateral_filter + CONFIG = Release + DEP_FILE = CMakeFiles/bilateral_filter.dir/src/bilateral_filter.cu.o.d + FLAGS = -O3 -DNDEBUG -std=c++17 "--generate-code=arch=compute_75,code=[compute_75,sm_75]" "--generate-code=arch=compute_80,code=[compute_80,sm_80]" "--generate-code=arch=compute_86,code=[compute_86,sm_86]" "--generate-code=arch=compute_89,code=[compute_89,sm_89]" + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/bilateral_filter.dir + OBJECT_FILE_DIR = CMakeFiles/bilateral_filter.dir/src + TARGET_COMPILE_PDB = CMakeFiles/bilateral_filter.dir/ + TARGET_PDB = bilateral_filter.pdb + TARGET_SUPPORT_DIR = CMakeFiles/bilateral_filter.dir + +build CMakeFiles/bilateral_filter.dir/src/io.cpp.o: CXX_COMPILER__bilateral_filter_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/io.cpp || cmake_object_order_depends_target_bilateral_filter + CONFIG = Release + DEP_FILE = CMakeFiles/bilateral_filter.dir/src/io.cpp.o.d + FLAGS = -O3 -DNDEBUG -std=gnu++17 + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/bilateral_filter.dir + OBJECT_FILE_DIR = CMakeFiles/bilateral_filter.dir/src + TARGET_COMPILE_PDB = CMakeFiles/bilateral_filter.dir/ + TARGET_PDB = bilateral_filter.pdb + TARGET_SUPPORT_DIR = CMakeFiles/bilateral_filter.dir + +build CMakeFiles/bilateral_filter.dir/src/reference.cpp.o: CXX_COMPILER__bilateral_filter_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/reference.cpp || cmake_object_order_depends_target_bilateral_filter + CONFIG = Release + DEP_FILE = CMakeFiles/bilateral_filter.dir/src/reference.cpp.o.d + FLAGS = -O3 -DNDEBUG -std=gnu++17 + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/bilateral_filter.dir + OBJECT_FILE_DIR = CMakeFiles/bilateral_filter.dir/src + TARGET_COMPILE_PDB = CMakeFiles/bilateral_filter.dir/ + TARGET_PDB = bilateral_filter.pdb + TARGET_SUPPORT_DIR = CMakeFiles/bilateral_filter.dir + +build CMakeFiles/bilateral_filter.dir/src/metrics.cpp.o: CXX_COMPILER__bilateral_filter_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/metrics.cpp || cmake_object_order_depends_target_bilateral_filter + CONFIG = Release + DEP_FILE = CMakeFiles/bilateral_filter.dir/src/metrics.cpp.o.d + FLAGS = -O3 -DNDEBUG -std=gnu++17 + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/bilateral_filter.dir + OBJECT_FILE_DIR = CMakeFiles/bilateral_filter.dir/src + TARGET_COMPILE_PDB = CMakeFiles/bilateral_filter.dir/ + TARGET_PDB = bilateral_filter.pdb + TARGET_SUPPORT_DIR = CMakeFiles/bilateral_filter.dir + + +# ============================================================================= +# Device Link build statements for EXECUTABLE target bilateral_filter + + +############################################# +# Link the executable CMakeFiles/bilateral_filter.dir/cmake_device_link.o + +build CMakeFiles/bilateral_filter.dir/cmake_device_link.o: CXX_EXECUTABLE_DEVICE_LINKER__bilateral_filter_Release CMakeFiles/bilateral_filter.dir/src/main.cu.o CMakeFiles/bilateral_filter.dir/src/bilateral_filter.cu.o CMakeFiles/bilateral_filter.dir/src/io.cpp.o CMakeFiles/bilateral_filter.dir/src/reference.cpp.o CMakeFiles/bilateral_filter.dir/src/metrics.cpp.o | /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_gapi.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stitching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_alphamat.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_aruco.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bgsegm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bioinspired.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ccalib.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_cvv.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dpm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_face.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_freetype.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_fuzzy.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hdf.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hfs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_img_hash.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_intensity_transform.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_line_descriptor.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_mcc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_quality.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rapid.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_reg.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rgbd.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_saliency.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_signal.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stereo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_structured_light.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_surface_matching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_tracking.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videostab.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_wechat_qrcode.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xfeatures2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xobjdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xphoto.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_shape.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_highgui.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_datasets.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_plot.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_text.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ml.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_phase_unwrapping.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_optflow.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ximgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_video.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videoio.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgcodecs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_calib3d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_features2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_flann.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_photo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_core.so.4.13.0 + LANGUAGE_COMPILE_FLAGS = -O3 -DNDEBUG "--generate-code=arch=compute_75,code=[compute_75,sm_75]" "--generate-code=arch=compute_80,code=[compute_80,sm_80]" "--generate-code=arch=compute_86,code=[compute_86,sm_86]" "--generate-code=arch=compute_89,code=[compute_89,sm_89]" + LINK_LIBRARIES = -lcudadevrt -lcudart_static -lrt -lpthread -ldl + LINK_PATH = -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs + OBJECT_DIR = CMakeFiles/bilateral_filter.dir + TARGET_COMPILE_PDB = CMakeFiles/bilateral_filter.dir/ + TARGET_FILE = CMakeFiles/bilateral_filter.dir/cmake_device_link.o + TARGET_PDB = bilateral_filter.pdb + TARGET_SUPPORT_DIR = CMakeFiles/bilateral_filter.dir + +# ============================================================================= +# Link build statements for EXECUTABLE target bilateral_filter + + +############################################# +# Link the executable bilateral_filter + +build bilateral_filter: CXX_EXECUTABLE_LINKER__bilateral_filter_Release CMakeFiles/bilateral_filter.dir/src/main.cu.o CMakeFiles/bilateral_filter.dir/src/bilateral_filter.cu.o CMakeFiles/bilateral_filter.dir/src/io.cpp.o CMakeFiles/bilateral_filter.dir/src/reference.cpp.o CMakeFiles/bilateral_filter.dir/src/metrics.cpp.o CMakeFiles/bilateral_filter.dir/cmake_device_link.o | /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_gapi.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stitching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_alphamat.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_aruco.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bgsegm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bioinspired.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ccalib.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_cvv.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dpm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_face.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_freetype.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_fuzzy.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hdf.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hfs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_img_hash.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_intensity_transform.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_line_descriptor.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_mcc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_quality.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rapid.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_reg.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rgbd.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_saliency.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_signal.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stereo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_structured_light.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_surface_matching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_tracking.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videostab.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_wechat_qrcode.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xfeatures2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xobjdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xphoto.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_shape.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_highgui.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_datasets.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_plot.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_text.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ml.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_phase_unwrapping.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_optflow.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ximgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_video.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videoio.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgcodecs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_calib3d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_features2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_flann.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_photo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_core.so.4.13.0 + CONFIG = Release + FLAGS = -O3 -DNDEBUG + LINK_LIBRARIES = /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_gapi.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stitching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_alphamat.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_aruco.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bgsegm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bioinspired.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ccalib.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_cvv.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dpm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_face.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_freetype.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_fuzzy.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hdf.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hfs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_img_hash.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_intensity_transform.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_line_descriptor.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_mcc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_quality.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rapid.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_reg.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rgbd.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_saliency.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_signal.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stereo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_structured_light.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_surface_matching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_tracking.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videostab.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_wechat_qrcode.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xfeatures2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xobjdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xphoto.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_shape.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_highgui.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_datasets.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_plot.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_text.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ml.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_phase_unwrapping.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_optflow.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ximgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_video.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videoio.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgcodecs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_calib3d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_features2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_flann.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_photo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_core.so.4.13.0 -lcudadevrt -lcudart_static -lrt -lpthread -ldl + LINK_PATH = -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs + OBJECT_DIR = CMakeFiles/bilateral_filter.dir + POST_BUILD = : + PRE_LINK = : + TARGET_COMPILE_PDB = CMakeFiles/bilateral_filter.dir/ + TARGET_FILE = bilateral_filter + TARGET_PDB = bilateral_filter.pdb + TARGET_SUPPORT_DIR = CMakeFiles/bilateral_filter.dir + +# ============================================================================= +# Object build statements for EXECUTABLE target test_correctness + + +############################################# +# Order-only phony target for test_correctness + +build cmake_object_order_depends_target_test_correctness: phony || . + +build CMakeFiles/test_correctness.dir/test/test_correctness.cpp.o: CXX_COMPILER__test_correctness_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/test/test_correctness.cpp || cmake_object_order_depends_target_test_correctness + CONFIG = Release + DEP_FILE = CMakeFiles/test_correctness.dir/test/test_correctness.cpp.o.d + FLAGS = -O3 -DNDEBUG -std=gnu++17 + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/test_correctness.dir + OBJECT_FILE_DIR = CMakeFiles/test_correctness.dir/test + TARGET_COMPILE_PDB = CMakeFiles/test_correctness.dir/ + TARGET_PDB = test_correctness.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_correctness.dir + +build CMakeFiles/test_correctness.dir/src/bilateral_filter.cu.o: CUDA_COMPILER__test_correctness_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/bilateral_filter.cu || cmake_object_order_depends_target_test_correctness + CONFIG = Release + DEP_FILE = CMakeFiles/test_correctness.dir/src/bilateral_filter.cu.o.d + FLAGS = -O3 -DNDEBUG -std=c++17 "--generate-code=arch=compute_75,code=[compute_75,sm_75]" "--generate-code=arch=compute_80,code=[compute_80,sm_80]" "--generate-code=arch=compute_86,code=[compute_86,sm_86]" "--generate-code=arch=compute_89,code=[compute_89,sm_89]" + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/test_correctness.dir + OBJECT_FILE_DIR = CMakeFiles/test_correctness.dir/src + TARGET_COMPILE_PDB = CMakeFiles/test_correctness.dir/ + TARGET_PDB = test_correctness.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_correctness.dir + +build CMakeFiles/test_correctness.dir/src/io.cpp.o: CXX_COMPILER__test_correctness_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/io.cpp || cmake_object_order_depends_target_test_correctness + CONFIG = Release + DEP_FILE = CMakeFiles/test_correctness.dir/src/io.cpp.o.d + FLAGS = -O3 -DNDEBUG -std=gnu++17 + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/test_correctness.dir + OBJECT_FILE_DIR = CMakeFiles/test_correctness.dir/src + TARGET_COMPILE_PDB = CMakeFiles/test_correctness.dir/ + TARGET_PDB = test_correctness.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_correctness.dir + +build CMakeFiles/test_correctness.dir/src/reference.cpp.o: CXX_COMPILER__test_correctness_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/reference.cpp || cmake_object_order_depends_target_test_correctness + CONFIG = Release + DEP_FILE = CMakeFiles/test_correctness.dir/src/reference.cpp.o.d + FLAGS = -O3 -DNDEBUG -std=gnu++17 + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/test_correctness.dir + OBJECT_FILE_DIR = CMakeFiles/test_correctness.dir/src + TARGET_COMPILE_PDB = CMakeFiles/test_correctness.dir/ + TARGET_PDB = test_correctness.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_correctness.dir + +build CMakeFiles/test_correctness.dir/src/metrics.cpp.o: CXX_COMPILER__test_correctness_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/metrics.cpp || cmake_object_order_depends_target_test_correctness + CONFIG = Release + DEP_FILE = CMakeFiles/test_correctness.dir/src/metrics.cpp.o.d + FLAGS = -O3 -DNDEBUG -std=gnu++17 + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/test_correctness.dir + OBJECT_FILE_DIR = CMakeFiles/test_correctness.dir/src + TARGET_COMPILE_PDB = CMakeFiles/test_correctness.dir/ + TARGET_PDB = test_correctness.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_correctness.dir + + +# ============================================================================= +# Device Link build statements for EXECUTABLE target test_correctness + + +############################################# +# Link the executable CMakeFiles/test_correctness.dir/cmake_device_link.o + +build CMakeFiles/test_correctness.dir/cmake_device_link.o: CXX_EXECUTABLE_DEVICE_LINKER__test_correctness_Release CMakeFiles/test_correctness.dir/test/test_correctness.cpp.o CMakeFiles/test_correctness.dir/src/bilateral_filter.cu.o CMakeFiles/test_correctness.dir/src/io.cpp.o CMakeFiles/test_correctness.dir/src/reference.cpp.o CMakeFiles/test_correctness.dir/src/metrics.cpp.o | /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_gapi.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stitching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_alphamat.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_aruco.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bgsegm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bioinspired.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ccalib.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_cvv.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dpm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_face.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_freetype.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_fuzzy.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hdf.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hfs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_img_hash.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_intensity_transform.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_line_descriptor.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_mcc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_quality.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rapid.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_reg.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rgbd.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_saliency.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_signal.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stereo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_structured_light.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_surface_matching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_tracking.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videostab.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_wechat_qrcode.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xfeatures2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xobjdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xphoto.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_shape.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_highgui.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_datasets.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_plot.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_text.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ml.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_phase_unwrapping.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_optflow.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ximgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_video.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videoio.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgcodecs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_calib3d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_features2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_flann.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_photo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_core.so.4.13.0 + LANGUAGE_COMPILE_FLAGS = -O3 -DNDEBUG "--generate-code=arch=compute_75,code=[compute_75,sm_75]" "--generate-code=arch=compute_80,code=[compute_80,sm_80]" "--generate-code=arch=compute_86,code=[compute_86,sm_86]" "--generate-code=arch=compute_89,code=[compute_89,sm_89]" + LINK_LIBRARIES = -lcudadevrt -lcudart_static -lrt -lpthread -ldl + LINK_PATH = -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs + OBJECT_DIR = CMakeFiles/test_correctness.dir + TARGET_COMPILE_PDB = CMakeFiles/test_correctness.dir/ + TARGET_FILE = CMakeFiles/test_correctness.dir/cmake_device_link.o + TARGET_PDB = test_correctness.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_correctness.dir + +# ============================================================================= +# Link build statements for EXECUTABLE target test_correctness + + +############################################# +# Link the executable test_correctness + +build test_correctness: CXX_EXECUTABLE_LINKER__test_correctness_Release CMakeFiles/test_correctness.dir/test/test_correctness.cpp.o CMakeFiles/test_correctness.dir/src/bilateral_filter.cu.o CMakeFiles/test_correctness.dir/src/io.cpp.o CMakeFiles/test_correctness.dir/src/reference.cpp.o CMakeFiles/test_correctness.dir/src/metrics.cpp.o CMakeFiles/test_correctness.dir/cmake_device_link.o | /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_gapi.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stitching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_alphamat.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_aruco.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bgsegm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bioinspired.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ccalib.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_cvv.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dpm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_face.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_freetype.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_fuzzy.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hdf.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hfs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_img_hash.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_intensity_transform.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_line_descriptor.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_mcc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_quality.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rapid.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_reg.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rgbd.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_saliency.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_signal.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stereo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_structured_light.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_surface_matching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_tracking.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videostab.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_wechat_qrcode.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xfeatures2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xobjdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xphoto.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_shape.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_highgui.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_datasets.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_plot.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_text.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ml.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_phase_unwrapping.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_optflow.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ximgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_video.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videoio.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgcodecs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_calib3d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_features2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_flann.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_photo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_core.so.4.13.0 + CONFIG = Release + FLAGS = -O3 -DNDEBUG + LINK_LIBRARIES = /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_gapi.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stitching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_alphamat.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_aruco.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bgsegm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bioinspired.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ccalib.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_cvv.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dpm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_face.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_freetype.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_fuzzy.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hdf.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hfs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_img_hash.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_intensity_transform.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_line_descriptor.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_mcc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_quality.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rapid.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_reg.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rgbd.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_saliency.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_signal.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stereo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_structured_light.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_surface_matching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_tracking.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videostab.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_wechat_qrcode.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xfeatures2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xobjdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xphoto.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_shape.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_highgui.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_datasets.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_plot.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_text.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ml.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_phase_unwrapping.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_optflow.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ximgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_video.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videoio.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgcodecs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_calib3d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_features2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_flann.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_photo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_core.so.4.13.0 -lcudadevrt -lcudart_static -lrt -lpthread -ldl + LINK_PATH = -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs + OBJECT_DIR = CMakeFiles/test_correctness.dir + POST_BUILD = : + PRE_LINK = : + TARGET_COMPILE_PDB = CMakeFiles/test_correctness.dir/ + TARGET_FILE = test_correctness + TARGET_PDB = test_correctness.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_correctness.dir + +# ============================================================================= +# Object build statements for EXECUTABLE target test_performance + + +############################################# +# Order-only phony target for test_performance + +build cmake_object_order_depends_target_test_performance: phony || . + +build CMakeFiles/test_performance.dir/test/test_performance.cpp.o: CXX_COMPILER__test_performance_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/test/test_performance.cpp || cmake_object_order_depends_target_test_performance + CONFIG = Release + DEP_FILE = CMakeFiles/test_performance.dir/test/test_performance.cpp.o.d + FLAGS = -O3 -DNDEBUG -std=gnu++17 + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/test_performance.dir + OBJECT_FILE_DIR = CMakeFiles/test_performance.dir/test + TARGET_COMPILE_PDB = CMakeFiles/test_performance.dir/ + TARGET_PDB = test_performance.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_performance.dir + +build CMakeFiles/test_performance.dir/src/bilateral_filter.cu.o: CUDA_COMPILER__test_performance_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/bilateral_filter.cu || cmake_object_order_depends_target_test_performance + CONFIG = Release + DEP_FILE = CMakeFiles/test_performance.dir/src/bilateral_filter.cu.o.d + FLAGS = -O3 -DNDEBUG -std=c++17 "--generate-code=arch=compute_75,code=[compute_75,sm_75]" "--generate-code=arch=compute_80,code=[compute_80,sm_80]" "--generate-code=arch=compute_86,code=[compute_86,sm_86]" "--generate-code=arch=compute_89,code=[compute_89,sm_89]" + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/test_performance.dir + OBJECT_FILE_DIR = CMakeFiles/test_performance.dir/src + TARGET_COMPILE_PDB = CMakeFiles/test_performance.dir/ + TARGET_PDB = test_performance.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_performance.dir + +build CMakeFiles/test_performance.dir/src/io.cpp.o: CXX_COMPILER__test_performance_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/io.cpp || cmake_object_order_depends_target_test_performance + CONFIG = Release + DEP_FILE = CMakeFiles/test_performance.dir/src/io.cpp.o.d + FLAGS = -O3 -DNDEBUG -std=gnu++17 + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/test_performance.dir + OBJECT_FILE_DIR = CMakeFiles/test_performance.dir/src + TARGET_COMPILE_PDB = CMakeFiles/test_performance.dir/ + TARGET_PDB = test_performance.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_performance.dir + +build CMakeFiles/test_performance.dir/src/reference.cpp.o: CXX_COMPILER__test_performance_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/reference.cpp || cmake_object_order_depends_target_test_performance + CONFIG = Release + DEP_FILE = CMakeFiles/test_performance.dir/src/reference.cpp.o.d + FLAGS = -O3 -DNDEBUG -std=gnu++17 + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/test_performance.dir + OBJECT_FILE_DIR = CMakeFiles/test_performance.dir/src + TARGET_COMPILE_PDB = CMakeFiles/test_performance.dir/ + TARGET_PDB = test_performance.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_performance.dir + +build CMakeFiles/test_performance.dir/src/metrics.cpp.o: CXX_COMPILER__test_performance_unscanned_Release /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/metrics.cpp || cmake_object_order_depends_target_test_performance + CONFIG = Release + DEP_FILE = CMakeFiles/test_performance.dir/src/metrics.cpp.o.d + FLAGS = -O3 -DNDEBUG -std=gnu++17 + INCLUDES = -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 + OBJECT_DIR = CMakeFiles/test_performance.dir + OBJECT_FILE_DIR = CMakeFiles/test_performance.dir/src + TARGET_COMPILE_PDB = CMakeFiles/test_performance.dir/ + TARGET_PDB = test_performance.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_performance.dir + + +# ============================================================================= +# Device Link build statements for EXECUTABLE target test_performance + + +############################################# +# Link the executable CMakeFiles/test_performance.dir/cmake_device_link.o + +build CMakeFiles/test_performance.dir/cmake_device_link.o: CXX_EXECUTABLE_DEVICE_LINKER__test_performance_Release CMakeFiles/test_performance.dir/test/test_performance.cpp.o CMakeFiles/test_performance.dir/src/bilateral_filter.cu.o CMakeFiles/test_performance.dir/src/io.cpp.o CMakeFiles/test_performance.dir/src/reference.cpp.o CMakeFiles/test_performance.dir/src/metrics.cpp.o | /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_gapi.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stitching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_alphamat.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_aruco.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bgsegm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bioinspired.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ccalib.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_cvv.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dpm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_face.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_freetype.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_fuzzy.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hdf.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hfs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_img_hash.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_intensity_transform.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_line_descriptor.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_mcc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_quality.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rapid.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_reg.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rgbd.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_saliency.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_signal.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stereo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_structured_light.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_surface_matching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_tracking.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videostab.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_wechat_qrcode.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xfeatures2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xobjdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xphoto.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_shape.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_highgui.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_datasets.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_plot.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_text.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ml.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_phase_unwrapping.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_optflow.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ximgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_video.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videoio.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgcodecs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_calib3d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_features2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_flann.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_photo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_core.so.4.13.0 + LANGUAGE_COMPILE_FLAGS = -O3 -DNDEBUG "--generate-code=arch=compute_75,code=[compute_75,sm_75]" "--generate-code=arch=compute_80,code=[compute_80,sm_80]" "--generate-code=arch=compute_86,code=[compute_86,sm_86]" "--generate-code=arch=compute_89,code=[compute_89,sm_89]" + LINK_LIBRARIES = -lcudadevrt -lcudart_static -lrt -lpthread -ldl + LINK_PATH = -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs + OBJECT_DIR = CMakeFiles/test_performance.dir + TARGET_COMPILE_PDB = CMakeFiles/test_performance.dir/ + TARGET_FILE = CMakeFiles/test_performance.dir/cmake_device_link.o + TARGET_PDB = test_performance.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_performance.dir + +# ============================================================================= +# Link build statements for EXECUTABLE target test_performance + + +############################################# +# Link the executable test_performance + +build test_performance: CXX_EXECUTABLE_LINKER__test_performance_Release CMakeFiles/test_performance.dir/test/test_performance.cpp.o CMakeFiles/test_performance.dir/src/bilateral_filter.cu.o CMakeFiles/test_performance.dir/src/io.cpp.o CMakeFiles/test_performance.dir/src/reference.cpp.o CMakeFiles/test_performance.dir/src/metrics.cpp.o CMakeFiles/test_performance.dir/cmake_device_link.o | /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_gapi.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stitching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_alphamat.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_aruco.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bgsegm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bioinspired.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ccalib.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_cvv.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dpm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_face.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_freetype.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_fuzzy.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hdf.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hfs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_img_hash.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_intensity_transform.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_line_descriptor.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_mcc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_quality.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rapid.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_reg.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rgbd.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_saliency.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_signal.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stereo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_structured_light.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_surface_matching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_tracking.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videostab.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_wechat_qrcode.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xfeatures2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xobjdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xphoto.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_shape.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_highgui.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_datasets.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_plot.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_text.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ml.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_phase_unwrapping.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_optflow.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ximgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_video.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videoio.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgcodecs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_calib3d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_features2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_flann.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_photo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_core.so.4.13.0 + CONFIG = Release + FLAGS = -O3 -DNDEBUG + LINK_LIBRARIES = /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_gapi.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stitching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_alphamat.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_aruco.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bgsegm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_bioinspired.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ccalib.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_cvv.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dpm.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_face.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_freetype.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_fuzzy.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hdf.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_hfs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_img_hash.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_intensity_transform.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_line_descriptor.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_mcc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_quality.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rapid.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_reg.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_rgbd.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_saliency.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_signal.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_stereo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_structured_light.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_superres.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_surface_matching.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_tracking.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videostab.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_wechat_qrcode.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xfeatures2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xobjdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_xphoto.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_shape.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_highgui.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_datasets.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_plot.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_text.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ml.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_phase_unwrapping.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_optflow.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_ximgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_video.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_videoio.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgcodecs.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_objdetect.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_calib3d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_dnn.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_features2d.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_flann.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_photo.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_imgproc.so.4.13.0 /home/richard/miniconda3/envs/bilateral-cuda124/lib/libopencv_core.so.4.13.0 -lcudadevrt -lcudart_static -lrt -lpthread -ldl + LINK_PATH = -L/home/richard/miniconda3/envs/bilateral-cuda124/lib/stubs + OBJECT_DIR = CMakeFiles/test_performance.dir + POST_BUILD = : + PRE_LINK = : + TARGET_COMPILE_PDB = CMakeFiles/test_performance.dir/ + TARGET_FILE = test_performance + TARGET_PDB = test_performance.pdb + TARGET_SUPPORT_DIR = CMakeFiles/test_performance.dir + + +############################################# +# Utility command for test + +build CMakeFiles/test.util: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest + DESC = Running tests... + pool = console + restat = 1 + +build test: phony CMakeFiles/test.util + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ccmake -S/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard -B/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release + 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/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/cmake --regenerate-during-build -S/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard -B/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build rebuild_cache: phony CMakeFiles/rebuild_cache.util + + +############################################# +# Custom command for CMakeFiles/Experimental + +build CMakeFiles/Experimental | ${cmake_ninja_workdir}CMakeFiles/Experimental: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Experimental -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/Nightly + +build CMakeFiles/Nightly | ${cmake_ninja_workdir}CMakeFiles/Nightly: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Nightly -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/Continuous + +build CMakeFiles/Continuous | ${cmake_ninja_workdir}CMakeFiles/Continuous: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Continuous -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/NightlyMemoryCheck + +build CMakeFiles/NightlyMemoryCheck | ${cmake_ninja_workdir}CMakeFiles/NightlyMemoryCheck: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=NightlyMemoryCheck -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/NightlyStart + +build CMakeFiles/NightlyStart | ${cmake_ninja_workdir}CMakeFiles/NightlyStart: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Nightly -DACTIONS=Start -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/NightlyUpdate + +build CMakeFiles/NightlyUpdate | ${cmake_ninja_workdir}CMakeFiles/NightlyUpdate: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Nightly -DACTIONS=Update -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/NightlyConfigure + +build CMakeFiles/NightlyConfigure | ${cmake_ninja_workdir}CMakeFiles/NightlyConfigure: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Nightly -DACTIONS=Configure -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/NightlyBuild + +build CMakeFiles/NightlyBuild | ${cmake_ninja_workdir}CMakeFiles/NightlyBuild: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Nightly -DACTIONS=Build -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/NightlyTest + +build CMakeFiles/NightlyTest | ${cmake_ninja_workdir}CMakeFiles/NightlyTest: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Nightly -DACTIONS=Test -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/NightlyCoverage + +build CMakeFiles/NightlyCoverage | ${cmake_ninja_workdir}CMakeFiles/NightlyCoverage: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Nightly -DACTIONS=Coverage -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/NightlyMemCheck + +build CMakeFiles/NightlyMemCheck | ${cmake_ninja_workdir}CMakeFiles/NightlyMemCheck: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Nightly -DACTIONS=MemCheck -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/NightlySubmit + +build CMakeFiles/NightlySubmit | ${cmake_ninja_workdir}CMakeFiles/NightlySubmit: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Nightly -DACTIONS=Submit -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ExperimentalStart + +build CMakeFiles/ExperimentalStart | ${cmake_ninja_workdir}CMakeFiles/ExperimentalStart: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Experimental -DACTIONS=Start -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ExperimentalUpdate + +build CMakeFiles/ExperimentalUpdate | ${cmake_ninja_workdir}CMakeFiles/ExperimentalUpdate: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Experimental -DACTIONS=Update -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ExperimentalConfigure + +build CMakeFiles/ExperimentalConfigure | ${cmake_ninja_workdir}CMakeFiles/ExperimentalConfigure: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Experimental -DACTIONS=Configure -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ExperimentalBuild + +build CMakeFiles/ExperimentalBuild | ${cmake_ninja_workdir}CMakeFiles/ExperimentalBuild: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Experimental -DACTIONS=Build -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ExperimentalTest + +build CMakeFiles/ExperimentalTest | ${cmake_ninja_workdir}CMakeFiles/ExperimentalTest: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Experimental -DACTIONS=Test -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ExperimentalCoverage + +build CMakeFiles/ExperimentalCoverage | ${cmake_ninja_workdir}CMakeFiles/ExperimentalCoverage: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Experimental -DACTIONS=Coverage -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ExperimentalMemCheck + +build CMakeFiles/ExperimentalMemCheck | ${cmake_ninja_workdir}CMakeFiles/ExperimentalMemCheck: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Experimental -DACTIONS=MemCheck -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ExperimentalSubmit + +build CMakeFiles/ExperimentalSubmit | ${cmake_ninja_workdir}CMakeFiles/ExperimentalSubmit: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Experimental -DACTIONS=Submit -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ContinuousStart + +build CMakeFiles/ContinuousStart | ${cmake_ninja_workdir}CMakeFiles/ContinuousStart: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Continuous -DACTIONS=Start -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ContinuousUpdate + +build CMakeFiles/ContinuousUpdate | ${cmake_ninja_workdir}CMakeFiles/ContinuousUpdate: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Continuous -DACTIONS=Update -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ContinuousConfigure + +build CMakeFiles/ContinuousConfigure | ${cmake_ninja_workdir}CMakeFiles/ContinuousConfigure: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Continuous -DACTIONS=Configure -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ContinuousBuild + +build CMakeFiles/ContinuousBuild | ${cmake_ninja_workdir}CMakeFiles/ContinuousBuild: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Continuous -DACTIONS=Build -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ContinuousTest + +build CMakeFiles/ContinuousTest | ${cmake_ninja_workdir}CMakeFiles/ContinuousTest: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Continuous -DACTIONS=Test -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ContinuousCoverage + +build CMakeFiles/ContinuousCoverage | ${cmake_ninja_workdir}CMakeFiles/ContinuousCoverage: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Continuous -DACTIONS=Coverage -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ContinuousMemCheck + +build CMakeFiles/ContinuousMemCheck | ${cmake_ninja_workdir}CMakeFiles/ContinuousMemCheck: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Continuous -DACTIONS=MemCheck -S CMakeFiles/CTestScript.cmake -V + pool = console + + +############################################# +# Custom command for CMakeFiles/ContinuousSubmit + +build CMakeFiles/ContinuousSubmit | ${cmake_ninja_workdir}CMakeFiles/ContinuousSubmit: CUSTOM_COMMAND + COMMAND = cd /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release && /home/richard/miniconda3/envs/bilateral-cuda124/bin/ctest -DMODEL=Continuous -DACTIONS=Submit -S CMakeFiles/CTestScript.cmake -V + pool = console + +# ============================================================================= +# Target aliases. + +# ============================================================================= +# Folder targets. + +# ============================================================================= + +############################################# +# Folder: /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release + +build all: phony bilateral_filter test_correctness test_performance + +# ============================================================================= +# Built-in targets + + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/cmake_install.cmake /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CTestTestfile.cmake: RERUN_CMAKE | /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/CMakeLists.txt /home/richard/miniconda3/envs/bilateral-cuda124/lib/cmake/opencv4/OpenCVConfig-version.cmake /home/richard/miniconda3/envs/bilateral-cuda124/lib/cmake/opencv4/OpenCVConfig.cmake /home/richard/miniconda3/envs/bilateral-cuda124/lib/cmake/opencv4/OpenCVModules-release.cmake /home/richard/miniconda3/envs/bilateral-cuda124/lib/cmake/opencv4/OpenCVModules.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCUDACompiler.cmake.in /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCUDACompilerABI.cu /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCUDAInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCXXCompiler.cmake.in /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCXXCompilerABI.cpp /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCXXInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCommonLanguageInclude.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCompilerIdDetection.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCXXCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerSupport.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineSystem.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeGenericSystem.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeInitializeConfigs.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeLanguageInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeNinjaFindMake.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeParseImplicitIncludeInfo.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeParseImplicitLinkInfo.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeParseLibraryArchitecture.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeSystem.cmake.in /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeSystemSpecificInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeSystemSpecificInitialize.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeTestCUDACompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeTestCXXCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeTestCompilerCommon.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CTest.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CTestTargets.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CTestUseLaunchers.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/ADSP-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/ARMCC-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/ARMClang-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/AppleClang-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Borland-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Clang-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Cray-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/CrayClang-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Diab-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GHS-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU-CXX-CXXImportStd.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU-CXX.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU-FindBinUtils.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/HP-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/IAR-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Intel-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/LCC-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/MSVC-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/NVHPC-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/NVIDIA-CUDA.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/NVIDIA.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/OrangeC-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/PGI-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/PathScale-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Renesas-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/SCO-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/TI-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/TIClang-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Tasking-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Watcom-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/XL-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/zOS-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/DartConfiguration.tcl.in /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/FindPackageHandleStandardArgs.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/FindPackageMessage.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCUDAArchitecturesAll.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCUDAArchitecturesNative.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCUDAArchitecturesValidate.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCUDAFilterImplicitLibs.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCUDAFindToolkit.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCUDALinkerInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCXXLinkerInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCommonLinkerInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeDetermineLinkerId.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeInspectCUDALinker.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeInspectCXXLinker.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeNVCCFilterImplicitInfo.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeNVCCParseImplicitInfo.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/FeatureTesting.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Linker/GNU-CUDA.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Linker/GNU-CXX.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Linker/GNU.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linker/GNU.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU-CUDA.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU-CXX.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linux-Determine-CXX.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linux-GNU-CXX.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linux-GNU.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linux-Initialize.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linux-NVIDIA-CUDA.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linux.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/UnixPaths.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Templates/CTestScript.cmake.in CMakeCache.txt CMakeFiles/4.2.3/CMakeCUDACompiler.cmake CMakeFiles/4.2.3/CMakeCXXCompiler.cmake CMakeFiles/4.2.3/CMakeSystem.cmake + pool = console + + +############################################# +# A missing CMake input file is not an error. + +build /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/CMakeLists.txt /home/richard/miniconda3/envs/bilateral-cuda124/lib/cmake/opencv4/OpenCVConfig-version.cmake /home/richard/miniconda3/envs/bilateral-cuda124/lib/cmake/opencv4/OpenCVConfig.cmake /home/richard/miniconda3/envs/bilateral-cuda124/lib/cmake/opencv4/OpenCVModules-release.cmake /home/richard/miniconda3/envs/bilateral-cuda124/lib/cmake/opencv4/OpenCVModules.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCUDACompiler.cmake.in /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCUDACompilerABI.cu /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCUDAInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCXXCompiler.cmake.in /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCXXCompilerABI.cpp /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCXXInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCommonLanguageInclude.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeCompilerIdDetection.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCUDACompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCXXCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineCompilerSupport.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeDetermineSystem.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeGenericSystem.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeInitializeConfigs.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeLanguageInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeNinjaFindMake.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeParseImplicitIncludeInfo.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeParseImplicitLinkInfo.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeParseLibraryArchitecture.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeSystem.cmake.in /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeSystemSpecificInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeSystemSpecificInitialize.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeTestCUDACompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeTestCXXCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CMakeTestCompilerCommon.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CTest.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CTestTargets.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/CTestUseLaunchers.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/ADSP-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/ARMCC-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/ARMClang-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/AppleClang-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Borland-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Clang-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Cray-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/CrayClang-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Diab-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GHS-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU-CXX-CXXImportStd.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU-CXX.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU-FindBinUtils.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/GNU.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/HP-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/IAR-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Intel-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/LCC-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/MSVC-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/NVHPC-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/NVIDIA-CUDA.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/NVIDIA.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/OrangeC-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/PGI-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/PathScale-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Renesas-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/SCO-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/TI-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/TIClang-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Tasking-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/Watcom-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/XL-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/zOS-C-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/DartConfiguration.tcl.in /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/FindPackageHandleStandardArgs.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/FindPackageMessage.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCUDAArchitecturesAll.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCUDAArchitecturesNative.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCUDAArchitecturesValidate.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCUDAFilterImplicitLibs.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCUDAFindToolkit.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCUDALinkerInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCXXLinkerInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeCommonLinkerInformation.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeDetermineLinkerId.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeInspectCUDALinker.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeInspectCXXLinker.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeNVCCFilterImplicitInfo.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/CMakeNVCCParseImplicitInfo.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Internal/FeatureTesting.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Linker/GNU-CUDA.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Linker/GNU-CXX.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Linker/GNU.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linker/GNU.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU-CUDA.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU-CXX.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linux-Determine-CXX.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linux-GNU-CXX.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linux-GNU.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linux-Initialize.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linux-NVIDIA-CUDA.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/Linux.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Modules/Platform/UnixPaths.cmake /home/richard/miniconda3/envs/bilateral-cuda124/share/cmake-4.2/Templates/CTestScript.cmake.in CMakeCache.txt CMakeFiles/4.2.3/CMakeCUDACompiler.cmake CMakeFiles/4.2.3/CMakeCXXCompiler.cmake CMakeFiles/4.2.3/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/08_bilateral_filter/MLRichard/build/conda-release/cmake_install.cmake b/08_bilateral_filter/MLRichard/build/conda-release/cmake_install.cmake new file mode 100644 index 0000000..5ebdff5 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/cmake_install.cmake @@ -0,0 +1,66 @@ +# Install script for directory: /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard + +# 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 "Release") + 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 "1") +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/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/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/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") +endif() diff --git a/08_bilateral_filter/MLRichard/build/conda-release/compile_commands.json b/08_bilateral_filter/MLRichard/build/conda-release/compile_commands.json new file mode 100644 index 0000000..b5f6403 --- /dev/null +++ b/08_bilateral_filter/MLRichard/build/conda-release/compile_commands.json @@ -0,0 +1,92 @@ +[ +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/home/richard/miniconda3/envs/bilateral-cuda124/bin/nvcc -forward-unknown-to-host-compiler -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=c++17 \"--generate-code=arch=compute_75,code=[compute_75,sm_75]\" \"--generate-code=arch=compute_80,code=[compute_80,sm_80]\" \"--generate-code=arch=compute_86,code=[compute_86,sm_86]\" \"--generate-code=arch=compute_89,code=[compute_89,sm_89]\" -x cu -rdc=true -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/main.cu -o CMakeFiles/bilateral_filter.dir/src/main.cu.o", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/main.cu", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/main.cu.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/home/richard/miniconda3/envs/bilateral-cuda124/bin/nvcc -forward-unknown-to-host-compiler -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=c++17 \"--generate-code=arch=compute_75,code=[compute_75,sm_75]\" \"--generate-code=arch=compute_80,code=[compute_80,sm_80]\" \"--generate-code=arch=compute_86,code=[compute_86,sm_86]\" \"--generate-code=arch=compute_89,code=[compute_89,sm_89]\" -x cu -rdc=true -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/bilateral_filter.cu -o CMakeFiles/bilateral_filter.dir/src/bilateral_filter.cu.o", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/bilateral_filter.cu", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/bilateral_filter.cu.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/usr/bin/c++ -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/bilateral_filter.dir/src/io.cpp.o -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/io.cpp", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/io.cpp", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/io.cpp.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/usr/bin/c++ -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/bilateral_filter.dir/src/reference.cpp.o -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/reference.cpp", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/reference.cpp", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/reference.cpp.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/usr/bin/c++ -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/bilateral_filter.dir/src/metrics.cpp.o -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/metrics.cpp", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/metrics.cpp", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/bilateral_filter.dir/src/metrics.cpp.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/usr/bin/c++ -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/test_correctness.dir/test/test_correctness.cpp.o -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/test/test_correctness.cpp", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/test/test_correctness.cpp", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/test/test_correctness.cpp.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/home/richard/miniconda3/envs/bilateral-cuda124/bin/nvcc -forward-unknown-to-host-compiler -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=c++17 \"--generate-code=arch=compute_75,code=[compute_75,sm_75]\" \"--generate-code=arch=compute_80,code=[compute_80,sm_80]\" \"--generate-code=arch=compute_86,code=[compute_86,sm_86]\" \"--generate-code=arch=compute_89,code=[compute_89,sm_89]\" -x cu -rdc=true -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/bilateral_filter.cu -o CMakeFiles/test_correctness.dir/src/bilateral_filter.cu.o", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/bilateral_filter.cu", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/bilateral_filter.cu.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/usr/bin/c++ -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/test_correctness.dir/src/io.cpp.o -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/io.cpp", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/io.cpp", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/io.cpp.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/usr/bin/c++ -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/test_correctness.dir/src/reference.cpp.o -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/reference.cpp", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/reference.cpp", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/reference.cpp.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/usr/bin/c++ -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/test_correctness.dir/src/metrics.cpp.o -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/metrics.cpp", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/metrics.cpp", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_correctness.dir/src/metrics.cpp.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/usr/bin/c++ -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/test_performance.dir/test/test_performance.cpp.o -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/test/test_performance.cpp", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/test/test_performance.cpp", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/test/test_performance.cpp.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/home/richard/miniconda3/envs/bilateral-cuda124/bin/nvcc -forward-unknown-to-host-compiler -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=c++17 \"--generate-code=arch=compute_75,code=[compute_75,sm_75]\" \"--generate-code=arch=compute_80,code=[compute_80,sm_80]\" \"--generate-code=arch=compute_86,code=[compute_86,sm_86]\" \"--generate-code=arch=compute_89,code=[compute_89,sm_89]\" -x cu -rdc=true -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/bilateral_filter.cu -o CMakeFiles/test_performance.dir/src/bilateral_filter.cu.o", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/bilateral_filter.cu", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/bilateral_filter.cu.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/usr/bin/c++ -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/test_performance.dir/src/io.cpp.o -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/io.cpp", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/io.cpp", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/io.cpp.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/usr/bin/c++ -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/test_performance.dir/src/reference.cpp.o -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/reference.cpp", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/reference.cpp", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/reference.cpp.o" +}, +{ + "directory": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release", + "command": "/usr/bin/c++ -I/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src -isystem /home/richard/miniconda3/envs/bilateral-cuda124/include/opencv4 -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/test_performance.dir/src/metrics.cpp.o -c /home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/metrics.cpp", + "file": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/src/metrics.cpp", + "output": "/home/richard/2026/Learning-CUDA/08_bilateral_filter/MLRichard/build/conda-release/CMakeFiles/test_performance.dir/src/metrics.cpp.o" +} +] diff --git a/08_bilateral_filter/MLRichard/build/conda-release/test_correctness b/08_bilateral_filter/MLRichard/build/conda-release/test_correctness new file mode 100755 index 0000000..de3d713 Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/test_correctness differ diff --git a/08_bilateral_filter/MLRichard/build/conda-release/test_performance b/08_bilateral_filter/MLRichard/build/conda-release/test_performance new file mode 100755 index 0000000..9384b9d Binary files /dev/null and b/08_bilateral_filter/MLRichard/build/conda-release/test_performance differ diff --git a/08_bilateral_filter/MLRichard/docs/plans/2026-03-06-bilateral-filter-design.md b/08_bilateral_filter/MLRichard/docs/plans/2026-03-06-bilateral-filter-design.md new file mode 100644 index 0000000..9cb4b81 --- /dev/null +++ b/08_bilateral_filter/MLRichard/docs/plans/2026-03-06-bilateral-filter-design.md @@ -0,0 +1,200 @@ +# 实时图像双边滤波(CUDA)设计文档 + +## 文档信息 + +- 日期:2026-03-06 +- 项目:实时图像双边滤波(CUDA) +- 目标平台:NVIDIA RTX 4070(本地开发)、NVIDIA A100(性能测试) + +--- + +## 一、总体设计 + +### 架构总览 + +``` +输入 (raw / PNG / JPG) + │ + ▼ +[CPU] 读取图像 → 转换为浮点 → 传输到 GPU + │ + ▼ +[GPU] Phase 1: 朴素 Kernel(基线) +[GPU] Phase 2: Shared Memory + 预计算权重表 +[GPU] Phase 3: 自适应半径 + 查找表替代 exp() + │ + ▼ +[CPU] 结果回收 → 与 OpenCV 参考结果对比(MAE / PSNR) + │ + ▼ +输出 (raw) + 性能日志 +``` + +### 核心约束 + +- 输入/输出格式:二进制 raw(宽、高、通道数 + 行主序像素数据) +- 支持灰度图(1 通道)和 RGB 图(3 通道),像素值 0-255 +- 窗口半径 r 支持至少 5(11×11 窗口) +- 正确性:MAE < 1.0(对比 OpenCV cv::bilateralFilter) +- 性能目标:在 A100 上处理 4K RGB 图像达到实时水平(> 60fps) + +--- + +## 二、项目结构 + +``` +bilateral_filter/ +├── CMakeLists.txt +├── params.txt # 默认参数文件 +├── README.md +├── src/ +│ ├── main.cu # 程序入口,参数解析,流程控制 +│ ├── bilateral_filter.cu # CUDA kernel(三个阶段) +│ ├── bilateral_filter.cuh # kernel 声明和参数结构体 +│ ├── io.cpp # raw 文件读写,PNG/JPG 转 raw +│ ├── io.h +│ ├── reference.cpp # CPU 参考实现(调用 OpenCV) +│ ├── reference.h +│ ├── metrics.cpp # MAE / PSNR 计算 +│ └── metrics.h +├── test/ +│ ├── test_correctness.cpp # 自动生成测试图,验证 MAE < 1 +│ └── test_performance.cpp # benchmark,输出吞吐量 +└── docs/ + ├── plans/ + │ └── 2026-03-06-bilateral-filter-design.md + └── report.md # 总结报告(最终交付) +``` + +--- + +## 三、CUDA Kernel 设计 + +### Phase 1 — 朴素 Kernel(基线) + +- 1 线程 : 1 输出像素 +- block size:16×16(profile 后可调整为 32×32) +- 每次直接从 Global Memory 读取邻域像素 +- 用途:正确性基线,提供性能对比数据 + +``` +kernel_naive<<>>(input, output, width, height, channels, + radius, sigma_spatial, sigma_color) +``` + +### Phase 2 — Shared Memory Kernel + +- Tile size:`BLOCK_SIZE × BLOCK_SIZE` +- Halo 区域:tile 周围额外加载 r 圈像素(halo),大小为 `(BLOCK_SIZE + 2r)²` +- 所有线程协作将 halo 区域从 Global Memory 加载到 Shared Memory +- 空间高斯权重表:预计算 `(2r+1)²` 个值,存入 Constant Memory(最大 r=15) +- 颜色权重:运行时计算 `exp(-Δcolor² / (2σc²))` + +``` +__constant__ float c_spatial_weight[(2*MAX_RADIUS+1)*(2*MAX_RADIUS+1)]; + +kernel_shared<<>>(...) +``` + +### Phase 3 — 自适应半径 Kernel + +- 步骤 1:跑 Sobel kernel,计算每像素梯度幅值图 +- 步骤 2:按梯度阈值分配半径 + - 梯度 > T(边缘区域)→ 小半径(r=3),保边 + - 梯度 ≤ T(平坦区域)→ 大半径(r=7),强平滑 +- 步骤 3:颜色权重用 256 级查找表替代 `exp()` 计算 + - 查找表预计算 `lut[i] = exp(-i² / (2σc²))`,i ∈ [0, 255] + - 存入 Constant Memory 或 Texture Memory + +--- + +## 四、内存布局 + +- GPU 上图像以 **行主序 float 数组** 存储 +- RGB 图:交错存储 `[R0,G0,B0, R1,G1,B1, ...]` +- 灰度图:`[V0, V1, V2, ...]` +- 颜色距离:RGB 用三通道欧氏距离 `√(ΔR²+ΔG²+ΔB²)`,灰度用绝对差 +- 内存分配:初版用 `cudaMalloc + cudaMemcpy`,后期可升级为 `cudaMallocPitch` 做内存对齐优化 + +--- + +## 五、参数文件格式 + +```text +radius = 5 +sigma_spatial = 3.0 +sigma_color = 30.0 +``` + +--- + +## 六、输入/输出文件格式 + +### raw 文件格式 + +``` +[4字节] width (uint32_t, little-endian) +[4字节] height (uint32_t, little-endian) +[4字节] channels (uint32_t, little-endian) +[width × height × channels 字节] 像素数据 (uint8_t, 行主序) +``` + +--- + +## 七、正确性验证 + +- 自动生成随机噪声图(512×512 RGB 和灰度)用于快速 CI 测试 +- 调用 `cv::bilateralFilter` 作为参考,计算 MAE 和 PSNR +- 断言 MAE < 1.0 +- 支持 Set14 / BSDS100 真实图像批量验证 +- DIV2K 验证集(100 张)用于 4K 性能 benchmark + +--- + +## 八、性能日志格式 + +``` +Platform : NVIDIA A100 +Image : 3840x2160 RGB +Kernel : Phase2_SharedMemory +Radius : 5, sigma_s=3.0, sigma_c=30.0 +GPU Time : 12.34 ms +Throughput : 673.2 MPix/s +CPU Time : 1823.5 ms (OpenCV) +Speedup : 147.8x +MAE : 0.42 +PSNR : 51.3 dB +``` + +--- + +## 九、测试数据集 + +| 用途 | 数据集 | 规模 | +|------|--------|------| +| 快速 CI 验证 | 程序自动生成随机图 | 512×512 | +| 正确性对比 | Set14 / BSDS100 | < 50 MB | +| 性能 Benchmark | DIV2K 验证集 | ~400 MB | + +--- + +## 十、Profiling 计划 + +- 工具:ncu(Nsight Compute)+ nsys(Nsight Systems) +- 平台:RTX 4070(本地)和 A100(远程服务器)对比 +- 分析重点: + - Global Memory 带宽利用率 + - Shared Memory bank conflict + - Occupancy 和 warp 利用率 + - 各阶段 kernel 耗时对比 +- 报告中包含 ncu/nsys 截图和分析 + +--- + +## 十一、实现阶段规划 + +| 阶段 | 内容 | 完成标志 | +|------|------|---------| +| Phase 1 | 朴素 Kernel + IO + 参考实现 + MAE 验证 | MAE < 1.0,程序可跑通 | +| Phase 2 | Shared Memory + 预计算权重 + benchmark | 性能明显优于 Phase 1 | +| Phase 3 | 自适应半径 + 查找表 + ncu/nsys profiling | 完整性能报告 | diff --git a/08_bilateral_filter/MLRichard/docs/plans/2026-03-06-bilateral-filter-impl.md b/08_bilateral_filter/MLRichard/docs/plans/2026-03-06-bilateral-filter-impl.md new file mode 100644 index 0000000..c86aa77 --- /dev/null +++ b/08_bilateral_filter/MLRichard/docs/plans/2026-03-06-bilateral-filter-impl.md @@ -0,0 +1,1161 @@ +# 实时图像双边滤波(CUDA)实现计划 + +> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. + +**Goal:** 实现一个基于 CUDA 的实时双边滤波器,分三阶段优化,支持灰度和 RGB 图像,MAE < 1.0,并在 A100 上达到 4K 60fps。 + +**Architecture:** 模块化 C++/CUDA 项目,分离 IO、参考实现、CUDA kernel 和测试。三阶段 kernel:朴素版(基线)→ Shared Memory 优化版 → 自适应半径 + 查找表版。CPU 端调用 OpenCV bilateralFilter 作为正确性参考。 + +**Tech Stack:** CUDA 12+, CMake 3.20+, OpenCV 4.x, C++17 + +--- + +## Task 1: 项目脚手架与构建系统 + +**Files:** +- Create: `CMakeLists.txt` +- Create: `params.txt` +- Create: `src/main.cu` +- Create: `src/io.h` +- Create: `src/io.cpp` +- Create: `src/metrics.h` +- Create: `src/metrics.cpp` +- Create: `src/reference.h` +- Create: `src/reference.cpp` +- Create: `src/bilateral_filter.cuh` +- Create: `src/bilateral_filter.cu` +- Create: `test/test_correctness.cpp` +- Create: `test/test_performance.cpp` + +**Step 1: 创建 CMakeLists.txt** + +```cmake +cmake_minimum_required(VERSION 3.20) +project(bilateral_filter CUDA CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CUDA_STANDARD 17) +set(CMAKE_CUDA_ARCHITECTURES 75;80;86;89) + +find_package(OpenCV REQUIRED) +find_package(CUDA REQUIRED) + +include_directories(${OpenCV_INCLUDE_DIRS} src) + +# 主程序 +add_executable(bilateral_filter + src/main.cu + src/bilateral_filter.cu + src/io.cpp + src/reference.cpp + src/metrics.cpp +) +target_link_libraries(bilateral_filter ${OpenCV_LIBS}) +set_target_properties(bilateral_filter PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + +# 正确性测试 +add_executable(test_correctness + test/test_correctness.cpp + src/bilateral_filter.cu + src/io.cpp + src/reference.cpp + src/metrics.cpp +) +target_link_libraries(test_correctness ${OpenCV_LIBS}) +set_target_properties(test_correctness PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + +# 性能测试 +add_executable(test_performance + test/test_performance.cpp + src/bilateral_filter.cu + src/io.cpp + src/reference.cpp + src/metrics.cpp +) +target_link_libraries(test_performance ${OpenCV_LIBS}) +set_target_properties(test_performance PROPERTIES CUDA_SEPARABLE_COMPILATION ON) +``` + +**Step 2: 创建 params.txt** + +```text +radius = 5 +sigma_spatial = 3.0 +sigma_color = 30.0 +``` + +**Step 3: 创建目录结构并确认编译** + +```bash +mkdir -p build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release && make -j$(nproc) +``` + +Expected: 编译成功,生成 `bilateral_filter`、`test_correctness`、`test_performance` + +**Step 4: Commit** + +```bash +git add CMakeLists.txt params.txt +git commit -m "feat: add CMake build system" +``` + +--- + +## Task 2: IO 模块(raw 文件读写) + +**Files:** +- Modify: `src/io.h` +- Modify: `src/io.cpp` + +**Step 1: 编写 io.h** + +```cpp +#pragma once +#include +#include +#include + +struct Image { + uint32_t width; + uint32_t height; + uint32_t channels; // 1 (灰度) 或 3 (RGB) + std::vector data; // 行主序,交错存储 +}; + +// 读取 raw 格式文件 +Image read_raw(const std::string& path); + +// 写入 raw 格式文件 +void write_raw(const std::string& path, const Image& img); + +// 从 PNG/JPG 转换为 raw(借助 OpenCV) +Image load_image(const std::string& path); + +// 将 float 数组(0-255)转换回 uint8 Image +Image float_to_image(const float* data, uint32_t w, uint32_t h, uint32_t c); + +// 将 Image 转换为 float 数组(0-255) +std::vector image_to_float(const Image& img); +``` + +**Step 2: 编写 io.cpp** + +```cpp +#include "io.h" +#include +#include +#include + +Image read_raw(const std::string& path) { + std::ifstream f(path, std::ios::binary); + if (!f) throw std::runtime_error("Cannot open: " + path); + Image img; + f.read(reinterpret_cast(&img.width), 4); + f.read(reinterpret_cast(&img.height), 4); + f.read(reinterpret_cast(&img.channels), 4); + size_t n = (size_t)img.width * img.height * img.channels; + img.data.resize(n); + f.read(reinterpret_cast(img.data.data()), n); + return img; +} + +void write_raw(const std::string& path, const Image& img) { + std::ofstream f(path, std::ios::binary); + if (!f) throw std::runtime_error("Cannot write: " + path); + f.write(reinterpret_cast(&img.width), 4); + f.write(reinterpret_cast(&img.height), 4); + f.write(reinterpret_cast(&img.channels), 4); + f.write(reinterpret_cast(img.data.data()), img.data.size()); +} + +Image load_image(const std::string& path) { + cv::Mat mat = cv::imread(path, cv::IMREAD_UNCHANGED); + if (mat.empty()) throw std::runtime_error("Cannot load image: " + path); + Image img; + img.width = mat.cols; + img.height = mat.rows; + img.channels = mat.channels(); + if (img.channels == 3) cv::cvtColor(mat, mat, cv::COLOR_BGR2RGB); + img.data.assign(mat.data, mat.data + mat.total() * mat.elemSize()); + return img; +} + +Image float_to_image(const float* data, uint32_t w, uint32_t h, uint32_t c) { + Image img; + img.width = w; img.height = h; img.channels = c; + size_t n = (size_t)w * h * c; + img.data.resize(n); + for (size_t i = 0; i < n; i++) { + float v = data[i]; + if (v < 0.f) v = 0.f; + if (v > 255.f) v = 255.f; + img.data[i] = static_cast(v + 0.5f); + } + return img; +} + +std::vector image_to_float(const Image& img) { + size_t n = (size_t)img.width * img.height * img.channels; + std::vector f(n); + for (size_t i = 0; i < n; i++) f[i] = static_cast(img.data[i]); + return f; +} +``` + +**Step 3: 确认编译通过** + +```bash +cd build && make -j$(nproc) 2>&1 | grep -E "error|warning|Built" +``` + +**Step 4: Commit** + +```bash +git add src/io.h src/io.cpp +git commit -m "feat: add raw image IO module" +``` + +--- + +## Task 3: Metrics 模块(MAE / PSNR) + +**Files:** +- Modify: `src/metrics.h` +- Modify: `src/metrics.cpp` + +**Step 1: 编写 metrics.h** + +```cpp +#pragma once +#include + +// 计算平均绝对误差 MAE(输入为 float 数组,值域 0-255) +float compute_mae(const float* a, const float* b, int n); + +// 计算峰值信噪比 PSNR(最大值 255) +float compute_psnr(const float* a, const float* b, int n); +``` + +**Step 2: 编写 metrics.cpp** + +```cpp +#include "metrics.h" +#include +#include + +float compute_mae(const float* a, const float* b, int n) { + double sum = 0.0; + for (int i = 0; i < n; i++) sum += std::fabs(a[i] - b[i]); + return static_cast(sum / n); +} + +float compute_psnr(const float* a, const float* b, int n) { + double mse = 0.0; + for (int i = 0; i < n; i++) { + double d = a[i] - b[i]; + mse += d * d; + } + mse /= n; + if (mse < 1e-10) return 100.0f; + return static_cast(10.0 * std::log10(255.0 * 255.0 / mse)); +} +``` + +**Step 3: Commit** + +```bash +git add src/metrics.h src/metrics.cpp +git commit -m "feat: add MAE/PSNR metrics module" +``` + +--- + +## Task 4: CPU 参考实现(OpenCV bilateralFilter) + +**Files:** +- Modify: `src/reference.h` +- Modify: `src/reference.cpp` + +**Step 1: 编写 reference.h** + +```cpp +#pragma once +#include +#include + +struct BilateralParams { + int radius; + float sigma_spatial; + float sigma_color; +}; + +// CPU 参考实现,调用 OpenCV cv::bilateralFilter +// 输入/输出均为 float 数组(0-255),行主序,交错 RGB 或灰度 +void bilateral_filter_cpu( + const float* input, + float* output, + int width, int height, int channels, + const BilateralParams& params +); +``` + +**Step 2: 编写 reference.cpp** + +```cpp +#include "reference.h" +#include +#include + +void bilateral_filter_cpu( + const float* input, float* output, + int w, int h, int c, + const BilateralParams& p) +{ + // 转换为 OpenCV Mat(uint8) + cv::Mat src(h, w, c == 3 ? CV_8UC3 : CV_8UC1); + for (int i = 0; i < h * w * c; i++) + src.data[i] = static_cast(std::min(std::max(input[i], 0.f), 255.f)); + + // OpenCV bilateralFilter 要求 BGR,我们存的是 RGB,需要转换 + if (c == 3) cv::cvtColor(src, src, cv::COLOR_RGB2BGR); + + cv::Mat dst; + // d = 2*radius+1,sigma_color 和 sigma_space 与我们的参数对应 + cv::bilateralFilter(src, dst, 2 * p.radius + 1, p.sigma_color, p.sigma_spatial); + + if (c == 3) cv::cvtColor(dst, dst, cv::COLOR_BGR2RGB); + + for (int i = 0; i < h * w * c; i++) + output[i] = static_cast(dst.data[i]); +} +``` + +**Step 3: Commit** + +```bash +git add src/reference.h src/reference.cpp +git commit -m "feat: add OpenCV CPU reference implementation" +``` + +--- + +## Task 5: Phase 1 — 朴素 CUDA Kernel + +**Files:** +- Modify: `src/bilateral_filter.cuh` +- Modify: `src/bilateral_filter.cu` + +**Step 1: 编写 bilateral_filter.cuh** + +```cpp +#pragma once +#include "reference.h" // BilateralParams + +// Phase 1:朴素 kernel,每线程处理一个像素,直接读取 Global Memory +void launch_bilateral_naive( + const float* d_input, + float* d_output, + int width, int height, int channels, + const BilateralParams& params +); + +// Phase 2:Shared Memory 优化 kernel +void launch_bilateral_shared( + const float* d_input, + float* d_output, + int width, int height, int channels, + const BilateralParams& params +); + +// Phase 3:自适应半径 kernel +void launch_bilateral_adaptive( + const float* d_input, + float* d_output, + int width, int height, int channels, + const BilateralParams& params +); +``` + +**Step 2: 编写 Phase 1 kernel(bilateral_filter.cu 初始版本)** + +```cuda +#include "bilateral_filter.cuh" +#include +#include + +#define BLOCK_SIZE 16 + +__device__ inline float color_dist_sq( + const float* img, int idx_a, int idx_b, int channels) +{ + float sum = 0.f; + for (int c = 0; c < channels; c++) { + float d = img[idx_a * channels + c] - img[idx_b * channels + c]; + sum += d * d; + } + return sum; +} + +__global__ void kernel_naive( + const float* input, float* output, + int W, int H, int C, + int radius, float inv2_sigma_s2, float inv2_sigma_c2) +{ + int x = blockIdx.x * blockDim.x + threadIdx.x; + int y = blockIdx.y * blockDim.y + threadIdx.y; + if (x >= W || y >= H) return; + + int center = y * W + x; + float weight_sum = 0.f; + float val[3] = {0.f, 0.f, 0.f}; + + for (int dy = -radius; dy <= radius; dy++) { + int ny = y + dy; + if (ny < 0 || ny >= H) continue; + for (int dx = -radius; dx <= radius; dx++) { + int nx = x + dx; + if (nx < 0 || nx >= W) continue; + int nbr = ny * W + nx; + + float spatial = (dx*dx + dy*dy) * inv2_sigma_s2; + float color = color_dist_sq(input, center, nbr, C) * inv2_sigma_c2; + float w = expf(-(spatial + color)); + + weight_sum += w; + for (int c = 0; c < C; c++) + val[c] += w * input[nbr * C + c]; + } + } + + for (int c = 0; c < C; c++) + output[center * C + c] = val[c] / weight_sum; +} + +void launch_bilateral_naive( + const float* d_in, float* d_out, + int W, int H, int C, + const BilateralParams& p) +{ + dim3 block(BLOCK_SIZE, BLOCK_SIZE); + dim3 grid((W + BLOCK_SIZE - 1) / BLOCK_SIZE, + (H + BLOCK_SIZE - 1) / BLOCK_SIZE); + float inv2s2 = -1.f / (2.f * p.sigma_spatial * p.sigma_spatial); + float inv2c2 = -1.f / (2.f * p.sigma_color * p.sigma_color); + kernel_naive<<>>(d_in, d_out, W, H, C, + p.radius, inv2s2, inv2c2); + cudaDeviceSynchronize(); +} + +// Phase 2 和 Phase 3 占位(后续 Task 实现) +void launch_bilateral_shared( + const float* d_in, float* d_out, + int W, int H, int C, const BilateralParams& p) +{ + launch_bilateral_naive(d_in, d_out, W, H, C, p); // 临时占位 +} + +void launch_bilateral_adaptive( + const float* d_in, float* d_out, + int W, int H, int C, const BilateralParams& p) +{ + launch_bilateral_naive(d_in, d_out, W, H, C, p); // 临时占位 +} +``` + +**Step 3: Commit** + +```bash +git add src/bilateral_filter.cuh src/bilateral_filter.cu +git commit -m "feat: add Phase 1 naive CUDA bilateral filter kernel" +``` + +--- + +## Task 6: 正确性测试(test_correctness) + +**Files:** +- Modify: `test/test_correctness.cpp` + +**Step 1: 编写 test_correctness.cpp** + +```cpp +#include +#include +#include +#include +#include +#include "../src/bilateral_filter.cuh" +#include "../src/reference.h" +#include "../src/metrics.h" + +// 生成随机噪声图 +std::vector make_random_image(int w, int h, int c, unsigned seed = 42) { + std::srand(seed); + std::vector img(w * h * c); + for (auto& v : img) v = static_cast(std::rand() % 256); + return img; +} + +void run_test(const char* name, int W, int H, int C, + const BilateralParams& params, + void (*launcher)(const float*, float*, int, int, int, const BilateralParams&)) +{ + auto input = make_random_image(W, H, C); + int N = W * H * C; + + // CPU 参考 + std::vector ref(N); + bilateral_filter_cpu(input.data(), ref.data(), W, H, C, params); + + // GPU + float *d_in, *d_out; + cudaMalloc(&d_in, N * sizeof(float)); + cudaMalloc(&d_out, N * sizeof(float)); + cudaMemcpy(d_in, input.data(), N * sizeof(float), cudaMemcpyHostToDevice); + + launcher(d_in, d_out, W, H, C, params); + + std::vector gpu_out(N); + cudaMemcpy(gpu_out.data(), d_out, N * sizeof(float), cudaMemcpyDeviceToHost); + cudaFree(d_in); cudaFree(d_out); + + float mae = compute_mae(gpu_out.data(), ref.data(), N); + float psnr = compute_psnr(gpu_out.data(), ref.data(), N); + printf("[%s] W=%d H=%d C=%d MAE=%.4f PSNR=%.2f dB %s\n", + name, W, H, C, mae, psnr, mae < 1.0f ? "PASS" : "FAIL"); + assert(mae < 1.0f && "MAE >= 1.0, correctness check failed!"); +} + +int main() { + BilateralParams p{5, 3.0f, 30.0f}; + + run_test("naive_gray", 512, 512, 1, p, launch_bilateral_naive); + run_test("naive_rgb", 512, 512, 3, p, launch_bilateral_naive); + run_test("shared_gray", 512, 512, 1, p, launch_bilateral_shared); + run_test("shared_rgb", 512, 512, 3, p, launch_bilateral_shared); + + std::cout << "All tests passed!" << std::endl; + return 0; +} +``` + +**Step 2: 编译并运行测试** + +```bash +cd build && make test_correctness -j$(nproc) && ./test_correctness +``` + +Expected output: +``` +[naive_gray] W=512 H=512 C=1 MAE=0.xxxx PSNR=xx.xx dB PASS +[naive_rgb] W=512 H=512 C=3 MAE=0.xxxx PSNR=xx.xx dB PASS +All tests passed! +``` + +**Step 3: Commit** + +```bash +git add test/test_correctness.cpp +git commit -m "test: add correctness validation with MAE/PSNR checks" +``` + +--- + +## Task 7: main.cu — 程序入口和参数解析 + +**Files:** +- Modify: `src/main.cu` + +**Step 1: 编写 main.cu** + +```cpp +#include +#include +#include +#include +#include +#include "io.h" +#include "bilateral_filter.cuh" +#include "reference.h" +#include "metrics.h" + +BilateralParams load_params(const std::string& path) { + BilateralParams p{5, 3.0f, 30.0f}; + std::ifstream f(path); + if (!f) { std::cerr << "params file not found, using defaults\n"; return p; } + std::string line; + while (std::getline(f, line)) { + if (line.empty() || line[0] == '#') continue; + auto eq = line.find('='); + if (eq == std::string::npos) continue; + std::string key = line.substr(0, eq); + std::string val = line.substr(eq + 1); + // 去除空格 + key.erase(0, key.find_first_not_of(" \t")); + key.erase(key.find_last_not_of(" \t") + 1); + val.erase(0, val.find_first_not_of(" \t")); + // 去除注释 + auto hash = val.find('#'); + if (hash != std::string::npos) val = val.substr(0, hash); + if (key == "radius") p.radius = std::stoi(val); + else if (key == "sigma_spatial") p.sigma_spatial = std::stof(val); + else if (key == "sigma_color") p.sigma_color = std::stof(val); + } + return p; +} + +int main(int argc, char* argv[]) { + if (argc < 4) { + std::cerr << "Usage: " << argv[0] + << " [kernel: naive|shared|adaptive]\n"; + return 1; + } + std::string input_path = argv[1]; + std::string output_path = argv[2]; + std::string params_path = argv[3]; + std::string kernel_type = argc > 4 ? argv[4] : "shared"; + + BilateralParams params = load_params(params_path); + Image img = read_raw(input_path); + + int W = img.width, H = img.height, C = img.channels; + int N = W * H * C; + + auto input_f = image_to_float(img); + + float *d_in, *d_out; + cudaMalloc(&d_in, N * sizeof(float)); + cudaMalloc(&d_out, N * sizeof(float)); + cudaMemcpy(d_in, input_f.data(), N * sizeof(float), cudaMemcpyHostToDevice); + + // GPU 计时 + cudaEvent_t start, stop; + cudaEventCreate(&start); cudaEventCreate(&stop); + cudaEventRecord(start); + + if (kernel_type == "naive") launch_bilateral_naive (d_in, d_out, W, H, C, params); + else if (kernel_type == "shared") launch_bilateral_shared (d_in, d_out, W, H, C, params); + else if (kernel_type == "adaptive") launch_bilateral_adaptive(d_in, d_out, W, H, C, params); + else { std::cerr << "Unknown kernel: " << kernel_type << "\n"; return 1; } + + cudaEventRecord(stop); + cudaEventSynchronize(stop); + float gpu_ms = 0.f; + cudaEventElapsedTime(&gpu_ms, start, stop); + + std::vector output_f(N); + cudaMemcpy(output_f.data(), d_out, N * sizeof(float), cudaMemcpyDeviceToHost); + cudaFree(d_in); cudaFree(d_out); + + // 写输出 + Image out_img = float_to_image(output_f.data(), W, H, C); + write_raw(output_path, out_img); + + // CPU 参考和指标 + std::vector ref_f(N); + auto t0 = std::chrono::high_resolution_clock::now(); + bilateral_filter_cpu(input_f.data(), ref_f.data(), W, H, C, params); + auto t1 = std::chrono::high_resolution_clock::now(); + float cpu_ms = std::chrono::duration(t1 - t0).count(); + + float mae = compute_mae (output_f.data(), ref_f.data(), N); + float psnr = compute_psnr(output_f.data(), ref_f.data(), N); + float mpix = (float)(W * H) / 1e6f; + + // 获取 GPU 名称 + cudaDeviceProp prop; + cudaGetDeviceProperties(&prop, 0); + + printf("\n=== Performance Log ===\n"); + printf("Platform : %s\n", prop.name); + printf("Image : %dx%d %s\n", W, H, C == 3 ? "RGB" : "Gray"); + printf("Kernel : %s\n", kernel_type.c_str()); + printf("Radius : %d, sigma_s=%.1f, sigma_c=%.1f\n", + params.radius, params.sigma_spatial, params.sigma_color); + printf("GPU Time : %.2f ms\n", gpu_ms); + printf("Throughput : %.1f MPix/s\n", mpix / (gpu_ms / 1000.f)); + printf("CPU Time : %.2f ms (OpenCV)\n", cpu_ms); + printf("Speedup : %.1fx\n", cpu_ms / gpu_ms); + printf("MAE : %.4f\n", mae); + printf("PSNR : %.2f dB\n", psnr); + + return 0; +} +``` + +注意:需要在 main.cu 顶部添加 `#include `。 + +**Step 2: 编译并用自动生成的测试图验证** + +```bash +cd build && make bilateral_filter -j$(nproc) +# 生成测试 raw(可用 test_correctness 内部逻辑或 Python 脚本生成) +./bilateral_filter test.raw out.raw ../params.txt naive +``` + +**Step 3: Commit** + +```bash +git add src/main.cu +git commit -m "feat: add main entry point with param parsing and perf logging" +``` + +--- + +## Task 8: Phase 2 — Shared Memory 优化 Kernel + +**Files:** +- Modify: `src/bilateral_filter.cu`(替换 launch_bilateral_shared 占位实现) + +**Step 1: 在 bilateral_filter.cu 中添加常量内存和 Shared Memory kernel** + +在文件顶部添加常量内存声明: +```cuda +#define MAX_RADIUS 15 +#define MAX_WEIGHT_SIZE ((2*MAX_RADIUS+1)*(2*MAX_RADIUS+1)) +__constant__ float c_spatial_weight[MAX_WEIGHT_SIZE]; +``` + +添加 Shared Memory kernel: +```cuda +#define TILE 16 + +__global__ void kernel_shared( + const float* __restrict__ input, + float* output, + int W, int H, int C, + int radius, float inv2_sigma_c2) +{ + // shared memory 布局:(TILE + 2*radius)^2 * C 个 float + extern __shared__ float smem[]; + + int tx = threadIdx.x, ty = threadIdx.y; + int x = blockIdx.x * TILE + tx; + int y = blockIdx.y * TILE + ty; + + int tile_w = TILE + 2 * radius; + // 将 tile + halo 加载到 shared memory(多次加载覆盖 halo) + for (int j = ty; j < tile_w; j += TILE) { + for (int i = tx; i < tile_w; i += TILE) { + int gx = blockIdx.x * TILE - radius + i; + int gy = blockIdx.y * TILE - radius + j; + // 边界钳制 + gx = max(0, min(W - 1, gx)); + gy = max(0, min(H - 1, gy)); + int src = (gy * W + gx) * C; + int dst = (j * tile_w + i) * C; + for (int c = 0; c < C; c++) smem[dst + c] = input[src + c]; + } + } + __syncthreads(); + + if (x >= W || y >= H) return; + + int lx = tx + radius, ly = ty + radius; // 当前像素在 smem 中的坐标 + int ci = (ly * tile_w + lx) * C; // 中心像素在 smem 的偏移 + + float weight_sum = 0.f; + float val[3] = {0.f, 0.f, 0.f}; + int wi = 0; // 空间权重索引 + + for (int dy = -radius; dy <= radius; dy++) { + for (int dx = -radius; dx <= radius; dx++, wi++) { + int ni = ((ly + dy) * tile_w + (lx + dx)) * C; + float color_sq = 0.f; + for (int c = 0; c < C; c++) { + float d = smem[ci + c] - smem[ni + c]; + color_sq += d * d; + } + float w = c_spatial_weight[wi] * expf(color_sq * inv2_sigma_c2); + weight_sum += w; + for (int c = 0; c < C; c++) val[c] += w * smem[ni + c]; + } + } + + int out_idx = (y * W + x) * C; + for (int c = 0; c < C; c++) + output[out_idx + c] = val[c] / weight_sum; +} +``` + +更新 `launch_bilateral_shared`: +```cuda +void launch_bilateral_shared( + const float* d_in, float* d_out, + int W, int H, int C, const BilateralParams& p) +{ + int r = p.radius; + // 预计算空间权重并上传到 Constant Memory + int diam = 2 * r + 1; + std::vector sw(diam * diam); + float inv2s2 = 1.f / (2.f * p.sigma_spatial * p.sigma_spatial); + for (int dy = -r; dy <= r; dy++) + for (int dx = -r; dx <= r; dx++) + sw[(dy+r)*diam + (dx+r)] = expf(-(dx*dx + dy*dy) * inv2s2); + cudaMemcpyToSymbol(c_spatial_weight, sw.data(), diam*diam*sizeof(float)); + + float inv2c2 = -1.f / (2.f * p.sigma_color * p.sigma_color); + int tile_w = TILE + 2 * r; + size_t smem = (size_t)tile_w * tile_w * C * sizeof(float); + + dim3 block(TILE, TILE); + dim3 grid((W + TILE - 1) / TILE, (H + TILE - 1) / TILE); + kernel_shared<<>>(d_in, d_out, W, H, C, r, inv2c2); + cudaDeviceSynchronize(); +} +``` + +**Step 2: 运行正确性测试确认 Phase 2 通过** + +```bash +cd build && make test_correctness -j$(nproc) && ./test_correctness +``` + +Expected: 所有 PASS,包括 `shared_gray` 和 `shared_rgb` + +**Step 3: Commit** + +```bash +git add src/bilateral_filter.cu src/bilateral_filter.cuh +git commit -m "feat: add Phase 2 shared memory bilateral filter kernel" +``` + +--- + +## Task 9: Phase 3 — 自适应半径 + 查找表 Kernel + +**Files:** +- Modify: `src/bilateral_filter.cu`(替换 launch_bilateral_adaptive 占位) + +**Step 1: 添加颜色权重查找表常量内存** + +```cuda +__constant__ float c_color_lut[256]; // lut[i] = exp(-i^2 / (2*sigma_c^2)) +``` + +**Step 2: 添加 Sobel 梯度 kernel** + +```cuda +__global__ void kernel_sobel( + const float* __restrict__ input, + float* gradient, int W, int H, int C) +{ + int x = blockIdx.x * blockDim.x + threadIdx.x; + int y = blockIdx.y * blockDim.y + threadIdx.y; + if (x < 1 || x >= W-1 || y < 1 || y >= H-1) { + if (x < W && y < H) gradient[y*W+x] = 0.f; + return; + } + // 用灰度值(取第一通道或均值)计算梯度 + auto px = [&](int xi, int yi) { + float v = 0.f; + for (int c = 0; c < C; c++) v += input[(yi*W+xi)*C+c]; + return v / C; + }; + float gx = -px(x-1,y-1) + px(x+1,y-1) + -2*px(x-1,y) + 2*px(x+1,y) + -px(x-1,y+1) + px(x+1,y+1); + float gy = -px(x-1,y-1) - 2*px(x,y-1) - px(x+1,y-1) + +px(x-1,y+1) + 2*px(x,y+1) + px(x+1,y+1); + gradient[y*W+x] = sqrtf(gx*gx + gy*gy); +} +``` + +**Step 3: 添加自适应 kernel** + +```cuda +__global__ void kernel_adaptive( + const float* __restrict__ input, + const float* __restrict__ gradient, + float* output, + int W, int H, int C, + int r_small, int r_large, + float grad_thresh, + float inv2_sigma_s2) +{ + int x = blockIdx.x * blockDim.x + threadIdx.x; + int y = blockIdx.y * blockDim.y + threadIdx.y; + if (x >= W || y >= H) return; + + int radius = gradient[y*W+x] > grad_thresh ? r_small : r_large; + int center = y * W + x; + float weight_sum = 0.f; + float val[3] = {0.f, 0.f, 0.f}; + + for (int dy = -radius; dy <= radius; dy++) { + int ny = max(0, min(H-1, y+dy)); + for (int dx = -radius; dx <= radius; dx++) { + int nx = max(0, min(W-1, x+dx)); + int nbr = ny * W + nx; + float spatial_w = expf(-(dx*dx + dy*dy) * inv2_sigma_s2); + // 颜色距离:各通道差绝对值的均值(近似) + float cdist = 0.f; + for (int c = 0; c < C; c++) { + float d = fabsf(input[center*C+c] - input[nbr*C+c]); + cdist += d; + } + cdist /= C; + int lut_idx = min((int)cdist, 255); + float color_w = c_color_lut[lut_idx]; + float w = spatial_w * color_w; + weight_sum += w; + for (int c = 0; c < C; c++) val[c] += w * input[nbr*C+c]; + } + } + for (int c = 0; c < C; c++) + output[center*C+c] = val[c] / weight_sum; +} +``` + +**Step 4: 更新 launch_bilateral_adaptive** + +```cuda +void launch_bilateral_adaptive( + const float* d_in, float* d_out, + int W, int H, int C, const BilateralParams& p) +{ + // 上传颜色查找表 + std::vector lut(256); + float inv2c2 = 1.f / (2.f * p.sigma_color * p.sigma_color); + for (int i = 0; i < 256; i++) lut[i] = expf(-(float)(i*i) * inv2c2); + cudaMemcpyToSymbol(c_color_lut, lut.data(), 256*sizeof(float)); + + // 计算梯度 + float* d_grad; + cudaMalloc(&d_grad, W * H * sizeof(float)); + dim3 block(BLOCK_SIZE, BLOCK_SIZE); + dim3 grid((W+BLOCK_SIZE-1)/BLOCK_SIZE, (H+BLOCK_SIZE-1)/BLOCK_SIZE); + kernel_sobel<<>>(d_in, d_grad, W, H, C); + + float inv2s2 = -1.f / (2.f * p.sigma_spatial * p.sigma_spatial); + int r_small = max(1, p.radius / 2); + int r_large = p.radius; + float grad_thresh = 20.f; // 可配置 + + kernel_adaptive<<>>(d_in, d_grad, d_out, W, H, C, + r_small, r_large, grad_thresh, inv2s2); + cudaDeviceSynchronize(); + cudaFree(d_grad); +} +``` + +**Step 5: 运行正确性测试(Phase 3 允许 MAE 略高,但仍需 < 1.0)** + +在 test_correctness.cpp 中添加: +```cpp +run_test("adaptive_rgb", 512, 512, 3, p, launch_bilateral_adaptive); +``` + +```bash +cd build && make -j$(nproc) && ./test_correctness +``` + +**Step 6: Commit** + +```bash +git add src/bilateral_filter.cu +git commit -m "feat: add Phase 3 adaptive radius bilateral filter with LUT" +``` + +--- + +## Task 10: 性能 Benchmark(test_performance) + +**Files:** +- Modify: `test/test_performance.cpp` + +**Step 1: 编写 test_performance.cpp** + +```cpp +#include +#include +#include +#include +#include "../src/bilateral_filter.cuh" +#include "../src/reference.h" +#include "../src/metrics.h" + +struct BenchResult { + std::string name; + float gpu_ms; + float cpu_ms; + float mae; + float psnr; +}; + +BenchResult benchmark( + const char* name, int W, int H, int C, + const BilateralParams& params, + void (*launcher)(const float*, float*, int, int, int, const BilateralParams&), + int warmup = 3, int iters = 10) +{ + int N = W * H * C; + std::vector input(N); + std::srand(123); + for (auto& v : input) v = static_cast(std::rand() % 256); + + float *d_in, *d_out; + cudaMalloc(&d_in, N * sizeof(float)); + cudaMalloc(&d_out, N * sizeof(float)); + cudaMemcpy(d_in, input.data(), N * sizeof(float), cudaMemcpyHostToDevice); + + // Warmup + for (int i = 0; i < warmup; i++) launcher(d_in, d_out, W, H, C, params); + + // Timed iters + cudaEvent_t s, e; + cudaEventCreate(&s); cudaEventCreate(&e); + cudaEventRecord(s); + for (int i = 0; i < iters; i++) launcher(d_in, d_out, W, H, C, params); + cudaEventRecord(e); + cudaEventSynchronize(e); + float total_ms; cudaEventElapsedTime(&total_ms, s, e); + float gpu_ms = total_ms / iters; + + std::vector gpu_out(N); + cudaMemcpy(gpu_out.data(), d_out, N * sizeof(float), cudaMemcpyDeviceToHost); + cudaFree(d_in); cudaFree(d_out); + + // CPU 参考(只跑一次) + std::vector ref(N); + auto t0 = std::chrono::high_resolution_clock::now(); + bilateral_filter_cpu(input.data(), ref.data(), W, H, C, params); + auto t1 = std::chrono::high_resolution_clock::now(); + float cpu_ms = std::chrono::duration(t1 - t0).count(); + + float mae = compute_mae (gpu_out.data(), ref.data(), N); + float psnr = compute_psnr(gpu_out.data(), ref.data(), N); + + cudaDeviceProp prop; cudaGetDeviceProperties(&prop, 0); + float mpix = (float)(W * H) / 1e6f; + printf("[%-20s] %dx%d C=%d GPU=%.2fms Throughput=%.1fMPix/s CPU=%.1fms Speedup=%.1fx MAE=%.4f PSNR=%.2fdB\n", + name, W, H, C, gpu_ms, mpix/(gpu_ms/1000.f), cpu_ms, cpu_ms/gpu_ms, mae, psnr); + + return {name, gpu_ms, cpu_ms, mae, psnr}; +} + +int main() { + BilateralParams p{5, 3.0f, 30.0f}; + + printf("=== Bilateral Filter Benchmark ===\n\n"); + + // 512x512 对比三个 kernel + benchmark("naive_512_rgb", 512, 512, 3, p, launch_bilateral_naive); + benchmark("shared_512_rgb", 512, 512, 3, p, launch_bilateral_shared); + benchmark("adaptive_512_rgb", 512, 512, 3, p, launch_bilateral_adaptive); + + // 4K 性能测试(主要目标) + benchmark("naive_4K_rgb", 3840, 2160, 3, p, launch_bilateral_naive); + benchmark("shared_4K_rgb", 3840, 2160, 3, p, launch_bilateral_shared); + benchmark("adaptive_4K_rgb", 3840, 2160, 3, p, launch_bilateral_adaptive); + + return 0; +} +``` + +注意:需要在文件顶部添加 `#include `。 + +**Step 2: 编译并运行** + +```bash +cd build && make test_performance -j$(nproc) && ./test_performance +``` + +**Step 3: Commit** + +```bash +git add test/test_performance.cpp +git commit -m "test: add performance benchmark covering 512x512 and 4K" +``` + +--- + +## Task 11: 工具脚本——PNG/JPG 转 raw + +**Files:** +- Create: `tools/img2raw.py` + +**Step 1: 编写 img2raw.py** + +```python +#!/usr/bin/env python3 +"""将 PNG/JPG 图像转换为项目使用的 raw 格式""" +import sys +import struct +import numpy as np +from PIL import Image + +def img2raw(src, dst, grayscale=False): + img = Image.open(src) + if grayscale: + img = img.convert('L') + arr = np.array(img) + c = 1 + else: + img = img.convert('RGB') + arr = np.array(img) + c = 3 + h, w = arr.shape[:2] + with open(dst, 'wb') as f: + f.write(struct.pack(' [--gray]") + sys.exit(1) + img2raw(sys.argv[1], sys.argv[2], '--gray' in sys.argv) +``` + +**Step 2: Commit** + +```bash +git add tools/img2raw.py +git commit -m "tools: add img2raw.py for converting PNG/JPG to raw format" +``` + +--- + +## Task 12: ncu/nsys Profiling + +**Step 1: 用 ncu 分析 Phase 1 和 Phase 2 kernel** + +```bash +# 在远程 A100 上执行 +ncu --set full -o profile_naive ./bilateral_filter test_4k.raw /dev/null ../params.txt naive +ncu --set full -o profile_shared ./bilateral_filter test_4k.raw /dev/null ../params.txt shared +ncu --set full -o profile_adaptive ./bilateral_filter test_4k.raw /dev/null ../params.txt adaptive +``` + +**Step 2: 用 nsys 分析整体流程** + +```bash +nsys profile -o timeline ./bilateral_filter test_4k.raw out.raw ../params.txt shared +``` + +**Step 3: 在本地用 Nsight Compute UI 打开 .ncu-rep 文件查看分析** + +重点关注指标: +- `l1tex__t_bytes_pipe_lsu_mem_global_op_ld.sum.per_second`(Global Memory 带宽) +- `l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_ld.sum`(Shared Memory bank conflict) +- `sm__warps_active.avg.pct_of_peak_sustained_active`(Occupancy) + +**Step 4: 将 profiling 截图和分析写入报告** + +```bash +git add docs/report.md +git commit -m "docs: add profiling analysis and performance report" +``` + +--- + +## 验收标准 + +| 检查项 | 标准 | +|--------|------| +| MAE(Phase 1/2) | < 1.0 | +| MAE(Phase 3 自适应) | < 1.0 | +| 4K RGB Phase 2 throughput(A100) | > 1000 MPix/s(目标 60fps = 497 MPix/s) | +| 编译 | 无 error,无关键 warning | +| 测试 | test_correctness 全部 PASS | diff --git a/08_bilateral_filter/MLRichard/docs/plans/2026-03-07-readme-cmake-presets-design.md b/08_bilateral_filter/MLRichard/docs/plans/2026-03-07-readme-cmake-presets-design.md new file mode 100644 index 0000000..7751a32 --- /dev/null +++ b/08_bilateral_filter/MLRichard/docs/plans/2026-03-07-readme-cmake-presets-design.md @@ -0,0 +1,80 @@ +# README 与 CMake Presets 设计文档 + +## 文档信息 + +- 日期:2026-03-07 +- 范围:为 `bilateral_filter` 项目补充 `CMakePresets.json` 与 `README.md` +- 主环境:WSL2 + Ubuntu 22.04 LTS + Conda + +--- + +## 一、目标 + +- 为项目提供可复用的 `CMakePresets.json`,简化 WSL + Conda 环境下的配置、构建与调试。 +- 提供完整的 `README.md`,覆盖环境配置、编译运行、测试验证、输入输出格式与云服务器兼容说明。 +- 保持项目源码行为不变,仅增强构建入口与使用文档。 + +## 二、设计原则 + +- **WSL + Conda 优先**:文档和预设默认服务当前主开发环境。 +- **云服务器兼容**:使用同一套 Conda 依赖时,无需修改项目代码。 +- **低耦合**:预设使用 `$env{CONDA_PREFIX}`,避免硬编码单机绝对路径。 +- **编辑器友好**:保留 `compile_commands.json` 导出,方便 VS Code / clangd 补全。 +- **最少惊讶**:默认输出到独立构建目录,避免与已有临时构建目录混淆。 + +## 三、CMake Presets 设计 + +### 配置预设 + +- `conda-release` + - 生成器:`Ninja` + - 构建目录:`build/conda-release` + - 类型:`Release` + - 依赖当前已激活的 Conda 环境,通过 `$env{CONDA_PREFIX}` 注入: + - `CUDAToolkit_ROOT` + - `OpenCV_DIR` + - `CMAKE_PREFIX_PATH` + - `CPATH` + - `LIBRARY_PATH` + - `LD_LIBRARY_PATH` +- `conda-debug` + - 继承 `conda-release` + - 仅切换到 `Debug` + - 构建目录改为 `build/conda-debug` + +### 构建预设 + +- `build-conda-release` +- `build-conda-debug` +- `build-test-correctness` +- `build-test-performance` + +## 四、README 设计 + +### 结构 + +1. 项目简介 +2. 功能概览 +3. 目录结构 +4. 环境要求 +5. WSL + Conda 环境配置步骤 +6. 使用 `CMakePresets.json` 的配置/编译命令 +7. 项目运行说明 +8. 正确性测试与性能测试 +9. 输入/输出 raw 格式说明 +10. 参数文件说明 +11. 云服务器兼容说明 +12. 常见问题 + +### 云服务器兼容说明 + +- 推荐在 Linux 云服务器上复用同一套 Conda 环境创建命令。 +- 若云服务器已具备可用 NVIDIA 驱动和 GPU,只需激活 Conda 环境即可复用构建命令。 +- `/usr/lib/wsl/lib` 路径仅在 WSL 下生效;在普通 Linux 服务器上缺失时不会要求修改项目源码。 + +## 五、验收标准 + +- `cmake --preset conda-release` 可成功生成构建系统。 +- `cmake --build --preset build-conda-release` 可成功编译项目。 +- `README.md` 能独立指导新用户完成环境配置、编译、运行与测试。 +- `README.md` 明确写出 WSL + Conda 主路径,并补充云服务器兼容说明。 diff --git a/08_bilateral_filter/MLRichard/docs/plans/2026-03-07-readme-cmake-presets.md b/08_bilateral_filter/MLRichard/docs/plans/2026-03-07-readme-cmake-presets.md new file mode 100644 index 0000000..b3df3ed --- /dev/null +++ b/08_bilateral_filter/MLRichard/docs/plans/2026-03-07-readme-cmake-presets.md @@ -0,0 +1,123 @@ +# README And CMake Presets Implementation Plan + +> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. + +**Goal:** 为项目补充面向 WSL + Conda 的 `CMakePresets.json` 和完整 `README.md`,并附带云服务器兼容说明。 + +**Architecture:** 通过 `CMakePresets.json` 统一 Conda 工具链入口,使用 `README.md` 作为单一用户指南,覆盖环境、构建、运行、测试、数据格式与兼容说明。方案保持源码行为不变,只增强配置与文档。 + +**Tech Stack:** CMake Presets、Ninja、CUDA Toolkit、OpenCV、Markdown + +--- + +### Task 1: 新增 CMake 预设 + +**Files:** +- Create: `CMakePresets.json` +- Modify: `CMakeLists.txt` + +**Step 1: 确认 `CMakeLists.txt` 导出 `compile_commands.json`** + +检查 `CMakeLists.txt` 中存在: + +```cmake +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +``` + +**Step 2: 编写 `CMakePresets.json`** + +添加: +- `conda-release` +- `conda-debug` +- `build-conda-release` +- `build-conda-debug` +- `build-test-correctness` +- `build-test-performance` + +要求: +- 默认依赖 `$env{CONDA_PREFIX}` +- 配置 `CUDAToolkit_ROOT`、`OpenCV_DIR`、`CMAKE_PREFIX_PATH` +- 输出到 `build/conda-release` 和 `build/conda-debug` + +**Step 3: 验证 release preset 可配置** + +Run: `cmake --preset conda-release` + +Expected: 成功生成 `build/conda-release` + +--- + +### Task 2: 编写 README + +**Files:** +- Create: `README.md` + +**Step 1: 编写项目简介与目录说明** + +要求: +- 解释项目目标 +- 概述三个 kernel 阶段 +- 给出目录结构 + +**Step 2: 编写环境配置说明** + +要求: +- 明确主环境为 WSL2 + Ubuntu 22.04 + Conda +- 给出 Conda 环境创建命令 +- 给出激活命令与基础验证命令 + +**Step 3: 编写构建与运行说明** + +要求: +- 优先使用 `cmake --preset conda-release` +- 给出 `cmake --build --preset build-conda-release` +- 给出主程序、正确性测试、性能测试运行命令 + +**Step 4: 编写数据格式与参数说明** + +要求: +- raw 文件格式 +- `params.txt` 格式 +- kernel 选择参数说明 + +**Step 5: 编写云服务器兼容说明与 FAQ** + +要求: +- 说明如何复用同一套 Conda 依赖 +- 说明 WSL 与普通 Linux 的差异点 +- 包含 `nvcc not found`、includePath、GPU 运行限制等常见问题 + +--- + +### Task 3: 验证文档与预设一致 + +**Files:** +- Verify: `CMakePresets.json` +- Verify: `README.md` + +**Step 1: 用 preset 重新配置** + +Run: `cmake --preset conda-release` + +Expected: 成功 + +**Step 2: 用 preset 构建主目标** + +Run: `cmake --build --preset build-conda-release` + +Expected: 成功生成 `bilateral_filter`、`test_correctness`、`test_performance` + +**Step 3: 人工检查 README 命令与 preset 名称一致** + +核对: +- 预设名称 +- 构建目录 +- 环境变量说明 +- 运行命令 + +**Step 4: 总结并汇报** + +记录: +- 新增文件 +- 验证命令 +- 任何仍需用户手动执行的步骤 diff --git a/08_bilateral_filter/MLRichard/docs/report.md b/08_bilateral_filter/MLRichard/docs/report.md new file mode 100644 index 0000000..5283fb8 --- /dev/null +++ b/08_bilateral_filter/MLRichard/docs/report.md @@ -0,0 +1,228 @@ +# Bilateral Filter Profiling Report + +## 1. Scope + +本报告对应 `docs/plans/2026-03-06-bilateral-filter-impl.md` 的 **Task 12**,目标是把 profiling 流程整理为默认适配 **英伟达(NVIDIA)环境**: + +- **训练营英伟达环境可直接复用** +- **标准 Linux / WSL + NVIDIA GPU 环境可执行** +- 不需要修改项目源码 +- 在计数器权限受限时也能保留可执行的降级路径 + +## 2. Added Assets + +新增或补强的资产: + +- `tools/generate_test_raw.py` + - 生成确定性的 `3840x2160 RGB raw` 测试输入 + - 避免 profiling 依赖外部真实图片数据集 +- `tools/profile_task12.sh` + - 自动定位 `bilateral_filter` + - 自动生成默认输入 + - 自动识别当前 GPU 并按 GPU 名称分类输出 + - 默认执行 `ncu + nsys` + - 自动导出 `timeline.sqlite` + - 若 `ncu` 命中 `ERR_NVGPUCTRPERM`,自动继续执行 `nsys` + - 自动生成 `ncu_permission_hint.txt` +- `docs/report.md` + - 记录英伟达环境下的验证结果与兼容说明 + +## 3. Standard Workflow + +如果训练营提供的英伟达环境已经具备基础依赖,可直接从激活项目环境开始;以下命令同时适用于普通 Linux 服务器和 WSL + NVIDIA CUDA 环境。 + +### 3.1 Activate environment + +```bash +source ~/miniconda3/etc/profile.d/conda.sh +conda activate bilateral-cuda124 +``` + +### 3.2 Configure and build + +```bash +cmake --preset conda-release +cmake --build --preset build-conda-release -j"$(nproc)" +``` + +### 3.3 Run profiling + +```bash +bash tools/profile_task12.sh +``` + +默认会: + +- 生成 `artifacts/profiling/inputs/test_4k.raw` +- 对 `naive / shared / adaptive` 尝试生成 `.ncu-rep` +- 对 `shared` 生成 `timeline.nsys-rep` +- 自动导出 `timeline.sqlite` + +### 3.4 Fallback mode + +如果当前机器未开放 GPU Performance Counters,可先执行: + +```bash +bash tools/profile_task12.sh --skip-ncu +``` + +这样仍可获得: + +- `timeline.nsys-rep` +- `timeline.sqlite` +- `profile_output.raw` + +## 4. Output Layout + +```text +artifacts/profiling/ +├── inputs/ +│ └── test_4k.raw +└── / + ├── profile_naive.ncu-rep + ├── profile_shared.ncu-rep + ├── profile_adaptive.ncu-rep + ├── profile_*.ncu.log + ├── ncu_permission_hint.txt + ├── timeline.nsys-rep + ├── timeline.sqlite + └── profile_output.raw +``` + +说明: + +- 若 `ncu` 完整成功,则会有 `profile_*.ncu-rep` +- 若 `ncu` 因权限失败,则至少保留 `profile_*.ncu.log` 与 `ncu_permission_hint.txt` + +## 5. Metrics To Inspect + +重点关注以下指标: + +- `l1tex__t_bytes_pipe_lsu_mem_global_op_ld.sum.per_second` + - Global Memory 读带宽 +- `l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_ld.sum` + - Shared Memory bank conflict +- `sm__warps_active.avg.pct_of_peak_sustained_active` + - Occupancy / warp 活跃度 + +## 6. Verification on NVIDIA GPUs + +### 6.1 Build and helper verification + +已验证: + +- `python tools/generate_test_raw.py --help` +- `bash tools/profile_task12.sh --help` +- `cmake --preset conda-release` +- `cmake --build --preset build-conda-release -j"$(nproc)"` +- `ctest --preset test-conda-all`(在真实英伟达 GPU 环境中通过) + +### 6.2 Measured evidence on RTX 4070 + +本地 `RTX 4070` 上已有 benchmark 结果: + +- `naive_4K_rgb`: `897.5 MPix/s` +- `shared_4K_rgb`: `1249.0 MPix/s` +- `adaptive_4K_rgb`: `1249.6 MPix/s` + +这说明: + +- `shared` 相比 `naive` 已有明显加速 +- 当前实现已达到计划中 `> 1000 MPix/s` 的吞吐目标 + +上述数据是当前报告中的实测样本,证明这套流程已在一张实际英伟达消费级 GPU 上跑通。对训练营服务器或其他 NVIDIA Linux 机器,本文将其视为同一套工具链的复用路径,而不是另一套独立流程。 + +### 6.3 Profiling execution status on RTX 4070 + +本次在本地 `RTX 4070` 上的实际执行结果: + +- `bash tools/profile_task12.sh` + - `ncu` 启动成功,但被主机侧 GPU Performance Counter 权限限制拦截 + - 错误为 `ERR_NVGPUCTRPERM` +- `bash tools/profile_task12.sh --skip-ncu` + - 成功生成 `timeline.nsys-rep` + - 成功生成 `timeline.sqlite` + - 成功生成 `profile_output.raw` + +实测 `shared` kernel 运行日志: + +- `GPU Time`: `7.90 ms` +- `Throughput`: `1050.1 MPix/s` +- `CPU Time`: `175.41 ms` +- `Speedup`: `22.2x` +- `MAE`: `0.3168` +- `PSNR`: `55.61 dB` + +当前已确认: + +- **Task 12 的脚本链路已在英伟达 GPU 实机上可执行** +- **在未开放 perf counters 时,仍可稳定获得 `nsys` 时间线结果** +- **开放 perf counters 后,无需改源码即可补齐 `ncu` 报告** + +## 7. Permission Fix Instructions + +### 7.1 Windows + WSL + NVIDIA GPU + +根据 NVIDIA 官方 `ERR_NVGPUCTRPERM` 说明,Windows 平台应: + +1. 以管理员身份打开 `NVIDIA Control Panel` +2. 打开 `Desktop -> Enable Developer Settings` +3. 打开 `Developer -> Manage GPU Performance Counters` +4. 选择 `Allow access to the GPU performance counter to all users` +5. 重新打开 WSL shell 后重新执行: + +```bash +source ~/miniconda3/etc/profile.d/conda.sh +conda activate bilateral-cuda124 +bash tools/profile_task12.sh +``` + +这里把 WSL 归到 Windows host 管理,是因为 WSL GPU profiling 依赖宿主机 NVIDIA 驱动控制。 + +### 7.2 Native Linux / NVIDIA server + +Ubuntu / Debian 永久配置: + +```bash +sudo tee /etc/modprobe.d/nvidia-prof.conf >/dev/null <<'EOCONF' +options nvidia NVreg_RestrictProfilingToAdminUsers=0 +EOCONF +sudo update-initramfs -u -k all +sudo reboot +``` + +重启后检查: + +```bash +cat /proc/driver/nvidia/params | grep RmProfilingAdminOnly +``` + +若输出为 `RmProfilingAdminOnly: 0`,普通用户即可运行 `ncu`。 + +临时配置(官方 Linux 方案,适合需要立即验证的机器): + +```bash +sudo systemctl isolate multi-user +sudo modprobe -rf nvidia_uvm nvidia_drm nvidia_modeset nvidia-vgpu-vfio nvidia +sudo modprobe nvidia NVreg_RestrictProfilingToAdminUsers=0 +sudo systemctl isolate graphical +``` + +## 8. Compatibility Summary + +- `训练营英伟达环境` + - 可直接复用同一套构建、测试与 profiling 工作流 + - 若计数器权限受限,仍可通过 `--skip-ncu` 保留 `nsys` 结果 +- `Windows + WSL + NVIDIA GPU` + - 已有 `RTX 4070` 实测样本 + - `nsys` 已验证通过 + - `ncu` 需宿主机放开 perf counter 权限 +- `Linux + NVIDIA GPU` + - 使用同一套 Conda 环境与同一脚本即可执行 + - 包括 A100 在内的服务器型 GPU 复用方式一致 + - 若权限默认受限,仅需按上节执行一次 host 级配置 + - 不需要修改项目源码或 CMake 文件 + +## 9. Reference + +- NVIDIA official guide: `https://developer.nvidia.com/ERR_NVGPUCTRPERM` diff --git a/08_bilateral_filter/MLRichard/params.txt b/08_bilateral_filter/MLRichard/params.txt new file mode 100644 index 0000000..6fa2360 --- /dev/null +++ b/08_bilateral_filter/MLRichard/params.txt @@ -0,0 +1,3 @@ +radius = 5 +sigma_spatial = 3.0 +sigma_color = 30.0 diff --git a/08_bilateral_filter/MLRichard/src/bilateral_filter.cu b/08_bilateral_filter/MLRichard/src/bilateral_filter.cu new file mode 100644 index 0000000..068c9d6 --- /dev/null +++ b/08_bilateral_filter/MLRichard/src/bilateral_filter.cu @@ -0,0 +1,290 @@ +#include "bilateral_filter.cuh" +#include +#include +#include + +#define BLOCK_SIZE 16 +#define TILE 16 +#define MAX_RADIUS 15 +#define MAX_WEIGHT_SIZE ((2 * MAX_RADIUS + 1) * (2 * MAX_RADIUS + 1)) + +__constant__ float c_spatial_weight[MAX_WEIGHT_SIZE]; +__constant__ float c_color_lut[256]; + +__device__ inline int clamp_int(int value, int low, int high) { + return value < low ? low : (value > high ? high : value); +} + +__device__ inline float color_distance_l1_sq( + const float* img, int idx_a, int idx_b, int channels) +{ + float sum_abs = 0.f; + for (int channel = 0; channel < channels; ++channel) { + float diff = img[idx_a * channels + channel] - img[idx_b * channels + channel]; + sum_abs += fabsf(diff); + } + return sum_abs * sum_abs; +} + +__device__ inline float pixel_gray(const float* input, int pixel_idx, int channels) { + float value = 0.f; + int base = pixel_idx * channels; + for (int channel = 0; channel < channels; ++channel) { + value += input[base + channel]; + } + return value / channels; +} + +__global__ void kernel_naive( + const float* input, float* output, + int width, int height, int channels, + int radius, float inv2_sigma_s2, float inv2_sigma_c2) +{ + int x = blockIdx.x * blockDim.x + threadIdx.x; + int y = blockIdx.y * blockDim.y + threadIdx.y; + if (x >= width || y >= height) { + return; + } + + int center = y * width + x; + float weight_sum = 0.f; + float value[3] = {0.f, 0.f, 0.f}; + + for (int dy = -radius; dy <= radius; ++dy) { + int ny = y + dy; + if (ny < 0 || ny >= height) { + continue; + } + for (int dx = -radius; dx <= radius; ++dx) { + int nx = x + dx; + if (nx < 0 || nx >= width) { + continue; + } + + int neighbor = ny * width + nx; + float spatial = (dx * dx + dy * dy) * inv2_sigma_s2; + float color = color_distance_l1_sq(input, center, neighbor, channels) * inv2_sigma_c2; + float weight = expf(-(spatial + color)); + + weight_sum += weight; + for (int channel = 0; channel < channels; ++channel) { + value[channel] += weight * input[neighbor * channels + channel]; + } + } + } + + for (int channel = 0; channel < channels; ++channel) { + output[center * channels + channel] = value[channel] / weight_sum; + } +} + +__global__ void kernel_shared( + const float* __restrict__ input, + float* output, + int width, int height, int channels, + int radius, float inv2_sigma_c2) +{ + extern __shared__ float smem[]; + + int tx = threadIdx.x; + int ty = threadIdx.y; + int x = blockIdx.x * TILE + tx; + int y = blockIdx.y * TILE + ty; + int tile_w = TILE + 2 * radius; + + for (int j = ty; j < tile_w; j += blockDim.y) { + for (int i = tx; i < tile_w; i += blockDim.x) { + int gx = clamp_int(blockIdx.x * TILE - radius + i, 0, width - 1); + int gy = clamp_int(blockIdx.y * TILE - radius + j, 0, height - 1); + int src = (gy * width + gx) * channels; + int dst = (j * tile_w + i) * channels; + for (int channel = 0; channel < channels; ++channel) { + smem[dst + channel] = input[src + channel]; + } + } + } + __syncthreads(); + + if (x >= width || y >= height) { + return; + } + + int lx = tx + radius; + int ly = ty + radius; + int center = (ly * tile_w + lx) * channels; + float weight_sum = 0.f; + float value[3] = {0.f, 0.f, 0.f}; + int wi = 0; + + for (int dy = -radius; dy <= radius; ++dy) { + for (int dx = -radius; dx <= radius; ++dx, ++wi) { + int neighbor = ((ly + dy) * tile_w + (lx + dx)) * channels; + float sum_abs = 0.f; + for (int channel = 0; channel < channels; ++channel) { + sum_abs += fabsf(smem[center + channel] - smem[neighbor + channel]); + } + float color = (sum_abs * sum_abs) * inv2_sigma_c2; + float weight = c_spatial_weight[wi] * expf(-color); + weight_sum += weight; + for (int channel = 0; channel < channels; ++channel) { + value[channel] += weight * smem[neighbor + channel]; + } + } + } + + int out = (y * width + x) * channels; + for (int channel = 0; channel < channels; ++channel) { + output[out + channel] = value[channel] / weight_sum; + } +} + +__global__ void kernel_sobel( + const float* __restrict__ input, + float* gradient, + int width, int height, int channels) +{ + int x = blockIdx.x * blockDim.x + threadIdx.x; + int y = blockIdx.y * blockDim.y + threadIdx.y; + + if (x >= width || y >= height) { + return; + } + + if (x < 1 || x >= width - 1 || y < 1 || y >= height - 1) { + gradient[y * width + x] = 0.f; + return; + } + + float g00 = pixel_gray(input, (y - 1) * width + (x - 1), channels); + float g01 = pixel_gray(input, (y - 1) * width + x, channels); + float g02 = pixel_gray(input, (y - 1) * width + (x + 1), channels); + float g10 = pixel_gray(input, y * width + (x - 1), channels); + float g12 = pixel_gray(input, y * width + (x + 1), channels); + float g20 = pixel_gray(input, (y + 1) * width + (x - 1), channels); + float g21 = pixel_gray(input, (y + 1) * width + x, channels); + float g22 = pixel_gray(input, (y + 1) * width + (x + 1), channels); + + float gx = -g00 + g02 - 2.f * g10 + 2.f * g12 - g20 + g22; + float gy = -g00 - 2.f * g01 - g02 + g20 + 2.f * g21 + g22; + gradient[y * width + x] = sqrtf(gx * gx + gy * gy); +} + +__global__ void kernel_adaptive( + const float* __restrict__ input, + const float* __restrict__ gradient, + float* output, + int width, int height, int channels, + int radius_small, int radius_large, + float gradient_threshold, + float inv2_sigma_s2) +{ + int x = blockIdx.x * blockDim.x + threadIdx.x; + int y = blockIdx.y * blockDim.y + threadIdx.y; + if (x >= width || y >= height) { + return; + } + + int radius = gradient[y * width + x] > gradient_threshold ? radius_small : radius_large; + int center = y * width + x; + float weight_sum = 0.f; + float value[3] = {0.f, 0.f, 0.f}; + + for (int dy = -radius; dy <= radius; ++dy) { + int ny = clamp_int(y + dy, 0, height - 1); + for (int dx = -radius; dx <= radius; ++dx) { + int nx = clamp_int(x + dx, 0, width - 1); + int neighbor = ny * width + nx; + float spatial = expf(-((dx * dx + dy * dy) * inv2_sigma_s2)); + float color_sum_abs = 0.f; + for (int channel = 0; channel < channels; ++channel) { + color_sum_abs += fabsf(input[center * channels + channel] - + input[neighbor * channels + channel]); + } + int lut_idx = min(static_cast(color_sum_abs), 255); + float weight = spatial * c_color_lut[lut_idx]; + weight_sum += weight; + for (int channel = 0; channel < channels; ++channel) { + value[channel] += weight * input[neighbor * channels + channel]; + } + } + } + + for (int channel = 0; channel < channels; ++channel) { + output[center * channels + channel] = value[channel] / weight_sum; + } +} + +void launch_bilateral_naive( + const float* d_in, float* d_out, + int width, int height, int channels, + const BilateralParams& params) +{ + dim3 block(BLOCK_SIZE, BLOCK_SIZE); + dim3 grid((width + BLOCK_SIZE - 1) / BLOCK_SIZE, + (height + BLOCK_SIZE - 1) / BLOCK_SIZE); + float inv2s2 = 1.f / (2.f * params.sigma_spatial * params.sigma_spatial); + float inv2c2 = 1.f / (2.f * params.sigma_color * params.sigma_color); + kernel_naive<<>>(d_in, d_out, width, height, channels, + params.radius, inv2s2, inv2c2); + cudaDeviceSynchronize(); +} + +void launch_bilateral_shared( + const float* d_in, float* d_out, + int width, int height, int channels, + const BilateralParams& params) +{ + int radius = params.radius; + int diameter = 2 * radius + 1; + std::vector spatial_weights(diameter * diameter); + float inv2s2 = 1.f / (2.f * params.sigma_spatial * params.sigma_spatial); + for (int dy = -radius; dy <= radius; ++dy) { + for (int dx = -radius; dx <= radius; ++dx) { + spatial_weights[(dy + radius) * diameter + (dx + radius)] = + expf(-((dx * dx + dy * dy) * inv2s2)); + } + } + cudaMemcpyToSymbol(c_spatial_weight, spatial_weights.data(), + spatial_weights.size() * sizeof(float)); + + float inv2c2 = 1.f / (2.f * params.sigma_color * params.sigma_color); + int tile_w = TILE + 2 * radius; + size_t shared_mem = static_cast(tile_w) * tile_w * channels * sizeof(float); + + dim3 block(TILE, TILE); + dim3 grid((width + TILE - 1) / TILE, (height + TILE - 1) / TILE); + kernel_shared<<>>(d_in, d_out, width, height, channels, + radius, inv2c2); + cudaDeviceSynchronize(); +} + +void launch_bilateral_adaptive( + const float* d_in, float* d_out, + int width, int height, int channels, + const BilateralParams& params) +{ + std::vector lut(256); + float inv2c2 = 1.f / (2.f * params.sigma_color * params.sigma_color); + for (int value = 0; value < 256; ++value) { + lut[value] = expf(-((value * value) * inv2c2)); + } + cudaMemcpyToSymbol(c_color_lut, lut.data(), lut.size() * sizeof(float)); + + float* d_gradient = nullptr; + cudaMalloc(&d_gradient, width * height * sizeof(float)); + + dim3 block(BLOCK_SIZE, BLOCK_SIZE); + dim3 grid((width + BLOCK_SIZE - 1) / BLOCK_SIZE, + (height + BLOCK_SIZE - 1) / BLOCK_SIZE); + kernel_sobel<<>>(d_in, d_gradient, width, height, channels); + + float inv2s2 = 1.f / (2.f * params.sigma_spatial * params.sigma_spatial); + int radius_small = max(1, params.radius - 2); + int radius_large = params.radius; + float gradient_threshold = 20.f; + + kernel_adaptive<<>>(d_in, d_gradient, d_out, width, height, channels, + radius_small, radius_large, gradient_threshold, inv2s2); + cudaDeviceSynchronize(); + cudaFree(d_gradient); +} diff --git a/08_bilateral_filter/MLRichard/src/bilateral_filter.cuh b/08_bilateral_filter/MLRichard/src/bilateral_filter.cuh new file mode 100644 index 0000000..bf812ce --- /dev/null +++ b/08_bilateral_filter/MLRichard/src/bilateral_filter.cuh @@ -0,0 +1,26 @@ +#pragma once +#include "reference.h" // BilateralParams + +// Phase 1:朴素 kernel,每线程处理一个像素,直接读取 Global Memory +void launch_bilateral_naive( + const float* d_input, + float* d_output, + int width, int height, int channels, + const BilateralParams& params +); + +// Phase 2:Shared Memory 优化 kernel +void launch_bilateral_shared( + const float* d_input, + float* d_output, + int width, int height, int channels, + const BilateralParams& params +); + +// Phase 3:自适应半径 kernel +void launch_bilateral_adaptive( + const float* d_input, + float* d_output, + int width, int height, int channels, + const BilateralParams& params +); diff --git a/08_bilateral_filter/MLRichard/src/io.cpp b/08_bilateral_filter/MLRichard/src/io.cpp new file mode 100644 index 0000000..6d138cb --- /dev/null +++ b/08_bilateral_filter/MLRichard/src/io.cpp @@ -0,0 +1,59 @@ +#include "io.h" +#include +#include +#include + +Image read_raw(const std::string& path) { + std::ifstream f(path, std::ios::binary); + if (!f) throw std::runtime_error("Cannot open: " + path); + Image img; + f.read(reinterpret_cast(&img.width), 4); + f.read(reinterpret_cast(&img.height), 4); + f.read(reinterpret_cast(&img.channels), 4); + size_t n = (size_t)img.width * img.height * img.channels; + img.data.resize(n); + f.read(reinterpret_cast(img.data.data()), n); + return img; +} + +void write_raw(const std::string& path, const Image& img) { + std::ofstream f(path, std::ios::binary); + if (!f) throw std::runtime_error("Cannot write: " + path); + f.write(reinterpret_cast(&img.width), 4); + f.write(reinterpret_cast(&img.height), 4); + f.write(reinterpret_cast(&img.channels), 4); + f.write(reinterpret_cast(img.data.data()), img.data.size()); +} + +Image load_image(const std::string& path) { + cv::Mat mat = cv::imread(path, cv::IMREAD_UNCHANGED); + if (mat.empty()) throw std::runtime_error("Cannot load image: " + path); + Image img; + img.width = mat.cols; + img.height = mat.rows; + img.channels = mat.channels(); + if (img.channels == 3) cv::cvtColor(mat, mat, cv::COLOR_BGR2RGB); + img.data.assign(mat.data, mat.data + mat.total() * mat.elemSize()); + return img; +} + +Image float_to_image(const float* data, uint32_t w, uint32_t h, uint32_t c) { + Image img; + img.width = w; img.height = h; img.channels = c; + size_t n = (size_t)w * h * c; + img.data.resize(n); + for (size_t i = 0; i < n; i++) { + float v = data[i]; + if (v < 0.f) v = 0.f; + if (v > 255.f) v = 255.f; + img.data[i] = static_cast(v + 0.5f); + } + return img; +} + +std::vector image_to_float(const Image& img) { + size_t n = (size_t)img.width * img.height * img.channels; + std::vector f(n); + for (size_t i = 0; i < n; i++) f[i] = static_cast(img.data[i]); + return f; +} diff --git a/08_bilateral_filter/MLRichard/src/io.h b/08_bilateral_filter/MLRichard/src/io.h new file mode 100644 index 0000000..2dedfc5 --- /dev/null +++ b/08_bilateral_filter/MLRichard/src/io.h @@ -0,0 +1,26 @@ +#pragma once +#include +#include +#include + +struct Image { + uint32_t width; + uint32_t height; + uint32_t channels; // 1 (灰度) 或 3 (RGB) + std::vector data; // 行主序,交错存储 +}; + +// 读取 raw 格式文件 +Image read_raw(const std::string& path); + +// 写入 raw 格式文件 +void write_raw(const std::string& path, const Image& img); + +// 从 PNG/JPG 转换为 raw(借助 OpenCV) +Image load_image(const std::string& path); + +// 将 float 数组(0-255)转换回 uint8 Image +Image float_to_image(const float* data, uint32_t w, uint32_t h, uint32_t c); + +// 将 Image 转换为 float 数组(0-255) +std::vector image_to_float(const Image& img); diff --git a/08_bilateral_filter/MLRichard/src/main.cu b/08_bilateral_filter/MLRichard/src/main.cu new file mode 100644 index 0000000..ea7da35 --- /dev/null +++ b/08_bilateral_filter/MLRichard/src/main.cu @@ -0,0 +1,107 @@ +#include +#include +#include +#include +#include +#include +#include "io.h" +#include "bilateral_filter.cuh" +#include "reference.h" +#include "metrics.h" + +BilateralParams load_params(const std::string& path) { + BilateralParams p{5, 3.0f, 30.0f}; + std::ifstream f(path); + if (!f) { std::cerr << "params file not found, using defaults\n"; return p; } + std::string line; + while (std::getline(f, line)) { + if (line.empty() || line[0] == '#') continue; + auto eq = line.find('='); + if (eq == std::string::npos) continue; + std::string key = line.substr(0, eq); + std::string val = line.substr(eq + 1); + key.erase(0, key.find_first_not_of(" \t")); + key.erase(key.find_last_not_of(" \t") + 1); + val.erase(0, val.find_first_not_of(" \t")); + auto hash = val.find('#'); + if (hash != std::string::npos) val = val.substr(0, hash); + if (key == "radius") p.radius = std::stoi(val); + else if (key == "sigma_spatial") p.sigma_spatial = std::stof(val); + else if (key == "sigma_color") p.sigma_color = std::stof(val); + } + return p; +} + +int main(int argc, char* argv[]) { + if (argc < 4) { + std::cerr << "Usage: " << argv[0] + << " [kernel: naive|shared|adaptive]\n"; + return 1; + } + std::string input_path = argv[1]; + std::string output_path = argv[2]; + std::string params_path = argv[3]; + std::string kernel_type = argc > 4 ? argv[4] : "shared"; + + BilateralParams params = load_params(params_path); + Image img = read_raw(input_path); + + int W = img.width, H = img.height, C = img.channels; + int N = W * H * C; + + auto input_f = image_to_float(img); + + float *d_in, *d_out; + cudaMalloc(&d_in, N * sizeof(float)); + cudaMalloc(&d_out, N * sizeof(float)); + cudaMemcpy(d_in, input_f.data(), N * sizeof(float), cudaMemcpyHostToDevice); + + cudaEvent_t start, stop; + cudaEventCreate(&start); cudaEventCreate(&stop); + cudaEventRecord(start); + + if (kernel_type == "naive") launch_bilateral_naive (d_in, d_out, W, H, C, params); + else if (kernel_type == "shared") launch_bilateral_shared (d_in, d_out, W, H, C, params); + else if (kernel_type == "adaptive") launch_bilateral_adaptive(d_in, d_out, W, H, C, params); + else { std::cerr << "Unknown kernel: " << kernel_type << "\n"; return 1; } + + cudaEventRecord(stop); + cudaEventSynchronize(stop); + float gpu_ms = 0.f; + cudaEventElapsedTime(&gpu_ms, start, stop); + + std::vector output_f(N); + cudaMemcpy(output_f.data(), d_out, N * sizeof(float), cudaMemcpyDeviceToHost); + cudaFree(d_in); cudaFree(d_out); + + Image out_img = float_to_image(output_f.data(), W, H, C); + write_raw(output_path, out_img); + + std::vector ref_f(N); + auto t0 = std::chrono::high_resolution_clock::now(); + bilateral_filter_cpu(input_f.data(), ref_f.data(), W, H, C, params); + auto t1 = std::chrono::high_resolution_clock::now(); + float cpu_ms = std::chrono::duration(t1 - t0).count(); + + float mae = compute_mae (output_f.data(), ref_f.data(), N); + float psnr = compute_psnr(output_f.data(), ref_f.data(), N); + float mpix = (float)(W * H) / 1e6f; + + cudaDeviceProp prop; + cudaGetDeviceProperties(&prop, 0); + + printf("\n=== Performance Log ===\n"); + printf("Platform : %s\n", prop.name); + printf("Image : %dx%d %s\n", W, H, C == 3 ? "RGB" : "Gray"); + printf("Kernel : %s\n", kernel_type.c_str()); + printf("Radius : %d, sigma_s=%.1f, sigma_c=%.1f\n", + params.radius, params.sigma_spatial, params.sigma_color); + printf("GPU Time : %.2f ms\n", gpu_ms); + printf("Throughput : %.1f MPix/s\n", mpix / (gpu_ms / 1000.f)); + printf("CPU Time : %.2f ms (OpenCV)\n", cpu_ms); + printf("Speedup : %.1fx\n", cpu_ms / gpu_ms); + printf("MAE : %.4f\n", mae); + printf("PSNR : %.2f dB\n", psnr); + + return 0; +} diff --git a/08_bilateral_filter/MLRichard/src/metrics.cpp b/08_bilateral_filter/MLRichard/src/metrics.cpp new file mode 100644 index 0000000..081e426 --- /dev/null +++ b/08_bilateral_filter/MLRichard/src/metrics.cpp @@ -0,0 +1,20 @@ +#include "metrics.h" +#include +#include + +float compute_mae(const float* a, const float* b, int n) { + double sum = 0.0; + for (int i = 0; i < n; i++) sum += std::fabs(a[i] - b[i]); + return static_cast(sum / n); +} + +float compute_psnr(const float* a, const float* b, int n) { + double mse = 0.0; + for (int i = 0; i < n; i++) { + double d = a[i] - b[i]; + mse += d * d; + } + mse /= n; + if (mse < 1e-10) return 100.0f; + return static_cast(10.0 * std::log10(255.0 * 255.0 / mse)); +} diff --git a/08_bilateral_filter/MLRichard/src/metrics.h b/08_bilateral_filter/MLRichard/src/metrics.h new file mode 100644 index 0000000..7a0ef43 --- /dev/null +++ b/08_bilateral_filter/MLRichard/src/metrics.h @@ -0,0 +1,7 @@ +#pragma once + +// 计算平均绝对误差 MAE(输入为 float 数组,值域 0-255) +float compute_mae(const float* a, const float* b, int n); + +// 计算峰值信噪比 PSNR(最大值 255) +float compute_psnr(const float* a, const float* b, int n); diff --git a/08_bilateral_filter/MLRichard/src/reference.cpp b/08_bilateral_filter/MLRichard/src/reference.cpp new file mode 100644 index 0000000..b0bdd74 --- /dev/null +++ b/08_bilateral_filter/MLRichard/src/reference.cpp @@ -0,0 +1,27 @@ +#include "reference.h" +#include +#include +#include + +void bilateral_filter_cpu( + const float* input, float* output, + int w, int h, int c, + const BilateralParams& p) +{ + // 转换为 OpenCV Mat(uint8) + cv::Mat src(h, w, c == 3 ? CV_8UC3 : CV_8UC1); + for (int i = 0; i < h * w * c; i++) + src.data[i] = static_cast(std::min(std::max(input[i], 0.f), 255.f)); + + // OpenCV bilateralFilter 要求 BGR,我们存的是 RGB,需要转换 + if (c == 3) cv::cvtColor(src, src, cv::COLOR_RGB2BGR); + + cv::Mat dst; + // d = 2*radius+1,sigma_color 和 sigma_space 与我们的参数对应 + cv::bilateralFilter(src, dst, 2 * p.radius + 1, p.sigma_color, p.sigma_spatial); + + if (c == 3) cv::cvtColor(dst, dst, cv::COLOR_BGR2RGB); + + for (int i = 0; i < h * w * c; i++) + output[i] = static_cast(dst.data[i]); +} diff --git a/08_bilateral_filter/MLRichard/src/reference.h b/08_bilateral_filter/MLRichard/src/reference.h new file mode 100644 index 0000000..9c2ec06 --- /dev/null +++ b/08_bilateral_filter/MLRichard/src/reference.h @@ -0,0 +1,18 @@ +#pragma once +#include +#include + +struct BilateralParams { + int radius; + float sigma_spatial; + float sigma_color; +}; + +// CPU 参考实现,调用 OpenCV cv::bilateralFilter +// 输入/输出均为 float 数组(0-255),行主序,交错 RGB 或灰度 +void bilateral_filter_cpu( + const float* input, + float* output, + int width, int height, int channels, + const BilateralParams& params +); diff --git a/08_bilateral_filter/MLRichard/task.md b/08_bilateral_filter/MLRichard/task.md new file mode 100644 index 0000000..088aa84 --- /dev/null +++ b/08_bilateral_filter/MLRichard/task.md @@ -0,0 +1,105 @@ +# 选题八任务文档:实时图像双边滤波(CUDA) + +## 文档信息 + +- 来源: +- 提取范围:选题八(实时图像双边滤波) +- 提取日期:2026-03-03 + +## 一、原文内容提取 + +### 1. 题目 + +八. 实时图像双边滤波(CUDA) + +### 2. 任务背景 + +凭借你 InfiniTensor 训练营的经历和人工智能与并行计算方面的出色成绩,你受雇于一家领先的虚拟现实公司,负责为下一代 VR 头显开发实时图像增强模块。用户经常抱怨在弱光环境下看到的图像噪点严重,而现有降噪算法要么模糊细节,要么延迟太高导致眩晕。 + +你提出采用双边滤波算法,它能够在去除噪声的同时保持边缘清晰,非常适合VR图像处理。但双边滤波计算量极大,每个像素需要访问整个邻域并计算复杂的权重,难以在移动端实时运行。幸运的是,VR 头显内置了你知道的某单位生产的黑科技 GPU,你需要利用 CUDA 实现一个高度优化的双边滤波核,能够对 4K 分辨率、60 帧/秒的视频流进行实时处理。这将大幅提升用户的沉浸感和舒适度,为公司抢占市场提供核心技术。 + +### 3. 领域知识简介 + +双边滤波是一种非线性的保边滤波器,其输出像素值是邻域内所有像素的加权平均。权重由两部分组成:空间权重(依赖于像素间的空间距离,高斯函数)和颜色权重(依赖于像素值的差异,高斯函数)。因此,在平坦区域颜色相似,权重近似空间高斯,实现平滑;在边缘处颜色差异大,颜色权重小,避免跨边缘平滑。 + +双边滤波的难点在于计算量大:对于半径为 r 的窗口,每个像素需要计算 (2r+1)^2 个权重,且涉及指数运算。实时性要求(如 4K 60fps)对算法效率提出了极高挑战。 + +### 4. 任务内容 + +开发一个 CUDA 程序,实现每个像素独立计算的并行双边滤波。 + +### 5. 输入文件定义 + +1. 图像文件(标准格式,如 PNG、JPG),RGB 三通道或灰度。可使用 OpenCV 或 stb_image 读取,但本项目只关注 GPU 部分,因此可提供已读取的像素数组。为简化,输入可为二进制 raw 格式:宽、高、通道数,然后像素数据按行主序存储(RGBRGB...或灰度)。 +2. 参数文件(文本格式) + +```text +radius = 5 # 窗口半径,实际窗口大小为 (2*radius+1)^2 +sigma_spatial = 3.0 # 空间域标准差 +sigma_color = 30.0 # 颜色域标准差(对于8位图像,范围0-255) +``` + +### 6. 输出文件定义 + +- 滤波后的图像:与输入同格式的二进制 raw 文件。 +- 性能日志:处理时间(ms)、吞吐量(百万像素/秒)、加速比(对比 CPU OpenCV 实现)。 + +### 7. 要求 + +1. 图像格式:输入图像支持灰度图或 RGB 彩色图,像素值范围为 0-255(整数),处理时转换为浮点。输出为同格式。 +2. 滤波器参数:窗口半径 r 至少支持到 5(即 11×11 窗口),空间标准差 σs (sigma_spatial) 和颜色标准差 σc (sigma_color) 可配置。 +3. 正确性验证:输出图像应与 OpenCV 的 bilateralFilter 结果对比,计算平均绝对误差(MAE)或峰值信噪比(PSNR)。平均绝对误差小于 1(对于 8 位图像)。 +4. 进阶优化:实现自适应半径选择。 +5. 平台适配:默认需在英伟达平台上支持。每在一款国产平台上支持,额外加 20% 乘算系数。 + +### 8. 需提交内容 + +- 整个完成上述功能的程序(包含测试) +- 提交地址:Learning-CUDA 2025-winter-project 分支 +- 提交要求:参照项目代码要求中的第四条 +- 总结报告。报告需包括: + - 详细阐述实现思路以及优化方法,欢迎包含自己的优化历程和记录,开发中发现的问题等(取决于质量可以加分) + - 最终的性能指标和分析 + - 未来可继续提升的地方(可选) + - 包含 ncu 和/或 nsys 使用和分析的加分 + +## 二、执行任务清单(可直接用于开发) + +### A. 最小可交付版本(MVP) + +- 完成 raw 图像输入解析(宽/高/通道 + 像素数据)。 +- 完成 CUDA 双边滤波 kernel(支持灰度 + RGB)。 +- 实现参数读取(radius、sigma_spatial、sigma_color)。 +- 输出滤波后 raw 图像。 +- 输出基础性能日志(总耗时、百万像素/秒)。 + +### B. 正确性验证 + +- 接入 CPU 参考实现(OpenCV bilateralFilter)。 +- 计算 MAE/PSNR。 +- 确认 MAE < 1(8 位图像)。 + +### C. 性能优化方向 + +- 共享内存缓存邻域块,减少全局内存访问。 +- 预计算空间高斯权重表。 +- 使用常量内存存放小参数/查找表。 +- 调整 block/grid 配置并做 profile。 + +### D. 进阶项 + +- 自适应半径选择策略(按局部纹理/梯度)。 +- 多平台兼容适配(若有国产 GPU 环境)。 + +### E. 交付物打包 + +- 源码 + 构建脚本 + 测试样例。 +- 性能日志与对比结果。 +- 总结报告(实现、优化、指标、后续改进)。 + +### 项目代码要求 +1. 最终提交需整理代码:命名方式统一(不限定具体某种风格,全程序统一即可)、代码格式化(无具体某种格式要求,但可以默认使用默认配置的 clang-format)、无测试代码并且关键函数和代码块进行适当的注释。但与其他项目交叉的情况需遵循其他项目的规范; +2. 取决于具体选题,大体上是以总体性能为评判标准,因此代码的某些功能在适宜的情况下可以在 CPU 上完成,但必须仍有较为显著的部分在 CUDA 上完成。总体性能需超越 CPU 同级别实现; +3. 如有需要,可以使用合适的 CUDA 官方库。 +4. 如果选题的提交地址为 Learning-CUDA 仓库,则需要 fork Learning-CUDA 的 2025-winter-project 分支,并在其下对应的选题文件夹中放置自己的代码,即放置路径为 project 分支下 /<选题>/<你的ID>/。提交方式为 PR。例如 ID 为 lzm 并选做了 path_finding 的选题,则其代码提交地为 /path_finding/lzm/。 +如有任何疑问或不确定的地方,请询问导师或助教!不要等到最后提交反馈后才发现有不合规的地方! \ No newline at end of file diff --git a/08_bilateral_filter/MLRichard/test/test_correctness.cpp b/08_bilateral_filter/MLRichard/test/test_correctness.cpp new file mode 100644 index 0000000..dfaff5c --- /dev/null +++ b/08_bilateral_filter/MLRichard/test/test_correctness.cpp @@ -0,0 +1,91 @@ +#include +#include +#include +#include +#include "../src/bilateral_filter.cuh" +#include "../src/reference.h" +#include "../src/metrics.h" + +namespace { + +bool check_cuda(cudaError_t err, const char* step) { + if (err == cudaSuccess) { + return true; + } + + std::cerr << "CUDA error at " << step << ": " + << cudaGetErrorString(err) << std::endl; + return false; +} + +} + +// 生成随机噪声图 +std::vector make_random_image(int w, int h, int c, unsigned seed = 42) { + std::srand(seed); + std::vector img(w * h * c); + for (auto& v : img) v = static_cast(std::rand() % 256); + return img; +} + +bool run_test(const char* name, int W, int H, int C, + const BilateralParams& params, + void (*launcher)(const float*, float*, int, int, int, const BilateralParams&)) +{ + auto input = make_random_image(W, H, C); + int N = W * H * C; + + // CPU 参考 + std::vector ref(N); + bilateral_filter_cpu(input.data(), ref.data(), W, H, C, params); + + // GPU + float *d_in = nullptr, *d_out = nullptr; + if (!check_cuda(cudaMalloc(&d_in, N * sizeof(float)), "cudaMalloc d_in") || + !check_cuda(cudaMalloc(&d_out, N * sizeof(float)), "cudaMalloc d_out") || + !check_cuda(cudaMemcpy(d_in, input.data(), N * sizeof(float), cudaMemcpyHostToDevice), + "cudaMemcpy H2D")) { + if (d_in) cudaFree(d_in); + if (d_out) cudaFree(d_out); + return false; + } + + std::vector gpu_out(N); + + launcher(d_in, d_out, W, H, C, params); + + if (!check_cuda(cudaGetLastError(), "kernel launch/sync") || + !check_cuda(cudaMemcpy(gpu_out.data(), d_out, N * sizeof(float), cudaMemcpyDeviceToHost), + "cudaMemcpy D2H")) { + cudaFree(d_in); + cudaFree(d_out); + return false; + } + cudaFree(d_in); cudaFree(d_out); + + float mae = compute_mae(gpu_out.data(), ref.data(), N); + float psnr = compute_psnr(gpu_out.data(), ref.data(), N); + bool pass = mae < 1.0f; + printf("[%s] W=%d H=%d C=%d MAE=%.4f PSNR=%.2f dB %s\n", + name, W, H, C, mae, psnr, pass ? "PASS" : "FAIL"); + return pass; +} + +int main() { + BilateralParams p{5, 3.0f, 30.0f}; + bool ok = true; + + ok &= run_test("naive_gray", 512, 512, 1, p, launch_bilateral_naive); + ok &= run_test("naive_rgb", 512, 512, 3, p, launch_bilateral_naive); + ok &= run_test("shared_gray", 512, 512, 1, p, launch_bilateral_shared); + ok &= run_test("shared_rgb", 512, 512, 3, p, launch_bilateral_shared); + ok &= run_test("adaptive_rgb", 512, 512, 3, p, launch_bilateral_adaptive); + + if (!ok) { + std::cerr << "Correctness tests failed!" << std::endl; + return 1; + } + + std::cout << "All tests passed!" << std::endl; + return 0; +} diff --git a/08_bilateral_filter/MLRichard/test/test_performance.cpp b/08_bilateral_filter/MLRichard/test/test_performance.cpp new file mode 100644 index 0000000..a1454fc --- /dev/null +++ b/08_bilateral_filter/MLRichard/test/test_performance.cpp @@ -0,0 +1,85 @@ +#include +#include +#include +#include +#include +#include +#include "../src/bilateral_filter.cuh" +#include "../src/reference.h" +#include "../src/metrics.h" + +struct BenchResult { + std::string name; + float gpu_ms; + float cpu_ms; + float mae; + float psnr; +}; + +BenchResult benchmark( + const char* name, int W, int H, int C, + const BilateralParams& params, + void (*launcher)(const float*, float*, int, int, int, const BilateralParams&), + int warmup = 3, int iters = 10) +{ + int N = W * H * C; + std::vector input(N); + std::srand(123); + for (auto& v : input) v = static_cast(std::rand() % 256); + + float *d_in, *d_out; + cudaMalloc(&d_in, N * sizeof(float)); + cudaMalloc(&d_out, N * sizeof(float)); + cudaMemcpy(d_in, input.data(), N * sizeof(float), cudaMemcpyHostToDevice); + + // Warmup + for (int i = 0; i < warmup; i++) launcher(d_in, d_out, W, H, C, params); + + // Timed iters + cudaEvent_t s, e; + cudaEventCreate(&s); cudaEventCreate(&e); + cudaEventRecord(s); + for (int i = 0; i < iters; i++) launcher(d_in, d_out, W, H, C, params); + cudaEventRecord(e); + cudaEventSynchronize(e); + float total_ms; cudaEventElapsedTime(&total_ms, s, e); + float gpu_ms = total_ms / iters; + + std::vector gpu_out(N); + cudaMemcpy(gpu_out.data(), d_out, N * sizeof(float), cudaMemcpyDeviceToHost); + cudaFree(d_in); cudaFree(d_out); + + // CPU 参考(只跑一次) + std::vector ref(N); + auto t0 = std::chrono::high_resolution_clock::now(); + bilateral_filter_cpu(input.data(), ref.data(), W, H, C, params); + auto t1 = std::chrono::high_resolution_clock::now(); + float cpu_ms = std::chrono::duration(t1 - t0).count(); + + float mae = compute_mae (gpu_out.data(), ref.data(), N); + float psnr = compute_psnr(gpu_out.data(), ref.data(), N); + + float mpix = (float)(W * H) / 1e6f; + printf("[%-20s] %dx%d C=%d GPU=%.2fms Throughput=%.1fMPix/s CPU=%.1fms Speedup=%.1fx MAE=%.4f PSNR=%.2fdB\n", + name, W, H, C, gpu_ms, mpix/(gpu_ms/1000.f), cpu_ms, cpu_ms/gpu_ms, mae, psnr); + + return {name, gpu_ms, cpu_ms, mae, psnr}; +} + +int main() { + BilateralParams p{5, 3.0f, 30.0f}; + + printf("=== Bilateral Filter Benchmark ===\n\n"); + + // 512x512 对比三个 kernel + benchmark("naive_512_rgb", 512, 512, 3, p, launch_bilateral_naive); + benchmark("shared_512_rgb", 512, 512, 3, p, launch_bilateral_shared); + benchmark("adaptive_512_rgb", 512, 512, 3, p, launch_bilateral_adaptive); + + // 4K 性能测试(主要目标) + benchmark("naive_4K_rgb", 3840, 2160, 3, p, launch_bilateral_naive); + benchmark("shared_4K_rgb", 3840, 2160, 3, p, launch_bilateral_shared); + benchmark("adaptive_4K_rgb", 3840, 2160, 3, p, launch_bilateral_adaptive); + + return 0; +} diff --git a/08_bilateral_filter/MLRichard/tools/generate_test_raw.py b/08_bilateral_filter/MLRichard/tools/generate_test_raw.py new file mode 100755 index 0000000..b503b21 --- /dev/null +++ b/08_bilateral_filter/MLRichard/tools/generate_test_raw.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 +"""Generate a deterministic raw image for benchmark and profiling.""" + +import argparse +import struct +from pathlib import Path + +import numpy as np + + +def build_image(width: int, height: int, channels: int, seed: int) -> np.ndarray: + rng = np.random.default_rng(seed) + x = np.linspace(0.0, 1.0, width, dtype=np.float32) + y = np.linspace(0.0, 1.0, height, dtype=np.float32) + xx, yy = np.meshgrid(x, y) + + base_r = 255.0 * xx + base_g = 255.0 * yy + radial = np.sqrt((xx - 0.5) ** 2 + (yy - 0.5) ** 2) + base_b = np.clip(255.0 * (1.0 - 1.5 * radial), 0.0, 255.0) + checker = (((np.floor(xx * 32) + np.floor(yy * 32)) % 2) * 32.0).astype(np.float32) + noise = rng.normal(0.0, 10.0, size=(height, width, channels)).astype(np.float32) + + if channels == 1: + gray = 0.45 * base_r + 0.35 * base_g + 0.20 * base_b + checker + image = gray[..., None] + else: + image = np.stack([base_r + checker, base_g, base_b + 0.5 * checker], axis=-1) + + image = np.clip(image + noise, 0.0, 255.0).astype(np.uint8) + return image if channels > 1 else image[..., 0] + + +def write_raw(path: Path, array: np.ndarray, channels: int) -> None: + height, width = array.shape[:2] + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("wb") as handle: + handle.write(struct.pack(" [--gray]") + sys.exit(1) + + source = Path(sys.argv[1]).expanduser() + target = Path(sys.argv[2]).expanduser() + img2raw(str(source), str(target), "--gray" in sys.argv) diff --git a/08_bilateral_filter/MLRichard/tools/profile_task12.sh b/08_bilateral_filter/MLRichard/tools/profile_task12.sh new file mode 100755 index 0000000..ff08d9b --- /dev/null +++ b/08_bilateral_filter/MLRichard/tools/profile_task12.sh @@ -0,0 +1,218 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +BUILD_DIR="${ROOT_DIR}/build/conda-release" +APP="" +INPUT="${ROOT_DIR}/artifacts/profiling/inputs/test_4k.raw" +OUTPUT_ROOT="${ROOT_DIR}/artifacts/profiling" +PARAMS="${ROOT_DIR}/params.txt" +RUN_NCU=1 +RUN_NSYS=1 +GENERATE_INPUT=1 +NCU_SET="full" +NCU_PERMISSION_ERROR=0 + +usage() { + cat < Build directory containing bilateral_filter + --app Explicit bilateral_filter executable path + --input Input raw file path (default: auto-generated 4K raw) + --output-dir Directory for profiling artifacts + --params Parameter file path (default: params.txt) + --skip-generate Do not auto-generate missing input raw + --skip-ncu Skip Nsight Compute captures + --skip-nsys Skip Nsight Systems capture + --ncu-set Nsight Compute set (default: full) + -h, --help Show this help +USAGE +} + +is_wsl() { + [[ -n "${WSL_DISTRO_NAME:-}" ]] || grep -qiE 'microsoft|wsl' /proc/version 2>/dev/null +} + +write_ncu_permission_hint() { + local hint_path="${RUN_DIR}/ncu_permission_hint.txt" + cat > "$hint_path" < Enable Developer Settings. + 3. Open: Developer -> Manage GPU Performance Counters. + 4. Select: Allow access to the GPU performance counter to all users. + 5. Reopen the WSL terminal and rerun: + source ~/miniconda3/etc/profile.d/conda.sh + conda activate bilateral-cuda124 + bash tools/profile_task12.sh + +Recommended fix for native Linux / A100 (permanent, Ubuntu/Debian): + sudo tee /etc/modprobe.d/nvidia-prof.conf >/dev/null <<'EOCONF' + options nvidia NVreg_RestrictProfilingToAdminUsers=0 + EOCONF + sudo update-initramfs -u -k all + sudo reboot + +Verification after reboot: + cat /proc/driver/nvidia/params | grep RmProfilingAdminOnly + +Temporary Linux workaround from NVIDIA (may require stopping the display manager): + sudo systemctl isolate multi-user + sudo modprobe -rf nvidia_uvm nvidia_drm nvidia_modeset nvidia-vgpu-vfio nvidia + sudo modprobe nvidia NVreg_RestrictProfilingToAdminUsers=0 + sudo systemctl isolate graphical +HINT + printf 'Nsight Compute permission hint written to: %s\n' "$hint_path" >&2 +} + +run_ncu_capture() { + local kernel_name="$1" + local report_base="${RUN_DIR}/profile_${kernel_name}" + local log_file="${RUN_DIR}/profile_${kernel_name}.ncu.log" + + set +e + "$NCU_BIN" --set "$NCU_SET" --target-processes all -f -o "$report_base" \ + "$APP" "$INPUT" /dev/null "$PARAMS" "$kernel_name" 2>&1 | tee "$log_file" + local status=${PIPESTATUS[0]} + set -e + + if [[ $status -eq 0 ]]; then + return 0 + fi + + if grep -q 'ERR_NVGPUCTRPERM' "$log_file"; then + NCU_PERMISSION_ERROR=1 + printf 'Nsight Compute permission denied for kernel=%s, continuing with remaining steps.\n' "$kernel_name" >&2 + return 0 + fi + + printf 'Nsight Compute failed for kernel=%s, see %s\n' "$kernel_name" "$log_file" >&2 + return "$status" +} + +while [[ $# -gt 0 ]]; do + case "$1" in + --build-dir) BUILD_DIR="$2"; shift 2 ;; + --app) APP="$2"; shift 2 ;; + --input) INPUT="$2"; shift 2 ;; + --output-dir) OUTPUT_ROOT="$2"; shift 2 ;; + --params) PARAMS="$2"; shift 2 ;; + --skip-generate) GENERATE_INPUT=0; shift ;; + --skip-ncu) RUN_NCU=0; shift ;; + --skip-nsys) RUN_NSYS=0; shift ;; + --ncu-set) NCU_SET="$2"; shift 2 ;; + -h|--help) usage; exit 0 ;; + *) echo "Unknown argument: $1" >&2; usage; exit 1 ;; + esac +done + +if [[ -z "${CONDA_PREFIX:-}" ]]; then + echo "Please activate the Conda environment first." >&2 + exit 1 +fi + +if [[ -z "$APP" ]]; then + if [[ -x "${BUILD_DIR}/bilateral_filter" ]]; then + APP="${BUILD_DIR}/bilateral_filter" + elif [[ -x "${ROOT_DIR}/build-activated/bilateral_filter" ]]; then + APP="${ROOT_DIR}/build-activated/bilateral_filter" + else + echo "Cannot find bilateral_filter executable." >&2 + exit 1 + fi +fi + +GPU_NAME="$(nvidia-smi --query-gpu=name --format=csv,noheader | head -1 | tr -d '\r')" +GPU_SLUG="$(printf '%s' "$GPU_NAME" | tr '[:upper:]' '[:lower:]' | tr ' /' '__' | tr -cd '[:alnum:]_-')" +RUN_DIR="${OUTPUT_ROOT}/${GPU_SLUG}" +mkdir -p "$RUN_DIR" "$(dirname "$INPUT")" + +NCU_BIN="${CONDA_PREFIX}/nsight-compute/2024.1.1/ncu" +NSYS_BIN="${CONDA_PREFIX}/nsight-compute/2024.1.1/host/target-linux-x64/nsys" + +if [[ ! -x "$NCU_BIN" ]]; then + echo "Nsight Compute not found: $NCU_BIN" >&2 + exit 1 +fi +if [[ $RUN_NSYS -eq 1 && ! -x "$NSYS_BIN" ]]; then + echo "Nsight Systems not found: $NSYS_BIN" >&2 + exit 1 +fi +if [[ ! -f "$PARAMS" ]]; then + echo "Parameter file not found: $PARAMS" >&2 + exit 1 +fi +if [[ ! -f "$INPUT" ]]; then + if [[ $GENERATE_INPUT -eq 0 ]]; then + echo "Input raw does not exist: $INPUT" >&2 + exit 1 + fi + python "${ROOT_DIR}/tools/generate_test_raw.py" "$INPUT" --width 3840 --height 2160 --channels 3 +fi + +export LD_LIBRARY_PATH="${CONDA_PREFIX}/lib:/usr/lib/wsl/lib:${LD_LIBRARY_PATH:-}" +export LIBRARY_PATH="${CONDA_PREFIX}/lib:${LIBRARY_PATH:-}" +export CPATH="${CONDA_PREFIX}/include:${CPATH:-}" + +BENCH_OUT="${RUN_DIR}/profile_output.raw" +printf 'GPU : %s\n' "$GPU_NAME" +printf 'App : %s\n' "$APP" +printf 'Input : %s\n' "$INPUT" +printf 'Output dir : %s\n' "$RUN_DIR" +printf 'Params : %s\n' "$PARAMS" + +if [[ $RUN_NCU -eq 1 ]]; then + run_ncu_capture naive + run_ncu_capture shared + run_ncu_capture adaptive + if [[ $NCU_PERMISSION_ERROR -eq 1 ]]; then + write_ncu_permission_hint + fi +fi + +if [[ $RUN_NSYS -eq 1 ]]; then + "$NSYS_BIN" profile --force-overwrite true -o "${RUN_DIR}/timeline" \ + "$APP" "$INPUT" "$BENCH_OUT" "$PARAMS" shared + if [[ -f "${RUN_DIR}/timeline.nsys-rep" ]]; then + "$NSYS_BIN" export --force-overwrite true --type sqlite \ + --output "${RUN_DIR}/timeline.sqlite" "${RUN_DIR}/timeline.nsys-rep" >/dev/null + fi +fi + +cat <