diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-05-11 13:29:51 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-05-11 13:29:51 +0200 |
| commit | d07d87964f13d3c1e6ad8c2f6d7db21101f1ef34 (patch) | |
| tree | 52dd2e82580eb3c70201991b53a2a2b4c434908b /vendor/libftm/src/vec | |
| parent | 0700a8f567ab733a57fe688e45e5092d3fa1c1a0 (diff) | |
| download | scop-d07d87964f13d3c1e6ad8c2f6d7db21101f1ef34.tar.gz scop-d07d87964f13d3c1e6ad8c2f6d7db21101f1ef34.tar.bz2 scop-d07d87964f13d3c1e6ad8c2f6d7db21101f1ef34.zip | |
libftm matrix, dynamic vector instead of fixed size
Diffstat (limited to 'vendor/libftm/src/vec')
| -rw-r--r-- | vendor/libftm/src/vec/ftm_vecadd.c | 28 | ||||
| -rw-r--r-- | vendor/libftm/src/vec/ftm_veccross.c | 33 | ||||
| -rw-r--r-- | vendor/libftm/src/vec/ftm_vecdestroy.c | 19 | ||||
| -rw-r--r-- | vendor/libftm/src/vec/ftm_vecdot.c | 30 | ||||
| -rw-r--r-- | vendor/libftm/src/vec/ftm_vecnew.c | 28 | ||||
| -rw-r--r-- | vendor/libftm/src/vec/ftm_vecscale.c | 26 | ||||
| -rw-r--r-- | vendor/libftm/src/vec/ftm_vecsub.c | 28 |
7 files changed, 192 insertions, 0 deletions
diff --git a/vendor/libftm/src/vec/ftm_vecadd.c b/vendor/libftm/src/vec/ftm_vecadd.c new file mode 100644 index 0000000..e776d21 --- /dev/null +++ b/vendor/libftm/src/vec/ftm_vecadd.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ftm_vecadd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/05/11 12:39:47 by charles #+# #+# */ +/* Updated: 2020/05/11 12:39:49 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libftm_vec.h" + +t_ftmvec *ftm_vecadd(t_ftmvec *dst, t_ftmvec *other) +{ + size_t i; + + if (dst->size != other->size) + return (NULL); + i = 0; + while (i < dst->size) + { + dst->v[i] += other->v[i]; + i++; + } + return (dst); +} diff --git a/vendor/libftm/src/vec/ftm_veccross.c b/vendor/libftm/src/vec/ftm_veccross.c new file mode 100644 index 0000000..48dda5f --- /dev/null +++ b/vendor/libftm/src/vec/ftm_veccross.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ftm_veccross.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/05/09 21:20:41 by charles #+# #+# */ +/* Updated: 2020/05/11 12:43:33 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libftm_vec.h" + +/* +** s1 = a2 * b - a * b2 +** s2 = a * b1 - a1 * b +** s = a1 * b2 - a2 * b1 +*/ + +t_ftmvec *ftm_veccross(t_ftmvec *a, t_ftmvec *b) +{ + t_ftmvec *dst; + + if (a->size != 3 || b->size != 3) + return (NULL); + if ((dst = ftm_vecnew(3)) == NULL) + return (NULL); + dst->v[0] = a->v[1] * b->v[2] - a->v[2] * b->v[1]; + dst->v[1] = a->v[2] * b->v[0] - a->v[0] * b->v[2]; + dst->v[2] = a->v[0] * b->v[1] - a->v[1] * b->v[0]; + return (dst); +} diff --git a/vendor/libftm/src/vec/ftm_vecdestroy.c b/vendor/libftm/src/vec/ftm_vecdestroy.c new file mode 100644 index 0000000..38caf23 --- /dev/null +++ b/vendor/libftm/src/vec/ftm_vecdestroy.c @@ -0,0 +1,19 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ftm_vecdestroy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/05/11 12:46:01 by charles #+# #+# */ +/* Updated: 2020/05/11 12:49:39 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libftm_vec.h" + +void ftm_vecdestroy(t_ftmvec *vec) +{ + free(vec->v); + free(vec); +} diff --git a/vendor/libftm/src/vec/ftm_vecdot.c b/vendor/libftm/src/vec/ftm_vecdot.c new file mode 100644 index 0000000..c2f03f0 --- /dev/null +++ b/vendor/libftm/src/vec/ftm_vecdot.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ftm_vecdot.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/05/09 21:06:09 by charles #+# #+# */ +/* Updated: 2020/05/11 12:48:12 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libftm_vec.h" + +float ftm_vecdot(t_ftmvec *a, t_ftmvec *b) +{ + size_t i; + float total; + + if (a->size != b->size) + return (0.0); + total = 0.0; + i = 0; + while (i < a->size) + { + total += a->v[i] * b->v[i]; + i++; + } + return (total); +} diff --git a/vendor/libftm/src/vec/ftm_vecnew.c b/vendor/libftm/src/vec/ftm_vecnew.c new file mode 100644 index 0000000..422b01d --- /dev/null +++ b/vendor/libftm/src/vec/ftm_vecnew.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ftm_vecnew.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/05/11 12:44:38 by charles #+# #+# */ +/* Updated: 2020/05/11 12:49:30 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libftm_vec.h" + +t_ftmvec *ftm_vecnew(size_t size) +{ + t_ftmvec *dst; + + if ((dst = malloc(sizeof(t_ftmvec))) == NULL) + return (NULL); + if ((dst->v = malloc(sizeof(float) * size)) == NULL) + { + free(dst); + return (NULL); + } + dst->size = size; + return (dst); +} diff --git a/vendor/libftm/src/vec/ftm_vecscale.c b/vendor/libftm/src/vec/ftm_vecscale.c new file mode 100644 index 0000000..508a245 --- /dev/null +++ b/vendor/libftm/src/vec/ftm_vecscale.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ftm_vecscale.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/05/11 12:41:11 by charles #+# #+# */ +/* Updated: 2020/05/11 12:48:43 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libftm_vec.h" + +t_ftmvec *ftm_vecscale(t_ftmvec *dst, float scalar) +{ + size_t i; + + i = 0; + while (i < dst->size) + { + dst->v[i] *= scalar; + i++; + } + return (dst); +} diff --git a/vendor/libftm/src/vec/ftm_vecsub.c b/vendor/libftm/src/vec/ftm_vecsub.c new file mode 100644 index 0000000..0ac8ae1 --- /dev/null +++ b/vendor/libftm/src/vec/ftm_vecsub.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ftm_vecsub.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/05/11 12:39:42 by charles #+# #+# */ +/* Updated: 2020/05/11 12:49:58 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libftm_vec.h" + +t_ftmvec *ftm_vecsub(t_ftmvec *dst, t_ftmvec *other) +{ + size_t i; + + if (dst->size != other->size) + return (NULL); + i = 0; + while (i < dst->size) + { + dst->v[i] -= other->v[i]; + i++; + } + return (dst); +} |
