#include <stdio.h>
int main(
const int argc,
char *
const argv[])
{
#ifndef RSB_NUMERICAL_TYPE_DOUBLE
printf("'double' type configured out."
" Please reconfigure the library with it and recompile.\n");
return EXIT_SUCCESS;
#else
const int nnz = 4;
const int nr = 3;
const int nc = 3;
#ifdef RSB_WANT_LONG_IDX_TYPE
const int64_t IA[] = { 0, 1, 2, 2 };
#else
const int IA[] = { 0, 1, 2, 2 };
#endif
#ifdef RSB_WANT_LONG_IDX_TYPE
const int64_t JA[] = { 0, 1, 0, 2 };
#else
const int JA[] = { 0, 1, 0, 2 };
#endif
double VA[] = { 11.0, 22.0, 13.0, 33.0 };
double X[] = { 0.0, 0.0, 0.0 };
const double B[] = { -1.0, -2.0, -2.0 };
const double AB[] = { 11.0+26.0, 44.0, 66.0+13.0 };
int i;
printf("Hello, RSB!\n");
{
goto err;
}
printf("Correctly initialized the library.\n");
{
goto err;
}
{
goto err;
}
{
printf("Symmetry property non set ?!\n");
goto err;
}
{
goto err;
}
{
goto err;
}
printf("Correctly allocated a matrix.\n");
VA[0] = 0.0;
{
goto err;
}
if( VA[0] != 11.0 )
{
goto err;
}
{
goto err;
}
for( i = 0 ; i < nc; ++i )
if( X[i] != AB[i] )
{
printf("Computed SPMV result seems wrong. Terminating.\n");
goto err;
}
printf("Correctly performed a SPMV.\n");
{
goto err;
}
printf("Correctly freed the matrix.\n");
{
goto err;
}
printf("Correctly finalized the library.\n");
printf("Program terminating with no error.\n");
return EXIT_SUCCESS;
err:
printf("Program terminating with error.\n");
return EXIT_FAILURE;
#endif
}
auto main() -> int
Definition: assemble.cpp:38
This file specifies the Sparse BLAS interface to librsb. Supported types :(float,double,...
@ blas_no_trans
Definition: blas_sparse.h:32
#define BLAS_usgp
Definition: blas_sparse.h:563
#define BLAS_ussp
Definition: blas_sparse.h:562
int blas_sparse_matrix
Definition: blas_sparse.h:167
@ blas_invalid_handle
Definition: blas_sparse.h:133
@ blas_lower_symmetric
Definition: blas_sparse.h:113
rsb_err_t rsb_lib_exit(struct rsb_initopts *iop)
Definition: rsb_rsb.c:202
rsb_err_t rsb_perror(void *stream, rsb_err_t errval)
Definition: rsb_rsb.c:814
rsb_err_t rsb_lib_init(struct rsb_initopts *iop)
Definition: rsb_rsb.c:56
int BLAS_duscr_end(blas_sparse_matrix A)
Definition: rsb_libspblas.c:1879
int BLAS_dusget_element(blas_sparse_matrix A, const int i, const int j, double *v)
Definition: rsb_libspblas.c:3537
int BLAS_usds(blas_sparse_matrix A)
Definition: rsb_libspblas.c:2644
blas_sparse_matrix BLAS_duscr_begin(int m, int n)
Definition: rsb_libspblas.c:1472
int BLAS_dusmv(const enum blas_trans_type transA, double alpha, const blas_sparse_matrix A, const double *x, const int incx, double *y, const int incy)
Definition: rsb_libspblas.c:936
int BLAS_duscr_insert_entries(blas_sparse_matrix A, int nnz, const double *val, const int *indx, const int *jndx)
Definition: rsb_libspblas.c:2090
This file declares the user interface functions and data structures for the librsb library (see The l...
#define RSB_ERR_NO_ERROR
Definition: rsb.h:616
#define RSB_NULL_EXIT_OPTIONS
Definition: rsb.h:848
signed int rsb_err_t
Definition: rsb.h:386
#define RSB_NULL_INIT_OPTIONS
Definition: rsb.h:847