27 #include "sopalin/sopalin_data.h"
57 fprintf(stdout, OUT_ITERREFINE_ITER, (
int)nb_iters);
58 fprintf(stdout, OUT_ITERREFINE_TTT, stt);
59 fprintf(stdout, OUT_ITERREFINE_ERR, err);
91 pastix_complex64_t err,
95 pastix_complex64_t *gmresx )
140 solver->dot = &bvec_zdotc_seq;
148 solver->dot = &bvec_zdotc_smp;
BEGIN_C_DECLS typedef int pastix_int_t
void bvec_free(void *x)
Free a vector.
void bvec_zcopy_seq(pastix_data_t *pastix_data, pastix_int_t n, const pastix_complex64_t *x, pastix_complex64_t *y)
Copy a vector y = x (Sequential version)
void bvec_zgemv_seq(pastix_data_t *pastix_data, pastix_int_t m, pastix_int_t n, pastix_complex64_t alpha, const pastix_complex64_t *A, pastix_int_t lda, const pastix_complex64_t *x, pastix_complex64_t beta, pastix_complex64_t *y)
Compute.
void * bvec_malloc(size_t size)
Allocate a vector.
void bvec_zaxpy_seq(pastix_data_t *pastix_data, pastix_int_t n, pastix_complex64_t alpha, const pastix_complex64_t *x, pastix_complex64_t *y)
Compute y <- alpha * x + y. (Sequential version)
double bvec_znrm2_smp(pastix_data_t *pastix_data, pastix_int_t n, const pastix_complex64_t *x)
Compute the norm 2 of a vector. (Parallel version)
double bvec_znrm2_seq(pastix_data_t *pastix_data, pastix_int_t n, const pastix_complex64_t *x)
Compute the norm 2 of a vector. (Sequential version)
void bvec_zgemv_smp(pastix_data_t *pastix_data, pastix_int_t m, pastix_int_t n, pastix_complex64_t alpha, const pastix_complex64_t *A, pastix_int_t lda, const pastix_complex64_t *x, pastix_complex64_t beta, pastix_complex64_t *y)
Compute.
void bvec_zcopy_smp(pastix_data_t *pastix_data, pastix_int_t n, const pastix_complex64_t *x, pastix_complex64_t *y)
Copy a vector y = x (parallel version)
void bvec_zscal_smp(pastix_data_t *pastix_data, pastix_int_t n, pastix_complex64_t alpha, pastix_complex64_t *x)
Scale a vector (Parallel version)
void bvec_zaxpy_smp(pastix_data_t *pastix_data, pastix_int_t n, pastix_complex64_t alpha, const pastix_complex64_t *x, pastix_complex64_t *y)
Perform y = alpha * x + y (Parallel version)
void bcsc_zspmv(const pastix_data_t *pastix_data, pastix_trans_t trans, pastix_complex64_t alpha, const pastix_complex64_t *x, pastix_complex64_t beta, pastix_complex64_t *y)
Compute the matrix-vector product y = alpha * op(A) * x + beta * y.
void bvec_zscal_seq(pastix_data_t *pastix_data, pastix_int_t n, pastix_complex64_t alpha, pastix_complex64_t *x)
Scale a vector by the scalar alpha. (Sequential version)
void bcsc_zspsv(pastix_data_t *pastix_data, pastix_complex64_t *b, pastix_complex32_t *work)
Solve A x = b with A the sparse matrix.
enum pastix_scheduler_e pastix_scheduler_t
Scheduler.
void z_refine_output_final(pastix_data_t *pastix_data, pastix_complex64_t err, pastix_int_t nb_iters, pastix_fixdbl_t tf, void *x, pastix_complex64_t *gmresx)
Final output.
void z_refine_init(struct z_solver *, pastix_data_t *)
Initiate functions pointers to define basic operations.
void z_refine_output_oneiter(pastix_fixdbl_t t0, pastix_fixdbl_t tf, double err, pastix_int_t nb_iters)
Print statistics about one iteration.
Main PaStiX data structure.