cii-text-analysis/vendor/rubix/tensor/ext/include/indexing.c
Jéremy Munsch f68d2ac333
premier poc
2026-02-11 08:24:04 +01:00

40 lines
819 B
C

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <php.h>
#include "kernel/operators.h"
void tensor_argmin(zval * return_value, zval * values)
{
zval * current, min;
zend_ulong index;
ZVAL_DOUBLE(&min, INFINITY);
RETVAL_NULL();
ZEND_HASH_FOREACH_NUM_KEY_VAL(Z_ARR_P(values), index, current) {
if (ZEPHIR_LT(current, &min)) {
ZVAL_COPY(&min, current);
RETVAL_LONG(index);
}
} ZEND_HASH_FOREACH_END();
}
void tensor_argmax(zval * return_value, zval * values)
{
zval * current, max;
zend_ulong index;
ZVAL_DOUBLE(&max, -INFINITY);
RETVAL_NULL();
ZEND_HASH_FOREACH_NUM_KEY_VAL(Z_ARR_P(values), index, current) {
if (ZEPHIR_GT(current, &max)) {
ZVAL_COPY(&max, current);
RETVAL_LONG(index);
}
} ZEND_HASH_FOREACH_END();
}