private MetaFloat ReadFloat(XmlNode node) { var floatValue = new MetaFloat(); floatValue.Value = float.Parse(node.Attributes["value"].Value); return(floatValue); }
public static MetaFloat Mean(this IList <MetaNum> self, bool skipNaN = true) { if (self.Count == 0) { return(MetaFloat.NaN); } MetaFloat mean = (MetaFloat)0.0; int actualCount = self.Count; foreach (var value in self) { MetaFloat v = (MetaFloat)value; if (MetaFloat.IsNaN(v)) { if (skipNaN) { --actualCount; continue; } else { return(MetaFloat.NaN); } } mean += v; } return(mean / actualCount); }
public static MetaFloat Covariance(this IList <MetaNum> self, IList <MetaNum> other, bool unbiased = true, bool skipNaN = true) { if (self.Count != other.Count) { return(MetaFloat.NaN); } var mean0 = self.Mean(skipNaN); var mean1 = other.Mean(skipNaN); if (MetaFloat.IsNaN(mean0) || MetaFloat.IsNaN(mean1)) { return(MetaFloat.NaN); } int actualCount = self.Count; MetaFloat c = (MetaFloat)0.0; for (int i = 0; i < self.Count; ++i) { if (TypeTrait <MetaNum> .IsNaN(self[i]) || TypeTrait <MetaNum> .IsNaN(other[i])) { if (skipNaN) { --actualCount; continue; } else { return(MetaFloat.NaN); } } var a = (MetaFloat)self[i] - mean0; var b = (MetaFloat)other[i] - mean1; c += a * b; } if (unbiased) { return(c / (actualCount - 1)); } else { return(c / actualCount); } }
public static MetaFloat Variance(this IList <MetaNum> self, bool unbiased = true, bool skipNaN = true) { if (self.Count == 0) { return(MetaFloat.NaN); } MetaFloat mean = Mean(self, skipNaN); if (MetaFloat.IsNaN(mean)) { return(MetaFloat.NaN); } MetaFloat variance = (MetaFloat)0.0; int actualCount = self.Count; foreach (var value in self) { MetaFloat v = (MetaFloat)value; if (TypeTrait <MetaFloat> .IsNaN(v)) { if (skipNaN) { --actualCount; continue; } else { return(MetaFloat.NaN); } } MetaFloat x = v - mean; variance += x * x; } if (unbiased) { return(variance / (actualCount - 1)); } else { return(variance / actualCount); } }
public void AssertFloat(MetaFloat expectedFloat, MetaFloat actualFloat) { Assert.AreEqual(expectedFloat.Value, actualFloat.Value); }
private void WriteFloatContent(XmlTextWriter writer, MetaFloat floatValue) { var s1 = string.Format(CultureInfo.InvariantCulture, "{0:0.0###########}", floatValue.Value); writer.WriteAttributeString("value", s1); }
public static bool IsNaN(MetaFloat value) { return(true); }