-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathbasiclu.h
More file actions
154 lines (136 loc) · 4.08 KB
/
Copy pathbasiclu.h
File metadata and controls
154 lines (136 loc) · 4.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#ifndef _BASICLU_H
#define _BASICLU_H
#ifdef __cplusplus
extern "C"{
#endif
/*
* BASICLU integer type
*
* All integers in BASICLU code are of type lu_int, which must be a signed
* integer type. It is required that all integer values arising in the
* computation can be stored in double variables and converted back to lu_int
* without altering their value.
*
* LU_INT_MAX must be the maximum value of a variable of type lu_int.
*
* The default is 64 bit integers to make the code easily callable from Julia.
* int64_t is optional in the C99 standard, but available on most systems.
*
*/
#include <stdint.h>
typedef int64_t lu_int;
#define LU_INT_MAX INT64_MAX
/* #include <limits.h> */
/* typedef long lu_int; */
/* #define LU_INT_MAX LONG_MAX */
/* size of istore */
#define BASICLU_SIZE_ISTORE_1 1024
#define BASICLU_SIZE_ISTORE_M 21
/* size of xstore */
#define BASICLU_SIZE_XSTORE_1 1024
#define BASICLU_SIZE_XSTORE_M 4
/* ------------ */
/* status codes */
/* ------------ */
#define BASICLU_OK 0
#define BASICLU_REALLOCATE 1
#define BASICLU_WARNING_singular_matrix 2
#define BASICLU_ERROR_invalid_store (-1)
#define BASICLU_ERROR_invalid_call (-2)
#define BASICLU_ERROR_argument_missing (-3)
#define BASICLU_ERROR_invalid_argument (-4)
#define BASICLU_ERROR_maximum_updates (-5)
#define BASICLU_ERROR_singular_update (-6)
#define BASICLU_ERROR_invalid_object (-8)
#define BASICLU_ERROR_out_of_memory (-9)
/* ------------------------ */
/* public entries in xstore */
/* ------------------------ */
/* user parameters */
#define BASICLU_MEMORYL 1
#define BASICLU_MEMORYU 2
#define BASICLU_MEMORYW 3
#define BASICLU_DROP_TOLERANCE 4
#define BASICLU_ABS_PIVOT_TOLERANCE 5
#define BASICLU_REL_PIVOT_TOLERANCE 6
#define BASICLU_BIAS_NONZEROS 7
#define BASICLU_MAXN_SEARCH_PIVOT 8
#define BASICLU_PAD 9
#define BASICLU_STRETCH 10
#define BASICLU_COMPRESSION_THRESHOLD 11
#define BASICLU_SPARSE_THRESHOLD 12
#define BASICLU_REMOVE_COLUMNS 13
#define BASICLU_SEARCH_ROWS 14
/* user readable */
#define BASICLU_DIM 64
#define BASICLU_STATUS 65
#define BASICLU_ADD_MEMORYL 66
#define BASICLU_ADD_MEMORYU 67
#define BASICLU_ADD_MEMORYW 68
#define BASICLU_NUPDATE 70
#define BASICLU_NFORREST 71
#define BASICLU_NFACTORIZE 72
#define BASICLU_NUPDATE_TOTAL 73
#define BASICLU_NFORREST_TOTAL 74
#define BASICLU_NSYMPERM_TOTAL 75
#define BASICLU_LNZ 76
#define BASICLU_UNZ 77
#define BASICLU_RNZ 78
#define BASICLU_MIN_PIVOT 79
#define BASICLU_MAX_PIVOT 80
#define BASICLU_UPDATE_COST 81
#define BASICLU_TIME_FACTORIZE 82
#define BASICLU_TIME_SOLVE 83
#define BASICLU_TIME_UPDATE 84
#define BASICLU_TIME_FACTORIZE_TOTAL 85
#define BASICLU_TIME_SOLVE_TOTAL 86
#define BASICLU_TIME_UPDATE_TOTAL 87
#define BASICLU_LFLOPS 88
#define BASICLU_UFLOPS 89
#define BASICLU_RFLOPS 90
#define BASICLU_CONDEST_L 91
#define BASICLU_CONDEST_U 92
#define BASICLU_MAX_ETA 93
#define BASICLU_NORM_L 94
#define BASICLU_NORM_U 95
#define BASICLU_NORMEST_LINV 96
#define BASICLU_NORMEST_UINV 97
#define BASICLU_MATRIX_ONENORM 98
#define BASICLU_MATRIX_INFNORM 99
#define BASICLU_RESIDUAL_TEST 111
#define BASICLU_MATRIX_NZ 100
#define BASICLU_RANK 101
#define BASICLU_BUMP_SIZE 102
#define BASICLU_BUMP_NZ 103
#define BASICLU_NSEARCH_PIVOT 104
#define BASICLU_NEXPAND 105
#define BASICLU_NGARBAGE 106
#define BASICLU_FACTOR_FLOPS 107
#define BASICLU_TIME_SINGLETONS 108
#define BASICLU_TIME_SEARCH_PIVOT 109
#define BASICLU_TIME_ELIM_PIVOT 110
#define BASICLU_PIVOT_ERROR 120
/* ----------------------- */
/* user callable functions */
/* ----------------------- */
#include "basiclu_initialize.h"
#include "basiclu_factorize.h"
#include "basiclu_get_factors.h"
#include "basiclu_solve_dense.h"
#include "basiclu_solve_sparse.h"
#include "basiclu_solve_for_update.h"
#include "basiclu_update.h"
#include "basiclu_object.h"
#include "basiclu_obj_initialize.h"
#include "basiclu_obj_factorize.h"
#include "basiclu_obj_get_factors.h"
#include "basiclu_obj_solve_dense.h"
#include "basiclu_obj_solve_sparse.h"
#include "basiclu_obj_solve_for_update.h"
#include "basiclu_obj_update.h"
#include "basiclu_obj_maxvolume.h"
#include "basiclu_obj_free.h"
#ifdef __cplusplus
}
#endif
#endif