From d2fe8aa65c96a3e7bda44c790a9bbd9c1f8fb5f8 Mon Sep 17 00:00:00 2001 From: Michelle Date: Sat, 16 May 2026 20:37:05 +0200 Subject: [PATCH] Fittet new functions to everying in neural networks. Still need to optimise for uint64_t vs int64_t and vec vs mat in some places. --- .../3.28.3/CMakeDetermineCompilerABI_CXX.bin | Bin 15992 -> 15992 bytes build/CMakeFiles/3.28.3/CMakeSystem.cmake | 8 +- build/CMakeFiles/3.28.3/CompilerIdCXX/a.out | Bin 16096 -> 16096 bytes build/CMakeFiles/CMakeConfigureLog.yaml | 230 ++--- build/CMakeFiles/FindOpenMP/ompver_CXX.bin | Bin 16248 -> 16248 bytes build/bin/dense-neural-network | Bin 135296 -> 157408 bytes .../compiler_depend.internal | 295 ------ .../compiler_depend.make | 872 +----------------- .../dense-neural-network.dir/main.cpp.o | Bin 286512 -> 342920 bytes .../dense-neural-network.dir/main.cpp.o.d | 89 +- examples/dense-neural-network/main.cpp | 60 +- .../activation_functions/Activation_ReLU.h | 8 +- .../activation_functions/Activation_Softmax.h | 18 +- ...ion_Softmax_Loss_CategoricalCrossentropy.h | 18 +- .../neural_networks/layers/Dense_Layer.h | 15 +- include/modules/neural_networks/loss/Loss.h | 17 +- .../loss/Loss_CategoricalCrossentrophy.h | 28 +- include/numerics/detail/abs_serial.h | 4 +- include/numerics/detail/add_serial.h | 4 +- include/numerics/detail/argmax_serial.h | 4 +- include/numerics/detail/argmin_serial.h | 4 +- include/numerics/detail/clip_serial.h | 4 +- include/numerics/detail/div_serial.h | 4 +- include/numerics/detail/dot_serial.h | 4 +- include/numerics/detail/equal_serial.h | 50 +- include/numerics/detail/exp_serial.h | 4 +- include/numerics/detail/isclose_serial.h | 4 +- include/numerics/detail/log_serial.h | 4 +- include/numerics/detail/matmul_serial.h | 11 +- include/numerics/detail/max_serial.h | 14 +- include/numerics/detail/mean_serial.h | 4 +- include/numerics/detail/min_serial.h | 13 +- include/numerics/detail/mul_serial.h | 4 +- include/numerics/detail/neg_serial.h | 4 +- include/numerics/detail/pow_serial.h | 4 +- include/numerics/detail/random_serial.h | 4 +- include/numerics/detail/sqrt_serial.h | 4 +- include/numerics/detail/sub_serial.h | 6 +- include/numerics/detail/sum_serial.h | 4 +- include/numerics/div.h | 2 +- include/numerics/equal.h | 19 +- .../interpolation1d/interpolation1d_base.h | 8 +- include/numerics/max.h | 9 +- include/numerics/mean.h | 4 +- include/numerics/min.h | 9 +- include/numerics/numerics.h | 60 +- include/numerics/sum.h | 2 +- include/utils/matcast.h | 4 +- include/utils/utils.h | 1 + include/utils/veccast.h | 33 + 50 files changed, 489 insertions(+), 1482 deletions(-) delete mode 100644 build/examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/compiler_depend.internal create mode 100644 include/utils/veccast.h diff --git a/build/CMakeFiles/3.28.3/CMakeDetermineCompilerABI_CXX.bin b/build/CMakeFiles/3.28.3/CMakeDetermineCompilerABI_CXX.bin index e90f3f71d98d8b48fdca37fdc4f6d991fd1db519..631c9ac47e35575c396fa010d9b7b9df90165656 100755 GIT binary patch delta 67 zcmV-J0KEVBeE58@cmovWWcyu^E@B;+1TrfNh0WFi^0~3?1JjGcGeOFq5$Y X9+U6`1hZT)JPiRWli>psldL_=pU@fD diff --git a/build/CMakeFiles/3.28.3/CMakeSystem.cmake b/build/CMakeFiles/3.28.3/CMakeSystem.cmake index fd6979d..7a3a5c1 100644 --- a/build/CMakeFiles/3.28.3/CMakeSystem.cmake +++ b/build/CMakeFiles/3.28.3/CMakeSystem.cmake @@ -1,13 +1,13 @@ -set(CMAKE_HOST_SYSTEM "Linux-6.14.0-37-generic") +set(CMAKE_HOST_SYSTEM "Linux-6.17.0-22-generic") set(CMAKE_HOST_SYSTEM_NAME "Linux") -set(CMAKE_HOST_SYSTEM_VERSION "6.14.0-37-generic") +set(CMAKE_HOST_SYSTEM_VERSION "6.17.0-22-generic") set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") -set(CMAKE_SYSTEM "Linux-6.14.0-37-generic") +set(CMAKE_SYSTEM "Linux-6.17.0-22-generic") set(CMAKE_SYSTEM_NAME "Linux") -set(CMAKE_SYSTEM_VERSION "6.14.0-37-generic") +set(CMAKE_SYSTEM_VERSION "6.17.0-22-generic") set(CMAKE_SYSTEM_PROCESSOR "x86_64") set(CMAKE_CROSSCOMPILING "FALSE") diff --git a/build/CMakeFiles/3.28.3/CompilerIdCXX/a.out b/build/CMakeFiles/3.28.3/CompilerIdCXX/a.out index c8ced32cf082708045baa23211fbf858c298928d..e926ed95aca95fa7a394ccb140ffe97fb42360fe 100755 GIT binary patch delta 51 zcmV-30L=g3ec*ktcmotNxs;RlS9<$B7>umIJQ)DNDmFZ`j04Ur0xmI=S}-KDfG~g! J0WFgOKHpUg6ng*w delta 48 zcmV-00MGy6ec*ktcmou@VVGOBbmff&RP1JF!Xn)~e)`9=j04UrlUy()vwkpw4FM~Y G0Y2YT4;DZG diff --git a/build/CMakeFiles/CMakeConfigureLog.yaml b/build/CMakeFiles/CMakeConfigureLog.yaml index 6371290..fe36898 100644 --- a/build/CMakeFiles/CMakeConfigureLog.yaml +++ b/build/CMakeFiles/CMakeConfigureLog.yaml @@ -7,7 +7,7 @@ events: - "/usr/share/cmake-3.28/Modules/CMakeDetermineSystem.cmake:233 (message)" - "CMakeLists.txt:2 (project)" message: | - The system is: Linux - 6.14.0-37-generic - x86_64 + The system is: Linux - 6.17.0-22-generic - x86_64 - kind: "message-v1" backtrace: @@ -39,8 +39,8 @@ events: checks: - "Detecting CXX compiler ABI info" directories: - source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I" - binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I" + source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-449LtD" + binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-449LtD" cmakeVariables: CMAKE_CXX_FLAGS: "" CMAKE_CXX_FLAGS_DEBUG: "-g" @@ -49,25 +49,25 @@ events: variable: "CMAKE_CXX_ABI_COMPILED" cached: true stdout: | - Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I' + Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-449LtD' - Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_9f333/fast - /usr/bin/gmake -f CMakeFiles/cmTC_9f333.dir/build.make CMakeFiles/cmTC_9f333.dir/build - gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I' - Building CXX object CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o - /usr/bin/c++ -v -o CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_8f5f9/fast + /usr/bin/gmake -f CMakeFiles/cmTC_8f5f9.dir/build.make CMakeFiles/cmTC_8f5f9.dir/build + gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-449LtD' + Building CXX object CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o + /usr/bin/c++ -v -o CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/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 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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 + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9f333.dir/' - /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_9f333.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/ccVEzwg0.s - GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu) + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_8f5f9.dir/' + /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_8f5f9.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/cc86UC9c.s + GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 @@ -86,32 +86,32 @@ events: /usr/include/x86_64-linux-gnu /usr/include End of search list. - Compiler executable checksum: c81c05345ce537099dafd5580045814a - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9f333.dir/' - as -v --64 -o CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccVEzwg0.s + Compiler executable checksum: 7896445e4990772fdae9dc0659a99266 + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_8f5f9.dir/' + as -v --64 -o CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc86UC9c.s GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.' - Linking CXX executable cmTC_9f333 - /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9f333.dir/link.txt --verbose=1 - /usr/bin/c++ -v CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_9f333 + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.' + Linking CXX executable cmTC_8f5f9 + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_8f5f9.dir/link.txt --verbose=1 + /usr/bin/c++ -v CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_8f5f9 Using built-in specs. COLLECT_GCC=/usr/bin/c++ COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/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 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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 + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_9f333' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_9f333.' - /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccNAnfT8.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_9f333 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_9f333' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_9f333.' - gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I' + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_8f5f9' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_8f5f9.' + /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccXfphqc.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_8f5f9 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_8f5f9' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_8f5f9.' + gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-449LtD' exitCode: 0 - @@ -151,25 +151,25 @@ events: message: | Parsed CXX implicit link information: link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] - ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I'] + ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-449LtD'] ignore line: [] - ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_9f333/fast] - ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_9f333.dir/build.make CMakeFiles/cmTC_9f333.dir/build] - ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I'] - ignore line: [Building CXX object CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o] - ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_8f5f9/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_8f5f9.dir/build.make CMakeFiles/cmTC_8f5f9.dir/build] + ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-449LtD'] + ignore line: [Building CXX object CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/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 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9f333.dir/'] - ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_9f333.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/ccVEzwg0.s] - ignore line: [GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu)] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_8f5f9.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_8f5f9.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/cc86UC9c.s] + ignore line: [GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)] ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] ignore line: [] ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] @@ -188,35 +188,35 @@ events: ignore line: [ /usr/include/x86_64-linux-gnu] ignore line: [ /usr/include] ignore line: [End of search list.] - ignore line: [Compiler executable checksum: c81c05345ce537099dafd5580045814a] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9f333.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccVEzwg0.s] + ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_8f5f9.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc86UC9c.s] ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.'] - ignore line: [Linking CXX executable cmTC_9f333] - ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9f333.dir/link.txt --verbose=1] - ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_9f333 ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.'] + ignore line: [Linking CXX executable cmTC_8f5f9] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_8f5f9.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_8f5f9 ] ignore line: [Using built-in specs.] ignore line: [COLLECT_GCC=/usr/bin/c++] ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/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 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_9f333' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_9f333.'] - link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccNAnfT8.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_9f333 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_8f5f9' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_8f5f9.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccXfphqc.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_8f5f9 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore arg [-plugin] ==> ignore arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/ccNAnfT8.res] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccXfphqc.res] ==> ignore arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore arg [-plugin-opt=-pass-through=-lgcc] ==> ignore arg [-plugin-opt=-pass-through=-lc] ==> ignore @@ -234,7 +234,7 @@ events: arg [-znow] ==> ignore arg [-zrelro] ==> ignore arg [-o] ==> ignore - arg [cmTC_9f333] ==> ignore + arg [cmTC_8f5f9] ==> ignore arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] @@ -246,7 +246,7 @@ events: 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/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] - arg [CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [CMakeFiles/cmTC_8f5f9.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore arg [-lstdc++] ==> lib [stdc++] arg [-lm] ==> lib [m] arg [-lgcc_s] ==> lib [gcc_s] @@ -281,8 +281,8 @@ events: - "CMakeLists.txt:8 (find_package)" description: "Detecting CXX OpenMP compiler info" directories: - source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m" - binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m" + source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hAJQzZ" + binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hAJQzZ" cmakeVariables: CMAKE_CXX_FLAGS: "" CMAKE_CXX_FLAGS_DEBUG: "-g" @@ -291,25 +291,25 @@ events: variable: "OpenMP_COMPILE_RESULT_CXX_fopenmp" cached: true stdout: | - Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m' + Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hAJQzZ' - Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_eef02/fast - /usr/bin/gmake -f CMakeFiles/cmTC_eef02.dir/build.make CMakeFiles/cmTC_eef02.dir/build - gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m' - Building CXX object CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o - /usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m/OpenMPTryFlag.cpp + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_71272/fast + /usr/bin/gmake -f CMakeFiles/cmTC_71272.dir/build.make CMakeFiles/cmTC_71272.dir/build + gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hAJQzZ' + Building CXX object CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o + /usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hAJQzZ/OpenMPTryFlag.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 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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 + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) - COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_eef02.dir/' - /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_eef02.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++14 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccP8rDhW.s - GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu) + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_71272.dir/' + /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hAJQzZ/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_71272.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++14 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc1CLVP9.s + GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 @@ -328,33 +328,33 @@ events: /usr/include/x86_64-linux-gnu /usr/include End of search list. - Compiler executable checksum: c81c05345ce537099dafd5580045814a - COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_eef02.dir/' - as -v --64 -o CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o /tmp/ccP8rDhW.s + Compiler executable checksum: 7896445e4990772fdae9dc0659a99266 + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_71272.dir/' + as -v --64 -o CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o /tmp/cc1CLVP9.s GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.' - Linking CXX executable cmTC_eef02 - /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_eef02.dir/link.txt --verbose=1 - /usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o -o cmTC_eef02 -v + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.' + Linking CXX executable cmTC_71272 + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_71272.dir/link.txt --verbose=1 + /usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o -o cmTC_71272 -v Using built-in specs. COLLECT_GCC=/usr/bin/c++ COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/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 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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 + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgomp.spec - COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_eef02' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_eef02.' - /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccUV3KfN.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -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_eef02 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadend.o - COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_eef02' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_eef02.' - gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m' + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_71272' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_71272.' + /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccvJsGgZ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -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_71272 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadend.o + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_71272' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_71272.' + gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hAJQzZ' exitCode: 0 - @@ -366,25 +366,25 @@ events: message: | Parsed CXX OpenMP implicit link information from above output: link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] - ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m'] + ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hAJQzZ'] ignore line: [] - ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_eef02/fast] - ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_eef02.dir/build.make CMakeFiles/cmTC_eef02.dir/build] - ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m'] - ignore line: [Building CXX object CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o] - ignore line: [/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m/OpenMPTryFlag.cpp] + ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_71272/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_71272.dir/build.make CMakeFiles/cmTC_71272.dir/build] + ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hAJQzZ'] + ignore line: [Building CXX object CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o] + ignore line: [/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hAJQzZ/OpenMPTryFlag.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 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] - ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_eef02.dir/'] - ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_eef02.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++14 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccP8rDhW.s] - ignore line: [GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu)] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_71272.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hAJQzZ/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_71272.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++14 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc1CLVP9.s] + ignore line: [GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)] ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] ignore line: [] ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] @@ -403,36 +403,36 @@ events: ignore line: [ /usr/include/x86_64-linux-gnu] ignore line: [ /usr/include] ignore line: [End of search list.] - ignore line: [Compiler executable checksum: c81c05345ce537099dafd5580045814a] - ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_eef02.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o /tmp/ccP8rDhW.s] + ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_71272.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o /tmp/cc1CLVP9.s] ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.'] - ignore line: [Linking CXX executable cmTC_eef02] - ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_eef02.dir/link.txt --verbose=1] - ignore line: [/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o -o cmTC_eef02 -v ] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.'] + ignore line: [Linking CXX executable cmTC_71272] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_71272.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o -o cmTC_71272 -v ] ignore line: [Using built-in specs.] ignore line: [COLLECT_GCC=/usr/bin/c++] ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/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 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --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-libstdcxx-backtrace --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-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --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 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] ignore line: [Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgomp.spec] - ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_eef02' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_eef02.'] - link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccUV3KfN.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -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_eef02 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadend.o] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_71272' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_71272.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccvJsGgZ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -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_71272 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadend.o] arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore arg [-plugin] ==> ignore arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/ccUV3KfN.res] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccvJsGgZ.res] ==> ignore arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore arg [-plugin-opt=-pass-through=-lgcc] ==> ignore arg [-plugin-opt=-pass-through=-lpthread] ==> ignore @@ -451,7 +451,7 @@ events: arg [-znow] ==> ignore arg [-zrelro] ==> ignore arg [-o] ==> ignore - arg [cmTC_eef02] ==> ignore + arg [cmTC_71272] ==> ignore arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] @@ -460,7 +460,7 @@ events: 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/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] - arg [CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o] ==> ignore + arg [CMakeFiles/cmTC_71272.dir/OpenMPTryFlag.cpp.o] ==> ignore arg [-lstdc++] ==> lib [stdc++] arg [-lm] ==> lib [m] arg [-lgomp] ==> lib [gomp] @@ -492,8 +492,8 @@ events: - "CMakeLists.txt:8 (find_package)" description: "Detecting CXX OpenMP version" directories: - source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hVlmkb" - binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hVlmkb" + source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-opyhog" + binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-opyhog" cmakeVariables: CMAKE_CXX_FLAGS: "" CMAKE_CXX_FLAGS_DEBUG: "-g" @@ -502,17 +502,17 @@ events: variable: "OpenMP_SPECTEST_CXX_" cached: true stdout: | - Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hVlmkb' + Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-opyhog' - Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_1a3cf/fast - /usr/bin/gmake -f CMakeFiles/cmTC_1a3cf.dir/build.make CMakeFiles/cmTC_1a3cf.dir/build - gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hVlmkb' - Building CXX object CMakeFiles/cmTC_1a3cf.dir/OpenMPCheckVersion.cpp.o - /usr/bin/c++ -fopenmp -std=gnu++14 -o CMakeFiles/cmTC_1a3cf.dir/OpenMPCheckVersion.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hVlmkb/OpenMPCheckVersion.cpp - Linking CXX executable cmTC_1a3cf - /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1a3cf.dir/link.txt --verbose=1 - /usr/bin/c++ -fopenmp CMakeFiles/cmTC_1a3cf.dir/OpenMPCheckVersion.cpp.o -o cmTC_1a3cf - gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hVlmkb' + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_31faf/fast + /usr/bin/gmake -f CMakeFiles/cmTC_31faf.dir/build.make CMakeFiles/cmTC_31faf.dir/build + gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-opyhog' + Building CXX object CMakeFiles/cmTC_31faf.dir/OpenMPCheckVersion.cpp.o + /usr/bin/c++ -fopenmp -std=gnu++14 -o CMakeFiles/cmTC_31faf.dir/OpenMPCheckVersion.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-opyhog/OpenMPCheckVersion.cpp + Linking CXX executable cmTC_31faf + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_31faf.dir/link.txt --verbose=1 + /usr/bin/c++ -fopenmp CMakeFiles/cmTC_31faf.dir/OpenMPCheckVersion.cpp.o -o cmTC_31faf + gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-opyhog' exitCode: 0 ... diff --git a/build/CMakeFiles/FindOpenMP/ompver_CXX.bin b/build/CMakeFiles/FindOpenMP/ompver_CXX.bin index a3c7581621c33db6667c638cfc5bf95d0a0d5075..ffcd59dd7d01f7e28f2adbd11490b2736da2d67e 100755 GIT binary patch delta 67 zcmV-J0KEVBe)xW{cmos2t<;zj02`D3NA4zATcv8GcGWb Zu>u^EAOr-nTrfNi0WFge1QV02KFq9e7$X1x delta 65 zcmV-H0KWhDe)xW{cmovwV~DOPZz|Eiy7?%Hu1vw%7+f~9j02`D2q_>jGcGeOFq5$Y X9+Myh1hZT)JPrXXlMw_HldL|>!TcE+ diff --git a/build/bin/dense-neural-network b/build/bin/dense-neural-network index 22b583dc0e12b73baf7448cf86554373a5a19d3b..08e0e806b47650c598516da252c1d40c10df115b 100755 GIT binary patch literal 157408 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 diff --git a/build/examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/compiler_depend.internal b/build/examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/compiler_depend.internal deleted file mode 100644 index c820910..0000000 --- a/build/examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/compiler_depend.internal +++ /dev/null @@ -1,295 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.28 - -examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/main.cpp.o - /home/atlas/Documents/Git/Flux/examples/dense-neural-network/main.cpp - /home/atlas/Documents/Git/Flux/include/core/omp_config.h - /home/atlas/Documents/Git/Flux/include/decomp/lu.h - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss.h - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss_CategoricalCrossentrophy.h - /home/atlas/Documents/Git/Flux/include/numerics/abs.h - /home/atlas/Documents/Git/Flux/include/numerics/exp.h - /home/atlas/Documents/Git/Flux/include/numerics/initializers/eye.h - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d.h - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_barycentric.h - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_base.h - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_cubic_spline.h - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_linear.h - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_polynomial.h - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_rational.h - /home/atlas/Documents/Git/Flux/include/numerics/inverse.h - /home/atlas/Documents/Git/Flux/include/numerics/inverse/inverse_gauss_jordan.h - /home/atlas/Documents/Git/Flux/include/numerics/inverse/inverse_lu.h - /home/atlas/Documents/Git/Flux/include/numerics/log.h - /home/atlas/Documents/Git/Flux/include/numerics/matabs.h - /home/atlas/Documents/Git/Flux/include/numerics/matadd.h - /home/atlas/Documents/Git/Flux/include/numerics/matargmax.h - /home/atlas/Documents/Git/Flux/include/numerics/matclip.h - /home/atlas/Documents/Git/Flux/include/numerics/matdiv.h - /home/atlas/Documents/Git/Flux/include/numerics/matdot.h - /home/atlas/Documents/Git/Flux/include/numerics/matequal.h - /home/atlas/Documents/Git/Flux/include/numerics/matexp.h - /home/atlas/Documents/Git/Flux/include/numerics/matlog.h - /home/atlas/Documents/Git/Flux/include/numerics/matmax.h - /home/atlas/Documents/Git/Flux/include/numerics/matmul.h - /home/atlas/Documents/Git/Flux/include/numerics/matrandom.h - /home/atlas/Documents/Git/Flux/include/numerics/matscalar.h - /home/atlas/Documents/Git/Flux/include/numerics/matsubtract.h - /home/atlas/Documents/Git/Flux/include/numerics/matsum.h - /home/atlas/Documents/Git/Flux/include/numerics/matvec.h - /home/atlas/Documents/Git/Flux/include/numerics/max.h - /home/atlas/Documents/Git/Flux/include/numerics/min.h - /home/atlas/Documents/Git/Flux/include/numerics/transpose.h - /home/atlas/Documents/Git/Flux/include/numerics/vecargmax.h - /home/atlas/Documents/Git/Flux/include/numerics/vecclip.h - /home/atlas/Documents/Git/Flux/include/numerics/vecexp.h - /home/atlas/Documents/Git/Flux/include/numerics/veclog.h - /home/atlas/Documents/Git/Flux/include/numerics/vecmax.h - /home/atlas/Documents/Git/Flux/include/numerics/vecrandom.h - /home/atlas/Documents/Git/Flux/include/utils/generators.h - /home/atlas/Documents/Git/Flux/include/utils/generators/eye.h - /home/atlas/Documents/Git/Flux/include/utils/generators/linspace.h - /home/atlas/Documents/Git/Flux/include/utils/matcast.h - /home/atlas/Documents/Git/Flux/include/utils/matrix.h - /home/atlas/Documents/Git/Flux/include/utils/random.h - /home/atlas/Documents/Git/Flux/include/utils/vector.h - /home/atlas/Documents/Git/Flux/include/decomp/decomp.h - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_ReLU.h - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_Softmax.h - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/datasets/spiral.h - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/datasets/vertical.h - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/layers/Dense_Layer.h - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/neural_networks.h - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_Adagrad.h - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_Adam.h - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_RMSprop.h - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_SGD.h - /home/atlas/Documents/Git/Flux/include/numerics/matmean.h - /home/atlas/Documents/Git/Flux/include/numerics/numerics.h - /home/atlas/Documents/Git/Flux/include/numerics/vecmean.h - /home/atlas/Documents/Git/Flux/include/utils/matrix.h - /home/atlas/Documents/Git/Flux/include/utils/utils.h - /home/atlas/Documents/Git/Flux/include/utils/vector.h - /usr/include/alloca.h - /usr/include/asm-generic/errno-base.h - /usr/include/asm-generic/errno.h - /usr/include/c++/13/backward/binders.h - /usr/include/c++/13/bit - /usr/include/c++/13/bits/alloc_traits.h - /usr/include/c++/13/bits/allocator.h - /usr/include/c++/13/bits/basic_ios.h - /usr/include/c++/13/bits/basic_ios.tcc - /usr/include/c++/13/bits/basic_string.h - /usr/include/c++/13/bits/basic_string.tcc - /usr/include/c++/13/bits/char_traits.h - /usr/include/c++/13/bits/charconv.h - /usr/include/c++/13/bits/codecvt.h - /usr/include/c++/13/bits/concept_check.h - /usr/include/c++/13/bits/cpp_type_traits.h - /usr/include/c++/13/bits/cxxabi_forced.h - /usr/include/c++/13/bits/cxxabi_init_exception.h - /usr/include/c++/13/bits/exception.h - /usr/include/c++/13/bits/exception_defines.h - /usr/include/c++/13/bits/exception_ptr.h - /usr/include/c++/13/bits/functexcept.h - /usr/include/c++/13/bits/functional_hash.h - /usr/include/c++/13/bits/hash_bytes.h - /usr/include/c++/13/bits/invoke.h - /usr/include/c++/13/bits/ios_base.h - /usr/include/c++/13/bits/istream.tcc - /usr/include/c++/13/bits/locale_classes.h - /usr/include/c++/13/bits/locale_classes.tcc - /usr/include/c++/13/bits/locale_conv.h - /usr/include/c++/13/bits/locale_facets.h - /usr/include/c++/13/bits/locale_facets.tcc - /usr/include/c++/13/bits/locale_facets_nonio.h - /usr/include/c++/13/bits/locale_facets_nonio.tcc - /usr/include/c++/13/bits/localefwd.h - /usr/include/c++/13/bits/memoryfwd.h - /usr/include/c++/13/bits/move.h - /usr/include/c++/13/bits/nested_exception.h - /usr/include/c++/13/bits/new_allocator.h - /usr/include/c++/13/bits/ostream.tcc - /usr/include/c++/13/bits/ostream_insert.h - /usr/include/c++/13/bits/postypes.h - /usr/include/c++/13/bits/predefined_ops.h - /usr/include/c++/13/bits/ptr_traits.h - /usr/include/c++/13/bits/quoted_string.h - /usr/include/c++/13/bits/random.h - /usr/include/c++/13/bits/random.tcc - /usr/include/c++/13/bits/range_access.h - /usr/include/c++/13/bits/refwrap.h - /usr/include/c++/13/bits/requires_hosted.h - /usr/include/c++/13/bits/sstream.tcc - /usr/include/c++/13/bits/std_abs.h - /usr/include/c++/13/bits/stl_algobase.h - /usr/include/c++/13/bits/stl_bvector.h - /usr/include/c++/13/bits/stl_construct.h - /usr/include/c++/13/bits/stl_function.h - /usr/include/c++/13/bits/stl_iterator.h - /usr/include/c++/13/bits/stl_iterator_base_funcs.h - /usr/include/c++/13/bits/stl_iterator_base_types.h - /usr/include/c++/13/bits/stl_numeric.h - /usr/include/c++/13/bits/stl_pair.h - /usr/include/c++/13/bits/stl_uninitialized.h - /usr/include/c++/13/bits/stl_vector.h - /usr/include/c++/13/bits/streambuf.tcc - /usr/include/c++/13/bits/streambuf_iterator.h - /usr/include/c++/13/bits/stringfwd.h - /usr/include/c++/13/bits/uniform_int_dist.h - /usr/include/c++/13/bits/utility.h - /usr/include/c++/13/bits/vector.tcc - /usr/include/c++/13/cctype - /usr/include/c++/13/cerrno - /usr/include/c++/13/clocale - /usr/include/c++/13/cmath - /usr/include/c++/13/cstdint - /usr/include/c++/13/cstdio - /usr/include/c++/13/cstdlib - /usr/include/c++/13/ctime - /usr/include/c++/13/cwchar - /usr/include/c++/13/cwctype - /usr/include/c++/13/debug/assertions.h - /usr/include/c++/13/debug/debug.h - /usr/include/c++/13/exception - /usr/include/c++/13/ext/alloc_traits.h - /usr/include/c++/13/ext/atomicity.h - /usr/include/c++/13/ext/numeric_traits.h - /usr/include/c++/13/ext/string_conversions.h - /usr/include/c++/13/ext/type_traits.h - /usr/include/c++/13/initializer_list - /usr/include/c++/13/iomanip - /usr/include/c++/13/ios - /usr/include/c++/13/iosfwd - /usr/include/c++/13/iostream - /usr/include/c++/13/istream - /usr/include/c++/13/limits - /usr/include/c++/13/locale - /usr/include/c++/13/math.h - /usr/include/c++/13/new - /usr/include/c++/13/numeric - /usr/include/c++/13/ostream - /usr/include/c++/13/random - /usr/include/c++/13/sstream - /usr/include/c++/13/stdexcept - /usr/include/c++/13/streambuf - /usr/include/c++/13/string - /usr/include/c++/13/system_error - /usr/include/c++/13/type_traits - /usr/include/c++/13/typeinfo - /usr/include/c++/13/vector - /usr/include/ctype.h - /usr/include/endian.h - /usr/include/errno.h - /usr/include/features-time64.h - /usr/include/features.h - /usr/include/libintl.h - /usr/include/linux/errno.h - /usr/include/locale.h - /usr/include/math.h - /usr/include/pthread.h - /usr/include/sched.h - /usr/include/stdc-predef.h - /usr/include/stdint.h - /usr/include/stdio.h - /usr/include/stdlib.h - /usr/include/time.h - /usr/include/wchar.h - /usr/include/wctype.h - /usr/include/x86_64-linux-gnu/asm/errno.h - /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h - /usr/include/x86_64-linux-gnu/bits/byteswap.h - /usr/include/x86_64-linux-gnu/bits/cpu-set.h - /usr/include/x86_64-linux-gnu/bits/endian.h - /usr/include/x86_64-linux-gnu/bits/endianness.h - /usr/include/x86_64-linux-gnu/bits/errno.h - /usr/include/x86_64-linux-gnu/bits/floatn-common.h - /usr/include/x86_64-linux-gnu/bits/floatn.h - /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h - /usr/include/x86_64-linux-gnu/bits/fp-fast.h - /usr/include/x86_64-linux-gnu/bits/fp-logb.h - /usr/include/x86_64-linux-gnu/bits/iscanonical.h - /usr/include/x86_64-linux-gnu/bits/libc-header-start.h - /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h - /usr/include/x86_64-linux-gnu/bits/locale.h - /usr/include/x86_64-linux-gnu/bits/long-double.h - /usr/include/x86_64-linux-gnu/bits/math-vector.h - /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h - /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h - /usr/include/x86_64-linux-gnu/bits/mathcalls.h - /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h - /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h - /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h - /usr/include/x86_64-linux-gnu/bits/sched.h - /usr/include/x86_64-linux-gnu/bits/select.h - /usr/include/x86_64-linux-gnu/bits/setjmp.h - /usr/include/x86_64-linux-gnu/bits/stdint-intn.h - /usr/include/x86_64-linux-gnu/bits/stdint-least.h - /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h - /usr/include/x86_64-linux-gnu/bits/stdio_lim.h - /usr/include/x86_64-linux-gnu/bits/stdlib-float.h - /usr/include/x86_64-linux-gnu/bits/struct_mutex.h - /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h - /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h - /usr/include/x86_64-linux-gnu/bits/time.h - /usr/include/x86_64-linux-gnu/bits/time64.h - /usr/include/x86_64-linux-gnu/bits/timesize.h - /usr/include/x86_64-linux-gnu/bits/timex.h - /usr/include/x86_64-linux-gnu/bits/types.h - /usr/include/x86_64-linux-gnu/bits/types/FILE.h - /usr/include/x86_64-linux-gnu/bits/types/__FILE.h - /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h - /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h - /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h - /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h - /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h - /usr/include/x86_64-linux-gnu/bits/types/clock_t.h - /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h - /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h - /usr/include/x86_64-linux-gnu/bits/types/error_t.h - /usr/include/x86_64-linux-gnu/bits/types/locale_t.h - /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h - /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h - /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h - /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h - /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h - /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h - /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h - /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h - /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h - /usr/include/x86_64-linux-gnu/bits/types/time_t.h - /usr/include/x86_64-linux-gnu/bits/types/timer_t.h - /usr/include/x86_64-linux-gnu/bits/types/wint_t.h - /usr/include/x86_64-linux-gnu/bits/typesizes.h - /usr/include/x86_64-linux-gnu/bits/uintn-identity.h - /usr/include/x86_64-linux-gnu/bits/waitflags.h - /usr/include/x86_64-linux-gnu/bits/waitstatus.h - /usr/include/x86_64-linux-gnu/bits/wchar.h - /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h - /usr/include/x86_64-linux-gnu/bits/wordsize.h - /usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h - /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h - /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h - /usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h - /usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h - /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_base.h - /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_inline.h - /usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h - /usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h - /usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h - /usr/include/x86_64-linux-gnu/c++/13/bits/messages_members.h - /usr/include/x86_64-linux-gnu/c++/13/bits/opt_random.h - /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h - /usr/include/x86_64-linux-gnu/c++/13/bits/time_members.h - /usr/include/x86_64-linux-gnu/gnu/stubs-64.h - /usr/include/x86_64-linux-gnu/gnu/stubs.h - /usr/include/x86_64-linux-gnu/sys/cdefs.h - /usr/include/x86_64-linux-gnu/sys/select.h - /usr/include/x86_64-linux-gnu/sys/single_threaded.h - /usr/include/x86_64-linux-gnu/sys/types.h - /usr/lib/gcc/x86_64-linux-gnu/13/include/omp.h - /usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h - /usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h - /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h - diff --git a/build/examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/compiler_depend.make b/build/examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/compiler_depend.make index d305cdf..885b459 100644 --- a/build/examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/compiler_depend.make +++ b/build/examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/compiler_depend.make @@ -1,870 +1,2 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.28 - -examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/main.cpp.o: /home/atlas/Documents/Git/Flux/examples/dense-neural-network/main.cpp \ - /home/atlas/Documents/Git/Flux/include/core/omp_config.h \ - /home/atlas/Documents/Git/Flux/include/decomp/lu.h \ - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss.h \ - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss_CategoricalCrossentrophy.h \ - /home/atlas/Documents/Git/Flux/include/numerics/abs.h \ - /home/atlas/Documents/Git/Flux/include/numerics/exp.h \ - /home/atlas/Documents/Git/Flux/include/numerics/initializers/eye.h \ - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d.h \ - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_barycentric.h \ - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_base.h \ - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_cubic_spline.h \ - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_linear.h \ - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_polynomial.h \ - /home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_rational.h \ - /home/atlas/Documents/Git/Flux/include/numerics/inverse.h \ - /home/atlas/Documents/Git/Flux/include/numerics/inverse/inverse_gauss_jordan.h \ - /home/atlas/Documents/Git/Flux/include/numerics/inverse/inverse_lu.h \ - /home/atlas/Documents/Git/Flux/include/numerics/log.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matabs.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matadd.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matargmax.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matclip.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matdiv.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matdot.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matequal.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matexp.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matlog.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matmax.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matmul.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matrandom.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matscalar.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matsubtract.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matsum.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matvec.h \ - /home/atlas/Documents/Git/Flux/include/numerics/max.h \ - /home/atlas/Documents/Git/Flux/include/numerics/min.h \ - /home/atlas/Documents/Git/Flux/include/numerics/transpose.h \ - /home/atlas/Documents/Git/Flux/include/numerics/vecargmax.h \ - /home/atlas/Documents/Git/Flux/include/numerics/vecclip.h \ - /home/atlas/Documents/Git/Flux/include/numerics/vecexp.h \ - /home/atlas/Documents/Git/Flux/include/numerics/veclog.h \ - /home/atlas/Documents/Git/Flux/include/numerics/vecmax.h \ - /home/atlas/Documents/Git/Flux/include/numerics/vecrandom.h \ - /home/atlas/Documents/Git/Flux/include/utils/generators.h \ - /home/atlas/Documents/Git/Flux/include/utils/generators/eye.h \ - /home/atlas/Documents/Git/Flux/include/utils/generators/linspace.h \ - /home/atlas/Documents/Git/Flux/include/utils/matcast.h \ - /home/atlas/Documents/Git/Flux/include/utils/matrix.h \ - /home/atlas/Documents/Git/Flux/include/utils/random.h \ - /home/atlas/Documents/Git/Flux/include/utils/vector.h \ - /home/atlas/Documents/Git/Flux/include/decomp/decomp.h \ - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_ReLU.h \ - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_Softmax.h \ - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h \ - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/datasets/spiral.h \ - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/datasets/vertical.h \ - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/layers/Dense_Layer.h \ - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/neural_networks.h \ - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_Adagrad.h \ - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_Adam.h \ - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_RMSprop.h \ - /home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_SGD.h \ - /home/atlas/Documents/Git/Flux/include/numerics/matmean.h \ - /home/atlas/Documents/Git/Flux/include/numerics/numerics.h \ - /home/atlas/Documents/Git/Flux/include/numerics/vecmean.h \ - /home/atlas/Documents/Git/Flux/include/utils/matrix.h \ - /home/atlas/Documents/Git/Flux/include/utils/utils.h \ - /home/atlas/Documents/Git/Flux/include/utils/vector.h \ - /usr/include/alloca.h \ - /usr/include/asm-generic/errno-base.h \ - /usr/include/asm-generic/errno.h \ - /usr/include/c++/13/backward/binders.h \ - /usr/include/c++/13/bit \ - /usr/include/c++/13/bits/alloc_traits.h \ - /usr/include/c++/13/bits/allocator.h \ - /usr/include/c++/13/bits/basic_ios.h \ - /usr/include/c++/13/bits/basic_ios.tcc \ - /usr/include/c++/13/bits/basic_string.h \ - /usr/include/c++/13/bits/basic_string.tcc \ - /usr/include/c++/13/bits/char_traits.h \ - /usr/include/c++/13/bits/charconv.h \ - /usr/include/c++/13/bits/codecvt.h \ - /usr/include/c++/13/bits/concept_check.h \ - /usr/include/c++/13/bits/cpp_type_traits.h \ - /usr/include/c++/13/bits/cxxabi_forced.h \ - /usr/include/c++/13/bits/cxxabi_init_exception.h \ - /usr/include/c++/13/bits/exception.h \ - /usr/include/c++/13/bits/exception_defines.h \ - /usr/include/c++/13/bits/exception_ptr.h \ - /usr/include/c++/13/bits/functexcept.h \ - /usr/include/c++/13/bits/functional_hash.h \ - /usr/include/c++/13/bits/hash_bytes.h \ - /usr/include/c++/13/bits/invoke.h \ - /usr/include/c++/13/bits/ios_base.h \ - /usr/include/c++/13/bits/istream.tcc \ - /usr/include/c++/13/bits/locale_classes.h \ - /usr/include/c++/13/bits/locale_classes.tcc \ - /usr/include/c++/13/bits/locale_conv.h \ - /usr/include/c++/13/bits/locale_facets.h \ - /usr/include/c++/13/bits/locale_facets.tcc \ - /usr/include/c++/13/bits/locale_facets_nonio.h \ - /usr/include/c++/13/bits/locale_facets_nonio.tcc \ - /usr/include/c++/13/bits/localefwd.h \ - /usr/include/c++/13/bits/memoryfwd.h \ - /usr/include/c++/13/bits/move.h \ - /usr/include/c++/13/bits/nested_exception.h \ - /usr/include/c++/13/bits/new_allocator.h \ - /usr/include/c++/13/bits/ostream.tcc \ - /usr/include/c++/13/bits/ostream_insert.h \ - /usr/include/c++/13/bits/postypes.h \ - /usr/include/c++/13/bits/predefined_ops.h \ - /usr/include/c++/13/bits/ptr_traits.h \ - /usr/include/c++/13/bits/quoted_string.h \ - /usr/include/c++/13/bits/random.h \ - /usr/include/c++/13/bits/random.tcc \ - /usr/include/c++/13/bits/range_access.h \ - /usr/include/c++/13/bits/refwrap.h \ - /usr/include/c++/13/bits/requires_hosted.h \ - /usr/include/c++/13/bits/sstream.tcc \ - /usr/include/c++/13/bits/std_abs.h \ - /usr/include/c++/13/bits/stl_algobase.h \ - /usr/include/c++/13/bits/stl_bvector.h \ - /usr/include/c++/13/bits/stl_construct.h \ - /usr/include/c++/13/bits/stl_function.h \ - /usr/include/c++/13/bits/stl_iterator.h \ - /usr/include/c++/13/bits/stl_iterator_base_funcs.h \ - /usr/include/c++/13/bits/stl_iterator_base_types.h \ - /usr/include/c++/13/bits/stl_numeric.h \ - /usr/include/c++/13/bits/stl_pair.h \ - /usr/include/c++/13/bits/stl_uninitialized.h \ - /usr/include/c++/13/bits/stl_vector.h \ - /usr/include/c++/13/bits/streambuf.tcc \ - /usr/include/c++/13/bits/streambuf_iterator.h \ - /usr/include/c++/13/bits/stringfwd.h \ - /usr/include/c++/13/bits/uniform_int_dist.h \ - /usr/include/c++/13/bits/utility.h \ - /usr/include/c++/13/bits/vector.tcc \ - /usr/include/c++/13/cctype \ - /usr/include/c++/13/cerrno \ - /usr/include/c++/13/clocale \ - /usr/include/c++/13/cmath \ - /usr/include/c++/13/cstdint \ - /usr/include/c++/13/cstdio \ - /usr/include/c++/13/cstdlib \ - /usr/include/c++/13/ctime \ - /usr/include/c++/13/cwchar \ - /usr/include/c++/13/cwctype \ - /usr/include/c++/13/debug/assertions.h \ - /usr/include/c++/13/debug/debug.h \ - /usr/include/c++/13/exception \ - /usr/include/c++/13/ext/alloc_traits.h \ - /usr/include/c++/13/ext/atomicity.h \ - /usr/include/c++/13/ext/numeric_traits.h \ - /usr/include/c++/13/ext/string_conversions.h \ - /usr/include/c++/13/ext/type_traits.h \ - /usr/include/c++/13/initializer_list \ - /usr/include/c++/13/iomanip \ - /usr/include/c++/13/ios \ - /usr/include/c++/13/iosfwd \ - /usr/include/c++/13/iostream \ - /usr/include/c++/13/istream \ - /usr/include/c++/13/limits \ - /usr/include/c++/13/locale \ - /usr/include/c++/13/math.h \ - /usr/include/c++/13/new \ - /usr/include/c++/13/numeric \ - /usr/include/c++/13/ostream \ - /usr/include/c++/13/random \ - /usr/include/c++/13/sstream \ - /usr/include/c++/13/stdexcept \ - /usr/include/c++/13/streambuf \ - /usr/include/c++/13/string \ - /usr/include/c++/13/system_error \ - /usr/include/c++/13/type_traits \ - /usr/include/c++/13/typeinfo \ - /usr/include/c++/13/vector \ - /usr/include/ctype.h \ - /usr/include/endian.h \ - /usr/include/errno.h \ - /usr/include/features-time64.h \ - /usr/include/features.h \ - /usr/include/libintl.h \ - /usr/include/linux/errno.h \ - /usr/include/locale.h \ - /usr/include/math.h \ - /usr/include/pthread.h \ - /usr/include/sched.h \ - /usr/include/stdc-predef.h \ - /usr/include/stdint.h \ - /usr/include/stdio.h \ - /usr/include/stdlib.h \ - /usr/include/time.h \ - /usr/include/wchar.h \ - /usr/include/wctype.h \ - /usr/include/x86_64-linux-gnu/asm/errno.h \ - /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ - /usr/include/x86_64-linux-gnu/bits/byteswap.h \ - /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ - /usr/include/x86_64-linux-gnu/bits/endian.h \ - /usr/include/x86_64-linux-gnu/bits/endianness.h \ - /usr/include/x86_64-linux-gnu/bits/errno.h \ - /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ - /usr/include/x86_64-linux-gnu/bits/floatn.h \ - /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ - /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ - /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ - /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ - /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ - /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ - /usr/include/x86_64-linux-gnu/bits/locale.h \ - /usr/include/x86_64-linux-gnu/bits/long-double.h \ - /usr/include/x86_64-linux-gnu/bits/math-vector.h \ - /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ - /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ - /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ - /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ - /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ - /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ - /usr/include/x86_64-linux-gnu/bits/sched.h \ - /usr/include/x86_64-linux-gnu/bits/select.h \ - /usr/include/x86_64-linux-gnu/bits/setjmp.h \ - /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ - /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ - /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ - /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ - /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ - /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ - /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ - /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ - /usr/include/x86_64-linux-gnu/bits/time.h \ - /usr/include/x86_64-linux-gnu/bits/time64.h \ - /usr/include/x86_64-linux-gnu/bits/timesize.h \ - /usr/include/x86_64-linux-gnu/bits/timex.h \ - /usr/include/x86_64-linux-gnu/bits/types.h \ - /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ - /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ - /usr/include/x86_64-linux-gnu/bits/typesizes.h \ - /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ - /usr/include/x86_64-linux-gnu/bits/waitflags.h \ - /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ - /usr/include/x86_64-linux-gnu/bits/wchar.h \ - /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ - /usr/include/x86_64-linux-gnu/bits/wordsize.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_base.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_inline.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/messages_members.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/opt_random.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/time_members.h \ - /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ - /usr/include/x86_64-linux-gnu/gnu/stubs.h \ - /usr/include/x86_64-linux-gnu/sys/cdefs.h \ - /usr/include/x86_64-linux-gnu/sys/select.h \ - /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ - /usr/include/x86_64-linux-gnu/sys/types.h \ - /usr/lib/gcc/x86_64-linux-gnu/13/include/omp.h \ - /usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \ - /usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \ - /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h - - -/usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h: - -/usr/lib/gcc/x86_64-linux-gnu/13/include/omp.h: - -/usr/include/x86_64-linux-gnu/sys/types.h: - -/usr/include/x86_64-linux-gnu/sys/single_threaded.h: - -/usr/include/x86_64-linux-gnu/sys/cdefs.h: - -/usr/include/x86_64-linux-gnu/gnu/stubs.h: - -/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/time_members.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/messages_members.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/ctype_base.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h: - -/usr/include/x86_64-linux-gnu/bits/wordsize.h: - -/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h: - -/usr/include/x86_64-linux-gnu/bits/waitflags.h: - -/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: - -/usr/include/x86_64-linux-gnu/bits/typesizes.h: - -/usr/include/c++/13/bits/stl_numeric.h: - -/usr/include/x86_64-linux-gnu/bits/types/time_t.h: - -/usr/include/c++/13/bits/stl_construct.h: - -/usr/include/c++/13/bits/stl_bvector.h: - -/usr/include/c++/13/bits/allocator.h: - -/usr/include/c++/13/bits/sstream.tcc: - -/usr/include/c++/13/cwctype: - -/usr/include/c++/13/bits/locale_facets.tcc: - -/usr/include/c++/13/bits/range_access.h: - -/home/atlas/Documents/Git/Flux/include/modules/neural_networks/layers/Dense_Layer.h: - -/usr/include/c++/13/system_error: - -/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: - -/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: - -/usr/include/c++/13/bits/ptr_traits.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matmean.h: - -/usr/include/c++/13/bits/ostream_insert.h: - -/usr/include/c++/13/bits/quoted_string.h: - -/home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_Adagrad.h: - -/usr/include/c++/13/math.h: - -/usr/include/c++/13/bits/ostream.tcc: - -/usr/include/c++/13/bits/stl_function.h: - -/usr/include/c++/13/bits/move.h: - -/home/atlas/Documents/Git/Flux/include/numerics/min.h: - -/usr/include/c++/13/bits/postypes.h: - -/usr/include/c++/13/bits/std_abs.h: - -/usr/include/c++/13/iomanip: - -/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h: - -/usr/include/c++/13/bits/locale_facets_nonio.tcc: - -/usr/include/c++/13/bits/locale_facets_nonio.h: - -/usr/include/c++/13/bits/functional_hash.h: - -/usr/include/c++/13/bits/functexcept.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matadd.h: - -/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: - -/usr/include/c++/13/bits/exception_ptr.h: - -/usr/include/c++/13/bits/locale_conv.h: - -/usr/include/c++/13/bits/istream.tcc: - -/usr/include/c++/13/bits/cxxabi_forced.h: - -/usr/include/c++/13/bits/concept_check.h: - -/usr/include/c++/13/bits/alloc_traits.h: - -/home/atlas/Documents/Git/Flux/include/utils/vector.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/ctype_inline.h: - -/usr/include/c++/13/bits/char_traits.h: - -/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: - -/usr/include/c++/13/bits/basic_string.h: - -/usr/include/libintl.h: - -/usr/include/x86_64-linux-gnu/bits/endianness.h: - -/usr/include/c++/13/bits/basic_ios.h: - -/usr/include/x86_64-linux-gnu/bits/time64.h: - -/usr/include/x86_64-linux-gnu/bits/long-double.h: - -/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h: - -/home/atlas/Documents/Git/Flux/include/numerics/vecmax.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matsubtract.h: - -/usr/include/x86_64-linux-gnu/bits/endian.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h: - -/home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_Adam.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matabs.h: - -/home/atlas/Documents/Git/Flux/include/numerics/inverse.h: - -/usr/include/x86_64-linux-gnu/bits/byteswap.h: - -/home/atlas/Documents/Git/Flux/include/numerics/veclog.h: - -/home/atlas/Documents/Git/Flux/include/utils/generators/eye.h: - -/usr/include/errno.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matexp.h: - -/usr/include/c++/13/backward/binders.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h: - -/home/atlas/Documents/Git/Flux/include/numerics/vecexp.h: - -/home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_base.h: - -/usr/include/x86_64-linux-gnu/bits/wchar.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matequal.h: - -/usr/include/features.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matdiv.h: - -/usr/include/x86_64-linux-gnu/bits/waitstatus.h: - -/usr/include/c++/13/bits/exception_defines.h: - -/usr/include/c++/13/bits/memoryfwd.h: - -/home/atlas/Documents/Git/Flux/include/numerics/log.h: - -/usr/include/c++/13/bits/ios_base.h: - -/home/atlas/Documents/Git/Flux/include/numerics/numerics.h: - -/home/atlas/Documents/Git/Flux/include/numerics/inverse/inverse_gauss_jordan.h: - -/home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss.h: - -/home/atlas/Documents/Git/Flux/include/numerics/max.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matmax.h: - -/home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_polynomial.h: - -/usr/include/stdlib.h: - -/home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_rational.h: - -/home/atlas/Documents/Git/Flux/include/utils/generators.h: - -/usr/include/c++/13/bits/refwrap.h: - -/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: - -/home/atlas/Documents/Git/Flux/include/utils/matcast.h: - -/home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h: - -/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: - -/usr/include/c++/13/bits/exception.h: - -/usr/include/c++/13/streambuf: - -/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: - -/usr/include/c++/13/bits/cxxabi_init_exception.h: - -/home/atlas/Documents/Git/Flux/examples/dense-neural-network/main.cpp: - -/home/atlas/Documents/Git/Flux/include/numerics/vecrandom.h: - -/usr/include/c++/13/typeinfo: - -/home/atlas/Documents/Git/Flux/include/numerics/initializers/eye.h: - -/usr/include/c++/13/bits/stl_algobase.h: - -/usr/include/c++/13/bits/predefined_ops.h: - -/usr/include/c++/13/iosfwd: - -/home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_linear.h: - -/usr/include/c++/13/bits/localefwd.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matargmax.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matscalar.h: - -/home/atlas/Documents/Git/Flux/include/numerics/interpolation1d.h: - -/usr/include/x86_64-linux-gnu/bits/locale.h: - -/home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_SGD.h: - -/usr/include/c++/13/bits/nested_exception.h: - -/usr/include/c++/13/bits/basic_ios.tcc: - -/home/atlas/Documents/Git/Flux/include/utils/generators/linspace.h: - -/home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_cubic_spline.h: - -/usr/include/x86_64-linux-gnu/asm/errno.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matvec.h: - -/usr/include/c++/13/bits/cpp_type_traits.h: - -/home/atlas/Documents/Git/Flux/include/numerics/abs.h: - -/usr/include/x86_64-linux-gnu/bits/types.h: - -/home/atlas/Documents/Git/Flux/include/numerics/inverse/inverse_lu.h: - -/home/atlas/Documents/Git/Flux/include/modules/neural_networks/neural_networks.h: - -/usr/include/c++/13/bits/random.h: - -/usr/include/c++/13/bits/codecvt.h: - -/usr/include/c++/13/bits/locale_facets.h: - -/home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss_CategoricalCrossentrophy.h: - -/usr/include/c++/13/bits/hash_bytes.h: - -/usr/include/x86_64-linux-gnu/bits/math-vector.h: - -/usr/include/c++/13/bits/stl_iterator_base_funcs.h: - -/usr/include/asm-generic/errno-base.h: - -/usr/include/c++/13/cstdio: - -/usr/include/c++/13/bit: - -/usr/include/c++/13/bits/basic_string.tcc: - -/home/atlas/Documents/Git/Flux/include/utils/utils.h: - -/home/atlas/Documents/Git/Flux/include/numerics/transpose.h: - -/usr/include/c++/13/bits/invoke.h: - -/usr/include/x86_64-linux-gnu/bits/types/FILE.h: - -/home/atlas/Documents/Git/Flux/include/utils/matrix.h: - -/home/atlas/Documents/Git/Flux/include/numerics/vecclip.h: - -/usr/include/alloca.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matrandom.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matsum.h: - -/home/atlas/Documents/Git/Flux/include/modules/neural_networks/datasets/spiral.h: - -/home/atlas/Documents/Git/Flux/include/utils/random.h: - -/usr/include/x86_64-linux-gnu/bits/timesize.h: - -/usr/include/c++/13/bits/locale_classes.h: - -/usr/include/x86_64-linux-gnu/bits/mathcalls.h: - -/home/atlas/Documents/Git/Flux/include/numerics/exp.h: - -/usr/include/asm-generic/errno.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matlog.h: - -/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h: - -/home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_ReLU.h: - -/usr/include/c++/13/bits/new_allocator.h: - -/usr/include/c++/13/bits/stl_uninitialized.h: - -/usr/include/c++/13/locale: - -/usr/include/c++/13/bits/stl_vector.h: - -/usr/include/c++/13/bits/streambuf.tcc: - -/usr/include/stdint.h: - -/usr/include/endian.h: - -/home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_RMSprop.h: - -/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h: - -/usr/include/c++/13/bits/streambuf_iterator.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/opt_random.h: - -/usr/include/c++/13/ostream: - -/home/atlas/Documents/Git/Flux/include/decomp/lu.h: - -/home/atlas/Documents/Git/Flux/include/numerics/vecmean.h: - -/usr/include/c++/13/bits/stringfwd.h: - -/usr/include/c++/13/bits/locale_classes.tcc: - -/usr/include/c++/13/bits/uniform_int_dist.h: - -/usr/include/c++/13/bits/vector.tcc: - -/usr/include/c++/13/cctype: - -/usr/include/c++/13/cerrno: - -/usr/include/x86_64-linux-gnu/bits/stdint-least.h: - -/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h: - -/usr/include/c++/13/clocale: - -/usr/include/c++/13/cmath: - -/home/atlas/Documents/Git/Flux/include/numerics/matmul.h: - -/home/atlas/Documents/Git/Flux/include/core/omp_config.h: - -/usr/include/c++/13/cstdint: - -/usr/include/c++/13/cstdlib: - -/home/atlas/Documents/Git/Flux/include/numerics/interpolation1d/interpolation1d_barycentric.h: - -/usr/include/c++/13/ctime: - -/usr/include/x86_64-linux-gnu/sys/select.h: - -/usr/include/c++/13/cwchar: - -/usr/include/c++/13/debug/assertions.h: - -/usr/include/c++/13/exception: - -/usr/include/c++/13/bits/stl_pair.h: - -/usr/include/x86_64-linux-gnu/bits/errno.h: - -/home/atlas/Documents/Git/Flux/include/numerics/vecargmax.h: - -/usr/include/c++/13/ext/alloc_traits.h: - -/usr/include/c++/13/new: - -/usr/include/c++/13/bits/stl_iterator.h: - -/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: - -/usr/include/c++/13/ext/numeric_traits.h: - -/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: - -/usr/include/c++/13/ext/string_conversions.h: - -/usr/include/c++/13/ext/type_traits.h: - -/usr/include/c++/13/initializer_list: - -/usr/include/c++/13/ios: - -/usr/include/c++/13/iostream: - -/usr/include/c++/13/istream: - -/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: - -/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h: - -/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h: - -/usr/include/c++/13/numeric: - -/usr/include/c++/13/bits/random.tcc: - -/usr/include/c++/13/random: - -/usr/include/c++/13/stdexcept: - -/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: - -/usr/include/c++/13/string: - -/usr/include/c++/13/type_traits: - -/usr/include/c++/13/vector: - -/usr/include/ctype.h: - -/usr/include/features-time64.h: - -/usr/include/c++/13/debug/debug.h: - -/usr/include/linux/errno.h: - -/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h: - -/home/atlas/Documents/Git/Flux/include/modules/neural_networks/datasets/vertical.h: - -/usr/include/locale.h: - -/usr/include/c++/13/bits/utility.h: - -/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: - -/usr/include/pthread.h: - -/usr/include/wctype.h: - -/usr/include/sched.h: - -/usr/include/stdc-predef.h: - -/usr/include/c++/13/bits/stl_iterator_base_types.h: - -/usr/include/stdio.h: - -/usr/include/wchar.h: - -/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h: - -/usr/include/x86_64-linux-gnu/bits/cpu-set.h: - -/usr/include/c++/13/bits/requires_hosted.h: - -/home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_Softmax.h: - -/usr/include/x86_64-linux-gnu/bits/floatn-common.h: - -/usr/include/c++/13/limits: - -/usr/include/x86_64-linux-gnu/bits/types/wint_t.h: - -/usr/include/x86_64-linux-gnu/bits/floatn.h: - -/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: - -/usr/include/x86_64-linux-gnu/bits/fp-fast.h: - -/usr/include/x86_64-linux-gnu/bits/fp-logb.h: - -/home/atlas/Documents/Git/Flux/include/decomp/decomp.h: - -/usr/include/x86_64-linux-gnu/bits/iscanonical.h: - -/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h: - -/usr/include/x86_64-linux-gnu/bits/types/error_t.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matdot.h: - -/usr/include/x86_64-linux-gnu/bits/sched.h: - -/usr/include/x86_64-linux-gnu/bits/time.h: - -/usr/include/x86_64-linux-gnu/bits/select.h: - -/usr/include/time.h: - -/usr/include/x86_64-linux-gnu/bits/setjmp.h: - -/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: - -/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: - -/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: - -/usr/include/x86_64-linux-gnu/bits/timex.h: - -/usr/include/math.h: - -/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: - -/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: - -/home/atlas/Documents/Git/Flux/include/numerics/matclip.h: - -/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: - -/usr/include/c++/13/bits/charconv.h: - -/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: - -/usr/include/c++/13/sstream: - -/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h: - -/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: - -/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: - -/usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h: - -/usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h: - -/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: - -/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: - -/usr/include/c++/13/ext/atomicity.h: - -/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: - -/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: +# Empty compiler generated dependencies file for dense-neural-network. +# This may be replaced when dependencies are built. diff --git a/build/examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/main.cpp.o b/build/examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/main.cpp.o index 79631988af5a8c4ad309a95f2e83466b689121ca..a1e725114215a759eb6496e2a21a58e4b4356746 100644 GIT binary patch literal 342920 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 E2Y0U;X8-^I literal 286512 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 iyPEUQT$6Hh{JFxv class_targets; - utils::Vector predections; + utils::Vector class_targets; + utils::Vector predections; // Create dataset @@ -40,14 +40,23 @@ int main(int argc, char const *argv[]) //neural_networks::create_vertical_data(number_of_samples, number_of_classes, X, y); // Create Dense layer with 2 input featues and 3 output values - neural_networks::Dense_Layer dense1(2, 64); + neural_networks::Dense_Layer dense1(2, 16); // Create ReLU activation (to be used with Dense layer) neural_networks::Activation_ReLU activation1; + + + // Create a second Dense layer with 16 inputs (as we take the vlaues from the last layer) + // and 16 output values + neural_networks::Dense_Layer dense2(16, 16); + // Create Softmax activation (to be used with Dense layer) + neural_networks::Activation_Softmax activation2; + + // Create a second Dense layer with 3 inputs (as we take the vlaues from the last layer) // and 3 output values - neural_networks::Dense_Layer dense2(64, number_of_classes); + neural_networks::Dense_Layer dense3(16, number_of_classes); // Create a Sfotmax classifier's combined loss and activation neural_networks::Activation_Softmax_Loss_CategoricalCrossentropy loss_activation; @@ -74,22 +83,33 @@ int main(int argc, char const *argv[]) // takes output of activation function of the first layer as input dense2.forward(activation1.outputs); + // Perform a forward pass thourgh activation function + // takes the output fo the first layer here + activation2.forward(dense2.outputs); + + // Perform a forward pass through second Dense layer + // takes output of activation function of the first layer as input + dense3.forward(activation2.outputs); + + + // Perform a foard pass through the activation/loss function // takes the output of the second dense layer here and returns loss loss = loss_activation.forward(dense2.outputs, y); loss_activation.loss.regularization_loss(dense1); // Calculate accuracy from output of activation2 and targets - predections = numerics::matargmax_row(loss_activation.outputs); + //predections = numerics::matargmax_row (loss_activation.outputs); + predections = numerics::argmax_rowwise(loss_activation.outputs); if (y.cols() < 1){ - class_targets = numerics::matargmax_row(y); + class_targets = numerics::argmax_rowwise(y); }else{ - class_targets = y.get_col(0); + class_targets = utils::veccast (y.get_col(0)); } - accuracy = numerics::vecmean_equal(predections, class_targets); + accuracy = numerics::mean( utils::veccast (numerics::equal_elementwise_serial(predections, class_targets))); if (!(epoch%100)){ @@ -123,6 +143,7 @@ int main(int argc, char const *argv[]) // Perform a forward pass of our testing data through this layer dense1.forward(X_test); + // Perform a forward pass thourgh activation function // takes the output fo the first layer here activation1.forward(dense1.outputs); @@ -131,21 +152,30 @@ int main(int argc, char const *argv[]) // takes output of activation function of the first layer as input dense2.forward(activation1.outputs); + // Perform a forward pass thourgh activation function + // takes the output fo the first layer here + activation2.forward(dense2.outputs); + + // Perform a forward pass through second Dense layer + // takes output of activation function of the first layer as input + dense3.forward(activation2.outputs); + + // Perform a foard pass through the activation/loss function // takes the output of the second dense layer here and returns loss - loss = loss_activation.forward(dense2.outputs, y); + loss = loss_activation.forward(dense3.outputs, y_test); // Calculate accuracy from output of activation2 and targets - predections = numerics::matargmax_row(loss_activation.outputs); + predections = numerics::argmax_rowwise(loss_activation.outputs); - if (y.cols() < 1){ - class_targets = numerics::matargmax_row(y); + if (y.cols() == 1){ + class_targets = numerics::argmax_rowwise(y_test); }else{ - class_targets = y.get_col(0); + class_targets = utils::veccast (y_test.get_col(0)); } - accuracy = numerics::vecmean_equal(predections, class_targets); + accuracy = numerics::mean( utils::veccast (numerics::equal_elementwise_serial(predections, class_targets))); std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl; diff --git a/include/modules/neural_networks/activation_functions/Activation_ReLU.h b/include/modules/neural_networks/activation_functions/Activation_ReLU.h index 2427503..a2de5f8 100644 --- a/include/modules/neural_networks/activation_functions/Activation_ReLU.h +++ b/include/modules/neural_networks/activation_functions/Activation_ReLU.h @@ -1,9 +1,9 @@ #pragma once -#include "./core/omp_config.h" +#include "core/omp_config.h" -#include "./utils/vector.h" -#include "./utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace neural_networks{ @@ -18,7 +18,7 @@ namespace neural_networks{ void forward(const utils::Matrix& inputs){ _inputs = inputs; - outputs = numerics::matclip_low(inputs, T{0}); + outputs = numerics::clip_low(inputs, T{0}); } void backward(const utils::Matrix& dvalues){ // Since we need to modify the original variable, diff --git a/include/modules/neural_networks/activation_functions/Activation_Softmax.h b/include/modules/neural_networks/activation_functions/Activation_Softmax.h index ae23ca2..9409426 100644 --- a/include/modules/neural_networks/activation_functions/Activation_Softmax.h +++ b/include/modules/neural_networks/activation_functions/Activation_Softmax.h @@ -1,14 +1,14 @@ #pragma once -#include "./core/omp_config.h" +#include "core/omp_config.h" -#include "./utils/vector.h" -#include "./utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" -#include "./numerics/matmax.h" -#include "./numerics/matsubtract.h" -#include "./numerics/matexp.h" -#include "./numerics/matdiv.h" +#include "numerics/max.h" +#include "numerics/sub.h" +#include "numerics/exp.h" +#include "numerics/div.h" @@ -26,10 +26,10 @@ namespace neural_networks{ void forward(const utils::Matrix& inputs){ // Get unnormalized probabilities - utils::Matrix exp_values = numerics::matexp(numerics::matsubtract(inputs, numerics::matmax(inputs, "rows"), "col")); + utils::Matrix exp_values = numerics::exp(numerics::sub_colwise(inputs, numerics::max_rowwise(inputs))); // Normalize them for each sample - utils::Matrix probabilities = numerics::matdiv(exp_values, numerics::matsum(exp_values, "col"), "col"); + utils::Matrix probabilities = numerics::div_colwise(exp_values, numerics::sum_colwise(exp_values)); outputs = probabilities; } diff --git a/include/modules/neural_networks/activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h b/include/modules/neural_networks/activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h index ea4e9b8..764f4b3 100644 --- a/include/modules/neural_networks/activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h +++ b/include/modules/neural_networks/activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h @@ -1,17 +1,17 @@ #pragma once -#include "./core/omp_config.h" +#include "core/omp_config.h" -#include "./utils/vector.h" -#include "./utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" -#include "./numerics/matmax.h" -#include "./numerics/matsubtract.h" -#include "./numerics/matexp.h" -#include "./numerics/matdiv.h" +#include "numerics/max.h" +#include "numerics/sub.h" +#include "numerics/exp.h" +#include "numerics/div.h" -#include "./modules/neural_networks/activation_functions/Activation_Softmax.h" -#include "./modules/neural_networks/loss/Loss_CategoricalCrossentrophy.h" +#include "modules/neural_networks/activation_functions/Activation_Softmax.h" +#include "modules/neural_networks/loss/Loss_CategoricalCrossentrophy.h" namespace neural_networks{ diff --git a/include/modules/neural_networks/layers/Dense_Layer.h b/include/modules/neural_networks/layers/Dense_Layer.h index b7c19a3..c85fbbc 100644 --- a/include/modules/neural_networks/layers/Dense_Layer.h +++ b/include/modules/neural_networks/layers/Dense_Layer.h @@ -1,10 +1,10 @@ #pragma once -#include "./core/omp_config.h" +#include "core/omp_config.h" -#include "./utils/vector.h" -#include "./utils/matrix.h" -#include "./utils/random.h" +#include "utils/vector.h" +#include "utils/matrix.h" +#include "utils/random.h" namespace neural_networks{ @@ -40,20 +40,23 @@ namespace neural_networks{ Dense_Layer(const uint64_t n_inputs, const uint64_t n_neurons){ weights.random(n_inputs, n_neurons, -1, 1); + //weights = numerics::random_matrix(n_inputs, n_neurons, -1, 1); biases.resize(n_neurons, T{0}); } void forward(const utils::Matrix& inputs){ _inputs = inputs; - outputs = numerics::matadd(numerics::matmul_auto(inputs, weights), biases, "row"); + //std::cout << "HERE" << std::endl; + outputs = numerics::add_rowwise(numerics::matmul(inputs, weights), biases); } void backward(const utils::Matrix& dvalues){ // Gradients on parameters dweights = numerics::matmul(numerics::transpose(_inputs), dvalues); - dbiases = numerics::matsum(dvalues, "row"); + dbiases = numerics::sum_rowwise(dvalues); //Gradient on values + dinputs = numerics::matmul(dvalues, numerics::transpose(weights)); } diff --git a/include/modules/neural_networks/loss/Loss.h b/include/modules/neural_networks/loss/Loss.h index e291d0f..0234a51 100644 --- a/include/modules/neural_networks/loss/Loss.h +++ b/include/modules/neural_networks/loss/Loss.h @@ -1,13 +1,12 @@ #pragma once -#include "./core/omp_config.h" +#include "core/omp_config.h" -#include "./utils/vector.h" -#include "./utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" -#include "numerics/vecmean.h" -#include "numerics/matabs.h" -#include "numerics/matmean.h" +#include "numerics/mean.h" +#include "numerics/abs.h" namespace neural_networks{ @@ -28,7 +27,7 @@ namespace neural_networks{ sample_losses = forward(output, y); // Calculate mean loss - data_loss = numerics::vecmean(sample_losses); + data_loss = numerics::mean(sample_losses); return data_loss; @@ -42,12 +41,12 @@ namespace neural_networks{ // L1 regularization - weights // calculate only when factor greater than 0 if (layer.weight_regularizer_l1){ - regularization_losss += layer.weight_regularizer_l1 * numerics::matsum_coeff(numerics::matabs(layer.weights)); + regularization_losss += layer.weight_regularizer_l1 * numerics::sum(numerics::abs(layer.weights)); } // L2 regularization - weights if (layer.weight_regularizer_l2){ - regularization_losss += layer.weight_regularizer_l2 * numerics::matsum_coeff(numerics::matmul(layer.weights,layer.weights)); // elementwise! + regularization_losss += layer.weight_regularizer_l2 * numerics::sum(numerics::mul(layer.weights,layer.weights)); // elementwise! } // L1 regularization - biases diff --git a/include/modules/neural_networks/loss/Loss_CategoricalCrossentrophy.h b/include/modules/neural_networks/loss/Loss_CategoricalCrossentrophy.h index 9654da8..906a2b7 100644 --- a/include/modules/neural_networks/loss/Loss_CategoricalCrossentrophy.h +++ b/include/modules/neural_networks/loss/Loss_CategoricalCrossentrophy.h @@ -1,15 +1,15 @@ #pragma once -#include "./core/omp_config.h" +#include "core/omp_config.h" -#include "./utils/vector.h" -#include "./utils/matrix.h" -#include "./utils/matcast.h" +#include "utils/vector.h" +#include "utils/matrix.h" +#include "utils/matcast.h" -#include "./numerics/matclip.h" -#include "./numerics/veclog.h" +#include "numerics/clip.h" +#include "numerics/log.h" -#include "./Loss.h" +#include "Loss.h" namespace neural_networks{ @@ -30,7 +30,7 @@ namespace neural_networks{ // Clip data to prevent dividning by 0 // Clip both sides to not drag mean towards any value - utils::Matrix y_pred_clipped = numerics::matclip(y_pred, Td{1e-7}, Td{1.0} - Td{1e-7}); + utils::Matrix y_pred_clipped = numerics::clip(y_pred, Td{1e-7}, Td{1.0} - Td{1e-7}); // Probabilities for taget values // only if categorical labes @@ -40,7 +40,8 @@ namespace neural_networks{ correct_confidences[i] = y_pred_clipped(i, idx); } }else{ // Mask values - only for one-hot encoded labels - correct_confidences = numerics::matdot_row(y_pred_clipped, cast_y_true); + correct_confidences = numerics::sum_rowwise(numerics::mul(y_pred_clipped, cast_y_true)); + //correct_confidences = numerics::matdot_row(y_pred_clipped, cast_y_true); } // Losses @@ -72,9 +73,12 @@ namespace neural_networks{ // Calculate the gradient - numerics::inplace_matscalar(y_temp,Ti{-1}); - dinputs = numerics::matdiv(utils::matcast(y_temp), dvalues); - numerics::inplace_matdiv(dinputs, samples); + //numerics::inplace_matscalar(y_temp,Ti{-1}); + y_temp = numerics::neg(y_temp); + //dinputs = numerics::matdiv(utils::matcast(y_temp), dvalues); + dinputs = numerics::div(utils::matcast(y_temp), dvalues); + //numerics::inplace_matdiv(dinputs, samples); + dinputs = numerics::div(dinputs, samples); } diff --git a/include/numerics/detail/abs_serial.h b/include/numerics/detail/abs_serial.h index f16e6e5..443cdb2 100644 --- a/include/numerics/detail/abs_serial.h +++ b/include/numerics/detail/abs_serial.h @@ -3,8 +3,8 @@ #include //uint64_t #include // std::abs -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/add_serial.h b/include/numerics/detail/add_serial.h index 1f1dc86..f922b78 100644 --- a/include/numerics/detail/add_serial.h +++ b/include/numerics/detail/add_serial.h @@ -3,8 +3,8 @@ #include //uint64_t #include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/argmax_serial.h b/include/numerics/detail/argmax_serial.h index 6e18b39..0122854 100644 --- a/include/numerics/detail/argmax_serial.h +++ b/include/numerics/detail/argmax_serial.h @@ -3,8 +3,8 @@ #include //uint64_t //#include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/argmin_serial.h b/include/numerics/detail/argmin_serial.h index 42ee54c..41634b4 100644 --- a/include/numerics/detail/argmin_serial.h +++ b/include/numerics/detail/argmin_serial.h @@ -3,8 +3,8 @@ #include //uint64_t //#include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/clip_serial.h b/include/numerics/detail/clip_serial.h index 326f521..7091837 100644 --- a/include/numerics/detail/clip_serial.h +++ b/include/numerics/detail/clip_serial.h @@ -3,8 +3,8 @@ #include //uint64_t #include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/div_serial.h b/include/numerics/detail/div_serial.h index 48f8a9d..ea48533 100644 --- a/include/numerics/detail/div_serial.h +++ b/include/numerics/detail/div_serial.h @@ -3,8 +3,8 @@ #include //uint64_t #include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/dot_serial.h b/include/numerics/detail/dot_serial.h index 6e3a806..1b600a1 100644 --- a/include/numerics/detail/dot_serial.h +++ b/include/numerics/detail/dot_serial.h @@ -3,8 +3,8 @@ #include //uint64_t #include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/equal_serial.h b/include/numerics/detail/equal_serial.h index 197e46b..7839a13 100644 --- a/include/numerics/detail/equal_serial.h +++ b/include/numerics/detail/equal_serial.h @@ -3,14 +3,14 @@ #include //uint64_t //#include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ // ---------------- Matrix ---------------- template - inline bool equal_serial(const utils::Matrix& A, const utils::Matrix & B) { + inline bool equal_all_serial(const utils::Matrix& A, const utils::Matrix & B) { const uint64_t rows = A.rows(); const uint64_t cols = A.cols(); @@ -30,7 +30,7 @@ namespace numerics::detail{ // ---------------- Vector ---------------- template - inline bool equal_serial(const utils::Vector& v, const utils::Vector& p) { + inline bool equal_all_serial(const utils::Vector& v, const utils::Vector& p) { const uint64_t N = v.size(); if (N != p.size()){ return false; @@ -43,5 +43,47 @@ namespace numerics::detail{ return true; } + // ---------------- Matrix ---------------- + template + inline utils::Matrix equal_elementwise_serial(const utils::Matrix& A, const utils::Matrix & B) { + const uint64_t rows = A.rows(); + const uint64_t cols = A.cols(); + + if ((rows != B.rows()) || (cols != B.cols())){ + throw std::runtime_error("equal_elementwise_serial: Dimention misfit"); + } + + utils::Matrix C(rows, cols, T{0}); + + for (uint64_t i = 0; i < rows; ++i){ + for (uint64_t j = 0; j < cols; ++j){ + if (A(i,j) == B(i,j)){ + C(i,j) = T{1}; + } + } + } + return C; + } + + // ---------------- Vector ---------------- + template + inline utils::Vector equal_elementwise_serial(const utils::Vector& v, const utils::Vector& p) { + const uint64_t N = v.size(); + if (N != p.size()){ + throw std::runtime_error("equal_elementwise_serial: Dimention misfit"); + } + + utils::Vector y(N, T{0}); + + for (uint64_t i = 0; i < N; ++i){ + if ((v[i] == p[i])){ + y[i] = T{1}; + } + } + return y; + } + + + } // namespace numerics diff --git a/include/numerics/detail/exp_serial.h b/include/numerics/detail/exp_serial.h index 2111ccc..cc9883d 100644 --- a/include/numerics/detail/exp_serial.h +++ b/include/numerics/detail/exp_serial.h @@ -3,8 +3,8 @@ #include //uint64_t #include // std::exp -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/isclose_serial.h b/include/numerics/detail/isclose_serial.h index 6dac405..de5c672 100644 --- a/include/numerics/detail/isclose_serial.h +++ b/include/numerics/detail/isclose_serial.h @@ -3,8 +3,8 @@ #include //uint64_t //#include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" #include // std::abs diff --git a/include/numerics/detail/log_serial.h b/include/numerics/detail/log_serial.h index cead6e4..9e67d70 100644 --- a/include/numerics/detail/log_serial.h +++ b/include/numerics/detail/log_serial.h @@ -3,8 +3,8 @@ #include //uint64_t #include // std::log -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/matmul_serial.h b/include/numerics/detail/matmul_serial.h index 86b9033..3fac9aa 100644 --- a/include/numerics/detail/matmul_serial.h +++ b/include/numerics/detail/matmul_serial.h @@ -3,8 +3,8 @@ #include //uint64_t #include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ @@ -15,7 +15,12 @@ namespace numerics::detail{ const uint64_t n = A.cols(); // also B.rows() const uint64_t p = B.cols(); if(n != B.rows()){ - throw std::runtime_error("matmul: dimension mismatch"); + throw std::runtime_error( + "matmul: dimension mismatch: A is " + + std::to_string(A.rows()) + "x" + std::to_string(A.cols()) + + ", B is " + + std::to_string(B.rows()) + "x" + std::to_string(B.cols()) + ); } T tmp; utils::Matrix C(m, p, T{0}); diff --git a/include/numerics/detail/max_serial.h b/include/numerics/detail/max_serial.h index 9f8b357..1416deb 100644 --- a/include/numerics/detail/max_serial.h +++ b/include/numerics/detail/max_serial.h @@ -3,10 +3,19 @@ #include //uint64_t //#include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ + + // ---------------- (Scalar, Scalar) -> Scalar ---------------- + template + T max_serial(const T a, const T b) { + if (a >= b){ + return a; + } + return b; + } // ---------------- Matrix -> Scalar ---------------- template @@ -37,6 +46,7 @@ namespace numerics::detail{ return max; } + // ---------------- Matrix -> Vector ---------------- template utils::Vector max_rowwise_serial(const utils::Matrix& A) { diff --git a/include/numerics/detail/mean_serial.h b/include/numerics/detail/mean_serial.h index 33d3fda..6046ef6 100644 --- a/include/numerics/detail/mean_serial.h +++ b/include/numerics/detail/mean_serial.h @@ -3,8 +3,8 @@ #include //uint64_t //#include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" #include "sum_serial.h" diff --git a/include/numerics/detail/min_serial.h b/include/numerics/detail/min_serial.h index 3a99710..8f19281 100644 --- a/include/numerics/detail/min_serial.h +++ b/include/numerics/detail/min_serial.h @@ -3,11 +3,20 @@ #include //uint64_t //#include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ + // ---------------- (Scalar, Scalar) -> Scalar ---------------- + template + T min_serial(const T a, const T b) { + if (a >= b){ + return a; + } + return b; + } + // ---------------- Matrix -> Scalar ---------------- template T min_serial(const utils::Matrix& A) { diff --git a/include/numerics/detail/mul_serial.h b/include/numerics/detail/mul_serial.h index 063f834..6bfc616 100644 --- a/include/numerics/detail/mul_serial.h +++ b/include/numerics/detail/mul_serial.h @@ -3,8 +3,8 @@ #include //uint64_t #include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/neg_serial.h b/include/numerics/detail/neg_serial.h index 365f69c..3808f61 100644 --- a/include/numerics/detail/neg_serial.h +++ b/include/numerics/detail/neg_serial.h @@ -2,8 +2,8 @@ #include //uint64_t -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/pow_serial.h b/include/numerics/detail/pow_serial.h index c54a753..e7ce2d1 100644 --- a/include/numerics/detail/pow_serial.h +++ b/include/numerics/detail/pow_serial.h @@ -4,8 +4,8 @@ #include // std::runtime_error #include // std::pow -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/random_serial.h b/include/numerics/detail/random_serial.h index 61be467..c409638 100644 --- a/include/numerics/detail/random_serial.h +++ b/include/numerics/detail/random_serial.h @@ -6,8 +6,8 @@ #include -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/sqrt_serial.h b/include/numerics/detail/sqrt_serial.h index 2e24a63..8c9363f 100644 --- a/include/numerics/detail/sqrt_serial.h +++ b/include/numerics/detail/sqrt_serial.h @@ -3,8 +3,8 @@ #include //uint64_t #include // std::sqrt -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/detail/sub_serial.h b/include/numerics/detail/sub_serial.h index b480257..faf67db 100644 --- a/include/numerics/detail/sub_serial.h +++ b/include/numerics/detail/sub_serial.h @@ -3,8 +3,8 @@ #include //uint64_t #include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ @@ -21,7 +21,7 @@ namespace numerics::detail{ } template - void inplace_add_scalar_serial(utils::Vector& v, const T c) { + void inplace_sub_scalar_serial(utils::Vector& v, const T c) { for (uint64_t i = 0; i < v.size(); ++i){ v[i] -= c; } diff --git a/include/numerics/detail/sum_serial.h b/include/numerics/detail/sum_serial.h index 3531c50..ff32eff 100644 --- a/include/numerics/detail/sum_serial.h +++ b/include/numerics/detail/sum_serial.h @@ -3,8 +3,8 @@ #include //uint64_t //#include // std::runtime_error -#include "../utils/vector.h" -#include "../utils/matrix.h" +#include "utils/vector.h" +#include "utils/matrix.h" namespace numerics::detail{ diff --git a/include/numerics/div.h b/include/numerics/div.h index 042d655..41098ab 100644 --- a/include/numerics/div.h +++ b/include/numerics/div.h @@ -74,7 +74,7 @@ namespace numerics{ } template - inline utils::Matrix dub_colwise(const utils::Matrix& A, const utils::Vector& v) { + inline utils::Matrix div_colwise(const utils::Matrix& A, const utils::Vector& v) { utils::Matrix out = A; inplace_div_colwise(out, v); return out; diff --git a/include/numerics/equal.h b/include/numerics/equal.h index c132844..f4442f1 100644 --- a/include/numerics/equal.h +++ b/include/numerics/equal.h @@ -1,6 +1,6 @@ #pragma once -#include "./core/omp_config.h" +#include "core/omp_config.h" #include "detail/equal_serial.h" @@ -9,14 +9,23 @@ namespace numerics{ // ---------------- equal ---------------- template - inline bool equal(const utils::Vector& v, const utils::Vector& p) { - return detail::equal_serial(v, p); + inline bool equal_all(const utils::Vector& v, const utils::Vector& p) { + return detail::equal_all_serial(v, p); } template - inline bool equal(const utils::Matrix& A, const utils::Matrix& B) { - return detail::equal_serial(A, B); + inline bool equal_all(const utils::Matrix& A, const utils::Matrix& B) { + return detail::equal_all_serial(A, B); } + template + inline utils::Vector equal_elementwise_serial(const utils::Vector& v, const utils::Vector& p){ + return detail::equal_elementwise_serial(v, p); + } + + template + inline utils::Vector equal_elementwise_serial(const utils::Matrix& A, const utils::Matrix& B){ + return detail::equal_elementwise_serial(A, B); + } } \ No newline at end of file diff --git a/include/numerics/interpolation1d/interpolation1d_base.h b/include/numerics/interpolation1d/interpolation1d_base.h index 07f1b55..b2b9090 100644 --- a/include/numerics/interpolation1d/interpolation1d_base.h +++ b/include/numerics/interpolation1d/interpolation1d_base.h @@ -1,10 +1,10 @@ #pragma once -#include "./numerics/min.h" -#include "./numerics/max.h" -#include "./numerics/abs.h" +#include "numerics/min.h" +#include "numerics/max.h" +#include "numerics/abs.h" -#include "./utils/vector.h" +#include "utils/vector.h" namespace numerics{ diff --git a/include/numerics/max.h b/include/numerics/max.h index 5756925..50f0dc4 100644 --- a/include/numerics/max.h +++ b/include/numerics/max.h @@ -1,12 +1,19 @@ #pragma once -#include "./core/omp_config.h" +#include "core/omp_config.h" #include "detail/max_serial.h" namespace numerics{ + + // ---------------- (Scalar, Scalar) -> Scalar ---------------- + template + inline T max(const T a, const T b) { + return detail::max_serial(a, b); + } + // ---------------- Vector -> Scalar ---------------- template inline T max(const utils::Vector& v) { diff --git a/include/numerics/mean.h b/include/numerics/mean.h index 7273b31..8dd81ec 100644 --- a/include/numerics/mean.h +++ b/include/numerics/mean.h @@ -1,6 +1,6 @@ #pragma once -#include "./core/omp_config.h" +#include "core/omp_config.h" #include "detail/mean_serial.h" @@ -30,4 +30,4 @@ namespace numerics{ inline utils::Vector mean_colwise(const utils::Matrix& A) { return detail::mean_colwise_serial(A); } -} \ No newline at end of file +} \ No newline at end of file diff --git a/include/numerics/min.h b/include/numerics/min.h index a04d92c..45750f1 100644 --- a/include/numerics/min.h +++ b/include/numerics/min.h @@ -1,12 +1,19 @@ #pragma once -#include "./core/omp_config.h" +#include "core/omp_config.h" #include "detail/min_serial.h" namespace numerics{ + // ---------------- (Scalar, Scalar) -> Scalar ---------------- + template + inline T min(const T a, const T b) { + return detail::min_serial(a, b); + } + + // ---------------- Vector -> Scalar ---------------- template inline T min(const utils::Vector& v) { diff --git a/include/numerics/numerics.h b/include/numerics/numerics.h index 9ed8c07..dd5beff 100644 --- a/include/numerics/numerics.h +++ b/include/numerics/numerics.h @@ -1,38 +1,34 @@ // "./numerics/numerics.h" #pragma once -#include "./numerics/max.h" -#include "./numerics/exp.h" -#include "./numerics/log.h" -#include "./numerics/vecclip.h" -#include "./numerics/vecexp.h" -#include "./numerics/vecmax.h" -#include "./numerics/veclog.h" -#include "./numerics/vecargmax.h" -#include "./numerics/vecrandom.h" -#include "./numerics/initializers/eye.h" -#include "./numerics/matequal.h" -#include "./numerics/transpose.h" -#include "./numerics/inverse.h" -#include "./numerics/matmul.h" -#include "./numerics/matscalar.h" -#include "./numerics/matmax.h" -#include "./numerics/matabs.h" -#include "./numerics/matdiv.h" -#include "./numerics/matvec.h" -#include "./numerics/matadd.h" -#include "./numerics/matrandom.h" -#include "./numerics/matsubtract.h" -#include "./numerics/matsum.h" -#include "./numerics/matclip.h" -#include "./numerics/matexp.h" -#include "./numerics/matlog.h" -#include "./numerics/matdot.h" -#include "./numerics/matargmax.h" -#include "./numerics/min.h" #include "./numerics/abs.h" - - - +#include "./numerics/add.h" +#include "./numerics/argmax.h" +#include "./numerics/argmin.h" +#include "./numerics/clip.h" +#include "./numerics/div.h" +#include "./numerics/dot.h" +#include "./numerics/equal.h" +#include "./numerics/exp.h" #include "./numerics/interpolation1d.h" // base +#include "./numerics/inverse.h" +#include "./numerics/isclose.h" +#include "./numerics/log.h" +#include "./numerics/matmul.h" +#include "./numerics/max.h" +#include "./numerics/mean.h" +#include "./numerics/min.h" +#include "./numerics/mul.h" +#include "./numerics/neg.h" +#include "./numerics/pow.h" +#include "./numerics/random.h" +#include "./numerics/sqrt.h" +#include "./numerics/sub.h" +#include "./numerics/sum.h" +#include "./numerics/transpose.h" + + + + + diff --git a/include/numerics/sum.h b/include/numerics/sum.h index a80ce35..77f2741 100644 --- a/include/numerics/sum.h +++ b/include/numerics/sum.h @@ -1,6 +1,6 @@ #pragma once -#include "./core/omp_config.h" +#include "core/omp_config.h" #include "detail/sum_serial.h" diff --git a/include/utils/matcast.h b/include/utils/matcast.h index 7fc5dd9..3858bdd 100644 --- a/include/utils/matcast.h +++ b/include/utils/matcast.h @@ -1,7 +1,7 @@ #pragma once -#include "./core/omp_config.h" -#include "./utils/matrix.h" +#include "core/omp_config.h" +#include "utils/matrix.h" namespace utils{ diff --git a/include/utils/utils.h b/include/utils/utils.h index 5b8b39a..48c1970 100644 --- a/include/utils/utils.h +++ b/include/utils/utils.h @@ -6,3 +6,4 @@ #include "./utils/generators.h" #include "./utils/random.h" #include "./utils/matcast.h" +#include "./utils/veccast.h" diff --git a/include/utils/veccast.h b/include/utils/veccast.h new file mode 100644 index 0000000..135000e --- /dev/null +++ b/include/utils/veccast.h @@ -0,0 +1,33 @@ +#pragma once + +#include "core/omp_config.h" +#include "utils/matrix.h" + + +namespace utils{ + + template + void inplace_veccast(const utils::Vector& a, utils::Vector& b) { + if (a.size() != b.size()){ + throw std::runtime_error("inplace_veccast: dimension mismatch"); + } + + uint64_t n = a.size(); + + for (uint64_t i = 0; i < n; ++i){ + b[i] = static_cast(a[i]); + } + } + + + template + utils::Vector veccast(const utils::Vector& a) { + utils::Vector b(a.size(), To{0}); + + inplace_veccast(a,b); + + return b; + } + +} // end namespace utils +