This commit is contained in:
TinyAtoms 2020-02-05 13:56:39 -03:00
parent 43c534f3ee
commit 64adaa9be1
38 changed files with 234 additions and 3183 deletions

View File

@ -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

File diff suppressed because one or more lines are too long

View File

@ -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 "")

View File

@ -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 "")

View File

@ -1,15 +0,0 @@
set(CMAKE_HOST_SYSTEM "Linux-5.3.12-1-MANJARO")
set(CMAKE_HOST_SYSTEM_NAME "Linux")
set(CMAKE_HOST_SYSTEM_VERSION "5.3.12-1-MANJARO")
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_SYSTEM "Linux-5.3.12-1-MANJARO")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_VERSION "5.3.12-1-MANJARO")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)

View File

@ -1,665 +0,0 @@
#ifdef __cplusplus
# error "A C++ compiler has been selected for C."
#endif
#if defined(__18CXX)
# define ID_VOID_MAIN
#endif
#if defined(__CLASSIC_C__)
/* cv-qualifiers did not exist in K&R C */
# define const
# define volatile
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# if defined(__GNUC__)
# define SIMULATE_ID "GNU"
# endif
/* __INTEL_COMPILER = VRP */
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_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

View File

@ -1,644 +0,0 @@
/* This source file must have a .cpp extension so that all C++ compilers
recognize the extension without flags. Borland does not know .cxx for
example. */
#ifndef __cplusplus
# error "A C compiler has been selected for C++."
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__COMO__)
# define COMPILER_ID "Comeau"
/* __COMO_VERSION__ = VRR */
# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
#elif defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# if defined(__GNUC__)
# define SIMULATE_ID "GNU"
# endif
/* __INTEL_COMPILER = VRP */
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_CC)
# define COMPILER_ID "SunPro"
# if __SUNPRO_CC >= 0x5100
/* __SUNPRO_CC = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# endif
#elif defined(__HP_aCC)
# define COMPILER_ID "HP"
/* __HP_aCC = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
#elif defined(__DECCXX)
# define COMPILER_ID "Compaq"
/* __DECCXX_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__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;
}

View File

@ -1,16 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/massiveatoms/Desktop/studieproject/homebrew")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})

View File

@ -1,126 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.15
# The generator used is:
set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
# The top level Makefile was generated from the following files:
set(CMAKE_MAKEFILE_DEPENDS
"CMakeCache.txt"
"../CMakeLists.txt"
"CMakeFiles/3.15.5/CMakeCCompiler.cmake"
"CMakeFiles/3.15.5/CMakeCXXCompiler.cmake"
"CMakeFiles/3.15.5/CMakeSystem.cmake"
"/usr/share/cmake-3.15/Modules/CMakeCCompiler.cmake.in"
"/usr/share/cmake-3.15/Modules/CMakeCCompilerABI.c"
"/usr/share/cmake-3.15/Modules/CMakeCInformation.cmake"
"/usr/share/cmake-3.15/Modules/CMakeCXXCompiler.cmake.in"
"/usr/share/cmake-3.15/Modules/CMakeCXXCompilerABI.cpp"
"/usr/share/cmake-3.15/Modules/CMakeCXXInformation.cmake"
"/usr/share/cmake-3.15/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
"/usr/share/cmake-3.15/Modules/CMakeCommonLanguageInclude.cmake"
"/usr/share/cmake-3.15/Modules/CMakeCompilerIdDetection.cmake"
"/usr/share/cmake-3.15/Modules/CMakeDetermineCCompiler.cmake"
"/usr/share/cmake-3.15/Modules/CMakeDetermineCXXCompiler.cmake"
"/usr/share/cmake-3.15/Modules/CMakeDetermineCompileFeatures.cmake"
"/usr/share/cmake-3.15/Modules/CMakeDetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/CMakeDetermineCompilerABI.cmake"
"/usr/share/cmake-3.15/Modules/CMakeDetermineCompilerId.cmake"
"/usr/share/cmake-3.15/Modules/CMakeDetermineSystem.cmake"
"/usr/share/cmake-3.15/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake"
"/usr/share/cmake-3.15/Modules/CMakeFindBinUtils.cmake"
"/usr/share/cmake-3.15/Modules/CMakeFindCodeBlocks.cmake"
"/usr/share/cmake-3.15/Modules/CMakeGenericSystem.cmake"
"/usr/share/cmake-3.15/Modules/CMakeInitializeConfigs.cmake"
"/usr/share/cmake-3.15/Modules/CMakeLanguageInformation.cmake"
"/usr/share/cmake-3.15/Modules/CMakeParseImplicitIncludeInfo.cmake"
"/usr/share/cmake-3.15/Modules/CMakeParseImplicitLinkInfo.cmake"
"/usr/share/cmake-3.15/Modules/CMakeSystem.cmake.in"
"/usr/share/cmake-3.15/Modules/CMakeSystemSpecificInformation.cmake"
"/usr/share/cmake-3.15/Modules/CMakeSystemSpecificInitialize.cmake"
"/usr/share/cmake-3.15/Modules/CMakeTestCCompiler.cmake"
"/usr/share/cmake-3.15/Modules/CMakeTestCXXCompiler.cmake"
"/usr/share/cmake-3.15/Modules/CMakeTestCompilerCommon.cmake"
"/usr/share/cmake-3.15/Modules/CMakeUnixFindMake.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/ADSP-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Borland-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Clang-C.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Clang-CXX.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Clang-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Clang-FindBinUtils.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Clang.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Cray-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/GHS-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/GNU.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/HP-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/IAR-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Intel-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/MSVC-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/PGI-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/PathScale-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/SCO-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/TI-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/Watcom-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/XL-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.15/Modules/Internal/CMakeCheckCompilerFlag.cmake"
"/usr/share/cmake-3.15/Modules/Internal/FeatureTesting.cmake"
"/usr/share/cmake-3.15/Modules/Platform/Linux-Clang-C.cmake"
"/usr/share/cmake-3.15/Modules/Platform/Linux-Clang-CXX.cmake"
"/usr/share/cmake-3.15/Modules/Platform/Linux-Determine-CXX.cmake"
"/usr/share/cmake-3.15/Modules/Platform/Linux-GNU-C.cmake"
"/usr/share/cmake-3.15/Modules/Platform/Linux-GNU-CXX.cmake"
"/usr/share/cmake-3.15/Modules/Platform/Linux-GNU.cmake"
"/usr/share/cmake-3.15/Modules/Platform/Linux.cmake"
"/usr/share/cmake-3.15/Modules/Platform/UnixPaths.cmake"
"/usr/share/cmake-3.15/Modules/ProcessorCount.cmake"
)
# The corresponding makefile is:
set(CMAKE_MAKEFILE_OUTPUTS
"Makefile"
"CMakeFiles/cmake.check_cache"
)
# Byproducts of CMake generate step:
set(CMAKE_MAKEFILE_PRODUCTS
"CMakeFiles/3.15.5/CMakeSystem.cmake"
"CMakeFiles/3.15.5/CMakeCCompiler.cmake"
"CMakeFiles/3.15.5/CMakeCXXCompiler.cmake"
"CMakeFiles/3.15.5/CMakeCCompiler.cmake"
"CMakeFiles/3.15.5/CMakeCXXCompiler.cmake"
"CMakeFiles/CMakeDirectoryInformation.cmake"
)
# Dependency information for all targets:
set(CMAKE_DEPEND_INFO_FILES
"CMakeFiles/another_studproject.dir/DependInfo.cmake"
)

View File

@ -1,111 +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
# The main recursive all target
all:
.PHONY : all
# The main recursive preinstall target
preinstall:
.PHONY : preinstall
#=============================================================================
# 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
#=============================================================================
# Directory level rules for the build root directory
# The main recursive "clean" target.
clean: CMakeFiles/another_studproject.dir/clean
.PHONY : clean
#=============================================================================
# Target rules for target CMakeFiles/another_studproject.dir
# All Build rule for target.
CMakeFiles/another_studproject.dir/all:
$(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/depend
$(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target another_studproject"
.PHONY : CMakeFiles/another_studproject.dir/all
# Include target in all.
all: CMakeFiles/another_studproject.dir/all
.PHONY : all
# Build rule for subdir invocation for target.
CMakeFiles/another_studproject.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles 2
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/another_studproject.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles 0
.PHONY : CMakeFiles/another_studproject.dir/rule
# Convenience name for target.
another_studproject: CMakeFiles/another_studproject.dir/rule
.PHONY : another_studproject
# clean rule for target.
CMakeFiles/another_studproject.dir/clean:
$(MAKE) -f CMakeFiles/another_studproject.dir/build.make CMakeFiles/another_studproject.dir/clean
.PHONY : CMakeFiles/another_studproject.dir/clean
#=============================================================================
# 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

View File

@ -1,3 +0,0 @@
/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles/rebuild_cache.dir
/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles/another_studproject.dir
/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/CMakeFiles/edit_cache.dir

View File

@ -1,28 +0,0 @@
#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">])
#IncludeRegexScan: ^.*$
#IncludeRegexComplain: ^$
#IncludeRegexTransform:
/home/massiveatoms/Desktop/studieproject/homebrew/main.cpp
iostream
-
vector
-
unordered_map
-
algorithm
-
random
-
iterator
-
chrono
-
string
-
math.h
-

View File

@ -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 "")

View File

@ -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

View File

@ -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()

View File

@ -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

View File

@ -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

View File

@ -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 =

View File

@ -1 +0,0 @@
/usr/bin/clang++ -g CMakeFiles/another_studproject.dir/main.cpp.o -o another_studproject

View File

@ -1,3 +0,0 @@
CMAKE_PROGRESS_1 = 1
CMAKE_PROGRESS_2 = 2

View File

@ -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

View File

@ -1 +0,0 @@
# This file is generated by cmake for dependency checking of the CMakeCache.txt file

View File

@ -1 +0,0 @@
2

View File

@ -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

View File

@ -1,90 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6"/>
<Project>
<Option title="another_studproject"/>
<Option makefile_is_custom="1"/>
<Option compiler="clang"/>
<Option virtualFolders="CMake Files\;"/>
<Build>
<Target title="all">
<Option working_dir="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug"/>
<Option type="4"/>
<MakeCommands>
<Build command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 all"/>
<CompileFile command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="rebuild_cache">
<Option working_dir="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug"/>
<Option type="4"/>
<MakeCommands>
<Build command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 rebuild_cache"/>
<CompileFile command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="another_studproject">
<Option output="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/another_studproject" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug"/>
<Option object_output="./"/>
<Option type="1"/>
<Option compiler="clang"/>
<Compiler>
<Add directory="/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0"/>
<Add directory="/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/x86_64-pc-linux-gnu"/>
<Add directory="/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/backward"/>
<Add directory="/usr/local/include"/>
<Add directory="/usr/lib/clang/9.0.0/include"/>
<Add directory="/usr/include"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 another_studproject"/>
<CompileFile command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="another_studproject/fast">
<Option output="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/another_studproject" prefix_auto="0" extension_auto="0"/>
<Option working_dir="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug"/>
<Option object_output="./"/>
<Option type="1"/>
<Option compiler="clang"/>
<Compiler>
<Add directory="/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0"/>
<Add directory="/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/x86_64-pc-linux-gnu"/>
<Add directory="/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/backward"/>
<Add directory="/usr/local/include"/>
<Add directory="/usr/lib/clang/9.0.0/include"/>
<Add directory="/usr/include"/>
</Compiler>
<MakeCommands>
<Build command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 another_studproject/fast"/>
<CompileFile command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
<Target title="edit_cache">
<Option working_dir="/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug"/>
<Option type="4"/>
<MakeCommands>
<Build command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 edit_cache"/>
<CompileFile command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 &quot;$file&quot;"/>
<Clean command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
<DistClean command="/usr/bin/make -j4 -f &quot;/home/massiveatoms/Desktop/studieproject/homebrew/cmake-build-debug/Makefile&quot; VERBOSE=1 clean"/>
</MakeCommands>
</Target>
</Build>
<Unit filename="/home/massiveatoms/Desktop/studieproject/homebrew/main.cpp">
<Option target="another_studproject"/>
</Unit>
<Unit filename="/home/massiveatoms/Desktop/studieproject/homebrew/CMakeLists.txt">
<Option virtualFolder="CMake Files\"/>
</Unit>
</Project>
</CodeBlocks_project_file>

View File

@ -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}")

View File

@ -2,19 +2,24 @@
#include <unordered_map>
#include <functional>
#include <fstream>
#include <sparsehash/sparse_hash_map>
#include "./src/includes/aggregate_tests.h"
// typedef std::unordered_map<int,int> map;
// typedef google::sparse_hash_map<int, int> intmap;
// typedef google::sparse_hash_map<std::string,std::string> stringmap
typedef std::unordered_map<int, int> intmap;
typedef std::unordered_map<string, string> 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<steady_clock> start_test = steady_clock::now();
string_test(std::unordered_map<std::string, std::string>{}, 1); // process gets killed for sizes >35000
int_test(std::unordered_map<int, int>{}, 1);
// string_test(stringmap{}, 1); // process gets killed for sizes >35000
int_test_aggregate(intmap{}, 2);
string_test_aggregate(stringmap{}, 2);
time_point<steady_clock> end_test = steady_clock::now();
std::cout << "1 run all tests 1 map: " << duration_cast<minutes>(end_test-start_test).count() << " minutes";
// test takes 52 mins for 10 runs for one hashmap

View File

@ -1,160 +0,0 @@
insert_string, 'std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 396.000000, 518.000000, 499.000000, 571.000000, 500.000000, 524.000000, 568.000000, 486.000000, 393.000000,
insert_int, 'std::unordered_map<int, int>', 107.000000, 164.000000, 260.000000, 223.000000, 268.000000, 387.000000, 379.000000, 325.000000, 299.000000,
insert_int, 'std::unordered_map<int, int>', 124.000000, 157.000000, 196.000000, 225.000000, 252.000000, 245.000000, 252.000000, 271.000000, 270.000000,
insert_int, 'std::unordered_map<int, int>', 93.000000, 184.000000, 272.000000, 217.000000, 242.000000, 255.000000, 308.000000, 259.000000, 257.000000,
insert_int, 'std::unordered_map<int, int>', 99.000000, 162.000000, 191.000000, 230.000000, 257.000000, 246.000000, 255.000000, 262.000000, 266.000000,
insert_int, 'std::unordered_map<int, int>', 97.000000, 171.000000, 202.000000, 231.000000, 244.000000, 240.000000, 260.000000, 352.000000, 266.000000,
insert_int, 'std::unordered_map<int, int>', 92.000000, 167.000000, 202.000000, 225.000000, 237.000000, 241.000000, 256.000000, 270.000000, 264.000000,
insert_int, 'std::unordered_map<int, int>', 98.000000, 226.000000, 201.000000, 236.000000, 342.000000, 400.000000, 268.000000, 375.000000, 259.000000,
insert_int, 'std::unordered_map<int, int>', 100.000000, 163.000000, 200.000000, 220.000000, 236.000000, 236.000000, 318.000000, 266.000000, 269.000000,
insert_int, 'std::unordered_map<int, int>', 104.000000, 157.000000, 198.000000, 221.000000, 262.000000, 238.000000, 251.000000, 263.000000, 265.000000,
insert_int, 'std::unordered_map<int, int>', 187.000000, 163.000000, 213.000000, 226.000000, 233.000000, 351.000000, 256.000000, 256.000000, 259.000000,
lookup_int, 'std::unordered_map<int, int>', 51.000000, 74.000000, 89.000000, 159.000000, 111.000000, 112.000000, 119.000000, 249.000000, 117.000000,
lookup_int, 'std::unordered_map<int, int>', 38.000000, 75.000000, 135.000000, 106.000000, 175.000000, 150.000000, 124.000000, 132.000000, 128.000000,
lookup_int, 'std::unordered_map<int, int>', 39.000000, 97.000000, 90.000000, 253.000000, 234.000000, 118.000000, 113.000000, 119.000000, 205.000000,
lookup_int, 'std::unordered_map<int, int>', 97.000000, 153.000000, 95.000000, 108.000000, 110.000000, 229.000000, 116.000000, 120.000000, 120.000000,
lookup_int, 'std::unordered_map<int, int>', 42.000000, 72.000000, 119.000000, 106.000000, 259.000000, 110.000000, 185.000000, 114.000000, 119.000000,
lookup_int, 'std::unordered_map<int, int>', 41.000000, 92.000000, 93.000000, 116.000000, 125.000000, 107.000000, 126.000000, 115.000000, 151.000000,
lookup_int, 'std::unordered_map<int, int>', 35.000000, 71.000000, 95.000000, 101.000000, 114.000000, 115.000000, 116.000000, 117.000000, 119.000000,
lookup_int, 'std::unordered_map<int, int>', 38.000000, 74.000000, 92.000000, 116.000000, 118.000000, 113.000000, 120.000000, 119.000000, 118.000000,
lookup_int, 'std::unordered_map<int, int>', 36.000000, 71.000000, 99.000000, 112.000000, 111.000000, 118.000000, 120.000000, 116.000000, 121.000000,
lookup_int, 'std::unordered_map<int, int>', 47.000000, 80.000000, 93.000000, 99.000000, 108.000000, 109.000000, 113.000000, 115.000000, 121.000000,
nolookup_int, 'std::unordered_map<int, int>', 518.000000, 684.000000, 1106.000000, 1448.000000, 2930.000000, 385.000000, 2598.000000, 267.000000, 273.000000,
nolookup_int, 'std::unordered_map<int, int>', 267.000000, 691.000000, 1114.000000, 1449.000000, 1874.000000, 248.000000, 4059.000000, 253.000000, 281.000000,
nolookup_int, 'std::unordered_map<int, int>', 244.000000, 686.000000, 1231.000000, 1441.000000, 2799.000000, 385.000000, 4337.000000, 367.000000, 489.000000,
nolookup_int, 'std::unordered_map<int, int>', 549.000000, 1295.000000, 1773.000000, 2237.000000, 3013.000000, 305.000000, 3861.000000, 373.000000, 318.000000,
nolookup_int, 'std::unordered_map<int, int>', 603.000000, 1225.000000, 1791.000000, 2229.000000, 2864.000000, 386.000000, 3968.000000, 300.000000, 392.000000,
nolookup_int, 'std::unordered_map<int, int>', 483.000000, 1295.000000, 1895.000000, 2190.000000, 2944.000000, 338.000000, 2703.000000, 269.000000, 349.000000,
nolookup_int, 'std::unordered_map<int, int>', 255.000000, 672.000000, 1208.000000, 1420.000000, 1865.000000, 254.000000, 3089.000000, 309.000000, 278.000000,
nolookup_int, 'std::unordered_map<int, int>', 386.000000, 788.000000, 1113.000000, 1428.000000, 2467.000000, 257.000000, 2606.000000, 263.000000, 272.000000,
nolookup_int, 'std::unordered_map<int, int>', 253.000000, 695.000000, 1134.000000, 1907.000000, 1862.000000, 341.000000, 3456.000000, 269.000000, 275.000000,
nolookup_int, 'std::unordered_map<int, int>', 393.000000, 702.000000, 1240.000000, 1444.000000, 1882.000000, 265.000000, 2602.000000, 268.000000, 269.000000,
delete_int, 'std::unordered_map<int, int>', 81.000000, 170.000000, 221.000000, 254.000000, 284.000000, 315.000000, 301.000000, 316.000000, 325.000000,
delete_int, 'std::unordered_map<int, int>', 92.000000, 178.000000, 225.000000, 252.000000, 281.000000, 289.000000, 308.000000, 342.000000, 321.000000,
delete_int, 'std::unordered_map<int, int>', 83.000000, 172.000000, 227.000000, 262.000000, 292.000000, 284.000000, 302.000000, 310.000000, 319.000000,
delete_int, 'std::unordered_map<int, int>', 89.000000, 153.000000, 226.000000, 268.000000, 278.000000, 305.000000, 308.000000, 317.000000, 325.000000,
delete_int, 'std::unordered_map<int, int>', 76.000000, 172.000000, 219.000000, 260.000000, 276.000000, 290.000000, 307.000000, 361.000000, 322.000000,
delete_int, 'std::unordered_map<int, int>', 113.000000, 164.000000, 225.000000, 254.000000, 276.000000, 295.000000, 308.000000, 309.000000, 316.000000,
delete_int, 'std::unordered_map<int, int>', 91.000000, 170.000000, 227.000000, 271.000000, 274.000000, 287.000000, 305.000000, 308.000000, 341.000000,
delete_int, 'std::unordered_map<int, int>', 82.000000, 166.000000, 223.000000, 258.000000, 287.000000, 294.000000, 311.000000, 312.000000, 316.000000,
delete_int, 'std::unordered_map<int, int>', 73.000000, 157.000000, 222.000000, 257.000000, 281.000000, 294.000000, 298.000000, 313.000000, 317.000000,
delete_int, 'std::unordered_map<int, int>', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 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<char>, std::__cxx11::basic_string<char> >', 241.000000, 313.000000, 341.000000, 395.000000, 367.000000, 373.000000, 417.000000, 376.000000, 386.000000,
insert_int, 'std::unordered_map<int, int>', 100.000000, 166.000000, 208.000000, 220.000000, 232.000000, 241.000000, 268.000000, 304.000000, 267.000000,
insert_int, 'std::unordered_map<int, int>', 121.000000, 151.000000, 195.000000, 288.000000, 231.000000, 244.000000, 250.000000, 265.000000, 274.000000,
insert_int, 'std::unordered_map<int, int>', 109.000000, 160.000000, 205.000000, 232.000000, 250.000000, 284.000000, 253.000000, 277.000000, 276.000000,
insert_int, 'std::unordered_map<int, int>', 100.000000, 170.000000, 199.000000, 227.000000, 233.000000, 255.000000, 257.000000, 256.000000, 267.000000,
insert_int, 'std::unordered_map<int, int>', 119.000000, 162.000000, 205.000000, 236.000000, 296.000000, 242.000000, 257.000000, 257.000000, 271.000000,
insert_int, 'std::unordered_map<int, int>', 109.000000, 295.000000, 214.000000, 241.000000, 240.000000, 238.000000, 263.000000, 265.000000, 263.000000,
insert_int, 'std::unordered_map<int, int>', 94.000000, 171.000000, 199.000000, 243.000000, 236.000000, 240.000000, 271.000000, 259.000000, 271.000000,
insert_int, 'std::unordered_map<int, int>', 103.000000, 162.000000, 203.000000, 230.000000, 254.000000, 252.000000, 260.000000, 264.000000, 317.000000,
insert_int, 'std::unordered_map<int, int>', 159.000000, 163.000000, 199.000000, 227.000000, 239.000000, 236.000000, 289.000000, 268.000000, 262.000000,
insert_int, 'std::unordered_map<int, int>', 97.000000, 157.000000, 195.000000, 221.000000, 256.000000, 240.000000, 258.000000, 281.000000, 268.000000,
lookup_int, 'std::unordered_map<int, int>', 42.000000, 82.000000, 89.000000, 103.000000, 113.000000, 112.000000, 115.000000, 113.000000, 116.000000,
lookup_int, 'std::unordered_map<int, int>', 38.000000, 69.000000, 87.000000, 102.000000, 107.000000, 109.000000, 116.000000, 118.000000, 124.000000,
lookup_int, 'std::unordered_map<int, int>', 38.000000, 73.000000, 104.000000, 101.000000, 109.000000, 109.000000, 114.000000, 125.000000, 126.000000,
lookup_int, 'std::unordered_map<int, int>', 50.000000, 113.000000, 92.000000, 112.000000, 106.000000, 150.000000, 149.000000, 129.000000, 118.000000,
lookup_int, 'std::unordered_map<int, int>', 42.000000, 83.000000, 94.000000, 108.000000, 110.000000, 192.000000, 119.000000, 120.000000, 118.000000,
lookup_int, 'std::unordered_map<int, int>', 39.000000, 72.000000, 94.000000, 105.000000, 109.000000, 115.000000, 119.000000, 116.000000, 128.000000,
lookup_int, 'std::unordered_map<int, int>', 39.000000, 73.000000, 95.000000, 101.000000, 112.000000, 111.000000, 117.000000, 112.000000, 124.000000,
lookup_int, 'std::unordered_map<int, int>', 36.000000, 72.000000, 93.000000, 97.000000, 110.000000, 109.000000, 117.000000, 128.000000, 120.000000,
lookup_int, 'std::unordered_map<int, int>', 38.000000, 74.000000, 108.000000, 104.000000, 105.000000, 110.000000, 115.000000, 119.000000, 117.000000,
lookup_int, 'std::unordered_map<int, int>', 36.000000, 76.000000, 93.000000, 99.000000, 111.000000, 110.000000, 126.000000, 119.000000, 118.000000,
nolookup_int, 'std::unordered_map<int, int>', 281.000000, 709.000000, 1156.000000, 1440.000000, 1869.000000, 251.000000, 2553.000000, 269.000000, 271.000000,
nolookup_int, 'std::unordered_map<int, int>', 251.000000, 689.000000, 1134.000000, 1444.000000, 1877.000000, 250.000000, 2580.000000, 263.000000, 271.000000,
nolookup_int, 'std::unordered_map<int, int>', 241.000000, 693.000000, 1114.000000, 1676.000000, 1891.000000, 361.000000, 2543.000000, 262.000000, 273.000000,
nolookup_int, 'std::unordered_map<int, int>', 255.000000, 691.000000, 1446.000000, 1435.000000, 1873.000000, 251.000000, 2567.000000, 271.000000, 271.000000,
nolookup_int, 'std::unordered_map<int, int>', 262.000000, 688.000000, 1139.000000, 1436.000000, 2272.000000, 247.000000, 2576.000000, 271.000000, 271.000000,
nolookup_int, 'std::unordered_map<int, int>', 264.000000, 716.000000, 1148.000000, 1451.000000, 1869.000000, 251.000000, 2579.000000, 265.000000, 269.000000,
nolookup_int, 'std::unordered_map<int, int>', 234.000000, 680.000000, 1145.000000, 1505.000000, 1887.000000, 310.000000, 2555.000000, 276.000000, 269.000000,
nolookup_int, 'std::unordered_map<int, int>', 242.000000, 676.000000, 1139.000000, 1438.000000, 1923.000000, 255.000000, 2591.000000, 269.000000, 281.000000,
nolookup_int, 'std::unordered_map<int, int>', 260.000000, 726.000000, 1152.000000, 1462.000000, 1896.000000, 267.000000, 2622.000000, 265.000000, 274.000000,
nolookup_int, 'std::unordered_map<int, int>', 285.000000, 708.000000, 1134.000000, 1439.000000, 1859.000000, 259.000000, 2568.000000, 262.000000, 276.000000,
delete_int, 'std::unordered_map<int, int>', 99.000000, 186.000000, 234.000000, 257.000000, 271.000000, 288.000000, 304.000000, 310.000000, 320.000000,
delete_int, 'std::unordered_map<int, int>', 86.000000, 189.000000, 261.000000, 265.000000, 292.000000, 295.000000, 298.000000, 312.000000, 334.000000,
delete_int, 'std::unordered_map<int, int>', 106.000000, 213.000000, 225.000000, 258.000000, 280.000000, 287.000000, 297.000000, 313.000000, 322.000000,
delete_int, 'std::unordered_map<int, int>', 89.000000, 168.000000, 231.000000, 256.000000, 281.000000, 287.000000, 310.000000, 312.000000, 317.000000,
delete_int, 'std::unordered_map<int, int>', 249.000000, 196.000000, 224.000000, 266.000000, 279.000000, 295.000000, 304.000000, 304.000000, 320.000000,
delete_int, 'std::unordered_map<int, int>', 98.000000, 175.000000, 233.000000, 256.000000, 283.000000, 292.000000, 305.000000, 307.000000, 331.000000,
delete_int, 'std::unordered_map<int, int>', 87.000000, 174.000000, 227.000000, 244.000000, 297.000000, 290.000000, 300.000000, 316.000000, 320.000000,
delete_int, 'std::unordered_map<int, int>', 97.000000, 172.000000, 221.000000, 289.000000, 276.000000, 285.000000, 304.000000, 324.000000, 321.000000,
delete_int, 'std::unordered_map<int, int>', 95.000000, 169.000000, 225.000000, 251.000000, 286.000000, 291.000000, 301.000000, 314.000000, 328.000000,
delete_int, 'std::unordered_map<int, int>', 91.000000, 194.000000, 382.000000, 271.000000, 298.000000, 295.000000, 316.000000, 304.000000, 317.000000,
1 insert_string 'std::unordered_map<std::__cxx11::basic_string<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 396.000000 518.000000 499.000000 571.000000 500.000000 524.000000 568.000000 486.000000 393.000000
insert_int 'std::unordered_map<int int>' 107.000000 164.000000 260.000000 223.000000 268.000000 387.000000 379.000000 325.000000 299.000000
insert_int 'std::unordered_map<int int>' 124.000000 157.000000 196.000000 225.000000 252.000000 245.000000 252.000000 271.000000 270.000000
insert_int 'std::unordered_map<int int>' 93.000000 184.000000 272.000000 217.000000 242.000000 255.000000 308.000000 259.000000 257.000000
insert_int 'std::unordered_map<int int>' 99.000000 162.000000 191.000000 230.000000 257.000000 246.000000 255.000000 262.000000 266.000000
insert_int 'std::unordered_map<int int>' 97.000000 171.000000 202.000000 231.000000 244.000000 240.000000 260.000000 352.000000 266.000000
insert_int 'std::unordered_map<int int>' 92.000000 167.000000 202.000000 225.000000 237.000000 241.000000 256.000000 270.000000 264.000000
insert_int 'std::unordered_map<int int>' 98.000000 226.000000 201.000000 236.000000 342.000000 400.000000 268.000000 375.000000 259.000000
insert_int 'std::unordered_map<int int>' 100.000000 163.000000 200.000000 220.000000 236.000000 236.000000 318.000000 266.000000 269.000000
insert_int 'std::unordered_map<int int>' 104.000000 157.000000 198.000000 221.000000 262.000000 238.000000 251.000000 263.000000 265.000000
insert_int 'std::unordered_map<int int>' 187.000000 163.000000 213.000000 226.000000 233.000000 351.000000 256.000000 256.000000 259.000000
lookup_int 'std::unordered_map<int int>' 51.000000 74.000000 89.000000 159.000000 111.000000 112.000000 119.000000 249.000000 117.000000
lookup_int 'std::unordered_map<int int>' 38.000000 75.000000 135.000000 106.000000 175.000000 150.000000 124.000000 132.000000 128.000000
lookup_int 'std::unordered_map<int int>' 39.000000 97.000000 90.000000 253.000000 234.000000 118.000000 113.000000 119.000000 205.000000
lookup_int 'std::unordered_map<int int>' 97.000000 153.000000 95.000000 108.000000 110.000000 229.000000 116.000000 120.000000 120.000000
lookup_int 'std::unordered_map<int int>' 42.000000 72.000000 119.000000 106.000000 259.000000 110.000000 185.000000 114.000000 119.000000
lookup_int 'std::unordered_map<int int>' 41.000000 92.000000 93.000000 116.000000 125.000000 107.000000 126.000000 115.000000 151.000000
lookup_int 'std::unordered_map<int int>' 35.000000 71.000000 95.000000 101.000000 114.000000 115.000000 116.000000 117.000000 119.000000
lookup_int 'std::unordered_map<int int>' 38.000000 74.000000 92.000000 116.000000 118.000000 113.000000 120.000000 119.000000 118.000000
lookup_int 'std::unordered_map<int int>' 36.000000 71.000000 99.000000 112.000000 111.000000 118.000000 120.000000 116.000000 121.000000
lookup_int 'std::unordered_map<int int>' 47.000000 80.000000 93.000000 99.000000 108.000000 109.000000 113.000000 115.000000 121.000000
nolookup_int 'std::unordered_map<int int>' 518.000000 684.000000 1106.000000 1448.000000 2930.000000 385.000000 2598.000000 267.000000 273.000000
nolookup_int 'std::unordered_map<int int>' 267.000000 691.000000 1114.000000 1449.000000 1874.000000 248.000000 4059.000000 253.000000 281.000000
nolookup_int 'std::unordered_map<int int>' 244.000000 686.000000 1231.000000 1441.000000 2799.000000 385.000000 4337.000000 367.000000 489.000000
nolookup_int 'std::unordered_map<int int>' 549.000000 1295.000000 1773.000000 2237.000000 3013.000000 305.000000 3861.000000 373.000000 318.000000
nolookup_int 'std::unordered_map<int int>' 603.000000 1225.000000 1791.000000 2229.000000 2864.000000 386.000000 3968.000000 300.000000 392.000000
nolookup_int 'std::unordered_map<int int>' 483.000000 1295.000000 1895.000000 2190.000000 2944.000000 338.000000 2703.000000 269.000000 349.000000
nolookup_int 'std::unordered_map<int int>' 255.000000 672.000000 1208.000000 1420.000000 1865.000000 254.000000 3089.000000 309.000000 278.000000
nolookup_int 'std::unordered_map<int int>' 386.000000 788.000000 1113.000000 1428.000000 2467.000000 257.000000 2606.000000 263.000000 272.000000
nolookup_int 'std::unordered_map<int int>' 253.000000 695.000000 1134.000000 1907.000000 1862.000000 341.000000 3456.000000 269.000000 275.000000
nolookup_int 'std::unordered_map<int int>' 393.000000 702.000000 1240.000000 1444.000000 1882.000000 265.000000 2602.000000 268.000000 269.000000
delete_int 'std::unordered_map<int int>' 81.000000 170.000000 221.000000 254.000000 284.000000 315.000000 301.000000 316.000000 325.000000
delete_int 'std::unordered_map<int int>' 92.000000 178.000000 225.000000 252.000000 281.000000 289.000000 308.000000 342.000000 321.000000
delete_int 'std::unordered_map<int int>' 83.000000 172.000000 227.000000 262.000000 292.000000 284.000000 302.000000 310.000000 319.000000
delete_int 'std::unordered_map<int int>' 89.000000 153.000000 226.000000 268.000000 278.000000 305.000000 308.000000 317.000000 325.000000
delete_int 'std::unordered_map<int int>' 76.000000 172.000000 219.000000 260.000000 276.000000 290.000000 307.000000 361.000000 322.000000
delete_int 'std::unordered_map<int int>' 113.000000 164.000000 225.000000 254.000000 276.000000 295.000000 308.000000 309.000000 316.000000
delete_int 'std::unordered_map<int int>' 91.000000 170.000000 227.000000 271.000000 274.000000 287.000000 305.000000 308.000000 341.000000
delete_int 'std::unordered_map<int int>' 82.000000 166.000000 223.000000 258.000000 287.000000 294.000000 311.000000 312.000000 316.000000
delete_int 'std::unordered_map<int int>' 73.000000 157.000000 222.000000 257.000000 281.000000 294.000000 298.000000 313.000000 317.000000
delete_int 'std::unordered_map<int int>' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 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<char> std::__cxx11::basic_string<char> >' 241.000000 313.000000 341.000000 395.000000 367.000000 373.000000 417.000000 376.000000 386.000000
insert_int 'std::unordered_map<int int>' 100.000000 166.000000 208.000000 220.000000 232.000000 241.000000 268.000000 304.000000 267.000000
insert_int 'std::unordered_map<int int>' 121.000000 151.000000 195.000000 288.000000 231.000000 244.000000 250.000000 265.000000 274.000000
insert_int 'std::unordered_map<int int>' 109.000000 160.000000 205.000000 232.000000 250.000000 284.000000 253.000000 277.000000 276.000000
insert_int 'std::unordered_map<int int>' 100.000000 170.000000 199.000000 227.000000 233.000000 255.000000 257.000000 256.000000 267.000000
insert_int 'std::unordered_map<int int>' 119.000000 162.000000 205.000000 236.000000 296.000000 242.000000 257.000000 257.000000 271.000000
insert_int 'std::unordered_map<int int>' 109.000000 295.000000 214.000000 241.000000 240.000000 238.000000 263.000000 265.000000 263.000000
insert_int 'std::unordered_map<int int>' 94.000000 171.000000 199.000000 243.000000 236.000000 240.000000 271.000000 259.000000 271.000000
insert_int 'std::unordered_map<int int>' 103.000000 162.000000 203.000000 230.000000 254.000000 252.000000 260.000000 264.000000 317.000000
insert_int 'std::unordered_map<int int>' 159.000000 163.000000 199.000000 227.000000 239.000000 236.000000 289.000000 268.000000 262.000000
insert_int 'std::unordered_map<int int>' 97.000000 157.000000 195.000000 221.000000 256.000000 240.000000 258.000000 281.000000 268.000000
lookup_int 'std::unordered_map<int int>' 42.000000 82.000000 89.000000 103.000000 113.000000 112.000000 115.000000 113.000000 116.000000
lookup_int 'std::unordered_map<int int>' 38.000000 69.000000 87.000000 102.000000 107.000000 109.000000 116.000000 118.000000 124.000000
lookup_int 'std::unordered_map<int int>' 38.000000 73.000000 104.000000 101.000000 109.000000 109.000000 114.000000 125.000000 126.000000
lookup_int 'std::unordered_map<int int>' 50.000000 113.000000 92.000000 112.000000 106.000000 150.000000 149.000000 129.000000 118.000000
lookup_int 'std::unordered_map<int int>' 42.000000 83.000000 94.000000 108.000000 110.000000 192.000000 119.000000 120.000000 118.000000
lookup_int 'std::unordered_map<int int>' 39.000000 72.000000 94.000000 105.000000 109.000000 115.000000 119.000000 116.000000 128.000000
lookup_int 'std::unordered_map<int int>' 39.000000 73.000000 95.000000 101.000000 112.000000 111.000000 117.000000 112.000000 124.000000
lookup_int 'std::unordered_map<int int>' 36.000000 72.000000 93.000000 97.000000 110.000000 109.000000 117.000000 128.000000 120.000000
lookup_int 'std::unordered_map<int int>' 38.000000 74.000000 108.000000 104.000000 105.000000 110.000000 115.000000 119.000000 117.000000
lookup_int 'std::unordered_map<int int>' 36.000000 76.000000 93.000000 99.000000 111.000000 110.000000 126.000000 119.000000 118.000000
nolookup_int 'std::unordered_map<int int>' 281.000000 709.000000 1156.000000 1440.000000 1869.000000 251.000000 2553.000000 269.000000 271.000000
nolookup_int 'std::unordered_map<int int>' 251.000000 689.000000 1134.000000 1444.000000 1877.000000 250.000000 2580.000000 263.000000 271.000000
nolookup_int 'std::unordered_map<int int>' 241.000000 693.000000 1114.000000 1676.000000 1891.000000 361.000000 2543.000000 262.000000 273.000000
nolookup_int 'std::unordered_map<int int>' 255.000000 691.000000 1446.000000 1435.000000 1873.000000 251.000000 2567.000000 271.000000 271.000000
nolookup_int 'std::unordered_map<int int>' 262.000000 688.000000 1139.000000 1436.000000 2272.000000 247.000000 2576.000000 271.000000 271.000000
nolookup_int 'std::unordered_map<int int>' 264.000000 716.000000 1148.000000 1451.000000 1869.000000 251.000000 2579.000000 265.000000 269.000000
nolookup_int 'std::unordered_map<int int>' 234.000000 680.000000 1145.000000 1505.000000 1887.000000 310.000000 2555.000000 276.000000 269.000000
nolookup_int 'std::unordered_map<int int>' 242.000000 676.000000 1139.000000 1438.000000 1923.000000 255.000000 2591.000000 269.000000 281.000000
nolookup_int 'std::unordered_map<int int>' 260.000000 726.000000 1152.000000 1462.000000 1896.000000 267.000000 2622.000000 265.000000 274.000000
nolookup_int 'std::unordered_map<int int>' 285.000000 708.000000 1134.000000 1439.000000 1859.000000 259.000000 2568.000000 262.000000 276.000000
delete_int 'std::unordered_map<int int>' 99.000000 186.000000 234.000000 257.000000 271.000000 288.000000 304.000000 310.000000 320.000000
delete_int 'std::unordered_map<int int>' 86.000000 189.000000 261.000000 265.000000 292.000000 295.000000 298.000000 312.000000 334.000000
delete_int 'std::unordered_map<int int>' 106.000000 213.000000 225.000000 258.000000 280.000000 287.000000 297.000000 313.000000 322.000000
delete_int 'std::unordered_map<int int>' 89.000000 168.000000 231.000000 256.000000 281.000000 287.000000 310.000000 312.000000 317.000000
delete_int 'std::unordered_map<int int>' 249.000000 196.000000 224.000000 266.000000 279.000000 295.000000 304.000000 304.000000 320.000000
delete_int 'std::unordered_map<int int>' 98.000000 175.000000 233.000000 256.000000 283.000000 292.000000 305.000000 307.000000 331.000000
delete_int 'std::unordered_map<int int>' 87.000000 174.000000 227.000000 244.000000 297.000000 290.000000 300.000000 316.000000 320.000000
delete_int 'std::unordered_map<int int>' 97.000000 172.000000 221.000000 289.000000 276.000000 285.000000 304.000000 324.000000 321.000000
delete_int 'std::unordered_map<int int>' 95.000000 169.000000 225.000000 251.000000 286.000000 291.000000 301.000000 314.000000 328.000000
delete_int 'std::unordered_map<int int>' 91.000000 194.000000 382.000000 271.000000 298.000000 295.000000 316.000000 304.000000 317.000000

View File

@ -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);
}
return noninsert_int(generator);
}

View File

@ -6,15 +6,12 @@
#include <iostream>
std::vector<int> sizes = {
vector<int> 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 <typename T>
@ -47,113 +44,61 @@ std::basic_string_view<char> name(T var){
template<class T>
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<float> 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<class T>
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<float> 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

View File

@ -8,9 +8,9 @@
#include <random>
#include <string>
static std::mt19937 generator(INT32_MAX - 2020);
static std::uniform_int_distribution<int> gen_insert_int(1, INT32_MAX * 0.875);
static std::uniform_int_distribution<int> gen_noninsert_int(INT32_MAX * 0.875, INT32_MAX);
static std::uniform_int_distribution<int> gen_char(33, 123);
static std::uniform_int_distribution<int> insert_int(1, INT32_MAX * 0.875);
static std::uniform_int_distribution<int> noninsert_int(INT32_MAX * 0.875, INT32_MAX);
static std::uniform_int_distribution<int> singlechar(33, 123);
int gen_int();

View File

@ -7,311 +7,201 @@
#include <iterator>
#include <chrono>
// maps
#include <sparsehash/sparse_hash_map>
// 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<int, int>& map,int size){
map.reserve(size);
return;
}
void prepare(std::unordered_map<string, string>& map,int size){
map.reserve(size);
return;
}
void prepare(google::sparse_hash_map<int, int>& 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 <class T>
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<int> keys(10000);
std::generate(keys.begin(), keys.end(), gen_int);
// benchmark vector access time
time_point<steady_clock> 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<float> int_test(T testmap, int size){
vector<float> results; // insert, lookup, unsuccesful lookup, delete times
vector<int> sample_keys; // get a sample of keys to lookup and later delete
}
time_point<steady_clock> end_v_access = steady_clock::now();
auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
// unsuccesful lookup keys
vector<int> nonkeys(10000);
std::generate(nonkeys.begin(), nonkeys.end(), gen_unsuccesfull_int);
// measure insert time
time_point<steady_clock> start_insert_test = steady_clock::now();
for (auto i : keys){
// keys for insert test
vector<int> 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<int> 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<steady_clock> end_insert_test = steady_clock::now();
testmap.clear();
// time per insert
auto duration = duration_cast<nanoseconds>(end_insert_test - start_insert_test) - vector_time ;
return duration / 10000;
all_keys.clear();
}
// testing vector access times to subtract later
time_point<steady_clock> 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<steady_clock> vector_end = steady_clock::now();
auto vector_acces_time = duration_cast<nanoseconds>(vector_end - vector_start);
// insertion test
time_point<steady_clock> insert_start = steady_clock::now();
for (auto key : insert_keys){
testmap.insert({key,key});
}
time_point<steady_clock> insert_end = steady_clock::now();
auto insert_time = (duration_cast<nanoseconds>(insert_end - insert_start) - vector_acces_time) / 10000 ;
results.push_back(insert_time.count());
// remove some memory
insert_keys.clear();
// lookup test
time_point<steady_clock> lookup_start = steady_clock::now();
for (auto key : sample_keys){
if (testmap[key] == 0) cout << "WTF";
}
time_point<steady_clock> lookup_end = steady_clock::now();
auto lookup_time = (duration_cast<nanoseconds>(lookup_end - lookup_start) - vector_acces_time)/10000;
results.push_back(lookup_time.count());
// unsuccesful lookup test
time_point<steady_clock> unlookup_start = steady_clock::now();
for (auto key : nonkeys){
if (testmap[key] == -1) cout << "WTF";
}
time_point<steady_clock> unlookup_end = steady_clock::now();
auto unlookup_time = (duration_cast<nanoseconds>(unlookup_end - unlookup_start) - vector_acces_time) / 10000 ;
results.push_back(unlookup_time.count());
//free some memoru
nonkeys.clear();
// delete test
time_point<steady_clock> delete_start = steady_clock::now();
for (auto key : sample_keys){
testmap.erase(key);
}
time_point<steady_clock> delete_end = steady_clock::now();
auto delete_time = (duration_cast<nanoseconds>(delete_end - delete_start) - vector_acces_time) / 10000;
results.push_back(delete_time.count());
return results;
}
template <class T>
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<std::string> keys(10000);
std::generate(keys.begin(), keys.end(), gen_string);
// benchmark vector access time
time_point<steady_clock> 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<float> string_test(T map, int size){
vector<float> results; // insert, lookup, unsuccesful lookup, delete times
vector<string> sample_keys; // get a sample of keys to lookup and later delete
}
time_point<steady_clock> end_v_access = steady_clock::now();
auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
// unsuccesful lookup keys
vector<string> nonkeys(10000);
std::generate(nonkeys.begin(), nonkeys.end(), gen_unsuccesfull_string);
// measure insert time
time_point<steady_clock> start_insert_test = steady_clock::now();
for (auto i : keys){
// keys for insert test
vector<string> 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<string> 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<steady_clock> end_insert_test = steady_clock::now();
testmap.clear();
// time per insert
auto duration = duration_cast<nanoseconds>(end_insert_test - start_insert_test) - vector_time ;
return duration / 10000;
all_keys.clear();
}
}
template<class T>
nanoseconds lookup_int_test(int size, T testmap){
// reserve, get random 10k keys that are inserted, insert keys
testmap.reserve(size);
std::vector<int> sample_inserted;
sample_inserted.reserve(10000);
// testing vector access times to subtract later
time_point<steady_clock> 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<steady_clock> vector_end = steady_clock::now();
auto vector_acces_time = duration_cast<nanoseconds>(vector_end - vector_start);
// insertion test
time_point<steady_clock> insert_start = steady_clock::now();
for (auto key : insert_keys){
testmap.insert({key,key});
}
time_point<steady_clock> insert_end = steady_clock::now();
auto insert_time = (duration_cast<nanoseconds>(insert_end - insert_start) - vector_acces_time) / 10000 ;
results.push_back(insert_time.count());
// remove some memory
insert_keys.clear();
// lookup test
time_point<steady_clock> lookup_start = steady_clock::now();
for (auto key : sample_keys){
if (testmap[key] == "") cout << "WTF";
}
time_point<steady_clock> lookup_end = steady_clock::now();
auto lookup_time = (duration_cast<nanoseconds>(lookup_end - lookup_start) - vector_acces_time)/10000;
results.push_back(lookup_time.count());
// unsuccesful lookup test
time_point<steady_clock> unlookup_start = steady_clock::now();
for (auto key : nonkeys){
if (testmap[key] == "") cout << "WTF";
}
time_point<steady_clock> unlookup_end = steady_clock::now();
auto unlookup_time = (duration_cast<nanoseconds>(unlookup_end - unlookup_start) - vector_acces_time) / 10000 ;
results.push_back(unlookup_time.count());
//free some memoru
nonkeys.clear();
// delete test
time_point<steady_clock> delete_start = steady_clock::now();
for (auto key : sample_keys){
testmap.erase(key);
}
{
std::vector<int> 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<steady_clock> 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<steady_clock> end_v_access = steady_clock::now();
auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
time_point<steady_clock> delete_end = steady_clock::now();
auto delete_time = (duration_cast<nanoseconds>(delete_end - delete_start) - vector_acces_time) / 10000;
results.push_back(delete_time.count());
return results;
// benchmark access time of hashmap
time_point<steady_clock> start_benchmark = steady_clock::now();
for (auto i : sample_inserted){
if (testmap[i] == -1){
std::cout << "SOMETHUNG IS WRONG!";
}
}
testmap.clear();
time_point<steady_clock> end_benchmark = steady_clock::now();
auto duration = duration_cast<nanoseconds>(end_benchmark - start_benchmark) - vector_time;
return duration / 10000;
}
template<class T>
nanoseconds lookup_string_test(int size, T testmap){
// reserve, get random 10k keys that are inserted, insert keys
testmap.reserve(size);
std::vector<std::string> sample_inserted(1000);
// sample_inserted.reserve(10000);
{
std::vector<std::string> 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<steady_clock> 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<steady_clock> end_v_access = steady_clock::now();
auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
// benchmark access time of hashmap
time_point<steady_clock> start_benchmark = steady_clock::now();
for (auto i : sample_inserted){
if (testmap[i] == "a"){
std::cout << "SOMETHUNG IS WRONG!";
}
}
testmap.clear();
time_point<steady_clock> end_benchmark = steady_clock::now();
auto duration = duration_cast<nanoseconds>(end_benchmark - start_benchmark) - vector_time;
return duration / 10000;
}
template<class T>
nanoseconds nolookup_int_test(int size, T testmap){
// reserve, get random 10k keys that are inserted, insert keys
testmap.reserve(size);
std::vector<int>lookup_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<steady_clock> 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<steady_clock> end_v_access = steady_clock::now();
auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
// benchmark access time of hashmap
time_point<steady_clock> start_benchmark = steady_clock::now();
for (auto i : lookup_keys){
if (testmap[i] == -1){
std::cout << "SOMETHUNG IS WRONG!";
}
}
testmap.clear();
time_point<steady_clock> end_benchmark = steady_clock::now();
auto duration = duration_cast<nanoseconds>(end_benchmark - start_benchmark) - vector_time;
return duration / 10000;
}
template<class T>
nanoseconds nolookup_string_test(int size, T testmap){
// reserve, get random 10k keys that are inserted, insert keys
testmap.reserve(size);
std::vector<std::string>lookup_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<steady_clock> 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<steady_clock> end_v_access = steady_clock::now();
auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
// benchmark access time of hashmap
time_point<steady_clock> start_benchmark = steady_clock::now();
for (auto i : lookup_keys){
if (testmap[i] == "a"){
std::cout << "SOMETHUNG IS WRONG!";
}
}
testmap.clear();
time_point<steady_clock> end_benchmark = steady_clock::now();
auto duration = duration_cast<nanoseconds>(end_benchmark - start_benchmark) - vector_time;
return duration / 10000;
}
template<class T>
nanoseconds delete_int_test(int size, T testmap){
// reserve, get random 10k keys that are inserted, insert keys
testmap.reserve(size);
std::vector<int> sample_inserted;
sample_inserted.reserve(10000);
{
std::vector<int> 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<steady_clock> 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<steady_clock> end_v_access = steady_clock::now();
auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
// benchmark access time of hashmap
time_point<steady_clock> start_benchmark = steady_clock::now();
for (auto i : sample_inserted){
testmap.erase(i);
}
testmap.clear();
time_point<steady_clock> end_benchmark = steady_clock::now();
auto duration = duration_cast<nanoseconds>(end_benchmark - start_benchmark) - vector_time;
return duration / 10000;
}
template<class T>
nanoseconds delete_string_test(int size, T testmap){
// reserve, get random 10k keys that are inserted, insert keys
testmap.reserve(size);
std::vector<std::string> sample_inserted;
sample_inserted.reserve(10000);
{
std::vector<std::string> 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<steady_clock> 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<steady_clock> end_v_access = steady_clock::now();
auto vector_time = duration_cast<nanoseconds>(end_v_access - start_v_access);
// benchmark access time of hashmap
time_point<steady_clock> start_benchmark = steady_clock::now();
for (auto i : sample_inserted){
testmap.erase(i);
}
testmap.clear();
time_point<steady_clock> end_benchmark = steady_clock::now();
auto duration = duration_cast<nanoseconds>(end_benchmark - start_benchmark) - vector_time;
return duration / 10000;
}
#endif /* TESTS_H */