------------------
_2015-03-02_
Optimizations
- Concepts are only recomputed if they could have been changed by a cut.
- Cuts are evaluated individually, rather than in bidirectional pairs, which
allows for better parallel performance.
API changes
- Removed the unused `validate.nodelist` function.
API additions
- The new configuration option `ASSUME_CUTS_CANNOT_CREATE_NEW_CONCEPTS` gives
an approximation of Φ by only recomputing concepts that exist in the
unpartitioned constellation. This is much faster in certain cases.
- The methods used in determining whether a cut could effect a concept are
exposed via the `utils` module as:
- `utils.cut_mechanism_indices`
- `utils.cut_concepts`
- `utils.uncut_concepts`
- Added the `pyphi.Subsystem.connections_relevant_for_concept` method.
- Added the `pyphi.Subsystem.cut_matrix` property.
Fixes
- `pyphi.compute.main_complex` now returns an empty `BigMip` if there are no
proper complexes.
- No longer using LRU-caches implemented as a circular, doubly-linked list;
this was causing a huge number of recursive calls when pickling a `Subsystem`
object (since caches are stored on subsystems since v0.3.6) as `pickle`
traversed the (potentially very large) cache.
- `pyphi.json.make_encodable` now properly handles NumPy numeric types.