Finetune fuzzer parameters for LP solver constraints.

This commit is contained in:
Bhargava Shastry 2022-02-08 20:29:59 +01:00
parent aeaf9addc0
commit 5535bf90e2

View File

@ -40,7 +40,7 @@ struct ConstraintGenerator
/// @returns random number of factors. /// @returns random number of factors.
int numFactors() int numFactors()
{ {
return Distribution(s_minFactors, s_maxFactors)(*prng); return Distribution(s_minNumFactors, s_maxNumFactors)(*prng);
} }
/// @returns random number of constraints. /// @returns random number of constraints.
@ -52,7 +52,7 @@ struct ConstraintGenerator
/// @returns an integer chosen uniformly at random. /// @returns an integer chosen uniformly at random.
int randomInteger() int randomInteger()
{ {
return Distribution(std::numeric_limits<int>::min(), std::numeric_limits<int>::max())(*prng); return Distribution(s_minFactor, s_maxFactor)(*prng);
} }
/// @returns an integer in the range [-1, 1] chosen uniformly at random. /// @returns an integer in the range [-1, 1] chosen uniformly at random.
@ -76,10 +76,20 @@ struct ConstraintGenerator
std::shared_ptr<RandomEngine> prng; std::shared_ptr<RandomEngine> prng;
static constexpr int s_minFactors = 2; /// Smallest number of factors in linear constraint of the form
static constexpr int s_maxFactors = 10; /// a*x1 + b*x2 <= c
static constexpr int s_minNumFactors = 2;
/// Largest number of factors in linear constraint
static constexpr int s_maxNumFactors = 100;
/// Smallest number of linear constraints
static constexpr int s_minConstraints = 1; static constexpr int s_minConstraints = 1;
static constexpr int s_maxConstraints = 10; /// Largest number of linear constraints
static constexpr int s_maxConstraints = 100;
/// Smallest value of a factor in linear constraint
static constexpr int s_minFactor = -100;
/// Largest value of a factor in linear constraint
static constexpr int s_maxFactor = 100;
/// Probability that a factor in the range of [-1, 1] is chosen
static constexpr double s_piecewiseConstantProb = 0.25; static constexpr double s_piecewiseConstantProb = 0.25;
}; };