#ifndef UTILS_H
#define UTILS_H

#include <vector>
#include <random>
#include <algorithm>
#include <numeric>

// Function to generate a random integer in the range [min, max]
int getRandomNumber(int min, int max);

// Function to generate a random fraction (float) in the range [min, max]
float getRandomFraction(float min = 0.0, float max = 1.0);

float getRandomFractionFast();

// Function to perform argsort on a vector of float values
std::vector<int> argsort(const std::vector<float>& values);

#endif // UTILS_H