From fde4f623b25973f124e9ca89698d5dce41993687 Mon Sep 17 00:00:00 2001 From: Yuval Peress Date: Fri, 18 Oct 2019 12:34:31 -0600 Subject: common: vec3: Add init/sub/add functions Add convinience functions for initializing, adding, and subtracting vec3. BUG=None BRANCH=None TEST=buildall Change-Id: I594db350863a8199eade15a38deb6c223e2ae1ac Signed-off-by: Yuval Peress Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1869729 Reviewed-by: Gwendal Grignou Reviewed-by: Jack Rosenthal Tested-by: Jack Rosenthal --- common/vec3.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'common/vec3.c') diff --git a/common/vec3.c b/common/vec3.c index 9a3561365a..29dc22f922 100644 --- a/common/vec3.c +++ b/common/vec3.c @@ -9,6 +9,13 @@ #include "vec3.h" #include "util.h" +void fpv3_init(fpv3_t v, fp_t x, fp_t y, fp_t z) +{ + v[X] = x; + v[Y] = y; + v[Z] = z; +} + void fpv3_scalar_mul(fpv3_t v, fp_t c) { v[X] = fp_mul(v[X], c); @@ -16,6 +23,20 @@ void fpv3_scalar_mul(fpv3_t v, fp_t c) v[Z] = fp_mul(v[Z], c); } +void fpv3_sub(fpv3_t out, const fpv3_t a, const fpv3_t b) +{ + out[X] = a[X] - b[X]; + out[Y] = a[Y] - b[Y]; + out[Z] = a[Z] - b[Z]; +} + +void fpv3_add(fpv3_t out, const fpv3_t a, const fpv3_t b) +{ + out[X] = a[X] + b[X]; + out[Y] = a[Y] + b[Y]; + out[Z] = a[Z] + b[Z]; +} + fp_t fpv3_dot(const fpv3_t v, const fpv3_t w) { return fp_mul(v[X], w[X]) + fp_mul(v[Y], w[Y]) + fp_mul(v[Z], w[Z]); -- cgit v1.2.1