calculateSawResult method

  1. @override
Future<List<SawResult>> calculateSawResult({
  1. required List<SawMatrix> matrix,
})
override

Calculates the final SAW results from a decision matrix.

This method performs the complete SAW calculation:

  1. Validates input values
  2. Normalizes the matrix
  3. Calculates weighted scores
  4. Ranks alternatives

Parameters:

  • matrix: The decision matrix containing ratings for all alternatives

Returns: A ranked list of SawResult objects

Throws:

  • Exception if matrix is empty or contains invalid values

Implementation

@override
Future<List<SawResult>> calculateSawResult({
  required List<SawMatrix> matrix,
}) async {
  startPerformanceProfiling('Combined all method SAW algorithm');
  try {
    await _validateMaxInputValue(matrix);

    final normalized = await _normalizeMatrix(matrix);
    final result = await _calculateSawScore(normalized);

    return result;
  } catch (e) {
    rethrow;
  } finally {
    endPerformanceProfiling('Combined all method SAW algorithm');
  }
}