ArchiMetrics.Analysis.Metrics.MemberMetricsCalculator.CalculateMaintainablityIndex C# (CSharp) Method

CalculateMaintainablityIndex() private static method

private static CalculateMaintainablityIndex ( double cyclomaticComplexity, double linesOfCode, IHalsteadMetrics halsteadMetrics ) : double
cyclomaticComplexity double
linesOfCode double
halsteadMetrics IHalsteadMetrics
return double
		private static double CalculateMaintainablityIndex(double cyclomaticComplexity, double linesOfCode, IHalsteadMetrics halsteadMetrics)
		{
			if (linesOfCode.Equals(0.0) || halsteadMetrics.NumberOfOperands.Equals(0) || halsteadMetrics.NumberOfOperators.Equals(0))
			{
				return 100.0;
			}

			var num = Math.Log(halsteadMetrics.GetVolume());
			var mi = ((171 - (5.2 * num) - (0.23 * cyclomaticComplexity) - (16.2 * Math.Log(linesOfCode))) * 100) / 171;

			return Math.Max(0.0, mi);
		}