I'm reporting documentation inaccuracy for mkl_?omatcopy
Definitions of `rows` and `cols` seem to be incorrect (at least for column-major calls)
`rows` and `cols` are documented to be the size of "matrix B (the destination matrix)" but they should be for the matrix A (the source matrix).
`lda` is correctly specified as the rows of A (for column major)
`ldb` is said to "must be at least equal to cols" for ordering = 'C' and trans = 'T'" which is only correct if `rows` and `cols` are defined for A.
I'm only speaking from my debugging experience for the case (ordering = 'C', trans = 'T'") so please validate this is true for all possible combinations.
This documentation error wasted a lot of my time today. It would really help to have this fixed.
My understanding from reading the OpenBlas implementation at
indicates that (at least for column-major ordering), ROWS and COLS should reference the A matrix size and not the B matrix size.
Could someone please confirm this?
There is a similar error for mkl_sparse_?_create_csc. The documentation is correct online:
sparse_status_t mkl_sparse_s_create_csc (sparse_matrix_t *A, sparse_index_base_tindexing, MKL_INT rows, MKL_INT cols, MKL_INT *cols_start, MKL_INT *cols_end, MKL_INT*row_indx, float *values);
The same function per mkl_spblas.h (2019)
sparse_status_t mkl_sparse_s_create_csc( sparse_matrix_t *A,
sparse_index_base_t indexing, /* indexing: C-style or Fortran-style */
float *values );
Not a big deal, but it was confusing for a while. It would be worthwhile to check if there are similar errors whenever the CSC format is used.