ParkMillerXlw::ParkMillerXlw(ArgumentList args)
	:RandomBaseXlw(static_cast<unsigned long>(args.GetDoubleArgumentValue("dim")))
{
	if (args.GetStructureName() != "rng")
		throw("rng structure expected in ParkMillerXlw  class");

	if (args.GetStringArgumentValue("name") == "park miller"){
		ParkMiller _rng; InnerGenerator = _rng;
		Reciprocal = 1 / (1.0 + InnerGenerator.Max());
	}

	else throw("name list not for antithetic passed to ParkMillerXlw  : got " + args.GetStringArgumentValue("name"));
	
	Seed = static_cast<unsigned long>(args.GetDoubleArgumentValue("seed"));

	if (args.GetStructureName() != "seed") 	Seed = 1;

	args.CheckAllUsed("ParkMillerXlw");

	ResetDimensionality(static_cast<unsigned long>(args.GetDoubleArgumentValue("dim")));

}