/** Parses the command line parameters that describe model parameter ranges * * @param[in] cmd The command-line parser used by the program * @param[out] range A rangelist to contain the parameter ranges. * * @exception std::logic_error Thrown if the expected parameters are missing from @p cmd. * * @exceptsafe All arguments are left in valid states in the event * of an exception. */ void parseModelParams(CmdLineInterface& cmd, RangeList& range) { range.clear(); addParam(range, "a", getParam<ValueArg<Range> >(cmd, "amp"), RangeList::LOGUNIFORM); addParam(range, "p", getParam<ValueArg<Range> >(cmd, "period"), RangeList::LOGUNIFORM); // Include default phase if no user input range.add("ph", getParam<ValueArg<Range> >(cmd, "ph").getValue(), RangeList::UNIFORM); addParam(range, "width", getParam<ValueArg<Range> >(cmd, "width"), RangeList::LOGUNIFORM); addParam(range, "width2", getParam<ValueArg<Range> >(cmd, "width2"), RangeList::LOGUNIFORM); addParam(range, "d", getParam<ValueArg<Range> >(cmd, "diffus"), RangeList::LOGUNIFORM); addParam(range, "amp2", getParam<ValueArg<Range> >(cmd, "amp2"), RangeList::LOGUNIFORM); addParam(range, "period2", getParam<ValueArg<Range> >(cmd, "period2"), RangeList::LOGUNIFORM); }
void clear() { type = NONE; name.clear(); ranges.clear(); }