[FFmpeg-devel] [PATCHv2 1/5] lavu/float_dsp: add double-precision scalar product

James Almer jamrial at gmail.com
Thu May 30 22:33:17 EEST 2024


On 5/30/2024 4:31 PM, Rémi Denis-Courmont wrote:
> Le torstaina 30. toukokuuta 2024, 22.06.55 EEST Rémi Denis-Courmont a écrit :
>> The function pointer is appended to the structure for backward binary
>> compatibility. Fortunately, this is allocated by libavutil, not by the
>> user, so increasing the structure size is safe.
>> ---
>>   libavutil/float_dsp.c | 12 ++++++++++++
>>   libavutil/float_dsp.h | 31 ++++++++++++++++++++++++++++++-
>>   2 files changed, 42 insertions(+), 1 deletion(-)
>>
>> diff --git a/libavutil/float_dsp.c b/libavutil/float_dsp.c
>> index e9fb023466..08bbc85e3e 100644
>> --- a/libavutil/float_dsp.c
>> +++ b/libavutil/float_dsp.c
>> @@ -132,6 +132,17 @@ float avpriv_scalarproduct_float_c(const float *v1,
>> const float *v2, int len) return p;
>>   }
>>
>> +double ff_scalarproduct_double_c(const double *v1, const double *v2,
>> +                                 size_t len)
>> +{
>> +    double p = 0.0;
>> +
>> +    for (size_t i = 0; i < len; i++)
>> +        p += v1[i] * v2[i];
>> +
>> +    return p;
>> +}
>> +
> 
> If somebody wants to write x86 assembly, they can probably borrow most of the
> code for evaluate_lls. It is a double precision scalar product with a little
> bit of extra fluff in the prologue.

I already did, I'm just waiting for this set to be pushed before sending it.


More information about the ffmpeg-devel mailing list