<commit_before>#ifndef RANDOM_H_
#define RANDOM_H_

#include <vector>
#include <k52/common/disallow_copy_and_assign.h>

namespace k52
{
namespace optimization
{

/**
@class Random
Provides methods to generate random quantities
*/
class Random
{
public:
    /// Implementation of singleton pattern to avoid multiple seed
    /// @return the only instance of Random class
    static Random& Instance();

    ///Generates base random quantity - uniformly distributed on interval [0, 1]
    ///@return base random quantity
    double GetBaseRandomQuantity();

    ///Generates continuous random quantity - uniformly distributed on interval [min_value, max_value]
    ///@param min_value - interval lower bound
    ///@param max_value - interval upper bound 
    ///@return continuous random quantity between min_value and max_value
    double GetContinuousRandomQuantity(double min_value, double max_value);

    ///@param vector_size - size of vector to be generated
    ///@param min_value - interval lower bound
    ///@param max_value - interval upper bound 
    ///@return vector of continuous random quantities
    std::vector<double> GenerateRandomVector(size_t vector_size, double min_value, double max_value);
<commit_msg>Fixed issue 49: size_t -> std::size_t<commit_after>#ifndef RANDOM_H_
#define RANDOM_H_

#include <vector>
#include <k52/common/disallow_copy_and_assign.h>

namespace k52
{
namespace optimization
{

/**
@class Random
Provides methods to generate random quantities
*/
class Random
{
public:
    /// Implementation of singleton pattern to avoid multiple seed
    /// @return the only instance of Random class
    static Random& Instance();

    ///Generates base random quantity - uniformly distributed on interval [0, 1]
    ///@return base random quantity
    double GetBaseRandomQuantity();

    ///Generates continuous random quantity - uniformly distributed on interval [min_value, max_value]
    ///@param min_value - interval lower bound
    ///@param max_value - interval upper bound 
    ///@return continuous random quantity between min_value and max_value
    double GetContinuousRandomQuantity(double min_value, double max_value);

    ///@param vector_size - size of vector to be generated
    ///@param min_value - interval lower bound
    ///@param max_value - interval upper bound 
    ///@return vector of continuous random quantities
    std::vector<double> GenerateRandomVector(std::size_t vector_size, double min_value, double max_value);

{'fraction_non_alphanumeric': 0.08497784937575513, 'fraction_numerical': 0.005638340716874748, 'mean_word_length': 3.804642166344294, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 10, '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': '6510377', 'n_tokens_mistral': 669, 'n_tokens_neox': 640, 'n_words': 246}