74 #define SMNULL ((SPMAT*)NULL)
75 #define SVNULL ((SPVEC*)NULL)
78 #define sprow_idx2(r,c,hint) \
79 ( ( (hint) >= 0 && (hint) < (r)->len && \
80 (r)->elt[hint].col == (c)) ? (hint) : sprow_idx((r),(c)) )
177 #define sp_input() sp_finput(stdin)
178 #define sp_output(A) sp_foutput(stdout,(A))
179 #define sp_output2(A) sp_foutput2(stdout,(A))
180 #define row_mltadd(r1,r2,alpha,out) sprow_mltadd(r1,r2,alpha,0,out)
181 #define out_row(r) sprow_foutput(stdout,(r))
183 #define SP_FREE(A) ( sp_free((A)), (A)=(SPMAT *)NULL)
186 #define fixindex(idx) ((idx) == -1 ? (error(E_BOUNDS,"fixindex"),0) : \
187 (idx) < 0 ? -((idx)+2) : (idx))
int const size_t const size_t n
void sprow_dump(FILE *fp, SPROW *r)
SPROW * sprow_mltadd(SPROW *, SPROW *, double, int, SPROW *, int type)
SPMAT * sp_mltadd(SPMAT *A, SPMAT *B, double alpha, SPMAT *C)
void sp_dump(FILE *fp, SPMAT *A)
SPROW * sprow_copy(SPROW *, SPROW *, SPROW *, int type)
void sp_foutput(FILE *, SPMAT *)
int sp_resize_vars(int m, int n,...)
SPROW * sprow_sub(SPROW *r1, SPROW *r2, int j0, SPROW *r_out, int type)
SPROW * sprow_xpd(SPROW *r, int n, int type)
SPMAT * sp_copy2(SPMAT *, SPMAT *)
SPMAT * sp_finput(FILE *)
double sp_set_val(SPMAT *, int, int, double)
VEC * sp_vm_mlt(SPMAT *, VEC *, VEC *)
SPROW * sprow_resize(SPROW *r, int n, int type)
SPMAT * sp_col_access(SPMAT *)
MAT * sp_m2dense(SPMAT *A, MAT *out)
SPROW * sprow_merge(SPROW *, SPROW *, SPROW *, int type)
int sp_get_vars(int m, int n, int deg,...)
SPMAT * sp_compact(SPMAT *, double)
SPMAT * sp_get(int, int, int)
void sp_foutput2(FILE *, SPMAT *)
SPROW * sprow_smlt(SPROW *r1, double alpha, int j0, SPROW *r_out, int type)
SPMAT * sp_sub(SPMAT *A, SPMAT *B, SPMAT *C)
VEC * sp_mv_mlt(SPMAT *, VEC *, VEC *)
int sp_free_vars(SPMAT **,...)
SPMAT * sp_add(SPMAT *A, SPMAT *B, SPMAT *C)
SPMAT * sp_diag_access(SPMAT *)
SPMAT * sp_smlt(SPMAT *A, double alpha, SPMAT *B)
SPMAT * sp_resize(SPMAT *, int, int)
SPROW * sprow_add(SPROW *r1, SPROW *r2, int j0, SPROW *r_out, int type)
int sprow_idx(SPROW *, int)
struct mesch_pair mesch_pair
double sp_get_val(SPMAT *, int, int)
int chk_col_access(SPMAT *)
void sprow_foutput(FILE *, SPROW *)
double sprow_set_val(SPROW *, int, double)