#include #include #include void densearray_square_f32( float *dst, size_t dim) { for (size_t idx = 0; idx < dim; idx++) { float y = dst[idx]; dst[idx] = y * y; } } void densearray_sqrt_f32( float *dst, size_t dim) { for (size_t idx = 0; idx < dim; idx++) { float y = dst[idx]; dst[idx] = sqrtf(y); } } void densearray_reciprocal_f32( float *dst, size_t dim) { for (size_t idx = 0; idx < dim; idx++) { float y = dst[idx]; dst[idx] = 1.0f / y; } } void densearray_add_scalar_f32( float *dst, size_t dim, float c) { for (size_t idx = 0; idx < dim; idx++) { dst[idx] += c; } } void densearray_scale_f32( float *dst, size_t dim, float c) { for (size_t idx = 0; idx < dim; idx++) { dst[idx] *= c; } } void densearray_div_scalar_f32( float *dst, size_t dim, float c) { for (size_t idx = 0; idx < dim; idx++) { dst[idx] /= c; } } void densearray_elem_mult_f32( float *dst, size_t dim, const float *xs) { for (size_t idx = 0; idx < dim; idx++) { dst[idx] *= xs[idx]; } } void densearray_elem_div_f32( float *dst, size_t dim, const float *xs) { for (size_t idx = 0; idx < dim; idx++) { dst[idx] /= xs[idx]; } } void densearray_elem_ldiv_f32( float *dst, size_t dim, const float *xs) { for (size_t idx = 0; idx < dim; idx++) { dst[idx] = xs[idx] / dst[idx]; } } void densearray_vector_add_f32( float *dst, size_t dim, const float *xs, float c) { for (size_t idx = 0; idx < dim; idx++) { dst[idx] += c * xs[idx]; } } void densearray_vector_average_f32( float *dst, size_t dim, const float *xs, float c) { for (size_t idx = 0; idx < dim; idx++) { dst[idx] += c * (xs[idx] - dst[idx]); } }