Binomial_CrossEnthophy

fixed rowwise/colswise mean/sum and implemented binomial_corssentrhopy. Next up is regression.
This commit is contained in:
2026-05-22 10:11:43 +02:00
parent eb0a49591e
commit cb65174cf4
21 changed files with 894 additions and 159 deletions
+90 -90
View File
@@ -39,8 +39,8 @@ events:
checks:
- "Detecting CXX compiler ABI info"
directories:
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn"
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn"
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C"
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C"
cmakeVariables:
CMAKE_CXX_FLAGS: ""
CMAKE_CXX_FLAGS_DEBUG: "-g"
@@ -49,13 +49,13 @@ events:
variable: "CMAKE_CXX_ABI_COMPILED"
cached: true
stdout: |
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn'
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C'
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_a2c08/fast
/usr/bin/gmake -f CMakeFiles/cmTC_a2c08.dir/build.make CMakeFiles/cmTC_a2c08.dir/build
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn'
Building CXX object CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/c++ -v -o CMakeFiles/cmTC_a2c08.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_21458/fast
/usr/bin/gmake -f CMakeFiles/cmTC_21458.dir/build.make CMakeFiles/cmTC_21458.dir/build
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C'
Building CXX object CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/c++ -v -o CMakeFiles/cmTC_21458.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
@@ -65,8 +65,8 @@ events:
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.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_a2c08.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/cc5fTyjy.s
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.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_21458.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/ccuSiKHJ.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
@@ -87,15 +87,15 @@ events:
/usr/include
End of search list.
Compiler executable checksum: 7896445e4990772fdae9dc0659a99266
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/'
as -v --64 -o CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc5fTyjy.s
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/'
as -v --64 -o CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccuSiKHJ.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_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.'
Linking CXX executable cmTC_a2c08
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a2c08.dir/link.txt --verbose=1
/usr/bin/c++ -v CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_a2c08
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.'
Linking CXX executable cmTC_21458
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_21458.dir/link.txt --verbose=1
/usr/bin/c++ -v CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_21458
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
@@ -108,10 +108,10 @@ events:
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_a2c08' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_a2c08.'
/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/cc4LTvwQ.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_a2c08 /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_a2c08.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_a2c08' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_a2c08.'
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn'
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_21458' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_21458.'
/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/ccR4K2gF.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_21458 /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_21458.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_21458' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_21458.'
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C'
exitCode: 0
-
@@ -151,13 +151,13 @@ 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-UDWKAn']
ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C']
ignore line: []
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_a2c08/fast]
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_a2c08.dir/build.make CMakeFiles/cmTC_a2c08.dir/build]
ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn']
ignore line: [Building CXX object CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o]
ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_a2c08.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_21458/fast]
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_21458.dir/build.make CMakeFiles/cmTC_21458.dir/build]
ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C']
ignore line: [Building CXX object CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o]
ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_21458.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]
@@ -167,8 +167,8 @@ events:
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.1) ]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.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_a2c08.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/cc5fTyjy.s]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.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_21458.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/ccuSiKHJ.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: []
@@ -189,15 +189,15 @@ events:
ignore line: [ /usr/include]
ignore line: [End of search list.]
ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/']
ignore line: [ as -v --64 -o CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc5fTyjy.s]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/']
ignore line: [ as -v --64 -o CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccuSiKHJ.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_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.']
ignore line: [Linking CXX executable cmTC_a2c08]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a2c08.dir/link.txt --verbose=1]
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_a2c08 ]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.']
ignore line: [Linking CXX executable cmTC_21458]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_21458.dir/link.txt --verbose=1]
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_21458 ]
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]
@@ -210,13 +210,13 @@ events:
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_a2c08' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_a2c08.']
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/cc4LTvwQ.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_a2c08 /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_a2c08.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_21458' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_21458.']
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/ccR4K2gF.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_21458 /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_21458.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/cc4LTvwQ.res] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/ccR4K2gF.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_a2c08] ==> ignore
arg [cmTC_21458] ==> 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_a2c08.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
arg [CMakeFiles/cmTC_21458.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-TW1FRu"
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu"
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS"
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS"
cmakeVariables:
CMAKE_CXX_FLAGS: ""
CMAKE_CXX_FLAGS_DEBUG: "-g"
@@ -291,13 +291,13 @@ events:
variable: "OpenMP_COMPILE_RESULT_CXX_fopenmp"
cached: true
stdout: |
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu'
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS'
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_ff875/fast
/usr/bin/gmake -f CMakeFiles/cmTC_ff875.dir/build.make CMakeFiles/cmTC_ff875.dir/build
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu'
Building CXX object CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o
/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu/OpenMPTryFlag.cpp
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_b23e5/fast
/usr/bin/gmake -f CMakeFiles/cmTC_b23e5.dir/build.make CMakeFiles/cmTC_b23e5.dir/build
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS'
Building CXX object CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o
/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS/OpenMPTryFlag.cpp
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
@@ -307,8 +307,8 @@ events:
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.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-TW1FRu/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_ff875.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/ccVR5Lll.s
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.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-GvspNS/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_b23e5.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/ccpB51rF.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
@@ -329,15 +329,15 @@ events:
/usr/include
End of search list.
Compiler executable checksum: 7896445e4990772fdae9dc0659a99266
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/'
as -v --64 -o CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o /tmp/ccVR5Lll.s
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/'
as -v --64 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o /tmp/ccpB51rF.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_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.'
Linking CXX executable cmTC_ff875
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ff875.dir/link.txt --verbose=1
/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -o cmTC_ff875 -v
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.'
Linking CXX executable cmTC_b23e5
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b23e5.dir/link.txt --verbose=1
/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -o cmTC_b23e5 -v
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
@@ -351,10 +351,10 @@ events:
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_ff875' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_ff875.'
/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/cchSaPDX.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_ff875 /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_ff875.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_ff875' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_ff875.'
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu'
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_b23e5' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_b23e5.'
/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/cczYiwNl.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_b23e5 /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_b23e5.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_b23e5' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_b23e5.'
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS'
exitCode: 0
-
@@ -366,13 +366,13 @@ 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-TW1FRu']
ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS']
ignore line: []
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_ff875/fast]
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_ff875.dir/build.make CMakeFiles/cmTC_ff875.dir/build]
ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu']
ignore line: [Building CXX object CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o]
ignore line: [/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu/OpenMPTryFlag.cpp]
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_b23e5/fast]
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_b23e5.dir/build.make CMakeFiles/cmTC_b23e5.dir/build]
ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS']
ignore line: [Building CXX object CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o]
ignore line: [/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS/OpenMPTryFlag.cpp]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/c++]
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
@@ -382,8 +382,8 @@ events:
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.1) ]
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.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-TW1FRu/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_ff875.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/ccVR5Lll.s]
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.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-GvspNS/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_b23e5.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/ccpB51rF.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: []
@@ -404,15 +404,15 @@ events:
ignore line: [ /usr/include]
ignore line: [End of search list.]
ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266]
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/']
ignore line: [ as -v --64 -o CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o /tmp/ccVR5Lll.s]
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/']
ignore line: [ as -v --64 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o /tmp/ccpB51rF.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_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.']
ignore line: [Linking CXX executable cmTC_ff875]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ff875.dir/link.txt --verbose=1]
ignore line: [/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -o cmTC_ff875 -v ]
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.']
ignore line: [Linking CXX executable cmTC_b23e5]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b23e5.dir/link.txt --verbose=1]
ignore line: [/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -o cmTC_b23e5 -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]
@@ -426,13 +426,13 @@ events:
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_ff875' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_ff875.']
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/cchSaPDX.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_ff875 /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_ff875.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_b23e5' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_b23e5.']
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/cczYiwNl.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_b23e5 /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_b23e5.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/cchSaPDX.res] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/cczYiwNl.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_ff875] ==> ignore
arg [cmTC_b23e5] ==> 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_ff875.dir/OpenMPTryFlag.cpp.o] ==> ignore
arg [CMakeFiles/cmTC_b23e5.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-8cCtst"
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst"
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd"
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd"
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-8cCtst'
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd'
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_9bda3/fast
/usr/bin/gmake -f CMakeFiles/cmTC_9bda3.dir/build.make CMakeFiles/cmTC_9bda3.dir/build
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst'
Building CXX object CMakeFiles/cmTC_9bda3.dir/OpenMPCheckVersion.cpp.o
/usr/bin/c++ -fopenmp -std=gnu++14 -o CMakeFiles/cmTC_9bda3.dir/OpenMPCheckVersion.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst/OpenMPCheckVersion.cpp
Linking CXX executable cmTC_9bda3
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9bda3.dir/link.txt --verbose=1
/usr/bin/c++ -fopenmp CMakeFiles/cmTC_9bda3.dir/OpenMPCheckVersion.cpp.o -o cmTC_9bda3
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst'
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_d43db/fast
/usr/bin/gmake -f CMakeFiles/cmTC_d43db.dir/build.make CMakeFiles/cmTC_d43db.dir/build
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd'
Building CXX object CMakeFiles/cmTC_d43db.dir/OpenMPCheckVersion.cpp.o
/usr/bin/c++ -fopenmp -std=gnu++14 -o CMakeFiles/cmTC_d43db.dir/OpenMPCheckVersion.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd/OpenMPCheckVersion.cpp
Linking CXX executable cmTC_d43db
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d43db.dir/link.txt --verbose=1
/usr/bin/c++ -fopenmp CMakeFiles/cmTC_d43db.dir/OpenMPCheckVersion.cpp.o -o cmTC_d43db
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd'
exitCode: 0
...
Binary file not shown.
@@ -198,6 +198,8 @@ examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/main.cpp.o: \
/home/atlas/Documents/Git/Flux/include/./numerics/detail/argmax_serial.h \
/home/atlas/Documents/Git/Flux/include/./numerics/argmin.h \
/home/atlas/Documents/Git/Flux/include/./numerics/detail/argmin_serial.h \
/home/atlas/Documents/Git/Flux/include/./numerics/binary_threshold.h \
/home/atlas/Documents/Git/Flux/include/./numerics/detail/binary_threshold_serial.h \
/home/atlas/Documents/Git/Flux/include/./numerics/clip.h \
/home/atlas/Documents/Git/Flux/include/./numerics/detail/clip_serial.h \
/home/atlas/Documents/Git/Flux/include/./numerics/div.h \
@@ -263,6 +265,8 @@ examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/main.cpp.o: \
/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/loss/Loss_CategoricalCrossentrophy.h \
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss.h \
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_Sigmoid.h \
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss_BinaryCrossentropy.h \
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_SGD.h \
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_Adagrad.h \
/usr/include/c++/13/math.h \
@@ -0,0 +1,233 @@
#include "core/omp_config.h"
#include "utils/utils.h"
#include "numerics/numerics.h"
#include "decomp/decomp.h"
#include "modules/neural_networks/neural_networks.h"
#include "random/random.h"
//#include <iostream>
//#include <stdexcept>
//#include <chrono>
int main(int argc, char const *argv[])
{
uint64_t number_of_classes = 3;
uint64_t number_of_samples = 150;
uint64_t number_of_epochs = 500;
utils::Mf X;
utils::Mf X_test;
utils::Matrix<int64_t> y;
utils::Matrix<int64_t> y_test;
float data_loss;
float regularization_loss;
float loss;
float accuracy;
utils::Vector<uint64_t> class_targets;
utils::Vector<uint64_t> predections;
// Create dataset
neural_networks::create_spital_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
//neural_networks::create_vertical_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
// Create Dense layer with 2 input featues and 3 output values
neural_networks::Dense_Layer<float> dense1(
2, 16, // input/output
0.0f, // weight L1
5e-4f, // weight L2
0.0f, // bias L1
5e-4f // bias L2
);
// Create ReLU activation (to be used with Dense layer)
neural_networks::Activation_ReLU<float> activation1;
neural_networks::Dropout_Layer<float> dropout1(0.1);
// 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<float> dense2(
16, 16, // input/output
0.0f, // weight L1
5e-4f, // weight L2
0.0f, // bias L1
5e-4f // bias L2
);
neural_networks::Activation_Softmax<float> 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<float> dense3(
16, 16, // input/output
0.0f, // weight L1
5e-4f, // weight L2
0.0f, // bias L1
5e-4f // bias L2
);
neural_networks::Activation_Sigmoid<float> activation3;
neural_networks::Dense_Layer<float> dense4(
16, number_of_classes, // input/output
0.0f, // weight L1
5e-4f, // weight L2
0.0f, // bias L1
5e-4f // bias L2
);
// Create a Sfotmax classifier's combined loss and activation
neural_networks::Activation_Softmax_Loss_CategoricalCrossentropy<float, int64_t> loss_activation;
// Create optimizer
//neural_networks::Optimizer_SGD<float> optimizer(1, 1e-3, 0.5);
//neural_networks::Optimizer_Adagrad<float> optimizer(1, 1e-3, 1e-6);
//neural_networks::Optimizer_RMSprop<float> optimizer(1, 1e-3, 1e-6, 0.9);
neural_networks::Optimizer_Adam<float> optimizer(
0.05, // Learning-rate
5e-5, // Learning-rate decay
1e-6, // epsilons
0.9, // beta 1
0.999 // beta 2
);
// Train in loop
for (uint64_t epoch = 0; epoch < number_of_epochs+1; ++epoch){
// Perform a forward pass of our training data through this layer
dense1.forward(X);
activation1.forward(dense1.outputs);
dropout1.forward(activation1.outputs);
dense2.forward(dropout1.outputs);
activation2.forward(dense2.outputs);
dense3.forward(activation2.outputs);
activation3.forward(dense3.outputs);
dense4.forward(activation3.outputs);
// Perform a foard pass through the activation/loss function
// takes the output of the second dense layer here and returns loss
data_loss = loss_activation.forward(dense4.outputs, y);
// Calculate regularization penalty
regularization_loss = loss_activation.loss.regularization_loss(dense1) +
loss_activation.loss.regularization_loss(dense2) +
loss_activation.loss.regularization_loss(dense3) +
loss_activation.loss.regularization_loss(dense4);
loss = data_loss + regularization_loss;
// Calculate accuracy from output of activation2 and targets
//predections = numerics::matargmax_row <int64_t, float>(loss_activation.outputs);
predections = numerics::argmax_rowwise(loss_activation.outputs);
if (y.cols() > 1){
class_targets = numerics::argmax_rowwise(y);
}else{
class_targets = utils::veccast <uint64_t, int64_t> (y.get_col(0));
}
accuracy = numerics::mean( utils::veccast<float, uint64_t> (numerics::equal_elementwise_serial(predections, class_targets)));
if (!(epoch%100)){
std::cout << "epoch: " << epoch;
std::cout << ", acc: " << accuracy;
std::cout << ", loss: " << loss;
std::cout << ", data_loss: " << data_loss;
std::cout << ", regularization_loss: " << regularization_loss;
std::cout << ", lr: " << optimizer.current_learning_rate;
std::cout << std::endl;
}
// Backward pass
loss_activation.backward(loss_activation.outputs, y);
dense4.backward(loss_activation.dinputs);
activation3.backward(dense4.dinputs);
dense3.backward(activation3.dinputs);
activation2.backward(dense3.dinputs);
dense2.backward(activation2.dinputs);
dropout1.backward(dense2.dinputs);
activation1.backward(dropout1.dinputs);
dense1.backward(activation1.dinputs);
// Update weights and biases
optimizer.pre_update_params();
optimizer.update_params(dense1);
optimizer.update_params(dense2);
optimizer.update_params(dense3);
optimizer.update_params(dense4);
optimizer.post_update_params();
}
// Validate the model
// Create dataset
neural_networks::create_spital_data<float, int64_t>(100, number_of_classes, X_test, y_test);
// Perform a forward pass of our training data through this layer
dense1.forward(X_test);
activation1.forward(dense1.outputs);
//dropout1.forward(activation1.outputs);
dense2.forward(activation1.outputs);
activation2.forward(dense2.outputs);
dense3.forward(activation2.outputs);
activation3.forward(dense3.outputs);
dense4.forward(activation3.outputs);
// Perform a foard pass through the activation/loss function
// takes the output of the second dense layer here and returns loss
data_loss = loss_activation.forward(dense4.outputs, y_test);
// Calculate regularization penalty
regularization_loss = loss_activation.loss.regularization_loss(dense1) +
loss_activation.loss.regularization_loss(dense2) +
loss_activation.loss.regularization_loss(dense3) +
loss_activation.loss.regularization_loss(dense4);
loss = data_loss + regularization_loss;
// Calculate accuracy from output of activation2 and targets
predections = numerics::argmax_rowwise(loss_activation.outputs);
if (y.cols() > 1){
class_targets = numerics::argmax_rowwise(y_test);
}else{
class_targets = utils::veccast <uint64_t, int64_t> (y_test.get_col(0));
}
accuracy = numerics::mean( utils::veccast<float, uint64_t> (numerics::equal_elementwise_serial(predections, class_targets)));
std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl;
return 0;
}
@@ -0,0 +1,205 @@
#include "core/omp_config.h"
#include "utils/utils.h"
#include "numerics/numerics.h"
#include "decomp/decomp.h"
#include "modules/neural_networks/neural_networks.h"
#include "random/random.h"
//#include <iostream>
//#include <stdexcept>
//#include <chrono>
int main(int argc, char const *argv[])
{
uint64_t number_of_classes = 2;
uint64_t number_of_samples = 150;
uint64_t number_of_epochs = 1000;
utils::Mf X;
utils::Mf X_test;
utils::Matrix<int64_t> y;
utils::Matrix<int64_t> y_test;
float data_loss;
float regularization_loss;
float loss;
float accuracy;
utils::Vector<uint64_t> class_targets;
utils::Vector<float> predictions;
// Create dataset
neural_networks::create_spital_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
//neural_networks::create_vertical_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
// Create Dense layer with 2 input featues and 3 output values
neural_networks::Dense_Layer<float> dense1(
2, 16, // input/output
0.0f, // weight L1
5e-4f, // weight L2
0.0f, // bias L1
5e-4f // bias L2
);
// Create ReLU activation (to be used with Dense layer)
neural_networks::Activation_ReLU<float> activation1;
neural_networks::Dropout_Layer<float> dropout1(0.1);
// 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<float> dense2(
16, 16, // input/output
0.0f, // weight L1
5e-4f, // weight L2
0.0f, // bias L1
5e-4f // bias L2
);
neural_networks::Activation_Softmax<float> 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<float> dense3(
16, 1, // input/output
0.0f, // weight L1
5e-4f, // weight L2
0.0f, // bias L1
5e-4f // bias L2
);
neural_networks::Activation_Sigmoid<float> activation3;
// Create a Sfotmax classifier's combined loss and activation
//neural_networks::Activation_Softmax_Loss_CategoricalCrossentropy<float, int64_t> loss_activation;
neural_networks::Loss_BinaryCrossentropy<float, int64_t> loss_activation;
// Create optimizer
//neural_networks::Optimizer_SGD<float> optimizer(1, 1e-3, 0.5);
//neural_networks::Optimizer_Adagrad<float> optimizer(1, 1e-3, 1e-6);
//neural_networks::Optimizer_RMSprop<float> optimizer(1, 1e-3, 1e-6, 0.9);
neural_networks::Optimizer_Adam<float> optimizer(
0.05, // Learning-rate
5e-5, // Learning-rate decay
1e-6, // epsilons
0.9, // beta 1
0.999 // beta 2
);
// Train in loop
for (uint64_t epoch = 0; epoch < number_of_epochs+1; ++epoch){
// Perform a forward pass of our training data through this layer
dense1.forward(X);
activation1.forward(dense1.outputs);
dropout1.forward(activation1.outputs);
dense2.forward(dropout1.outputs);
activation2.forward(dense2.outputs);
dense3.forward(activation2.outputs);
activation3.forward(dense3.outputs);
// Perform a foard pass through the activation/loss function
// takes the output of the second dense layer here and returns loss
data_loss = loss_activation.calculate(activation3.outputs, y);
// Calculate regularization penalty
regularization_loss = loss_activation.regularization_loss(dense1) +
loss_activation.regularization_loss(dense2) +
loss_activation.regularization_loss(dense3);
loss = data_loss + regularization_loss;
// Calculate accuracy from output of activation3 and targets
// Part in the brackets returns a binary mask - array consisting
// of True/False values, multiplying it by 1 changes it into array
// of 1s and 0s
predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0);
accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast<float, int64_t>(y.get_col(0))));
if (!(epoch%100)){
std::cout << "epoch: " << epoch;
std::cout << ", acc: " << accuracy;
std::cout << ", loss: " << loss;
std::cout << ", data_loss: " << data_loss;
std::cout << ", regularization_loss: " << regularization_loss;
std::cout << ", lr: " << optimizer.current_learning_rate;
std::cout << std::endl;
}
// Backward pass
loss_activation.backward(activation3.outputs, y);
activation3.backward(loss_activation.dinputs);
dense3.backward(activation3.dinputs);
activation2.backward(dense3.dinputs);
dense2.backward(activation2.dinputs);
dropout1.backward(dense2.dinputs);
activation1.backward(dropout1.dinputs);
dense1.backward(activation1.dinputs);
// Update weights and biases
optimizer.pre_update_params();
optimizer.update_params(dense1);
optimizer.update_params(dense2);
optimizer.update_params(dense3);
optimizer.post_update_params();
}
// Validate the model
// Create dataset
neural_networks::create_spital_data<float, int64_t>(100, number_of_classes, X_test, y_test);
// Perform a forward pass of our training data through this layer
dense1.forward(X_test);
activation1.forward(dense1.outputs);
//dropout1.forward(activation1.outputs);
dense2.forward(activation1.outputs);
activation2.forward(dense2.outputs);
dense3.forward(activation2.outputs);
activation3.forward(dense3.outputs);
// Perform a foard pass through the activation/loss function
// takes the output of the second dense layer here and returns loss
data_loss = loss_activation.calculate(activation3.outputs, y_test);
// Calculate regularization penalty
regularization_loss = loss_activation.regularization_loss(dense1) +
loss_activation.regularization_loss(dense2) +
loss_activation.regularization_loss(dense3);
loss = data_loss + regularization_loss;
// Calculate accuracy from output of activation2 and targets
predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0);
accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast<float, int64_t>(y_test.get_col(0))));
std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl;
return 0;
}
+39 -61
View File
@@ -20,9 +20,9 @@
int main(int argc, char const *argv[])
{
uint64_t number_of_classes = 3;
uint64_t number_of_samples = 1000;
uint64_t number_of_epochs = 500;
uint64_t number_of_classes = 2;
uint64_t number_of_samples = 150;
uint64_t number_of_epochs = 1000;
utils::Mf X;
utils::Mf X_test;
@@ -34,13 +34,14 @@ int main(int argc, char const *argv[])
float accuracy;
utils::Vector<uint64_t> class_targets;
utils::Vector<uint64_t> predections;
utils::Vector<float> predictions;
// Create dataset
neural_networks::create_spital_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
//neural_networks::create_vertical_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
// Create Dense layer with 2 input featues and 3 output values
neural_networks::Dense_Layer<float> dense1(
2, 16, // input/output
@@ -65,29 +66,31 @@ int main(int argc, char const *argv[])
0.0f, // bias L1
5e-4f // bias L2
);
// Create Softmax activation (to be used with Dense layer)
neural_networks::Activation_Softmax<float> 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<float> dense3(
16, number_of_classes, // input/output
16, 1, // input/output
0.0f, // weight L1
5e-4f, // weight L2
0.0f, // bias L1
5e-4f // bias L2
);
neural_networks::Activation_Sigmoid<float> activation3;
// Create a Sfotmax classifier's combined loss and activation
neural_networks::Activation_Softmax_Loss_CategoricalCrossentropy<float, int64_t> loss_activation;
//neural_networks::Activation_Softmax_Loss_CategoricalCrossentropy<float, int64_t> loss_activation;
neural_networks::Loss_BinaryCrossentropy<float, int64_t> loss_activation;
// Create optimizer
//neural_networks::Optimizer_SGD<float> optimizer(1, 1e-3, 0.5);
//neural_networks::Optimizer_Adagrad<float> optimizer(1, 1e-3, 1e-6);
//neural_networks::Optimizer_RMSprop<float> optimizer(1, 1e-3, 1e-6, 0.9);
neural_networks::Optimizer_Adam<float> optimizer(
0.05, // Learning-rate
0.05, // Learning-rate
5e-5, // Learning-rate decay
1e-6, // epsilons
0.9, // beta 1
@@ -101,51 +104,36 @@ int main(int argc, char const *argv[])
// Perform a forward pass of our training data through this layer
dense1.forward(X);
// Perform a forward pass thourgh activation function
// takes the output fo the first layer here
activation1.forward(dense1.outputs);
dropout1.forward(activation1.outputs);
// Perform a forward pass through second Dense layer
// takes output of activation function of the first layer as input
dense2.forward(dropout1.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);
activation3.forward(dense3.outputs);
// Perform a foard pass through the activation/loss function
// takes the output of the second dense layer here and returns loss
data_loss = loss_activation.forward(dense3.outputs, y);
data_loss = loss_activation.calculate(activation3.outputs, y);
// Calculate regularization penalty
regularization_loss = loss_activation.loss.regularization_loss(dense1) + loss_activation.loss.regularization_loss(dense2) + loss_activation.loss.regularization_loss(dense3);
regularization_loss = loss_activation.regularization_loss(dense1) +
loss_activation.regularization_loss(dense2) +
loss_activation.regularization_loss(dense3);
loss = data_loss + regularization_loss;
// Calculate accuracy from output of activation2 and targets
//predections = numerics::matargmax_row <int64_t, float>(loss_activation.outputs);
predections = numerics::argmax_rowwise(loss_activation.outputs);
if (y.cols() > 1){
class_targets = numerics::argmax_rowwise(y);
}else{
class_targets = utils::veccast <uint64_t, int64_t> (y.get_col(0));
}
accuracy = numerics::mean( utils::veccast<float, uint64_t> (numerics::equal_elementwise_serial(predections, class_targets)));
// Calculate accuracy from output of activation3 and targets
// Part in the brackets returns a binary mask - array consisting
// of True/False values, multiplying it by 1 changes it into array
// of 1s and 0s
predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0);
accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast<float, int64_t>(y.get_col(0))));
if (!(epoch%100)){
std::cout << "epoch: " << epoch;
std::cout << ", acc: " << accuracy;
std::cout << ", loss: " << loss;
@@ -153,18 +141,22 @@ int main(int argc, char const *argv[])
std::cout << ", regularization_loss: " << regularization_loss;
std::cout << ", lr: " << optimizer.current_learning_rate;
std::cout << std::endl;
}
// Backward pass
loss_activation.backward(loss_activation.outputs, y);
dense3.backward(loss_activation.dinputs);
loss_activation.backward(activation3.outputs, y);
activation3.backward(loss_activation.dinputs);
dense3.backward(activation3.dinputs);
activation2.backward(dense3.dinputs);
dense2.backward(activation2.dinputs);
dropout1.backward(dense2.dinputs);
activation1.backward(dropout1.dinputs);
dense1.backward(activation1.dinputs);
// Update weights and biases
optimizer.pre_update_params();
optimizer.update_params(dense1);
@@ -179,48 +171,34 @@ int main(int argc, char const *argv[])
// Create dataset
neural_networks::create_spital_data<float, int64_t>(100, number_of_classes, X_test, y_test);
// Perform a forward pass of our testing data through this layer
// Perform a forward pass of our training 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);
//dropout1.forward(activation1.outputs);
// Perform a forward pass through second Dense layer
// 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);
activation3.forward(dense3.outputs);
// Perform a foard pass through the activation/loss function
// takes the output of the second dense layer here and returns loss
data_loss = loss_activation.forward(dense3.outputs, y_test);
data_loss = loss_activation.calculate(activation3.outputs, y_test);
// Calculate regularization penalty
regularization_loss = loss_activation.loss.regularization_loss(dense1) + loss_activation.loss.regularization_loss(dense2) + loss_activation.loss.regularization_loss(dense3);
regularization_loss = loss_activation.regularization_loss(dense1) +
loss_activation.regularization_loss(dense2) +
loss_activation.regularization_loss(dense3);
loss = data_loss + regularization_loss;
// Calculate accuracy from output of activation2 and targets
predections = numerics::argmax_rowwise(loss_activation.outputs);
predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0);
if (y.cols() > 1){
class_targets = numerics::argmax_rowwise(y_test);
}else{
class_targets = utils::veccast <uint64_t, int64_t> (y_test.get_col(0));
}
accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast<float, int64_t>(y_test.get_col(0))));
accuracy = numerics::mean( utils::veccast<float, uint64_t> (numerics::equal_elementwise_serial(predections, class_targets)));
std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl;
return 0;
@@ -0,0 +1,46 @@
#pragma once
#include "core/omp_config.h"
#include "utils/vector.h"
#include "utils/matrix.h"
#include "numerics/neg.h"
#include "numerics/exp.h"
#include "numerics/add.h"
#include "numerics/div.h"
#include "numerics/sub.h"
#include "numerics/mul.h"
namespace neural_networks{
template <typename T>
struct Activation_Sigmoid{
utils::Matrix<T> _inputs;
utils::Matrix<T> outputs;
utils::Matrix<T> dinputs;
void forward(const utils::Matrix<T>& inputs){
_inputs = inputs;
outputs = numerics::neg(inputs);
outputs = numerics::exp(outputs);
outputs = numerics::add(outputs, T{1});
outputs = numerics::div(T{1}, outputs);
}
void backward(const utils::Matrix<T>& dvalues){
dinputs = numerics::sub(T{1}, outputs);
dinputs = numerics::mul(dvalues, dinputs);
dinputs = numerics::mul(dinputs, outputs);
}
};
} // end namespace neural_networks
@@ -29,7 +29,7 @@ namespace neural_networks{
utils::Matrix<T> exp_values = numerics::exp(numerics::sub_colwise(inputs, numerics::max_rowwise(inputs)));
// Normalize them for each sample
utils::Matrix<T> probabilities = numerics::div_colwise(exp_values, numerics::sum_colwise(exp_values));
utils::Matrix<T> probabilities = numerics::div_colwise(exp_values, numerics::sum_rowwise(exp_values));
outputs = probabilities;
}
@@ -63,7 +63,7 @@ namespace neural_networks{
void backward(const utils::Matrix<T>& dvalues){
// Gradients on parameters
dweights = numerics::matmul(numerics::transpose(_inputs), dvalues);
dbiases = numerics::sum_rowwise(dvalues);
dbiases = numerics::sum_colwise(dvalues);
// Gradients on regularization
@@ -0,0 +1,81 @@
#pragma once
#include "core/omp_config.h"
#include "utils/vector.h"
#include "utils/matrix.h"
#include "utils/matcast.h"
#include "numerics/clip.h"
#include "numerics/log.h"
#include "numerics/sub.h"
#include "Loss.h"
namespace neural_networks{
template <typename Td, typename Ti>
struct Loss_BinaryCrossentropy : Loss<Td, Ti> {
utils::Matrix<Td> dinputs;
utils::Matrix<Td> y_true;
utils::Vector<Td> forward(const utils::Matrix<Td>& y_pred, const utils::Matrix<Ti>& y_true) override{
this->y_true = utils::matcast<Td, Ti>(y_true);
// Clip daa to prevent division by 0
// Clip both sides not to drag mean towards any value
utils::Matrix<Td> y_pred_clipped = numerics::clip(y_pred, Td{1e-7}, Td{1.0} - Td{1e-7});
// Calculate sample-wise loss
utils::Matrix<Td> sample_losses_temp = numerics::log(numerics::sub(Td{1}, y_pred_clipped));
sample_losses_temp = numerics::mul(sample_losses_temp, numerics::sub(Td{1}, this->y_true));
sample_losses_temp = numerics::add(sample_losses_temp, numerics::mul(this->y_true, numerics::log(y_pred_clipped)));
sample_losses_temp = numerics::neg(sample_losses_temp);
utils::Vector<Td> sample_losses = numerics::mean_rowwise(sample_losses_temp);
// Return losses
return sample_losses;
}
void backward(const utils::Matrix<Td>& dvalues, const utils::Matrix<Ti>& y_true) override{
/*std::cout << "BCE backward y_true: "
<< y_true.rows() << " x " << y_true.cols()
<< std::endl;*/
// Number of samples
const Td samples = static_cast<Td> (this->y_true.rows());
// Number of outputs in every sample
const Td outputs = static_cast<Td> (dvalues.cols());
// Clip data to prevent division by 0
// Clip both sides to not drag mean towards any value
utils::Matrix<Td> clipped_dvalues = numerics::clip(dvalues, Td{1e-7}, Td{1.0} - Td{1e-7});
// Calculate gradient
dinputs = numerics::div(numerics::neg(numerics::sub(numerics::div(this->y_true, clipped_dvalues), numerics::div(numerics::sub(Td{1}, this->y_true), numerics::sub(Td{1}, clipped_dvalues)))), outputs);
// Normalize gradients
dinputs = numerics::div(dinputs, samples);
/*
std::cout << "BCE backward dinputs: "
<< dinputs.rows() << " x " << dinputs.cols()
<< std::endl;*/
}
};
} // end namespace neural_networks
@@ -12,10 +12,12 @@
#include "activation_functions/Activation_ReLU.h"
#include "activation_functions/Activation_Softmax.h"
#include "activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h"
#include "activation_functions/Activation_Sigmoid.h"
#include "loss/Loss.h" // Base
#include "loss/Loss_CategoricalCrossentrophy.h"
#include "loss/Loss_BinaryCrossentropy.h"
#include "optimizers/Optimizer_SGD.h"
+51
View File
@@ -0,0 +1,51 @@
#pragma once
#include "core/omp_config.h"
#include "detail/binary_threshold_serial.h"
namespace numerics{
// ---------------- Elementwise ----------------
template <typename T>
inline void inplace_greater_than(T& a, const T c) {
detail::inplace_greater_than_serial(a, c);
}
template <typename T>
inline T greater_than(const T a, const T c) {
T out = a;
inplace_greater_than(out, c);
return out;
}
template <typename T>
inline void inplace_greater_than(utils::Vector<T>& v, const T c) {
detail::inplace_greater_than_serial(v, c);
}
template <typename T>
inline utils::Vector<T> greater_than(const utils::Vector<T>& v, const T c) {
utils::Vector<T> out = v;
inplace_greater_than(out, c);
return out;
}
template <typename T>
inline void inplace_greater_than(utils::Matrix<T>& A, const T c) {
detail::inplace_greater_than_serial(A, c);
}
template <typename T>
inline utils::Matrix<T> greater_than(const utils::Matrix<T>& A, const T c) {
utils::Matrix<T> out = A;
inplace_greater_than(out, c);
return out;
}
}
@@ -0,0 +1,44 @@
#pragma once
#include <cstdint> //uint64_t
#include <cmath> // std::abs
#include "utils/vector.h"
#include "utils/matrix.h"
namespace numerics::detail{
// ---------------- Elemenwise ----------------
template <typename T>
void inplace_greater_than_serial(T& a, const T c) {
if (a > c){
a = T{1};
}
else{
a = T{0};
}
}
template <typename T>
void inplace_greater_than_serial(utils::Vector<T>& v, const T c) {
for (uint64_t i = 0; i < v.size(); ++i){
inplace_greater_than_serial(v[i], c);
}
}
template <typename T>
void inplace_greater_than_serial(utils::Matrix<T>& A, const T c) {
const uint64_t rows = A.rows();
const uint64_t cols = A.cols();
for (uint64_t i = 0; i < rows; ++i){
for (uint64_t j = 0; j < cols; ++j){
inplace_greater_than_serial(A(i,j), c);
}
}
}
} // namespace numerics
+19
View File
@@ -20,12 +20,31 @@ namespace numerics::detail{
}
}
template <typename T>
void inplace_div_scalar_serial(const T c, utils::Matrix<T>& A) {
const uint64_t rows = A.rows();
const uint64_t cols = A.cols();
for (uint64_t i = 0; i < rows; ++i){
for (uint64_t j = 0; j < cols; ++j){
A(i,j) = c / A(i,j);
}
}
}
template <typename T>
void inplace_div_scalar_serial(utils::Vector<T>& v, const T c) {
for (uint64_t i = 0; i < v.size(); ++i){
v[i] /= c;
}
}
template <typename T>
void inplace_div_scalar_serial(const T c, utils::Vector<T>& v) {
for (uint64_t i = 0; i < v.size(); ++i){
v[i] = c / v[i];
}
}
// ---------------- Elemenwise ----------------
template <typename T>
void inplace_div_elementwise_serial(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
+21
View File
@@ -20,12 +20,33 @@ namespace numerics::detail{
}
}
template <typename T>
void inplace_sub_scalar_serial(const T c, utils::Matrix<T>& A) {
const uint64_t rows = A.rows();
const uint64_t cols = A.cols();
for (uint64_t i = 0; i < rows; ++i){
for (uint64_t j = 0; j < cols; ++j){
A(i,j) = c - A(i,j);
}
}
}
template <typename T>
void inplace_sub_scalar_serial(utils::Vector<T>& v, const T c) {
for (uint64_t i = 0; i < v.size(); ++i){
v[i] -= c;
}
}
template <typename T>
void inplace_sub_scalar_serial(const T c, utils::Vector<T>& v) {
for (uint64_t i = 0; i < v.size(); ++i){
v[i] = c - v[i];
}
}
// ---------------- Elemenwise ----------------
template <typename T>
void inplace_sub_elementwise_serial(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
+4 -4
View File
@@ -38,10 +38,10 @@ namespace numerics::detail{
utils::Vector<T> sum_rowwise_serial(const utils::Matrix<T>& A) {
const uint64_t rows = A.rows();
const uint64_t cols = A.cols();
utils::Vector<T> sum(cols, T{0});
utils::Vector<T> sum(rows, T{0});
for (uint64_t i = 0; i < rows; ++i){
for (uint64_t j = 0; j < cols; ++j){
sum[j] += A(i,j);
sum[i] += A(i,j);
}
}
return sum;
@@ -51,10 +51,10 @@ namespace numerics::detail{
utils::Vector<T> sum_colwise_serial(const utils::Matrix<T>& A) {
const uint64_t rows = A.rows();
const uint64_t cols = A.cols();
utils::Vector<T> sum(rows, T{0});
utils::Vector<T> sum(cols, T{0});
for (uint64_t i = 0; i < rows; ++i){
for (uint64_t j = 0; j < cols; ++j){
sum[i] += A(i,j);
sum[j] += A(i,j);
}
}
return sum;
+25 -2
View File
@@ -11,7 +11,6 @@ namespace numerics{
inline void inplace_div(utils::Matrix<T>& A, const T b) {
detail::inplace_div_scalar_serial(A,b);
}
template <typename T>
inline utils::Matrix<T> div(const utils::Matrix<T>& A, const T b) {
utils::Matrix<T> out = A;
@@ -19,17 +18,41 @@ namespace numerics{
return out;
}
template <typename T>
inline void inplace_div(const T b, utils::Matrix<T>& A) {
detail::inplace_div_scalar_serial(b, A);
}
template <typename T>
inline utils::Matrix<T> div(const T b, const utils::Matrix<T>& A) {
utils::Matrix<T> out = A;
inplace_div(b, out);
return out;
}
template <typename T>
inline void inplace_div(utils::Vector<T>& v, const T b) {
detail::inplace_div_scalar_serial(v,b);
}
template <typename T>
inline utils::Vector<T> div(const utils::Vector<T>& v, const T b) {
utils::Vector<T> out = v;
inplace_div(out, b);
return out;
}
template <typename T>
inline void inplace_div(const T b, utils::Vector<T>& v) {
detail::inplace_div_scalar_serial(b, v);
}
template <typename T>
inline utils::Vector<T> div(const T b, const utils::Vector<T>& v) {
utils::Vector<T> out = v;
inplace_div(b, out);
return out;
}
// ---------------- Elementwise ----------------
template <typename T>
inline void inplace_div(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
+1
View File
@@ -4,6 +4,7 @@
#include "./numerics/add.h"
#include "./numerics/argmax.h"
#include "./numerics/argmin.h"
#include "./numerics/binary_threshold.h"
#include "./numerics/clip.h"
#include "./numerics/div.h"
#include "./numerics/dot.h"
+24
View File
@@ -11,6 +11,11 @@ namespace numerics{
inline void inplace_sub(utils::Matrix<T>& A, const T b) {
detail::inplace_sub_scalar_serial(A,b);
}
template <typename T>
inline void inplace_sub(const T b, utils::Matrix<T>& A) {
detail::inplace_sub_scalar_serial(b,A);
}
template <typename T>
inline utils::Matrix<T> sub(const utils::Matrix<T>& A, const T b) {
@@ -18,11 +23,22 @@ namespace numerics{
inplace_sub(out, b);
return out;
}
template <typename T>
inline utils::Matrix<T> sub(const T b, const utils::Matrix<T>& A) {
utils::Matrix<T> out = A;
inplace_sub(b, out);
return out;
}
template <typename T>
inline void inplace_sub(utils::Vector<T>& v, const T b) {
detail::inplace_sub_scalar_serial(v,b);
}
template <typename T>
inline void inplace_sub(const T b, utils::Vector<T>& v) {
detail::inplace_sub_scalar_serial(b,v);
}
template <typename T>
inline utils::Vector<T> sub(const utils::Vector<T>& v, const T b) {
@@ -30,6 +46,14 @@ namespace numerics{
inplace_sub(out, b);
return out;
}
template <typename T>
inline utils::Vector<T> sub(const T b, const utils::Vector<T>& v) {
utils::Vector<T> out = v;
inplace_sub(b, out);
return out;
}
// ---------------- Elementwise ----------------
template <typename T>
inline void inplace_sub(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
+3
View File
@@ -31,5 +31,8 @@ namespace utils{
return B;
}
// utils::matcast<float, uint64_t> (A);
} // end namespace utils