#ifndef MATH_HPP_INCLUDED
#define MATH_HPP_INCLUDED

#include <cstdint>
#include <vector>

#include "Types/Point.hpp"

/** @addtogroup Math
* @{ */

std::int32_t BinomialRandom(std::int32_t Min, std::int32_t Max, double Probability);
std::int32_t UniformRandom(std::int32_t Min, std::int32_t Max);
double UniformRandom();
std::int32_t NormalRandom(std::int32_t Mean, double StandardDeviation);
std::int32_t NormalRandom(std::int32_t Low, std::int32_t High, double PercentageDeviation);
void GetLine(Point A, Point B, std::vector<Point>* Res);
std::vector<Point> ConvexHull(std::vector<Point> Points);

/** @} */

#endif // MATH_HPP_INCLUDED
