This branch aims at making the current
PowerSpace design simpler.
The following changes have been made so far:
PowerSpacemembers are always fully computed upon construction of the
PowerSpace; caching has been removed. This still has performance drawbacks which I hope to address in the future.
- the parameters
nbincan still be supplied to the constructor, but they are no longer part of the
PowerSpace's state. They are used to compute the
binbounds, and forgotten afterwards. (In the current implementation it is possible to set these attributes to values which contradict the actual
binbounds, which is inconsistent.)
pundexis currently not supported, but can be reintroduced if needed.
- "natural" binning (which happens if neither
binboundsare specified to the constructor) has been improved to avoid spurious extra bins due to numerical noise.
- index computation has been accelerated significantly
configproperty has been removed;
binboundsis now a direct property of the class.
I'm sure that a lot will have to change before this can be merged; please consider this merge request mainly as a starting point for discussion!
As a quick demonstration of the advantages of the new implementation, run the following commands in both "master" and "index_games" branch and watch CPU time and memory consumption: