Changelog
This document lists changes to ionics_fits.
Changes are divided into four categories:
Bugfixes
API changes - changes to the user-facing API. These will often be breaking (not backwards-compatible), requiring changes to code using
ionics_fits.Other - small changes, such as tweaks to internals, which most users will not need to be aware of
New models
1.3.0.11
Bug fixes
Fix
Lorentzianmodel.
1.3.0.9
Bug fixes
Fix calling
funconRabiFlop
1.3.0.8
Fitting to datasets with an arbitrary number x-axis dimensions is now supported!
API changes
New feature: Fitters now support datasets with multiple x-axis dimensions
Breaking change: scale function definitions have been moved from
fits.commontofits.utilsBreaking change: “y channels” have been renamed to “y axes”
Breaking change: models must now provide a
get_num_x_axesmethodBreaking change: we now use lists of x and y axis scale factors for the various dimensions instead of a single boolean to cover all dimensions in each axis
Breaking change: “containers” have been renamed “transformations”
Breaking change: we no longer export classes inside
_init__.pyfiles
1.3.0.5
API changes
New feature: Added
ReparametrizedModelcontainerNew feature: Added
SineMinMaxmodelNew feature: Added
Sine2modelBreaking change:
rescale_model_xhas been replaced with ScaledModel` to make this feature consistent with the rest of the toolkit.
API changes
New feature: Added a sigmoid model
1.3.00
This release includes some invasive refactoring of ionics_fits internals to simplify
dataflow. This requires small changes to how models are defined (see breaking changes)
but will otherwise be transparent to users.
A major feature addition in this release is ionics_fits first foray into the world of multi-dimensional fitting.
Bugfixes
Incorrect calculation of pi times in the Rabi model
API changes
Breaking:
estimate_parametersno longer takes a dictionary of model parameters as an input. Instead, it acts directly on the model’s parameter dictionary.Breaking: all model parameters must now specify a scale function. This changes the previous behaviour where parameters with no scale function specified were treated as invariant.
Breaking: scale functions are no longer passed the model as an input argument
New feature: helper functions were introduced to
ionics_fits.commonto make specifying scale functions easier and more readable.Breaking: whether or not a model can be rescaled is now determined by the model’s
can_rescalemethod. All models must provide this method. Scale functions must now always return a float value. This replaces the previous behaviour where scale functions returningNonewas used to indicate a model that cannot be rescaled.New feature: enabling rescaling can now be set independently for the x and y axes
Breaking:
Model’sget_initial_valuesmethod has been removedNew feature:
ModelParameters now raise exceptions if any fixed parameters have user
estimates. This behaviour was previously allowed but was generally indicative of a bug
Breaking: heuristics have now been moved into
ionics_fits.models.heuristics. This includes functions, such asparam_min_srs, which were previously methods ofModelBreaking: removed a sampling heuristic which wasn’t particularly useful
New feature: solver arguments are now exposed via fitters
Breaking:
AggregateModelnow takes a dictionary of models rather than a list of tuples.Breaking:
AggregateModelnow names parameters{param_name}_{model_name}instead of{model_name}_{param_name}
New models
ConeSegmentmodel has been added
Other changes
Added a change log!
Models now have
internal_parametersas well asparameters. Internal parameters represent parameters which are not exposed directly to the user, but which still need to be stored and rescaled. They are used, for example, in the container models.Improved documentation
The way rescaling is handled has been overhauled to improve dataflow. The
get_scaled_modelmechanism has been removed in favour of usinginternal_parameters.ModelParameter``s and ``Model``s now provide ``rescaleandunscalemethods to control rescaling. When aModelParameteris rescaled, querying its attributes returns scaled values.qtis now a development dependencyreplaced
np.powerwith the more pythonic (and faster)**operator where suitableownership / copying has been tidied up and documented better
LaserRabi: improved heuristic for estimatingetawhenomegais knownImproved parameter estimator for
RepeatedModelRepeatedModelnow has the ability to aggregate derived parameter values, reporting only the values that are the same for all repetitions.
Previous versions
Changes were not tracked prior to v1.3.