generateSawMatrix method
Future<List<SawMatrix> >
generateSawMatrix({
- required List<
SawAlternative> listAlternative, - required List<
SawCriteria> listCriteria,
override
MATRIX
GENERATE SAW MATRIX
Implementation
@override
Future<List<SawMatrix>> generateSawMatrix({
required List<SawAlternative> listAlternative,
required List<SawCriteria> listCriteria,
}) async {
startPerformanceProfiling('Generate SAW pairwise matrix');
try {
_validateInputs(listAlternative, listCriteria);
final normalizedCriteria = _normalizeCriteriaWeights(listCriteria);
final updateAlternative = _ensureIdsForAlternatives(listAlternative);
final updateCriteria = _ensureIdsForCriteria(normalizedCriteria);
List<SawMatrix> result = [];
final canUseIsolate = !kIsWeb &&
(updateAlternative.length > 80 || updateCriteria.length > 25);
if (canUseIsolate) {
result = await _generateMatrixWithIsolate(
updateAlternative,
updateCriteria,
);
} else {
result = _generateMatrixDirectly(updateAlternative, updateCriteria);
}
return result;
} catch (e, s) {
debugPrint('SAW Matrix Error: $e\n$s');
rethrow;
} finally {
endPerformanceProfiling('Generate SAW pairwise matrix');
}
}