Triadic Memory — A Fundamental Algorithm for Cognitive Computing

I wonder if we can get more savings by using some form of tree structure instead of linear arrays.

I’m thinking like 1D dynamic quad-trees encoding bit positions.
if we go fancy with adressing we may be able to use 8bit indexes instead of 64bit pointers

1 Like

If memory size is excessively big for your use case bitpair addresses can be projected into a matrix with fewer rows than N*(N-1)/2 (I’m talking about diadic addressing here).

I’m curious what is your use case - N, P, number of vectors.

At least def xaddr() there can be numbified and that alone should improve performance visibly. Also using threee arrays (or “stores”) instead of ‘x’,‘y’,‘z’ indexing might allow numbification of the other functions.

And I agree numba is PITA for anything that doesn’t look like a numpy array.

1 Like

The sparsity (N/P) is what limits capacity, rather than sdr size (N) alone.

1 Like