MCPcopy Create free account
hub / github.com/ValveSoftware/steam-audio / scale

Method scale

core/src/core/array_math.cpp:290–317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

288}
289
290void ArrayMath::scale(int size,
291 const float* in,
292 float scalar,
293 float* out)
294{
295 auto simdSize = size & ~3;
296 auto simdScalar = float4::set1(scalar);
297
298 if (float4::isAligned(in) && float4::isAligned(out))
299 {
300 for (auto i = 0; i < simdSize; i += 4)
301 {
302 float4::store(&out[i], float4::mul(float4::load(&in[i]), simdScalar));
303 }
304 }
305 else
306 {
307 for (auto i = 0; i < simdSize; i += 4)
308 {
309 float4::storeu(&out[i], float4::mul(float4::loadu(&in[i]), simdScalar));
310 }
311 }
312
313 for (auto i = simdSize; i < size; ++i)
314 {
315 out[i] = in[i] * scalar;
316 }
317}
318
319void ArrayMath::scale(int size,
320 const complex_t* in,

Callers 11

iplEnergyFieldScaleFunction · 0.45
iplImpulseResponseScaleFunction · 0.45
iplEnergyFieldScaleFunction · 0.45
iplImpulseResponseScaleFunction · 0.45
ITESTFunction · 0.45
iplEnergyFieldScaleFunction · 0.45
iplImpulseResponseScaleFunction · 0.45
iplEnergyFieldScaleFunction · 0.45
iplImpulseResponseScaleFunction · 0.45
iplEnergyFieldScaleFunction · 0.45
iplImpulseResponseScaleFunction · 0.45

Calls 7

set1Function · 0.70
isAlignedFunction · 0.70
storeFunction · 0.70
mulFunction · 0.70
loadFunction · 0.70
storeuFunction · 0.70
loaduFunction · 0.70

Tested by 1

ITESTFunction · 0.36