//
// php-armadillo/mat.hh
// @Author CismonX
#ifndef PHP_ARMA_MAT_HH
#define PHP_ARMA_MAT_HH
#include "php_arma.hh"
#include "instantiable.hh"
#include "complex.hh"
namespace php_arma
{
template <typename T> struct subview_mat;
template <typename T>
struct mat : instantiable<mat<T>, false>
using native_t = arma::Mat<T>;
using orig_t = mat<T>;
using subview_t = subview_mat<T>;
using with_int_elem_t = mat<zend_long>;
using with_pod_elem_t = mat<typename arma::get_pod_type<T>::result>;
friend void mat_init();
PHP_ARMA_CE_HANDLRES_DECLARE();
private:
PHP_ARMA_COMMON_DECLARE();
static PHP_FUNCTION(init);
static PHP_FUNCTION(fromString);
static PHP_FUNCTION(fromArray);
static void ce_init(zend_class_entry*);
};
void mat_init();
constexpr const char mat_php_name[] = "Mat";
inline zend_class_entry *mat_ce;
}
#endif // !PHP_ARMA_MAT_HH