21double _statistics[10];
25 return rand()/(double) RAND_MAX;
30 for (
size_t i = 0; i < n; i++) y[i] = x[i] - y[i];
36 for (i = 0; i < n; i++) res += x[i]*y[i];
42 for (
size_t i = 0; i < n; i++) y[i] = x[i] + beta * y[i];
48 for (
size_t i = 0; i < n; i++) x[i] += beta * y[i];
54 if (!*u) *u =
gv_calloc(m,
sizeof(
float));
56 for (
size_t i = 0; i < m; i++) {
57 assert(p[i] >= 0 && (
size_t)p[i] < n);
65 const double *ss1 =
s1;
66 const double *ss2 = s2;
70 }
else if (ss1[0] < ss2[0]){
82 }
else if (ss1[0] < ss2[0]){
94 double *u =
gv_calloc(2 * n,
sizeof(
double));
96 for (
size_t i = 0; i < n; i++) {
97 u[2 * i + 1] = (double)i;
103 for (
size_t i = 0; i < n; i++) (*p)[i] = (int)u[2 * i + 1];
128 for (i = 0; i <
dim; i++)
dist += (p1[i] - p2[i])*(p1[i] - p2[i]);
135 for (
size_t i = strlen(
s); ; i--) {
136 if (first &&
s[i] ==
'.') {
140 if (
s[i] ==
'/')
return &
s[i+1];
Memory allocation wrappers that exit on failure.
static void * gv_calloc(size_t nmemb, size_t size)
static double dist(int dim, double *x, double *y)
void vector_ordering(size_t n, double *v, int **p)
double * vector_saxpy(size_t n, double *x, double *y, double beta)
y = x+beta*y
char * strip_dir(char *s)
double distance(double *x, int dim, int i, int j)
double vector_product(int n, double *x, double *y)
double * vector_subtract_to(size_t n, double *x, double *y)
y = x-y
void vector_float_take(size_t n, float *v, size_t m, int *p, float **u)
double * vector_saxpy2(size_t n, double *x, double *y, double beta)
x = x+beta*y
static int comp_ascend_int(const void *s1, const void *s2)
void vector_sort_int(int n, int *v)
double distance_cropped(double *x, int dim, int i, int j)
double point_distance(double *p1, double *p2, int dim)
static int comp_ascend(const void *s1, const void *s2)
NEATOPROCS_API void s1(graph_t *, node_t *)