Math Lib: varied size vector multiply

Needed for Python mathutils elementwise multiply.
This commit is contained in:
Andrew Hale 2018-08-09 08:10:27 +10:00 committed by Campbell Barton
parent 440ef4235f
commit 3aee3bbac7
2 changed files with 23 additions and 0 deletions

View File

@ -354,6 +354,8 @@ void range_vn_u(unsigned int *array_tar, const int size, const unsigned int star
void range_vn_fl(float *array_tar, const int size, const float start, const float step);
void negate_vn(float *array_tar, const int size);
void negate_vn_vn(float *array_tar, const float *array_src, const int size);
void mul_vn_vn(float *array_tar, const float *array_src, const int size);
void mul_vn_vnvn(float *array_tar, const float *array_src_a, const float *array_src_b, const int size);
void mul_vn_fl(float *array_tar, const int size, const float f);
void mul_vn_vn_fl(float *array_tar, const float *array_src, const int size, const float f);
void add_vn_vn(float *array_tar, const float *array_src, const int size);

View File

@ -1096,6 +1096,27 @@ void negate_vn_vn(float *array_tar, const float *array_src, const int size)
}
}
void mul_vn_vn(float *array_tar, const float *array_src, const int size)
{
float *tar = array_tar + (size - 1);
const float *src = array_src + (size - 1);
int i = size;
while (i--) {
*(tar--) *= *(src--);
}
}
void mul_vn_vnvn(float *array_tar, const float *array_src_a, const float *array_src_b, const int size)
{
float *tar = array_tar + (size - 1);
const float *src_a = array_src_a + (size - 1);
const float *src_b = array_src_b + (size - 1);
int i = size;
while (i--) {
*(tar--) = *(src_a--) * *(src_b--);
}
}
void mul_vn_fl(float *array_tar, const int size, const float f)
{
float *array_pt = array_tar + (size - 1);