X need not be continous anymore (since we adhere to col and row strides)
cosmit: doc undocumented functions