forked from EvergreenCrypto/docker-finance
root: macro: web: crypto: refactor class name
Intended to be used only for RNG.
This commit is contained in:
@@ -56,19 +56,19 @@ namespace web
|
||||
namespace internal
|
||||
{
|
||||
//! \ingroup cpp_macro_impl
|
||||
//! \brief Cryptographical macro class
|
||||
//! \brief RNG analysis macro
|
||||
//! \since docker-finance 1.0.0
|
||||
class Crypto final
|
||||
class Random final
|
||||
{
|
||||
public:
|
||||
Crypto() = default;
|
||||
~Crypto() = default;
|
||||
Random() = default;
|
||||
~Random() = default;
|
||||
|
||||
Crypto(const Crypto&) = default;
|
||||
Crypto& operator=(const Crypto&) = default;
|
||||
Random(const Random&) = default;
|
||||
Random& operator=(const Random&) = default;
|
||||
|
||||
Crypto(Crypto&&) = default;
|
||||
Crypto& operator=(Crypto&&) = default;
|
||||
Random(Random&&) = default;
|
||||
Random& operator=(Random&&) = default;
|
||||
|
||||
private:
|
||||
//! \since docker-finance 1.0.0
|
||||
@@ -115,7 +115,7 @@ class Crypto final
|
||||
//! \brief Make graph of values from given canvas data
|
||||
//! \param canvas Previously instantiated canvas
|
||||
//! \param data Populated canvas data for graph
|
||||
static void graph_value(::TCanvas* canvas, const Crypto::CanvasData& data)
|
||||
static void graph_value(::TCanvas* canvas, const Random::CanvasData& data)
|
||||
{
|
||||
// Graph: w/ lines
|
||||
auto* gr1 = new ::TGraph(data.n, data.x.data(), data.y.data());
|
||||
@@ -148,7 +148,7 @@ class Crypto final
|
||||
//! \brief Make graph of value occurrences from given canvas data
|
||||
//! \param canvas Previously instantiated canvas
|
||||
//! \param data Populated canvas data for graph
|
||||
static void graph_frequency(::TCanvas* canvas, const Crypto::CanvasData& data)
|
||||
static void graph_frequency(::TCanvas* canvas, const Random::CanvasData& data)
|
||||
{
|
||||
// x = [0..0xffffffff]
|
||||
// y = frequency of number (max = nbins)
|
||||
@@ -186,7 +186,7 @@ class Crypto final
|
||||
//! \brief Make 2D graph of prime numbers within given canvas data
|
||||
//! \param canvas Previously instantiated canvas
|
||||
//! \param data Populated canvas data for graph
|
||||
static void graph_prime(::TCanvas* canvas, const Crypto::CanvasData& data)
|
||||
static void graph_prime(::TCanvas* canvas, const Random::CanvasData& data)
|
||||
{
|
||||
canvas->cd(4);
|
||||
auto* gr1 = new ::TGraph2D();
|
||||
@@ -235,7 +235,7 @@ class Crypto final
|
||||
template <typename t_generator>
|
||||
static void histo_gauss(
|
||||
::TCanvas* canvas,
|
||||
const Crypto::CanvasData& data,
|
||||
const Random::CanvasData& data,
|
||||
const t_generator& generator)
|
||||
{
|
||||
canvas->cd(1);
|
||||
@@ -250,7 +250,7 @@ class Crypto final
|
||||
5.0); // TODO(unassigned): looks the best, would prefer more mathematical soundness
|
||||
|
||||
// Shove a CSPRNG into a Gaussian distribution
|
||||
const Crypto::Generator<decltype(generator), uint32_t> gen(generator);
|
||||
const Random::Generator<decltype(generator), uint32_t> gen(generator);
|
||||
std::normal_distribution dist{0.0, 1.0};
|
||||
|
||||
for (size_t i{}; i < data.n; ++i)
|
||||
@@ -261,7 +261,7 @@ class Crypto final
|
||||
h1->Draw();
|
||||
}
|
||||
|
||||
static void fun_facts(::TCanvas* canvas, const Crypto::CanvasData& data)
|
||||
static void fun_facts(::TCanvas* canvas, const Random::CanvasData& data)
|
||||
{
|
||||
// TODO(unassigned): percent of prime / composite
|
||||
|
||||
@@ -305,7 +305,7 @@ class Crypto final
|
||||
// TODO(unassigned): put in a `Random` subdir to separate from other functions
|
||||
static void rng_sample(const std::string& size)
|
||||
{
|
||||
Crypto::CanvasData data{};
|
||||
Random::CanvasData data{};
|
||||
|
||||
// TODO(unassigned): sanitize because:
|
||||
// 1. only unsigned is desired
|
||||
@@ -315,7 +315,7 @@ class Crypto final
|
||||
data.y.resize(data.n);
|
||||
|
||||
auto random =
|
||||
([](Crypto::CanvasData /* make copy */ data, const auto& generator) {
|
||||
([](Random::CanvasData /* make copy */ data, const auto& generator) {
|
||||
auto* c1 = new ::TCanvas(
|
||||
std::string{"c1_" + data.title}.c_str(), "RNG analysis");
|
||||
|
||||
@@ -330,17 +330,17 @@ class Crypto final
|
||||
data.y.at(i) = generator();
|
||||
}
|
||||
|
||||
Crypto::graph_value(c1, data);
|
||||
Crypto::graph_frequency(c1, data);
|
||||
Crypto::graph_prime(c1, data);
|
||||
Random::graph_value(c1, data);
|
||||
Random::graph_frequency(c1, data);
|
||||
Random::graph_prime(c1, data);
|
||||
|
||||
auto* c2 = new ::TCanvas(
|
||||
std::string{"c2_" + data.title}.c_str(), "RNG analysis");
|
||||
|
||||
// TODO(unassigned): shift plots to the right so there's more space on the left and less on the right
|
||||
c2->Divide(0, 2);
|
||||
Crypto::histo_gauss<decltype(generator)>(c2, data, generator);
|
||||
Crypto::fun_facts(c2, data);
|
||||
Random::histo_gauss<decltype(generator)>(c2, data, generator);
|
||||
Random::fun_facts(c2, data);
|
||||
});
|
||||
|
||||
namespace utility = ::docker_finance::macro::internal::utility;
|
||||
|
||||
@@ -65,7 +65,7 @@ class Server final
|
||||
internal::Command::load({"web/internal/crypto.C"});
|
||||
internal::g_HTTPServer->RegisterCommand(
|
||||
"/rng_sample",
|
||||
"::docker_finance::macro::web::internal::Crypto::rng_sample(\"%arg1%"
|
||||
"::docker_finance::macro::web::internal::Random::rng_sample(\"%arg1%"
|
||||
"\")");
|
||||
|
||||
internal::Command::load({"web/internal/meta.C"});
|
||||
|
||||
Reference in New Issue
Block a user