[FFmpeg-devel] [PATCH 3/4] avcodec/ppc/fdctdsp: use more accurate constants

Ganesh Ajjanagadde gajjanagadde at gmail.com
Fri Nov 13 22:22:36 CET 2015


On Fri, Nov 13, 2015 at 2:58 PM, Ronald S. Bultje <rsbultje at gmail.com> wrote:
> Hi,
>
> On Fri, Nov 13, 2015 at 11:42 AM, Ganesh Ajjanagadde
> <gajjanagadde at gmail.com> wrote:
>>
>> Whoever wrote this stuff had a pretty bad libm - digits differ pretty
>> quickly.
>>
>> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
>> ---
>>  libavcodec/ppc/fdctdsp.c | 14 +++++++-------
>>  1 file changed, 7 insertions(+), 7 deletions(-)
>>
>> diff --git a/libavcodec/ppc/fdctdsp.c b/libavcodec/ppc/fdctdsp.c
>> index 924d12c..92866d3 100644
>> --- a/libavcodec/ppc/fdctdsp.c
>> +++ b/libavcodec/ppc/fdctdsp.c
>> @@ -37,13 +37,13 @@
>>  #define vu16(v) ((vector unsigned short) (v))
>>  #define vu32(v)   ((vector unsigned int) (v))
>>
>> -#define C1     0.98078525066375732421875000 /* cos(1 * PI / 16) */
>> -#define C2     0.92387950420379638671875000 /* cos(2 * PI / 16) */
>> -#define C3     0.83146959543228149414062500 /* cos(3 * PI / 16) */
>> -#define C4     0.70710676908493041992187500 /* cos(4 * PI / 16) */
>> -#define C5     0.55557024478912353515625000 /* cos(5 * PI / 16) */
>> -#define C6     0.38268342614173889160156250 /* cos(6 * PI / 16) */
>> -#define C7     0.19509032368659973144531250 /* cos(7 * PI / 16) */
>> +#define C1     0.98078528040323044912618224 /* cos(1 * PI / 16) */
>> +#define C2     0.92387953251128675612818319 /* cos(2 * PI / 16) */
>> +#define C3     0.83146961230254523707878838 /* cos(3 * PI / 16) */
>> +#define C4     M_SQRT1_2                    /* cos(4 * PI / 16) */
>> +#define C5     0.55557023301960222474283081 /* cos(5 * PI / 16) */
>> +#define C6     0.38268343236508977172845998 /* cos(6 * PI / 16) */
>> +#define C7     0.19509032201612826784828487 /* cos(7 * PI / 16) */
>>
>>  #define W0 -(2 * C2)
>>  #define W1  (2 * C6)
>> --
>> 2.6.2
>
>
> While mathematically correct, this doesn't make it more readable IMO...
>
> (I don't mean the constants change - I mean the insertion of M_SQRT1_2 for
> cos(4*pi/16).)

Fine, I can replace cos(4*pi/16) by its expansion and align it with
the rest. Will push later with this change.

>
> Ronald


More information about the ffmpeg-devel mailing list