
my fun project has been ndarray modifications in python :D i made a resizeable ndarray that was like a normal ndarray but supported n-dimensional insertion anywhere. it has a function to produce an n-dimensional hole and it enumerates and returns a list of the n-dimensional unassigned regions that were generated by stretching the ndarray to make room for the hole :D i wanted to augment it to support ragged data but didn't settle on an interface. i think ragged insertion might have 2 associated maybe hyperplanes? -- the directions in which the data raggedly grows, and the directions in which the data does _not_ grow when inserted. then i started an n-dimensional fraction class, which was cool but i quickly discovered that performing high dimensional arithmetic on rationals of uint64s overflows the uint64 in just a couple operations, destroying the ability of the fraction to represent exact quantities. i made two attempts at the fraction. so then i started an n-dimensional bigint class, i'm on the third attempt now. my second attempt was a libgmp port. this third attempt is looking promising i just implemented vector sum! after learning more about this i'm feeling pretty confident about it. work ends up in https://github.com/karl3wm/stash in the 'ndarray' branch. pretty satisfying to have plans around preserving work on an algorithm class! plans don't always pan out of course