<commit_before>/**
 * @file perm.h
 * @brief Types for handling permutations.
 * @author <NAME> <<EMAIL>>
 */
#ifndef GHOST_PERM_H
#define GHOST_PERM_H

typedef enum
{
    GHOST_PERMUTATION_LOCAL,
    GHOST_PERMUTATION_GLOBAL
}
ghost_permutation_scope_t;

typedef enum
{
    GHOST_PERMUTATION_ORIG2PERM,
    GHOST_PERMUTATION_PERM2ORIG
}
ghost_permutation_direction_t;

typedef struct
{
    /**
     * @brief Gets an original index and returns the corresponding permuted position.
     *
     * NULL if no permutation applied to the matrix.
     */<commit_msg>added comments<commit_after>/**
 * @file perm.h
 * @brief Types for handling permutations.
 * @author <NAME> <<EMAIL>>
 */
#ifndef GHOST_PERM_H
#define GHOST_PERM_H

typedef enum
{
    /**
     * @brief A local permutation only contains local indices in the range [0..perm->len-1].
     */
    GHOST_PERMUTATION_LOCAL,
    /**
     * @brief A global permutation contains global indices in the range [0..context->gnrows-1].
     */
    GHOST_PERMUTATION_GLOBAL
}
ghost_permutation_scope_t;

typedef enum
{
    GHOST_PERMUTATION_ORIG2PERM,
    GHOST_PERMUTATION_PERM2ORIG
}
ghost_permutation_direction_t;

typedef struct
{
    /**
     * @brief Gets an original index and returns the corresponding permuted position.
     *
     * NULL if no permutation applied to the matrix.
     */
{'fraction_non_alphanumeric': 0.08792846497764531, 'fraction_numerical': 0.005961251862891207, 'mean_word_length': 3.4617940199335546, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1507813', 'n_tokens_mistral': 480, 'n_tokens_neox': 455, 'n_words': 116}