docs: public static void extractDiag(DMatrixSparseCSC src, DMatrixSparseCSC dst ) {
          int N = Math.min(src.numRows, src.numCols);
  
          if( !MatrixFeatures_DSCC.isVector(dst) ) {
              dst.reshape(N, 1, N);
          } else if( dst.numRows*dst.numCols != N ) {
              dst.reshape(N,1,N);
          } else {
              dst.growMaxLength(N,false);
          }
  
          dst.nz_length = N;
          dst.indicesSorted = true;
  
          if( dst.numRows != 1 ) {
              dst.col_idx[0] = 0;
              dst.col_idx[1] = N;
              for (int i = 0; i < N; i++) {
                  dst.nz_values[i] = src.unsafe_get(i, i);
                  dst.nz_rows[i] = i;
              }
          } else {
              dst.col_idx[0] = 0;
              for (int i = 0; i < N; i++) {
                  dst.nz_values[i] = src.unsafe_get(i, i);
                  dst.nz_rows[i] = 0;
                  dst.col_idx[i+1] = i+1;
              }
  
          }
      }