Change Notes#
Changed in Version 2.2.1#
- Added:
llkeyword arguments toEM_H2MM_C(),h2mm_model.optimize(),H2MM_arr(), andh2mm_model.evaluate(). Settingll=Trueresults in function returning as second return value (in tuple) the loglik of each burst.
- Internal changes (no change in results)
Better allocation of arrays in
viterbi_sort()
- Fixed:
Previous version of
H2MM_arr()had misallocation resulting in rare segfault. The mistake has been resolvedPrevious versions had bug in C function
viterbi_burst(inH2MM_C/viterbi.c) where a running sum varaible was not reset at the beginning of each iteration. This resulted in incorrect (although still very close) computation of omega and loglik. This bug has been fixed.
Changed in Version 2.1.2#
Fixed: issue Issue 4 where
viterbi_sort()failed when run from ipython__main__.
Changed in Version 2.1.1#
Added
loglikpathkeyword argument topath_loglik(), ifTrue, the loglikelihood of each photon is return in an array of arrays.- Fixed
Setting of
h2mm_model.prior,h2mm_model.transh2mm_model.obs, andh2mm_model.niterafter model is sorted now raises an error.h2mm_model.optimize()after models sorted with optioninplace=Truenow raises error and prevents modification of model.
Changed in version 2.0.6#
Added
h2mm_model.tobytes()andh2mm_model.frombytes()methods enabling serializing/loadingh2mm_model
Changed in version 2.0.5#
- Added beta
IPyPlotclass, for plotting with matplotlib This class is not considered “official”, and is not guaranteed to be backwards compatible with minor revision changes
- Added beta
Note
When H2MM_C was first introduced, different version numbers were given
in Zenodo and pip repositories, creating confusion, as one stated at 1.x.x,
the other at 0.x.x.
Version 2.0.5 marks the unification of these versioning systems.
All version in Documentation refrence the pip versioning.
Changed in version 2.0.0#
- Interface changes
max_iterdefault now 2046 ( \(2^{11} - 2\), so that output includeing initial and last non-calculated modelof size \(2^{11} = 2048\))inplaceofEM_H2MM_C(),h2mm_model.optimize(), andh2mm_model.evaluate()now defaults toFalseIntroduction of
Printerand subclassesStdPrinterandIPyPrinterto handle formatting of output throughprint_formatterinEM_H2MM_C()New
print_funcprint_argsno longer used to set update frequency and keepUse
print_freqandprint_fmt_kwargsinstead (see further notes)
print_funcas a function now takes signature(niter, new, current, old, iter_time, total_time, *print_args, **print_kwargs)print_funcno longer called before optimization to check output type etc.bounds_funcnow takes signature(niter, new, current, old, *bounds, **bounds_kwargs)bounds_funcno longer called before optimization
- Internal Changes
Improved memory handling, indexes arrays no longer copied
- Switched types of most C variables to fixed width <stdint.h> defined types
indexes from unsigned long to uint8_t
deltas (times) from unsigned long to int32_t
h2mm_mod.nstate/ndet to int64_t