Matrix r4655
Loading...
Searching...
No Matches
cs-etc.h
Go to the documentation of this file.
1#ifndef MATRIX_CS_ETC_H
2#define MATRIX_CS_ETC_H
3
4#include <Rinternals.h>
5#include "SuiteSparse/CXSparse/Include/cs.h"
6
7#define MCS_PATTERN 0
8#define MCS_REAL 1
9#define MCS_COMPLEX 2
10
11#define MCS_XTYPE_GET( ) Matrix_cs_xtype
12#define MCS_XTYPE_SET(_VALUE_) Matrix_cs_xtype = _VALUE_
13
14extern int Matrix_cs_xtype;
15
16typedef struct Matrix_cs_sparse
17{
18 int nzmax;
19 int m;
20 int n;
21 int *p;
22 int *i;
23 void *x; /* (double *) or (double _Complex *) */
24 int nz;
25 int xtype; /* Matrix-only */
27
28typedef struct Matrix_cs_symbolic
29{
30 int *pinv;
31 int *q;
32 int *parent;
33 int *cp;
35 int m2;
36 double lnz;
37 double unz;
39
40typedef struct Matrix_cs_numeric
41{
42 Matrix_cs *L; /* (cs_di *) or (cs_ci *) */
43 Matrix_cs *U; /* (cs_di *) or (cs_ci *) */
44 int *pinv;
45 double *B;
47
49{
50 int *p;
51 int *q;
52 int *r;
53 int *s;
54 int nb;
55 int rr[5];
56 int cc[5];
58
59Matrix_cs *M2CXS(SEXP, int);
60SEXP CXS2M(Matrix_cs *, int, char);
61
62/* Wrappers for the functions that we use at least once : */
63
67void *Matrix_cs_free (void *);
68int Matrix_cs_happly (const Matrix_cs *, int, double, void *);
69int Matrix_cs_ipvec (const int *, const void *, void *, int);
70int Matrix_cs_lsolve (const Matrix_cs *, void *);
71Matrix_csn *Matrix_cs_lu (const Matrix_cs *, const Matrix_css *, double);
72int Matrix_cs_lusol (int, const Matrix_cs *, void *, double);
74Matrix_cs *Matrix_cs_permute (const Matrix_cs *, const int *, const int *, int);
75int *Matrix_cs_pinv (const int *, int);
76int Matrix_cs_pvec (const int *, const void *, void *, int);
78int Matrix_cs_qrsol (int, const Matrix_cs *, void *);
80Matrix_cs *Matrix_cs_spalloc (int, int, int, int, int);
81Matrix_cs *Matrix_cs_speye (int, int, int, int);
84int Matrix_cs_spsolve (Matrix_cs *, const Matrix_cs *, int, int *, void *, const int *, int);
85Matrix_css *Matrix_cs_sqr (int, const Matrix_cs *, int);
87int Matrix_cs_usolve (const Matrix_cs *, void *);
88
89#endif /* MATRIX_CS_ETC_H */
SEXP CXS2M(Matrix_cs *, int, char)
Definition cs-etc.c:40
struct Matrix_cs_symbolic Matrix_css
int Matrix_cs_lusol(int, const Matrix_cs *, void *, double)
Definition cs-etc.c:174
Matrix_cs * Matrix_cs_speye(int, int, int, int)
Definition cs-etc.c:308
Matrix_cs * Matrix_cs_permute(const Matrix_cs *, const int *, const int *, int)
Definition cs-etc.c:198
int Matrix_cs_usolve(const Matrix_cs *, void *)
Definition cs-etc.c:411
Matrix_cs * Matrix_cs_transpose(const Matrix_cs *, int)
Definition cs-etc.c:386
int Matrix_cs_qrsol(int, const Matrix_cs *, void *)
Definition cs-etc.c:259
Matrix_cs * M2CXS(SEXP, int)
Definition cs-etc.c:6
int Matrix_cs_ipvec(const int *, const void *, void *, int)
Definition cs-etc.c:138
Matrix_csd * Matrix_cs_dmperm(const Matrix_cs *, int)
Definition cs-etc.c:90
int Matrix_cs_pvec(const int *, const void *, void *, int)
Definition cs-etc.c:235
int Matrix_cs_dropzeros(Matrix_cs *)
Definition cs-etc.c:102
Matrix_css * Matrix_cs_sqr(int, const Matrix_cs *, int)
Definition cs-etc.c:374
struct Matrix_cs_sparse Matrix_cs
struct Matrix_cs_numeric Matrix_csn
void * Matrix_cs_free(void *)
Definition cs-etc.c:114
Matrix_csn * Matrix_cs_lu(const Matrix_cs *, const Matrix_css *, double)
Definition cs-etc.c:162
int Matrix_cs_xtype
Definition cs-etc.c:4
int * Matrix_cs_pinv(const int *, int)
Definition cs-etc.c:223
int Matrix_cs_happly(const Matrix_cs *, int, double, void *)
Definition cs-etc.c:126
Matrix_csn * Matrix_cs_nfree(Matrix_csn *)
Definition cs-etc.c:186
Matrix_cs * Matrix_cs_spalloc(int, int, int, int, int)
Definition cs-etc.c:283
Matrix_css * Matrix_cs_sfree(Matrix_css *)
Definition cs-etc.c:271
int Matrix_cs_lsolve(const Matrix_cs *, void *)
Definition cs-etc.c:150
Matrix_csn * Matrix_cs_qr(const Matrix_cs *, const Matrix_css *)
Definition cs-etc.c:247
int Matrix_cs_sprealloc(Matrix_cs *, int)
Definition cs-etc.c:350
Matrix_csd * Matrix_cs_dfree(Matrix_csd *)
Definition cs-etc.c:78
struct Matrix_cs_dmperm_results Matrix_csd
int Matrix_cs_spsolve(Matrix_cs *, const Matrix_cs *, int, int *, void *, const int *, int)
Definition cs-etc.c:362
Matrix_cs * Matrix_cs_spfree(Matrix_cs *)
Definition cs-etc.c:338
double * B
Definition cs-etc.h:45
Matrix_cs * L
Definition cs-etc.h:42
Matrix_cs * U
Definition cs-etc.h:43