initial sparse matrix version (not functioning)
functioning sparse matrix support (really slow)
sparsity optimisations
generalise sparse/non-sparse
fix sparsity predictions + minmise example