Sha256: a0e2b76d53fa07a13a3017902c0406efc1dc36e9010cfe64dda75ddc67aad43a
Contents?: true
Size: 1.63 KB
Versions: 1
Compression:
Stored size: 1.63 KB
Contents
#ifndef KMAT_H #define KMAT_H 1 #include <stdlib.h> #include <float.h> #include <limits.h> #include <math.h> #include <stdbool.h> #include <ruby.h> #include "lapack_headers/blas.h" #include "lapack_headers/lapacke.h" #include "lapack_headers/lapacke_utils.h" #ifndef M_PI # define M_PI 3.14159265358979323846 #endif #define M_2PI 6.28318530717958647692 #define COMPLEX double _Complex #ifdef CMPLX /* C11 macro is available */ # define cpack(x,y) CMPLX(x,y) #elif (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__INTEL_COMPILER) # define cpack(x,y) __builtin_complex((double) (x), (double) (y)) #else # define cpack(x,y) ((double)(x)+I*(double)(y)) #endif #ifndef __GNUC__ # define __attribute__(x) #endif typedef enum { VT_DOUBLE, VT_COMPLEX, VT_INT, VT_BOOL, VT_VALUE, VT_END } VTYPE; typedef enum { ST_FULL, ST_SSUB, ST_RSUB, ST_END } STYPE; typedef struct { union { void *body; double *dbody; COMPLEX *zbody; int *ibody; bool *bbody; VALUE *vbody; void **pbody; double **dpbody; COMPLEX **zpbody; int **ipbody; bool **bpbody; VALUE **vpbody; }; size_t ld, m, n; VTYPE vtype; STYPE stype; bool trans, may_have_sub; VALUE parent; } SMAT; typedef union { double d; COMPLEX z; int i; bool b; VALUE v; } ELEMENT; typedef struct { union { void *body; double *d; COMPLEX *z; int *i; bool *b; VALUE *v; }; size_t ld; bool need_to_free; } LAWORK; #include "id_sym.h" #include "global_variables.h" extern const rb_data_type_t km_mat_data_type; extern VALUE kmgv_mat_random; #include "km_util.h" #include "auto_collected.h" #include "elementwise_function.h" #endif /* KMAT_H */
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kmat-0.1.0 | ext/kmat/kmat.h |