diff --git a/c/containers/dvector.c b/c/containers/dvector.c index 8d8b72eec..dc42b9c85 100644 --- a/c/containers/dvector.c +++ b/c/containers/dvector.c @@ -4,8 +4,8 @@ #include "containers/dvector.h" // ---------------------------------------------------------------- -dvector_t* dvector_alloc(int initial_capacity) { - int capacity = initial_capacity; +dvector_t* dvector_alloc(unsigned long long initial_capacity) { + unsigned long long capacity = initial_capacity; dvector_t* pdvector = mlr_malloc_or_die(sizeof(dvector_t)); pdvector->data = mlr_malloc_or_die(capacity*sizeof(double)); pdvector->size = 0; @@ -26,7 +26,7 @@ void dvector_free(dvector_t* pdvector) { void dvector_append(dvector_t* pdvector, double value) { if (pdvector->size >= pdvector->capacity) { - pdvector->capacity = (int)(pdvector->capacity * 2); + pdvector->capacity = (unsigned long long)(pdvector->capacity * 2); pdvector->data = (double*)mlr_realloc_or_die(pdvector->data, pdvector->capacity*sizeof(double)); } diff --git a/c/containers/dvector.h b/c/containers/dvector.h index 6b42044b3..c449f6f34 100644 --- a/c/containers/dvector.h +++ b/c/containers/dvector.h @@ -3,11 +3,11 @@ typedef struct _dvector_t { double* data; - int size; - int capacity; + unsigned long long size; + unsigned long long capacity; } dvector_t; -dvector_t* dvector_alloc(int initial_capacity); +dvector_t* dvector_alloc(unsigned long long initial_capacity); void dvector_free(dvector_t* pdvector); void dvector_append(dvector_t* pdvector, double value); diff --git a/c/todo.txt b/c/todo.txt index e54f00371..bb448b68e 100644 --- a/c/todo.txt +++ b/c/todo.txt @@ -44,6 +44,16 @@ TRI-SPLIT NULL mlr --opprint put '@sum[$a]=@sum[$a]+$x; filter false; end{dump}' ../data/small +================================================================ +64-BIT CONTAINER SIZES + +k sllv +* slls +* rslls +* sllmv +* dvector & stats1/2 ... +* top_keeper + ================================================================ MULTILEVEL EMIT: SPEC & IMPL