I'm trying to provide an interface — through a config file — for my users to choose a distribution for some of the parameters that they are using. I would like to use STL random number generator algorithms for this purpose.
Let's assume that my program reads a JSON from a command line. For the JSON provided below, the program needs to realize that it should generate a random number from the normal distribution with given mean and standard variation. (I'm using the same parameter names as STL library for clearance.)
{
"dist": "normal_distribution",
"mean": 0.1,
"stddev": 0.5
}
So far, I can parse the JSON easily, and use each distribution's param_type
to initialize the distribution. I use the name to decide which distribution to decide the param_type
and the distribution.
What I don't know is how to implement this nicely. I know that I should provide some sort of factory method for this, pass the JSON, and spit out a function or a class. If I want to return an instance of a class, let's say a unique_ptr
of the generator, I need to define an abstract class, e.g., RandDist
and write some sort of adaptor to incorporate my input, .... I generally don't need a lot from the class, just a gen()
method should be enough.
I'm wondering if anyone have thoughts on this. Or, if anyone knows a library that can do this.
P.S. Input doesn't have to be a JSON object, any hash table would work per se.
Aucun commentaire:
Enregistrer un commentaire