mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-22 07:20:45 +00:00
278fea3664
This is the 64bit version of Chris Doty-Humphreys SFC64 Compared to the LCGs these produce much better quality numbers. Compared to LFGs this needs less state. (our LFG has 224 byte state for its 32bit version) this has 32byte state Also the initialization for our LFG is slower. This is also much faster than KISS or PCG. This commit replaces the broken LCG used before. (broken as it had only a period ~200M due to being put in a double) This changes the output from random() which is why libswresample.mak is updated, update was done using the command in libswresample.mak Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
308 lines
5.9 KiB
Plaintext
308 lines
5.9 KiB
Plaintext
Evaluating ''
|
|
'' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating '1;2'
|
|
'1;2' -> 2.000000
|
|
|
|
Evaluating '-20'
|
|
'-20' -> -20.000000
|
|
|
|
Evaluating '-PI'
|
|
'-PI' -> -3.141593
|
|
|
|
Evaluating '+PI'
|
|
'+PI' -> 3.141593
|
|
|
|
Evaluating '1+(5-2)^(3-1)+1/2+sin(PI)-max(-2.2,-3.1)'
|
|
'1+(5-2)^(3-1)+1/2+sin(PI)-max(-2.2,-3.1)' -> 12.700000
|
|
|
|
Evaluating '80G/80Gi'
|
|
'80G/80Gi' -> 0.931323
|
|
|
|
Evaluating '1k'
|
|
'1k' -> 1000.000000
|
|
|
|
Evaluating '1Gi'
|
|
'1Gi' -> 1073741824.000000
|
|
|
|
Evaluating '1gi'
|
|
'1gi' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating '1GiFoo'
|
|
'1GiFoo' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating '1k+1k'
|
|
'1k+1k' -> 2000.000000
|
|
|
|
Evaluating '1Gi*3foo'
|
|
'1Gi*3foo' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'foo'
|
|
'foo' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'foo('
|
|
'foo(' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'foo()'
|
|
'foo()' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'foo)'
|
|
'foo)' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'sin'
|
|
'sin' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'sin('
|
|
'sin(' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'sin()'
|
|
'sin()' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'sin)'
|
|
'sin)' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'sin 10'
|
|
'sin 10' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'sin(1,2,3)'
|
|
'sin(1,2,3)' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'sin(1 )'
|
|
'sin(1 )' -> 0.841471
|
|
|
|
Evaluating '1'
|
|
'1' -> 1.000000
|
|
|
|
Evaluating '1foo'
|
|
'1foo' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'bar + PI + E + 100f*2 + foo'
|
|
'bar + PI + E + 100f*2 + foo' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating '13k + 12f - foo(1, 2)'
|
|
'13k + 12f - foo(1, 2)' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating '1gi'
|
|
'1gi' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating '1Gi'
|
|
'1Gi' -> 1073741824.000000
|
|
|
|
Evaluating 'st(0, 123)'
|
|
'st(0, 123)' -> 123.000000
|
|
|
|
Evaluating 'st(1, 123); ld(1)'
|
|
'st(1, 123); ld(1)' -> 123.000000
|
|
|
|
Evaluating 'lte(0, 1)'
|
|
'lte(0, 1)' -> 1.000000
|
|
|
|
Evaluating 'lte(1, 1)'
|
|
'lte(1, 1)' -> 1.000000
|
|
|
|
Evaluating 'lte(1, 0)'
|
|
'lte(1, 0)' -> 0.000000
|
|
|
|
Evaluating 'lt(0, 1)'
|
|
'lt(0, 1)' -> 1.000000
|
|
|
|
Evaluating 'lt(1, 1)'
|
|
'lt(1, 1)' -> 0.000000
|
|
|
|
Evaluating 'gt(1, 0)'
|
|
'gt(1, 0)' -> 1.000000
|
|
|
|
Evaluating 'gt(2, 7)'
|
|
'gt(2, 7)' -> 0.000000
|
|
|
|
Evaluating 'gte(122, 122)'
|
|
'gte(122, 122)' -> 1.000000
|
|
|
|
Evaluating 'st(0, 1); while(lte(ld(0), 100), st(1, ld(1)+ld(0));st(0, ld(0)+1)); ld(1)'
|
|
'st(0, 1); while(lte(ld(0), 100), st(1, ld(1)+ld(0));st(0, ld(0)+1)); ld(1)' -> 5050.000000
|
|
|
|
Evaluating 'st(1, 1); st(2, 2); st(0, 1); while(lte(ld(0),10), st(3, ld(1)+ld(2)); st(1, ld(2)); st(2, ld(3)); st(0, ld(0)+1)); ld(3)'
|
|
'st(1, 1); st(2, 2); st(0, 1); while(lte(ld(0),10), st(3, ld(1)+ld(2)); st(1, ld(2)); st(2, ld(3)); st(0, ld(0)+1)); ld(3)' -> 233.000000
|
|
|
|
Evaluating 'while(0, 10)'
|
|
'while(0, 10)' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'st(0, 1); while(lte(ld(0),100), st(1, ld(1)+ld(0)); st(0, ld(0)+1))'
|
|
'st(0, 1); while(lte(ld(0),100), st(1, ld(1)+ld(0)); st(0, ld(0)+1))' -> 101.000000
|
|
|
|
Evaluating 'isnan(1)'
|
|
'isnan(1)' -> 0.000000
|
|
|
|
Evaluating 'isnan(NAN)'
|
|
'isnan(NAN)' -> 1.000000
|
|
|
|
Evaluating 'isnan(INF)'
|
|
'isnan(INF)' -> 0.000000
|
|
|
|
Evaluating 'isinf(1)'
|
|
'isinf(1)' -> 0.000000
|
|
|
|
Evaluating 'isinf(NAN)'
|
|
'isinf(NAN)' -> 0.000000
|
|
|
|
Evaluating 'isinf(INF)'
|
|
'isinf(INF)' -> 1.000000
|
|
|
|
Evaluating 'floor(NAN)'
|
|
'floor(NAN)' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'floor(123.123)'
|
|
'floor(123.123)' -> 123.000000
|
|
|
|
Evaluating 'floor(-123.123)'
|
|
'floor(-123.123)' -> -124.000000
|
|
|
|
Evaluating 'trunc(123.123)'
|
|
'trunc(123.123)' -> 123.000000
|
|
|
|
Evaluating 'trunc(-123.123)'
|
|
'trunc(-123.123)' -> -123.000000
|
|
|
|
Evaluating 'ceil(123.123)'
|
|
'ceil(123.123)' -> 124.000000
|
|
|
|
Evaluating 'ceil(-123.123)'
|
|
'ceil(-123.123)' -> -123.000000
|
|
|
|
Evaluating 'sqrt(1764)'
|
|
'sqrt(1764)' -> 42.000000
|
|
|
|
Evaluating 'isnan(sqrt(-1))'
|
|
'isnan(sqrt(-1))' -> 1.000000
|
|
|
|
Evaluating 'not(1)'
|
|
'not(1)' -> 0.000000
|
|
|
|
Evaluating 'not(NAN)'
|
|
'not(NAN)' -> 0.000000
|
|
|
|
Evaluating 'not(0)'
|
|
'not(0)' -> 1.000000
|
|
|
|
Evaluating '6.0206dB'
|
|
'6.0206dB' -> 2.000000
|
|
|
|
Evaluating '-3.0103dB'
|
|
'-3.0103dB' -> 0.707107
|
|
|
|
Evaluating 'pow(0,1.23)'
|
|
'pow(0,1.23)' -> 0.000000
|
|
|
|
Evaluating 'pow(PI,1.23)'
|
|
'pow(PI,1.23)' -> 4.087844
|
|
|
|
Evaluating 'PI^1.23'
|
|
'PI^1.23' -> 4.087844
|
|
|
|
Evaluating 'pow(-1,1.23)'
|
|
'pow(-1,1.23)' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'if(1, 2)'
|
|
'if(1, 2)' -> 2.000000
|
|
|
|
Evaluating 'if(1, 1, 2)'
|
|
'if(1, 1, 2)' -> 1.000000
|
|
|
|
Evaluating 'if(0, 1, 2)'
|
|
'if(0, 1, 2)' -> 2.000000
|
|
|
|
Evaluating 'ifnot(0, 23)'
|
|
'ifnot(0, 23)' -> 23.000000
|
|
|
|
Evaluating 'ifnot(1, NaN) + if(0, 1)'
|
|
'ifnot(1, NaN) + if(0, 1)' -> 0.000000
|
|
|
|
Evaluating 'ifnot(1, 1, 2)'
|
|
'ifnot(1, 1, 2)' -> 2.000000
|
|
|
|
Evaluating 'ifnot(0, 1, 2)'
|
|
'ifnot(0, 1, 2)' -> 1.000000
|
|
|
|
Evaluating 'taylor(1, 1)'
|
|
'taylor(1, 1)' -> 2.718282
|
|
|
|
Evaluating 'taylor(eq(mod(ld(1),4),1)-eq(mod(ld(1),4),3), PI/2, 1)'
|
|
'taylor(eq(mod(ld(1),4),1)-eq(mod(ld(1),4),3), PI/2, 1)' -> 1.000000
|
|
|
|
Evaluating 'root(sin(ld(0))-1, 2)'
|
|
'root(sin(ld(0))-1, 2)' -> 1.570796
|
|
|
|
Evaluating 'root(sin(ld(0))+6+sin(ld(0)/12)-log(ld(0)), 100)'
|
|
'root(sin(ld(0))+6+sin(ld(0)/12)-log(ld(0)), 100)' -> 60.965601
|
|
|
|
Evaluating '7000000B*random(0)'
|
|
'7000000B*random(0)' -> 12864914.486611
|
|
|
|
Evaluating 'squish(2)'
|
|
'squish(2)' -> 0.000335
|
|
|
|
Evaluating 'gauss(0.1)'
|
|
'gauss(0.1)' -> 0.396953
|
|
|
|
Evaluating 'hypot(4,3)'
|
|
'hypot(4,3)' -> 5.000000
|
|
|
|
Evaluating 'gcd(30,55)*print(min(9,1))'
|
|
'gcd(30,55)*print(min(9,1))' -> 5.000000
|
|
|
|
Evaluating 'bitor(42, 12)'
|
|
'bitor(42, 12)' -> 46.000000
|
|
|
|
Evaluating 'bitand(42, 12)'
|
|
'bitand(42, 12)' -> 8.000000
|
|
|
|
Evaluating 'bitand(NAN, 1)'
|
|
'bitand(NAN, 1)' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'between(10, -3, 10)'
|
|
'between(10, -3, 10)' -> 1.000000
|
|
|
|
Evaluating 'between(-4, -2, -1)'
|
|
'between(-4, -2, -1)' -> 0.000000
|
|
|
|
Evaluating 'between(1,2)'
|
|
'between(1,2)' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'clip(0, 2, 1)'
|
|
'clip(0, 2, 1)' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'clip(0/0, 1, 2)'
|
|
'clip(0/0, 1, 2)' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
Evaluating 'clip(0, 0/0, 1)'
|
|
'clip(0, 0/0, 1)' -> nan
|
|
|
|
av_expr_parse_and_eval failed
|
|
12.700000 == 12.7
|
|
0.931323 == 0.931322575
|