CORRECTION! - using alternate compiler for gnumeric




hello @all,

!!! --- sorry, i wrote too fast, rechecking unveiled that it wasn't 'pow' but 'exp10l' being 'clean' with intel compiler, sorry. --- !!!

find attached the program to recheck.

i can't say why it is, may be they just use the same algo for 'exp10l(x)' and '1Ex'?? or use another definition of 'long', e.g. QUADS?? can't even say if the results are accurate (nearest acc. IEEE)? such is stuff for better experienced people.

what i can say is 'for a consistent math near to humans decimals we need good powers of ten'. 'good' means consistent and correct. in that sense the icpx and dpcpp compilers with long doubles were the first to fulfill 'consistent'. that's a step forward.

(not being able to decide if a value is below, above or exact 100.000.000.000.000.000.000.000 because 10^23 is 'fuzzy' renders striving for precision gaming.)

it's not sure if the intel compilers are really 'better',  just to widen my horizon and have more options to compare against each other i'd still like to give it a try to compile gnumeric with 'intel'. any suggestions for that?

Best Regards,



b.

---

question in short: is there an easy / prepared way to compile gnumeric with another compiler? For example with 'clang' or 'intel'?
 
i have a little issue that POW or scientific strings are imprecise, they don't match for e.g. 10^23 and 1E23 in gnumeric with doubles.

it's less a gnumeric but a compiler / library problem, Morten filed a bug for it <https://sourceware.org/bugzilla/show_bug.cgi?id=28472>

set up and compiled for 'long doubles' there are many more deviations in gnumeric and with the test program.

just poking around i tried the intel compiler (oneAPI suite, based on clang / LLVM, free) and found:

with doubles plenty of fails, except with '-O0', there it's only one ( 10^23 ).

but! with 'long' error free from 10^-4953 .. 10^4933 ... ('error free': consistent between '10^x' and '1Ex' ).

even with '-Ofast'

i'm astonished,

can someone retest? intel oneAPI download and install, needs setting the environment with 'setvars.sh', and compile with 'icpx ....', names and options i left as for gcc.

try any steps to compare '1Ex' to '10^x' or 'POW( 10, x )', e.g. take the test program from Morten and adapt for long doubles and negative powers.

Best Regards,



b.

P.S. please be tolerant, I'm not a professional but just look, poke and try around, sometimes it results in good new things ... but not always ;-)

Attachment: mw_powers_10_t1_long.c
Description: Text document



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]