ExponentialDistribution::parallelBatchFit and GaussianDistribution::parallelBatchFit are textually identical (PMD CPD confirmed). Extract the shared thread-pool submission, error-recording, and fallback logic into a reusable framework helper. Each distribution delegates to it, keeping only the per-distribution fit() call at the call site.
ExponentialDistribution::parallelBatchFit and GaussianDistribution::parallelBatchFit are textually identical (PMD CPD confirmed). Extract the shared thread-pool submission, error-recording, and fallback logic into a reusable framework helper. Each distribution delegates to it, keeping only the per-distribution fit() call at the call site.