[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-gcc-list] WinAVR 20071221 Released
From: |
Dmitry K. |
Subject: |
Re: [avr-gcc-list] WinAVR 20071221 Released |
Date: |
Sat, 22 Dec 2007 15:58:12 +1000 |
User-agent: |
KMail/1.5 |
On Friday 21 December 2007 16:15, Weddington, Eric wrote:
[...]
> A completely rewritten floating-point library, contributed by Dmitry
> Xmelkov. It is smaller and faster, but as it's an almost full rewrite.
A correction is needed:
The speed: yes. But the size is not a strong feature
of new fplib/math library. The size is consederably
reduced for printing functions (dtostre, dtostrf, printf),
which are not use more float point operations.
From NEWS file:
+ The fplib/math library is completely rewritten. Now
features of the IEEE 754 standard are supported all:
negative zero, subnormals, Infs and NaNs. It concerns
both to base operations (arithmetic, comparison...),
and to all functions. Speed of performance is increased,
sometimes considerably. A number of mistakes (not
reflected in the Bugs) which led severe losses of
accuracy for some arguments is corrected. A number
of new functions is added. It is necessary to note,
that the new library concedes old under the charge
of flash memory a little.
Dmitry.
===========================================================
Old comparison tables (today the results may be different a
little):
Flash, bytes. Function + tables and needed mudules.
gcc/fp-bit 1.4.2 1.5
File avr2 avr4 avr2 avr4 avr2 avr4
-----------------------------------------------------
t_add.c 1870 1650 290 290 376 364
t_cmp.c 852 786 156 156 88 88
t_div.c 1298 1208 296 296 372 368
t_flt2llng.c 6162 5662 -1 -1 220 216
t_flt2long.c 556 526 152 152 178 174
t_llng2flt.c 3350 3014 -1 -1 164 164
t_long2flt.c 826 778 234 234 122 122
t_mul.c 1532 1438 312 300 376 358
t_frexp.c -1 -1 130 128 154 152
t_ldexp.c -1 -1 212 212 234 232
t_modf.c -1 -1 464 464 490 466
t1_acos.h -1 -1 1020 972 1030 956
t1_asin.h -1 -1 1004 956 1110 1032
t1_atan.h -1 -1 880 824 1054 980
t1_ceil.h -1 -1 210 210 252 250
t1_cos.h -1 -1 1060 1008 928 860
t1_cosh.h -1 -1 1170 1118 1364 1280
t1_exp.h -1 -1 1142 1090 1328 1244
t1_floor.h -1 -1 206 206 252 250
t1_log10.h -1 -1 950 902 1112 1038
t1_log.h -1 -1 938 890 1096 1022
t1_sin.h -1 -1 1086 1034 934 866
t1_sinh.h -1 -1 1172 1120 1450 1362
t1_sqrt.h -1 -1 552 552 286 276
t1_tan.h -1 -1 1128 1072 1186 1112
t1_tanh.h -1 -1 1238 1186 1478 1390
t1_trunc.h -1 -1 -1 -1 228 226
t2_atan2.h -1 -1 974 918 1204 1116
t2_fdim.h -1 -1 -1 -1 448 434
t2_fmax.h -1 -1 -1 -1 66 62
t2_fmin.h -1 -1 -1 -1 66 62
t2_fmod.h -1 -1 798 786 304 302
t2_hypot.h -1 -1 -1 -1 1102 1052
t2_pow.h -1 -1 1426 1368 1856 1758
t_dtostre.c -1 -1 1934 1874 1022 952
t_dtostrf.c -1 -1 1712 1640 1604 1452
t_strtod.c -1 -1 1020 992 1472 1370
t_base.c 3982 3586 732 720 1120 1086
t_lib14.c -1 -1 2626 2562 3440 3310
t_lib15.c -1 -1 -1 -1 4286 4126
The 't_lib14.c' test is a set of all fp/math fuctions,
which are present in avr-libc 1.4.
Average time of function execution, CPU cycles.
gcc/fp-bit 1.4.2 1.5
File avr2 avr4 avr2 avr4 avr2 avr4
-----------------------------------------------------
t_add.c 959 890 126 126 113 110
t_cmp.c 515 486 57 57 42 42
t_div.c 1458 1418 483 483 467 466
t_flt2llng.c 11564 10913 -1 -1 119 118
t_flt2long.c 369 358 189 189 68 68
t_llng2flt.c 6899 6482 -1 -1 81 81
t_long2flt.c 841 745 264 264 55 55
t_mul.c 2179 2077 364 133 347 125
t_frexp.c -1 -1 34 33 34 33
t_ldexp.c -1 -1 49 49 39 39
t_modf.c -1 -1 775 775 395 391
t1_acos.h -1 -1 6527 4565 4691 2700
t1_asin.h -1 -1 6380 4417 4107 2317
t1_atan.h -1 -1 5513 3087 4813 2375
t1_ceil.h -1 -1 285 285 118 118
t1_cos.h -1 -1 6250 3827 3440 1730
t1_cosh.h -1 -1 5545 3825 4866 2890
t1_exp.h -1 -1 4586 2908 4227 2292
t1_floor.h -1 -1 274 274 117 117
t1_log10.h -1 -1 7277 4603 4776 2437
t1_log.h -1 -1 6783 4111 4424 2304
t1_sin.h -1 -1 6377 3963 3338 1632
t1_sinh.h -1 -1 5500 3785 4555 2696
t1_sqrt.h -1 -1 1815 1815 711 706
t1_tan.h -1 -1 5881 3738 3843 1893
t1_tanh.h -1 -1 5659 3992 4824 2931
t1_trunc.h -1 -1 -1 -1 114 114
t2_atan2.h -1 -1 6248 3825 5284 2833
t2_fdim.h -1 -1 -1 -1 74 72
t2_fmax.h -1 -1 -1 -1 31 30
t2_fmin.h -1 -1 -1 -1 31 30
t2_fmod.h -1 -1 1545 1321 127 127
t2_hypot.h -1 -1 -1 -1 1483 1054
t2_pow.h -1 -1 12336 7777 9122 4870
t_dtostre.c -1 -1 10851 8619 1058 953
t_dtostrf.c -1 -1 18951 13202 1376 1243
t_strtod.c -1 -1 1459 1025 1193 934
Avr-libc-1.4.5:
Flash, bts Stack, bts Time, clks
Function avr2 avr4 avr2 avr4 avr2 avr4
--------------------------------------------------------------
sprintf(s,"%x",12345) 1914 1700 68 68 5731 5598
sprintf(s,"%d",12345) 1914 1700 68 68 7054 6894
sprintf(s,"%e",1.2345) 4658 4158 138 138 12025 9885
Avr-libc-CVS:
Flash, bts Stack, bts Time, clks
Function avr2 avr4 avr2 avr4 avr2 avr4
--------------------------------------------------------------
sprintf(s,"%x",12345) 1690 1500 57 57 1078 1010
sprintf(s,"%d",12345) 1690 1500 57 57 1714 1616
sprintf(s,"%e",1.2345) 3302 3004 64 64 2502 2283
==============================================================