<commit_before>// ========================================================================================
// Execution Graph
//  Copyright (C) 2014 by <NAME> <gnuetzi (at) gmail (døt) com>
//
//  This Source Code Form is subject to the terms of the Mozilla Public
//  License, v. 2.0. If a copy of the MPL was not distributed with this
//  file, You can obtain one at http://mozilla.org/MPL/2.0/.
// ========================================================================================

#ifndef executionGraph_Common_MyContainerTypeDefs_hpp
#define executionGraph_Common_MyContainerTypeDefs_hpp

//#define EIGEN_DONT_VECTORIZE
//#define EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT

#include <Eigen/StdVector>
#include <map>
#include <unordered_map>
#include <vector>

#include <Eigen/Dense>

/** @brief
 *	These are some container definitions
 */
namespace executionGraph
{
    namespace MyContainers
    {
        // Sepcial STL map where the type is 16byte aligned
        template<typename Key, typename Type, typename Comp = std::less<Key>>
        using StdMapAligned = std::map<Key, Type, Comp, Eigen::aligned_allocator<std::pair<const Key, Type>>>;

        // Sepcial STL map where the type is 16byte aligned
        template<typename Key, typename Type, typename Hash = std::hash<Key>, typename Pred = std::equal_to<Key>>
        using StdUMapAligned = std::unordered_map<Key, Type, Hash, Pred, Eigen::aligned_allocator<std::pair<const Key, Type>>>;

        // Special STL vectors where the type is 16byte aligned
        template<typename Type>
        using StdVecAligned = std::vector<Type, Eigen::aligned_allocator<Type>>;
    }  // namespace MyContainers
}  // namespace executionGraph

    /**
 * @brief This macro is used to typedef all custom container types.
 */
#    define EXECGRAPH_DEFINE_CONTAINER_TYPES                                                                      \
                                                                                                                  \
        template<typename Key, typename Type, typename Comp = std::less<Key>>                                     \
        using StdMapAligned = executionGraph::MyContainers::StdMapAligned<Key, Type, Comp>;                       \
                                                                                                                  \
        template<typename Key, typename Type, typename Hash = std::hash<Key>, typename Pred = std::equal_to<Key>> \<commit_msg>formatting<commit_after>// ========================================================================================
// Execution Graph
//  Copyright (C) 2014 by <NAME> <gnuetzi (at) gmail (døt) com>
//
//  This Source Code Form is subject to the terms of the Mozilla Public
//  License, v. 2.0. If a copy of the MPL was not distributed with this
//  file, You can obtain one at http://mozilla.org/MPL/2.0/.
// ========================================================================================

#ifndef executionGraph_Common_MyContainerTypeDefs_hpp
#define executionGraph_Common_MyContainerTypeDefs_hpp

//#define EIGEN_DONT_VECTORIZE
//#define EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT

#include <Eigen/StdVector>
#include <map>
#include <unordered_map>
#include <vector>

#include <Eigen/Dense>

/** @brief
 *	These are some container definitions
 */
namespace executionGraph
{
    namespace MyContainers
    {
        // Sepcial STL map where the type is 16byte aligned
        template<typename Key, typename Type, typename Comp = std::less<Key>>
        using StdMapAligned = std::map<Key, Type, Comp, Eigen::aligned_allocator<std::pair<const Key, Type>>>;

        // Sepcial STL map where the type is 16byte aligned
        template<typename Key, typename Type, typename Hash = std::hash<Key>, typename Pred = std::equal_to<Key>>
        using StdUMapAligned = std::unordered_map<Key, Type, Hash, Pred, Eigen::aligned_allocator<std::pair<const Key, Type>>>;

        // Special STL vectors where the type is 16byte aligned
        template<typename Type>
        using StdVecAligned = std::vector<Type, Eigen::aligned_allocator<Type>>;
    }  // namespace MyContainers
}  // namespace executionGraph

/** @brief This macro is used to typedef all custom container types. */
#    define EXECGRAPH_DEFINE_CONTAINER_TYPES                                                                      \
                                                                                                                  \
        template<typename Key, typename Type, typename Comp = std::less<Key>>                                     \
        using StdMapAligned = executionGraph::MyContainers::StdMapAligned<Key, Type, Comp>;                       \
                                                                                                                  \
        template<typename Key, typename Type, typename Hash = std::hash<Key>, typename Pred = std::equal_to<Key>> \
{'fraction_non_alphanumeric': 0.15621850433380366, 'fraction_numerical': 0.0056440233823825845, 'mean_word_length': 2.264473684210526, 'pattern_counts': {'":': 0, '<': 57, '<?xml version=': 0, '>': 57, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 26, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3430451', 'n_tokens_mistral': 1274, 'n_tokens_neox': 1171, 'n_words': 362}