Vec2<float> lt(const Vec2<float> &v1, const Vec2<float> &v2) { Vec2<float> rv; rv.x = lt_float(v1.x, v2.x); rv.y = lt_float(v1.y, v2.y); return rv; }
Vec4<float> lt(const Vec4<float> &v1, const Vec4<float> &v2) { Vec4<float> rv; rv.x = lt_float(v1.x, v2.x); rv.y = lt_float(v1.y, v2.y); rv.z = lt_float(v1.z, v2.z); rv.w = lt_float(v1.w, v2.w); return rv; }
VecN<float, N> lt(const VecN<float, N> &v1, const VecN<float, N> &v2) { VecN<float, N> rv; for(unsigned int i=0; i < N; i++) { rv.v[i] = lt_float(v1.v[i], v2.v[i]); } return rv; }
int main (int argc, char * argv[]) { const int N = 16; const int iters = 1; float *x, *y, *z; posix_memalign((void **)&x, VECTOR_SIZE, N*sizeof(float)); posix_memalign((void **)&y, VECTOR_SIZE, N*sizeof(float)); posix_memalign((void **)&z, VECTOR_SIZE, N*sizeof(float)); int i, j; for (i=0; i<N; i++) { x[i] = i; y[i] = i+1; z[i] = 0.0f; } lt_float(x, y, z, N); test((void *)z, N); gt_float(y, x, z, N); test((void *)z, N); le_float(x, y, z, N); test((void *)z, N); ge_float(y, x, z, N); test((void *)z, N); diff_float(y, x, z, N); test((void *)z, N); for (i=0; i<N; i++) { x[i] = i; y[i] = i; } eq_float(y, x, z, N); test((void *)z, N); printf("SUCCESS!\n"); return 0; }
float lt(const float v1, const float v2) { return lt_float(v1, v2); }