64-bit dvector

This commit is contained in:
John Kerl 2016-02-17 22:35:23 -05:00
parent 8f9b0379cf
commit d2009b2f2d
3 changed files with 16 additions and 6 deletions

View file

@ -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));
}

View file

@ -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);

View file

@ -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