/// <summary> /// Creates an instance and initializes it from given xml element. /// </summary> /// <param name="elem"> /// Xml data containing RandomValueSettings settings. /// Content of xml element is always validated against the xml schema. /// </param> public RandomValueSettings(XElement elem) { //Validation ElemValidator validator = new ElemValidator(); Assembly assemblyRCNet = Assembly.GetExecutingAssembly(); validator.AddXsdFromResources(assemblyRCNet, "RCNet.RandomValue.RandomValueSettings.xsd"); validator.AddXsdFromResources(assemblyRCNet, "RCNet.RCNetTypes.xsd"); XElement randomValueSettingsElem = validator.Validate(elem, "rootElem"); //Parsing Min = double.Parse(randomValueSettingsElem.Attribute("min").Value, CultureInfo.InvariantCulture); Max = double.Parse(randomValueSettingsElem.Attribute("max").Value, CultureInfo.InvariantCulture); RandomSign = bool.Parse(randomValueSettingsElem.Attribute("randomSign").Value); DistrType = RandomClassExtensions.ParseDistributionType(randomValueSettingsElem.Attribute("distribution").Value); //Gaussian parameters GaussianDistrCfg = null; XElement gaussianParamsElem = randomValueSettingsElem.Descendants("gaussianDistr").FirstOrDefault(); if (gaussianParamsElem != null) { GaussianDistrCfg = new GaussianDistrSettings(gaussianParamsElem); } return; }
/// <summary> /// Copy constructor /// </summary> /// <param name="source">Source instance</param> public RandomValueSettings(RandomValueSettings source) { Min = source.Min; Max = source.Max; RandomSign = source.RandomSign; DistrType = source.DistrType; GaussianDistrCfg = null; if (source.GaussianDistrCfg != null) { GaussianDistrCfg = source.GaussianDistrCfg.DeepClone(); } return; }
/// <summary> /// See the base. /// </summary> public override bool Equals(object obj) { if (obj == null) { return(false); } GaussianDistrSettings cmpSettings = obj as GaussianDistrSettings; if (Mean != cmpSettings.Mean || StdDev != cmpSettings.StdDev) { return(false); } return(true); }
//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="min">Min random value</param> /// <param name="max">Max random value</param> /// <param name="randomSign">Specifies whether to randomize value sign</param> /// <param name="distrType">Specifies what distribution to use</param> /// <param name="gaussianDistrCfg">Specifies gaussian distribution parameters</param> public RandomValueSettings(double min = -1, double max = 1, bool randomSign = false, RandomClassExtensions.DistributionType distrType = RandomClassExtensions.DistributionType.Uniform, GaussianDistrSettings gaussianDistrCfg = null ) { Min = min; Max = max; RandomSign = randomSign; DistrType = distrType; GaussianDistrCfg = gaussianDistrCfg; return; }
/// <summary> /// Copy constructor /// </summary> /// <param name="source">Source instance</param> public GaussianDistrSettings(GaussianDistrSettings source) { Mean = source.Mean; StdDev = source.StdDev; return; }