// // php-armadillo/diagonal.hh // // @Author CismonX // #ifndef PHP_ARMA_DIAGONAL_HH #define PHP_ARMA_DIAGONAL_HH #include "php_arma.hh" #include "instantiable.hh" #include "complex.hh" #include "shared_methods.hh" namespace php_arma { template struct mat; template struct diagonal : instantiable, true> { using native_t = std::conditional_t, arma::diagview>; using orig_t = mat; using subview_t = mat; using with_int_elem_t = mat; friend void diagonal_init(); PHP_ARMA_CE_HANDLRES_DECLARE(); private: PHP_ARMA_COMMON_DECLARE(); using linear = linear_element_acccess; static void ce_init(zend_class_entry*); }; template using diagview = diagonal; template using spdiagview = diagonal; void diagonal_init(); constexpr const char diagonal_php_name[] = "Diagonal"; constexpr const char diagview_php_name[] = "DiagView"; constexpr const char spdiagview_php_name[] = "SpDiagView"; inline zend_class_entry *diagonal_ce; inline zend_class_entry *diagview_ce; inline zend_class_entry *spdiagview_ce; } #endif // !PHP_ARMA_DIAGONAL_HH