Starting on the model.h, but need to make layer structs and structs for loss and optimizers
This commit is contained in:
@@ -39,8 +39,8 @@ events:
|
|||||||
checks:
|
checks:
|
||||||
- "Detecting CXX compiler ABI info"
|
- "Detecting CXX compiler ABI info"
|
||||||
directories:
|
directories:
|
||||||
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C"
|
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-9KJdFc"
|
||||||
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C"
|
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-9KJdFc"
|
||||||
cmakeVariables:
|
cmakeVariables:
|
||||||
CMAKE_CXX_FLAGS: ""
|
CMAKE_CXX_FLAGS: ""
|
||||||
CMAKE_CXX_FLAGS_DEBUG: "-g"
|
CMAKE_CXX_FLAGS_DEBUG: "-g"
|
||||||
@@ -49,13 +49,13 @@ events:
|
|||||||
variable: "CMAKE_CXX_ABI_COMPILED"
|
variable: "CMAKE_CXX_ABI_COMPILED"
|
||||||
cached: true
|
cached: true
|
||||||
stdout: |
|
stdout: |
|
||||||
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C'
|
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-9KJdFc'
|
||||||
|
|
||||||
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_21458/fast
|
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_0e288/fast
|
||||||
/usr/bin/gmake -f CMakeFiles/cmTC_21458.dir/build.make CMakeFiles/cmTC_21458.dir/build
|
/usr/bin/gmake -f CMakeFiles/cmTC_0e288.dir/build.make CMakeFiles/cmTC_0e288.dir/build
|
||||||
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C'
|
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-9KJdFc'
|
||||||
Building CXX object CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o
|
Building CXX object CMakeFiles/cmTC_0e288.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
|
/usr/bin/c++ -v -o CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp
|
||||||
Using built-in specs.
|
Using built-in specs.
|
||||||
COLLECT_GCC=/usr/bin/c++
|
COLLECT_GCC=/usr/bin/c++
|
||||||
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
|
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
|
||||||
@@ -65,8 +65,8 @@ events:
|
|||||||
Thread model: posix
|
Thread model: posix
|
||||||
Supported LTO compression algorithms: zlib zstd
|
Supported LTO compression algorithms: zlib zstd
|
||||||
gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
|
gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
|
||||||
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/'
|
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_0e288.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
|
/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_0e288.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/cciEtBVP.s
|
||||||
GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)
|
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
|
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
|
/usr/include
|
||||||
End of search list.
|
End of search list.
|
||||||
Compiler executable checksum: 7896445e4990772fdae9dc0659a99266
|
Compiler executable checksum: 7896445e4990772fdae9dc0659a99266
|
||||||
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/'
|
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_0e288.dir/'
|
||||||
as -v --64 -o CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccuSiKHJ.s
|
as -v --64 -o CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.o /tmp/cciEtBVP.s
|
||||||
GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42
|
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/
|
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/
|
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_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.'
|
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.'
|
||||||
Linking CXX executable cmTC_21458
|
Linking CXX executable cmTC_0e288
|
||||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_21458.dir/link.txt --verbose=1
|
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0e288.dir/link.txt --verbose=1
|
||||||
/usr/bin/c++ -v CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_21458
|
/usr/bin/c++ -v CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_0e288
|
||||||
Using built-in specs.
|
Using built-in specs.
|
||||||
COLLECT_GCC=/usr/bin/c++
|
COLLECT_GCC=/usr/bin/c++
|
||||||
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
|
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)
|
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/
|
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/
|
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_21458' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_21458.'
|
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_0e288' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_0e288.'
|
||||||
/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
|
/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/ccJwGfaM.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_0e288 /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_0e288.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.'
|
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_0e288' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_0e288.'
|
||||||
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C'
|
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-9KJdFc'
|
||||||
|
|
||||||
exitCode: 0
|
exitCode: 0
|
||||||
-
|
-
|
||||||
@@ -151,13 +151,13 @@ events:
|
|||||||
message: |
|
message: |
|
||||||
Parsed CXX implicit link information:
|
Parsed CXX implicit link information:
|
||||||
link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
||||||
ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C']
|
ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-9KJdFc']
|
||||||
ignore line: []
|
ignore line: []
|
||||||
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_21458/fast]
|
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_0e288/fast]
|
||||||
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_21458.dir/build.make CMakeFiles/cmTC_21458.dir/build]
|
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_0e288.dir/build.make CMakeFiles/cmTC_0e288.dir/build]
|
||||||
ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C']
|
ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-9KJdFc']
|
||||||
ignore line: [Building CXX object CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o]
|
ignore line: [Building CXX object CMakeFiles/cmTC_0e288.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: [/usr/bin/c++ -v -o CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp]
|
||||||
ignore line: [Using built-in specs.]
|
ignore line: [Using built-in specs.]
|
||||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||||
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
|
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
|
||||||
@@ -167,8 +167,8 @@ events:
|
|||||||
ignore line: [Thread model: posix]
|
ignore line: [Thread model: posix]
|
||||||
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
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: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ]
|
||||||
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: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_0e288.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: [ /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_0e288.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/cciEtBVP.s]
|
||||||
ignore line: [GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)]
|
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: [ 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: []
|
||||||
@@ -189,15 +189,15 @@ events:
|
|||||||
ignore line: [ /usr/include]
|
ignore line: [ /usr/include]
|
||||||
ignore line: [End of search list.]
|
ignore line: [End of search list.]
|
||||||
ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266]
|
ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266]
|
||||||
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: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_0e288.dir/']
|
||||||
ignore line: [ as -v --64 -o CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccuSiKHJ.s]
|
ignore line: [ as -v --64 -o CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.o /tmp/cciEtBVP.s]
|
||||||
ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42]
|
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: [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: [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_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.']
|
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.']
|
||||||
ignore line: [Linking CXX executable cmTC_21458]
|
ignore line: [Linking CXX executable cmTC_0e288]
|
||||||
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_21458.dir/link.txt --verbose=1]
|
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0e288.dir/link.txt --verbose=1]
|
||||||
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_21458 ]
|
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_0e288 ]
|
||||||
ignore line: [Using built-in specs.]
|
ignore line: [Using built-in specs.]
|
||||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||||
ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper]
|
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: [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: [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: [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_21458' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_21458.']
|
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_0e288' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_0e288.']
|
||||||
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]
|
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/ccJwGfaM.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_0e288 /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_0e288.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 [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore
|
||||||
arg [-plugin] ==> ignore
|
arg [-plugin] ==> ignore
|
||||||
arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> 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=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore
|
||||||
arg [-plugin-opt=-fresolution=/tmp/ccR4K2gF.res] ==> ignore
|
arg [-plugin-opt=-fresolution=/tmp/ccJwGfaM.res] ==> ignore
|
||||||
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
|
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
|
||||||
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
|
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
|
||||||
arg [-plugin-opt=-pass-through=-lc] ==> ignore
|
arg [-plugin-opt=-pass-through=-lc] ==> ignore
|
||||||
@@ -234,7 +234,7 @@ events:
|
|||||||
arg [-znow] ==> ignore
|
arg [-znow] ==> ignore
|
||||||
arg [-zrelro] ==> ignore
|
arg [-zrelro] ==> ignore
|
||||||
arg [-o] ==> ignore
|
arg [-o] ==> ignore
|
||||||
arg [cmTC_21458] ==> ignore
|
arg [cmTC_0e288] ==> 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/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/../../../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]
|
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/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
|
||||||
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
|
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 [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..]
|
||||||
arg [CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
|
arg [CMakeFiles/cmTC_0e288.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
|
||||||
arg [-lstdc++] ==> lib [stdc++]
|
arg [-lstdc++] ==> lib [stdc++]
|
||||||
arg [-lm] ==> lib [m]
|
arg [-lm] ==> lib [m]
|
||||||
arg [-lgcc_s] ==> lib [gcc_s]
|
arg [-lgcc_s] ==> lib [gcc_s]
|
||||||
@@ -281,8 +281,8 @@ events:
|
|||||||
- "CMakeLists.txt:8 (find_package)"
|
- "CMakeLists.txt:8 (find_package)"
|
||||||
description: "Detecting CXX OpenMP compiler info"
|
description: "Detecting CXX OpenMP compiler info"
|
||||||
directories:
|
directories:
|
||||||
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS"
|
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-Pzeiac"
|
||||||
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS"
|
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-Pzeiac"
|
||||||
cmakeVariables:
|
cmakeVariables:
|
||||||
CMAKE_CXX_FLAGS: ""
|
CMAKE_CXX_FLAGS: ""
|
||||||
CMAKE_CXX_FLAGS_DEBUG: "-g"
|
CMAKE_CXX_FLAGS_DEBUG: "-g"
|
||||||
@@ -291,13 +291,13 @@ events:
|
|||||||
variable: "OpenMP_COMPILE_RESULT_CXX_fopenmp"
|
variable: "OpenMP_COMPILE_RESULT_CXX_fopenmp"
|
||||||
cached: true
|
cached: true
|
||||||
stdout: |
|
stdout: |
|
||||||
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS'
|
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-Pzeiac'
|
||||||
|
|
||||||
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_b23e5/fast
|
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_1afa4/fast
|
||||||
/usr/bin/gmake -f CMakeFiles/cmTC_b23e5.dir/build.make CMakeFiles/cmTC_b23e5.dir/build
|
/usr/bin/gmake -f CMakeFiles/cmTC_1afa4.dir/build.make CMakeFiles/cmTC_1afa4.dir/build
|
||||||
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS'
|
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-Pzeiac'
|
||||||
Building CXX object CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o
|
Building CXX object CMakeFiles/cmTC_1afa4.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
|
/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-Pzeiac/OpenMPTryFlag.cpp
|
||||||
Using built-in specs.
|
Using built-in specs.
|
||||||
COLLECT_GCC=/usr/bin/c++
|
COLLECT_GCC=/usr/bin/c++
|
||||||
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
|
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
|
||||||
@@ -307,8 +307,8 @@ events:
|
|||||||
Thread model: posix
|
Thread model: posix
|
||||||
Supported LTO compression algorithms: zlib zstd
|
Supported LTO compression algorithms: zlib zstd
|
||||||
gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
|
gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
|
||||||
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/'
|
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_1afa4.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
|
/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-Pzeiac/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_1afa4.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/ccvq5etP.s
|
||||||
GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)
|
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
|
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
|
/usr/include
|
||||||
End of search list.
|
End of search list.
|
||||||
Compiler executable checksum: 7896445e4990772fdae9dc0659a99266
|
Compiler executable checksum: 7896445e4990772fdae9dc0659a99266
|
||||||
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/'
|
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_1afa4.dir/'
|
||||||
as -v --64 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o /tmp/ccpB51rF.s
|
as -v --64 -o CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.o /tmp/ccvq5etP.s
|
||||||
GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42
|
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/
|
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/
|
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_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.'
|
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.'
|
||||||
Linking CXX executable cmTC_b23e5
|
Linking CXX executable cmTC_1afa4
|
||||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b23e5.dir/link.txt --verbose=1
|
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1afa4.dir/link.txt --verbose=1
|
||||||
/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -o cmTC_b23e5 -v
|
/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.o -o cmTC_1afa4 -v
|
||||||
Using built-in specs.
|
Using built-in specs.
|
||||||
COLLECT_GCC=/usr/bin/c++
|
COLLECT_GCC=/usr/bin/c++
|
||||||
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
|
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/
|
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/
|
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
|
Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgomp.spec
|
||||||
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_b23e5' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_b23e5.'
|
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_1afa4' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_1afa4.'
|
||||||
/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
|
/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/cc4kg3jz.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_1afa4 /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_1afa4.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.'
|
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_1afa4' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_1afa4.'
|
||||||
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS'
|
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-Pzeiac'
|
||||||
|
|
||||||
exitCode: 0
|
exitCode: 0
|
||||||
-
|
-
|
||||||
@@ -366,13 +366,13 @@ events:
|
|||||||
message: |
|
message: |
|
||||||
Parsed CXX OpenMP implicit link information from above output:
|
Parsed CXX OpenMP implicit link information from above output:
|
||||||
link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
||||||
ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS']
|
ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-Pzeiac']
|
||||||
ignore line: []
|
ignore line: []
|
||||||
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_b23e5/fast]
|
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_1afa4/fast]
|
||||||
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_b23e5.dir/build.make CMakeFiles/cmTC_b23e5.dir/build]
|
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_1afa4.dir/build.make CMakeFiles/cmTC_1afa4.dir/build]
|
||||||
ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS']
|
ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-Pzeiac']
|
||||||
ignore line: [Building CXX object CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o]
|
ignore line: [Building CXX object CMakeFiles/cmTC_1afa4.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: [/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-Pzeiac/OpenMPTryFlag.cpp]
|
||||||
ignore line: [Using built-in specs.]
|
ignore line: [Using built-in specs.]
|
||||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||||
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
|
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
|
||||||
@@ -382,8 +382,8 @@ events:
|
|||||||
ignore line: [Thread model: posix]
|
ignore line: [Thread model: posix]
|
||||||
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
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: [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_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/']
|
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_1afa4.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: [ /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-Pzeiac/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_1afa4.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/ccvq5etP.s]
|
||||||
ignore line: [GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)]
|
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: [ 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: []
|
||||||
@@ -404,15 +404,15 @@ events:
|
|||||||
ignore line: [ /usr/include]
|
ignore line: [ /usr/include]
|
||||||
ignore line: [End of search list.]
|
ignore line: [End of search list.]
|
||||||
ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266]
|
ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266]
|
||||||
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: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_1afa4.dir/']
|
||||||
ignore line: [ as -v --64 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o /tmp/ccpB51rF.s]
|
ignore line: [ as -v --64 -o CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.o /tmp/ccvq5etP.s]
|
||||||
ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42]
|
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: [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: [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_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.']
|
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.']
|
||||||
ignore line: [Linking CXX executable cmTC_b23e5]
|
ignore line: [Linking CXX executable cmTC_1afa4]
|
||||||
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b23e5.dir/link.txt --verbose=1]
|
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1afa4.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: [/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.o -o cmTC_1afa4 -v ]
|
||||||
ignore line: [Using built-in specs.]
|
ignore line: [Using built-in specs.]
|
||||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||||
ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper]
|
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: [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: [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: [Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgomp.spec]
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_b23e5' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_b23e5.']
|
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_1afa4' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_1afa4.']
|
||||||
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]
|
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/cc4kg3jz.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_1afa4 /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_1afa4.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 [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore
|
||||||
arg [-plugin] ==> ignore
|
arg [-plugin] ==> ignore
|
||||||
arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> 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=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore
|
||||||
arg [-plugin-opt=-fresolution=/tmp/cczYiwNl.res] ==> ignore
|
arg [-plugin-opt=-fresolution=/tmp/cc4kg3jz.res] ==> ignore
|
||||||
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
|
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
|
||||||
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
|
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
|
||||||
arg [-plugin-opt=-pass-through=-lpthread] ==> ignore
|
arg [-plugin-opt=-pass-through=-lpthread] ==> ignore
|
||||||
@@ -451,7 +451,7 @@ events:
|
|||||||
arg [-znow] ==> ignore
|
arg [-znow] ==> ignore
|
||||||
arg [-zrelro] ==> ignore
|
arg [-zrelro] ==> ignore
|
||||||
arg [-o] ==> ignore
|
arg [-o] ==> ignore
|
||||||
arg [cmTC_b23e5] ==> ignore
|
arg [cmTC_1afa4] ==> 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] ==> 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/../../../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]
|
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/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
|
||||||
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
|
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 [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..]
|
||||||
arg [CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o] ==> ignore
|
arg [CMakeFiles/cmTC_1afa4.dir/OpenMPTryFlag.cpp.o] ==> ignore
|
||||||
arg [-lstdc++] ==> lib [stdc++]
|
arg [-lstdc++] ==> lib [stdc++]
|
||||||
arg [-lm] ==> lib [m]
|
arg [-lm] ==> lib [m]
|
||||||
arg [-lgomp] ==> lib [gomp]
|
arg [-lgomp] ==> lib [gomp]
|
||||||
@@ -492,8 +492,8 @@ events:
|
|||||||
- "CMakeLists.txt:8 (find_package)"
|
- "CMakeLists.txt:8 (find_package)"
|
||||||
description: "Detecting CXX OpenMP version"
|
description: "Detecting CXX OpenMP version"
|
||||||
directories:
|
directories:
|
||||||
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd"
|
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-ktbnRq"
|
||||||
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd"
|
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-ktbnRq"
|
||||||
cmakeVariables:
|
cmakeVariables:
|
||||||
CMAKE_CXX_FLAGS: ""
|
CMAKE_CXX_FLAGS: ""
|
||||||
CMAKE_CXX_FLAGS_DEBUG: "-g"
|
CMAKE_CXX_FLAGS_DEBUG: "-g"
|
||||||
@@ -502,17 +502,17 @@ events:
|
|||||||
variable: "OpenMP_SPECTEST_CXX_"
|
variable: "OpenMP_SPECTEST_CXX_"
|
||||||
cached: true
|
cached: true
|
||||||
stdout: |
|
stdout: |
|
||||||
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd'
|
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-ktbnRq'
|
||||||
|
|
||||||
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_d43db/fast
|
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_b97f2/fast
|
||||||
/usr/bin/gmake -f CMakeFiles/cmTC_d43db.dir/build.make CMakeFiles/cmTC_d43db.dir/build
|
/usr/bin/gmake -f CMakeFiles/cmTC_b97f2.dir/build.make CMakeFiles/cmTC_b97f2.dir/build
|
||||||
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd'
|
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-ktbnRq'
|
||||||
Building CXX object CMakeFiles/cmTC_d43db.dir/OpenMPCheckVersion.cpp.o
|
Building CXX object CMakeFiles/cmTC_b97f2.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
|
/usr/bin/c++ -fopenmp -std=gnu++14 -o CMakeFiles/cmTC_b97f2.dir/OpenMPCheckVersion.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-ktbnRq/OpenMPCheckVersion.cpp
|
||||||
Linking CXX executable cmTC_d43db
|
Linking CXX executable cmTC_b97f2
|
||||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d43db.dir/link.txt --verbose=1
|
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b97f2.dir/link.txt --verbose=1
|
||||||
/usr/bin/c++ -fopenmp CMakeFiles/cmTC_d43db.dir/OpenMPCheckVersion.cpp.o -o cmTC_d43db
|
/usr/bin/c++ -fopenmp CMakeFiles/cmTC_b97f2.dir/OpenMPCheckVersion.cpp.o -o cmTC_b97f2
|
||||||
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd'
|
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-ktbnRq'
|
||||||
|
|
||||||
exitCode: 0
|
exitCode: 0
|
||||||
...
|
...
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
+16
-3
@@ -210,6 +210,8 @@ examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/main.cpp.o: \
|
|||||||
/home/atlas/Documents/Git/Flux/include/./numerics/detail/equal_serial.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/detail/equal_serial.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/exp.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/exp.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/detail/exp_serial.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/detail/exp_serial.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/./numerics/greater_or_less.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/./numerics/detail/greater_or_less_serial.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/interpolation1d.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_barycentric.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/interpolation1d/interpolation1d_base.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/interpolation1d/interpolation1d_base.h \
|
||||||
@@ -242,8 +244,12 @@ examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/main.cpp.o: \
|
|||||||
/home/atlas/Documents/Git/Flux/include/./numerics/detail/pow_serial.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/detail/pow_serial.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/random.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/random.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/detail/random_serial.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/detail/random_serial.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/./numerics/sign.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/./numerics/detail/sign_serial.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/sqrt.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/sqrt.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/detail/sqrt_serial.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/detail/sqrt_serial.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/./numerics/standard_deviation.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/./numerics/detail/standard_deviation_serial.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/sub.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/sub.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/detail/sub_serial.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/detail/sub_serial.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/sum.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/sum.h \
|
||||||
@@ -252,23 +258,30 @@ examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/main.cpp.o: \
|
|||||||
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/neural_networks.h \
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/neural_networks.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/datasets/spiral.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/datasets/vertical.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/datasets/sine.h \
|
||||||
|
/usr/include/c++/13/math.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/layers/Layer.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/layers/Dense_Layer.h \
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/layers/Dense_Layer.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/layers/Dropout_Layer.h \
|
|
||||||
/home/atlas/Documents/Git/Flux/include/random/random.h \
|
/home/atlas/Documents/Git/Flux/include/random/random.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/random/engine.h \
|
/home/atlas/Documents/Git/Flux/include/random/engine.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/random/uniform.h \
|
/home/atlas/Documents/Git/Flux/include/random/uniform.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/random/detail/uniform_serial.h \
|
/home/atlas/Documents/Git/Flux/include/random/detail/uniform_serial.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/random/binomial.h \
|
/home/atlas/Documents/Git/Flux/include/random/binomial.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/random/detail/binomial_serial.h \
|
/home/atlas/Documents/Git/Flux/include/random/detail/binomial_serial.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/random/normal.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/random/detail/normal_serial.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/layers/Dropout_Layer.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_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.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/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_CategoricalCrossentrophy.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss.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/activation_functions/Activation_Sigmoid.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_Linear.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss_BinaryCrossentropy.h \
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss_BinaryCrossentropy.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss_MeanSquaredError.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_SGD.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_Adagrad.h \
|
||||||
/usr/include/c++/13/math.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_RMSprop.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_Adam.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/model/model.h
|
||||||
|
|||||||
@@ -0,0 +1,218 @@
|
|||||||
|
#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 = 1000;
|
||||||
|
uint64_t number_of_epochs = 10000;
|
||||||
|
|
||||||
|
utils::Mf X;
|
||||||
|
utils::Mf X_test;
|
||||||
|
utils::Matrix<float> y;
|
||||||
|
utils::Matrix<float> y_test;
|
||||||
|
float data_loss;
|
||||||
|
float regularization_loss;
|
||||||
|
float loss;
|
||||||
|
float accuracy;
|
||||||
|
|
||||||
|
utils::Vector<uint64_t> class_targets;
|
||||||
|
utils::Matrix<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);
|
||||||
|
neural_networks::create_sine_data(number_of_samples, // samples
|
||||||
|
2.0f* 3.1415f, // length
|
||||||
|
X,
|
||||||
|
y);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Create Dense layer with 2 input featues and 3 output values
|
||||||
|
neural_networks::Dense_Layer<float> dense1(
|
||||||
|
1, 64, // input/output
|
||||||
|
0.0f, // weight L1
|
||||||
|
5e-5f, // weight L2
|
||||||
|
0.0f, // bias L1
|
||||||
|
5e-5f // bias L2
|
||||||
|
);
|
||||||
|
neural_networks::Activation_ReLU<float> activation1;
|
||||||
|
//neural_networks::Dropout_Layer<float> dropout1(0.1);
|
||||||
|
|
||||||
|
neural_networks::Dense_Layer<float> dense2(
|
||||||
|
64, 64, // input/output
|
||||||
|
0.0f, // weight L1
|
||||||
|
5e-5f, // weight L2
|
||||||
|
0.0f, // bias L1
|
||||||
|
5e-5f // bias L2
|
||||||
|
);
|
||||||
|
neural_networks::Activation_ReLU<float> activation2;
|
||||||
|
|
||||||
|
|
||||||
|
neural_networks::Dense_Layer<float> dense3(
|
||||||
|
64, 1, // input/output
|
||||||
|
0.0f, // weight L1
|
||||||
|
5e-5f, // weight L2
|
||||||
|
0.0f, // bias L1
|
||||||
|
5e-5f // bias L2
|
||||||
|
);
|
||||||
|
neural_networks::Activation_Linear<float> activation3;
|
||||||
|
|
||||||
|
|
||||||
|
neural_networks::Loss_MeanSquaredError<float> loss_function;
|
||||||
|
neural_networks::Optimizer_Adam<float> optimizer(
|
||||||
|
0.001, // Learning-rate
|
||||||
|
1e-3, // Learning-rate decay
|
||||||
|
1e-7, // epsilons
|
||||||
|
0.9, // beta 1
|
||||||
|
0.999 // beta 2
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/* Accuracy precision for accuracy calculation
|
||||||
|
# There are no really accuracy factor for regression problem,
|
||||||
|
# but we can simulate/approximate it. We'll calculate it by checking
|
||||||
|
# how many values have a difference to their ground truth equivalent
|
||||||
|
# less than given precision
|
||||||
|
# We'll calculate this precision as a fraction of standard deviation
|
||||||
|
# of al the ground truth values */
|
||||||
|
// accuracy_precision = np.std(y) / 250
|
||||||
|
float accuracy_precision = numerics::standard_deviation(y)/ 250.0f;
|
||||||
|
|
||||||
|
|
||||||
|
// 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(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_function.calculate(activation3.outputs, y);
|
||||||
|
|
||||||
|
// Calculate regularization penalty
|
||||||
|
regularization_loss = loss_function.regularization_loss(dense1) +
|
||||||
|
loss_function.regularization_loss(dense2);
|
||||||
|
|
||||||
|
loss = data_loss + regularization_loss;
|
||||||
|
|
||||||
|
predictions = activation3.outputs;
|
||||||
|
accuracy = numerics::mean(numerics::less( numerics::abs( numerics::sub(predictions, y)), accuracy_precision));
|
||||||
|
//accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast<float, int64_t>(y.get_col(0))));
|
||||||
|
|
||||||
|
|
||||||
|
if (!(epoch%100) && epoch != 0){
|
||||||
|
|
||||||
|
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_function.backward(activation3.outputs, y);
|
||||||
|
|
||||||
|
activation3.backward(loss_function.dinputs);
|
||||||
|
dense3.backward(activation3.dinputs);
|
||||||
|
|
||||||
|
activation2.backward(dense3.dinputs);
|
||||||
|
dense2.backward(activation2.dinputs);
|
||||||
|
|
||||||
|
activation1.backward(dense2.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();
|
||||||
|
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
std::cout << "X, y, pred:" << std::endl;
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < X.rows(); ++i) {
|
||||||
|
std::cout << X(i, 0)
|
||||||
|
<< ", "
|
||||||
|
<< y(i, 0)
|
||||||
|
<< ", "
|
||||||
|
<< activation3.outputs(i, 0)
|
||||||
|
<< std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
|
||||||
|
|
||||||
|
// skal flyttes ned under loss functions.
|
||||||
|
predictions = activation3.outputs();
|
||||||
|
predictions = numerics::mean(numerics::abs(numerics::sub(predictions, y)));
|
||||||
|
std::cout << predictions << std::endl;
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
}
|
||||||
@@ -21,93 +21,107 @@ int main(int argc, char const *argv[])
|
|||||||
{
|
{
|
||||||
|
|
||||||
uint64_t number_of_classes = 2;
|
uint64_t number_of_classes = 2;
|
||||||
uint64_t number_of_samples = 150;
|
uint64_t number_of_samples = 1000;
|
||||||
uint64_t number_of_epochs = 1000;
|
uint64_t number_of_epochs = 10000;
|
||||||
|
|
||||||
utils::Mf X;
|
utils::Mf X;
|
||||||
utils::Mf X_test;
|
utils::Mf X_test;
|
||||||
utils::Matrix<int64_t> y;
|
utils::Matrix<float> y;
|
||||||
utils::Matrix<int64_t> y_test;
|
utils::Matrix<float> y_test;
|
||||||
float data_loss;
|
float data_loss;
|
||||||
float regularization_loss;
|
float regularization_loss;
|
||||||
float loss;
|
float loss;
|
||||||
float accuracy;
|
float accuracy;
|
||||||
|
|
||||||
utils::Vector<uint64_t> class_targets;
|
utils::Vector<uint64_t> class_targets;
|
||||||
utils::Vector<float> predictions;
|
utils::Matrix<float> predictions;
|
||||||
|
|
||||||
|
|
||||||
// Create dataset
|
// Create dataset
|
||||||
neural_networks::create_spital_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
|
//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);
|
//neural_networks::create_vertical_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
|
||||||
|
neural_networks::create_sine_data(number_of_samples, // samples
|
||||||
|
2.0f* 3.1415f, // length
|
||||||
|
X,
|
||||||
|
y);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
neural_networks::Model<float> model;
|
||||||
|
|
||||||
|
|
||||||
// Create Dense layer with 2 input featues and 3 output values
|
// Create Dense layer with 2 input featues and 3 output values
|
||||||
neural_networks::Dense_Layer<float> dense1(
|
neural_networks::Dense_Layer<float> dense1(
|
||||||
2, 16, // input/output
|
1, 64, // input/output
|
||||||
0.0f, // weight L1
|
0.0f, // weight L1
|
||||||
5e-4f, // weight L2
|
5e-5f, // weight L2
|
||||||
0.0f, // bias L1
|
0.0f, // bias L1
|
||||||
5e-4f // bias L2
|
5e-5f // bias L2
|
||||||
);
|
);
|
||||||
|
|
||||||
// Create ReLU activation (to be used with Dense layer)
|
|
||||||
neural_networks::Activation_ReLU<float> activation1;
|
neural_networks::Activation_ReLU<float> activation1;
|
||||||
neural_networks::Dropout_Layer<float> dropout1(0.1);
|
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(
|
neural_networks::Dense_Layer<float> dense2(
|
||||||
16, 16, // input/output
|
64, 64, // input/output
|
||||||
0.0f, // weight L1
|
0.0f, // weight L1
|
||||||
5e-4f, // weight L2
|
5e-5f, // weight L2
|
||||||
0.0f, // bias L1
|
0.0f, // bias L1
|
||||||
5e-4f // bias L2
|
5e-5f // bias L2
|
||||||
);
|
);
|
||||||
neural_networks::Activation_Softmax<float> activation2;
|
neural_networks::Activation_ReLU<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(
|
neural_networks::Dense_Layer<float> dense3(
|
||||||
16, 1, // input/output
|
64, 1, // input/output
|
||||||
0.0f, // weight L1
|
0.0f, // weight L1
|
||||||
5e-4f, // weight L2
|
5e-5f, // weight L2
|
||||||
0.0f, // bias L1
|
0.0f, // bias L1
|
||||||
5e-4f // bias L2
|
5e-5f // bias L2
|
||||||
);
|
);
|
||||||
neural_networks::Activation_Sigmoid<float> activation3;
|
neural_networks::Activation_Linear<float> activation3;
|
||||||
|
|
||||||
|
|
||||||
// Create a Sfotmax classifier's combined loss and activation
|
neural_networks::Loss_MeanSquaredError<float> loss_function;
|
||||||
//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(
|
neural_networks::Optimizer_Adam<float> optimizer(
|
||||||
0.05, // Learning-rate
|
0.001, // Learning-rate
|
||||||
5e-5, // Learning-rate decay
|
1e-3, // Learning-rate decay
|
||||||
1e-6, // epsilons
|
1e-7, // epsilons
|
||||||
0.9, // beta 1
|
0.9, // beta 1
|
||||||
0.999 // beta 2
|
0.999 // beta 2
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
model.add(dense1);
|
||||||
|
model.add(activation1);
|
||||||
|
model.add(dropout1);
|
||||||
|
model.add(dense2);
|
||||||
|
model.add(activation2);
|
||||||
|
model.add(dense3);
|
||||||
|
model.add(activation3);
|
||||||
|
|
||||||
|
|
||||||
|
/* Accuracy precision for accuracy calculation
|
||||||
|
# There are no really accuracy factor for regression problem,
|
||||||
|
# but we can simulate/approximate it. We'll calculate it by checking
|
||||||
|
# how many values have a difference to their ground truth equivalent
|
||||||
|
# less than given precision
|
||||||
|
# We'll calculate this precision as a fraction of standard deviation
|
||||||
|
# of al the ground truth values */
|
||||||
|
// accuracy_precision = np.std(y) / 250
|
||||||
|
/*
|
||||||
|
float accuracy_precision = numerics::standard_deviation(y)/ 250.0f;
|
||||||
|
|
||||||
|
|
||||||
// Train in loop
|
// Train in loop
|
||||||
for (uint64_t epoch = 0; epoch < number_of_epochs+1; ++epoch){
|
for (uint64_t epoch = 0; epoch < number_of_epochs+1; ++epoch){
|
||||||
|
|
||||||
// Perform a forward pass of our training data through this layer
|
// Perform a forward pass of our training data through this layer
|
||||||
dense1.forward(X);
|
dense1.forward(X);
|
||||||
activation1.forward(dense1.outputs);
|
activation1.forward(dense1.outputs);
|
||||||
dropout1.forward(activation1.outputs);
|
//dropout1.forward(activation1.outputs);
|
||||||
|
|
||||||
dense2.forward(dropout1.outputs);
|
dense2.forward(activation1.outputs);
|
||||||
activation2.forward(dense2.outputs);
|
activation2.forward(dense2.outputs);
|
||||||
|
|
||||||
dense3.forward(activation2.outputs);
|
dense3.forward(activation2.outputs);
|
||||||
@@ -115,24 +129,20 @@ int main(int argc, char const *argv[])
|
|||||||
|
|
||||||
// Perform a foard pass through the activation/loss function
|
// Perform a foard pass through the activation/loss function
|
||||||
// takes the output of the second dense layer here and returns loss
|
// takes the output of the second dense layer here and returns loss
|
||||||
data_loss = loss_activation.calculate(activation3.outputs, y);
|
data_loss = loss_function.calculate(activation3.outputs, y);
|
||||||
|
|
||||||
// Calculate regularization penalty
|
// Calculate regularization penalty
|
||||||
regularization_loss = loss_activation.regularization_loss(dense1) +
|
regularization_loss = loss_function.regularization_loss(dense1) +
|
||||||
loss_activation.regularization_loss(dense2) +
|
loss_function.regularization_loss(dense2);
|
||||||
loss_activation.regularization_loss(dense3);
|
|
||||||
|
|
||||||
loss = data_loss + regularization_loss;
|
loss = data_loss + regularization_loss;
|
||||||
|
|
||||||
// Calculate accuracy from output of activation3 and targets
|
predictions = activation3.outputs;
|
||||||
// Part in the brackets returns a binary mask - array consisting
|
accuracy = numerics::mean(numerics::less( numerics::abs( numerics::sub(predictions, y)), accuracy_precision));
|
||||||
// of True/False values, multiplying it by 1 changes it into array
|
//accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast<float, int64_t>(y.get_col(0))));
|
||||||
// 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)){
|
if (!(epoch%100) && epoch != 0){
|
||||||
|
|
||||||
std::cout << "epoch: " << epoch;
|
std::cout << "epoch: " << epoch;
|
||||||
std::cout << ", acc: " << accuracy;
|
std::cout << ", acc: " << accuracy;
|
||||||
@@ -145,16 +155,15 @@ int main(int argc, char const *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Backward pass
|
// Backward pass
|
||||||
loss_activation.backward(activation3.outputs, y);
|
loss_function.backward(activation3.outputs, y);
|
||||||
|
|
||||||
activation3.backward(loss_activation.dinputs);
|
activation3.backward(loss_function.dinputs);
|
||||||
dense3.backward(activation3.dinputs);
|
dense3.backward(activation3.dinputs);
|
||||||
|
|
||||||
activation2.backward(dense3.dinputs);
|
activation2.backward(dense3.dinputs);
|
||||||
dense2.backward(activation2.dinputs);
|
dense2.backward(activation2.dinputs);
|
||||||
|
|
||||||
dropout1.backward(dense2.dinputs);
|
activation1.backward(dense2.dinputs);
|
||||||
activation1.backward(dropout1.dinputs);
|
|
||||||
dense1.backward(activation1.dinputs);
|
dense1.backward(activation1.dinputs);
|
||||||
|
|
||||||
// Update weights and biases
|
// Update weights and biases
|
||||||
@@ -166,6 +175,17 @@ int main(int argc, char const *argv[])
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::cout << "X, y, pred:" << std::endl;
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < X.rows(); ++i) {
|
||||||
|
std::cout << X(i, 0)
|
||||||
|
<< ", "
|
||||||
|
<< y(i, 0)
|
||||||
|
<< ", "
|
||||||
|
<< activation3.outputs(i, 0)
|
||||||
|
<< std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
// Validate the model
|
// Validate the model
|
||||||
|
|
||||||
// Create dataset
|
// Create dataset
|
||||||
@@ -193,6 +213,12 @@ int main(int argc, char const *argv[])
|
|||||||
|
|
||||||
loss = data_loss + regularization_loss;
|
loss = data_loss + regularization_loss;
|
||||||
|
|
||||||
|
|
||||||
|
// skal flyttes ned under loss functions.
|
||||||
|
predictions = activation3.outputs();
|
||||||
|
predictions = numerics::mean(numerics::abs(numerics::sub(predictions, y)));
|
||||||
|
std::cout << predictions << std::endl;
|
||||||
|
|
||||||
// Calculate accuracy from output of activation2 and targets
|
// Calculate accuracy from output of activation2 and targets
|
||||||
predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0);
|
predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0);
|
||||||
|
|
||||||
@@ -200,6 +226,6 @@ int main(int argc, char const *argv[])
|
|||||||
|
|
||||||
|
|
||||||
std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl;
|
std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl;
|
||||||
|
*/
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/omp_config.h"
|
||||||
|
|
||||||
|
#include "utils/vector.h"
|
||||||
|
#include "utils/matrix.h"
|
||||||
|
#include "modules/neural_networks/layers/Layer.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
namespace neural_networks{
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct Activation_Linear : Layer<T>{
|
||||||
|
|
||||||
|
utils::Matrix<T> _inputs;
|
||||||
|
utils::Matrix<T> outputs;
|
||||||
|
|
||||||
|
utils::Matrix<T> dinputs;
|
||||||
|
|
||||||
|
void forward(const utils::Matrix<T>& inputs){
|
||||||
|
_inputs = inputs;
|
||||||
|
outputs = inputs;
|
||||||
|
}
|
||||||
|
void backward(const utils::Matrix<T>& dvalues){
|
||||||
|
|
||||||
|
dinputs = dvalues;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} // end namespace neural_networks
|
||||||
@@ -4,12 +4,12 @@
|
|||||||
|
|
||||||
#include "utils/vector.h"
|
#include "utils/vector.h"
|
||||||
#include "utils/matrix.h"
|
#include "utils/matrix.h"
|
||||||
|
#include "modules/neural_networks/layers/Layer.h"
|
||||||
|
|
||||||
namespace neural_networks{
|
namespace neural_networks{
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct Activation_ReLU{
|
struct Activation_ReLU : Layer<T>{
|
||||||
|
|
||||||
utils::Matrix<T> _inputs;
|
utils::Matrix<T> _inputs;
|
||||||
utils::Matrix<T> outputs;
|
utils::Matrix<T> outputs;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
#include "utils/vector.h"
|
#include "utils/vector.h"
|
||||||
#include "utils/matrix.h"
|
#include "utils/matrix.h"
|
||||||
|
#include "modules/neural_networks/layers/Layer.h"
|
||||||
|
|
||||||
#include "numerics/neg.h"
|
#include "numerics/neg.h"
|
||||||
#include "numerics/exp.h"
|
#include "numerics/exp.h"
|
||||||
@@ -15,7 +16,7 @@
|
|||||||
namespace neural_networks{
|
namespace neural_networks{
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct Activation_Sigmoid{
|
struct Activation_Sigmoid : Layer<T>{
|
||||||
|
|
||||||
utils::Matrix<T> _inputs;
|
utils::Matrix<T> _inputs;
|
||||||
utils::Matrix<T> outputs;
|
utils::Matrix<T> outputs;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
#include "utils/vector.h"
|
#include "utils/vector.h"
|
||||||
#include "utils/matrix.h"
|
#include "utils/matrix.h"
|
||||||
|
#include "modules/neural_networks/layers/Layer.h"
|
||||||
|
|
||||||
#include "numerics/max.h"
|
#include "numerics/max.h"
|
||||||
#include "numerics/sub.h"
|
#include "numerics/sub.h"
|
||||||
@@ -15,7 +16,7 @@
|
|||||||
namespace neural_networks{
|
namespace neural_networks{
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct Activation_Softmax{
|
struct Activation_Softmax : Layer<T>{
|
||||||
|
|
||||||
//utils::Matrix<T> exp_values;
|
//utils::Matrix<T> exp_values;
|
||||||
//utils::Matrix<T> probabilities;
|
//utils::Matrix<T> probabilities;
|
||||||
|
|||||||
+2
-1
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
#include "utils/vector.h"
|
#include "utils/vector.h"
|
||||||
#include "utils/matrix.h"
|
#include "utils/matrix.h"
|
||||||
|
#include "modules/neural_networks/layers/Layer.h"
|
||||||
|
|
||||||
#include "numerics/max.h"
|
#include "numerics/max.h"
|
||||||
#include "numerics/sub.h"
|
#include "numerics/sub.h"
|
||||||
@@ -17,7 +18,7 @@
|
|||||||
namespace neural_networks{
|
namespace neural_networks{
|
||||||
|
|
||||||
template <typename Td, typename Ti>
|
template <typename Td, typename Ti>
|
||||||
struct Activation_Softmax_Loss_CategoricalCrossentropy{
|
struct Activation_Softmax_Loss_CategoricalCrossentropy : Layer<Td>{
|
||||||
|
|
||||||
neural_networks::Activation_Softmax<Td> activation;
|
neural_networks::Activation_Softmax<Td> activation;
|
||||||
neural_networks::Loss_CategoricalCrossentrophy<Td, Ti> loss;
|
neural_networks::Loss_CategoricalCrossentrophy<Td, Ti> loss;
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "./core/omp_config.h"
|
||||||
|
#include "./utils/matrix.h"
|
||||||
|
#include "./utils/vector.h"
|
||||||
|
#include "utils/generators/linspace.h"
|
||||||
|
|
||||||
|
#include <math.h> /* sin */
|
||||||
|
|
||||||
|
//#include "./utils/random.h"
|
||||||
|
|
||||||
|
//#include <math.h>
|
||||||
|
|
||||||
|
|
||||||
|
namespace neural_networks{
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void create_sine_data(const uint64_t samples, const T length, utils::Matrix<T>& X, utils::Matrix<T>& y) {
|
||||||
|
|
||||||
|
X.resize(samples, 1);
|
||||||
|
X.set_col(0, utils::linspace(
|
||||||
|
T{0}, // start
|
||||||
|
length, // stop
|
||||||
|
samples, // N
|
||||||
|
true // endpoint
|
||||||
|
));
|
||||||
|
|
||||||
|
y.resize(samples, 1);
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < samples; ++i){
|
||||||
|
y(i,0) = std::sin(X(i,0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} // end namesoace NN
|
||||||
@@ -4,13 +4,17 @@
|
|||||||
|
|
||||||
#include "utils/vector.h"
|
#include "utils/vector.h"
|
||||||
#include "utils/matrix.h"
|
#include "utils/matrix.h"
|
||||||
|
#include "Layer.h"
|
||||||
|
|
||||||
|
|
||||||
#include "utils/random.h"
|
#include "utils/random.h"
|
||||||
|
#include "random/random.h"
|
||||||
|
|
||||||
|
|
||||||
namespace neural_networks{
|
namespace neural_networks{
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct Dense_Layer{
|
struct Dense_Layer : Layer<T>{
|
||||||
|
|
||||||
T weight_regularizer_l1 = {0};
|
T weight_regularizer_l1 = {0};
|
||||||
T weight_regularizer_l2 = {0};
|
T weight_regularizer_l2 = {0};
|
||||||
@@ -48,7 +52,7 @@ namespace neural_networks{
|
|||||||
this->bias_regularizer_l1 = bias_regularizer_l1;
|
this->bias_regularizer_l1 = bias_regularizer_l1;
|
||||||
this->bias_regularizer_l2 = bias_regularizer_l2;
|
this->bias_regularizer_l2 = bias_regularizer_l2;
|
||||||
|
|
||||||
weights.random(n_inputs, n_neurons, -1, 1);
|
weights = numerics::mul( rng::normal(n_inputs, n_neurons, 0.0f, 1.0f), 0.1f);
|
||||||
//weights = numerics::random_matrix(n_inputs, n_neurons, -1, 1);
|
//weights = numerics::random_matrix(n_inputs, n_neurons, -1, 1);
|
||||||
biases.resize(n_neurons, T{0});
|
biases.resize(n_neurons, T{0});
|
||||||
|
|
||||||
|
|||||||
@@ -4,13 +4,15 @@
|
|||||||
|
|
||||||
#include "utils/vector.h"
|
#include "utils/vector.h"
|
||||||
#include "utils/matrix.h"
|
#include "utils/matrix.h"
|
||||||
|
#include "modules/neural_networks/layers/Layer.h"
|
||||||
|
|
||||||
#include "random/random.h"
|
#include "random/random.h"
|
||||||
|
|
||||||
|
|
||||||
namespace neural_networks{
|
namespace neural_networks{
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct Dropout_Layer{
|
struct Dropout_Layer : Layer<T>{
|
||||||
|
|
||||||
// Store rate, we invert it as for example for dropout
|
// Store rate, we invert it as for example for dropout
|
||||||
// of 0.1 we need a success rate of 0.9
|
// of 0.1 we need a success rate of 0.9
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/omp_config.h"
|
||||||
|
|
||||||
|
#include "utils/vector.h"
|
||||||
|
#include "utils/matrix.h"
|
||||||
|
|
||||||
|
namespace neural_networks{
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct Layer {
|
||||||
|
utils::Matrix<T> outputs;
|
||||||
|
utils::Matrix<T> dinputs;
|
||||||
|
|
||||||
|
virtual void forward(const utils::Matrix<T>& inputs) = 0;
|
||||||
|
virtual void backward(const utils::Matrix<T>& dvalues) = 0;
|
||||||
|
|
||||||
|
virtual ~Layer() = default;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
namespace neural_networks{
|
namespace neural_networks{
|
||||||
|
|
||||||
template <typename Td, typename Ti>
|
template <typename Td, typename Ti = Td>
|
||||||
struct Loss{
|
struct Loss{
|
||||||
|
|
||||||
utils::Vector<Td> sample_losses;
|
utils::Vector<Td> sample_losses;
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
#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 T>
|
||||||
|
struct Loss_MeanAbsoluteError : Loss<T> {
|
||||||
|
|
||||||
|
utils::Matrix<T> dinputs;
|
||||||
|
utils::Matrix<T> y_true;
|
||||||
|
|
||||||
|
utils::Vector<T> sample_losses;
|
||||||
|
|
||||||
|
|
||||||
|
utils::Vector<T> forward(const utils::Matrix<T>& y_pred, const utils::Matrix<T>& y_true) override{
|
||||||
|
|
||||||
|
|
||||||
|
// Calculate loss
|
||||||
|
sample_losses = numerics::mean_rowwise(numerics::abs(numerics::sub(y_true, y_pred)));
|
||||||
|
|
||||||
|
|
||||||
|
// Return losses
|
||||||
|
return sample_losses;
|
||||||
|
}
|
||||||
|
|
||||||
|
void backward(const utils::Matrix<T>& dvalues, const utils::Matrix<T>& y_true) override{
|
||||||
|
|
||||||
|
|
||||||
|
// Number of samples
|
||||||
|
const T samples = static_cast<T> (dvalues.rows());
|
||||||
|
// Number of outputs in every sample
|
||||||
|
const T outputs = static_cast<T> (dvalues.cols());
|
||||||
|
|
||||||
|
|
||||||
|
// Gradient values
|
||||||
|
dinputs = numerics::div(numerics::sign(numerics::sub(y_true, dvalues)), outputs);
|
||||||
|
// Normalise gradient
|
||||||
|
dinputs = numerics::div(dinputs, samples);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} // end namespace neural_networks
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
#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 T>
|
||||||
|
struct Loss_MeanSquaredError : Loss<T> {
|
||||||
|
|
||||||
|
utils::Matrix<T> dinputs;
|
||||||
|
utils::Matrix<T> y_true;
|
||||||
|
|
||||||
|
utils::Vector<T> sample_losses;
|
||||||
|
|
||||||
|
|
||||||
|
utils::Vector<T> forward(const utils::Matrix<T>& y_pred, const utils::Matrix<T>& y_true) override{
|
||||||
|
|
||||||
|
|
||||||
|
// Calculate loss
|
||||||
|
sample_losses = numerics::mean_rowwise(numerics::pow(numerics::sub(y_true, y_pred), T{2}));
|
||||||
|
|
||||||
|
|
||||||
|
// Return losses
|
||||||
|
return sample_losses;
|
||||||
|
}
|
||||||
|
|
||||||
|
void backward(const utils::Matrix<T>& dvalues, const utils::Matrix<T>& y_true) override{
|
||||||
|
|
||||||
|
|
||||||
|
// Number of samples
|
||||||
|
const T samples = static_cast<T> (dvalues.rows());
|
||||||
|
// Number of outputs in every sample
|
||||||
|
const T outputs = static_cast<T> (dvalues.cols());
|
||||||
|
|
||||||
|
|
||||||
|
// Gradient values
|
||||||
|
dinputs = numerics::mul(numerics::div(numerics::sub(y_true, dvalues), outputs), T{-2});
|
||||||
|
// Normalise gradient
|
||||||
|
dinputs = numerics::div(dinputs, samples);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} // end namespace neural_networks
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/omp_config.h"
|
||||||
|
|
||||||
|
#include "utils/vector.h"
|
||||||
|
#include "utils/matrix.h"
|
||||||
|
|
||||||
|
#include "modules/neural_networks/layers/Layer.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace neural_networks {
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct Model {
|
||||||
|
|
||||||
|
std::vector<Layer<T>*> layers;
|
||||||
|
|
||||||
|
Model() = default;
|
||||||
|
|
||||||
|
void add(Layer<T>& layer) {
|
||||||
|
layers.push_back(&layer);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} // end namespace neural_networks
|
||||||
@@ -3,8 +3,9 @@
|
|||||||
|
|
||||||
#include "datasets/spiral.h"
|
#include "datasets/spiral.h"
|
||||||
#include "datasets/vertical.h"
|
#include "datasets/vertical.h"
|
||||||
|
#include "datasets/sine.h"
|
||||||
|
|
||||||
|
#include "layers/Layer.h"
|
||||||
#include "layers/Dense_Layer.h"
|
#include "layers/Dense_Layer.h"
|
||||||
#include "layers/Dropout_Layer.h"
|
#include "layers/Dropout_Layer.h"
|
||||||
|
|
||||||
@@ -13,14 +14,21 @@
|
|||||||
#include "activation_functions/Activation_Softmax.h"
|
#include "activation_functions/Activation_Softmax.h"
|
||||||
#include "activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h"
|
#include "activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h"
|
||||||
#include "activation_functions/Activation_Sigmoid.h"
|
#include "activation_functions/Activation_Sigmoid.h"
|
||||||
|
#include "activation_functions/Activation_Linear.h"
|
||||||
|
|
||||||
|
|
||||||
#include "loss/Loss.h" // Base
|
#include "loss/Loss.h" // Base
|
||||||
#include "loss/Loss_CategoricalCrossentrophy.h"
|
#include "loss/Loss_CategoricalCrossentrophy.h"
|
||||||
#include "loss/Loss_BinaryCrossentropy.h"
|
#include "loss/Loss_BinaryCrossentropy.h"
|
||||||
|
#include "loss/Loss_MeanSquaredError.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "optimizers/Optimizer_SGD.h"
|
#include "optimizers/Optimizer_SGD.h"
|
||||||
#include "optimizers/Optimizer_Adagrad.h"
|
#include "optimizers/Optimizer_Adagrad.h"
|
||||||
#include "optimizers/Optimizer_RMSprop.h"
|
#include "optimizers/Optimizer_RMSprop.h"
|
||||||
#include "optimizers/Optimizer_Adam.h"
|
#include "optimizers/Optimizer_Adam.h"
|
||||||
|
|
||||||
|
|
||||||
|
#include "model/model.h"
|
||||||
@@ -0,0 +1,622 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint> //uint64_t
|
||||||
|
|
||||||
|
#include "utils/vector.h"
|
||||||
|
#include "utils/matrix.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace numerics::detail{
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ---------------- Greater - Vectors ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_serial(utils::Vector<T>& v, const T c) {
|
||||||
|
const uint64_t n = v.size();
|
||||||
|
|
||||||
|
if (n == 0){
|
||||||
|
throw std::runtime_error("inplace_greater_serial: empty vector");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < n; ++i){
|
||||||
|
if (v[i] < c){
|
||||||
|
v[i] = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
v[i] = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_serial(utils::Vector<T>& v, const utils::Vector<T>& p) {
|
||||||
|
const uint64_t n = v.size();
|
||||||
|
const uint64_t m = p.size();
|
||||||
|
|
||||||
|
if (n == 0){
|
||||||
|
throw std::runtime_error("inplace_greater_serial: empty vector");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (n != m){
|
||||||
|
throw std::runtime_error("inplace_greater_serial: vector size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < n; ++i){
|
||||||
|
if (v[i] < p[i]){
|
||||||
|
v[i] = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
v[i] = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// ---------------- Greater - Matrices ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_serial(utils::Matrix<T>& A, const T c) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_greater_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) < c){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_rowwise_serial(utils::Matrix<T>& A, const utils::Vector<T>& v) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_greater_rowwise_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rows != v.size()){
|
||||||
|
throw std::runtime_error("inplace_greater_rowwise_serial: Matrix-Vector size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) < v[i]){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_colwise_serial(utils::Matrix<T>& A, const utils::Vector<T>& v) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_greater_colwise_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cols != v.size()){
|
||||||
|
throw std::runtime_error("inplace_greater_colwise_serial: Matrix-Vector size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) < v[j]){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_serial(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_greater_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rows != B.rows() || cols != B.cols()){
|
||||||
|
throw std::runtime_error("inplace_greater_serial: Matrix size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) < B(i,j)){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ---------------- Greater or Equal - Vectors ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_equal_serial(utils::Vector<T>& v, const T c) {
|
||||||
|
const uint64_t n = v.size();
|
||||||
|
|
||||||
|
if (n == 0){
|
||||||
|
throw std::runtime_error("inplace_greater_equal_serial: empty vector");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < n; ++i){
|
||||||
|
if (v[i] <= c){
|
||||||
|
v[i] = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
v[i] = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_equal_serial(utils::Vector<T>& v, const utils::Vector<T>& p) {
|
||||||
|
const uint64_t n = v.size();
|
||||||
|
const uint64_t m = p.size();
|
||||||
|
|
||||||
|
if (n == 0){
|
||||||
|
throw std::runtime_error("inplace_greater_equal_serial: empty vector");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (n != m){
|
||||||
|
throw std::runtime_error("inplace_greater_equal_serial: vector size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < n; ++i){
|
||||||
|
if (v[i] <= p[i]){
|
||||||
|
v[i] = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
v[i] = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// ---------------- Greater - Matrices ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_equal_serial(utils::Matrix<T>& A, const T c) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_greater_equal_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) <= c){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_equal_rowwise_serial(utils::Matrix<T>& A, const utils::Vector<T>& v) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_greater_equal_rowwise_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rows != v.size()){
|
||||||
|
throw std::runtime_error("inplace_greater_equal_rowwise_serial: Matrix-Vector size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) <= v[i]){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_equal_colwise_serial(utils::Matrix<T>& A, const utils::Vector<T>& v) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_greater_equal_colwise_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cols != v.size()){
|
||||||
|
throw std::runtime_error("inplace_greater_equal_colwise_serial: Matrix-Vector size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) <= v[j]){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_equal_serial(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_greater_equal_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rows != B.rows() || cols != B.cols()){
|
||||||
|
throw std::runtime_error("inplace_greater_equal_serial: Matrix size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) <= B(i,j)){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ---------------- Less - Vectors ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_serial(utils::Vector<T>& v, const T c) {
|
||||||
|
const uint64_t n = v.size();
|
||||||
|
|
||||||
|
if (n == 0){
|
||||||
|
throw std::runtime_error("inplace_less_serial: empty vector");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < n; ++i){
|
||||||
|
if (v[i] > c){
|
||||||
|
v[i] = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
v[i] = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_serial(utils::Vector<T>& v, const utils::Vector<T>& p) {
|
||||||
|
const uint64_t n = v.size();
|
||||||
|
const uint64_t m = p.size();
|
||||||
|
|
||||||
|
if (n == 0){
|
||||||
|
throw std::runtime_error("inplace_less_serial: empty vector");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (n != m){
|
||||||
|
throw std::runtime_error("inplace_less_serial: vector size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < n; ++i){
|
||||||
|
if (v[i] > p[i]){
|
||||||
|
v[i] = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
v[i] = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// ---------------- Greater - Matrices ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_serial(utils::Matrix<T>& A, const T c) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_less_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) > c){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_rowwise_serial(utils::Matrix<T>& A, const utils::Vector<T>& v) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_less_rowwise_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rows != v.size()){
|
||||||
|
throw std::runtime_error("inplace_less_rowwise_serial: Matrix-Vector size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) > v[i]){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_colwise_serial(utils::Matrix<T>& A, const utils::Vector<T>& v) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_less_colwise_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cols != v.size()){
|
||||||
|
throw std::runtime_error("inplace_less_colwise_serial: Matrix-Vector size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) > v[j]){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_serial(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_less_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rows != B.rows() || cols != B.cols()){
|
||||||
|
throw std::runtime_error("inplace_less_serial: Matrix size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) > B(i,j)){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ---------------- Less or Equal - Vectors ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_equal_serial(utils::Vector<T>& v, const T c) {
|
||||||
|
const uint64_t n = v.size();
|
||||||
|
|
||||||
|
if (n == 0){
|
||||||
|
throw std::runtime_error("inplace_less_equal_serial: empty vector");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < n; ++i){
|
||||||
|
if (v[i] >= c){
|
||||||
|
v[i] = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
v[i] = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_equal_serial(utils::Vector<T>& v, const utils::Vector<T>& p) {
|
||||||
|
const uint64_t n = v.size();
|
||||||
|
const uint64_t m = p.size();
|
||||||
|
|
||||||
|
if (n == 0){
|
||||||
|
throw std::runtime_error("inplace_less_equal_serial: empty vector");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (n != m){
|
||||||
|
throw std::runtime_error("inplace_less_equal_serial: vector size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < n; ++i){
|
||||||
|
if (v[i] >= p[i]){
|
||||||
|
v[i] = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
v[i] = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// ---------------- Greater - Matrices ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_equal_serial(utils::Matrix<T>& A, const T c) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_less_equal_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) >= c){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_equal_rowwise_serial(utils::Matrix<T>& A, const utils::Vector<T>& v) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_less_equal_rowwise_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rows != v.size()){
|
||||||
|
throw std::runtime_error("inplace_less_equal_rowwise_serial: Matrix-Vector size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) >= v[i]){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_equal_colwise_serial(utils::Matrix<T>& A, const utils::Vector<T>& v) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_less_equal_colwise_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cols != v.size()){
|
||||||
|
throw std::runtime_error("inplace_less_equal_colwise_serial: Matrix-Vector size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) >= v[j]){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_equal_serial(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
|
||||||
|
if (rows == 0 || cols == 0){
|
||||||
|
throw std::runtime_error("inplace_less_equal_serial: empty matrix");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rows != B.rows() || cols != B.cols()){
|
||||||
|
throw std::runtime_error("inplace_less_equal_serial: Matrix size mismatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
if (A(i,j) >= B(i,j)){
|
||||||
|
A(i,j) = T{0};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
A(i,j) = T{1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} // namespace numerics
|
||||||
|
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint> //uint64_t
|
||||||
|
#include <cmath> // std::abs
|
||||||
|
|
||||||
|
#include "utils/vector.h"
|
||||||
|
#include "utils/matrix.h"
|
||||||
|
|
||||||
|
namespace numerics::detail{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void inplace_sign_serial(T& c) {
|
||||||
|
if (c < T{0}){
|
||||||
|
c = T{-1};
|
||||||
|
}
|
||||||
|
else if(c > T{0}){
|
||||||
|
c = T{1};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
c = T{0};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void inplace_sign_serial(utils::Vector<T>& v) {
|
||||||
|
const uint64_t n = v.size();
|
||||||
|
for (uint64_t i = 0; i < n; ++i){
|
||||||
|
inplace_sign_serial(v[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void inplace_sign_serial(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){
|
||||||
|
inplace_sign_serial(A(i,j));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} // namespace numerics
|
||||||
|
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint> //uint64_t
|
||||||
|
#include <cmath> // std::abs
|
||||||
|
|
||||||
|
#include "utils/vector.h"
|
||||||
|
#include "utils/matrix.h"
|
||||||
|
|
||||||
|
#include "numerics/mean.h"
|
||||||
|
|
||||||
|
namespace numerics::detail{
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline T standard_deviation_serial(const utils::Vector<T>& v) {
|
||||||
|
const uint64_t n = v.size();
|
||||||
|
|
||||||
|
if (n == 0){
|
||||||
|
throw std::runtime_error("std_serial: empty vector");
|
||||||
|
}
|
||||||
|
|
||||||
|
const T mean_value = numerics::mean(v);
|
||||||
|
|
||||||
|
T sum_squared_diff = T{0};
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < n; ++i){
|
||||||
|
const T diff = v[i] - mean_value;
|
||||||
|
sum_squared_diff += diff * diff;
|
||||||
|
}
|
||||||
|
|
||||||
|
const T variance = sum_squared_diff / static_cast<T>(n);
|
||||||
|
|
||||||
|
return numerics::sqrt(variance);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline T standard_deviation_serial(const utils::Matrix<T>& A) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
|
||||||
|
const T mean_value = numerics::mean(A);
|
||||||
|
|
||||||
|
T sum_squared_diff = T{0};
|
||||||
|
|
||||||
|
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
const T diff = A(i,j) - mean_value;
|
||||||
|
sum_squared_diff += diff * diff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const T variance = sum_squared_diff / static_cast<T>(rows*cols);
|
||||||
|
|
||||||
|
return numerics::sqrt(variance);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} // namespace numerics
|
||||||
|
|
||||||
@@ -0,0 +1,316 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "./core/omp_config.h"
|
||||||
|
#include "detail/greater_or_less_serial.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace numerics{
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ---------------- Greater - Vectors ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater(utils::Vector<T>& v, const T c) {
|
||||||
|
detail::inplace_greater_serial(v, c);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Vector<T> greater(const utils::Vector<T>& v, const T c) {
|
||||||
|
utils::Vector<T> out = v;
|
||||||
|
inplace_greater(out, c);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater(utils::Vector<T>& v, const utils::Vector<T>& p) {
|
||||||
|
detail::inplace_greater_serial(v, p);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Vector<T> greater(const utils::Vector<T>& v, const utils::Vector<T>& p) {
|
||||||
|
utils::Vector<T> out = v;
|
||||||
|
inplace_greater(out, p);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ---------------- Greater - Matrices ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater(utils::Matrix<T>& A, const T c) {
|
||||||
|
detail::inplace_greater_serial(A, c);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> greater(const utils::Matrix<T>& A, const T c) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_greater(out, c);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_rowwise(utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
detail::inplace_greater_rowwise_serial(A, v);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> greater_rowwise(const utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_greater_rowwise(out, v);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_colwise(utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
detail::inplace_greater_colwise_serial(A, v);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> greater_colwise(const utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_greater_colwise(out, v);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater(utils::Matrix<T>& A, const utils::Matrix<T> B) {
|
||||||
|
detail::inplace_greater_serial(A, B);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> greater(const utils::Matrix<T>& A, const utils::Matrix<T> B) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_greater(out, B);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ---------------- Greater or Equal - Vectors ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_equal(utils::Vector<T>& v, const T c) {
|
||||||
|
detail::inplace_greater_equal_serial(v, c);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Vector<T> greater_equal(const utils::Vector<T>& v, const T c) {
|
||||||
|
utils::Vector<T> out = v;
|
||||||
|
inplace_greater_equal(out, c);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_equal(utils::Vector<T>& v, const utils::Vector<T>& p) {
|
||||||
|
detail::inplace_greater_equal_serial(v, p);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Vector<T> greater_equal(const utils::Vector<T>& v, const utils::Vector<T>& p) {
|
||||||
|
utils::Vector<T> out = v;
|
||||||
|
inplace_greater_equal(out, p);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ---------------- Greater or Equal - Matrices ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_equal(utils::Matrix<T>& A, const T c) {
|
||||||
|
detail::inplace_greater_equal_serial(A, c);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> greater_equal(const utils::Matrix<T>& A, const T c) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_greater_equal(out, c);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_equal_rowwise(utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
detail::inplace_greater_equal_rowwise_serial(A, v);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> greater_equal_rowwise(const utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_greater_equal_rowwise(out, v);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_equal_colwise(utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
detail::inplace_greater_equal_colwise_serial(A, v);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> greater_equal_colwise(const utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_greater_equal_colwise(out, v);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_equal(utils::Matrix<T>& A, const utils::Matrix<T> B) {
|
||||||
|
detail::inplace_greater_equal_serial(A, B);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> greater_euqal(const utils::Matrix<T>& A, const utils::Matrix<T> B) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_greater_equal(out, B);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ---------------- Less - Vectors ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less(utils::Vector<T>& v, const T c) {
|
||||||
|
detail::inplace_less_serial(v, c);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Vector<T> less(const utils::Vector<T>& v, const T c) {
|
||||||
|
utils::Vector<T> out = v;
|
||||||
|
inplace_less(out, c);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less(utils::Vector<T>& v, const utils::Vector<T>& p) {
|
||||||
|
detail::inplace_less_serial(v, p);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Vector<T> less(const utils::Vector<T>& v, const utils::Vector<T>& p) {
|
||||||
|
utils::Vector<T> out = v;
|
||||||
|
inplace_less(out, p);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ---------------- Less - Matrices ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less(utils::Matrix<T>& A, const T c) {
|
||||||
|
detail::inplace_less_serial(A, c);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> less(const utils::Matrix<T>& A, const T c) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_less(out, c);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_rowwise(utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
detail::inplace_less_rowwise_serial(A, v);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> less_rowwise(const utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_less_rowwise(out, v);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_colwise(utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
detail::inplace_less_colwise_serial(A, v);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> less_colwise(const utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_less_colwise(out, v);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less(utils::Matrix<T>& A, const utils::Matrix<T> B) {
|
||||||
|
detail::inplace_less_serial(A, B);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> less(const utils::Matrix<T>& A, const utils::Matrix<T> B) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_less(out, B);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ---------------- Less or Equal - Vectors ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_equal(utils::Vector<T>& v, const T c) {
|
||||||
|
detail::inplace_less_equal_serial(v, c);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Vector<T> less_equal(const utils::Vector<T>& v, const T c) {
|
||||||
|
utils::Vector<T> out = v;
|
||||||
|
inplace_less_equal(out, c);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_equal(utils::Vector<T>& v, const utils::Vector<T>& p) {
|
||||||
|
detail::inplace_less_equal_serial(v, p);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Vector<T> less_equal(const utils::Vector<T>& v, const utils::Vector<T>& p) {
|
||||||
|
utils::Vector<T> out = v;
|
||||||
|
inplace_less_equal(out, p);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ---------------- Less or Equal - Matrices ----------------
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_equal(utils::Matrix<T>& A, const T c) {
|
||||||
|
detail::inplace_less_equal_serial(A, c);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> less_equal(const utils::Matrix<T>& A, const T c) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_less_equal(out, c);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_equal_rowwise(utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
detail::inplace_less_equal_rowwise_serial(A, v);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> less_equal_rowwise(const utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_less_equal_rowwise(out, v);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_equal_colwise(utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
detail::inplace_less_equal_colwise_serial(A, v);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> less_equal_colwise(const utils::Matrix<T>& A, const utils::Vector<T> v) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_less_equal_colwise(out, v);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_less_equal(utils::Matrix<T>& A, const utils::Matrix<T> B) {
|
||||||
|
detail::inplace_less_equal_serial(A, B);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> less_euqal(const utils::Matrix<T>& A, const utils::Matrix<T> B) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_less_equal(out, B);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
#include "./numerics/dot.h"
|
#include "./numerics/dot.h"
|
||||||
#include "./numerics/equal.h"
|
#include "./numerics/equal.h"
|
||||||
#include "./numerics/exp.h"
|
#include "./numerics/exp.h"
|
||||||
|
#include "./numerics/greater_or_less.h"
|
||||||
#include "./numerics/interpolation1d.h" // base
|
#include "./numerics/interpolation1d.h" // base
|
||||||
#include "./numerics/inverse.h"
|
#include "./numerics/inverse.h"
|
||||||
#include "./numerics/isclose.h"
|
#include "./numerics/isclose.h"
|
||||||
@@ -22,7 +23,9 @@
|
|||||||
#include "./numerics/neg.h"
|
#include "./numerics/neg.h"
|
||||||
#include "./numerics/pow.h"
|
#include "./numerics/pow.h"
|
||||||
#include "./numerics/random.h"
|
#include "./numerics/random.h"
|
||||||
|
#include "./numerics/sign.h"
|
||||||
#include "./numerics/sqrt.h"
|
#include "./numerics/sqrt.h"
|
||||||
|
#include "./numerics/standard_deviation.h"
|
||||||
#include "./numerics/sub.h"
|
#include "./numerics/sub.h"
|
||||||
#include "./numerics/sum.h"
|
#include "./numerics/sum.h"
|
||||||
#include "./numerics/transpose.h"
|
#include "./numerics/transpose.h"
|
||||||
|
|||||||
@@ -0,0 +1,51 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "./core/omp_config.h"
|
||||||
|
#include "detail/sign_serial.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace numerics{
|
||||||
|
|
||||||
|
// ---------------- Elementwise ----------------
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_sign(T& c) {
|
||||||
|
detail::inplace_sign_serial(c);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline T sign(const T c) {
|
||||||
|
T out = c;
|
||||||
|
inplace_sign(out);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_sign(utils::Vector<T>& v) {
|
||||||
|
detail::inplace_sign_serial(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Vector<T> sign(const utils::Vector<T>& v) {
|
||||||
|
utils::Vector<T> out = v;
|
||||||
|
inplace_sign(out);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_sign(utils::Matrix<T>& A) {
|
||||||
|
detail::inplace_sign_serial(A);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> sign(const utils::Matrix<T>& A) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_sign(out);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "./core/omp_config.h"
|
||||||
|
#include "detail/standard_deviation_serial.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace numerics{
|
||||||
|
|
||||||
|
// ---------------- Elementwise ----------------
|
||||||
|
template <typename T>
|
||||||
|
inline T standard_deviation(const utils::Vector<T>& v) {
|
||||||
|
return detail::standard_deviation_serial(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline T standard_deviation(const utils::Matrix<T>& A){
|
||||||
|
return detail::standard_deviation_serial(A);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "random/engine.h"
|
||||||
|
|
||||||
|
#include <random>
|
||||||
|
//#include <type_traits>
|
||||||
|
|
||||||
|
#include "utils/matrix.h"
|
||||||
|
#include "utils/vector.h"
|
||||||
|
|
||||||
|
namespace rng::detail {
|
||||||
|
|
||||||
|
//
|
||||||
|
// Base functions int
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
typename std::enable_if<std::is_integral<T>::value, T>::type
|
||||||
|
normal_serial(const T mean, const T stddev) {
|
||||||
|
std::normal_distribution<T> dist(mean, stddev);
|
||||||
|
return dist(rng::engine());
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Base functions float
|
||||||
|
//
|
||||||
|
template <typename T>
|
||||||
|
typename std::enable_if<std::is_floating_point<T>::value, T>::type
|
||||||
|
normal_serial(const T mean, const T stddev) {
|
||||||
|
std::normal_distribution<T> dist(mean, stddev);
|
||||||
|
return dist(rng::engine());
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
utils::Vector<T> normal_serial(const uint64_t size, const T mean, const T stddev){
|
||||||
|
utils::Vector<T> v(size);
|
||||||
|
for (uint64_t i = 0; i < size; ++i){
|
||||||
|
v[i] = normal_serial(mean, stddev);
|
||||||
|
}
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
utils::Matrix<T> normal_serial(const uint64_t rows, const uint64_t cols, const T mean, const T stddev){
|
||||||
|
utils::Matrix<T> A(rows, cols);
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
A(i,j) = normal_serial(mean, stddev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return A;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
|
#include "detail/normal_serial.h"
|
||||||
|
|
||||||
|
namespace rng {
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T normal(const T mean, const T stddev) {
|
||||||
|
return rng::detail::normal_serial(mean, stddev);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
utils::Vector<T> normal(const uint64_t size, const T mean, const T stddev) {
|
||||||
|
return rng::detail::normal_serial(size, mean, stddev);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
utils::Matrix<T> normal(const uint64_t rows, const uint64_t cols, const T mean, const T stddev) {
|
||||||
|
return rng::detail::normal_serial(rows, cols, mean, stddev);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -7,5 +7,6 @@
|
|||||||
|
|
||||||
#include "uniform.h"
|
#include "uniform.h"
|
||||||
#include "binomial.h"
|
#include "binomial.h"
|
||||||
|
#include "normal.h"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user