private double CalculateT1WithoutQualifier(LinguisticSummary summary) { double sumS = 0.0; OperationType opType = summary.LogicalOperationSummarizer.GetOperationType(); foreach (var tuple in summary.Data) { double compoundSummarizer = TwoFuzzySetOperation.PerformOperation(summary.Summarizers, tuple, opType); _summarizerMemberships.Add(compoundSummarizer); sumS += compoundSummarizer; } double r = sumS; return(summary.Quantifier.IsAbsolute ? summary.Quantifier.CalculateMembership(r) : summary.Quantifier.CalculateMembership(r / summary.Data.Count)); }
private double CalculateT1WithQualifier(LinguisticSummary summary) { double numerator = 0.0; double denominator = 0.0; OperationType opType = summary.LogicalOperationSummarizer.GetOperationType(); foreach (var tuple in summary.Data) { double compoundSummarizer = TwoFuzzySetOperation.PerformOperation(summary.Summarizers, tuple, opType); _summarizerMemberships.Add(compoundSummarizer); double w = summary.Qualifier.CalculateMembership(tuple.Get(summary.Qualifier.Column)); _qualifierMemberships.Add(w); numerator += Math.Min(compoundSummarizer, w); denominator += w; } double r = numerator / denominator; return(summary.Quantifier.CalculateMembership(r)); }