X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=svrt.git;a=blobdiff_plain;f=misc.h;h=e101861cd7315056b2782bdfbb22f47a3d0fbdd3;hp=d5f956cb75bc62506aeafd8aae9acdf74a269b30;hb=c68b9ff4b03b7cb00f4c2e2e2381d3aeaf509647;hpb=194e1b60502426108c6f6c3cf2e08e95e7a2811d diff --git a/misc.h b/misc.h index d5f956c..e101861 100644 --- a/misc.h +++ b/misc.h @@ -67,18 +67,21 @@ void deallocate_array(T **array) { delete[] array; } -template -T smooth_min(T x, T y) { - T z = exp(x - y); - return 0.5 * (x + y - (x - y)/(1 + 1/z) - (y - x)/(1 + z)); -} - template void write_var(ostream *os, const T *x) { os->write((char *) x, sizeof(T)); } template void read_var(istream *is, T *x) { is->read((char *) x, sizeof(T)); } +template +inline T sq(T x) { + return x * x; +} + +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); @@ -91,34 +94,4 @@ void grow(int *nb_max, int nb, T** current, int factor) { } } -template -inline T sq(T x) { - return x * x; -} - -inline scalar_t log2(scalar_t x) { - return log(x)/log(2.0); -} - -inline scalar_t xi(scalar_t x) { - if(x <= 0.0) return 0.0; - else return - x * log(x)/log(2.0); -} - -scalar_t discrete_entropy(int *n, int nb); - -char *basename(char *name); - -char *next_word(char *buffer, char *r, int buffer_size); - -void random_permutation(int *val, int nb); -void tag_subset(bool *val, int nb_total, int nb_to_tag); - -struct Couple { - int index; - scalar_t value; -}; - -int compare_couple(const void *a, const void *b); - #endif