2121 * This is an ALP-specific extension to the NIST Sparse BLAS standard, which
2222 * the ALP libsparseblas transition path also introduces to the de-facto spblas
2323 * standard.
24- *
25- * @author A. N. Yzelman
26- * @date 2023
2724 */
2825
2926#ifndef _H_ALP_SPARSEBLAS_EXT_VEC
3027#define _H_ALP_SPARSEBLAS_EXT_VEC
3128
32- /**
33- * \addtogroup SPARSEBLAS
34- * @{
35- */
36-
37- /**@{*/
38- /** \internal Helper macros for #EXTBLAS_FUN and #EXTBLAS_TYPE */
39- #define __SPBLAS_CONC ( _a , _b ) _a ## _b
40- #define __SPBLAS_CONCAT ( _a , _b ) __SPBLAS_CONC( _a, _b )
41- #define SPCONCAT ( _a , _b ) __SPBLAS_CONCAT( _a, _b )
42- /**@}*/
43-
4429#ifdef __cplusplus
4530extern "C" {
4631#endif
4732
48- /**@{*/
49- /**
50- * \internal
51- *
52- * Allows renaming our non-standard functions with some other prefix.
53- *
54- * The default prefixes are <tt>EXTBLAS_</tt> for functions and
55- * <tt>extblas_</tt> for types.
56- *
57- * \endinternal
58- */
59- #define EXTBLAS_FUN ( name ) SPCONCAT( EXTBLAS_, name )
60- #define EXTBLAS_TYPE ( name ) SPCONCAT( extblas_, name )
61- /**@}*/
62-
6333/** A sparse vector. This is an implementation-specific extension. */
64- typedef void * EXTBLAS_TYPE ( sparse_vector ) ;
34+ typedef void * extblas_sparse_vector ;
6535
6636/**
6737 * Creates a handle to a new sparse vector that holds no entries.
@@ -72,7 +42,7 @@ typedef void * EXTBLAS_TYPE( sparse_vector );
7242 *
7343 * @returns An #extblas_sparse_vector that is under construction.
7444 */
75- EXTBLAS_TYPE ( sparse_vector ) EXTBLAS_FUN ( dusv_begin ) ( const int n );
45+ extblas_sparse_vector EXTBLAS_dusv_begin ( const int n );
7646
7747/**
7848 * Inserts a new nonzero entry into a sparse vector that is under construction.
@@ -90,8 +60,8 @@ EXTBLAS_TYPE( sparse_vector ) EXTBLAS_FUN( dusv_begin )( const int n );
9060 *
9161 * This is an implementation-specific extension.
9262 */
93- int EXTBLAS_FUN ( dusv_insert_entry ) (
94- EXTBLAS_TYPE ( sparse_vector ) x ,
63+ int EXTBLAS_dusv_insert_entry (
64+ extblas_sparse_vector x ,
9565 const double val ,
9666 const int index
9767);
@@ -108,7 +78,7 @@ int EXTBLAS_FUN( dusv_insert_entry )(
10878 *
10979 * This is an implementation-specific extension.
11080 */
111- int EXTBLAS_FUN ( dusv_end )( EXTBLAS_TYPE ( sparse_vector ) x );
81+ int EXTBLAS_dusv_end ( extblas_sparse_vector x );
11282
11383/**
11484 * Destroys the given sparse vector.
@@ -122,7 +92,7 @@ int EXTBLAS_FUN( dusv_end )( EXTBLAS_TYPE( sparse_vector ) x );
12292 *
12393 * This is an implementation-specific extension.
12494 */
125- int EXTBLAS_FUN ( dusvds )( EXTBLAS_TYPE ( sparse_vector ) x );
95+ int EXTBLAS_dusvds ( extblas_sparse_vector x );
12696
12797/**
12898 * Retrieves the number of nonzeroes in a given finalised sparse vector.
@@ -137,7 +107,7 @@ int EXTBLAS_FUN( dusvds )( EXTBLAS_TYPE( sparse_vector ) x );
137107 *
138108 * This is an implementation-specific extension.
139109 */
140- int EXTBLAS_FUN ( dusv_nz )( const EXTBLAS_TYPE ( sparse_vector ) x , int * nz );
110+ int EXTBLAS_dusv_nz ( const extblas_sparse_vector x , int * nz );
141111
142112/**
143113 * Opens a sparse vector for read-out.
@@ -154,7 +124,7 @@ int EXTBLAS_FUN( dusv_nz )( const EXTBLAS_TYPE( sparse_vector ) x, int * nz );
154124 *
155125 * This is an implementation-specific extension.
156126 */
157- int EXTBLAS_FUN ( dusv_open )( const EXTBLAS_TYPE ( sparse_vector ) x );
127+ int EXTBLAS_dusv_open ( const extblas_sparse_vector x );
158128
159129/**
160130 * Retrieves a sparse vector entry.
@@ -184,8 +154,8 @@ int EXTBLAS_FUN( dusv_open )( const EXTBLAS_TYPE( sparse_vector ) x );
184154 *
185155 * This is an implementation-specific extension.
186156 */
187- int EXTBLAS_FUN ( dusv_get ) (
188- const EXTBLAS_TYPE ( sparse_vector ) x ,
157+ int EXTBLAS_dusv_get (
158+ const extblas_sparse_vector x ,
189159 double * const val , int * const ind
190160);
191161
@@ -200,7 +170,7 @@ int EXTBLAS_FUN( dusv_get )(
200170 *
201171 * This is an implementation-specific extension.
202172 */
203- int EXTBLAS_FUN ( dusv_close )( const EXTBLAS_TYPE ( sparse_vector ) x );
173+ int EXTBLAS_dusv_close ( const extblas_sparse_vector x );
204174
205175/**
206176 * Removes all entries from a finalised sparse vector.
@@ -213,9 +183,7 @@ int EXTBLAS_FUN( dusv_close )( const EXTBLAS_TYPE( sparse_vector ) x );
213183 *
214184 * This is an implementation-specific extension.
215185 */
216- int EXTBLAS_FUN ( dusv_clear )( EXTBLAS_TYPE ( sparse_vector ) x );
217-
218- /**@}*/ // end doxygen grouping for SPARSEBLAS
186+ int EXTBLAS_dusv_clear ( extblas_sparse_vector x );
219187
220188#ifdef __cplusplus
221189} // end extern "C"
0 commit comments