all shapes update

fat or skinny sparse block diagonal