X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=svrt.git;a=blobdiff_plain;f=misc.h;fp=misc.h;h=e101861cd7315056b2782bdfbb22f47a3d0fbdd3;hp=e3dbab2e577485ebbab2a6a48f54c47a3f75c7c3;hb=471b18a7f4e9cbdfb510f304260ec5e6baeee697;hpb=4cbdf193cd4e79a68e10a651825d089369e6214d diff --git a/misc.h b/misc.h index e3dbab2..e101861 100644 --- a/misc.h +++ b/misc.h @@ -82,4 +82,16 @@ inline scalar_t log2(scalar_t x) { return log(x)/log(2.0); } +template +void grow(int *nb_max, int nb, T** current, int factor) { + ASSERT(*nb_max > 0); + if(nb == *nb_max) { + T *tmp = new T[*nb_max * factor]; + memcpy(tmp, *current, *nb_max * sizeof(T)); + delete[] *current; + *current = tmp; + *nb_max *= factor; + } +} + #endif