pints
pints copied to clipboard
Is there a need for SingleOutputProblem and MultiOutputProblem?
Both methods take the same arguments. Indeed, looking at the two classes, they're both virtually identical.
They both use model.n_parameters() to check that the user has provided an object of which outputs the correct dimensions. By the same token, couldn't we just use model.n_outputs() in a single OutputProblem method to determine whether it's a single or multiple output problem internally (so a user doesn't have to specify this)?
From a quick glance it seems the main difference is that single output problems return data of the shape (n_times,), rather than (n_times, n_outputs).
For sensitivities it's (n_times, n_parameters) instead of (n_times, n_outputs, n_parameters)
So it's purely for user convenience, I think, so that single-output users don't need to always work in the multi-output space with n_outputs=1.
Open for discussion :D