Added aliasing and causality (vectorisation is still to do).