parExQHV
Compute Exclusive HyperVolumes using threads
|
Simple point interface. Contains simple point manipulation functions. More...
#include <stdio.h>
#include <math.h>
#include <float.h>
#include <string.h>
#include "emmintrin.h"
#include "macros.h"
#include "pointStruct.h"
Go to the source code of this file.
Macros | |
#define | Eps 0.0000000001 |
#define | equal(A, B, I) (fabs((A)->x[I] - (B)->x[I]) < Eps) |
#define | objective(Z, A, O) HV(Z, A) |
#define | SSED ((D+1)/2) |
Used to guarantee aligned points. | |
Functions | |
void | parsePoint (char *S, point *p, double max) |
void | randomPoint (point *p) |
while (i< D) | |
memcpy (z,&(zero->x[0]), SSED *sizeof(__m128d)) | |
memcpy (o,&(one->x[0]), SSED *sizeof(__m128d)) | |
memcpy (p,&(pt->x[0]), SSED *sizeof(__m128d)) | |
if (V[1]< V[0]) V[0] | |
memcpy (a,&(A->x[0]), SSED *sizeof(__m128d)) | |
memcpy (b,&(B->x[0]), SSED *sizeof(__m128d)) | |
memcpy SSED * | sizeof (__m128d)) |
Variables | |
point | cZero |
point | cOne |
static point * | pvt |
static point unsigned int | oct |
static point unsigned int point * | zero |
int | i = 0 |
B = 1 | |
static point unsigned int point * | one |
static point * | a |
res = 0 | |
__m128d | o [SSED] |
__m128d | z [SSED] |
double * | V = (double*) &c |
A volume value for every dimension + 1. | |
int | d = 0 |
c = _mm_set1_pd(1) | |
static point * | pt |
__m128d | s |
__m128d | p [SSED] |
static point * | A |
__m128d | b [SSED] |
__m128d | r [SSED] |
static int | n |
static int int | j |
t = idx[n] | |
idx [n] = idx[j] | |
Simple point interface. Contains simple point manipulation functions.
Definition in file point.h.
#define equal | ( | A, | |
B, | |||
I | |||
) | (fabs((A)->x[I] - (B)->x[I]) < Eps) |
#define objective | ( | Z, | |
A, | |||
O | |||
) | HV(Z, A) |
void parsePoint | ( | char * | S, |
point * | p, | ||
double | max | ||
) |
void randomPoint | ( | point * | p | ) |