Skip to content

Commit 7eab271

Browse files
committed
aocl-sparse API Guide added in docs folder
Doxygen generated API guide added in docs folder Few comments modified for removing doxygen warnings Change-Id: Ieccedeb4c569e33110dbec2979628056388db386 Signed-off-by: Chithra Sankar <chithra.sankar@amd.com>
1 parent 9503b5a commit 7eab271

File tree

3 files changed

+17
-196
lines changed

3 files changed

+17
-196
lines changed

docs/aocl-sparse API Guide.pdf

394 KB
Binary file not shown.

library/include/aoclsparse_convert.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ extern "C" {
5858
*/
5959
__attribute__((__visibility__("default")))
6060
aoclsparse_status aoclsparse_csr2ell_width(
61-
aoclsparse_int M,
61+
aoclsparse_int m,
6262
aoclsparse_int nnz,
6363
const aoclsparse_int *csr_row_ptr,
6464
aoclsparse_int *ell_width);
@@ -101,7 +101,7 @@ aoclsparse_status aoclsparse_csr2ell_width(
101101
/**@{*/
102102
__attribute__((__visibility__("default")))
103103
aoclsparse_status aoclsparse_scsr2ell(
104-
aoclsparse_int M,
104+
aoclsparse_int m,
105105
const aoclsparse_int *csr_row_ptr,
106106
const aoclsparse_int *csr_col_ind,
107107
const float *csr_val,
@@ -111,7 +111,7 @@ aoclsparse_status aoclsparse_scsr2ell(
111111

112112
__attribute__((__visibility__("default")))
113113
aoclsparse_status aoclsparse_dcsr2ell(
114-
aoclsparse_int M,
114+
aoclsparse_int m,
115115
const aoclsparse_int *csr_row_ptr,
116116
const aoclsparse_int *csr_col_ind,
117117
const double *csr_val,
@@ -150,8 +150,8 @@ aoclsparse_status aoclsparse_dcsr2ell(
150150
*/
151151
__attribute__((__visibility__("default")))
152152
aoclsparse_status aoclsparse_csr2dia_ndiag(
153-
aoclsparse_int M,
154-
aoclsparse_int N,
153+
aoclsparse_int m,
154+
aoclsparse_int n,
155155
aoclsparse_int nnz,
156156
const aoclsparse_int *csr_row_ptr,
157157
const aoclsparse_int *csr_col_ind,
@@ -196,8 +196,8 @@ aoclsparse_status aoclsparse_csr2dia_ndiag(
196196
/**@{*/
197197
__attribute__((__visibility__("default")))
198198
aoclsparse_status aoclsparse_scsr2dia(
199-
aoclsparse_int M,
200-
aoclsparse_int N,
199+
aoclsparse_int m,
200+
aoclsparse_int n,
201201
const aoclsparse_int *csr_row_ptr,
202202
const aoclsparse_int *csr_col_ind,
203203
const float *csr_val,
@@ -207,8 +207,8 @@ aoclsparse_status aoclsparse_scsr2dia(
207207

208208
__attribute__((__visibility__("default")))
209209
aoclsparse_status aoclsparse_dcsr2dia(
210-
aoclsparse_int M,
211-
aoclsparse_int N,
210+
aoclsparse_int m,
211+
aoclsparse_int n,
212212
const aoclsparse_int *csr_row_ptr,
213213
const aoclsparse_int *csr_col_ind,
214214
const double *csr_val,

library/include/aoclsparse_functions.h

Lines changed: 8 additions & 187 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ extern "C" {
3434
#endif
3535

3636
/*! \ingroup level2_module
37-
* \brief Single precision sparse matrix vector multiplication using CSR storage format
37+
* \brief Single & Double precision sparse matrix vector multiplication using CSR storage format
3838
*
3939
* \details
4040
* \p aoclsparse_csrmv multiplies the scalar \f$\alpha\f$ with a sparse \f$m \times n\f$
@@ -69,6 +69,8 @@ extern "C" {
6969
*
7070
* \note
7171
* Currently, only \p trans == \ref aoclsparse_operation_none is supported.
72+
* Currently, for \ref aoclsparse_matrix_type == \ref aoclsparse_matrix_type_symmetric,
73+
* only lower triangular matrices are supported.
7274
*
7375
* @param[in]
7476
* trans matrix operation type.
@@ -88,8 +90,10 @@ extern "C" {
8890
* @param[in]
8991
* csr_row_ptr array of \p m+1 elements that point to the start
9092
* of every row of the sparse CSR matrix.
93+
* @param[in]
9194
* descr descriptor of the sparse CSR matrix. Currently, only
92-
* \ref aoclsparse_matrix_type_general is supported.
95+
* \ref aoclsparse_matrix_type_general and
96+
* \ref aoclsparse_matrix_type_symmetric is supported.
9397
* @param[in]
9498
* x array of \p n elements (\f$op(A) == A\f$) or \p m elements
9599
* (\f$op(A) == A^T\f$ or \f$op(A) == A^H\f$).
@@ -107,6 +111,7 @@ extern "C" {
107111
* \retval aoclsparse_status_not_implemented
108112
* \p trans != \ref aoclsparse_operation_none or
109113
* \ref aoclsparse_matrix_type != \ref aoclsparse_matrix_type_general.
114+
* \ref aoclsparse_matrix_type != \ref aoclsparse_matrix_type_symmetric.
110115
*
111116
* \par Example
112117
* This example performs a sparse matrix vector multiplication in CSR format
@@ -145,107 +150,7 @@ aoclsparse_status aoclsparse_scsrmv(aoclsparse_operation trans,
145150
const float* x,
146151
const float* beta,
147152
float* y);
148-
/**@}*/
149153

150-
/*! \ingroup level2_module
151-
* \brief Double precision sparse matrix vector multiplication using CSR storage format
152-
*
153-
* \details
154-
* \p aoclsparse_csrmv multiplies the scalar \f$\alpha\f$ with a sparse \f$m \times n\f$
155-
* matrix, defined in CSR storage format, and the dense vector \f$x\f$ and adds the
156-
* result to the dense vector \f$y\f$ that is multiplied by the scalar \f$\beta\f$,
157-
* such that
158-
* \f[
159-
* y := \alpha \cdot op(A) \cdot x + \beta \cdot y,
160-
* \f]
161-
* with
162-
* \f[
163-
* op(A) = \left\{
164-
* \begin{array}{ll}
165-
* A, & \text{if trans == aoclsparse_operation_none} \\
166-
* A^T, & \text{if trans == aoclsparse_operation_transpose} \\
167-
* A^H, & \text{if trans == aoclsparse_operation_conjugate_transpose}
168-
* \end{array}
169-
* \right.
170-
* \f]
171-
*
172-
* \code{.c}
173-
* for(i = 0; i < m; ++i)
174-
* {
175-
* y[i] = beta * y[i];
176-
*
177-
* for(j = csr_row_ptr[i]; j < csr_row_ptr[i + 1]; ++j)
178-
* {
179-
* y[i] = y[i] + alpha * csr_val[j] * x[csr_col_ind[j]];
180-
* }
181-
* }
182-
* \endcode
183-
*
184-
* \note
185-
* Currently, only \p trans == \ref aoclsparse_operation_none is supported.
186-
*
187-
* @param[in]
188-
* trans matrix operation type.
189-
* @param[in]
190-
* alpha scalar \f$\alpha\f$.
191-
* @param[in]
192-
* m number of rows of the sparse CSR matrix.
193-
* @param[in]
194-
* n number of columns of the sparse CSR matrix.
195-
* @param[in]
196-
* nnz number of non-zero entries of the sparse CSR matrix.
197-
* @param[in]
198-
* csr_val array of \p nnz elements of the sparse CSR matrix.
199-
* @param[in]
200-
* csr_col_ind array of \p nnz elements containing the column indices of the sparse
201-
* CSR matrix.
202-
* @param[in]
203-
* csr_row_ptr array of \p m+1 elements that point to the start
204-
* of every row of the sparse CSR matrix.
205-
* descr descriptor of the sparse CSR matrix. Currently, only
206-
* \ref aoclsparse_matrix_type_general is supported.
207-
* @param[in]
208-
* x array of \p n elements (\f$op(A) == A\f$) or \p m elements
209-
* (\f$op(A) == A^T\f$ or \f$op(A) == A^H\f$).
210-
* @param[in]
211-
* beta scalar \f$\beta\f$.
212-
* @param[inout]
213-
* y array of \p m elements (\f$op(A) == A\f$) or \p n elements
214-
* (\f$op(A) == A^T\f$ or \f$op(A) == A^H\f$).
215-
*
216-
* \retval aoclsparse_status_success the operation completed successfully.
217-
* \retval aoclsparse_status_invalid_size \p m, \p n or \p nnz is invalid.
218-
* \retval aoclsparse_status_invalid_pointer \p descr, \p alpha, \p csr_val,
219-
* \p csr_row_ptr, \p csr_col_ind, \p x, \p beta or \p y pointer is
220-
* invalid.
221-
* \retval aoclsparse_status_not_implemented
222-
* \p trans != \ref aoclsparse_operation_none or
223-
* \ref aoclsparse_matrix_type != \ref aoclsparse_matrix_type_general.
224-
*
225-
* \par Example
226-
* This example performs a sparse matrix vector multiplication in CSR format
227-
* using additional meta data to improve performance.
228-
* \code{.c}
229-
* // Compute y = Ax
230-
* aoclsparse_scsrmv(aoclsparse_operation_none,
231-
* &alpha,
232-
* m,
233-
* n,
234-
* nnz,
235-
* csr_val,
236-
* csr_col_ind,
237-
* csr_row_ptr,
238-
* descr,
239-
* x,
240-
* &beta,
241-
* y);
242-
*
243-
* // Do more work
244-
* // ...
245-
*
246-
* \endcode
247-
*/
248-
/**@{*/
249154
__attribute__((__visibility__("default")))
250155
aoclsparse_status aoclsparse_dcsrmv(aoclsparse_operation trans,
251156
const double* alpha,
@@ -262,7 +167,7 @@ aoclsparse_status aoclsparse_dcsrmv(aoclsparse_operation trans,
262167
/**@}*/
263168

264169
/*! \ingroup level2_module
265-
* \brief Single precision sparse matrix vector multiplication using ELL storage format
170+
* \brief Single & Double precision sparse matrix vector multiplication using ELL storage format
266171
*
267172
* \details
268173
* \p aoclsparse_ellmv multiplies the scalar \f$\alpha\f$ with a sparse \f$m \times n\f$
@@ -355,89 +260,7 @@ aoclsparse_status aoclsparse_sellmv(aoclsparse_operation trans,
355260
const float* x,
356261
const float* beta,
357262
float* y );
358-
/**@}*/
359263

360-
/*! \ingroup level2_module
361-
* \brief Double precision sparse matrix vector multiplication using ELL storage format
362-
*
363-
* \details
364-
* \p aoclsparse_ellmv multiplies the scalar \f$\alpha\f$ with a sparse \f$m \times n\f$
365-
* matrix, defined in ELL storage format, and the dense vector \f$x\f$ and adds the
366-
* result to the dense vector \f$y\f$ that is multiplied by the scalar \f$\beta\f$,
367-
* such that
368-
* \f[
369-
* y := \alpha \cdot op(A) \cdot x + \beta \cdot y,
370-
* \f]
371-
* with
372-
* \f[
373-
* op(A) = \left\{
374-
* \begin{array}{ll}
375-
* A, & \text{if trans == aoclsparse_operation_none} \\
376-
* A^T, & \text{if trans == aoclsparse_operation_transpose} \\
377-
* A^H, & \text{if trans == aoclsparse_operation_conjugate_transpose}
378-
* \end{array}
379-
* \right.
380-
* \f]
381-
*
382-
* \code{.c}
383-
* for(i = 0; i < m; ++i)
384-
* {
385-
* y[i] = beta * y[i];
386-
*
387-
* for(p = 0; p < ell_width; ++p)
388-
* {
389-
* idx = p * m + i;
390-
*
391-
* if((ell_col_ind[idx] >= 0) && (ell_col_ind[idx] < n))
392-
* {
393-
* y[i] = y[i] + alpha * ell_val[idx] * x[ell_col_ind[idx]];
394-
* }
395-
* }
396-
* }
397-
* \endcode
398-
*
399-
* \note
400-
* Currently, only \p trans == \ref aoclsparse_operation_none is supported.
401-
*
402-
* @param[in]
403-
* trans matrix operation type.
404-
* @param[in]
405-
* alpha scalar \f$\alpha\f$.
406-
* @param[in]
407-
* m number of rows of the sparse ELL matrix.
408-
* @param[in]
409-
* n number of columns of the sparse ELL matrix.
410-
* @param[in]
411-
* nnz number of non-zero entries of the sparse ELL matrix.
412-
* @param[in]
413-
* descr descriptor of the sparse ELL matrix. Currently, only
414-
* \ref aoclsparse_matrix_type_general is supported.
415-
* @param[in]
416-
* ell_val array that contains the elements of the sparse ELL matrix. Padded
417-
* elements should be zero.
418-
* @param[in]
419-
* ell_col_ind array that contains the column indices of the sparse ELL matrix.
420-
* Padded column indices should be -1.
421-
* @param[in]
422-
* ell_width number of non-zero elements per row of the sparse ELL matrix.
423-
* @param[in]
424-
* x array of \p n elements (\f$op(A) == A\f$) or \p m elements
425-
* (\f$op(A) == A^T\f$ or \f$op(A) == A^H\f$).
426-
* @param[in]
427-
* beta scalar \f$\beta\f$.
428-
* @param[inout]
429-
* y array of \p m elements (\f$op(A) == A\f$) or \p n elements
430-
* (\f$op(A) == A^T\f$ or \f$op(A) == A^H\f$).
431-
*
432-
* \retval aoclsparse_status_success the operation completed successfully.
433-
* \retval aoclsparse_status_invalid_size \p m, \p n or \p ell_width is invalid.
434-
* \retval aoclsparse_status_invalid_pointer \p descr, \p alpha, \p ell_val,
435-
* \p ell_col_ind, \p x, \p beta or \p y pointer is invalid.
436-
* \retval aoclsparse_status_not_implemented
437-
* \p trans != \ref aoclsparse_operation_none or
438-
* \ref aoclsparse_matrix_type != \ref aoclsparse_matrix_type_general.
439-
*/
440-
/**@{*/
441264
__attribute__((__visibility__("default")))
442265
aoclsparse_status aoclsparse_dellmv(aoclsparse_operation trans,
443266
const double* alpha,
@@ -580,8 +403,6 @@ aoclsparse_status aoclsparse_ddiamv(aoclsparse_operation trans,
580403
* @param[in]
581404
* nb number of block columns of the sparse BSR matrix.
582405
* @param[in]
583-
* nnzb number of non-zero blocks of the sparse BSR matrix.
584-
* @param[in]
585406
* alpha scalar \f$\alpha\f$.
586407
* @param[in]
587408
* descr descriptor of the sparse BSR matrix. Currently, only

0 commit comments

Comments
 (0)