Skip to content

Commit 25da4dd

Browse files
committed
map logical to 1 or 0 independent of compiler in mc01td
1 parent ac53a0a commit 25da4dd

File tree

5 files changed

+146
-111
lines changed

5 files changed

+146
-111
lines changed

slycot/CMakeLists.txt

Lines changed: 102 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -6,106 +6,112 @@
66

77
set(FSOURCES
88

9-
src/AB01MD.f src/MA02AD.f src/MB03YT.f src/NF01BW.f src/SB10KD.f
10-
src/AB01ND.f src/MA02BD.f src/MB03ZA.f src/NF01BX.f src/SB10LD.f
11-
src/AB01OD.f src/MA02BZ.f src/MB03ZD.f src/NF01BY.f src/SB10MD.f
12-
src/AB04MD.f src/MA02CD.f src/MB04DD.f src/SB01BD.f src/SB10PD.f
13-
src/AB05MD.f src/MA02CZ.f src/MB04DI.f src/SB01BX.f src/SB10QD.f
14-
src/AB05ND.f src/MA02DD.f src/MB04DS.f src/SB01BY.f src/SB10RD.f
15-
src/AB05OD.f src/MA02ED.f src/MB04DY.f src/SB01DD.f src/SB10SD.f
16-
src/AB05PD.f src/MA02FD.f src/MB04GD.f src/SB01FY.f src/SB10TD.f
17-
src/AB05QD.f src/MA02GD.f src/MB04ID.f src/SB01MD.f src/SB10UD.f
18-
src/AB05RD.f src/MA02HD.f src/MB04IY.f src/SB02CX.f src/SB10VD.f
19-
src/AB05SD.f src/MA02ID.f src/MB04IZ.f src/SB02MD.f src/SB10WD.f
20-
src/AB07MD.f src/MA02JD.f src/MB04JD.f src/SB02MR.f src/SB10YD.f
21-
src/AB07ND.f src/MB01MD.f src/MB04KD.f src/SB02MS.f src/SB10ZD.f
22-
src/AB08MD.f src/MB01ND.f src/MB04LD.f src/SB02MT.f src/SB10ZP.f
23-
src/AB08MZ.f src/MB01PD.f src/MB04MD.f src/SB02MU.f src/SB16AD.f
24-
src/AB08ND.f src/MB01QD.f src/MB04ND.f src/SB02MV.f src/SB16AY.f
25-
src/AB08NX.f src/MB01RD.f src/MB04NY.f src/SB02MW.f src/SB16BD.f
26-
src/AB08NZ.f src/MB01RU.f src/MB04OD.f src/SB02ND.f src/SB16CD.f
27-
src/AB09AD.f src/MB01RW.f src/MB04OW.f src/SB02OD.f src/SB16CY.f
28-
src/AB09AX.f src/MB01RX.f src/MB04OX.f src/SB02OU.f src/select.f
29-
src/AB09BD.f src/MB01RY.f src/MB04OY.f src/SB02OV.f src/SG02AD.f
30-
src/AB09BX.f src/MB01SD.f src/MB04PA.f src/SB02OW.f src/SG03AD.f
31-
src/AB09CD.f src/MB01TD.f src/MB04PB.f src/SB02OX.f src/SG03AX.f
32-
src/AB09CX.f src/MB01UD.f src/MB04PU.f src/SB02OY.f src/SG03AY.f
33-
src/AB09DD.f src/MB01UW.f src/MB04PY.f src/SB02PD.f src/SG03BD.f
34-
src/AB09ED.f src/MB01UX.f src/MB04QB.f src/SB02QD.f src/SG03BU.f
35-
src/AB09FD.f src/MB01VD.f src/MB04QC.f src/SB02RD.f src/SG03BV.f
36-
src/AB09GD.f src/MB01WD.f src/MB04QF.f src/SB02RU.f src/SG03BW.f
37-
src/AB09HD.f src/MB01XD.f src/MB04QU.f src/SB02SD.f src/SG03BX.f
38-
src/AB09HX.f src/MB01XY.f src/MB04TB.f src/SB03MD.f src/SG03BY.f
39-
src/AB09HY.f src/MB01YD.f src/MB04TS.f src/SB03MU.f
40-
src/SLCT_DLATZM.f src/AB09ID.f src/MB01ZD.f src/MB04TT.f
41-
src/SB03MV.f src/SLCT_ZLATZM.f src/AB09IX.f src/MB02CD.f
42-
src/MB04TU.f src/SB03MW.f src/TB01ID.f src/AB09IY.f src/MB02CU.f
43-
src/MB04TV.f src/SB03MX.f src/TB01IZ.f src/AB09JD.f src/MB02CV.f
44-
src/MB04TW.f src/SB03MY.f src/TB01KD.f src/AB09JV.f src/MB02CX.f
45-
src/MB04TX.f src/SB03OD.f src/TB01LD.f src/AB09JW.f src/MB02CY.f
46-
src/MB04TY.f src/SB03OR.f src/TB01MD.f src/AB09JX.f src/MB02DD.f
47-
src/MB04UD.f src/SB03OT.f src/TB01ND.f src/AB09KD.f src/MB02ED.f
48-
src/MB04VD.f src/SB03OU.f src/TB01PD.f src/AB09KX.f src/MB02FD.f
49-
src/MB04VX.f src/SB03OV.f src/TB01TD.f src/AB09MD.f src/MB02GD.f
50-
src/MB04WD.f src/SB03OY.f src/TB01TY.f src/AB09ND.f src/MB02HD.f
51-
src/MB04WP.f src/SB03PD.f src/TB01UD.f src/AB13AD.f src/MB02ID.f
52-
src/MB04WR.f src/SB03QD.f src/TB01VD.f src/AB13AX.f src/MB02JD.f
53-
src/MB04WU.f src/SB03QX.f src/TB01VY.f src/AB13BD.f src/MB02JX.f
54-
src/MB04XD.f src/SB03QY.f src/TB01WD.f src/AB13CD.f src/MB02KD.f
55-
src/MB04XY.f src/SB03RD.f src/TB01XD.f src/AB13DD.f src/MB02MD.f
56-
src/MB04YD.f src/SB03SD.f src/TB01XZ.f src/AB13DX.f src/MB02ND.f
57-
src/MB04YW.f src/SB03SX.f src/TB01YD.f src/AB13ED.f src/MB02NY.f
58-
src/MB04ZD.f src/SB03SY.f src/TB01ZD.f src/AB13FD.f src/MB02OD.f
59-
src/MB05MD.f src/SB03TD.f src/TB03AD.f src/AB13MD.f src/MB02PD.f
60-
src/MB05MY.f src/SB03UD.f src/TB03AY.f src/AB8NXZ.f src/MB02QD.f
61-
src/MB05ND.f src/SB04MD.f src/TB04AD.f src/AG07BD.f src/MB02QY.f
62-
src/MB05OD.f src/SB04MR.f src/TB04AY.f src/AG08BD.f src/MB02RD.f
63-
src/MB05OY.f src/SB04MU.f src/TB04BD.f src/AG08BY.f src/MB02RZ.f
64-
src/MB3OYZ.f src/SB04MW.f src/TB04BV.f src/AG08BZ.f src/MB02SD.f
65-
src/MB3PYZ.f src/SB04MY.f src/TB04BW.f src/AG8BYZ.f src/MB02SZ.f
66-
src/MC01MD.f src/SB04ND.f src/TB04BX.f src/BB01AD.f src/MB02TD.f
67-
src/MC01ND.f src/SB04NV.f src/TB04CD.f src/BB02AD.f src/MB02TZ.f
68-
src/MC01OD.f src/SB04NW.f src/TB05AD.f src/BB03AD.f src/MB02UD.f
69-
src/MC01PD.f src/SB04NX.f src/TC01OD.f src/BB04AD.f src/MB02UU.f
70-
src/MC01PY.f src/SB04NY.f src/TC04AD.f src/BD01AD.f src/MB02UV.f
71-
src/MC01QD.f src/SB04OD.f src/TC05AD.f src/BD02AD.f src/MB02VD.f
72-
src/MC01RD.f src/SB04OW.f src/TD03AD.f src/DE01OD.f src/MB02WD.f
73-
src/MC01SD.f src/SB04PD.f src/TD03AY.f src/DE01PD.f src/MB02XD.f
74-
src/MC01SW.f src/SB04PX.f src/TD04AD.f src/delctg.f src/MB02YD.f
75-
src/MC01SX.f src/SB04PY.f src/TD05AD.f src/DF01MD.f src/MB03MD.f
76-
src/MC01SY.f src/SB04QD.f src/TF01MD.f src/DG01MD.f src/MB03MY.f
77-
src/MC01TD.f src/SB04QR.f src/TF01MX.f src/DG01ND.f src/MB03ND.f
78-
src/MC01VD.f src/SB04QU.f src/TF01MY.f src/DG01NY.f src/MB03NY.f
79-
src/MC01WD.f src/SB04QY.f src/TF01ND.f src/DG01OD.f src/MB03OD.f
80-
src/MC03MD.f src/SB04RD.f src/TF01OD.f src/DK01MD.f src/MB03OY.f
81-
src/MC03ND.f src/SB04RV.f src/TF01PD.f src/FB01QD.f src/MB03PD.f
82-
src/MC03NX.f src/SB04RW.f src/TF01QD.f src/FB01RD.f src/MB03PY.f
83-
src/MC03NY.f src/SB04RX.f src/TF01RD.f src/FB01SD.f src/MB03QD.f
84-
src/MD03AD.f src/SB04RY.f src/TG01AD.f src/FB01TD.f src/MB03QX.f
85-
src/MD03BA.f src/SB06ND.f src/TG01AZ.f src/FB01VD.f src/MB03QY.f
86-
src/MD03BB.f src/SB08CD.f src/TG01BD.f src/FD01AD.f src/MB03RD.f
87-
src/MD03BD.f src/SB08DD.f src/TG01CD.f src/IB01AD.f src/MB03RX.f
88-
src/MD03BF.f src/SB08ED.f src/TG01DD.f src/IB01BD.f src/MB03RY.f
89-
src/MD03BX.f src/SB08FD.f src/TG01ED.f src/IB01CD.f src/MB03SD.f
90-
src/MD03BY.f src/SB08GD.f src/TG01FD.f src/IB01MD.f src/MB03TD.f
91-
src/NF01AD.f src/SB08HD.f src/TG01FZ.f src/IB01MY.f src/MB03TS.f
92-
src/NF01AY.f src/SB08MD.f src/TG01HD.f src/IB01ND.f src/MB03UD.f
93-
src/NF01BA.f src/SB08MY.f src/TG01HX.f src/IB01OD.f src/MB03VD.f
94-
src/NF01BB.f src/SB08ND.f src/TG01ID.f src/IB01OY.f src/MB03VY.f
95-
src/NF01BD.f src/SB08NY.f src/TG01JD.f src/IB01PD.f src/MB03WA.f
96-
src/NF01BE.f src/SB09MD.f src/TG01WD.f src/IB01PX.f src/MB03WD.f
97-
src/NF01BF.f src/SB10AD.f src/UD01BD.f src/IB01PY.f src/MB03WX.f
98-
src/NF01BP.f src/SB10DD.f src/UD01CD.f src/IB01QD.f src/MB03XD.f
99-
src/NF01BQ.f src/SB10ED.f src/UD01DD.f src/IB01RD.f src/MB03XP.f
100-
src/NF01BR.f src/SB10FD.f src/UD01MD.f src/IB03AD.f src/MB03XU.f
101-
src/NF01BS.f src/SB10HD.f src/UD01MZ.f src/IB03BD.f src/MB03YA.f
102-
src/NF01BU.f src/SB10ID.f src/UD01ND.f src/MA01AD.f src/MB03YD.f
103-
src/NF01BV.f src/SB10JD.f src/UE01MD.f)
9+
src/AB01MD.f src/AB01ND.f src/AB01OD.f src/AB04MD.f src/AB05MD.f
10+
src/AB05ND.f src/AB05OD.f src/AB05PD.f src/AB05QD.f src/AB05RD.f
11+
src/AB05SD.f src/AB07MD.f src/AB07ND.f src/AB08MD.f src/AB08MZ.f
12+
src/AB08ND.f src/AB08NX.f src/AB08NZ.f src/AB09AD.f src/AB09AX.f
13+
src/AB09BD.f src/AB09BX.f src/AB09CD.f src/AB09CX.f src/AB09DD.f
14+
src/AB09ED.f src/AB09FD.f src/AB09GD.f src/AB09HD.f src/AB09HX.f
15+
src/AB09HY.f src/AB09ID.f src/AB09IX.f src/AB09IY.f src/AB09JD.f
16+
src/AB09JV.f src/AB09JW.f src/AB09JX.f src/AB09KD.f src/AB09KX.f
17+
src/AB09MD.f src/AB09ND.f src/AB13AD.f src/AB13AX.f src/AB13BD.f
18+
src/AB13CD.f src/AB13DD.f src/AB13DX.f src/AB13ED.f src/AB13FD.f
19+
src/AB13MD.f src/AB8NXZ.f src/AG07BD.f src/AG08BD.f src/AG08BY.f
20+
src/AG08BZ.f src/AG8BYZ.f src/BB01AD.f src/BB02AD.f src/BB03AD.f
21+
src/BB04AD.f src/BD01AD.f src/BD02AD.f src/DE01OD.f src/DE01PD.f
22+
src/DF01MD.f src/DG01MD.f src/DG01ND.f src/DG01NY.f src/DG01OD.f
23+
src/DK01MD.f src/FB01QD.f src/FB01RD.f src/FB01SD.f src/FB01TD.f
24+
src/FB01VD.f src/FD01AD.f src/IB01AD.f src/IB01BD.f src/IB01CD.f
25+
src/IB01MD.f src/IB01MY.f src/IB01ND.f src/IB01OD.f src/IB01OY.f
26+
src/IB01PD.f src/IB01PX.f src/IB01PY.f src/IB01QD.f src/IB01RD.f
27+
src/IB03AD.f src/IB03BD.f src/MA01AD.f src/MA02AD.f src/MA02BD.f
28+
src/MA02BZ.f src/MA02CD.f src/MA02CZ.f src/MA02DD.f src/MA02ED.f
29+
src/MA02FD.f src/MA02GD.f src/MA02HD.f src/MA02ID.f src/MA02JD.f
30+
src/MB01MD.f src/MB01ND.f src/MB01PD.f src/MB01QD.f src/MB01RD.f
31+
src/MB01RU.f src/MB01RW.f src/MB01RX.f src/MB01RY.f src/MB01SD.f
32+
src/MB01TD.f src/MB01UD.f src/MB01UW.f src/MB01UX.f src/MB01VD.f
33+
src/MB01WD.f src/MB01XD.f src/MB01XY.f src/MB01YD.f src/MB01ZD.f
34+
src/MB02CD.f src/MB02CU.f src/MB02CV.f src/MB02CX.f src/MB02CY.f
35+
src/MB02DD.f src/MB02ED.f src/MB02FD.f src/MB02GD.f src/MB02HD.f
36+
src/MB02ID.f src/MB02JD.f src/MB02JX.f src/MB02KD.f src/MB02MD.f
37+
src/MB02ND.f src/MB02NY.f src/MB02OD.f src/MB02PD.f src/MB02QD.f
38+
src/MB02QY.f src/MB02RD.f src/MB02RZ.f src/MB02SD.f src/MB02SZ.f
39+
src/MB02TD.f src/MB02TZ.f src/MB02UD.f src/MB02UU.f src/MB02UV.f
40+
src/MB02VD.f src/MB02WD.f src/MB02XD.f src/MB02YD.f src/MB03MD.f
41+
src/MB03MY.f src/MB03ND.f src/MB03NY.f src/MB03OD.f src/MB03OY.f
42+
src/MB03PD.f src/MB03PY.f src/MB03QD.f src/MB03QX.f src/MB03QY.f
43+
src/MB03RD.f src/MB03RX.f src/MB03RY.f src/MB03SD.f src/MB03TD.f
44+
src/MB03TS.f src/MB03UD.f src/MB03VD.f src/MB03VY.f src/MB03WA.f
45+
src/MB03WD.f src/MB03WX.f src/MB03XD.f src/MB03XP.f src/MB03XU.f
46+
src/MB03YA.f src/MB03YD.f src/MB03YT.f src/MB03ZA.f src/MB03ZD.f
47+
src/MB04DD.f src/MB04DI.f src/MB04DS.f src/MB04DY.f src/MB04GD.f
48+
src/MB04ID.f src/MB04IY.f src/MB04IZ.f src/MB04JD.f src/MB04KD.f
49+
src/MB04LD.f src/MB04MD.f src/MB04ND.f src/MB04NY.f src/MB04OD.f
50+
src/MB04OW.f src/MB04OX.f src/MB04OY.f src/MB04PA.f src/MB04PB.f
51+
src/MB04PU.f src/MB04PY.f src/MB04QB.f src/MB04QC.f src/MB04QF.f
52+
src/MB04QU.f src/MB04TB.f src/MB04TS.f src/MB04TT.f src/MB04TU.f
53+
src/MB04TV.f src/MB04TW.f src/MB04TX.f src/MB04TY.f src/MB04UD.f
54+
src/MB04VD.f src/MB04VX.f src/MB04WD.f src/MB04WP.f src/MB04WR.f
55+
src/MB04WU.f src/MB04XD.f src/MB04XY.f src/MB04YD.f src/MB04YW.f
56+
src/MB04ZD.f src/MB05MD.f src/MB05MY.f src/MB05ND.f src/MB05OD.f
57+
src/MB05OY.f src/MB3OYZ.f src/MB3PYZ.f src/MC01MD.f src/MC01ND.f
58+
src/MC01OD.f src/MC01PD.f src/MC01PY.f src/MC01QD.f src/MC01RD.f
59+
src/MC01SD.f src/MC01SW.f src/MC01SX.f src/MC01SY.f src/MC01TD.f
60+
src/MC01VD.f src/MC01WD.f src/MC03MD.f src/MC03ND.f src/MC03NX.f
61+
src/MC03NY.f src/MD03AD.f src/MD03BA.f src/MD03BB.f src/MD03BD.f
62+
src/MD03BF.f src/MD03BX.f src/MD03BY.f src/NF01AD.f src/NF01AY.f
63+
src/NF01BA.f src/NF01BB.f src/NF01BD.f src/NF01BE.f src/NF01BF.f
64+
src/NF01BP.f src/NF01BQ.f src/NF01BR.f src/NF01BS.f src/NF01BU.f
65+
src/NF01BV.f src/NF01BW.f src/NF01BX.f src/NF01BY.f src/SB01BD.f
66+
src/SB01BX.f src/SB01BY.f src/SB01DD.f src/SB01FY.f src/SB01MD.f
67+
src/SB02CX.f src/SB02MD.f src/SB02MR.f src/SB02MS.f src/SB02MT.f
68+
src/SB02MU.f src/SB02MV.f src/SB02MW.f src/SB02ND.f src/SB02OD.f
69+
src/SB02OU.f src/SB02OV.f src/SB02OW.f src/SB02OX.f src/SB02OY.f
70+
src/SB02PD.f src/SB02QD.f src/SB02RD.f src/SB02RU.f src/SB02SD.f
71+
src/SB03MD.f src/SB03MU.f src/SB03MV.f src/SB03MW.f src/SB03MX.f
72+
src/SB03MY.f src/SB03OD.f src/SB03OR.f src/SB03OT.f src/SB03OU.f
73+
src/SB03OV.f src/SB03OY.f src/SB03PD.f src/SB03QD.f src/SB03QX.f
74+
src/SB03QY.f src/SB03RD.f src/SB03SD.f src/SB03SX.f src/SB03SY.f
75+
src/SB03TD.f src/SB03UD.f src/SB04MD.f src/SB04MR.f src/SB04MU.f
76+
src/SB04MW.f src/SB04MY.f src/SB04ND.f src/SB04NV.f src/SB04NW.f
77+
src/SB04NX.f src/SB04NY.f src/SB04OD.f src/SB04OW.f src/SB04PD.f
78+
src/SB04PX.f src/SB04PY.f src/SB04QD.f src/SB04QR.f src/SB04QU.f
79+
src/SB04QY.f src/SB04RD.f src/SB04RV.f src/SB04RW.f src/SB04RX.f
80+
src/SB04RY.f src/SB06ND.f src/SB08CD.f src/SB08DD.f src/SB08ED.f
81+
src/SB08FD.f src/SB08GD.f src/SB08HD.f src/SB08MD.f src/SB08MY.f
82+
src/SB08ND.f src/SB08NY.f src/SB09MD.f src/SB10AD.f src/SB10DD.f
83+
src/SB10ED.f src/SB10FD.f src/SB10HD.f src/SB10ID.f src/SB10JD.f
84+
src/SB10KD.f src/SB10LD.f src/SB10MD.f src/SB10PD.f src/SB10QD.f
85+
src/SB10RD.f src/SB10SD.f src/SB10TD.f src/SB10UD.f src/SB10VD.f
86+
src/SB10WD.f src/SB10YD.f src/SB10ZD.f src/SB10ZP.f src/SB16AD.f
87+
src/SB16AY.f src/SB16BD.f src/SB16CD.f src/SB16CY.f src/SG02AD.f
88+
src/SG03AD.f src/SG03AX.f src/SG03AY.f src/SG03BD.f src/SG03BU.f
89+
src/SG03BV.f src/SG03BW.f src/SG03BX.f src/SG03BY.f src/TB01ID.f
90+
src/TB01IZ.f src/TB01KD.f src/TB01LD.f src/TB01MD.f src/TB01ND.f
91+
src/TB01PD.f src/TB01TD.f src/TB01TY.f src/TB01UD.f src/TB01VD.f
92+
src/TB01VY.f src/TB01WD.f src/TB01XD.f src/TB01XZ.f src/TB01YD.f
93+
src/TB01ZD.f src/TB03AD.f src/TB03AY.f src/TB04AD.f src/TB04AY.f
94+
src/TB04BD.f src/TB04BV.f src/TB04BW.f src/TB04BX.f src/TB04CD.f
95+
src/TB05AD.f src/TC01OD.f src/TC04AD.f src/TC05AD.f src/TD03AD.f
96+
src/TD03AY.f src/TD04AD.f src/TD05AD.f src/TF01MD.f src/TF01MX.f
97+
src/TF01MY.f src/TF01ND.f src/TF01OD.f src/TF01PD.f src/TF01QD.f
98+
src/TF01RD.f src/TG01AD.f src/TG01AZ.f src/TG01BD.f src/TG01CD.f
99+
src/TG01DD.f src/TG01ED.f src/TG01FD.f src/TG01FZ.f src/TG01HD.f
100+
src/TG01HX.f src/TG01ID.f src/TG01JD.f src/TG01WD.f src/UD01BD.f
101+
src/UD01CD.f src/UD01DD.f src/UD01MD.f src/UD01MZ.f src/UD01ND.f
102+
src/UE01MD.f
103+
104+
src/delctg.f src/select.f
105+
src/SLCT_DLATZM.f src/SLCT_ZLATZM.f
106+
107+
src/ftruefalse.f
108+
)
104109

