44 lines
1.2 KiB
Cython
44 lines
1.2 KiB
Cython
|
cimport numpy as cnp
|
||
|
|
||
|
cnp.import_array()
|
||
|
|
||
|
|
||
|
ctypedef cnp.npy_float64 X_DTYPE_C
|
||
|
ctypedef cnp.npy_uint8 X_BINNED_DTYPE_C
|
||
|
ctypedef cnp.npy_float64 Y_DTYPE_C
|
||
|
ctypedef cnp.npy_float32 G_H_DTYPE_C
|
||
|
ctypedef cnp.npy_uint32 BITSET_INNER_DTYPE_C
|
||
|
ctypedef BITSET_INNER_DTYPE_C[8] BITSET_DTYPE_C
|
||
|
|
||
|
cdef packed struct hist_struct:
|
||
|
# Same as histogram dtype but we need a struct to declare views. It needs
|
||
|
# to be packed since by default numpy dtypes aren't aligned
|
||
|
Y_DTYPE_C sum_gradients
|
||
|
Y_DTYPE_C sum_hessians
|
||
|
unsigned int count
|
||
|
|
||
|
|
||
|
cdef packed struct node_struct:
|
||
|
# Equivalent struct to PREDICTOR_RECORD_DTYPE to use in memory views. It
|
||
|
# needs to be packed since by default numpy dtypes aren't aligned
|
||
|
Y_DTYPE_C value
|
||
|
unsigned int count
|
||
|
unsigned int feature_idx
|
||
|
X_DTYPE_C num_threshold
|
||
|
unsigned char missing_go_to_left
|
||
|
unsigned int left
|
||
|
unsigned int right
|
||
|
Y_DTYPE_C gain
|
||
|
unsigned int depth
|
||
|
unsigned char is_leaf
|
||
|
X_BINNED_DTYPE_C bin_threshold
|
||
|
unsigned char is_categorical
|
||
|
# The index of the corresponding bitsets in the Predictor's bitset arrays.
|
||
|
# Only used if is_categorical is True
|
||
|
unsigned int bitset_idx
|
||
|
|
||
|
cpdef enum MonotonicConstraint:
|
||
|
NO_CST = 0
|
||
|
POS = 1
|
||
|
NEG = -1
|