From: Øyvind Kolås Date: Tue, 28 Aug 2018 14:44:19 +0000 (+0200) Subject: babl-matrix: add babl_matrix_mul_matrixf X-Git-Tag: archive/raspbian/1%0.1.106-3+rpi1^2~15^2~14^2~30 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1034cf76241b6b809d6a1a9ed8ec4581d1a51a89;p=babl.git babl-matrix: add babl_matrix_mul_matrixf --- diff --git a/babl/babl-matrix.h b/babl/babl-matrix.h index 8f331a5..2107b31 100644 --- a/babl/babl-matrix.h +++ b/babl/babl-matrix.h @@ -31,6 +31,33 @@ static inline void babl_matrix_mul_matrix (const double *matA_, } } + +static inline void babl_matrix_mul_matrixf (const float *matA_, + const float *matB_, + float *out) +{ + int i, j; + float matA[9]; + float matB[9]; + float t1, t2, t3; + memcpy (matA, matA_, sizeof (matA)); + memcpy (matB, matB_, sizeof (matB)); + + for (i = 0; i < 3; i++) + { + t1 = m(matA, i, 0); + t2 = m(matA, i, 1); + t3 = m(matA, i, 2); + + for (j = 0; j < 3; j ++) + { + m(out,i,j) = t1 * m(matB, 0, j); + m(out,i,j) += t2 * m(matB, 1, j); + m(out,i,j) += t3 * m(matB, 2, j); + } + } +} + static inline void babl_matrix_to_float (const double *in, float *out) { int i;