From 285f5bec5bb03d4e825e5d866e94008088dd6155 Mon Sep 17 00:00:00 2001 From: xleroy Date: Sat, 9 Aug 2008 08:06:33 +0000 Subject: Ajout nouveaux tests git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@708 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- test/raytracer/vector.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 test/raytracer/vector.c (limited to 'test/raytracer/vector.c') diff --git a/test/raytracer/vector.c b/test/raytracer/vector.c new file mode 100644 index 00000000..226b61a8 --- /dev/null +++ b/test/raytracer/vector.c @@ -0,0 +1,74 @@ +#include "config.h" +#include "point.h" +#include "vector.h" + +flt dotproduct(struct vector * a, struct vector * b) +{ + return a->dx * b->dx + a->dy * b->dy + a->dz * b->dz; +} + +void between(struct point * p, struct point * q, + /*out*/ struct vector * v) +{ + v->dx = q->x - p->x; + v->dy = q->y - p->y; + v->dz = q->z - p->z; +} + +void opposite(struct vector * v, + /*out*/ struct vector * w) +{ + w->dx = - v->dx; + w->dy = - v->dy; + w->dz = - v->dz; +} + +void point_along(struct point * p, struct vector * v, + flt ac, + /*out*/ struct point * q) +{ + q->x = p->x + v->dx * ac; + q->y = p->y + v->dy * ac; + q->z = p->z + v->dz * ac; +} + +void product(struct vector * a, struct vector * b, + /*out*/ struct vector * v) +{ + v->dx = a->dy * b->dz - a->dz * b->dy; + v->dy = a->dz * b->dx - a->dx * b->dz; + v->dz = a->dx * b->dy - a->dy * b->dx; +} + +flt vlength2(struct vector * a) +{ + return a->dx * a->dx + a->dy * a->dy + a->dz * a->dz; +} + +flt vlength(struct vector * a) +{ + return sqrt(vlength2(a)); +} + +void vscale(struct vector * a, flt s, + /*out*/ struct vector * v) +{ + v->dx = a->dx * s; + v->dy = a->dy * s; + v->dz = a->dz * s; +} + +void vnormalize(struct vector * a, /*out*/ struct vector * v) +{ + vscale(a, 1 / vlength(a), v); +} + +void vsub(struct vector * a, struct vector * b, + /*out*/ struct vector * v) +{ + v->dx = a->dx - b->dx; + v->dy = a->dy - b->dy; + v->dz = a->dz - b->dz; +} + + -- cgit