This repository has been archived on 2020-06-07. You can view files and clone it, but cannot push or open issues or pull requests.
2019-03-14 15:04:34 +00:00
|
|
|
//
|
|
|
|
// php-armadillo/complex.hh
|
|
|
|
//
|
|
|
|
// @Author CismonX
|
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef PHP_ARMA_COMPLEX_HH
|
|
|
|
#define PHP_ARMA_COMPLEX_HH
|
|
|
|
|
2019-03-15 15:25:24 +00:00
|
|
|
#include "php_arma.hh"
|
2019-03-14 15:04:34 +00:00
|
|
|
|
|
|
|
namespace php_arma
|
|
|
|
{
|
|
|
|
template <typename T>
|
|
|
|
PHP_METHOD(Complex, __construct);
|
|
|
|
|
|
|
|
void complex_init();
|
|
|
|
|
|
|
|
extern zend_class_entry *complex_ce;
|
2019-03-15 15:25:24 +00:00
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
PHP_ARMA_DECLARE_CE_HANDLERS(complex);
|
|
|
|
|
|
|
|
template <> zend_always_inline
|
|
|
|
bool zval_is_scalar<cx_double>(zval *zv)
|
|
|
|
{
|
|
|
|
return Z_TYPE_P(zv) == IS_OBJECT && instanceof_function(Z_OBJCE_P(zv), PHP_ARMA_CE(complex, double));
|
|
|
|
}
|
|
|
|
|
|
|
|
template <> zend_always_inline
|
|
|
|
const char *scalar_type_name<cx_double>()
|
|
|
|
{
|
|
|
|
return ZSTR_VAL(PHP_ARMA_CE(complex, double)->name);
|
|
|
|
}
|
2019-03-14 15:04:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif //!PHP_ARMA_COMPLEX_HH
|