internal static bool AreEquivalents(StatFunction statFunctionA, StatFunction statFunctionB) { if ((statFunctionA != null) && (statFunctionB != null)) { return(statFunctionA.IsEquivalent(statFunctionB)); } else { return((statFunctionA == null) && (statFunctionB == null)); } }
private static StatResult RunStatFunction( StatFunction statFunction, Type[] dataTypes, object[] valuesX, object[] valuesY) { statFunction.InitializeAccumulationTypes(dataTypes); statFunction.StartCalculation(); statFunction.Reset(); try { if (statFunction.PrerequisiteFunctions != null && statFunction.PrerequisiteFunctions.Length > 0) { StatResult[] preValues = new StatResult[statFunction.PrerequisiteFunctions.Length]; for (int i = 0; i < statFunction.PrerequisiteFunctions.Length; i++) { preValues[i] = StatFunction.RunStatFunction(statFunction.PrerequisiteFunctions[i], dataTypes, valuesX, valuesY); if (preValues[i].Value is Exception) { throw ( Exception )preValues[i].Value; } } statFunction.InitializePrerequisites(preValues); } if (statFunction.RequiresAccumulation) { for (int i = 0; i < valuesX.Length; i++) { if (valuesY == null) { statFunction.Accumulate(new object[] { valuesX[i] }); } else { statFunction.Accumulate(new object[] { valuesX[i], valuesY[i] }); } } } statFunction.EndCalculation(); return(statFunction.GetResult()); } catch (Exception ex) { return(new StatResult(ex)); } }
protected internal virtual bool IsEquivalent(StatFunction statFunction) { if (object.ReferenceEquals(statFunction, null)) { return(false); } if (object.ReferenceEquals(statFunction, this)) { return(true); } return((this.GetType() == statFunction.GetType()) && (this.SourcePropertyName == statFunction.SourcePropertyName)); }
private static StatResult RunStatFunction(StatFunction statFunction, Type[] dataTypes, params object[] values) { return(StatFunction.RunStatFunction(statFunction, dataTypes, values, null)); }
protected internal virtual void InitializeFromInstance(StatFunction source) { this.SourcePropertyName = source.SourcePropertyName; }