Minotaur 0.4.1
Docs for developers
|
#include <Option.h>
Protected Attributes | |
std::string | name_ |
std::string | desc_ |
T | val_ |
bool | everUsed_ |
bool | isKnown_ |
True, if the option is known to minotaur. | |
Options are used to control the behavior of Minotaur: choice of algorithms, parameters, limits, outputs etc. They are also used to control the behavior of interfaces and engines that are linked with Minotaur: parameters for LP engine, verbosity, limits etc. This templated class works for any option whose value could be integer, double or string.
All options in Minotaur must be one of the above three types. In the command line, all option names must be entered with a preceding '–'. e.g. ./minotaur –assume_convex yes –node_limit=2 –time_limit 100
Either form '–option_name=option_value' or '–option_name option value' is acceptable.
Any simple options without values, like for instance '-v', '-q' are not allowed, but they can still be accepted if they are aliased to a minotaur acceptable option. In such cases, we need to tell Minotaur, how to expand small options like '-=', '-v', '-AMPL' into a proper Minotaur option. ... more to be added here.
Interfaces to Minotaur, like AMPL, can also add their own options to the Minotaur option-database.
Again, we assume that all options that begin with '–' have a value associated with it. We also assume that all options that begin with '-' do not have any value associated with it. So, for the command, ./minotaur -v 2 –assume_convex yes stub.nl we will assume that '2' is the name of input file, 'yes' is the value of option 'assume_convex' and stub.nl is also an input file.
|
protected |
A human-readable description of what the option does and what limits are expected.
|
protected |
True, if this option was ever used by any of the procedures. False otherwise.
|
protected |
The name of the option should not have any spaces. All spaces should be converted to underscore (_). If the name consists of a period (.), then the option is meant for the external library referred to by the name before the period. For instance the name: ipopt.some_tolerance tells us to provide Ipopt with the option "some_tolerance". Again, spaces are not allowed even if the external library has spaces in the name.
|
protected |
The value of the option. For now, we don't check if the user specified options lie in the suggested limits.