how about providing another constructor without pre-allocation, which is sometimes convenient for users when they don't want to calculate d_nz  and o_nz priori?