Source code for nengo_spa.math

"""Functions to evaluate analytically derived equations related to the SPA."""

from nengo.dists import CosineSimilarity


[docs]def prob_cleanup(similarity, dimensions, vocab_size): """Estimate the chance of successful cleanup. This returns the chance that, out of *vocab_size* randomly chosen vectors, none of them will be closer to a particular vector than the value given by *similarity*. To use this, compare your noisy vector with the ideal vector, pass that value in as the similarity parameter, and set *vocab_size* to be the number of competing vectors. Requires SciPy. """ p = CosineSimilarity(dimensions).cdf(similarity) if similarity < 1.0 and p == 1.0: raise ArithmeticError("Insufficient floating point precision to compute value.") return p ** vocab_size