Go to the documentation of this file.
18#ifdef FLA_ENABLE_WINDOWS_BUILD
19 #define restrict __restrict
32#define FLA_SUCCESS (-1)
33#define FLA_FAILURE (-2)
44#define FLA_COMPLEX 102
45#define FLA_DOUBLE_COMPLEX 103
47#define FLA_CONSTANT 105
58#define FLA_SIDE_MASK 0x1
61#define FLA_LOWER_TRIANGULAR 300
62#define FLA_UPPER_TRIANGULAR 301
63#define FLA_ZERO_MATRIX 310
64#define FLA_FULL_MATRIX 311
65#define FLA_UPLO_MASK 0x1
68#define FLA_NO_TRANSPOSE 400
69#define FLA_TRANSPOSE 401
70#define FLA_CONJ_TRANSPOSE 402
71#define FLA_CONJ_NO_TRANSPOSE 403
72#define FLA_TRANS_MASK 0x3
75#define FLA_NO_CONJUGATE 450
76#define FLA_CONJUGATE 451
79#define FLA_UNIT_DIAG 500
80#define FLA_NONUNIT_DIAG 501
81#define FLA_ZERO_DIAG 502
82#define FLA_DIAG_MASK 0x3
85#define FLA_DIMENSION_M 600
86#define FLA_DIMENSION_K 601
87#define FLA_DIMENSION_N 602
88#define FLA_DIMENSION_MIN 603
91#define FLA_DIM_M_INDEX 0
92#define FLA_DIM_K_INDEX 1
93#define FLA_DIM_N_INDEX 2
94#define FLA_DIM_MIN_INDEX 3
95#define FLA_DIM_INDEX_MASK 0x3
98#define FLA_NATIVE_PIVOTS 700
99#define FLA_LAPACK_PIVOTS 701
102#define FLA_FORWARD 800
103#define FLA_BACKWARD 801
106#define FLA_COLUMNWISE 900
107#define FLA_ROWWISE 901
114#define FLA_SINGLE_PRECISION 1100
115#define FLA_DOUBLE_PRECISION 1101
118#define FLA_REAL_DOMAIN 1200
119#define FLA_COMPLEX_DOMAIN 1201
122#define FLA_NO_INVERSE 1300
123#define FLA_INVERSE 1301
126#define FLA_EVD_WITHOUT_VECTORS 1400
127#define FLA_EVD_WITH_VECTORS 1401
128#define FLA_EVD_OF_TRIDIAG_WITH_VECTORS 1402
131#define FLA_SVD_VECTORS_ALL 1500
132#define FLA_SVD_VECTORS_MIN_COPY 1501
133#define FLA_SVD_VECTORS_MIN_OVERWRITE 1502
134#define FLA_SVD_VECTORS_NONE 1503
137#define FLA_MACH_START 1600
138#define FLA_MACH_EPS 1600
139#define FLA_MACH_SFMIN 1601
140#define FLA_MACH_BASE 1602
141#define FLA_MACH_PREC 1603
142#define FLA_MACH_NDIGMANT 1604
143#define FLA_MACH_RND 1605
144#define FLA_MACH_EMIN 1606
145#define FLA_MACH_RMIN 1607
146#define FLA_MACH_EMAX 1608
147#define FLA_MACH_RMAX 1609
148#define FLA_MACH_EPS2 1610
149#define FLA_MACH_N_VALS 11
152#define FLA_SUPER_DIAGONAL ( 1)
153#define FLA_MAIN_DIAGONAL 0
154#define FLA_SUB_DIAGONAL (-1)
158#define FLA_PTHREADS 2
161#define FLA_NO_INTRINSICS 0
162#define FLA_SSE_INTRINSICS 3
165#define FLA_FULL_ERROR_CHECKING 2
166#define FLA_MIN_ERROR_CHECKING 1
167#define FLA_NO_ERROR_CHECKING 0
174#define FLA_DTYPE_INDEX_MASK 0x3
177#ifndef FLA_DEFAULT_M_BLOCKSIZE
178 #define FLA_DEFAULT_M_BLOCKSIZE 128
180#ifndef FLA_DEFAULT_K_BLOCKSIZE
181 #define FLA_DEFAULT_K_BLOCKSIZE 128
183#ifndef FLA_DEFAULT_N_BLOCKSIZE
184 #define FLA_DEFAULT_N_BLOCKSIZE 128
194#define FLA_QR_INNER_TO_OUTER_B_RATIO (0.25)
195#define FLA_LQ_INNER_TO_OUTER_B_RATIO (0.25)
196#define FLA_LU_INNER_TO_OUTER_B_RATIO (0.25)
197#define FLA_UDDATE_INNER_TO_OUTER_B_RATIO (0.25)
198#define FLA_HESS_INNER_TO_OUTER_B_RATIO (0.25)
199#define FLA_TRIDIAG_INNER_TO_OUTER_B_RATIO (0.25)
200#define FLA_BIDIAG_INNER_TO_OUTER_B_RATIO (0.25)
201#define FLA_CAQR_INNER_TO_OUTER_B_RATIO (0.25)
208#define FLA_ERROR_CODE_MIN (-10)
211#define FLA_INVALID_SIDE (-10)
212#define FLA_INVALID_UPLO (-11)
213#define FLA_INVALID_TRANS (-12)
214#define FLA_INVALID_TRANS_GIVEN_DATATYPE (-13)
215#define FLA_INVALID_CONJ (-14)
216#define FLA_INVALID_DIRECT (-15)
217#define FLA_INVALID_STOREV (-16)
218#define FLA_INVALID_DATATYPE (-17)
219#define FLA_INVALID_INTEGER_DATATYPE (-18)
220#define FLA_INVALID_REAL_DATATYPE (-19)
221#define FLA_INVALID_COMPLEX_DATATYPE (-20)
222#define FLA_OBJECT_NOT_INTEGER (-21)
223#define FLA_OBJECT_NOT_REAL (-22)
224#define FLA_OBJECT_NOT_COMPLEX (-23)
225#define FLA_OBJECT_NOT_SQUARE (-24)
226#define FLA_OBJECT_NOT_SCALAR (-25)
227#define FLA_OBJECT_NOT_VECTOR (-26)
228#define FLA_INCONSISTENT_DATATYPES (-27)
229#define FLA_NONCONFORMAL_DIMENSIONS (-28)
230#define FLA_UNEQUAL_VECTOR_DIMS (-29)
231#define FLA_INVALID_HESSENBERG_INDICES (-30)
232#define FLA_NULL_POINTER (-32)
233#define FLA_SPECIFIED_OBJ_DIM_MISMATCH (-33)
234#define FLA_INVALID_PIVOT_TYPE (-35)
235#define FLA_MALLOC_RETURNED_NULL_POINTER (-37)
236#define FLA_OBJECT_BASE_BUFFER_MISMATCH (-38)
237#define FLA_OBJECTS_NOT_VERTICALLY_ADJ (-39)
238#define FLA_OBJECTS_NOT_HORIZONTALLY_ADJ (-40)
239#define FLA_ADJACENT_OBJECT_DIM_MISMATCH (-41)
240#define FLA_OBJECTS_NOT_VERTICALLY_ALIGNED (-42)
241#define FLA_OBJECTS_NOT_HORIZONTALLY_ALIGNED (-43)
242#define FLA_INVALID_FLOATING_DATATYPE (-44)
243#define FLA_OBJECT_NOT_FLOATING_POINT (-45)
244#define FLA_INVALID_BLOCKSIZE_VALUE (-46)
245#define FLA_OPEN_RETURNED_ERROR (-47)
246#define FLA_LSEEK_RETURNED_ERROR (-48)
247#define FLA_CLOSE_RETURNED_ERROR (-49)
248#define FLA_UNLINK_RETURNED_ERROR (-50)
249#define FLA_READ_RETURNED_ERROR (-51)
250#define FLA_WRITE_RETURNED_ERROR (-52)
251#define FLA_INVALID_QUADRANT (-53)
252#define FLA_NOT_YET_IMPLEMENTED (-54)
253#define FLA_EXPECTED_NONNEGATIVE_VALUE (-55)
254#define FLA_SUPERMATRIX_NOT_ENABLED (-56)
255#define FLA_UNDEFINED_ERROR_CODE (-57)
256#define FLA_INVALID_DIAG (-58)
257#define FLA_INCONSISTENT_OBJECT_PRECISION (-59)
258#define FLA_INVALID_BLOCKSIZE_OBJ (-60)
259#define FLA_VECTOR_DIM_BELOW_MIN (-61)
260#define FLA_PTHREAD_CREATE_RETURNED_ERROR (-63)
261#define FLA_PTHREAD_JOIN_RETURNED_ERROR (-64)
262#define FLA_INVALID_ISGN_VALUE (-65)
263#define FLA_CHOL_FAILED_MATRIX_NOT_SPD (-67)
264#define FLA_INVALID_ELEMTYPE (-68)
265#define FLA_POSIX_MEMALIGN_FAILED (-69)
266#define FLA_INVALID_SUBMATRIX_DIMS (-70)
267#define FLA_INVALID_SUBMATRIX_OFFSET (-71)
268#define FLA_OBJECT_NOT_SCALAR_ELEMTYPE (-72)
269#define FLA_OBJECT_NOT_MATRIX_ELEMTYPE (-73)
270#define FLA_ENCOUNTERED_NON_POSITIVE_NTHREADS (-74)
271#define FLA_INVALID_CONJ_GIVEN_DATATYPE (-75)
272#define FLA_INVALID_COMPLEX_TRANS (-76)
273#define FLA_INVALID_REAL_TRANS (-77)
274#define FLA_INVALID_BLAS_TRANS (-78)
275#define FLA_INVALID_NONCONSTANT_DATATYPE (-79)
276#define FLA_OBJECT_NOT_NONCONSTANT (-80)
277#define FLA_OBJECT_DATATYPES_NOT_EQUAL (-82)
278#define FLA_DIVIDE_BY_ZERO (-83)
279#define FLA_OBJECT_ELEMTYPES_NOT_EQUAL (-84)
280#define FLA_INVALID_PIVOT_INDEX_RANGE (-85)
281#define FLA_HOUSEH_PANEL_MATRIX_TOO_SMALL (-86)
282#define FLA_INVALID_OBJECT_LENGTH (-87)
283#define FLA_INVALID_OBJECT_WIDTH (-88)
284#define FLA_INVALID_ERROR_CHECKING_LEVEL (-89)
285#define FLA_ATTEMPTED_OVER_REPART_2X2 (-90)
286#define FLA_ATTEMPTED_OVER_REPART_2X1 (-91)
287#define FLA_ATTEMPTED_OVER_REPART_1X2 (-92)
288#define FLA_EXTERNAL_LAPACK_NOT_IMPLEMENTED (-93)
289#define FLA_INVALID_ROW_STRIDE (-94)
290#define FLA_INVALID_COL_STRIDE (-95)
291#define FLA_INVALID_STRIDE_COMBINATION (-96)
292#define FLA_INVALID_VECTOR_DIM (-97)
293#define FLA_EXPECTED_ROW_VECTOR (-98)
294#define FLA_EXPECTED_COL_VECTOR (-99)
295#define FLA_INVALID_INVERSE (-100)
296#define FLA_MALLOC_GPU_RETURNED_NULL_POINTER (-101)
297#define FLA_INVALID_EVD_TYPE (-102)
298#define FLA_INVALID_SVD_TYPE (-103)
299#define FLA_INVALID_MACHVAL (-104)
300#define FLA_INVALID_DIAG_OFFSET (-105)
301#define FLA_EXPECTED_COL_STORAGE (-106)
302#define FLA_EXPECTED_ROW_STORAGE (-107)
303#define FLA_LAPAC2FLAME_INVALID_RETURN (-108)
304#define FLA_INVALID_SVD_TYPE_COMBINATION (-109)
305#define FLA_INVALID_SVD_TYPE_AND_TRANS_COMBINATION (-110)
306#define FLA_OBJECT_NOT_COMPARABLE (-111)
309#define FLA_ERROR_CODE_MAX (-111)
312#define FLA_MAX_NUM_ERROR_MSGS 150
313#define FLA_MAX_ERROR_MSG_LENGTH 200
316#define FLA_Check_error_code( code ) \
317 FLA_Check_error_code_helper( code, __FILE__, __LINE__ )
324#define min( x, y ) ( (x) < (y) ? (x) : (y) )
327#define max( x, y ) ( (x) > (y) ? (x) : (y) )
330#define signof( a, b ) ( (b) >= 0 ? (a) : -(a) )
333#define exchange( a, b, temp ) { temp = a; a = b; b = temp; }
337#define FLA_NEGATE( a ) \
338 ( a.base == FLA_ONE.base ? FLA_MINUS_ONE : FLA_ONE )