[utils] cartesian product iterator for grid search during model selection

This commit is contained in:
Al
2017-04-03 00:15:31 -04:00
parent 4a72afc712
commit 957aa0c0c9
2 changed files with 114 additions and 0 deletions

23
src/cartesian_product.h Normal file
View File

@@ -0,0 +1,23 @@
#ifndef CARTESIAN_PRODUCT_H
#define CARTESIAN_PRODUCT_H
#include <stdlib.h>
#include <stdarg.h>
#include "collections.h"
typedef struct cartesian_product_iterator {
size_t remaining;
uint32_array *lengths;
uint32_array *state;
} cartesian_product_iterator_t;
cartesian_product_iterator_t *cartesian_product_iterator_new(size_t n, ...);
cartesian_product_iterator_t *cartesian_product_iterator_new_vargs(size_t n, va_list args);
uint32_t *cartesian_product_iterator_start(cartesian_product_iterator_t *self);
uint32_t *cartesian_product_iterator_next(cartesian_product_iterator_t *self);
bool cartesian_product_iterator_done(cartesian_product_iterator_t *self);
void cartesian_product_iterator_destroy(cartesian_product_iterator_t *self);
#endif