From 7b89ddefac7cd2b5f4e029ec1448d9f387704c8c Mon Sep 17 00:00:00 2001 From: CismonX Date: Mon, 4 Nov 2019 16:46:08 +0800 Subject: [PATCH] Add implementation for vector interface --- src/php_arma.cc | 2 ++ src/vector.cc | 26 ++++++++++++++++++++++++++ src/vector.hh | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 src/vector.cc create mode 100644 src/vector.hh diff --git a/src/php_arma.cc b/src/php_arma.cc index 02d6b48..4c3f444 100644 --- a/src/php_arma.cc +++ b/src/php_arma.cc @@ -23,6 +23,7 @@ #include "mat.hh" #include "subview_mat.hh" #include "diagonal.hh" +#include "vector.hh" #ifdef PHP_ARMA_OPERATORS #include "operators.hh" @@ -51,6 +52,7 @@ namespace php_arma mat_init(); subview_mat_init(); diagonal_init(); + vector_init(); #ifdef PHP_ARMA_OPERATORS operators_init(); diff --git a/src/vector.cc b/src/vector.cc new file mode 100644 index 0000000..aeace78 --- /dev/null +++ b/src/vector.cc @@ -0,0 +1,26 @@ +// +// php-armadillo/vector.cc +// +// @Author CismonX +// + +#include "vector.hh" + +namespace php_arma +{ + template + PHP_ARMA_METHOD(vector, t, T, ChildT) + { + + } + + template + PHP_ARMA_START_ME(vector, T, T1) + PHP_ARMA_ME(t, ZEND_ACC_PUBLIC) + PHP_ARMA_END_ME(); + + void vector_init() + { + vector_ce = interface_register(); + } +} diff --git a/src/vector.hh b/src/vector.hh new file mode 100644 index 0000000..18d9de6 --- /dev/null +++ b/src/vector.hh @@ -0,0 +1,32 @@ +// +// php-armadillo/vector.hh +// +// @Author CismonX +// + +#ifndef PHP_ARMA_VECTOR_HH +#define PHP_ARMA_VECTOR_HH + +#include "php_arma.hh" + +namespace php_arma +{ + template + struct vector + { + using native_t = typename ChildT::native_t; + + PHP_ARMA_COMMON_DECLARE(); + + private: + PHP_FUNCTION(t); + }; + + void vector_init(); + + constexpr const char vector_php_name[] = "Vector"; + + inline zend_class_entry *vector_ce; +} + +#endif // !PHP_ARMA_VECTOR_HH