1 #ifdef HAVE_CONFIG_H
2 #include "config.h"
3 #endif
4
5 #include <php.h>
6 #include "kernel/operators.h"
7
tensor_argmin(zval * return_value,zval * values)8 void tensor_argmin(zval * return_value, zval * values)
9 {
10 zval * current, min;
11 zend_ulong index;
12
13 ZVAL_DOUBLE(&min, INFINITY);
14 RETVAL_NULL();
15
16 ZEND_HASH_FOREACH_NUM_KEY_VAL(Z_ARR_P(values), index, current) {
17 if (ZEPHIR_LT(current, &min)) {
18 ZVAL_COPY(&min, current);
19
20 RETVAL_LONG(index);
21 }
22 } ZEND_HASH_FOREACH_END();
23 }
24
tensor_argmax(zval * return_value,zval * values)25 void tensor_argmax(zval * return_value, zval * values)
26 {
27 zval * current, max;
28 zend_ulong index;
29
30 ZVAL_DOUBLE(&max, -INFINITY);
31 RETVAL_NULL();
32
33 ZEND_HASH_FOREACH_NUM_KEY_VAL(Z_ARR_P(values), index, current) {
34 if (ZEPHIR_GT(current, &max)) {
35 ZVAL_COPY(&max, current);
36
37 RETVAL_LONG(index);
38 }
39 } ZEND_HASH_FOREACH_END();
40 }
41