105110
set(F2PYSOURCE src/_wrapper.pyf)
106111
set(F2PYSOURCE_DEPS
107112
src/analysis.pyf src/math.pyf
108-
src/transform.pyf src/synthesis.pyf)
113+
src/transform.pyf src/synthesis.pyf
114+
src/_helper.pyf)
109115

110116
configure_file(version.py.in version.py @ONLY)
111117

slycot/math.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
from . import _wrapper
2121
import warnings
2222

23-
def mc01td(dico,dp,p):
23+
24+
def mc01td(dico, dp, p):
2425
""" dp,stable,nz = mc01td(dico,dp,p)
2526
2627
To determine whether or not a given polynomial P(x) with real
@@ -53,21 +54,24 @@ def mc01td(dico,dp,p):
5354
The number of unstable zeros.
5455
"""
5556
hidden = ' (hidden by the wrapper)'
56-
arg_list = ['dico', 'dp', 'P', 'stable', 'nz', 'DWORK', 'IWARN'+hidden,
57-
'INFO'+hidden]
58-
out = _wrapper.mc01td(dico,dp,p)
59-
if out[-1] < 0:
60-
error_text = "The following argument had an illegal value: "+arg_list[-out[-1]-1]
61-
e = ValueError(error_text)
62-
e.info = out[-1]
57+
arg_list = ['dico', 'dp', 'P', 'stable', 'nz', 'DWORK' + hidden,
58+
'IWARN', 'INFO']
59+
(dp_out, stable_log, nz, iwarn, info) = _wrapper.mc01td(dico, dp, p)
60+
if info < 0:
61+
fmt = "The following argument had an illegal value: '{}'"
62+
e = ValueError(fmt.format(arg_list[-info - 1]))
63+
e.info = info
6364
raise e
64-
if out[-1] == 1:
65+
if info == 1:
6566
warnings.warn('entry P(x) is the zero polynomial.')
66-
if out[-1] == 2:
67+
if info == 2:
6768
warnings.warn('P(x) may have zeros very close to stability boundary.')
68-
if out[-2] > 0:
69-
warnings.warn('The degree of P(x) has been reduced to %i' %(dp-out[-2]))
70-
return out[:-2]
69+
if iwarn > 0:
70+
fmt = 'The degree of P(x) has been reduced to {:d}'
71+
warnings.warn(fmt.format(dp - iwarn))
72+
ftrue, ffalse = _wrapper.ftruefalse()
73+
stable = 1 if stable_log == ftrue else 0
74+
return (dp_out, stable, nz)
7175

