Change Log#
v0.2.9 (24/06/2024)#
CoFI Tools#
New tool: sparse matrix solvers
CoFI Core#
Allow sparse matrix input on
BaseProblem.set_jacobian
v0.2.8 (21/03/2024)#
CoFI Tools#
Adapt CoFI to new BayesBay API
v0.2.7 (26/02/2024)#
CoFI Tools#
New tool: Neighpy
v0.2.6 (15/02/2024)#
CoFI Utils#
cofi.utils.GaussianPriormatrix generation aligned with textbooksigma, instead of the square root of it is taken in now
CoFI Tools#
BayesBay adjusted according to API change
v0.2.5 (16/01/2024)#
CoFI Tools#
New tool: BayesBay
v0.2.4 (16/01/2024)#
CoFI Tools#
New tool: CoFI’s implementation of the Border Collie Optimization algorithm
v0.2.3 (31/07/2023)#
CoFI Utils#
A new class,
cofi.utils.EnsembleOfInversions, has been introduced to replacecofi.utils.run_multiple_inversions
v0.2.2 (17/07/2023)#
CoFI Utils#
cofi.utils.run_multiple_inversions, sequential and parallel optionsMake
cofi.utils._reg_base.CompositeRegularizationpickleable
v0.2.1 (07/07/2023)#
CoFI Tools#
Better
cofi.simple_newtonsolver (more numerically stable; addition of stopping criteria)
v0.2.0 (05/06/2023)#
CoFI Core#
Rewrite
BaseProblem.set_regularization
CoFI Utils#
Rewrite and implement regularization utils:
cofi.utils.BaseRegularizationcofi.utils.LpNormRegularizationcofi.utils.QuadraticRegcofi.utils.ModelCovariancecofi.utils.GaussianPrior
v0.1.3.dev2 (05/04/2023)#
CoFI Core#
Bug fix: avoid evaluating log_likelihood if prior is -np.inf
Enable properties set at
BaseProblemconstructor, e.g.cofi.BaseProblem(forward=my_fwd, model_shape=my_shape)
CoFI Tools#
Bug fix in
numpy.linalg.lstsq
v0.1.3.dev1 (15/03/2023)#
CoFI Core#
Use try block for functools.update_wrapper
v0.1.3.dev0 (15/03/2023)#
CoFI Solvers -> CoFI Tools#
#110
BaseSolver->BaseInferenceTool
CoFI Core#
_base_problem._FunctionWrapperimprovements
v0.1.2.dev25 (06/02/2023)#
CoFI Solvers#
Bug fixes in
BaseSolver
CoFI Utils#
#108 Utility regularization for flattening and smoothing in 1D cases
v0.1.2.dev24 (14/12/2022)#
Infrastructure#
#84 Use versioningit in build process
v0.1.2.dev23 (14/12/2022)#
CoFI Core#
v0.1.2.dev22 (23/11/2022)#
CoFI Core#
CoFI Solvers#
#92 List pytorch optim algorithms dynamically
v0.1.2.dev21 (27/10/2022)#
CoFI Solvers#
torch.optim
return number of function evaluations
accept callback function
return better losses list
add this to docs tree
v0.1.2.dev20 (25/10/2022)#
CoFI Solvers#
Internal bug fix in PyTorch optimizers: adding “success” key in returned dictionary
v0.1.2.dev19 (25/10/2022)#
CoFI Solvers#
In solvers table:
pytorch->torch.optim
v0.1.2.dev18 (25/10/2022)#
CoFI Solvers#
Adding PyTorch.optim algorithms
v0.1.2.dev17 (19/10/2022)#
CoFI Solvers#
Simple newton
Fix dimension issue
return number of function evaluations
v0.1.2.dev16 (18/10/2022)#
CoFI Core#
#63 Minor restructure of
BaseSolver._assign_options()Wording change in
BaseProblem.summary()
v0.1.2.dev15 (14/10/2022)#
CoFI Core#
Further explanation in
BaseProblem.summary()
v0.1.2.dev14 (14/10/2022)#
CoFI Core#
Made CoFI pure Python, requires >=3.7
v0.1.2.dev13 (13/10/2022)#
CoFI Core#
Fix
BaseProblem.hessian_times_vectorandBaseProblem.jacobian_times_vectorthat are generated from provided hessian / jacobian functions, by squeezing the results to ensure 1D dimensions
CoFI Solvers#
Fix
InversionResultkeys to include underscores (so that attributes can be accessed easily)
v0.1.2.dev12 (10/10/2022)#
CoFI Solvers#
cofi.simple_newtonhide options of line search (until line search is implemented)
prevent
initial_modelfrom being modified inplace
v0.1.2.dev11 (10/10/2022)#
CoFI Core#
Minor fix (removing debug prints)
#72
set_data_misfiterror message fix
CoFI Utils#
Add
utiltocofinamespace by importing it
CoFI Solvers#
matrix-based solvers->matrix solvers
v0.1.2.dev10 (03/10/2022)#
CoFI Core#
CoFI Utils#
#54 Utility functions using findiff to generate the difference matrices
CoFI Solvers#
#68 Optimise special cases in linear system solver
v0.1.2.dev9 (13/09/2022)#
CoFI Core#
Fixed potential problem in auto generated “times vector” functions when input matrix might be of type
numpy.matrixEnabled possibility for parallelism with emcee, by making user defined functions pickleable
#53 Add set_regularisation(reg, reg_matrix, lamda)
#57 Create our own exception class
#59 Optimize import cofi by not importing cofi.solvers
#61 Remove lambda function from BaseProblem to avoid error in multiprocessing
CoFI Solvers#
#55 Linear solvers with Tikhonov regularisations
v0.1.2.dev8 (13/07/2022)#
Bug fix in
_FunctionWrapper, for functions with extra arguments likeBaseProblem.hessian_times_vector(m, v)andBaseProblem.jacobian_times_vector(m, v)
v0.1.2.dev7 (15/06/2022)#
Bug fix in
BaseSolver.model_covariance
v0.1.2.dev6 (15/06/2022)#
Bug fix in
BaseSolver._assign_optionsBaseProblem.model_covariance_invandBaseProblem.model_covariance
v0.1.2.dev5 (09/06/2022)#
BaseProblem.set_data_covarianceand more general linear system solver
v0.1.2.dev4 (07/06/2022)#
Bugs fix in
EmceeSolverand result summary
v0.1.2.dev3 (06/06/2022)#
Bug fixed in
BaseProblem.set_regularisation
v0.1.2.dev2 (03/06/2022)#
Added
emceeas new solver, with the following new APIsBaseProblem.set_log_priorBaseProblem.set_log_likelihood,BaseProblem.set_log_posterior,BaseProblem.set_log_posterior_with_blobs,BaseProblem.set_blobs_dtype
Process sampler output by converting to
arviz.InferenceData, with the new API:class
SamplingResultSamplingResult.to_arviz()
Removed
BaseProblem.set_dataset(x,y), addedBaseProblem.set_data(y)Added args and kwargs for all setting functions in
BaseProblem_FunctionWrapper
Relaxed python version
>=3.8to>=3.6Docs improvement, updated with emcee
v0.1.2.dev1 (16/05/2022)#
bug fixes
v0.1.2.dev0 (13/05/2022)#
InversionRunnerhas been changed intoInversionAdded a references list for each backend tool
How much information in
BaseProblemis used for the inversion run now displayed throughInversion.summary()numpyandscipyversions relaxedSet objective function to be equal to data misfit if regularisation is not set
Better error message when building failed