Re: [FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-03-08 Thread Michael Niedermayer
On Tue, Mar 07, 2017 at 04:36:15PM -0800, Thomas Turner wrote:
> The Chen-Shapiro(CS) test was used to test normality for
> Lagged Fibonacci PRNG.
> 
> Normality Hypothesis Test:
> 
> The null hypothesis formally tests if the population
> the sample represents is normally-distributed. For
> CS, when the normality hypothesis is True, the
> distribution of QH will have a mean close to 1.
> 
> Information on CS can be found here:
> 
> http://www.stata-journal.com/sjpdf.html?articlenum=st0264
> http://www.originlab.com/doc/Origin-Help/NormalityTest-Algorithm
> 
> Signed-off-by: Thomas Turner 
> ---
>  libavutil/tests/lfg.c|  164 +++-
>  tests/fate/libavutil.mak |4 +
>  tests/ref/fate/lfg   | 1007 
> ++
>  3 files changed, 1153 insertions(+), 22 deletions(-)
>  create mode 100644 tests/ref/fate/lfg

applied

thx

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Those who are best at talking, realize last or never when they are wrong.


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-03-07 Thread Thomas Turner
The Chen-Shapiro(CS) test was used to test normality for
Lagged Fibonacci PRNG.

Normality Hypothesis Test:

The null hypothesis formally tests if the population
the sample represents is normally-distributed. For
CS, when the normality hypothesis is True, the
distribution of QH will have a mean close to 1.

Information on CS can be found here:

http://www.stata-journal.com/sjpdf.html?articlenum=st0264
http://www.originlab.com/doc/Origin-Help/NormalityTest-Algorithm

Signed-off-by: Thomas Turner 
---
 libavutil/tests/lfg.c|  164 +++-
 tests/fate/libavutil.mak |4 +
 tests/ref/fate/lfg   | 1007 ++
 3 files changed, 1153 insertions(+), 22 deletions(-)
 create mode 100644 tests/ref/fate/lfg

diff --git a/libavutil/tests/lfg.c b/libavutil/tests/lfg.c
index 1425e02..ad3b491 100644
--- a/libavutil/tests/lfg.c
+++ b/libavutil/tests/lfg.c
@@ -20,6 +20,85 @@
 #include "libavutil/timer.h"
 #include "libavutil/lfg.h"
 
+static const double Z_TABLE[31][10] = {
+{0.5000,  0.5040,  0.5080,  0.5120,  0.5160,  0.5199,  0.5239,  0.5279,  
0.5319,  0.5359},
+{0.5398,  0.5438,  0.5478,  0.5517,  0.5557,  0.5596,  0.5636,  0.5675,  
0.5714,  0.5753},
+{0.5793,  0.5832,  0.5871,  0.5910,  0.5948,  0.5987,  0.6026,  0.6064,  
0.6103,  0.6141},
+{0.6179,  0.6217,  0.6255,  0.6293,  0.6331,  0.6368,  0.6406,  0.6443,  
0.6480,  0.6517},
+{0.6554,  0.6591,  0.6628,  0.6664,  0.6700,  0.6736,  0.6772,  0.6808,  
0.6844,  0.6879},
+{0.6915,  0.6950,  0.6985,  0.7019,  0.7054,  0.7088,  0.7123,  0.7157,  
0.7190,  0.7224},
+{0.7257,  0.7291,  0.7324,  0.7357,  0.7389,  0.7422,  0.7454,  0.7486,  
0.7517,  0.7549},
+{0.7580,  0.7611,  0.7642,  0.7673,  0.7704,  0.7734,  0.7764,  0.7794,  
0.7823,  0.7852},
+{0.7881,  0.7910,  0.7939,  0.7967,  0.7995,  0.8023,  0.8051,  0.8078,  
0.8106,  0.8133},
+{0.8159,  0.8186,  0.8212,  0.8238,  0.8264,  0.8289,  0.8315,  0.8340,  
0.8365,  0.8389},
+{0.8413,  0.8438,  0.8461,  0.8485,  0.8508,  0.8531,  0.8554,  0.8577,  
0.8599,  0.8621},
+{0.8643,  0.8665,  0.8686,  0.8708,  0.8729,  0.8749,  0.8770,  0.8790,  
0.8810,  0.8830},
+{0.8849,  0.8869,  0.,  0.8907,  0.8925,  0.8944,  0.8962,  0.8980,  
0.8997,  0.9015},
+{0.9032,  0.9049,  0.9066,  0.9082,  0.9099,  0.9115,  0.9131,  0.9147,  
0.9162,  0.9177},
+{0.9192,  0.9207,  0.9222,  0.9236,  0.9251,  0.9265,  0.9279,  0.9292,  
0.9306,  0.9319},
+{0.9332,  0.9345,  0.9357,  0.9370,  0.9382,  0.9394,  0.9406,  0.9418,  
0.9429,  0.9441},
+{0.9452,  0.9463,  0.9474,  0.9484,  0.9495,  0.9505,  0.9515,  0.9525,  
0.9535,  0.9545},
+{0.9554,  0.9564,  0.9573,  0.9582,  0.9591,  0.9599,  0.9608,  0.9616,  
0.9625,  0.9633},
+{0.9641,  0.9649,  0.9656,  0.9664,  0.9671,  0.9678,  0.9686,  0.9693,  
0.9699,  0.9706},
+{0.9713,  0.9719,  0.9726,  0.9732,  0.9738,  0.9744,  0.9750,  0.9756,  
0.9761,  0.9767},
+{0.9772,  0.9778,  0.9783,  0.9788,  0.9793,  0.9798,  0.9803,  0.9808,  
0.9812,  0.9817},
+{0.9821,  0.9826,  0.9830,  0.9834,  0.9838,  0.9842,  0.9846,  0.9850,  
0.9854,  0.9857},
+{0.9861,  0.9864,  0.9868,  0.9871,  0.9875,  0.9878,  0.9881,  0.9884,  
0.9887,  0.9890},
+{0.9893,  0.9896,  0.9898,  0.9901,  0.9904,  0.9906,  0.9909,  0.9911,  
0.9913,  0.9916},
+{0.9918,  0.9920,  0.9922,  0.9925,  0.9927,  0.9929,  0.9931,  0.9932,  
0.9934,  0.9936},
+{0.9938,  0.9940,  0.9941,  0.9943,  0.9945,  0.9946,  0.9948,  0.9949,  
0.9951,  0.9952},
+{0.9953,  0.9955,  0.9956,  0.9957,  0.9959,  0.9960,  0.9961,  0.9962,  
0.9963,  0.9964},
+{0.9965,  0.9966,  0.9967,  0.9968,  0.9969,  0.9970,  0.9971,  0.9972,  
0.9973,  0.9974},
+{0.9974,  0.9975,  0.9976,  0.9977,  0.9977,  0.9978,  0.9979,  0.9979,  
0.9980,  0.9981},
+{0.9981,  0.9982,  0.9982,  0.9983,  0.9984,  0.9984,  0.9985,  0.9985,  
0.9986,  0.9986},
+{0.9987,  0.9987,  0.9987,  0.9988,  0.9988,  0.9989,  0.9989,  0.9989,  
0.9990,  0.9990} };
+
+// Inverse cumulative distribution function
+static double inv_cdf(double u)
+{
+const double a[4] = { 2.50662823884,
+ -18.61500062529,
+  41.39119773534,
+ -25.44106049637};
+
+const double b[4] = {-8.47351093090,
+  23.08336743743,
+ -21.06224101826,
+   3.13082909833};
+
+const double c[9] = {0.3374754822726147,
+  0.9761690190917186,
+  0.1607979714918209,
+  0.0276438810333863,
+  0.0038405729373609,
+  0.0003951896511919,
+  0.321767881768,
+  0.002888167364,
+  0.003960315187};
+
+double r;
+double x = u - 0.5;
+
+// Beasley-Springer
+ if (fabs(x) < 

Re: [FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-03-07 Thread Carl Eugen Hoyos
2017-03-07 9:28 GMT+01:00 Thomas Turner :
> On Mar 6, 2017 11:47 PM, "Carl Eugen Hoyos"  wrote:
>
> 2017-03-07 6:36 GMT+01:00 Thomas Turner :
>> ./configure command worked without ccache:
>>
>> ./configure --enable-debug=3 --arch=x86_32 --target-os=linux
>> --extra-cflags=-m32 --extra-ldflags=-m32  --enable-cross-compile

Since we are discussing configure lines, I do:
$ ./configure --cc='gcc -m32'
It is shorter and I believe some things are tested in configure that
are skipped with --enable-cross-compile.

[...]

> Is ffmpeg is there a way to compile w/ a specific version of gcc, without
> having to downgrade?
>
> I've tried "./configure --cc='gcc-4.3.6' " which gives an error. However
> "./configure --cc='gcc' " doesn't give an error.

My local version of gcc-4.3.6 was compiled with "--prefix=/usr/local/gcc-4.3.6"
so I use the following configure line:
$ ./configure --cc='/usr/local/gcc-4.3.6/bin/gcc -m32'

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-03-07 Thread Thomas Turner
On Mar 6, 2017 11:47 PM, "Carl Eugen Hoyos"  wrote:

2017-03-07 6:36 GMT+01:00 Thomas Turner :
> ./configure command worked without ccache:
>
> ./configure --enable-debug=3 --arch=x86_32 --target-os=linux
> --extra-cflags=-m32 --extra-ldflags=-m32  --enable-cross-compile
>
> but after installing the following software packages w/ apt-get:
>
> apt-get install gcc-multilib g++-mult
>
> after recompiling and installing ffmpeg and running lfg selftest again,
the
> test still passes for x86_32 w/ gcc.
> Just to double check the results, i ran the lfg test in a virtual machine
> running 32 bit ubuntu and the test indeed passes.
>
> So i am unable to reproduce the error on x86_32.

The failure is reproducible with gcc 4.3.6 which we supported so far
(and several not-so-supported versions).

Carl Eugen

I see, well I'm running gcc 4.8.4.

Is ffmpeg is there a way to compile w/ a specific version of gcc, without
having to downgrade?

I've tried "./configure --cc='gcc-4.3.6' " which gives an error. However
"./configure --cc='gcc' " doesn't give an error.

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-03-06 Thread Carl Eugen Hoyos
2017-03-07 6:36 GMT+01:00 Thomas Turner :
> ./configure command worked without ccache:
>
> ./configure --enable-debug=3 --arch=x86_32 --target-os=linux
> --extra-cflags=-m32 --extra-ldflags=-m32  --enable-cross-compile
>
> but after installing the following software packages w/ apt-get:
>
> apt-get install gcc-multilib g++-mult
>
> after recompiling and installing ffmpeg and running lfg selftest again, the
> test still passes for x86_32 w/ gcc.
> Just to double check the results, i ran the lfg test in a virtual machine
> running 32 bit ubuntu and the test indeed passes.
>
> So i am unable to reproduce the error on x86_32.

The failure is reproducible with gcc 4.3.6 which we supported so far
(and several not-so-supported versions).

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-03-06 Thread Thomas Turner
./configure command worked without ccache:

./configure --enable-debug=3 --arch=x86_32 --target-os=linux
--extra-cflags=-m32 --extra-ldflags=-m32  --enable-cross-compile

but after installing the following software packages w/ apt-get:

apt-get install gcc-multilib g++-mult

after recompiling and installing ffmpeg and running lfg selftest again, the
test still passes for x86_32 w/ gcc.
Just to double check the results, i ran the lfg test in a virtual machine
running 32 bit ubuntu and the test indeed passes.

So i am unable to reproduce the error on x86_32.



On Fri, Feb 24, 2017 at 7:53 PM, Michael Niedermayer  wrote:

> On Fri, Feb 24, 2017 at 07:13:05PM -0800, Thomas Turner wrote:
> [...]
> > ccache gcc -m32 -c -o /tmp/ffconf.2gbznSmZ.o /tmp/ffconf.72hnkFGt.c
> > ./configure: 884: ./configure: ccache: not found
> > C compiler test failed.
>
> try without ccache
>
> [...]
>
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Those who are too smart to engage in politics are punished by being
> governed by those who are dumber. -- Plato
>
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-02-24 Thread Michael Niedermayer
On Fri, Feb 24, 2017 at 07:13:05PM -0800, Thomas Turner wrote:
[...]
> ccache gcc -m32 -c -o /tmp/ffconf.2gbznSmZ.o /tmp/ffconf.72hnkFGt.c
> ./configure: 884: ./configure: ccache: not found
> C compiler test failed.

try without ccache

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Those who are too smart to engage in politics are punished by being
governed by those who are dumber. -- Plato 


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-02-24 Thread Michael Niedermayer
On Fri, Feb 24, 2017 at 06:43:20PM -0800, Thomas Turner wrote:
> On Wed, Feb 22, 2017 at 2:16 PM, Michael Niedermayer  > wrote:
> 
> > oops forgot to reply to all, this one went only to thomas by mistake
> >
> > On Tue, Feb 21, 2017 at 08:12:57PM -0800, Thomas Turner wrote:
> > >
> > >
> > > On 02/17/2017 02:15 PM, Michael Niedermayer wrote:
> > > > On Thu, Feb 16, 2017 at 08:29:38PM -0800, Thomas Turner wrote:
> > > >> The Chen-Shapiro(CS) test was used to test normality for
> > > >> Lagged Fibonacci PRNG.
> > > >>
> > > >> Normality Hypothesis Test:
> > > >>
> > > >> The null hypothesis formally tests if the population
> > > >> the sample represents is normally-distributed. For
> > > >> CS, when the normality hypothesis is True, the
> > > >> distribution of QH will have a mean close to 1.
> > > >>
> > > >> Information on CS can be found here:
> > > >>
> > > >> http://www.stata-journal.com/sjpdf.html?articlenum=st0264
> > > >> http://www.originlab.com/doc/Origin-Help/NormalityTest-Algorithm
> > > >>
> > > >> Signed-off-by: Thomas Turner 
> > > >> ---
> > > >>  libavutil/tests/lfg.c|  170 ++--
> > > >>  tests/fate/libavutil.mak |4 +
> > > >>  tests/ref/fate/lfg   | 1007 ++
> > 
> > > >>  3 files changed, 1157 insertions(+), 24 deletions(-)
> > > >>  create mode 100644 tests/ref/fate/lfg
> > > >
> > > > works on x86_64 linux but fails on x86_32
> > >
> > > What if we force gcc compiler to use IEEE 754 floating-point
> > semantics...Will adding the following gcc compilation flags to ffmpeg
> > configuration allow the test to pass? : -msse2 -mfpmath=sse
> >
> > there is no gurantee that the hardware this runs on supports sse
> > nor that the compiler is gcc
> >
> > C has a somewhat loose definition of floating point operations,
> > that allows C compilers to perform more optimizations and run on more
> > hardware. There isnt much that can be done about this, short of not
> > using floating point
> >
> > But why does it not work with default options?
> >
> x86_32 machine produces a negative overflow for double precision value. But
> unable to figure out precisely why. my guesstimation would be because of
> the difference in floating point arithmetic.
> 

> > or is that unknown ?
> > did you succeed in reproduring the issue ?
> >
> trying to compile 32bit on my 64bit machine with:
> 
> ./configure --enable-debug=3 --cc='cc -m32'
> but i get the following error:
> 
> cc -m32 is unable to create an executable file.
> If cc -m32 is a cross-compiler, use the --enable-cross-compile option.
> Only do this if you know what cross compiling means.
> C compiler test failed.

try this:

./configure --cc='ccache gcc' --enable-debug=3 --arch=x86_32 --target-os=linux 
--extra-cflags=-m32 --extra-ldflags=-m32  --enable-cross-compile 


[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Observe your enemies, for they first find out your faults. -- Antisthenes


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-02-24 Thread Thomas Turner
On Wed, Feb 22, 2017 at 2:16 PM, Michael Niedermayer  wrote:

> oops forgot to reply to all, this one went only to thomas by mistake
>
> On Tue, Feb 21, 2017 at 08:12:57PM -0800, Thomas Turner wrote:
> >
> >
> > On 02/17/2017 02:15 PM, Michael Niedermayer wrote:
> > > On Thu, Feb 16, 2017 at 08:29:38PM -0800, Thomas Turner wrote:
> > >> The Chen-Shapiro(CS) test was used to test normality for
> > >> Lagged Fibonacci PRNG.
> > >>
> > >> Normality Hypothesis Test:
> > >>
> > >> The null hypothesis formally tests if the population
> > >> the sample represents is normally-distributed. For
> > >> CS, when the normality hypothesis is True, the
> > >> distribution of QH will have a mean close to 1.
> > >>
> > >> Information on CS can be found here:
> > >>
> > >> http://www.stata-journal.com/sjpdf.html?articlenum=st0264
> > >> http://www.originlab.com/doc/Origin-Help/NormalityTest-Algorithm
> > >>
> > >> Signed-off-by: Thomas Turner 
> > >> ---
> > >>  libavutil/tests/lfg.c|  170 ++--
> > >>  tests/fate/libavutil.mak |4 +
> > >>  tests/ref/fate/lfg   | 1007 ++
> 
> > >>  3 files changed, 1157 insertions(+), 24 deletions(-)
> > >>  create mode 100644 tests/ref/fate/lfg
> > >
> > > works on x86_64 linux but fails on x86_32
> >
> > What if we force gcc compiler to use IEEE 754 floating-point
> semantics...Will adding the following gcc compilation flags to ffmpeg
> configuration allow the test to pass? : -msse2 -mfpmath=sse
>
> there is no gurantee that the hardware this runs on supports sse
> nor that the compiler is gcc
>
> C has a somewhat loose definition of floating point operations,
> that allows C compilers to perform more optimizations and run on more
> hardware. There isnt much that can be done about this, short of not
> using floating point
>
> But why does it not work with default options?
>
x86_32 machine produces a negative overflow for double precision value. But
unable to figure out precisely why. my guesstimation would be because of
the difference in floating point arithmetic.

> or is that unknown ?
> did you succeed in reproduring the issue ?
>
trying to compile 32bit on my 64bit machine with:

./configure --enable-debug=3 --cc='cc -m32'
but i get the following error:

cc -m32 is unable to create an executable file.
If cc -m32 is a cross-compiler, use the --enable-cross-compile option.
Only do this if you know what cross compiling means.
C compiler test failed.


> [...]
>
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> There will always be a question for which you do not know the correct
> answer.
>
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-02-22 Thread Michael Niedermayer
oops forgot to reply to all, this one went only to thomas by mistake

On Tue, Feb 21, 2017 at 08:12:57PM -0800, Thomas Turner wrote:
> 
> 
> On 02/17/2017 02:15 PM, Michael Niedermayer wrote:
> > On Thu, Feb 16, 2017 at 08:29:38PM -0800, Thomas Turner wrote:
> >> The Chen-Shapiro(CS) test was used to test normality for
> >> Lagged Fibonacci PRNG.
> >>
> >> Normality Hypothesis Test:
> >>
> >> The null hypothesis formally tests if the population
> >> the sample represents is normally-distributed. For
> >> CS, when the normality hypothesis is True, the
> >> distribution of QH will have a mean close to 1.
> >>
> >> Information on CS can be found here:
> >>
> >> http://www.stata-journal.com/sjpdf.html?articlenum=st0264
> >> http://www.originlab.com/doc/Origin-Help/NormalityTest-Algorithm
> >>
> >> Signed-off-by: Thomas Turner 
> >> ---
> >>  libavutil/tests/lfg.c|  170 ++--
> >>  tests/fate/libavutil.mak |4 +
> >>  tests/ref/fate/lfg   | 1007 
> >> ++
> >>  3 files changed, 1157 insertions(+), 24 deletions(-)
> >>  create mode 100644 tests/ref/fate/lfg
> > 
> > works on x86_64 linux but fails on x86_32
> 
> What if we force gcc compiler to use IEEE 754 floating-point semantics...Will 
> adding the following gcc compilation flags to ffmpeg configuration allow the 
> test to pass? : -msse2 -mfpmath=sse

there is no gurantee that the hardware this runs on supports sse
nor that the compiler is gcc

C has a somewhat loose definition of floating point operations,
that allows C compilers to perform more optimizations and run on more
hardware. There isnt much that can be done about this, short of not
using floating point

But why does it not work with default options?
or is that unknown ?
did you succeed in reproduring the issue ?

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

There will always be a question for which you do not know the correct answer.


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-02-21 Thread Thomas Turner


On 02/17/2017 02:15 PM, Michael Niedermayer wrote:
> On Thu, Feb 16, 2017 at 08:29:38PM -0800, Thomas Turner wrote:
>> The Chen-Shapiro(CS) test was used to test normality for
>> Lagged Fibonacci PRNG.
>>
>> Normality Hypothesis Test:
>>
>> The null hypothesis formally tests if the population
>> the sample represents is normally-distributed. For
>> CS, when the normality hypothesis is True, the
>> distribution of QH will have a mean close to 1.
>>
>> Information on CS can be found here:
>>
>> http://www.stata-journal.com/sjpdf.html?articlenum=st0264
>> http://www.originlab.com/doc/Origin-Help/NormalityTest-Algorithm
>>
>> Signed-off-by: Thomas Turner 
>> ---
>>  libavutil/tests/lfg.c|  170 ++--
>>  tests/fate/libavutil.mak |4 +
>>  tests/ref/fate/lfg   | 1007 
>> ++
>>  3 files changed, 1157 insertions(+), 24 deletions(-)
>>  create mode 100644 tests/ref/fate/lfg
> 
> works on x86_64 linux but fails on x86_32

What if we force gcc compiler to use IEEE 754 floating-point semantics...Will 
adding the following gcc compilation flags to ffmpeg configuration allow the 
test to pass? : -msse2 -mfpmath=sse
> 
> --- ffmpeg/tests/ref/fate/lfg  2017-02-17 22:27:05.394644315 +0100
> +++ tests/data/fate/lfg 2017-02-17 22:53:34.978677803 +0100
> @@ -1004,4 +1004,4 @@
>  true stddev  : 53.00
>  z-score  : 0.181279
>  p-value  : 0.428600
> -QH[normality]: 1.015347
> +QH[normality]: 
> -274309382319023864748424681468621758678576399865310792059887853269490762262076171214661036349063168.00
> Test lfg failed. Look at tests/data/fate/lfg.err for details.
> make: *** [fate-lfg] Error 1
> 
> 
> 8...]
> 
> 
> 
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-02-17 Thread Michael Niedermayer
On Thu, Feb 16, 2017 at 08:29:38PM -0800, Thomas Turner wrote:
> The Chen-Shapiro(CS) test was used to test normality for
> Lagged Fibonacci PRNG.
> 
> Normality Hypothesis Test:
> 
> The null hypothesis formally tests if the population
> the sample represents is normally-distributed. For
> CS, when the normality hypothesis is True, the
> distribution of QH will have a mean close to 1.
> 
> Information on CS can be found here:
> 
> http://www.stata-journal.com/sjpdf.html?articlenum=st0264
> http://www.originlab.com/doc/Origin-Help/NormalityTest-Algorithm
> 
> Signed-off-by: Thomas Turner 
> ---
>  libavutil/tests/lfg.c|  170 ++--
>  tests/fate/libavutil.mak |4 +
>  tests/ref/fate/lfg   | 1007 
> ++
>  3 files changed, 1157 insertions(+), 24 deletions(-)
>  create mode 100644 tests/ref/fate/lfg

works on x86_64 linux but fails on x86_32

--- ffmpeg/tests/ref/fate/lfg  2017-02-17 22:27:05.394644315 +0100
+++ tests/data/fate/lfg 2017-02-17 22:53:34.978677803 +0100
@@ -1004,4 +1004,4 @@
 true stddev  : 53.00
 z-score  : 0.181279
 p-value  : 0.428600
-QH[normality]: 1.015347
+QH[normality]: 
-274309382319023864748424681468621758678576399865310792059887853269490762262076171214661036349063168.00
Test lfg failed. Look at tests/data/fate/lfg.err for details.
make: *** [fate-lfg] Error 1


8...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The educated differ from the uneducated as much as the living from the
dead. -- Aristotle 


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-02-16 Thread Thomas Turner
The Chen-Shapiro(CS) test was used to test normality for
Lagged Fibonacci PRNG.

Normality Hypothesis Test:

The null hypothesis formally tests if the population
the sample represents is normally-distributed. For
CS, when the normality hypothesis is True, the
distribution of QH will have a mean close to 1.

Information on CS can be found here:

http://www.stata-journal.com/sjpdf.html?articlenum=st0264
http://www.originlab.com/doc/Origin-Help/NormalityTest-Algorithm

Signed-off-by: Thomas Turner 
---
 libavutil/tests/lfg.c|  170 ++--
 tests/fate/libavutil.mak |4 +
 tests/ref/fate/lfg   | 1007 ++
 3 files changed, 1157 insertions(+), 24 deletions(-)
 create mode 100644 tests/ref/fate/lfg

diff --git a/libavutil/tests/lfg.c b/libavutil/tests/lfg.c
index 1425e02..93b102c 100644
--- a/libavutil/tests/lfg.c
+++ b/libavutil/tests/lfg.c
@@ -20,9 +20,88 @@
 #include "libavutil/timer.h"
 #include "libavutil/lfg.h"
 
+static const double Z_TABLE[31][10] = {
+{0.5000,  0.5040,  0.5080,  0.5120,  0.5160,  0.5199,  0.5239,  0.5279,  
0.5319,  0.5359},
+{0.5398,  0.5438,  0.5478,  0.5517,  0.5557,  0.5596,  0.5636,  0.5675,  
0.5714,  0.5753},
+{0.5793,  0.5832,  0.5871,  0.5910,  0.5948,  0.5987,  0.6026,  0.6064,  
0.6103,  0.6141},
+{0.6179,  0.6217,  0.6255,  0.6293,  0.6331,  0.6368,  0.6406,  0.6443,  
0.6480,  0.6517},
+{0.6554,  0.6591,  0.6628,  0.6664,  0.6700,  0.6736,  0.6772,  0.6808,  
0.6844,  0.6879},
+{0.6915,  0.6950,  0.6985,  0.7019,  0.7054,  0.7088,  0.7123,  0.7157,  
0.7190,  0.7224},
+{0.7257,  0.7291,  0.7324,  0.7357,  0.7389,  0.7422,  0.7454,  0.7486,  
0.7517,  0.7549},
+{0.7580,  0.7611,  0.7642,  0.7673,  0.7704,  0.7734,  0.7764,  0.7794,  
0.7823,  0.7852},
+{0.7881,  0.7910,  0.7939,  0.7967,  0.7995,  0.8023,  0.8051,  0.8078,  
0.8106,  0.8133},
+{0.8159,  0.8186,  0.8212,  0.8238,  0.8264,  0.8289,  0.8315,  0.8340,  
0.8365,  0.8389},
+{0.8413,  0.8438,  0.8461,  0.8485,  0.8508,  0.8531,  0.8554,  0.8577,  
0.8599,  0.8621},
+{0.8643,  0.8665,  0.8686,  0.8708,  0.8729,  0.8749,  0.8770,  0.8790,  
0.8810,  0.8830},
+{0.8849,  0.8869,  0.,  0.8907,  0.8925,  0.8944,  0.8962,  0.8980,  
0.8997,  0.9015},
+{0.9032,  0.9049,  0.9066,  0.9082,  0.9099,  0.9115,  0.9131,  0.9147,  
0.9162,  0.9177},
+{0.9192,  0.9207,  0.9222,  0.9236,  0.9251,  0.9265,  0.9279,  0.9292,  
0.9306,  0.9319},
+{0.9332,  0.9345,  0.9357,  0.9370,  0.9382,  0.9394,  0.9406,  0.9418,  
0.9429,  0.9441},
+{0.9452,  0.9463,  0.9474,  0.9484,  0.9495,  0.9505,  0.9515,  0.9525,  
0.9535,  0.9545},
+{0.9554,  0.9564,  0.9573,  0.9582,  0.9591,  0.9599,  0.9608,  0.9616,  
0.9625,  0.9633},
+{0.9641,  0.9649,  0.9656,  0.9664,  0.9671,  0.9678,  0.9686,  0.9693,  
0.9699,  0.9706},
+{0.9713,  0.9719,  0.9726,  0.9732,  0.9738,  0.9744,  0.9750,  0.9756,  
0.9761,  0.9767},
+{0.9772,  0.9778,  0.9783,  0.9788,  0.9793,  0.9798,  0.9803,  0.9808,  
0.9812,  0.9817},
+{0.9821,  0.9826,  0.9830,  0.9834,  0.9838,  0.9842,  0.9846,  0.9850,  
0.9854,  0.9857},
+{0.9861,  0.9864,  0.9868,  0.9871,  0.9875,  0.9878,  0.9881,  0.9884,  
0.9887,  0.9890},
+{0.9893,  0.9896,  0.9898,  0.9901,  0.9904,  0.9906,  0.9909,  0.9911,  
0.9913,  0.9916},
+{0.9918,  0.9920,  0.9922,  0.9925,  0.9927,  0.9929,  0.9931,  0.9932,  
0.9934,  0.9936},
+{0.9938,  0.9940,  0.9941,  0.9943,  0.9945,  0.9946,  0.9948,  0.9949,  
0.9951,  0.9952},
+{0.9953,  0.9955,  0.9956,  0.9957,  0.9959,  0.9960,  0.9961,  0.9962,  
0.9963,  0.9964},
+{0.9965,  0.9966,  0.9967,  0.9968,  0.9969,  0.9970,  0.9971,  0.9972,  
0.9973,  0.9974},
+{0.9974,  0.9975,  0.9976,  0.9977,  0.9977,  0.9978,  0.9979,  0.9979,  
0.9980,  0.9981},
+{0.9981,  0.9982,  0.9982,  0.9983,  0.9984,  0.9984,  0.9985,  0.9985,  
0.9986,  0.9986},
+{0.9987,  0.9987,  0.9987,  0.9988,  0.9988,  0.9989,  0.9989,  0.9989,  
0.9990,  0.9990} };
+
+// Inverse cumulative distribution function
+static double inv_cdf(double u)
+{
+const double a[4] = { 2.50662823884,
+ -18.61500062529,
+  41.39119773534,
+ -25.44106049637};
+
+const double b[4] = {-8.47351093090,
+  23.08336743743,
+ -21.06224101826,
+   3.13082909833};
+
+const double c[9] = {0.3374754822726147,
+  0.9761690190917186,
+  0.1607979714918209,
+  0.0276438810333863,
+  0.0038405729373609,
+  0.0003951896511919,
+  0.321767881768,
+  0.002888167364,
+  0.003960315187};
+
+double r;
+double x = u - 0.5;
+
+// Beasley-Springer
+ if (fabs(x) < 

Re: [FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-02-01 Thread Michael Niedermayer
On Tue, Jan 31, 2017 at 07:56:39PM -0800, Thomas Turner wrote:
> The Chen-Shapiro(CS) test was used to test normality for
> Lagged Fibonacci PRNG.
> 
> Normality Hypothesis Test:
> 
> The null hypothesis formally tests if the population
> the sample represents is normally-distributed. For
> CS, when the normality hypothesis is True, the
> distribution of QH will have a mean close to 1.
> 
> Information on CS can be found here:
> 
> http://www.stata-journal.com/sjpdf.html?articlenum=st0264
> http://www.originlab.com/doc/Origin-Help/NormalityTest-Algorithm
> 
[...]
> diff --git a/tests/fate/libavutil.mak b/tests/fate/libavutil.mak
> index a7bf739..c3b9091 100644
> --- a/tests/fate/libavutil.mak
> +++ b/tests/fate/libavutil.mak
> @@ -101,6 +101,11 @@ FATE_LIBAVUTIL += fate-imgutils
>  fate-imgutils: libavutil/tests/imgutils$(EXESUF)
>  fate-imgutils: CMD = run libavutil/tests/imgutils
>  
> +FATE_LIBAVUTIL += fate-lfg
> +fate-lfg: libavutil/tests/lfg$(EXESUF)
> +fate-lfg: CMD = run libavutil/tests/lfg
> +fate-lfg: REF = /dev/null

This test does not work

for example with:
@@ -109,6 +109,7 @@ int main(void)
 for (i = 0; i < tot_samp; i += 2) {
 double bmg_out[2];
 av_bmg_get(, bmg_out);
+bmg_out[0] = bmg_out[1]  = 0;
 PRN_arr[i  ] = bmg_out[0] * stddev + mean;
 PRN_arr[i+1] = bmg_out[1] * stddev + mean;
 samp_mean   += PRN_arr[i] + PRN_arr[i+1];

"make fate-lfg" still passes

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The real ebay dictionary, page 2
"100% positive feedback" - "All either got their money back or didnt complain"
"Best seller ever, very honest" - "Seller refunded buyer after failed scam"


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] avutil/tests/lfg.c: added proper normality test

2017-01-31 Thread Thomas Turner
The Chen-Shapiro(CS) test was used to test normality for
Lagged Fibonacci PRNG.

Normality Hypothesis Test:

The null hypothesis formally tests if the population
the sample represents is normally-distributed. For
CS, when the normality hypothesis is True, the
distribution of QH will have a mean close to 1.

Information on CS can be found here:

http://www.stata-journal.com/sjpdf.html?articlenum=st0264
http://www.originlab.com/doc/Origin-Help/NormalityTest-Algorithm

Signed-off-by: Thomas Turner 
---
 libavutil/tests/lfg.c| 125 +--
 tests/fate/libavutil.mak |   5 ++
 2 files changed, 104 insertions(+), 26 deletions(-)

diff --git a/libavutil/tests/lfg.c b/libavutil/tests/lfg.c
index 1425e02..645d39d 100644
--- a/libavutil/tests/lfg.c
+++ b/libavutil/tests/lfg.c
@@ -20,6 +20,59 @@
 #include "libavutil/timer.h"
 #include "libavutil/lfg.h"
 
+#define TEST1
+
+// Inverse cumulative distribution function
+static double inv_cdf(double u)
+{
+const double a[4] = { 2.50662823884,
+ -18.61500062529,
+  41.39119773534,
+ -25.44106049637};
+
+const double b[4] = {-8.47351093090,
+  23.08336743743,
+ -21.06224101826,
+   3.13082909833};
+
+const double c[9] = {0.3374754822726147,
+  0.9761690190917186,
+  0.1607979714918209,
+  0.0276438810333863,
+  0.0038405729373609,
+  0.0003951896511919,
+  0.321767881768,
+  0.002888167364,
+  0.003960315187};
+
+double r;
+double x = u - 0.5;
+
+// Beasley-Springer
+#if TEST == 0
+if (fabs(x) < 0.42) {
+#endif
+#if TEST == 1
+if (u > 0.08 && u < 0.92) {
+#endif
+double y = x * x;
+r= x * (((a[3]*y+a[2])*y+a[1])*y+a[0]) /
+b[3]*y+b[2])*y+b[1])*y+b[0])*y+1.0);
+}
+else {// Moro
+r = u;
+if (x > 0.0)
+r = 1.0 - u;
+r = log(-log(r));
+r = c[0] + r*(c[1]+r*(c[2]+r*(c[3]+r*(c[4]+r*(c[5]+r*(c[6]+
+r*(c[7]+r*c[8])));
+if (x < 0.0)
+r = -r;
+}
+
+return r;
+}
+
 int main(void)
 {
 int x = 0;
@@ -37,38 +90,58 @@ int main(void)
 }
 av_log(NULL, AV_LOG_ERROR, "final value:%X\n", x);
 
-/* BMG usage example */
+/*  Chen-Shapiro Normality Test */
 {
-double mean   = 1000;
-double stddev = 53;
-double samp_mean = 0.0, samp_stddev = 0.0;
-double samp0, samp1;
+double QH   = 0.0;
+const double stddev = 53.0;
+double samp_stddev  = 0.0;
+const double mean   = 1000;
+double samp_mean= 0.0;
+const int tot_samp  = 2000;
+double *PRN_arr = av_malloc_array(tot_samp, sizeof(double));
 
-av_lfg_init(, 42);
+av_lfg_init(, 0x7a69);
+if (!PRN_arr) {
+fprintf(stderr, "failed to allocate memory!\n");
+return 1;
+}
 
-for (i = 0; i < 1000; i += 2) {
+for (i = 0; i < tot_samp; i += 2) {
 double bmg_out[2];
 av_bmg_get(, bmg_out);
-samp0 = bmg_out[0] * stddev + mean;
-samp1 = bmg_out[1] * stddev + mean;
-samp_mean += samp0 + samp1;
-samp_stddev += samp0 * samp0 + samp1 * samp1;
-av_log(NULL, AV_LOG_INFO,
-   "%f\n%f\n",
-   samp0,
-   samp1);
+PRN_arr[i  ] = bmg_out[0] * stddev + mean;
+PRN_arr[i+1] = bmg_out[1] * stddev + mean;
+samp_mean   += PRN_arr[i] + PRN_arr[i+1];
+av_log(NULL, AV_LOG_INFO, "PRN%d : %f\n"
+  "PRN%d : %f\n",
+   i, PRN_arr[i], i+1, PRN_arr[i+1]);
 }
-/* TODO: add proper normality test */
-samp_mean /= 1000;
-samp_stddev /= 999;
-samp_stddev -= (1000.0/999.0)*samp_mean*samp_mean;
-samp_stddev = sqrt(samp_stddev);
-av_log(NULL, AV_LOG_INFO, "sample mean  : %f\n"
-  "true mean: %f\n"
-  "sample stddev: %f\n"
-  "true stddev  : %f\n",
-   samp_mean, mean, samp_stddev, stddev);
-}
+samp_mean /= tot_samp;
+
+for (i = 0; i < tot_samp; ++i) {
+double temp;
+temp = PRN_arr[i] - samp_mean;
+temp*= temp;
+samp_stddev += temp;
 
+if ( i < (tot_samp - 1)) {
+double H_diff;
+H_diff  = inv_cdf((i + 2.0 -