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