summaryrefslogtreecommitdiff
path: root/interpolation.c
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2015-02-12 15:43:26 +0100
committerLars-Dominik Braun <lars@6xq.net>2015-05-02 21:36:44 +0200
commit334e82a0a23db8a5c0816756021611bfffe2fa26 (patch)
tree9512429b38ef7a72c32f991f6e57a825accebcc4 /interpolation.c
parentab08b66105e90ff75eeff2d807e4da4db51870a7 (diff)
downloadpucket-334e82a0a23db8a5c0816756021611bfffe2fa26.tar.gz
pucket-334e82a0a23db8a5c0816756021611bfffe2fa26.tar.bz2
pucket-334e82a0a23db8a5c0816756021611bfffe2fa26.zip
Vectorize c and post matrices as well apply_xform
Diffstat (limited to 'interpolation.c')
-rw-r--r--interpolation.c27
1 files changed, 11 insertions, 16 deletions
diff --git a/interpolation.c b/interpolation.c
index 0ab1c54..4bef70f 100644
--- a/interpolation.c
+++ b/interpolation.c
@@ -57,7 +57,7 @@ double det_matrix(double s[2][2]) {
return s[0][0] * s[1][1] - s[0][1] * s[1][0];
}
-int id_matrix(double s[3][2]) {
+int id_matrix(double2 s[3]) {
return
(s[0][0] == 1.0) &&
(s[0][1] == 0.0) &&
@@ -67,7 +67,7 @@ int id_matrix(double s[3][2]) {
(s[2][1] == 0.0);
}
-int zero_matrix(double s[3][2]) {
+int zero_matrix(double2 s[3]) {
return
(s[0][0] == 0.0) &&
(s[0][1] == 0.0) &&
@@ -88,23 +88,18 @@ void copy_matrix(double to[3][2], double from[3][2]) {
}
-void clear_matrix(double m[3][2]) {
- m[0][0] = 0.0;
- m[0][1] = 0.0;
- m[1][0] = 0.0;
- m[1][1] = 0.0;
- m[2][0] = 0.0;
- m[2][1] = 0.0;
+void clear_matrix(double2 m[3]) {
+ const double2 zero = (double2) { 0.0, 0.0 };
+ m[0] = zero;
+ m[1] = zero;
+ m[2] = zero;
}
-void sum_matrix(double s, double m1[3][2], double m2[3][2]) {
+void sum_matrix(double s, const double2 m1[3], double2 m2[3]) {
- m2[0][0] += s * m1[0][0];
- m2[0][1] += s * m1[0][1];
- m2[1][0] += s * m1[1][0];
- m2[1][1] += s * m1[1][1];
- m2[2][0] += s * m1[2][0];
- m2[2][1] += s * m1[2][1];
+ m2[0] += s * m1[0];
+ m2[1] += s * m1[1];
+ m2[2] += s * m1[2];
}
void mult_matrix(double s1[2][2], double s2[2][2], double d[2][2]) {