// // php-armadillo/mat.cc // // @Author CismonX // #include "mat.hh" #include "constants.hh" #include "base.hh" #include "dense.hh" #include "matrix.hh" #include "dense_matrix.hh" #include "resizable.hh" #include "resizable_matrix.hh" #include "dense_resizable_matrix.hh" namespace php_arma { template PHP_ARMA_START_ME(mat, T) PHP_ARMA_END_ME(); template void mat::ce_init(zend_class_entry *parent_ce) { ce = class_register(parent_ce, fentry_list_concat( PHP_ARMA_FENTRY((base ::me)), PHP_ARMA_FENTRY((dense ::me)), PHP_ARMA_FENTRY((matrix ::me)), PHP_ARMA_FENTRY((dense_matrix ::me)), PHP_ARMA_FENTRY((resizable ::me)), PHP_ARMA_FENTRY((resizable_matrix ::me)), PHP_ARMA_FENTRY((dense_resizable_matrix::me)), PHP_ARMA_FENTRY(me) )); ce->create_object = object_non_constructible; object_handlers_init(&handlers); handlers.offset = sizeof(native_t); handlers.clone_obj = nullptr; handlers.dtor_obj = object_destroy; handlers.count_elements = base::count_elements; } PHP_ARMA_NAME_DECLARE(mat, "DMat", double); PHP_ARMA_NAME_DECLARE(mat, "IMat", zend_long); PHP_ARMA_NAME_DECLARE(mat, "CxDMat", cx_double); void mat_init() { mat_ce = abstract_class_register(dense_resizable_matrix_ce); mat::ce_init(mat_ce); mat::ce_init(mat_ce); mat::ce_init(mat_ce); } }