-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a CI script to test the decoder on three different sets of SIF problems #20
Conversation
For the For the SIF files in |
ee1b5dd
to
70d4b0e
Compare
@nimgould in |
Well I can't see any DABS in AKIVA ... must be my old eyes : |
Ah sorry, it's in the generated EXTERN.f:
|
Hmmm ... EXTERN_s.f is only 541 lines long ... and no mention of DABS. Are you sure you decoded the right example? |
It seems to be from BLEACHNG.SIF. That example should definitely only be |
I guess we need a way to flag which examples cannot be run in single and quadruple precision? |
I've updated DABS -> ABS in BLEACHING, so maybe it will now compile. I wouldn't trust the answer though! |
Let me re-run the tests on here and we'll see! |
@nimgould still getting some quad precision errors with AKIVA, see the failing quadruple test below for details. Also still quite a few errors in the single precision decoding attempts, see the single precision test log below. |
Yep, as I said before the external part of any SIF file really needs an interpreter to do a proper translation, akin to writing a compiler. As neither you nor I presumably have the inclination to write such a thing, these errors will persist. The poor algorithm tester will loose 10 or so examples out of 1750 if they want to explore single or quad. |
Okay in that case @amontoison can we exclude all the SIF problems with EXTERN's from the single/quad tests? |
9136f7f
to
fb59979
Compare
The following 33 problems are excluded (in single and quadruple precision) because they contain an
|
Thanks @amontoison, |
Fixed
|
Same issue in |
Probably worth grepping globally for DABS in all the SIF files? |
The HS*, BA*, JIMACK, ORBIT2, IELOW, PARKCH, RAYBENDS, STRATEC and VANDAN* examples should be ok in single precision. I think I know how to make these accessible in quad as well, but it will need me to add an extra (commented) line that uses ISO_FORTRAN_ENV, ONLY : real128 and that is processed with the -qp flag. No time to try right now |
alexis@HP-Spectre:~/Téléchargements/optrove-sif-7a01e1efd8de$ grep -nr DABS
CORE2.SIF:939: F X * DABS(X) |
I modified the sif decoder so that it is more likely that it will translate any external parts to 128 bit reals correctly. It won't catch everything. some examples have hard-wired constants smaller than 10^-6 so the single versions may be in trouble there (but that is why we have double precision!) |
Okay so we just need to fix the |
Didn't I do that?
Sent from Outlook for Android<https://aka.ms/AAb9ysg>
…________________________________
From: Jari ***@***.***>
Sent: Friday, August 16, 2024 2:54:22 PM
To: ralna/SIFDecode ***@***.***>
Cc: Gould, Nick (STFC,RAL,SC) ***@***.***>; Mention ***@***.***>
Subject: Re: [ralna/SIFDecode] Add a CI script to test the decoder on three different sets of SIF problems (PR #20)
Okay so we just need to fix the DABS in CORE2.SIF?
—
Reply to this email directly, view it on GitHub<#20 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ACW4A6TTJABNFXNVZEIWP4LZRYAA5AVCNFSM6AAAAABMSYRWGGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJTGU2TKOJVGY>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Thanks Nick, all tests passed if we don't use the SIF problems with rm -f *.f *.o *.d
./sifdecoder_standalone -sp HIELOW.SIF
gfortran -shared -fPIC *.f EXTER_s.f:10546:36:
10546 | DO 1200 NOEUD = 1,NNOEUE-1
| 1
Error: Symbol ‘nnoeue’ at (1) has no IMPLICIT type; did you mean ‘nnoeud’? rm -f *.f *.o *.d
./sifdecoder_standalone -sp HS68.SIF
gfortran -shared -fPIC *.f EXTER_s.f:147:51:
147 | 1 XBIG,XHUGE,XMAX/26.543D0,6.71D7,2.53D307/
| 1
Error: Arithmetic overflow converting REAL(8) to REAL(4) at (1). This check can be disabled with the option ‘-fno-range-check’
EXTER_s.f:146:36:
146 | DATA XINF,XNEG,XSMALL/1.79D308,-26.628D0,1.11E-16/,
| 1
Error: Arithmetic overflow converting REAL(8) to REAL(4) at (1). This check can be disabled with the option ‘-fno-range-check’ rm -f *.f *.o *.d
./sifdecoder_standalone -sp HS69.SIF
gfortran -shared -fPIC *.f EXTER_s.f:147:51:
147 | 1 XBIG,XHUGE,XMAX/26.543D0,6.71D7,2.53D307/
| 1
Error: Arithmetic overflow converting REAL(8) to REAL(4) at (1). This check can be disabled with the option ‘-fno-range-check’
EXTER_s.f:146:36:
146 | DATA XINF,XNEG,XSMALL/1.79D308,-26.628D0,1.11E-16/,
| 1
Error: Arithmetic overflow converting REAL(8) to REAL(4) at (1). This check can be disabled with the option ‘-fno-range-check’ rm -f *.f *.o *.d
./sifdecoder_standalone -sp PARKCH.SIF
gfortran -shared -fPIC *.f EXTER_s.f:34125:36:
34125 | DO 1200 NOEUD = 1,NNOEUE-1
| 1
Error: Symbol ‘nnoeue’ at (1) has no IMPLICIT type; did you mean ‘nnoeud’? rm -f *.f *.o *.d
./sifdecoder_standalone -sp STRATEC.SIF
gfortran -shared -fPIC *.f EXTER_s.f:34125:36:
34125 | DO 1200 NOEUD = 1,NNOEUE-1
| 1
Error: Symbol ‘nnoeue’ at (1) has no IMPLICIT type; did you mean ‘nnoeud’? |
For quadruple precision, I have 15 problems that are not working: rm -f *.f *.o *.d
./sifdecoder_standalone -qp BLEACHNG.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp CAR2.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp HIELOW.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp HS88.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp HS89.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp HS90.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp HS91.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp HS92.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp JIMACK.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp ORBIT2.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp PARKCH.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp RAYBENDS.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp SARO.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp SAROMM.SIF
gfortran -shared -fPIC *.f
rm -f *.f *.o *.d
./sifdecoder_standalone -qp STRATEC.SIF
gfortran -shared -fPIC *.f I have this kind of error: EXTER_q.f:8:11:
8 | REAL(REAL128) FUNCTION SAROFN(
| 1
Error: Parameter ‘real128’ at (1) has not been declared or is a variable, which does not reduce to a constant expression
EXTER_q.f:10:18:
10 | 1 RK, RIDX, SYSEQ,
| 1
Error: Syntax error in USE statement at (1)
EXTER_q.f:16:11:
16 | REAL(REAL128) RK, RIDX
| 1
Error: Parameter ‘real128’ at (1) has not been declared or is a variable, which does not reduce to a constant expression
EXTER_q.f:18:11:
18 | REAL(REAL128) X1, X2, X3, X4, X5, X6, X7, X8, X9
| 1
Error: Parameter ‘real128’ at (1) has not been declared or is a variable, which does not reduce to a constant expression
EXTER_q.f:19:11:
19 | REAL(REAL128) U1, U2
| 1
Error: Parameter ‘real128’ at (1) has not been declared or is a variable, which does not reduce to a constant expression
EXTER_q.f:21:11:
21 | REAL(REAL128) X(NX), U(NU), F(NX), G(NG)
| 1
Error: Parameter ‘real128’ at (1) has not been declared or is a variable, which does not reduce to a constant expression
EXTER_q.f:22:11:
22 | REAL(REAL128) RKZBAK
| 1
Error: Parameter ‘real128’ at (1) has not been declared or is a variable, which does not reduce to a constant expression
EXTER_q.f:75:11:
75 | REAL(REAL128) FUNCTION SAROGN(
| 1
Error: Parameter ‘real128’ at (1) has not been declared or is a variable, which does not reduce to a constant expression
EXTER_q.f:77:18:
77 | 1 RK, RIDX, SYSEQ,
| 1
Error: Syntax error in USE statement at (1)
EXTER_q.f:14:72:
14 | INTEGER NX, NU, NG
| 1
......
83 | INTEGER NX, NU, NG, PMAX
| 2
Error: Two main PROGRAMs at (1) and (2) |
c1064fc
to
8f3648b
Compare
8f3648b
to
63aa4dd
Compare
This PR adds a CI script to test that the new decoder,
sifdecoder_standalone
, works on all problems in thesifcollection
,maros-meszaros
andnetlib-lp
collections.The problems are decoded in
single
,double
, andquadruple
precision, and then compiled.For now, I am only compiling the decoded problems with
gfortran
on Linux.