From 64adaa9be151fe21ff22fedef6d063e9099c3d3a Mon Sep 17 00:00:00 2001 From: TinyAtoms Date: Wed, 5 Feb 2020 13:56:39 -0300 Subject: [PATCH] works --- CMakeLists.txt | 2 +- cmake-build-debug/CMakeCache.txt | 376 ---------- .../CMakeFiles/3.15.5/CMakeCCompiler.cmake | 76 -- .../CMakeFiles/3.15.5/CMakeCXXCompiler.cmake | 79 --- .../3.15.5/CMakeDetermineCompilerABI_C.bin | Bin 16408 -> 0 bytes .../3.15.5/CMakeDetermineCompilerABI_CXX.bin | Bin 16424 -> 0 bytes .../CMakeFiles/3.15.5/CMakeSystem.cmake | 15 - .../3.15.5/CompilerIdC/CMakeCCompilerId.c | 665 ------------------ .../CMakeFiles/3.15.5/CompilerIdC/a.out | Bin 16568 -> 0 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 644 ----------------- .../CMakeFiles/3.15.5/CompilerIdCXX/a.out | Bin 16576 -> 0 bytes .../CMakeDirectoryInformation.cmake | 16 - cmake-build-debug/CMakeFiles/Makefile.cmake | 126 ---- cmake-build-debug/CMakeFiles/Makefile2 | 111 --- .../CMakeFiles/TargetDirectories.txt | 3 - .../another_studproject.dir/CXX.includecache | 28 - .../another_studproject.dir/DependInfo.cmake | 20 - .../another_studproject.dir/build.make | 98 --- .../another_studproject.dir/cmake_clean.cmake | 10 - .../another_studproject.dir/depend.internal | 5 - .../another_studproject.dir/depend.make | 5 - .../another_studproject.dir/flags.make | 10 - .../another_studproject.dir/link.txt | 1 - .../another_studproject.dir/progress.make | 3 - .../CMakeFiles/clion-environment.txt | Bin 110 -> 0 bytes cmake-build-debug/CMakeFiles/clion-log.txt | 18 - .../CMakeFiles/cmake.check_cache | 1 - cmake-build-debug/CMakeFiles/progress.marks | 1 - cmake-build-debug/Makefile | 178 ----- cmake-build-debug/another_studproject | Bin 254272 -> 0 bytes cmake-build-debug/another_studproject.cbp | 90 --- cmake-build-debug/cmake_install.cmake | 49 -- main.cpp | 11 +- results.csv | 160 ----- src/generator.cpp | 11 +- src/includes/aggregate_tests.h | 145 ++-- src/includes/generator.h | 6 +- src/includes/tests.h | 454 +++++------- 38 files changed, 234 insertions(+), 3183 deletions(-) delete mode 100644 cmake-build-debug/CMakeCache.txt delete mode 100644 cmake-build-debug/CMakeFiles/3.15.5/CMakeCCompiler.cmake delete mode 100644 cmake-build-debug/CMakeFiles/3.15.5/CMakeCXXCompiler.cmake delete mode 100755 cmake-build-debug/CMakeFiles/3.15.5/CMakeDetermineCompilerABI_C.bin delete mode 100755 cmake-build-debug/CMakeFiles/3.15.5/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 cmake-build-debug/CMakeFiles/3.15.5/CMakeSystem.cmake delete mode 100644 cmake-build-debug/CMakeFiles/3.15.5/CompilerIdC/CMakeCCompilerId.c delete mode 100755 cmake-build-debug/CMakeFiles/3.15.5/CompilerIdC/a.out delete mode 100644 cmake-build-debug/CMakeFiles/3.15.5/CompilerIdCXX/CMakeCXXCompilerId.cpp delete mode 100755 cmake-build-debug/CMakeFiles/3.15.5/CompilerIdCXX/a.out delete mode 100644 cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake delete mode 100644 cmake-build-debug/CMakeFiles/Makefile.cmake delete mode 100644 cmake-build-debug/CMakeFiles/Makefile2 delete mode 100644 cmake-build-debug/CMakeFiles/TargetDirectories.txt delete mode 100644 cmake-build-debug/CMakeFiles/another_studproject.dir/CXX.includecache delete mode 100644 cmake-build-debug/CMakeFiles/another_studproject.dir/DependInfo.cmake delete mode 100644 cmake-build-debug/CMakeFiles/another_studproject.dir/build.make delete mode 100644 cmake-build-debug/CMakeFiles/another_studproject.dir/cmake_clean.cmake delete mode 100644 cmake-build-debug/CMakeFiles/another_studproject.dir/depend.internal delete mode 100644 cmake-build-debug/CMakeFiles/another_studproject.dir/depend.make delete mode 100644 cmake-build-debug/CMakeFiles/another_studproject.dir/flags.make delete mode 100644 cmake-build-debug/CMakeFiles/another_studproject.dir/link.txt delete mode 100644 cmake-build-debug/CMakeFiles/another_studproject.dir/progress.make delete mode 100644 cmake-build-debug/CMakeFiles/clion-environment.txt delete mode 100644 cmake-build-debug/CMakeFiles/clion-log.txt delete mode 100644 cmake-build-debug/CMakeFiles/cmake.check_cache delete mode 100644 cmake-build-debug/CMakeFiles/progress.marks delete mode 100644 cmake-build-debug/Makefile delete mode 100755 cmake-build-debug/another_studproject delete mode 100644 cmake-build-debug/another_studproject.cbp delete mode 100644 cmake-build-debug/cmake_install.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 3bdca81..2e8fb68 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.15) project(another_studproject) set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_FLAGS "-O3 -flto=thin -march=native") +# set(CMAKE_CXX_FLAGS "-O3 -flto=thin -march=native") add_executable(another_studproject ./src/includes/generator.h ./src/generator.cpp diff --git a/cmake-build-debug/CMakeCache.txt b/cmake-build-debug/CMakeCache.txt deleted file mode 100644 index c757f2f..0000000 --- a/cmake-build-debug/CMakeCache.txt +++ /dev/null @@ -1,376 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug -# It was generated by CMake: /usr/bin/cmake -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//Path to a program. -CMAKE_AR:FILEPATH=/usr/bin/ar - -//Choose the type of build, options are: None Debug Release RelWithDebInfo -// MinSizeRel ... -CMAKE_BUILD_TYPE:STRING=Debug - -//Id string of the compiler for the CodeBlocks IDE. Automatically -// detected when left empty -CMAKE_CODEBLOCKS_COMPILER_ID:STRING= - -//The CodeBlocks executable -CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND - -//Additional command line arguments when CodeBlocks invokes make. -// Enter e.g. -j to get parallel builds -CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=-j4 - -//Enable/Disable color output during build. -CMAKE_COLOR_MAKEFILE:BOOL=ON - -//No help, variable specified on the command line. -CMAKE_CXX_COMPILER:UNINITIALIZED=/usr/bin/clang++ - -//LLVM archiver -CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/llvm-ar - -//Generate index for LLVM archive -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/llvm-ranlib - -//Flags used by the CXX compiler during all build types. -CMAKE_CXX_FLAGS:STRING= - -//Flags used by the CXX compiler during DEBUG builds. -CMAKE_CXX_FLAGS_DEBUG:STRING=-g - -//Flags used by the CXX compiler during MINSIZEREL builds. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the CXX compiler during RELEASE builds. -CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG - -//Flags used by the CXX compiler during RELWITHDEBINFO builds. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//No help, variable specified on the command line. -CMAKE_C_COMPILER:UNINITIALIZED=/usr/bin/clang - -//LLVM archiver -CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/llvm-ar - -//Generate index for LLVM archive -CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/llvm-ranlib - -//Flags used by the C compiler during all build types. -CMAKE_C_FLAGS:STRING= - -//Flags used by the C compiler during DEBUG builds. -CMAKE_C_FLAGS_DEBUG:STRING=-g - -//Flags used by the C compiler during MINSIZEREL builds. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the C compiler during RELEASE builds. -CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG - -//Flags used by the C compiler during RELWITHDEBINFO builds. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Flags used by the linker during all build types. -CMAKE_EXE_LINKER_FLAGS:STRING= - -//Flags used by the linker during DEBUG builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during MINSIZEREL builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during RELEASE builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during RELWITHDEBINFO builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Enable/Disable output of compile commands during generation. -CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//Path to a program. -CMAKE_LINKER:FILEPATH=/usr/bin/ld - -//Path to a program. -CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make - -//Flags used by the linker during the creation of modules during -// all build types. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of modules during -// DEBUG builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of modules during -// MINSIZEREL builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of modules during -// RELEASE builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of modules during -// RELWITHDEBINFO builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=/usr/bin/nm - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump - -//Value Computed by CMake -CMAKE_PROJECT_DESCRIPTION:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_HOMEPAGE_URL:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=another_studproject - -//Path to a program. -CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib - -//Flags used by the linker during the creation of shared libraries -// during all build types. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of shared libraries -// during DEBUG builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of shared libraries -// during MINSIZEREL builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELEASE builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELWITHDEBINFO builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries -// during all build types. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of static libraries -// during DEBUG builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of static libraries -// during MINSIZEREL builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELEASE builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELWITHDEBINFO builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_STRIP:FILEPATH=/usr/bin/strip - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Path to a program. -ProcessorCount_cmd_nproc:FILEPATH=/usr/bin/nproc - -//Path to a program. -ProcessorCount_cmd_sysctl:FILEPATH=/usr/bin/sysctl - -//Value Computed by CMake -another_studproject_BINARY_DIR:STATIC=/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug - -//Value Computed by CMake -another_studproject_SOURCE_DIR:STATIC=/home/massiveatoms/Desktop/studieproject/homebrew - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=15 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=5 -//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE -CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/usr/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest -//ADVANCED property for variable: CMAKE_CXX_COMPILER -CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR -CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB -CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER -CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//Executable file format -CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS -CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks -//CXX compiler system defined macros -CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__llvm__;1;__clang__;1;__clang_major__;9;__clang_minor__;0;__clang_patchlevel__;0;__clang_version__;"9.0.0 (tags/RELEASE_900/final)";__GNUC_MINOR__;2;__GNUC_PATCHLEVEL__;1;__GNUC__;4;__GXX_ABI_VERSION;1002;__ATOMIC_RELAXED;0;__ATOMIC_CONSUME;1;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_SEQ_CST;5;__OPENCL_MEMORY_SCOPE_WORK_ITEM;0;__OPENCL_MEMORY_SCOPE_WORK_GROUP;1;__OPENCL_MEMORY_SCOPE_DEVICE;2;__OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES;3;__OPENCL_MEMORY_SCOPE_SUB_GROUP;4;__PRAGMA_REDEFINE_EXTNAME;1;__VERSION__;"Clang 9.0.0 (tags/RELEASE_900/final)";__OBJC_BOOL_IS_BOOL;0;__CONSTANT_CFSTRINGS__;1;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__LITTLE_ENDIAN__;1;_LP64;1;__LP64__;1;__CHAR_BIT__;8;__SCHAR_MAX__;127;__SHRT_MAX__;32767;__INT_MAX__;2147483647;__LONG_MAX__;9223372036854775807L;__LONG_LONG_MAX__;9223372036854775807LL;__WCHAR_MAX__;2147483647;__WINT_MAX__;4294967295U;__INTMAX_MAX__;9223372036854775807L;__SIZE_MAX__;18446744073709551615UL;__UINTMAX_MAX__;18446744073709551615UL;__PTRDIFF_MAX__;9223372036854775807L;__INTPTR_MAX__;9223372036854775807L;__UINTPTR_MAX__;18446744073709551615UL;__SIZEOF_DOUBLE__;8;__SIZEOF_FLOAT__;4;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_LONG_LONG__;8;__SIZEOF_POINTER__;8;__SIZEOF_SHORT__;2;__SIZEOF_PTRDIFF_T__;8;__SIZEOF_SIZE_T__;8;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_INT128__;16;__INTMAX_TYPE__;long int;__INTMAX_FMTd__;"ld";__INTMAX_FMTi__;"li";__INTMAX_C_SUFFIX__;L;__UINTMAX_TYPE__;long unsigned int;__UINTMAX_FMTo__;"lo";__UINTMAX_FMTu__;"lu";__UINTMAX_FMTx__;"lx";__UINTMAX_FMTX__;"lX";__UINTMAX_C_SUFFIX__;UL;__INTMAX_WIDTH__;64;__PTRDIFF_TYPE__;long int;__PTRDIFF_FMTd__;"ld";__PTRDIFF_FMTi__;"li";__PTRDIFF_WIDTH__;64;__INTPTR_TYPE__;long int;__INTPTR_FMTd__;"ld";__INTPTR_FMTi__;"li";__INTPTR_WIDTH__;64;__SIZE_TYPE__;long unsigned int;__SIZE_FMTo__;"lo";__SIZE_FMTu__;"lu";__SIZE_FMTx__;"lx";__SIZE_FMTX__;"lX";__SIZE_WIDTH__;64;__WCHAR_TYPE__;int;__WCHAR_WIDTH__;32;__WINT_TYPE__;unsigned int;__WINT_WIDTH__;32;__SIG_ATOMIC_WIDTH__;32;__SIG_ATOMIC_MAX__;2147483647;__CHAR16_TYPE__;unsigned short;__CHAR32_TYPE__;unsigned int;__UINTMAX_WIDTH__;64;__UINTPTR_TYPE__;long unsigned int;__UINTPTR_FMTo__;"lo";__UINTPTR_FMTu__;"lu";__UINTPTR_FMTx__;"lx";__UINTPTR_FMTX__;"lX";__UINTPTR_WIDTH__;64;__FLT_DENORM_MIN__;1.40129846e-45F;__FLT_HAS_DENORM__;1;__FLT_DIG__;6;__FLT_DECIMAL_DIG__;9;__FLT_EPSILON__;1.19209290e-7F;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__FLT_MANT_DIG__;24;__FLT_MAX_10_EXP__;38;__FLT_MAX_EXP__;128;__FLT_MAX__;3.40282347e+38F;__FLT_MIN_10_EXP__;(-37);__FLT_MIN_EXP__;(-125);__FLT_MIN__;1.17549435e-38F;__DBL_DENORM_MIN__;4.9406564584124654e-324;__DBL_HAS_DENORM__;1;__DBL_DIG__;15;__DBL_DECIMAL_DIG__;17;__DBL_EPSILON__;2.2204460492503131e-16;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_MAX_10_EXP__;308;__DBL_MAX_EXP__;1024;__DBL_MAX__;1.7976931348623157e+308;__DBL_MIN_10_EXP__;(-307);__DBL_MIN_EXP__;(-1021);__DBL_MIN__;2.2250738585072014e-308;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_DIG__;18;__LDBL_DECIMAL_DIG__;21;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_MAX_10_EXP__;4932;__LDBL_MAX_EXP__;16384;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN_10_EXP__;(-4931);__LDBL_MIN_EXP__;(-16381);__LDBL_MIN__;3.36210314311209350626e-4932L;__POINTER_WIDTH__;64;__BIGGEST_ALIGNMENT__;16;__WINT_UNSIGNED__;1;__INT8_TYPE__;signed char;__INT8_FMTd__;"hhd";__INT8_FMTi__;"hhi";__INT8_C_SUFFIX__; ;__INT16_TYPE__;short;__INT16_FMTd__;"hd";__INT16_FMTi__;"hi";__INT16_C_SUFFIX__; ;__INT32_TYPE__;int;__INT32_FMTd__;"d";__INT32_FMTi__;"i";__INT32_C_SUFFIX__; ;__INT64_TYPE__;long int;__INT64_FMTd__;"ld";__INT64_FMTi__;"li";__INT64_C_SUFFIX__;L;__UINT8_TYPE__;unsigned char;__UINT8_FMTo__;"hho";__UINT8_FMTu__;"hhu";__UINT8_FMTx__;"hhx";__UINT8_FMTX__;"hhX";__UINT8_C_SUFFIX__; ;__UINT8_MAX__;255;__INT8_MAX__;127;__UINT16_TYPE__;unsigned short;__UINT16_FMTo__;"ho";__UINT16_FMTu__;"hu";__UINT16_FMTx__;"hx";__UINT16_FMTX__;"hX";__UINT16_C_SUFFIX__; ;__UINT16_MAX__;65535;__INT16_MAX__;32767;__UINT32_TYPE__;unsigned int;__UINT32_FMTo__;"o";__UINT32_FMTu__;"u";__UINT32_FMTx__;"x";__UINT32_FMTX__;"X";__UINT32_C_SUFFIX__;U;__UINT32_MAX__;4294967295U;__INT32_MAX__;2147483647;__UINT64_TYPE__;long unsigned int;__UINT64_FMTo__;"lo";__UINT64_FMTu__;"lu";__UINT64_FMTx__;"lx";__UINT64_FMTX__;"lX";__UINT64_C_SUFFIX__;UL;__UINT64_MAX__;18446744073709551615UL;__INT64_MAX__;9223372036854775807L;__INT_LEAST8_TYPE__;signed char;__INT_LEAST8_MAX__;127;__INT_LEAST8_FMTd__;"hhd";__INT_LEAST8_FMTi__;"hhi";__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST8_MAX__;255;__UINT_LEAST8_FMTo__;"hho";__UINT_LEAST8_FMTu__;"hhu";__UINT_LEAST8_FMTx__;"hhx";__UINT_LEAST8_FMTX__;"hhX";__INT_LEAST16_TYPE__;short;__INT_LEAST16_MAX__;32767;__INT_LEAST16_FMTd__;"hd";__INT_LEAST16_FMTi__;"hi";__UINT_LEAST16_TYPE__;unsigned short;__UINT_LEAST16_MAX__;65535;__UINT_LEAST16_FMTo__;"ho";__UINT_LEAST16_FMTu__;"hu";__UINT_LEAST16_FMTx__;"hx";__UINT_LEAST16_FMTX__;"hX";__INT_LEAST32_TYPE__;int;__INT_LEAST32_MAX__;2147483647;__INT_LEAST32_FMTd__;"d";__INT_LEAST32_FMTi__;"i";__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST32_MAX__;4294967295U;__UINT_LEAST32_FMTo__;"o";__UINT_LEAST32_FMTu__;"u";__UINT_LEAST32_FMTx__;"x";__UINT_LEAST32_FMTX__;"X";__INT_LEAST64_TYPE__;long int;__INT_LEAST64_MAX__;9223372036854775807L;__INT_LEAST64_FMTd__;"ld";__INT_LEAST64_FMTi__;"li";__UINT_LEAST64_TYPE__;long unsigned int;__UINT_LEAST64_MAX__;18446744073709551615UL;__UINT_LEAST64_FMTo__;"lo";__UINT_LEAST64_FMTu__;"lu";__UINT_LEAST64_FMTx__;"lx";__UINT_LEAST64_FMTX__;"lX";__INT_FAST8_TYPE__;signed char;__INT_FAST8_MAX__;127;__INT_FAST8_FMTd__;"hhd";__INT_FAST8_FMTi__;"hhi";__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST8_MAX__;255;__UINT_FAST8_FMTo__;"hho";__UINT_FAST8_FMTu__;"hhu";__UINT_FAST8_FMTx__;"hhx";__UINT_FAST8_FMTX__;"hhX";__INT_FAST16_TYPE__;short;__INT_FAST16_MAX__;32767;__INT_FAST16_FMTd__;"hd";__INT_FAST16_FMTi__;"hi";__UINT_FAST16_TYPE__;unsigned short;__UINT_FAST16_MAX__;65535;__UINT_FAST16_FMTo__;"ho";__UINT_FAST16_FMTu__;"hu";__UINT_FAST16_FMTx__;"hx";__UINT_FAST16_FMTX__;"hX";__INT_FAST32_TYPE__;int;__INT_FAST32_MAX__;2147483647;__INT_FAST32_FMTd__;"d";__INT_FAST32_FMTi__;"i";__UINT_FAST32_TYPE__;unsigned int;__UINT_FAST32_MAX__;4294967295U;__UINT_FAST32_FMTo__;"o";__UINT_FAST32_FMTu__;"u";__UINT_FAST32_FMTx__;"x";__UINT_FAST32_FMTX__;"X";__INT_FAST64_TYPE__;long int;__INT_FAST64_MAX__;9223372036854775807L;__INT_FAST64_FMTd__;"ld";__INT_FAST64_FMTi__;"li";__UINT_FAST64_TYPE__;long unsigned int;__UINT_FAST64_MAX__;18446744073709551615UL;__UINT_FAST64_FMTo__;"lo";__UINT_FAST64_FMTu__;"lu";__UINT_FAST64_FMTx__;"lx";__UINT_FAST64_FMTX__;"lX";__USER_LABEL_PREFIX__; ;__FINITE_MATH_ONLY__;0;__GNUC_STDC_INLINE__;1;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__CLANG_ATOMIC_BOOL_LOCK_FREE;2;__CLANG_ATOMIC_CHAR_LOCK_FREE;2;__CLANG_ATOMIC_CHAR16_T_LOCK_FREE;2;__CLANG_ATOMIC_CHAR32_T_LOCK_FREE;2;__CLANG_ATOMIC_WCHAR_T_LOCK_FREE;2;__CLANG_ATOMIC_SHORT_LOCK_FREE;2;__CLANG_ATOMIC_INT_LOCK_FREE;2;__CLANG_ATOMIC_LONG_LOCK_FREE;2;__CLANG_ATOMIC_LLONG_LOCK_FREE;2;__CLANG_ATOMIC_POINTER_LOCK_FREE;2;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__NO_INLINE__;1;__PIC__;2;__pic__;2;__PIE__;2;__pie__;2;__FLT_EVAL_METHOD__;0;__FLT_RADIX__;2;__DECIMAL_DIG__;__LDBL_DECIMAL_DIG__;__SSP_STRONG__;2;__GCC_ASM_FLAG_OUTPUTS__;1;__code_model_small_;1;__amd64__;1;__amd64;1;__x86_64;1;__x86_64__;1;__SEG_GS;1;__SEG_FS;1;__seg_gs;__attribute__((address_space(256)));__seg_fs;__attribute__((address_space(257)));__k8;1;__k8__;1;__tune_k8__;1;__REGISTER_PREFIX__; ;__NO_MATH_INLINES;1;__FXSR__;1;__SSE2__;1;__SSE2_MATH__;1;__SSE__;1;__SSE_MATH__;1;__MMX__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__SIZEOF_FLOAT128__;16;unix;1;__unix;1;__unix__;1;linux;1;__linux;1;__linux__;1;__ELF__;1;__gnu_linux__;1;__FLOAT128__;1;__STDC__;1;__STDC_HOSTED__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__llvm__;1;__clang__;1;__clang_major__;9;__clang_minor__;0;__clang_patchlevel__;0;__clang_version__;"9.0.0 (tags/RELEASE_900/final)";__GNUC_MINOR__;2;__GNUC_PATCHLEVEL__;1;__GNUC__;4;__GXX_ABI_VERSION;1002;__ATOMIC_RELAXED;0;__ATOMIC_CONSUME;1;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_SEQ_CST;5;__OPENCL_MEMORY_SCOPE_WORK_ITEM;0;__OPENCL_MEMORY_SCOPE_WORK_GROUP;1;__OPENCL_MEMORY_SCOPE_DEVICE;2;__OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES;3;__OPENCL_MEMORY_SCOPE_SUB_GROUP;4;__PRAGMA_REDEFINE_EXTNAME;1;__VERSION__;"Clang 9.0.0 (tags/RELEASE_900/final)";__GXX_EXPERIMENTAL_CXX0X__;1;__OBJC_BOOL_IS_BOOL;0;__cpp_rtti;199711L;__cpp_exceptions;199711L;__cpp_unicode_characters;200704L;__cpp_raw_strings;200710L;__cpp_unicode_literals;200710L;__cpp_user_defined_literals;200809L;__cpp_lambdas;200907L;__cpp_constexpr;201304L;__cpp_range_based_for;200907;__cpp_static_assert;200410;__cpp_decltype;200707L;__cpp_attributes;200809L;__cpp_rvalue_references;200610L;__cpp_variadic_templates;200704L;__cpp_initializer_lists;200806L;__cpp_delegating_constructors;200604L;__cpp_nsdmi;200809L;__cpp_inheriting_constructors;201511L;__cpp_ref_qualifiers;200710L;__cpp_alias_templates;200704L;__cpp_threadsafe_static_init;200806L;__cpp_binary_literals;201304L;__cpp_digit_separators;201309L;__cpp_init_captures;201304L;__cpp_generic_lambdas;201304L;__cpp_decltype_auto;201304L;__cpp_return_type_deduction;201304L;__cpp_aggregate_nsdmi;201304L;__cpp_variable_templates;201304L;__cpp_impl_destroying_delete;201806L;__CONSTANT_CFSTRINGS__;1;__EXCEPTIONS;1;__GXX_RTTI;1;__DEPRECATED;1;__GNUG__;4;__GXX_WEAK__;1;__private_extern__;extern;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__LITTLE_ENDIAN__;1;_LP64;1;__LP64__;1;__CHAR_BIT__;8;__SCHAR_MAX__;127;__SHRT_MAX__;32767;__INT_MAX__;2147483647;__LONG_MAX__;9223372036854775807L;__LONG_LONG_MAX__;9223372036854775807LL;__WCHAR_MAX__;2147483647;__WINT_MAX__;4294967295U;__INTMAX_MAX__;9223372036854775807L;__SIZE_MAX__;18446744073709551615UL;__UINTMAX_MAX__;18446744073709551615UL;__PTRDIFF_MAX__;9223372036854775807L;__INTPTR_MAX__;9223372036854775807L;__UINTPTR_MAX__;18446744073709551615UL;__SIZEOF_DOUBLE__;8;__SIZEOF_FLOAT__;4;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_LONG_LONG__;8;__SIZEOF_POINTER__;8;__SIZEOF_SHORT__;2;__SIZEOF_PTRDIFF_T__;8;__SIZEOF_SIZE_T__;8;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_INT128__;16;__INTMAX_TYPE__;long int;__INTMAX_FMTd__;"ld";__INTMAX_FMTi__;"li";__INTMAX_C_SUFFIX__;L;__UINTMAX_TYPE__;long unsigned int;__UINTMAX_FMTo__;"lo";__UINTMAX_FMTu__;"lu";__UINTMAX_FMTx__;"lx";__UINTMAX_FMTX__;"lX";__UINTMAX_C_SUFFIX__;UL;__INTMAX_WIDTH__;64;__PTRDIFF_TYPE__;long int;__PTRDIFF_FMTd__;"ld";__PTRDIFF_FMTi__;"li";__PTRDIFF_WIDTH__;64;__INTPTR_TYPE__;long int;__INTPTR_FMTd__;"ld";__INTPTR_FMTi__;"li";__INTPTR_WIDTH__;64;__SIZE_TYPE__;long unsigned int;__SIZE_FMTo__;"lo";__SIZE_FMTu__;"lu";__SIZE_FMTx__;"lx";__SIZE_FMTX__;"lX";__SIZE_WIDTH__;64;__WCHAR_TYPE__;int;__WCHAR_WIDTH__;32;__WINT_TYPE__;unsigned int;__WINT_WIDTH__;32;__SIG_ATOMIC_WIDTH__;32;__SIG_ATOMIC_MAX__;2147483647;__CHAR16_TYPE__;unsigned short;__CHAR32_TYPE__;unsigned int;__UINTMAX_WIDTH__;64;__UINTPTR_TYPE__;long unsigned int;__UINTPTR_FMTo__;"lo";__UINTPTR_FMTu__;"lu";__UINTPTR_FMTx__;"lx";__UINTPTR_FMTX__;"lX";__UINTPTR_WIDTH__;64;__FLT_DENORM_MIN__;1.40129846e-45F;__FLT_HAS_DENORM__;1;__FLT_DIG__;6;__FLT_DECIMAL_DIG__;9;__FLT_EPSILON__;1.19209290e-7F;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__FLT_MANT_DIG__;24;__FLT_MAX_10_EXP__;38;__FLT_MAX_EXP__;128;__FLT_MAX__;3.40282347e+38F;__FLT_MIN_10_EXP__;(-37);__FLT_MIN_EXP__;(-125);__FLT_MIN__;1.17549435e-38F;__DBL_DENORM_MIN__;4.9406564584124654e-324;__DBL_HAS_DENORM__;1;__DBL_DIG__;15;__DBL_DECIMAL_DIG__;17;__DBL_EPSILON__;2.2204460492503131e-16;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_MAX_10_EXP__;308;__DBL_MAX_EXP__;1024;__DBL_MAX__;1.7976931348623157e+308;__DBL_MIN_10_EXP__;(-307);__DBL_MIN_EXP__;(-1021);__DBL_MIN__;2.2250738585072014e-308;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_DIG__;18;__LDBL_DECIMAL_DIG__;21;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_MAX_10_EXP__;4932;__LDBL_MAX_EXP__;16384;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN_10_EXP__;(-4931);__LDBL_MIN_EXP__;(-16381);__LDBL_MIN__;3.36210314311209350626e-4932L;__POINTER_WIDTH__;64;__BIGGEST_ALIGNMENT__;16;__WINT_UNSIGNED__;1;__INT8_TYPE__;signed char;__INT8_FMTd__;"hhd";__INT8_FMTi__;"hhi";__INT8_C_SUFFIX__; ;__INT16_TYPE__;short;__INT16_FMTd__;"hd";__INT16_FMTi__;"hi";__INT16_C_SUFFIX__; ;__INT32_TYPE__;int;__INT32_FMTd__;"d";__INT32_FMTi__;"i";__INT32_C_SUFFIX__; ;__INT64_TYPE__;long int;__INT64_FMTd__;"ld";__INT64_FMTi__;"li";__INT64_C_SUFFIX__;L;__UINT8_TYPE__;unsigned char;__UINT8_FMTo__;"hho";__UINT8_FMTu__;"hhu";__UINT8_FMTx__;"hhx";__UINT8_FMTX__;"hhX";__UINT8_C_SUFFIX__; ;__UINT8_MAX__;255;__INT8_MAX__;127;__UINT16_TYPE__;unsigned short;__UINT16_FMTo__;"ho";__UINT16_FMTu__;"hu";__UINT16_FMTx__;"hx";__UINT16_FMTX__;"hX";__UINT16_C_SUFFIX__; ;__UINT16_MAX__;65535;__INT16_MAX__;32767;__UINT32_TYPE__;unsigned int;__UINT32_FMTo__;"o";__UINT32_FMTu__;"u";__UINT32_FMTx__;"x";__UINT32_FMTX__;"X";__UINT32_C_SUFFIX__;U;__UINT32_MAX__;4294967295U;__INT32_MAX__;2147483647;__UINT64_TYPE__;long unsigned int;__UINT64_FMTo__;"lo";__UINT64_FMTu__;"lu";__UINT64_FMTx__;"lx";__UINT64_FMTX__;"lX";__UINT64_C_SUFFIX__;UL;__UINT64_MAX__;18446744073709551615UL;__INT64_MAX__;9223372036854775807L;__INT_LEAST8_TYPE__;signed char;__INT_LEAST8_MAX__;127;__INT_LEAST8_FMTd__;"hhd";__INT_LEAST8_FMTi__;"hhi";__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST8_MAX__;255;__UINT_LEAST8_FMTo__;"hho";__UINT_LEAST8_FMTu__;"hhu";__UINT_LEAST8_FMTx__;"hhx";__UINT_LEAST8_FMTX__;"hhX";__INT_LEAST16_TYPE__;short;__INT_LEAST16_MAX__;32767;__INT_LEAST16_FMTd__;"hd";__INT_LEAST16_FMTi__;"hi";__UINT_LEAST16_TYPE__;unsigned short;__UINT_LEAST16_MAX__;65535;__UINT_LEAST16_FMTo__;"ho";__UINT_LEAST16_FMTu__;"hu";__UINT_LEAST16_FMTx__;"hx";__UINT_LEAST16_FMTX__;"hX";__INT_LEAST32_TYPE__;int;__INT_LEAST32_MAX__;2147483647;__INT_LEAST32_FMTd__;"d";__INT_LEAST32_FMTi__;"i";__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST32_MAX__;4294967295U;__UINT_LEAST32_FMTo__;"o";__UINT_LEAST32_FMTu__;"u";__UINT_LEAST32_FMTx__;"x";__UINT_LEAST32_FMTX__;"X";__INT_LEAST64_TYPE__;long int;__INT_LEAST64_MAX__;9223372036854775807L;__INT_LEAST64_FMTd__;"ld";__INT_LEAST64_FMTi__;"li";__UINT_LEAST64_TYPE__;long unsigned int;__UINT_LEAST64_MAX__;18446744073709551615UL;__UINT_LEAST64_FMTo__;"lo";__UINT_LEAST64_FMTu__;"lu";__UINT_LEAST64_FMTx__;"lx";__UINT_LEAST64_FMTX__;"lX";__INT_FAST8_TYPE__;signed char;__INT_FAST8_MAX__;127;__INT_FAST8_FMTd__;"hhd";__INT_FAST8_FMTi__;"hhi";__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST8_MAX__;255;__UINT_FAST8_FMTo__;"hho";__UINT_FAST8_FMTu__;"hhu";__UINT_FAST8_FMTx__;"hhx";__UINT_FAST8_FMTX__;"hhX";__INT_FAST16_TYPE__;short;__INT_FAST16_MAX__;32767;__INT_FAST16_FMTd__;"hd";__INT_FAST16_FMTi__;"hi";__UINT_FAST16_TYPE__;unsigned short;__UINT_FAST16_MAX__;65535;__UINT_FAST16_FMTo__;"ho";__UINT_FAST16_FMTu__;"hu";__UINT_FAST16_FMTx__;"hx";__UINT_FAST16_FMTX__;"hX";__INT_FAST32_TYPE__;int;__INT_FAST32_MAX__;2147483647;__INT_FAST32_FMTd__;"d";__INT_FAST32_FMTi__;"i";__UINT_FAST32_TYPE__;unsigned int;__UINT_FAST32_MAX__;4294967295U;__UINT_FAST32_FMTo__;"o";__UINT_FAST32_FMTu__;"u";__UINT_FAST32_FMTx__;"x";__UINT_FAST32_FMTX__;"X";__INT_FAST64_TYPE__;long int;__INT_FAST64_MAX__;9223372036854775807L;__INT_FAST64_FMTd__;"ld";__INT_FAST64_FMTi__;"li";__UINT_FAST64_TYPE__;long unsigned int;__UINT_FAST64_MAX__;18446744073709551615UL;__UINT_FAST64_FMTo__;"lo";__UINT_FAST64_FMTu__;"lu";__UINT_FAST64_FMTx__;"lx";__UINT_FAST64_FMTX__;"lX";__USER_LABEL_PREFIX__; ;__FINITE_MATH_ONLY__;0;__GNUC_GNU_INLINE__;1;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__CLANG_ATOMIC_BOOL_LOCK_FREE;2;__CLANG_ATOMIC_CHAR_LOCK_FREE;2;__CLANG_ATOMIC_CHAR16_T_LOCK_FREE;2;__CLANG_ATOMIC_CHAR32_T_LOCK_FREE;2;__CLANG_ATOMIC_WCHAR_T_LOCK_FREE;2;__CLANG_ATOMIC_SHORT_LOCK_FREE;2;__CLANG_ATOMIC_INT_LOCK_FREE;2;__CLANG_ATOMIC_LONG_LOCK_FREE;2;__CLANG_ATOMIC_LLONG_LOCK_FREE;2;__CLANG_ATOMIC_POINTER_LOCK_FREE;2;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__NO_INLINE__;1;__PIC__;2;__pic__;2;__PIE__;2;__pie__;2;__FLT_EVAL_METHOD__;0;__FLT_RADIX__;2;__DECIMAL_DIG__;__LDBL_DECIMAL_DIG__;__SSP_STRONG__;2;__GLIBCXX_TYPE_INT_N_0;__int128;__GLIBCXX_BITSIZE_INT_N_0;128;__GCC_ASM_FLAG_OUTPUTS__;1;__code_model_small_;1;__amd64__;1;__amd64;1;__x86_64;1;__x86_64__;1;__SEG_GS;1;__SEG_FS;1;__seg_gs;__attribute__((address_space(256)));__seg_fs;__attribute__((address_space(257)));__k8;1;__k8__;1;__tune_k8__;1;__REGISTER_PREFIX__; ;__NO_MATH_INLINES;1;__FXSR__;1;__SSE2__;1;__SSE2_MATH__;1;__SSE__;1;__SSE_MATH__;1;__MMX__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__SIZEOF_FLOAT128__;16;unix;1;__unix;1;__unix__;1;linux;1;__linux;1;__linux__;1;__ELF__;1;__gnu_linux__;1;_GNU_SOURCE;1;__FLOAT128__;1;__STDC__;1;__STDC_HOSTED__;1;__cplusplus;201402L;__STDCPP_DEFAULT_NEW_ALIGNMENT__;16UL;__STDC_UTF_16__;1;__STDC_UTF_32__;1 -//CXX compiler system include directories -CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0;/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/x86_64-pc-linux-gnu;/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/backward;/usr/local/include;/usr/lib/clang/9.0.0/include;/usr/include -//C compiler system defined macros -CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__llvm__;1;__clang__;1;__clang_major__;9;__clang_minor__;0;__clang_patchlevel__;0;__clang_version__;"9.0.0 (tags/RELEASE_900/final)";__GNUC_MINOR__;2;__GNUC_PATCHLEVEL__;1;__GNUC__;4;__GXX_ABI_VERSION;1002;__ATOMIC_RELAXED;0;__ATOMIC_CONSUME;1;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_SEQ_CST;5;__OPENCL_MEMORY_SCOPE_WORK_ITEM;0;__OPENCL_MEMORY_SCOPE_WORK_GROUP;1;__OPENCL_MEMORY_SCOPE_DEVICE;2;__OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES;3;__OPENCL_MEMORY_SCOPE_SUB_GROUP;4;__PRAGMA_REDEFINE_EXTNAME;1;__VERSION__;"Clang 9.0.0 (tags/RELEASE_900/final)";__OBJC_BOOL_IS_BOOL;0;__CONSTANT_CFSTRINGS__;1;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__LITTLE_ENDIAN__;1;_LP64;1;__LP64__;1;__CHAR_BIT__;8;__SCHAR_MAX__;127;__SHRT_MAX__;32767;__INT_MAX__;2147483647;__LONG_MAX__;9223372036854775807L;__LONG_LONG_MAX__;9223372036854775807LL;__WCHAR_MAX__;2147483647;__WINT_MAX__;4294967295U;__INTMAX_MAX__;9223372036854775807L;__SIZE_MAX__;18446744073709551615UL;__UINTMAX_MAX__;18446744073709551615UL;__PTRDIFF_MAX__;9223372036854775807L;__INTPTR_MAX__;9223372036854775807L;__UINTPTR_MAX__;18446744073709551615UL;__SIZEOF_DOUBLE__;8;__SIZEOF_FLOAT__;4;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_LONG_LONG__;8;__SIZEOF_POINTER__;8;__SIZEOF_SHORT__;2;__SIZEOF_PTRDIFF_T__;8;__SIZEOF_SIZE_T__;8;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_INT128__;16;__INTMAX_TYPE__;long int;__INTMAX_FMTd__;"ld";__INTMAX_FMTi__;"li";__INTMAX_C_SUFFIX__;L;__UINTMAX_TYPE__;long unsigned int;__UINTMAX_FMTo__;"lo";__UINTMAX_FMTu__;"lu";__UINTMAX_FMTx__;"lx";__UINTMAX_FMTX__;"lX";__UINTMAX_C_SUFFIX__;UL;__INTMAX_WIDTH__;64;__PTRDIFF_TYPE__;long int;__PTRDIFF_FMTd__;"ld";__PTRDIFF_FMTi__;"li";__PTRDIFF_WIDTH__;64;__INTPTR_TYPE__;long int;__INTPTR_FMTd__;"ld";__INTPTR_FMTi__;"li";__INTPTR_WIDTH__;64;__SIZE_TYPE__;long unsigned int;__SIZE_FMTo__;"lo";__SIZE_FMTu__;"lu";__SIZE_FMTx__;"lx";__SIZE_FMTX__;"lX";__SIZE_WIDTH__;64;__WCHAR_TYPE__;int;__WCHAR_WIDTH__;32;__WINT_TYPE__;unsigned int;__WINT_WIDTH__;32;__SIG_ATOMIC_WIDTH__;32;__SIG_ATOMIC_MAX__;2147483647;__CHAR16_TYPE__;unsigned short;__CHAR32_TYPE__;unsigned int;__UINTMAX_WIDTH__;64;__UINTPTR_TYPE__;long unsigned int;__UINTPTR_FMTo__;"lo";__UINTPTR_FMTu__;"lu";__UINTPTR_FMTx__;"lx";__UINTPTR_FMTX__;"lX";__UINTPTR_WIDTH__;64;__FLT_DENORM_MIN__;1.40129846e-45F;__FLT_HAS_DENORM__;1;__FLT_DIG__;6;__FLT_DECIMAL_DIG__;9;__FLT_EPSILON__;1.19209290e-7F;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__FLT_MANT_DIG__;24;__FLT_MAX_10_EXP__;38;__FLT_MAX_EXP__;128;__FLT_MAX__;3.40282347e+38F;__FLT_MIN_10_EXP__;(-37);__FLT_MIN_EXP__;(-125);__FLT_MIN__;1.17549435e-38F;__DBL_DENORM_MIN__;4.9406564584124654e-324;__DBL_HAS_DENORM__;1;__DBL_DIG__;15;__DBL_DECIMAL_DIG__;17;__DBL_EPSILON__;2.2204460492503131e-16;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_MAX_10_EXP__;308;__DBL_MAX_EXP__;1024;__DBL_MAX__;1.7976931348623157e+308;__DBL_MIN_10_EXP__;(-307);__DBL_MIN_EXP__;(-1021);__DBL_MIN__;2.2250738585072014e-308;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_DIG__;18;__LDBL_DECIMAL_DIG__;21;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_MAX_10_EXP__;4932;__LDBL_MAX_EXP__;16384;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN_10_EXP__;(-4931);__LDBL_MIN_EXP__;(-16381);__LDBL_MIN__;3.36210314311209350626e-4932L;__POINTER_WIDTH__;64;__BIGGEST_ALIGNMENT__;16;__WINT_UNSIGNED__;1;__INT8_TYPE__;signed char;__INT8_FMTd__;"hhd";__INT8_FMTi__;"hhi";__INT8_C_SUFFIX__; ;__INT16_TYPE__;short;__INT16_FMTd__;"hd";__INT16_FMTi__;"hi";__INT16_C_SUFFIX__; ;__INT32_TYPE__;int;__INT32_FMTd__;"d";__INT32_FMTi__;"i";__INT32_C_SUFFIX__; ;__INT64_TYPE__;long int;__INT64_FMTd__;"ld";__INT64_FMTi__;"li";__INT64_C_SUFFIX__;L;__UINT8_TYPE__;unsigned char;__UINT8_FMTo__;"hho";__UINT8_FMTu__;"hhu";__UINT8_FMTx__;"hhx";__UINT8_FMTX__;"hhX";__UINT8_C_SUFFIX__; ;__UINT8_MAX__;255;__INT8_MAX__;127;__UINT16_TYPE__;unsigned short;__UINT16_FMTo__;"ho";__UINT16_FMTu__;"hu";__UINT16_FMTx__;"hx";__UINT16_FMTX__;"hX";__UINT16_C_SUFFIX__; ;__UINT16_MAX__;65535;__INT16_MAX__;32767;__UINT32_TYPE__;unsigned int;__UINT32_FMTo__;"o";__UINT32_FMTu__;"u";__UINT32_FMTx__;"x";__UINT32_FMTX__;"X";__UINT32_C_SUFFIX__;U;__UINT32_MAX__;4294967295U;__INT32_MAX__;2147483647;__UINT64_TYPE__;long unsigned int;__UINT64_FMTo__;"lo";__UINT64_FMTu__;"lu";__UINT64_FMTx__;"lx";__UINT64_FMTX__;"lX";__UINT64_C_SUFFIX__;UL;__UINT64_MAX__;18446744073709551615UL;__INT64_MAX__;9223372036854775807L;__INT_LEAST8_TYPE__;signed char;__INT_LEAST8_MAX__;127;__INT_LEAST8_FMTd__;"hhd";__INT_LEAST8_FMTi__;"hhi";__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST8_MAX__;255;__UINT_LEAST8_FMTo__;"hho";__UINT_LEAST8_FMTu__;"hhu";__UINT_LEAST8_FMTx__;"hhx";__UINT_LEAST8_FMTX__;"hhX";__INT_LEAST16_TYPE__;short;__INT_LEAST16_MAX__;32767;__INT_LEAST16_FMTd__;"hd";__INT_LEAST16_FMTi__;"hi";__UINT_LEAST16_TYPE__;unsigned short;__UINT_LEAST16_MAX__;65535;__UINT_LEAST16_FMTo__;"ho";__UINT_LEAST16_FMTu__;"hu";__UINT_LEAST16_FMTx__;"hx";__UINT_LEAST16_FMTX__;"hX";__INT_LEAST32_TYPE__;int;__INT_LEAST32_MAX__;2147483647;__INT_LEAST32_FMTd__;"d";__INT_LEAST32_FMTi__;"i";__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST32_MAX__;4294967295U;__UINT_LEAST32_FMTo__;"o";__UINT_LEAST32_FMTu__;"u";__UINT_LEAST32_FMTx__;"x";__UINT_LEAST32_FMTX__;"X";__INT_LEAST64_TYPE__;long int;__INT_LEAST64_MAX__;9223372036854775807L;__INT_LEAST64_FMTd__;"ld";__INT_LEAST64_FMTi__;"li";__UINT_LEAST64_TYPE__;long unsigned int;__UINT_LEAST64_MAX__;18446744073709551615UL;__UINT_LEAST64_FMTo__;"lo";__UINT_LEAST64_FMTu__;"lu";__UINT_LEAST64_FMTx__;"lx";__UINT_LEAST64_FMTX__;"lX";__INT_FAST8_TYPE__;signed char;__INT_FAST8_MAX__;127;__INT_FAST8_FMTd__;"hhd";__INT_FAST8_FMTi__;"hhi";__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST8_MAX__;255;__UINT_FAST8_FMTo__;"hho";__UINT_FAST8_FMTu__;"hhu";__UINT_FAST8_FMTx__;"hhx";__UINT_FAST8_FMTX__;"hhX";__INT_FAST16_TYPE__;short;__INT_FAST16_MAX__;32767;__INT_FAST16_FMTd__;"hd";__INT_FAST16_FMTi__;"hi";__UINT_FAST16_TYPE__;unsigned short;__UINT_FAST16_MAX__;65535;__UINT_FAST16_FMTo__;"ho";__UINT_FAST16_FMTu__;"hu";__UINT_FAST16_FMTx__;"hx";__UINT_FAST16_FMTX__;"hX";__INT_FAST32_TYPE__;int;__INT_FAST32_MAX__;2147483647;__INT_FAST32_FMTd__;"d";__INT_FAST32_FMTi__;"i";__UINT_FAST32_TYPE__;unsigned int;__UINT_FAST32_MAX__;4294967295U;__UINT_FAST32_FMTo__;"o";__UINT_FAST32_FMTu__;"u";__UINT_FAST32_FMTx__;"x";__UINT_FAST32_FMTX__;"X";__INT_FAST64_TYPE__;long int;__INT_FAST64_MAX__;9223372036854775807L;__INT_FAST64_FMTd__;"ld";__INT_FAST64_FMTi__;"li";__UINT_FAST64_TYPE__;long unsigned int;__UINT_FAST64_MAX__;18446744073709551615UL;__UINT_FAST64_FMTo__;"lo";__UINT_FAST64_FMTu__;"lu";__UINT_FAST64_FMTx__;"lx";__UINT_FAST64_FMTX__;"lX";__USER_LABEL_PREFIX__; ;__FINITE_MATH_ONLY__;0;__GNUC_STDC_INLINE__;1;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__CLANG_ATOMIC_BOOL_LOCK_FREE;2;__CLANG_ATOMIC_CHAR_LOCK_FREE;2;__CLANG_ATOMIC_CHAR16_T_LOCK_FREE;2;__CLANG_ATOMIC_CHAR32_T_LOCK_FREE;2;__CLANG_ATOMIC_WCHAR_T_LOCK_FREE;2;__CLANG_ATOMIC_SHORT_LOCK_FREE;2;__CLANG_ATOMIC_INT_LOCK_FREE;2;__CLANG_ATOMIC_LONG_LOCK_FREE;2;__CLANG_ATOMIC_LLONG_LOCK_FREE;2;__CLANG_ATOMIC_POINTER_LOCK_FREE;2;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__NO_INLINE__;1;__PIC__;2;__pic__;2;__PIE__;2;__pie__;2;__FLT_EVAL_METHOD__;0;__FLT_RADIX__;2;__DECIMAL_DIG__;__LDBL_DECIMAL_DIG__;__SSP_STRONG__;2;__GCC_ASM_FLAG_OUTPUTS__;1;__code_model_small_;1;__amd64__;1;__amd64;1;__x86_64;1;__x86_64__;1;__SEG_GS;1;__SEG_FS;1;__seg_gs;__attribute__((address_space(256)));__seg_fs;__attribute__((address_space(257)));__k8;1;__k8__;1;__tune_k8__;1;__REGISTER_PREFIX__; ;__NO_MATH_INLINES;1;__FXSR__;1;__SSE2__;1;__SSE2_MATH__;1;__SSE__;1;__SSE_MATH__;1;__MMX__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__SIZEOF_FLOAT128__;16;unix;1;__unix;1;__unix__;1;linux;1;__linux;1;__linux__;1;__ELF__;1;__gnu_linux__;1;__FLOAT128__;1;__STDC__;1;__STDC_HOSTED__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1 -//C compiler system include directories -CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/local/include;/usr/lib/clang/9.0.0/include;/usr/include -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Unix Makefiles -//Generator instance identifier. -CMAKE_GENERATOR_INSTANCE:INTERNAL= -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/home/massiveatoms/Desktop/studieproject/homebrew -//Install .so files without execute permission. -CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MAKE_PROGRAM -CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.15 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: ProcessorCount_cmd_nproc -ProcessorCount_cmd_nproc-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: ProcessorCount_cmd_sysctl -ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1 - diff --git a/cmake-build-debug/CMakeFiles/3.15.5/CMakeCCompiler.cmake b/cmake-build-debug/CMakeFiles/3.15.5/CMakeCCompiler.cmake deleted file mode 100644 index 57703cb..0000000 --- a/cmake-build-debug/CMakeFiles/3.15.5/CMakeCCompiler.cmake +++ /dev/null @@ -1,76 +0,0 @@ -set(CMAKE_C_COMPILER "/usr/bin/clang") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "Clang") -set(CMAKE_C_COMPILER_VERSION "9.0.0") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") - -set(CMAKE_C_PLATFORM_ID "Linux") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_C_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/usr/bin/ar") -set(CMAKE_C_COMPILER_AR "/usr/bin/llvm-ar") -set(CMAKE_RANLIB "/usr/bin/ranlib") -set(CMAKE_C_COMPILER_RANLIB "/usr/bin/llvm-ranlib") -set(CMAKE_LINKER "/usr/bin/ld") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCC ) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN ) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "8") -set(CMAKE_C_COMPILER_ABI "ELF") -set(CMAKE_C_LIBRARY_ARCHITECTURE "") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/local/include;/usr/lib/clang/9.0.0/include;/usr/include") -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib64/gcc/x86_64-pc-linux-gnu/9.2.0;/usr/lib64;/lib64;/usr/lib;/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cmake-build-debug/CMakeFiles/3.15.5/CMakeCXXCompiler.cmake b/cmake-build-debug/CMakeFiles/3.15.5/CMakeCXXCompiler.cmake deleted file mode 100644 index f1d19b0..0000000 --- a/cmake-build-debug/CMakeFiles/3.15.5/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,79 +0,0 @@ -set(CMAKE_CXX_COMPILER "/usr/bin/clang++") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "Clang") -set(CMAKE_CXX_COMPILER_VERSION "9.0.0") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") -set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") - -set(CMAKE_CXX_PLATFORM_ID "Linux") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/usr/bin/ar") -set(CMAKE_CXX_COMPILER_AR "/usr/bin/llvm-ar") -set(CMAKE_RANLIB "/usr/bin/ranlib") -set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/llvm-ranlib") -set(CMAKE_LINKER "/usr/bin/ld") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCXX ) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN ) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "8") -set(CMAKE_CXX_COMPILER_ABI "ELF") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/9.2.0;/usr/include/c++/9.2.0/x86_64-pc-linux-gnu;/usr/include/c++/9.2.0/backward;/usr/local/include;/usr/lib/clang/9.0.0/include;/usr/include") -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib64/gcc/x86_64-pc-linux-gnu/9.2.0;/usr/lib64;/lib64;/usr/lib;/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cmake-build-debug/CMakeFiles/3.15.5/CMakeDetermineCompilerABI_C.bin b/cmake-build-debug/CMakeFiles/3.15.5/CMakeDetermineCompilerABI_C.bin deleted file mode 100755 index a20a0c3209b2e5fe195c647c9218060332ed375d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16408 zcmeHOZ)_W98GmgzZMwCN+cgkcwBCl0TtpnVO-r(o&W_{sBAm9g2^4kN?P5ELg<}`{ z4C%x~rLYOB3sigqCJlsy_%Mk|d_fvQty(r1e4u<7MPs5u8w3Zsx9;`3>@w~+#jo!V+ZWx=J;%T^w^|5B+f5T%K*1|yvRFA6IR)NEZz1T3m?|K z-7-LiS{vitgzapDPY|ZH!Lu9ScN2bp8+%3kWSNe`$}qAErZH0}nZ?3md1|uCs9I*l zGUm-fNgd6M4X2C)u>-L~${3p%H*)z(ezs7x@|B74RIyyjPngq1_MDwBm&DU>OxqgT z<8jynhXG=b`NMgy?JjI(hLK0O9+1D09nL{%lJCGTO8_n5=z*hs;~@v z6YG{;IOhV&Efr31FY%z3$ zEF0ZlCilNy)R%^?bDX7)7g-FhTHO@7B%!x9Zg%ZG&w;OsB>QjJ_J_X8V&5ITeoMdd z`a}Aa)sP-|UcY|F+C>4<5}>njbEa$W$eKTo@BGjdsa5UZq`o+GKUekoYu0xC!q5?F zG`b`7y_{_{8qat1Q#CMkbtcxe_wzgqb#-Q~-nBQOINtAP$yUZUNugdyzsaWc$5-`w z?bZwF6>jO-^eR#C)38!qKiCxrO|H}@SK5LX(koMRxK4i@Kl$;@($LrFPAK`YvHDBN z$+7zFaGW*`*bFysQX*BdJZ-uPA`(KvvWa@v;)L$Q||1R0s^=p0c zYCs=+rS=CtUuUM04=1ORk0cHEF>!x#5Y(vC-oXRO!88dB(_{wJK-g15*xYP8ZJ5Vu2~Tf!-5(FiHgR zd$N^3H5zm~u2ya}8V{5F@EeWBXGuOw@*2rq^x+bC?4$}TL;`!ZZRxy7j|~{-cl%!_ zf4*Z^BU|h@eT?JQ+-F-yBSlCz%n%?@Yf(`aJ7L!;voq$HF~d45h=` z(x!Ac`c%hAIR4~jJv^|u=p^JMJfx@F~)IOa9X@-7x@3H;f#ks+mzna+T%Md{`3afZi6qn&9vL2qW_1qWw;Xk ze=o4Ee50PR&h}_3^?(+o)z$m7L0UK*SJ|Rjn$tqOVL#VHH10NSMpQ8sFA@ofs%kIS6atkcz{xe=!xQsL&heYZBGy40g> z?IQ};qt|{%^E&k6J5{^<2&sD%)?It;>8Vb_jX3p?>Q+5%@pq|cTm0SYg79^;Nxji% zRq(~v4!?)+An|;ng=fC*89(2GM+L|49X0L3%h3aBZJfBC$8CH)Zx-PkAHSb=5c)b# zp8zF8EC0_B-fsNgwe7d7_iI$4Ld#6-veEH=pR@rw@7wMZLzie5|3zCLS$E!Fw&Scn z@2`q|>-hg}p~-ZC-HVu{y*^h9w%IDdaqTUu<`YI zl_7iwT`v)F!teYP;StKi)_nT_;X8xtue%)MYuz<#ixQ_bpZS@lblJ4!$}@!T2zD#{ zjzak?N>3OQ$>B_zquRT1velY>9RG3u zjXf~evv_6XbEah?#@ddaM8dPB$6zaG+YZ@!_wX3GYT1}GOF7=(Gj^P;a)pvntLEwW z)`rHsQG2>tl`!_cA;X~UL12gX4Yl12ewX zD<7jX(@T>H6`L*9VsmD7PQ`NPO62TFtKw*6`r&C9q^snMCOfE@eIzj}zhJ2tCl2Y# zHi@zPoTSQJjy%wEJe-_yJW!`_=6oSbeU&K|eZ|fesp149rc{iwcb+oReVP2%b)GNN zrANP&PQm;L67ywI+qS5)d>?&yP78m`qaZcXxeI=OfE}U={|3V!^KeL7rf3)ZPV@f~ z7sT05^}o>^7yg*HLt^}`{&o=hdXPRmXNN!LZ;%(o5c|H+Kj!Bt((~LJ{+Q=M;=Vw_ ztmE$^q~JL`{4pPd#QhJ(4?D=yZ&`Ja1@!hAM7<{J%i*|G2v#JTT_h?T>jaB<>eskGw&9QT%cI zN)wI9gVKa(?f(KPxPSQfYmOx(^4CGv@)qr{P{r;4sOD%OFTqeG_y_z=s_>kRbC3(> zP1yI^YL7PLcgUxUKJdqVvL^e2VaKt#pbhyPVSMi4k9j=y6<^|mqk{Z^A9%b*IyQkn z=KD8ff)QnBSAjp|k4fkDR|zqWI}+EapzFr}b5gkdG2iMDe~h!$AMG1d;jv)+nAb$b zALE3*(1E6Ug=&n6c@u}fY*TIG@OMk(Uekywa}sb_E?j<2!nug?fERw=fU#4xSxy{w as`s`8N53%S>0LYj(tu;}TNsLL_5U}b_45h< diff --git a/cmake-build-debug/CMakeFiles/3.15.5/CMakeDetermineCompilerABI_CXX.bin b/cmake-build-debug/CMakeFiles/3.15.5/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100755 index 592473260eb8e8b4efa5b19fb60ac3cb8b560e6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16424 zcmeHOU2Gd!6~4BcHig!4yA6aEkzo;1suCw{(~xXQ*G}SeBAm9g2^8AwtYbTgwf+hA zcu5ylR0JxlZk9gqu>44XSOE`6z|$fjp;jrofIy-kp$b$Heii}>OBN^!>~76DGv{;0 z69=t$KnUha<8#khw^^7ikJyBycA53p(`LZ~MA_~uB6rg_iXJF>$dv82D(9PQ38<3uU^`1BJaEvv z(f}y%T6>zb=%OL919jSQY*spLyOn`@8j( zsxzC(m*+d@`+7Tjd%~qc_=t7h?4NZ{o|>?_#QBBLGQd1?mGc08S;hsrtjC4rI4s~* z{(OM+?r)&mPMFpJze3pF1~{LO)&M`g1+FMQB{P*gbckcps|;f%SI8SBGf^}RLm8vv zV@4`nOwVLWX1X{&Hk2*o)8mP$Y}%GJl#tJy?T%_Q$)r(Y?l8BNL^H|xgfX4TC$gEx z$d$n&X*HL~HAFj*UeUP{iwL! zSzT^vzs!!8gp&RjEd66_uOGapSJw0!FFdHc9zNs;z5bdY(vDtJPD%AzkU;1i5-H_A;wh9$(ih<+bNxtIX-i*gA#a2SKG;zP-;Em{_e$tTqI% z##SfkbnW)ofAl@^#eqlYi8}i3(aKMw6Qh;8(eY^IcoFa-;6=cTfENKT0$v2X2zU|jBH%^f|0M#x+LurJj7Lw6oPMB0-|`C6 zMrzJ1Ug++dR2G<+%3Pqu0+aLreIRhWgVgyu*y^9EReBs(t83NjMWXL`v0D8Q(XSG{ zNpv3_Tzrq6RlfO<@4&7d&DZF)0pt8_|MO(ePwZ-VhxH|ou^u`;PX2VpqruP>|IqI3 z{vom?HG;9zvf&Y~V zVErW4OJXggo7$^qH`YoT5&-D&noTadY*Jgmxm)-ZS*Q61@UmX>fbdwKxnFp!=j7); zE|BxHC6^UhoO$TI4?AU&G2&p0)|CSGP->&{m-!JEZcIG>m>+ z7n~NSS_SqmRqg%|XsObdTC0EaVozU?Ego^B$4raQiu~`wOLxWlf1Y4n`Bp7s9qq}X zp$D`MT3vlm>!-!M-71+);zf(0p?hbLg`BRVYP`FO@c(cOwt;csN zUw>8s}pe|c0Hh4Ra-;+b*iHw{`yT$cpPn0FIL?G9(;}P`v~__ zoX@!8%;TQ%%Pzb_aNHk>waN+l^{I`1Vmyyo_~y8ogtLF#Z!IVEbD0hwB?H#A1OFUV z8ukAfOMkZtX|^WrS3eZ|t%B3?6RT_$ho6zuNBOYp&7$ZajoMwY; zpE1Kpl`NVivrLPtl4@hyiDBl9ByT(^(N2+6!I;SwrV?2rWfqDhBT=4L$wF=}n>N#_ z@Y|2}A8D+_yG=4iqF78^GSYdocu7qc6S=gJD(7;S$i%@J+?hJnp|Qjx>7n!Ihp3@U zHeHMkj)s$SbIN#M{BUn3KV2{!@4gxBvp{2M#o}C?9?!Cs4?ij(1_^*>ceN1 zG5p?B(Xr7XlGU}Fst2qsIm$R0KRpdG`&c()!@#tVYMqbmYgqffnIj3n4O)8T& z%B3`$J2%-xBF;TE)+QSYW~pGzCh{rX&STK-o?0*2pS>T41XHC_t!{19NtVi1U;p*~ zAbV2}>vHJHk86`peUBRLJZiYRNQFz6a%N(Rs9Ch>ENYoN?NXXk;e5eNhv_19(#%4I zXY%FnY@#%)!l_GnGPbE%v?VeZsbdV171P-S8>lc}78N$r^Ym+-O1N0C0v=A!O5V(- z$O4>gVJDDnfjYTMitUWTtiqJaIZDsXBkJEnc>YX7lh3fN;_4ob@wt%Car{~vLIpTkuD8_juP zk9j;O`tP>4oY2p4I(QBbd(7uRuZbe|d7*vG*M~^Xb8XmT-Us@$*n@Dao#max@SGm@ zm>+`Tc?kW79_V?p=Vt`)m`8$Y(wMvd0;?ISa4cbu`6lRfQAGRh^M60d`JC{aM1L}N z5sK$CL2K6yJnw6C+G}D5`W;um;2!pmyX-N~1;z6t^pQ8<7sMXtuQZVeJt{1SyZx&q z;4Z?xN3%6Sk-s*&k+>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_C) -# define COMPILER_ID "SunPro" -# if __SUNPRO_C >= 0x5100 - /* __SUNPRO_C = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# endif - -#elif defined(__HP_cc) -# define COMPILER_ID "HP" - /* __HP_cc = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) - -#elif defined(__DECC) -# define COMPILER_ID "Compaq" - /* __DECC_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) - -#elif defined(__IBMC__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 -# define COMPILER_ID "XL" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) -# define COMPILER_ID "Fujitsu" - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TINYC__) -# define COMPILER_ID "TinyCC" - -#elif defined(__BCC__) -# define COMPILER_ID "Bruce" - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) -# define COMPILER_ID "GNU" -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - -#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) -# define COMPILER_ID "SDCC" -# if defined(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) -# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) -# else - /* SDCC = VRP */ -# define COMPILER_VERSION_MAJOR DEC(SDCC/100) -# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) -# define COMPILER_VERSION_PATCH DEC(SDCC % 10) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXE) || defined(__CRAYXC) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number components. */ -#ifdef COMPILER_VERSION_MAJOR -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - - -#if !defined(__STDC__) -# if (defined(_MSC_VER) && !defined(__clang__)) \ - || (defined(__ibmxl__) || defined(__IBMC__)) -# define C_DIALECT "90" -# else -# define C_DIALECT -# endif -#elif __STDC_VERSION__ >= 201000L -# define C_DIALECT "11" -#elif __STDC_VERSION__ >= 199901L -# define C_DIALECT "99" -#else -# define C_DIALECT "90" -#endif -const char* info_language_dialect_default = - "INFO" ":" "dialect_default[" C_DIALECT "]"; - -/*--------------------------------------------------------------------------*/ - -#ifdef ID_VOID_MAIN -void main() {} -#else -# if defined(__CLASSIC_C__) -int main(argc, argv) int argc; char *argv[]; -# else -int main(int argc, char* argv[]) -# endif -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXE) || defined(__CRAYXC) - require += info_cray[argc]; -#endif - require += info_language_dialect_default[argc]; - (void)argv; - return require; -} -#endif diff --git a/cmake-build-debug/CMakeFiles/3.15.5/CompilerIdC/a.out b/cmake-build-debug/CMakeFiles/3.15.5/CompilerIdC/a.out deleted file mode 100755 index 856ec4c2694659fa87e414bd3a4ac6d8169c73c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16568 zcmeHPZ){sv6~B&?CS|RYcFoAziM$mFxq`l=U0ae)>FgvQ9BP#P(%*nc_;Hi{qT&}7KgdhcA0+r>PWW|I z;`yaUIxd>?ca_6quh<#(dqxy~`601~1os~!KOX11Euj6l^tT=_%W{2?(o}u<+^GZm z`tq6G`COqgzk7b*!0rS4^m0+(>s&X-XWPR^CY>R1et}vBxXt55-btFU%JF0AwdYuP zvF_cL0W#E@7;h(RYZH8eFs%umUI)L2@SRQU74eg1Iu0n)OwU{9bgp3Kb5CTc$ttsK zTP53^vvLJ>IF%e8G56|w_5I3BPK=wGY$-dFE8E%9#P~?QSjbLTr}FGMGgmB#r|FtD zHFU<~vIh=B#2)j9_r0<`w~-k}9^rmK{&sC~FG`bq2fic$w3w?0j&{_Cw`#6kzYo7( z@BtsL3m)^~2L-?Wh;j<&4qp$-O%IN1X5F#}=UhX%?ZI&mv2MkKdvg+gfeaW37zh{$ z7zh{$7zh{$7zh~nPcrbA&iDPpSh&?;oNxPepHjw`m+Y3>FN}q&9ao%gSik4>WcAwP zM)h~b!tZY%n@BCTy-HJIV{voQ5kuF>vex}Hx&QT|u{d;x<1Dtl#$s^A?xxTM3B9p) zv$OXc2fiYb>@Pd^`+v-0*IlD}+qnG3BgW;Gun~H}xOUgxMgbBMprdwky0dq5)t|?A zZs;tjRpp^cV_|3~SB>f`_GaV!&>?Eny1VG_a=KQlz0fv6)zHZ+(|Tv`lROM{WqP&V z*&9BI^#cq5_|xrgfR-(O>SK5>f%jPdgL;-5$@4o%TYD*o|g^;hx9WcAJXM7;X; zq_Ma=MevE#u6Ou7UGBYGs~MNy3ERDUUY6@gRsWo-zA;+;L%g=_x5mPikTH0p@*2P2 zQzzq(#ZSf`kDFdjxIfMWmQJ43GlNM8O29zCK)^u2K)^u2K)^u2K)^u2K)^u2!2b&a zA$lg4JTi9lV7fSWI+xFurbhBsVdkU@p3YnLbg?uymEwo40$Qc??3C0qIV+z{+w=r+ z+N$L3sXcp6HePu{Z1Z#3QaM*FO!d2EP?t)7y~6IH9pQ(gB>6eng+JA5wA@!0Zr5s$ zk$m7zt@Z_Ole|iD8@;%Mo;a>T^If4Go7y`r($5l%^WK3N`SULVYP8*XlE~OTdPOPT zR~U~+x}Ito*}S3UOXNvr1o1Q3XGx!B{aB>y>n+Jh&)33+JklSJM292VaHMBA(ls3EaGra9i`K)^u2K)^u2K)^u2 zK)^u2K)}HNDg)S$iT#(@`v|!S1DE}oo24CripGLe*A#WP-4GQ_yh_@@ekBxYT!u#Kd zZ&b*uMx3$~8>BsoFlDRO6yKz9e|gMlPdnXxnip~FVHK(G>-TEIs#7gBweM26UmNYW z)bGnfN-tuy;}LSgRjk>VZys8ul)I=5x%u$?R}JFd^K#n zHY;)b`B@=ct6QyBo+NxrOSi)3CN$q*+;gAG*MRztgLkX`m}}{LnNalygfkD965zBq3&PS@*? z)85jYp9cxwDP!}BA;OuTPiZc?SCk)d@NP8_a{-KB3yy73b^I1Ea(Lemq;NIp&e1axtTBVY8#>^J% z(it^fvgWd8rZP8ohFm-?lLymaIx=p3COa}Bzo{oPG(6KBJ02fTn295!CLN|}^vNi5 z^pi*8Zf1^1#{IRZp#Q6RG5>`D-6<$-o zAM;1Zi(-g#W9T32hY`~AQU(5)XF_7#B4O6>_fb;t8Uy~Ak3wR7hVjD=@=@~VHA}rM z#9;oaNyq;23#?|S!Y=T~{1#H<v2n$Eh=>yLRgB-XRAN8X^lKo$0{ccY0$+I#HeAY+)%;aslY9&N}Ul250{AM1FH_AhgRo!eS%1OEvr z_`Ty7I&@riO!Pk}$=&q(L>S1~c}cO~vqLF?B8 z|6h{A>yP>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_CC) -# define COMPILER_ID "SunPro" -# if __SUNPRO_CC >= 0x5100 - /* __SUNPRO_CC = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# endif - -#elif defined(__HP_aCC) -# define COMPILER_ID "HP" - /* __HP_aCC = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) - -#elif defined(__DECCXX) -# define COMPILER_ID "Compaq" - /* __DECCXX_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) - -#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 -# define COMPILER_ID "XL" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) -# define COMPILER_ID "Fujitsu" - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) || defined(__GNUG__) -# define COMPILER_ID "GNU" -# if defined(__GNUC__) -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# else -# define COMPILER_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXE) || defined(__CRAYXC) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number components. */ -#ifdef COMPILER_VERSION_MAJOR -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - - -#if defined(_MSC_VER) && defined(_MSVC_LANG) -#define CXX_STD _MSVC_LANG -#else -#define CXX_STD __cplusplus -#endif - -const char* info_language_dialect_default = "INFO" ":" "dialect_default[" -#if CXX_STD > 201703L - "20" -#elif CXX_STD >= 201703L - "17" -#elif CXX_STD >= 201402L - "14" -#elif CXX_STD >= 201103L - "11" -#else - "98" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -int main(int argc, char* argv[]) -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXE) || defined(__CRAYXC) - require += info_cray[argc]; -#endif - require += info_language_dialect_default[argc]; - (void)argv; - return require; -} diff --git a/cmake-build-debug/CMakeFiles/3.15.5/CompilerIdCXX/a.out b/cmake-build-debug/CMakeFiles/3.15.5/CompilerIdCXX/a.out deleted file mode 100755 index e510ea5cbd72bcb9c314cc30a6e44e8b4dd6dcee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16576 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]+)([">]) - -#IncludeRegexScan: ^.*$ - -#IncludeRegexComplain: ^$ - -#IncludeRegexTransform: - -/home/massiveatoms/Desktop/studieproject/homebrew/main.cpp -iostream -- -vector -- -unordered_map -- -algorithm -- -random -- -iterator -- -chrono -- -string -- -math.h -- - diff --git a/cmake-build-debug/CMakeFiles/another_studproject.dir/DependInfo.cmake b/cmake-build-debug/CMakeFiles/another_studproject.dir/DependInfo.cmake deleted file mode 100644 index 7e45185..0000000 --- a/cmake-build-debug/CMakeFiles/another_studproject.dir/DependInfo.cmake +++ /dev/null @@ -1,20 +0,0 @@ -# The set of languages for which implicit dependencies are needed: -set(CMAKE_DEPENDS_LANGUAGES - "CXX" - ) -# The set of files for implicit dependencies of each language: -set(CMAKE_DEPENDS_CHECK_CXX - "/home/massiveatoms/Desktop/studieproject/homebrew/main.cpp" "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles/another_studproject.dir/main.cpp.o" - ) -set(CMAKE_CXX_COMPILER_ID "Clang") - -# The include file search paths: -set(CMAKE_CXX_TARGET_INCLUDE_PATH - ) - -# Targets to which this target links. -set(CMAKE_TARGET_LINKED_INFO_FILES - ) - -# Fortran module output directory. -set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/cmake-build-debug/CMakeFiles/another_studproject.dir/build.make b/cmake-build-debug/CMakeFiles/another_studproject.dir/build.make deleted file mode 100644 index 7a37f99..0000000 --- a/cmake-build-debug/CMakeFiles/another_studproject.dir/build.make +++ /dev/null @@ -1,98 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.15 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Remove some rules from gmake that .SUFFIXES does not remove. -SUFFIXES = - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake - -# The command to remove a file. -RM = /usr/bin/cmake -E remove -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /home/massiveatoms/Desktop/studieproject/homebrew - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug - -# Include any dependencies generated for this target. -include CMakeFiles/another_studproject.dir/depend.make - -# Include the progress variables for this target. -include CMakeFiles/another_studproject.dir/progress.make - -# Include the compile flags for this target's objects. -include CMakeFiles/another_studproject.dir/flags.make - -CMakeFiles/another_studproject.dir/main.cpp.o: CMakeFiles/another_studproject.dir/flags.make -CMakeFiles/another_studproject.dir/main.cpp.o: ../main.cpp - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/another_studproject.dir/main.cpp.o" - /usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/another_studproject.dir/main.cpp.o -c /home/massiveatoms/Desktop/studieproject/homebrew/main.cpp - -CMakeFiles/another_studproject.dir/main.cpp.i: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/another_studproject.dir/main.cpp.i" - /usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/massiveatoms/Desktop/studieproject/homebrew/main.cpp > CMakeFiles/another_studproject.dir/main.cpp.i - -CMakeFiles/another_studproject.dir/main.cpp.s: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/another_studproject.dir/main.cpp.s" - /usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/massiveatoms/Desktop/studieproject/homebrew/main.cpp -o CMakeFiles/another_studproject.dir/main.cpp.s - -# Object files for target another_studproject -another_studproject_OBJECTS = \ -"CMakeFiles/another_studproject.dir/main.cpp.o" - -# External object files for target another_studproject -another_studproject_EXTERNAL_OBJECTS = - -another_studproject: CMakeFiles/another_studproject.dir/main.cpp.o -another_studproject: CMakeFiles/another_studproject.dir/build.make -another_studproject: CMakeFiles/another_studproject.dir/link.txt - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable another_studproject" - $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/another_studproject.dir/link.txt --verbose=$(VERBOSE) - -# Rule to build all files generated by this target. -CMakeFiles/another_studproject.dir/build: another_studproject - -.PHONY : CMakeFiles/another_studproject.dir/build - -CMakeFiles/another_studproject.dir/clean: - $(CMAKE_COMMAND) -P CMakeFiles/another_studproject.dir/cmake_clean.cmake -.PHONY : CMakeFiles/another_studproject.dir/clean - -CMakeFiles/another_studproject.dir/depend: - cd /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/massiveatoms/Desktop/studieproject/homebrew /home/massiveatoms/Desktop/studieproject/homebrew /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles/another_studproject.dir/DependInfo.cmake --color=$(COLOR) -.PHONY : CMakeFiles/another_studproject.dir/depend - diff --git a/cmake-build-debug/CMakeFiles/another_studproject.dir/cmake_clean.cmake b/cmake-build-debug/CMakeFiles/another_studproject.dir/cmake_clean.cmake deleted file mode 100644 index a340ee9..0000000 --- a/cmake-build-debug/CMakeFiles/another_studproject.dir/cmake_clean.cmake +++ /dev/null @@ -1,10 +0,0 @@ -file(REMOVE_RECURSE - "CMakeFiles/another_studproject.dir/main.cpp.o" - "another_studproject" - "another_studproject.pdb" -) - -# Per-language clean rules from dependency scanning. -foreach(lang CXX) - include(CMakeFiles/another_studproject.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/cmake-build-debug/CMakeFiles/another_studproject.dir/depend.internal b/cmake-build-debug/CMakeFiles/another_studproject.dir/depend.internal deleted file mode 100644 index 1ca4b67..0000000 --- a/cmake-build-debug/CMakeFiles/another_studproject.dir/depend.internal +++ /dev/null @@ -1,5 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.15 - -CMakeFiles/another_studproject.dir/main.cpp.o - /home/massiveatoms/Desktop/studieproject/homebrew/main.cpp diff --git a/cmake-build-debug/CMakeFiles/another_studproject.dir/depend.make b/cmake-build-debug/CMakeFiles/another_studproject.dir/depend.make deleted file mode 100644 index 4514920..0000000 --- a/cmake-build-debug/CMakeFiles/another_studproject.dir/depend.make +++ /dev/null @@ -1,5 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.15 - -CMakeFiles/another_studproject.dir/main.cpp.o: ../main.cpp - diff --git a/cmake-build-debug/CMakeFiles/another_studproject.dir/flags.make b/cmake-build-debug/CMakeFiles/another_studproject.dir/flags.make deleted file mode 100644 index 3a86bfd..0000000 --- a/cmake-build-debug/CMakeFiles/another_studproject.dir/flags.make +++ /dev/null @@ -1,10 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.15 - -# compile CXX with /usr/bin/clang++ -CXX_FLAGS = -g -std=gnu++17 - -CXX_DEFINES = - -CXX_INCLUDES = - diff --git a/cmake-build-debug/CMakeFiles/another_studproject.dir/link.txt b/cmake-build-debug/CMakeFiles/another_studproject.dir/link.txt deleted file mode 100644 index 974e872..0000000 --- a/cmake-build-debug/CMakeFiles/another_studproject.dir/link.txt +++ /dev/null @@ -1 +0,0 @@ -/usr/bin/clang++ -g CMakeFiles/another_studproject.dir/main.cpp.o -o another_studproject diff --git a/cmake-build-debug/CMakeFiles/another_studproject.dir/progress.make b/cmake-build-debug/CMakeFiles/another_studproject.dir/progress.make deleted file mode 100644 index abadeb0..0000000 --- a/cmake-build-debug/CMakeFiles/another_studproject.dir/progress.make +++ /dev/null @@ -1,3 +0,0 @@ -CMAKE_PROGRESS_1 = 1 -CMAKE_PROGRESS_2 = 2 - diff --git a/cmake-build-debug/CMakeFiles/clion-environment.txt b/cmake-build-debug/CMakeFiles/clion-environment.txt deleted file mode 100644 index 743f4f782890e8da1b77adc07a4d52acd6fcc44c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110 zcmWH^&(8@?EwNHC)H6`f$jMJm%+d5OD9OyvE4EVL;({@CU7UR#y}+B5BJrXtn= diff --git a/cmake-build-debug/CMakeFiles/clion-log.txt b/cmake-build-debug/CMakeFiles/clion-log.txt deleted file mode 100644 index 2fd28af..0000000 --- a/cmake-build-debug/CMakeFiles/clion-log.txt +++ /dev/null @@ -1,18 +0,0 @@ -/usr/bin/cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -G "CodeBlocks - Unix Makefiles" /home/massiveatoms/Desktop/studieproject/homebrew --- The C compiler identification is Clang 9.0.0 --- The CXX compiler identification is Clang 9.0.0 --- Check for working C compiler: /usr/bin/clang --- Check for working C compiler: /usr/bin/clang -- works --- Detecting C compiler ABI info --- Detecting C compiler ABI info - done --- Detecting C compile features --- Detecting C compile features - done --- Check for working CXX compiler: /usr/bin/clang++ --- Check for working CXX compiler: /usr/bin/clang++ -- works --- Detecting CXX compiler ABI info --- Detecting CXX compiler ABI info - done --- Detecting CXX compile features --- Detecting CXX compile features - done --- Configuring done --- Generating done --- Build files have been written to: /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug diff --git a/cmake-build-debug/CMakeFiles/cmake.check_cache b/cmake-build-debug/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd73..0000000 --- a/cmake-build-debug/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/cmake-build-debug/CMakeFiles/progress.marks b/cmake-build-debug/CMakeFiles/progress.marks deleted file mode 100644 index 0cfbf08..0000000 --- a/cmake-build-debug/CMakeFiles/progress.marks +++ /dev/null @@ -1 +0,0 @@ -2 diff --git a/cmake-build-debug/Makefile b/cmake-build-debug/Makefile deleted file mode 100644 index b47833d..0000000 --- a/cmake-build-debug/Makefile +++ /dev/null @@ -1,178 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.15 - -# Default target executed when no arguments are given to make. -default_target: all - -.PHONY : default_target - -# Allow only one "make -f Makefile2" at a time, but pass parallelism. -.NOTPARALLEL: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Remove some rules from gmake that .SUFFIXES does not remove. -SUFFIXES = - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake - -# The command to remove a file. -RM = /usr/bin/cmake -E remove -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /home/massiveatoms/Desktop/studieproject/homebrew - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug - -#============================================================================= -# Targets provided globally by CMake. - -# Special rule for the target rebuild_cache -rebuild_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." - /usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : rebuild_cache - -# Special rule for the target rebuild_cache -rebuild_cache/fast: rebuild_cache - -.PHONY : rebuild_cache/fast - -# Special rule for the target edit_cache -edit_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." - /usr/bin/cmake-gui -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : edit_cache - -# Special rule for the target edit_cache -edit_cache/fast: edit_cache - -.PHONY : edit_cache/fast - -# The main all target -all: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles/progress.marks - $(MAKE) -f CMakeFiles/Makefile2 all - $(CMAKE_COMMAND) -E cmake_progress_start /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles 0 -.PHONY : all - -# The main clean target -clean: - $(MAKE) -f CMakeFiles/Makefile2 clean -.PHONY : clean - -# The main clean target -clean/fast: clean - -.PHONY : clean/fast - -# Prepare targets for installation. -preinstall: all - $(MAKE) -f CMakeFiles/Makefile2 preinstall -.PHONY : preinstall - -# Prepare targets for installation. -preinstall/fast: - $(MAKE) -f CMakeFiles/Makefile2 preinstall -.PHONY : preinstall/fast - -# clear depends -depend: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 -.PHONY : depend - -#============================================================================= -# Target rules for targets named another_studproject - -# Build rule for target. -another_studproject: cmake_check_build_system - $(MAKE) -f CMakeFiles/Makefile2 another_studproject -.PHONY : another_studproject - -# fast build rule for target. -another_studproject/fast: - $(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/build -.PHONY : another_studproject/fast - -main.o: main.cpp.o - -.PHONY : main.o - -# target to build an object file -main.cpp.o: - $(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/main.cpp.o -.PHONY : main.cpp.o - -main.i: main.cpp.i - -.PHONY : main.i - -# target to preprocess a source file -main.cpp.i: - $(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/main.cpp.i -.PHONY : main.cpp.i - -main.s: main.cpp.s - -.PHONY : main.s - -# target to generate assembly for a file -main.cpp.s: - $(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/main.cpp.s -.PHONY : main.cpp.s - -# Help Target -help: - @echo "The following are some of the valid targets for this Makefile:" - @echo "... all (the default if no target is provided)" - @echo "... clean" - @echo "... depend" - @echo "... rebuild_cache" - @echo "... another_studproject" - @echo "... edit_cache" - @echo "... main.o" - @echo "... main.i" - @echo "... main.s" -.PHONY : help - - - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system - diff --git a/cmake-build-debug/another_studproject b/cmake-build-debug/another_studproject deleted file mode 100755 index 90d8cc53acd85ebbcf887eb5016c82367398a261..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 254272 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 ASO5S3 diff --git a/cmake-build-debug/another_studproject.cbp b/cmake-build-debug/another_studproject.cbp deleted file mode 100644 index 6d26b6b..0000000 --- a/cmake-build-debug/another_studproject.cbp +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - diff --git a/cmake-build-debug/cmake_install.cmake b/cmake-build-debug/cmake_install.cmake deleted file mode 100644 index 9620cfa..0000000 --- a/cmake-build-debug/cmake_install.cmake +++ /dev/null @@ -1,49 +0,0 @@ -# Install script for directory: /home/massiveatoms/Desktop/studieproject/homebrew - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Debug") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "0") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/main.cpp b/main.cpp index 263f5c6..e3a5c2d 100644 --- a/main.cpp +++ b/main.cpp @@ -2,19 +2,24 @@ #include #include #include +#include #include "./src/includes/aggregate_tests.h" -// typedef std::unordered_map map; +// typedef google::sparse_hash_map intmap; +// typedef google::sparse_hash_map stringmap +typedef std::unordered_map intmap; +typedef std::unordered_map stringmap; // we can use ^ to switch the map implementations to that // we can add some cli handling so we can specify which maps to tests (or all) int main() { time_point start_test = steady_clock::now(); - string_test(std::unordered_map{}, 1); // process gets killed for sizes >35000 - int_test(std::unordered_map{}, 1); + // string_test(stringmap{}, 1); // process gets killed for sizes >35000 + int_test_aggregate(intmap{}, 2); + string_test_aggregate(stringmap{}, 2); time_point end_test = steady_clock::now(); std::cout << "1 run all tests 1 map: " << duration_cast(end_test-start_test).count() << " minutes"; // test takes 52 mins for 10 runs for one hashmap diff --git a/results.csv b/results.csv index 781a0ab..e69de29 100644 --- a/results.csv +++ b/results.csv @@ -1,160 +0,0 @@ -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 407.000000, 345.000000, 325.000000, 402.000000, 475.000000, 378.000000, 476.000000, 553.000000, 369.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 226.000000, 282.000000, 294.000000, 429.000000, 332.000000, 307.000000, 483.000000, 372.000000, 382.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 248.000000, 256.000000, 288.000000, 736.000000, 518.000000, 416.000000, 559.000000, 413.000000, 531.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 587.000000, 268.000000, 376.000000, 306.000000, 330.000000, 301.000000, 484.000000, 530.000000, 408.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 222.000000, 280.000000, 320.000000, 359.000000, 319.000000, 313.000000, 389.000000, 411.000000, 429.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 237.000000, 270.000000, 432.000000, 327.000000, 322.000000, 371.000000, 462.000000, 380.000000, 398.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 378.000000, 399.000000, 374.000000, 311.000000, 319.000000, 325.000000, 375.000000, 535.000000, 387.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 212.000000, 264.000000, 295.000000, 305.000000, 325.000000, 323.000000, 385.000000, 400.000000, 388.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 205.000000, 265.000000, 292.000000, 327.000000, 390.000000, 512.000000, 379.000000, 377.000000, 433.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 273.000000, 289.000000, 296.000000, 321.000000, 319.000000, 330.000000, 410.000000, 380.000000, 397.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 289.000000, 370.000000, 421.000000, 383.000000, 300.000000, 300.000000, 311.000000, 309.000000, 306.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 197.000000, 251.000000, 275.000000, 295.000000, 298.000000, 299.000000, 307.000000, 306.000000, 313.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 196.000000, 261.000000, 281.000000, 470.000000, 452.000000, 436.000000, 465.000000, 377.000000, 493.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 293.000000, 379.000000, 281.000000, 313.000000, 303.000000, 418.000000, 356.000000, 449.000000, 408.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 329.000000, 436.000000, 521.000000, 419.000000, 378.000000, 401.000000, 334.000000, 316.000000, 324.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 192.000000, 253.000000, 273.000000, 289.000000, 335.000000, 379.000000, 451.000000, 305.000000, 310.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 334.000000, 392.000000, 396.000000, 390.000000, 358.000000, 539.000000, 309.000000, 384.000000, 309.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 195.000000, 254.000000, 318.000000, 346.000000, 421.000000, 508.000000, 300.000000, 303.000000, 351.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 190.000000, 253.000000, 275.000000, 284.000000, 300.000000, 297.000000, 306.000000, 310.000000, 303.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 199.000000, 251.000000, 424.000000, 282.000000, 411.000000, 492.000000, 316.000000, 313.000000, 339.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 553.000000, 1172.000000, 1701.000000, 2099.000000, 2720.000000, 337.000000, 3647.000000, 371.000000, 374.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 530.000000, 1105.000000, 1681.000000, 2041.000000, 2590.000000, 382.000000, 3663.000000, 350.000000, 415.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 516.000000, 1125.000000, 1650.000000, 2003.000000, 2577.000000, 328.000000, 3664.000000, 353.000000, 377.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 523.000000, 1102.000000, 1730.000000, 2048.000000, 2656.000000, 329.000000, 3696.000000, 367.000000, 384.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 554.000000, 1127.000000, 2172.000000, 2053.000000, 2628.000000, 327.000000, 3679.000000, 354.000000, 398.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 866.000000, 1107.000000, 1661.000000, 2123.000000, 4012.000000, 495.000000, 3656.000000, 388.000000, 386.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 545.000000, 1110.000000, 1670.000000, 2016.000000, 2584.000000, 346.000000, 3709.000000, 380.000000, 537.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 743.000000, 1101.000000, 1632.000000, 2068.000000, 2634.000000, 453.000000, 5471.000000, 362.000000, 374.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 520.000000, 1111.000000, 1642.000000, 2019.000000, 2634.000000, 338.000000, 3689.000000, 362.000000, 519.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 746.000000, 1643.000000, 1814.000000, 2035.000000, 2678.000000, 363.000000, 4307.000000, 512.000000, 383.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 418.000000, 423.000000, 486.000000, 356.000000, 465.000000, 368.000000, 390.000000, 378.000000, 395.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 242.000000, 317.000000, 342.000000, 451.000000, 366.000000, 376.000000, 383.000000, 374.000000, 455.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 239.000000, 314.000000, 340.000000, 356.000000, 359.000000, 370.000000, 376.000000, 385.000000, 389.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 233.000000, 309.000000, 336.000000, 356.000000, 363.000000, 368.000000, 372.000000, 381.000000, 386.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 249.000000, 313.000000, 351.000000, 350.000000, 680.000000, 367.000000, 490.000000, 385.000000, 400.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 272.000000, 312.000000, 348.000000, 360.000000, 397.000000, 366.000000, 388.000000, 490.000000, 496.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 294.000000, 320.000000, 336.000000, 355.000000, 364.000000, 372.000000, 372.000000, 389.000000, 552.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 234.000000, 313.000000, 368.000000, 352.000000, 597.000000, 410.000000, 468.000000, 387.000000, 385.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 241.000000, 458.000000, 578.000000, 354.000000, 360.000000, 373.000000, 376.000000, 386.000000, 543.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 396.000000, 518.000000, 499.000000, 571.000000, 500.000000, 524.000000, 568.000000, 486.000000, 393.000000, -insert_int, 'std::unordered_map', 107.000000, 164.000000, 260.000000, 223.000000, 268.000000, 387.000000, 379.000000, 325.000000, 299.000000, -insert_int, 'std::unordered_map', 124.000000, 157.000000, 196.000000, 225.000000, 252.000000, 245.000000, 252.000000, 271.000000, 270.000000, -insert_int, 'std::unordered_map', 93.000000, 184.000000, 272.000000, 217.000000, 242.000000, 255.000000, 308.000000, 259.000000, 257.000000, -insert_int, 'std::unordered_map', 99.000000, 162.000000, 191.000000, 230.000000, 257.000000, 246.000000, 255.000000, 262.000000, 266.000000, -insert_int, 'std::unordered_map', 97.000000, 171.000000, 202.000000, 231.000000, 244.000000, 240.000000, 260.000000, 352.000000, 266.000000, -insert_int, 'std::unordered_map', 92.000000, 167.000000, 202.000000, 225.000000, 237.000000, 241.000000, 256.000000, 270.000000, 264.000000, -insert_int, 'std::unordered_map', 98.000000, 226.000000, 201.000000, 236.000000, 342.000000, 400.000000, 268.000000, 375.000000, 259.000000, -insert_int, 'std::unordered_map', 100.000000, 163.000000, 200.000000, 220.000000, 236.000000, 236.000000, 318.000000, 266.000000, 269.000000, -insert_int, 'std::unordered_map', 104.000000, 157.000000, 198.000000, 221.000000, 262.000000, 238.000000, 251.000000, 263.000000, 265.000000, -insert_int, 'std::unordered_map', 187.000000, 163.000000, 213.000000, 226.000000, 233.000000, 351.000000, 256.000000, 256.000000, 259.000000, -lookup_int, 'std::unordered_map', 51.000000, 74.000000, 89.000000, 159.000000, 111.000000, 112.000000, 119.000000, 249.000000, 117.000000, -lookup_int, 'std::unordered_map', 38.000000, 75.000000, 135.000000, 106.000000, 175.000000, 150.000000, 124.000000, 132.000000, 128.000000, -lookup_int, 'std::unordered_map', 39.000000, 97.000000, 90.000000, 253.000000, 234.000000, 118.000000, 113.000000, 119.000000, 205.000000, -lookup_int, 'std::unordered_map', 97.000000, 153.000000, 95.000000, 108.000000, 110.000000, 229.000000, 116.000000, 120.000000, 120.000000, -lookup_int, 'std::unordered_map', 42.000000, 72.000000, 119.000000, 106.000000, 259.000000, 110.000000, 185.000000, 114.000000, 119.000000, -lookup_int, 'std::unordered_map', 41.000000, 92.000000, 93.000000, 116.000000, 125.000000, 107.000000, 126.000000, 115.000000, 151.000000, -lookup_int, 'std::unordered_map', 35.000000, 71.000000, 95.000000, 101.000000, 114.000000, 115.000000, 116.000000, 117.000000, 119.000000, -lookup_int, 'std::unordered_map', 38.000000, 74.000000, 92.000000, 116.000000, 118.000000, 113.000000, 120.000000, 119.000000, 118.000000, -lookup_int, 'std::unordered_map', 36.000000, 71.000000, 99.000000, 112.000000, 111.000000, 118.000000, 120.000000, 116.000000, 121.000000, -lookup_int, 'std::unordered_map', 47.000000, 80.000000, 93.000000, 99.000000, 108.000000, 109.000000, 113.000000, 115.000000, 121.000000, -nolookup_int, 'std::unordered_map', 518.000000, 684.000000, 1106.000000, 1448.000000, 2930.000000, 385.000000, 2598.000000, 267.000000, 273.000000, -nolookup_int, 'std::unordered_map', 267.000000, 691.000000, 1114.000000, 1449.000000, 1874.000000, 248.000000, 4059.000000, 253.000000, 281.000000, -nolookup_int, 'std::unordered_map', 244.000000, 686.000000, 1231.000000, 1441.000000, 2799.000000, 385.000000, 4337.000000, 367.000000, 489.000000, -nolookup_int, 'std::unordered_map', 549.000000, 1295.000000, 1773.000000, 2237.000000, 3013.000000, 305.000000, 3861.000000, 373.000000, 318.000000, -nolookup_int, 'std::unordered_map', 603.000000, 1225.000000, 1791.000000, 2229.000000, 2864.000000, 386.000000, 3968.000000, 300.000000, 392.000000, -nolookup_int, 'std::unordered_map', 483.000000, 1295.000000, 1895.000000, 2190.000000, 2944.000000, 338.000000, 2703.000000, 269.000000, 349.000000, -nolookup_int, 'std::unordered_map', 255.000000, 672.000000, 1208.000000, 1420.000000, 1865.000000, 254.000000, 3089.000000, 309.000000, 278.000000, -nolookup_int, 'std::unordered_map', 386.000000, 788.000000, 1113.000000, 1428.000000, 2467.000000, 257.000000, 2606.000000, 263.000000, 272.000000, -nolookup_int, 'std::unordered_map', 253.000000, 695.000000, 1134.000000, 1907.000000, 1862.000000, 341.000000, 3456.000000, 269.000000, 275.000000, -nolookup_int, 'std::unordered_map', 393.000000, 702.000000, 1240.000000, 1444.000000, 1882.000000, 265.000000, 2602.000000, 268.000000, 269.000000, -delete_int, 'std::unordered_map', 81.000000, 170.000000, 221.000000, 254.000000, 284.000000, 315.000000, 301.000000, 316.000000, 325.000000, -delete_int, 'std::unordered_map', 92.000000, 178.000000, 225.000000, 252.000000, 281.000000, 289.000000, 308.000000, 342.000000, 321.000000, -delete_int, 'std::unordered_map', 83.000000, 172.000000, 227.000000, 262.000000, 292.000000, 284.000000, 302.000000, 310.000000, 319.000000, -delete_int, 'std::unordered_map', 89.000000, 153.000000, 226.000000, 268.000000, 278.000000, 305.000000, 308.000000, 317.000000, 325.000000, -delete_int, 'std::unordered_map', 76.000000, 172.000000, 219.000000, 260.000000, 276.000000, 290.000000, 307.000000, 361.000000, 322.000000, -delete_int, 'std::unordered_map', 113.000000, 164.000000, 225.000000, 254.000000, 276.000000, 295.000000, 308.000000, 309.000000, 316.000000, -delete_int, 'std::unordered_map', 91.000000, 170.000000, 227.000000, 271.000000, 274.000000, 287.000000, 305.000000, 308.000000, 341.000000, -delete_int, 'std::unordered_map', 82.000000, 166.000000, 223.000000, 258.000000, 287.000000, 294.000000, 311.000000, 312.000000, 316.000000, -delete_int, 'std::unordered_map', 73.000000, 157.000000, 222.000000, 257.000000, 281.000000, 294.000000, 298.000000, 313.000000, 317.000000, -delete_int, 'std::unordered_map', 101.000000, 166.000000, 219.000000, 267.000000, 281.000000, 293.000000, 309.000000, 630.000000, 309.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 342.000000, 349.000000, 341.000000, 411.000000, 445.000000, 519.000000, 556.000000, 434.000000, 728.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 505.000000, 783.000000, 539.000000, 554.000000, 639.000000, 445.000000, 534.000000, 648.000000, 460.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 543.000000, 312.000000, 409.000000, 438.000000, 338.000000, 324.000000, 380.000000, 379.000000, 389.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 267.000000, 286.000000, 588.000000, 321.000000, 394.000000, 521.000000, 631.000000, 599.000000, 421.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 434.000000, 519.000000, 311.000000, 317.000000, 328.000000, 333.000000, 393.000000, 389.000000, 496.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 233.000000, 274.000000, 410.000000, 322.000000, 325.000000, 322.000000, 379.000000, 391.000000, 391.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 273.000000, 276.000000, 315.000000, 346.000000, 344.000000, 322.000000, 387.000000, 392.000000, 394.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 226.000000, 266.000000, 351.000000, 323.000000, 324.000000, 320.000000, 385.000000, 388.000000, 398.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 228.000000, 286.000000, 296.000000, 329.000000, 327.000000, 319.000000, 392.000000, 512.000000, 387.000000, -insert_string, 'std::unordered_map, std::__cxx11::basic_string >', 234.000000, 283.000000, 314.000000, 329.000000, 328.000000, 327.000000, 389.000000, 392.000000, 567.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 226.000000, 259.000000, 281.000000, 427.000000, 294.000000, 312.000000, 306.000000, 311.000000, 317.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 199.000000, 252.000000, 333.000000, 291.000000, 296.000000, 299.000000, 313.000000, 309.000000, 309.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 190.000000, 257.000000, 274.000000, 295.000000, 300.000000, 310.000000, 302.000000, 441.000000, 318.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 193.000000, 257.000000, 272.000000, 296.000000, 296.000000, 297.000000, 302.000000, 316.000000, 325.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 204.000000, 316.000000, 274.000000, 298.000000, 295.000000, 312.000000, 683.000000, 529.000000, 437.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 249.000000, 259.000000, 282.000000, 290.000000, 297.000000, 311.000000, 305.000000, 355.000000, 308.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 201.000000, 266.000000, 277.000000, 288.000000, 304.000000, 305.000000, 308.000000, 307.000000, 318.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 251.000000, 263.000000, 351.000000, 299.000000, 473.000000, 369.000000, 302.000000, 314.000000, 313.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 202.000000, 263.000000, 276.000000, 294.000000, 290.000000, 345.000000, 312.000000, 309.000000, 320.000000, -lookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 197.000000, 278.000000, 281.000000, 287.000000, 299.000000, 298.000000, 304.000000, 308.000000, 402.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 1304.000000, 2393.000000, 2306.000000, 2037.000000, 2707.000000, 343.000000, 3732.000000, 382.000000, 372.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 535.000000, 1283.000000, 1671.000000, 2045.000000, 2595.000000, 336.000000, 4208.000000, 363.000000, 387.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 511.000000, 1172.000000, 1649.000000, 2012.000000, 2695.000000, 334.000000, 3733.000000, 370.000000, 388.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 528.000000, 1114.000000, 1817.000000, 2334.000000, 2650.000000, 331.000000, 3752.000000, 360.000000, 376.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 532.000000, 1085.000000, 1640.000000, 2036.000000, 2826.000000, 336.000000, 3773.000000, 348.000000, 387.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 519.000000, 1186.000000, 1766.000000, 2033.000000, 2587.000000, 332.000000, 4916.000000, 369.000000, 428.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 520.000000, 1106.000000, 1683.000000, 2039.000000, 2588.000000, 339.000000, 3752.000000, 366.000000, 388.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 514.000000, 1111.000000, 1961.000000, 2000.000000, 2579.000000, 325.000000, 3766.000000, 366.000000, 383.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 542.000000, 1099.000000, 1651.000000, 2038.000000, 2605.000000, 329.000000, 3835.000000, 360.000000, 389.000000, -nolookup_string, 'std::unordered_map, std::__cxx11::basic_string >', 513.000000, 1093.000000, 1717.000000, 2062.000000, 2655.000000, 334.000000, 4419.000000, 356.000000, 384.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 237.000000, 314.000000, 343.000000, 366.000000, 360.000000, 362.000000, 383.000000, 383.000000, 395.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 234.000000, 314.000000, 345.000000, 348.000000, 416.000000, 359.000000, 392.000000, 379.000000, 390.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 228.000000, 315.000000, 333.000000, 349.000000, 364.000000, 420.000000, 376.000000, 381.000000, 384.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 244.000000, 310.000000, 337.000000, 357.000000, 357.000000, 360.000000, 400.000000, 385.000000, 392.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 245.000000, 311.000000, 339.000000, 360.000000, 362.000000, 367.000000, 384.000000, 382.000000, 431.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 255.000000, 306.000000, 331.000000, 352.000000, 364.000000, 368.000000, 453.000000, 379.000000, 399.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 248.000000, 309.000000, 339.000000, 352.000000, 357.000000, 368.000000, 386.000000, 381.000000, 382.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 233.000000, 321.000000, 344.000000, 355.000000, 357.000000, 370.000000, 387.000000, 375.000000, 389.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 237.000000, 312.000000, 341.000000, 355.000000, 366.000000, 436.000000, 382.000000, 378.000000, 392.000000, -delete_string, 'std::unordered_map, std::__cxx11::basic_string >', 241.000000, 313.000000, 341.000000, 395.000000, 367.000000, 373.000000, 417.000000, 376.000000, 386.000000, -insert_int, 'std::unordered_map', 100.000000, 166.000000, 208.000000, 220.000000, 232.000000, 241.000000, 268.000000, 304.000000, 267.000000, -insert_int, 'std::unordered_map', 121.000000, 151.000000, 195.000000, 288.000000, 231.000000, 244.000000, 250.000000, 265.000000, 274.000000, -insert_int, 'std::unordered_map', 109.000000, 160.000000, 205.000000, 232.000000, 250.000000, 284.000000, 253.000000, 277.000000, 276.000000, -insert_int, 'std::unordered_map', 100.000000, 170.000000, 199.000000, 227.000000, 233.000000, 255.000000, 257.000000, 256.000000, 267.000000, -insert_int, 'std::unordered_map', 119.000000, 162.000000, 205.000000, 236.000000, 296.000000, 242.000000, 257.000000, 257.000000, 271.000000, -insert_int, 'std::unordered_map', 109.000000, 295.000000, 214.000000, 241.000000, 240.000000, 238.000000, 263.000000, 265.000000, 263.000000, -insert_int, 'std::unordered_map', 94.000000, 171.000000, 199.000000, 243.000000, 236.000000, 240.000000, 271.000000, 259.000000, 271.000000, -insert_int, 'std::unordered_map', 103.000000, 162.000000, 203.000000, 230.000000, 254.000000, 252.000000, 260.000000, 264.000000, 317.000000, -insert_int, 'std::unordered_map', 159.000000, 163.000000, 199.000000, 227.000000, 239.000000, 236.000000, 289.000000, 268.000000, 262.000000, -insert_int, 'std::unordered_map', 97.000000, 157.000000, 195.000000, 221.000000, 256.000000, 240.000000, 258.000000, 281.000000, 268.000000, -lookup_int, 'std::unordered_map', 42.000000, 82.000000, 89.000000, 103.000000, 113.000000, 112.000000, 115.000000, 113.000000, 116.000000, -lookup_int, 'std::unordered_map', 38.000000, 69.000000, 87.000000, 102.000000, 107.000000, 109.000000, 116.000000, 118.000000, 124.000000, -lookup_int, 'std::unordered_map', 38.000000, 73.000000, 104.000000, 101.000000, 109.000000, 109.000000, 114.000000, 125.000000, 126.000000, -lookup_int, 'std::unordered_map', 50.000000, 113.000000, 92.000000, 112.000000, 106.000000, 150.000000, 149.000000, 129.000000, 118.000000, -lookup_int, 'std::unordered_map', 42.000000, 83.000000, 94.000000, 108.000000, 110.000000, 192.000000, 119.000000, 120.000000, 118.000000, -lookup_int, 'std::unordered_map', 39.000000, 72.000000, 94.000000, 105.000000, 109.000000, 115.000000, 119.000000, 116.000000, 128.000000, -lookup_int, 'std::unordered_map', 39.000000, 73.000000, 95.000000, 101.000000, 112.000000, 111.000000, 117.000000, 112.000000, 124.000000, -lookup_int, 'std::unordered_map', 36.000000, 72.000000, 93.000000, 97.000000, 110.000000, 109.000000, 117.000000, 128.000000, 120.000000, -lookup_int, 'std::unordered_map', 38.000000, 74.000000, 108.000000, 104.000000, 105.000000, 110.000000, 115.000000, 119.000000, 117.000000, -lookup_int, 'std::unordered_map', 36.000000, 76.000000, 93.000000, 99.000000, 111.000000, 110.000000, 126.000000, 119.000000, 118.000000, -nolookup_int, 'std::unordered_map', 281.000000, 709.000000, 1156.000000, 1440.000000, 1869.000000, 251.000000, 2553.000000, 269.000000, 271.000000, -nolookup_int, 'std::unordered_map', 251.000000, 689.000000, 1134.000000, 1444.000000, 1877.000000, 250.000000, 2580.000000, 263.000000, 271.000000, -nolookup_int, 'std::unordered_map', 241.000000, 693.000000, 1114.000000, 1676.000000, 1891.000000, 361.000000, 2543.000000, 262.000000, 273.000000, -nolookup_int, 'std::unordered_map', 255.000000, 691.000000, 1446.000000, 1435.000000, 1873.000000, 251.000000, 2567.000000, 271.000000, 271.000000, -nolookup_int, 'std::unordered_map', 262.000000, 688.000000, 1139.000000, 1436.000000, 2272.000000, 247.000000, 2576.000000, 271.000000, 271.000000, -nolookup_int, 'std::unordered_map', 264.000000, 716.000000, 1148.000000, 1451.000000, 1869.000000, 251.000000, 2579.000000, 265.000000, 269.000000, -nolookup_int, 'std::unordered_map', 234.000000, 680.000000, 1145.000000, 1505.000000, 1887.000000, 310.000000, 2555.000000, 276.000000, 269.000000, -nolookup_int, 'std::unordered_map', 242.000000, 676.000000, 1139.000000, 1438.000000, 1923.000000, 255.000000, 2591.000000, 269.000000, 281.000000, -nolookup_int, 'std::unordered_map', 260.000000, 726.000000, 1152.000000, 1462.000000, 1896.000000, 267.000000, 2622.000000, 265.000000, 274.000000, -nolookup_int, 'std::unordered_map', 285.000000, 708.000000, 1134.000000, 1439.000000, 1859.000000, 259.000000, 2568.000000, 262.000000, 276.000000, -delete_int, 'std::unordered_map', 99.000000, 186.000000, 234.000000, 257.000000, 271.000000, 288.000000, 304.000000, 310.000000, 320.000000, -delete_int, 'std::unordered_map', 86.000000, 189.000000, 261.000000, 265.000000, 292.000000, 295.000000, 298.000000, 312.000000, 334.000000, -delete_int, 'std::unordered_map', 106.000000, 213.000000, 225.000000, 258.000000, 280.000000, 287.000000, 297.000000, 313.000000, 322.000000, -delete_int, 'std::unordered_map', 89.000000, 168.000000, 231.000000, 256.000000, 281.000000, 287.000000, 310.000000, 312.000000, 317.000000, -delete_int, 'std::unordered_map', 249.000000, 196.000000, 224.000000, 266.000000, 279.000000, 295.000000, 304.000000, 304.000000, 320.000000, -delete_int, 'std::unordered_map', 98.000000, 175.000000, 233.000000, 256.000000, 283.000000, 292.000000, 305.000000, 307.000000, 331.000000, -delete_int, 'std::unordered_map', 87.000000, 174.000000, 227.000000, 244.000000, 297.000000, 290.000000, 300.000000, 316.000000, 320.000000, -delete_int, 'std::unordered_map', 97.000000, 172.000000, 221.000000, 289.000000, 276.000000, 285.000000, 304.000000, 324.000000, 321.000000, -delete_int, 'std::unordered_map', 95.000000, 169.000000, 225.000000, 251.000000, 286.000000, 291.000000, 301.000000, 314.000000, 328.000000, -delete_int, 'std::unordered_map', 91.000000, 194.000000, 382.000000, 271.000000, 298.000000, 295.000000, 316.000000, 304.000000, 317.000000, diff --git a/src/generator.cpp b/src/generator.cpp index 9795ffa..9502d8f 100644 --- a/src/generator.cpp +++ b/src/generator.cpp @@ -5,7 +5,7 @@ std::string gen_string() { // 90^size posibilities std::string randomstring; for (int i = 0; i < 5; ++i) { - randomstring += gen_char(generator); + randomstring += singlechar(generator); } return randomstring; } @@ -13,16 +13,15 @@ std::string gen_string() { // 90^size posibilities std::string gen_unsuccesfull_string() { // 90^size posibilities std::string randomstring; for (int i = 0; i < 4; ++i) { - randomstring += gen_char(generator); + randomstring += singlechar(generator);// } return randomstring; } - int gen_int(){ - return gen_insert_int(generator); + return insert_int(generator); } int gen_unsuccesfull_int(){ - return gen_noninsert_int(generator); -} \ No newline at end of file + return noninsert_int(generator); +} diff --git a/src/includes/aggregate_tests.h b/src/includes/aggregate_tests.h index 92ba37d..f7bc7b9 100644 --- a/src/includes/aggregate_tests.h +++ b/src/includes/aggregate_tests.h @@ -6,15 +6,12 @@ #include -std::vector sizes = { +vector sizes = { 50000, 100000, 150000, 200000, 250000, 300000, 350000, 400000, 500000, 600000, 700000, 800000, 900000, 1000000, 2000000, 3000000, 4000000, 5000000, 6000000, 7000000, 8000000, 9000000, 10000000, - 15000000, 20000000, 25000000, 30000000, 35000000, - 40000000, 45000000, 50000000 + // 15000000, 20000000, 25000000, 30000000, 35000000, 40000000, 45000000, 50000000 }; - - // to print type info template @@ -47,113 +44,61 @@ std::basic_string_view name(T var){ template -int int_test(T map, int repeats=30){ - std::cout << "\t\t" << name(map) << "int tests \n"; +void int_test_aggregate(T map, int runs){ std::ofstream output{"results.csv", std::ios_base::app}; - // insert int tests - for (int i = 0; i < repeats; ++i){ - std::string resultline = "insert_int, '" + std::string{name(map)} + "', "; - for (auto size: sizes){ - float result = insert_int_test(size, T{}).count(); - resultline += std::to_string(result); - resultline += ", "; - } - output << resultline << "\n"; - } - std::cout << "insert int test done\n"; + for (int i = 0; i < runs; ++i); + string insert = "\nint_insert, '"; + string succ_lookup = "\nint_succ_lookup, '"; + string nosucc_lookup = "\nint_nosucc_lookup, '"; + string delet = "\nint_delete, '"; - // lookup int - for (int i = 0; i < repeats; ++i){ - std::string resultline = "lookup_int, '" + std::string{name(map)} + "', "; - for (auto size: sizes){ - float result = lookup_int_test(size, T{}).count(); - resultline += std::to_string(result); - resultline += ", "; + insert += string{name(map)} + "'"; + succ_lookup += string{name(map)} + "'" ; + nosucc_lookup += string{name(map)} +"'" ; + delet += string{name(map)} + "'" ; + for ( auto size : sizes){ + vector results = int_test(map, size); + + insert += ", " + std::to_string(results[0]); + succ_lookup += ", " + std::to_string(results[1]); + nosucc_lookup +=", " + std::to_string(results[2]); + delet += ", " + std::to_string(results[3]); } - output << resultline << "\n"; - } - std::cout << "lookup int test done\n"; - // unsuccesful lookup - for (int i = 0; i < repeats; ++i){ - std::string resultline = "nolookup_int, '" + std::string{name(map)} + "', "; - for (auto size: sizes){ - float result = nolookup_int_test(size, T{}).count(); - resultline += std::to_string(result); - resultline += ", "; - } - output << resultline << "\n"; - } - std::cout << "unsuccesful lookup int test done\n"; - - // deletion - for (int i = 0; i < repeats; ++i){ - std::string resultline = "delete_int, '" + std::string{name(map)} + "', "; - for (auto size: sizes){ - float result = delete_int_test(size, T{}).count(); - resultline += std::to_string(result); - resultline += ", "; - } - output << resultline << "\n"; - } - std::cout << "deletion int test done\n"; - return 0; + output << insert << succ_lookup << nosucc_lookup << delet; + cout << insert << succ_lookup << nosucc_lookup << delet; + } + template -int string_test(T map, int repeats=30){ - std::cout <<"\t\t" << name(map) << " stringtest \n"; +void string_test_aggregate(T map, int runs){ std::ofstream output{"results.csv", std::ios_base::app}; - // insert int tests - for (int i = 0; i < repeats; ++i){ - std::string resultline = "insert_string, '" + std::string{name(map)} + "', "; - for (auto size: sizes){ - float result = insert_string_test(size, T{}).count(); - resultline += std::to_string(result); - resultline += ", "; - } - output << resultline << "\n"; - } - std::cout << "insert string test done\n"; + for (int i = 0; i < runs; ++i); + string insert = "\nint_insert, '"; + string succ_lookup = "\nint_succ_lookup, '"; + string nosucc_lookup = "\nint_nosucc_lookup, '"; + string delet = "\nint_delete, '"; - // lookup int - for (int i = 0; i < repeats; ++i){ - std::string resultline = "lookup_string, '" + std::string{name(map)} + "', "; - for (auto size: sizes){ - float result = lookup_string_test(size, T{}).count(); - resultline += std::to_string(result); - resultline += ", "; + insert += string{name(map)} + "'"; + succ_lookup += string{name(map)} + "'" ; + nosucc_lookup += string{name(map)} +"'" ; + delet += string{name(map)} + "'" ; + for ( auto size : sizes){ + vector results = string_test(map, size); + + insert += ", " + std::to_string(results[0]); + succ_lookup += ", " + std::to_string(results[1]); + nosucc_lookup +=", " + std::to_string(results[2]); + delet += ", " + std::to_string(results[3]); } - output << resultline << "\n"; - } - std::cout << "lookup string test done\n"; - // unsuccesful lookup - for (int i = 0; i < repeats; ++i){ - std::string resultline = "nolookup_string, '" + std::string{name(map)} + "', "; - for (auto size: sizes){ - float result = nolookup_string_test(size, T{}).count(); - resultline += std::to_string(result); - resultline += ", "; - } - output << resultline << "\n"; - } - std::cout << "unsuccesful lookup string test done\n"; - // deletion - for (int i = 0; i < repeats; ++i){ - std::string resultline = "delete_string, '" + std::string{name(map)} + "', "; - for (auto size: sizes){ - float result = delete_string_test(size, T{}).count(); - resultline += std::to_string(result); - resultline += ", "; - } - output << resultline << "\n"; - } - std::cout << "deletion string test done\n"; - - - return 0; + output << insert << succ_lookup << nosucc_lookup << delet; + cout << insert << succ_lookup << nosucc_lookup << delet; + + } + #endif \ No newline at end of file diff --git a/src/includes/generator.h b/src/includes/generator.h index f6839cb..f91b7dd 100644 --- a/src/includes/generator.h +++ b/src/includes/generator.h @@ -8,9 +8,9 @@ #include #include static std::mt19937 generator(INT32_MAX - 2020); -static std::uniform_int_distribution gen_insert_int(1, INT32_MAX * 0.875); -static std::uniform_int_distribution gen_noninsert_int(INT32_MAX * 0.875, INT32_MAX); -static std::uniform_int_distribution gen_char(33, 123); +static std::uniform_int_distribution insert_int(1, INT32_MAX * 0.875); +static std::uniform_int_distribution noninsert_int(INT32_MAX * 0.875, INT32_MAX); +static std::uniform_int_distribution singlechar(33, 123); int gen_int(); diff --git a/src/includes/tests.h b/src/includes/tests.h index b44331a..fead026 100644 --- a/src/includes/tests.h +++ b/src/includes/tests.h @@ -7,311 +7,201 @@ #include #include +// maps +#include + +// own #include "./generator.h" using namespace std::chrono; +using std::vector; +using std::string; +using std::cout; + + +// since my testing is based on this function, this one doesn't need no prep +void prepare(std::unordered_map& map,int size){ + map.reserve(size); + return; +} +void prepare(std::unordered_map& map,int size){ + map.reserve(size); + return; +} + +void prepare(google::sparse_hash_map& map, int size){ + map.set_deleted_key(0); + return; +} -// writing out type info -// https://stackoverflow.com/questions/81870/is-it-possible-to-print-a-variables-type-in-standard-c/56766138#56766138 template -nanoseconds insert_int_test(int size, T testmap){ - // init hashmap, insert size - 10k items - testmap.reserve(size); - for (int i = 0; i < size - 10000; ++i){ - int a = gen_int(); - testmap.insert({a,a}); - } - // generate 10k keys - std::vector keys(10000); - std::generate(keys.begin(), keys.end(), gen_int); - - // benchmark vector access time - time_point start_v_access = steady_clock::now(); - for (auto i : keys){ - if (i == -1) { // it'll never be, this is just anti optimisation - std::cout << "Something is very wrong!"; - } +vector int_test(T testmap, int size){ + vector results; // insert, lookup, unsuccesful lookup, delete times + vector sample_keys; // get a sample of keys to lookup and later delete - } - time_point end_v_access = steady_clock::now(); - auto vector_time = duration_cast(end_v_access - start_v_access); + // unsuccesful lookup keys + vector nonkeys(10000); + std::generate(nonkeys.begin(), nonkeys.end(), gen_unsuccesfull_int); - // measure insert time - time_point start_insert_test = steady_clock::now(); - for (auto i : keys){ + // keys for insert test + vector insert_keys(10000); + std::generate(insert_keys.begin(), insert_keys.end(), gen_int); + + // T testmap {}; + prepare(testmap, size); // do special actions, such as setting the tombstone marker for other, more exotic hashmaps + + { // seperate scope, so all_keys gets destroyed. for good measure, empty it too + vector all_keys(size - 10000); + std::generate(all_keys.begin(), all_keys.end(), gen_int); + std::sample(all_keys.begin(), all_keys.end(), std::back_inserter(sample_keys), 10000, generator); + + for (auto i : all_keys){ testmap.insert({i,i}); } - time_point end_insert_test = steady_clock::now(); - testmap.clear(); - // time per insert - auto duration = duration_cast(end_insert_test - start_insert_test) - vector_time ; - return duration / 10000; + all_keys.clear(); + } + + + // testing vector access times to subtract later + time_point vector_start = steady_clock::now(); + for (auto i : sample_keys){ + if (i == -1 ) cout << "WTF"; // should never run, is here so loop doesnt get optimized away + } + time_point vector_end = steady_clock::now(); + auto vector_acces_time = duration_cast(vector_end - vector_start); + + + // insertion test + time_point insert_start = steady_clock::now(); + for (auto key : insert_keys){ + testmap.insert({key,key}); + } + time_point insert_end = steady_clock::now(); + + auto insert_time = (duration_cast(insert_end - insert_start) - vector_acces_time) / 10000 ; + results.push_back(insert_time.count()); + // remove some memory + insert_keys.clear(); + + // lookup test + time_point lookup_start = steady_clock::now(); + for (auto key : sample_keys){ + if (testmap[key] == 0) cout << "WTF"; + } + time_point lookup_end = steady_clock::now(); + auto lookup_time = (duration_cast(lookup_end - lookup_start) - vector_acces_time)/10000; + results.push_back(lookup_time.count()); + + // unsuccesful lookup test + time_point unlookup_start = steady_clock::now(); + for (auto key : nonkeys){ + if (testmap[key] == -1) cout << "WTF"; + } + time_point unlookup_end = steady_clock::now(); + auto unlookup_time = (duration_cast(unlookup_end - unlookup_start) - vector_acces_time) / 10000 ; + results.push_back(unlookup_time.count()); + //free some memoru + nonkeys.clear(); + + + // delete test + time_point delete_start = steady_clock::now(); + for (auto key : sample_keys){ + testmap.erase(key); + } + + time_point delete_end = steady_clock::now(); + auto delete_time = (duration_cast(delete_end - delete_start) - vector_acces_time) / 10000; + results.push_back(delete_time.count()); + return results; } + + + template -nanoseconds insert_string_test(int size, T testmap){ - // init hashmap, insert size - 10k items - testmap.reserve(size); - for (int i = 0; i < size - 10000; ++i){ - std::string temp = gen_string(); - testmap.insert({temp,temp}); - } - // generate 10k keys - std::vector keys(10000); - std::generate(keys.begin(), keys.end(), gen_string); - - // benchmark vector access time - time_point start_v_access = steady_clock::now(); - for (auto i : keys){ - if (i == "a") { // it'll never be, this is just anti optimisation - std::cout << "Something is very wrong!"; - } +vector string_test(T map, int size){ + vector results; // insert, lookup, unsuccesful lookup, delete times + vector sample_keys; // get a sample of keys to lookup and later delete - } - time_point end_v_access = steady_clock::now(); - auto vector_time = duration_cast(end_v_access - start_v_access); + // unsuccesful lookup keys + vector nonkeys(10000); + std::generate(nonkeys.begin(), nonkeys.end(), gen_unsuccesfull_string); - // measure insert time - time_point start_insert_test = steady_clock::now(); - for (auto i : keys){ + // keys for insert test + vector insert_keys(10000); + std::generate(insert_keys.begin(), insert_keys.end(), gen_string); + + T testmap {}; + prepare(testmap, size); // do special actions, such as setting the tombstone marker for other, more exotic hashmaps + + { // seperate scope, so all_keys gets destroyed. for good measure, empty it too + vector all_keys(size - 10000); + std::generate(all_keys.begin(), all_keys.end(), gen_string); + std::sample(all_keys.begin(), all_keys.end(), std::back_inserter(sample_keys), 10000, generator); + + for (auto i : all_keys){ testmap.insert({i,i}); } - time_point end_insert_test = steady_clock::now(); - testmap.clear(); - // time per insert - auto duration = duration_cast(end_insert_test - start_insert_test) - vector_time ; - return duration / 10000; + all_keys.clear(); + } -} -template -nanoseconds lookup_int_test(int size, T testmap){ - // reserve, get random 10k keys that are inserted, insert keys - testmap.reserve(size); - std::vector sample_inserted; - sample_inserted.reserve(10000); + // testing vector access times to subtract later + time_point vector_start = steady_clock::now(); + for (auto i : sample_keys){ + if (i == "" ) cout << "WTF"; // should never run, is here so loop doesnt get optimized away + } + time_point vector_end = steady_clock::now(); + auto vector_acces_time = duration_cast(vector_end - vector_start); + + + // insertion test + time_point insert_start = steady_clock::now(); + for (auto key : insert_keys){ + testmap.insert({key,key}); + } + time_point insert_end = steady_clock::now(); + + auto insert_time = (duration_cast(insert_end - insert_start) - vector_acces_time) / 10000 ; + results.push_back(insert_time.count()); + // remove some memory + insert_keys.clear(); + + // lookup test + time_point lookup_start = steady_clock::now(); + for (auto key : sample_keys){ + if (testmap[key] == "") cout << "WTF"; + } + time_point lookup_end = steady_clock::now(); + auto lookup_time = (duration_cast(lookup_end - lookup_start) - vector_acces_time)/10000; + results.push_back(lookup_time.count()); + + // unsuccesful lookup test + time_point unlookup_start = steady_clock::now(); + for (auto key : nonkeys){ + if (testmap[key] == "") cout << "WTF"; + } + time_point unlookup_end = steady_clock::now(); + auto unlookup_time = (duration_cast(unlookup_end - unlookup_start) - vector_acces_time) / 10000 ; + results.push_back(unlookup_time.count()); + //free some memoru + nonkeys.clear(); + + // delete test + time_point delete_start = steady_clock::now(); + for (auto key : sample_keys){ + testmap.erase(key); + } - - { - std::vector keys(size); - std::generate(keys.begin(), keys.end(), gen_int); - std::sample(keys.begin(), keys.end(), std::back_inserter(sample_inserted) , 10000, generator); - for (auto i : keys){ - testmap.insert({i, i}); - } - } - // benchmark vector access time - time_point start_v_access = steady_clock::now(); - for (auto i : sample_inserted){ - if (i == -1) { // it'll never be, this is just anti optimisation - std::cout << "Something is very wrong!"; - } - } - time_point end_v_access = steady_clock::now(); - auto vector_time = duration_cast(end_v_access - start_v_access); + time_point delete_end = steady_clock::now(); + auto delete_time = (duration_cast(delete_end - delete_start) - vector_acces_time) / 10000; + results.push_back(delete_time.count()); + return results; - // benchmark access time of hashmap - time_point start_benchmark = steady_clock::now(); - for (auto i : sample_inserted){ - if (testmap[i] == -1){ - std::cout << "SOMETHUNG IS WRONG!"; - } - } - testmap.clear(); - time_point end_benchmark = steady_clock::now(); - auto duration = duration_cast(end_benchmark - start_benchmark) - vector_time; - return duration / 10000; } -template -nanoseconds lookup_string_test(int size, T testmap){ - // reserve, get random 10k keys that are inserted, insert keys - testmap.reserve(size); - std::vector sample_inserted(1000); - // sample_inserted.reserve(10000); - { - std::vector keys(size); - std::generate(keys.begin(), keys.end(), gen_string); - std::sample(keys.begin(), keys.end(), std::back_inserter(sample_inserted) , 10000, generator); - for (auto i : keys){ - testmap.insert({i, i}); - } - } - // benchmark vector access time - time_point start_v_access = steady_clock::now(); - for (auto i : sample_inserted){ - if (i == "a") { // it'll never be, this is just anti optimisation - std::cout << "Something is very wrong!"; - } - } - time_point end_v_access = steady_clock::now(); - auto vector_time = duration_cast(end_v_access - start_v_access); - - // benchmark access time of hashmap - time_point start_benchmark = steady_clock::now(); - - for (auto i : sample_inserted){ - if (testmap[i] == "a"){ - std::cout << "SOMETHUNG IS WRONG!"; - } - } - testmap.clear(); - time_point end_benchmark = steady_clock::now(); - auto duration = duration_cast(end_benchmark - start_benchmark) - vector_time; - return duration / 10000; -} - - - - -template -nanoseconds nolookup_int_test(int size, T testmap){ - // reserve, get random 10k keys that are inserted, insert keys - testmap.reserve(size); - std::vectorlookup_keys(10000); - std::generate(lookup_keys.begin(), lookup_keys.end(), gen_unsuccesfull_int); - for (int i = 0; i < size; ++i){ - int temp = gen_int(); - testmap.insert({temp, temp}); - } - - // benchmark vector access time - time_point start_v_access = steady_clock::now(); - for (auto i : lookup_keys){ - if (i == -1) { // it'll never be, this is just anti optimisation - std::cout << "Something is very wrong!"; - } - } - time_point end_v_access = steady_clock::now(); - auto vector_time = duration_cast(end_v_access - start_v_access); - - - // benchmark access time of hashmap - time_point start_benchmark = steady_clock::now(); - for (auto i : lookup_keys){ - if (testmap[i] == -1){ - std::cout << "SOMETHUNG IS WRONG!"; - } - } - testmap.clear(); - time_point end_benchmark = steady_clock::now(); - auto duration = duration_cast(end_benchmark - start_benchmark) - vector_time; - return duration / 10000; -} - - -template -nanoseconds nolookup_string_test(int size, T testmap){ - // reserve, get random 10k keys that are inserted, insert keys - testmap.reserve(size); - std::vectorlookup_keys(10000); - std::generate(lookup_keys.begin(), lookup_keys.end(), gen_unsuccesfull_string); - for (int i = 0; i < size; ++i){ - std::string temp = gen_string(); - testmap.insert({temp, temp}); - } - - // benchmark vector access time - time_point start_v_access = steady_clock::now(); - for (auto i : lookup_keys){ - if (i == "a") { // it'll never be, this is just anti optimisation - std::cout << "Something is very wrong!"; - } - } - time_point end_v_access = steady_clock::now(); - auto vector_time = duration_cast(end_v_access - start_v_access); - - - // benchmark access time of hashmap - time_point start_benchmark = steady_clock::now(); - for (auto i : lookup_keys){ - if (testmap[i] == "a"){ - std::cout << "SOMETHUNG IS WRONG!"; - } - } - testmap.clear(); - time_point end_benchmark = steady_clock::now(); - auto duration = duration_cast(end_benchmark - start_benchmark) - vector_time; - return duration / 10000; -} - - - -template -nanoseconds delete_int_test(int size, T testmap){ - // reserve, get random 10k keys that are inserted, insert keys - testmap.reserve(size); - std::vector sample_inserted; - sample_inserted.reserve(10000); - - { - std::vector keys(size); - std::generate(keys.begin(), keys.end(), gen_int); - std::sample(keys.begin(), keys.end(), std::back_inserter(sample_inserted) , 10000, generator); - for (auto i : keys){ - testmap.insert({i, i}); - } - } - // benchmark vector access time - time_point start_v_access = steady_clock::now(); - for (auto i : sample_inserted){ - if (i == -1) { // it'll never be, this is just anti optimisation - std::cout << "Something is very wrong!"; - } - } - time_point end_v_access = steady_clock::now(); - auto vector_time = duration_cast(end_v_access - start_v_access); - - // benchmark access time of hashmap - time_point start_benchmark = steady_clock::now(); - for (auto i : sample_inserted){ - testmap.erase(i); - } - testmap.clear(); - time_point end_benchmark = steady_clock::now(); - auto duration = duration_cast(end_benchmark - start_benchmark) - vector_time; - return duration / 10000; -} - - - -template -nanoseconds delete_string_test(int size, T testmap){ - // reserve, get random 10k keys that are inserted, insert keys - testmap.reserve(size); - std::vector sample_inserted; - sample_inserted.reserve(10000); - - { - std::vector keys(size); - std::generate(keys.begin(), keys.end(), gen_string); - std::sample(keys.begin(), keys.end(), std::back_inserter(sample_inserted) , 10000, generator); - for (auto i : keys){ - testmap.insert({i, i}); - } - } - // benchmark vector access time - time_point start_v_access = steady_clock::now(); - for (auto i : sample_inserted){ - if (i == "a") { // it'll never be, this is just anti optimisation - std::cout << "Something is very wrong!"; - } - } - time_point end_v_access = steady_clock::now(); - auto vector_time = duration_cast(end_v_access - start_v_access); - - // benchmark access time of hashmap - time_point start_benchmark = steady_clock::now(); - for (auto i : sample_inserted){ - testmap.erase(i); - } - testmap.clear(); - time_point end_benchmark = steady_clock::now(); - auto duration = duration_cast(end_benchmark - start_benchmark) - vector_time; - return duration / 10000; -} - #endif /* TESTS_H */ \ No newline at end of file