7276

7377
def mb03vd(n, ilo, ihi, A):

slycot/src/_helper.pyf

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
! -*- f90 -*-
2+
! Note: the context of this file is case sensitive.
3+
4+
subroutine ftruefalse(ftrue,ffalse) ! in src/ftruefalse.f
5+
logical intent(out) :: ftrue
6+
logical intent(out) :: ffalse
7+
end subroutine ftruefalse
8+
9+
! This file was auto-generated with f2py (version:2).
10+
! See http://cens.ioc.ee/projects/f2py2e/

slycot/src/_wrapper.pyf

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
! -*- f90 -*-
22
! Note: the context of this file is case sensitive.
33

4-
python module _wrapper ! in
4+
python module _wrapper ! in
55
interface ! in :wrapper
66
include "analysis.pyf"
77
include "math.pyf"
88
include "synthesis.pyf"
99
include "transform.pyf"
10-
end interface
10+
include "_helper.pyf"
11+
end interface
1112
end python module slycot

slycot/src/ftruefalse.f

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
SUBROUTINE FTRUEFALSE( FTRUE, FFALSE )
2+
C
3+
C SLYCOT
4+
C Helper Function to map the correct values of .TRUE. and .FALSE.
5+
C
6+
LOGICAL FTRUE
7+
LOGICAL FFALSE
8+
C
9+
FTRUE = .TRUE.
10+
FFALSE = .FALSE.
11+
C
12+
RETURN
13+
C
14+
END

0 commit comments

Comments
 (0)