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

Reply via email to