Create Measurements package extension #248
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR creates a simple extension for the Measurements package, allowing data with uncertainties to be passed directly for fitting, e.g.:
The extension creates a simple wrapper for
LsqFit.curve_fit
that dispatches onydata::AbstractArray{Measurement{T}} where T
. Values and uncertainties are extracted from the input, then weights are calculated as the inverse square of the uncertainties and passed to the maincurve_fit
function.A unit test checks that the extension gives the same results as when weights are passed manually.
An
__init__
function is defined inLsqFit.jl
to load the extension for Julia versions <1.9 (see discussion at https://discourse.julialang.org/t/package-extensions-for-julia-1-9/93397).