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
Lorentzian
model.
1.3.0.9
Bug fixes
Fix calling
func
onRabiFlop
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.common
tofits.utils
Breaking change: “y channels” have been renamed to “y axes”
Breaking change: models must now provide a
get_num_x_axes
methodBreaking 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__.py
files
1.3.0.5
API changes
New feature: Added
ReparametrizedModel
containerNew feature: Added
SineMinMax
modelNew feature: Added
Sine2
modelBreaking change:
rescale_model_x
has 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_parameters
no 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.common
to 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_rescale
method. All models must provide this method. Scale functions must now always return a float value. This replaces the previous behaviour where scale functions returningNone
was 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_values
method has been removedNew feature:
ModelParameter
s 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 ofModel
Breaking: removed a sampling heuristic which wasn’t particularly useful
New feature: solver arguments are now exposed via fitters
Breaking:
AggregateModel
now takes a dictionary of models rather than a list of tuples.Breaking:
AggregateModel
now names parameters{param_name}_{model_name}
instead of{model_name}_{param_name}
New models
ConeSegment
model has been added
Other changes
Added a change log!
Models now have
internal_parameters
as 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_model
mechanism has been removed in favour of usinginternal_parameters
.ModelParameter``s and ``Model``s now provide ``rescale
andunscale
methods to control rescaling. When aModelParameter
is rescaled, querying its attributes returns scaled values.qt
is now a development dependencyreplaced
np.power
with the more pythonic (and faster)**
operator where suitableownership / copying has been tidied up and documented better
LaserRabi
: improved heuristic for estimatingeta
whenomega
is knownImproved parameter estimator for
RepeatedModel
RepeatedModel
now 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
.