some untested matrix routines for differential collection and propagation