/** 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);
}
Beispiel #2
0
 void clear()
 {
   type = NONE;
   name.clear();
   ranges.clear();
 }