
karl3@writeme.com wrote:
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
not closing this work at this time, can be associated with stopping. so some things are not pushed. the ndbigint there is the 1st attempt. time for lupper!