summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/netlist/core/netlist_state.h22
-rw-r--r--src/lib/netlist/devices/nlid_proxy.cpp16
-rw-r--r--src/lib/netlist/generated/static_solvers.cpp3039
-rw-r--r--src/lib/netlist/nl_base.cpp1
-rw-r--r--src/lib/netlist/nl_errstr.h11
-rw-r--r--src/lib/netlist/nl_setup.cpp2
-rw-r--r--src/lib/netlist/prg/nltool.cpp4
-rw-r--r--src/lib/netlist/solver/nld_ms_gcr.h5
-rw-r--r--src/lib/netlist/solver/nld_solver.cpp49
-rw-r--r--src/lib/util/avhuff.cpp23
-rw-r--r--src/lib/util/avhuff.h64
-rw-r--r--src/lib/util/aviio.cpp16
-rw-r--r--src/lib/util/bitmap.cpp19
-rw-r--r--src/lib/util/bitmap.h79
-rw-r--r--src/lib/util/chdcodec.cpp2
-rw-r--r--src/lib/util/png.cpp18
16 files changed, 1420 insertions, 1950 deletions
diff --git a/src/lib/netlist/core/netlist_state.h b/src/lib/netlist/core/netlist_state.h
index 8f24fb09d94..dc9888579f5 100644
--- a/src/lib/netlist/core/netlist_state.h
+++ b/src/lib/netlist/core/netlist_state.h
@@ -217,24 +217,6 @@ namespace netlist
device_arena &pool() noexcept { return m_pool; }
const device_arena &pool() const noexcept { return m_pool; }
- /// \brief set extended validation mode.
- ///
- /// The extended validation mode is not intended for running.
- /// The intention is to identify power pins which are not properly
- /// connected. The downside is that this mode creates a netlist which
- /// is different (and not able to run).
- ///
- /// Extended validation is supported by nltool validate option.
- ///
- /// \param val Boolean value enabling/disabling extended validation mode
- void set_extended_validation(bool val) { m_extended_validation = val; }
-
- /// \brief State of extended validation mode.
- ///
- /// \returns boolean value indicating if extended validation mode is
- /// turned on.
- bool is_extended_validation() const { return m_extended_validation; }
-
struct stats_info
{
const detail::queue_t &m_queue;// performance
@@ -263,7 +245,7 @@ namespace netlist
plib::state_manager_t m_state;
log_type m_log;
- // FIXME: should only be available during device construcion
+ // FIXME: should only be available during device construction
host_arena::unique_ptr<setup_t> m_setup;
nets_collection_type m_nets;
@@ -271,8 +253,6 @@ namespace netlist
devices_collection_type m_devices;
// sole use is to manage lifetime of family objects
family_collection_type m_family_cache;
- bool m_extended_validation;
-
// dummy version
int m_dummy_version;
};
diff --git a/src/lib/netlist/devices/nlid_proxy.cpp b/src/lib/netlist/devices/nlid_proxy.cpp
index fb93d642a79..e8cc27fc987 100644
--- a/src/lib/netlist/devices/nlid_proxy.cpp
+++ b/src/lib/netlist/devices/nlid_proxy.cpp
@@ -124,19 +124,9 @@ namespace netlist
{
register_subalias("Q", "RN.1");
- log().verbose("D/A Proxy: Found power terminals on device {1}", out_proxied->device().name());
- if (anetlist.is_extended_validation())
- {
- // During validation, don't connect to terminals found
- // This will cause terminals not connected to a rail net to
- // fail connection stage.
- connect(m_RN.N(), m_RP.P());
- }
- else
- {
- connect(m_RN.N(), *m_tn);
- connect(m_RP.P(), *m_tp);
- }
+ connect(m_RN.N(), *m_tn);
+ connect(m_RP.P(), *m_tp);
+
connect(m_RN.P(), m_RP.N());
}
diff --git a/src/lib/netlist/generated/static_solvers.cpp b/src/lib/netlist/generated/static_solvers.cpp
index f945088b84c..3dfe1def465 100644
--- a/src/lib/netlist/generated/static_solvers.cpp
+++ b/src/lib/netlist/generated/static_solvers.cpp
@@ -393,6 +393,1021 @@ static void nl_gcr_1250f340dea396ae_22_double_double(double * __restrict V, cons
V[0] = (RHS0 - tmp0) / m_A0;
}
+// astrob
+static void nl_gcr_13833bf8c127deaa_154_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
+
+{
+
+ plib::unused_var(cnV);
+ double m_A0(0.0);
+ double m_A1(0.0);
+ double m_A2(0.0);
+ double m_A3(0.0);
+ double m_A4(0.0);
+ double m_A5(0.0);
+ double m_A6(0.0);
+ double m_A7(0.0);
+ double m_A8(0.0);
+ double m_A9(0.0);
+ double m_A10(0.0);
+ double m_A11(0.0);
+ double m_A12(0.0);
+ double m_A13(0.0);
+ double m_A14(0.0);
+ double m_A15(0.0);
+ double m_A16(0.0);
+ double m_A17(0.0);
+ double m_A18(0.0);
+ double m_A19(0.0);
+ double m_A20(0.0);
+ double m_A21(0.0);
+ double m_A22(0.0);
+ double m_A23(0.0);
+ double m_A24(0.0);
+ double m_A25(0.0);
+ double m_A26(0.0);
+ double m_A27(0.0);
+ double m_A28(0.0);
+ double m_A29(0.0);
+ double m_A30(0.0);
+ double m_A31(0.0);
+ double m_A32(0.0);
+ double m_A33(0.0);
+ double m_A34(0.0);
+ double m_A35(0.0);
+ double m_A36(0.0);
+ double m_A37(0.0);
+ double m_A38(0.0);
+ double m_A39(0.0);
+ double m_A40(0.0);
+ double m_A41(0.0);
+ double m_A42(0.0);
+ double m_A43(0.0);
+ double m_A44(0.0);
+ double m_A45(0.0);
+ double m_A46(0.0);
+ double m_A47(0.0);
+ double m_A48(0.0);
+ double m_A49(0.0);
+ double m_A50(0.0);
+ double m_A51(0.0);
+ double m_A52(0.0);
+ double m_A53(0.0);
+ double m_A54(0.0);
+ double m_A55(0.0);
+ double m_A56(0.0);
+ double m_A57(0.0);
+ double m_A58(0.0);
+ double m_A59(0.0);
+ double m_A60(0.0);
+ double m_A61(0.0);
+ double m_A62(0.0);
+ double m_A63(0.0);
+ double m_A64(0.0);
+ double m_A65(0.0);
+ double m_A66(0.0);
+ double m_A67(0.0);
+ double m_A68(0.0);
+ double m_A69(0.0);
+ double m_A70(0.0);
+ double m_A71(0.0);
+ double m_A72(0.0);
+ double m_A73(0.0);
+ double m_A74(0.0);
+ double m_A75(0.0);
+ double m_A76(0.0);
+ double m_A77(0.0);
+ double m_A78(0.0);
+ double m_A79(0.0);
+ double m_A80(0.0);
+ double m_A81(0.0);
+ double m_A82(0.0);
+ double m_A83(0.0);
+ double m_A84(0.0);
+ double m_A85(0.0);
+ double m_A86(0.0);
+ double m_A87(0.0);
+ double m_A88(0.0);
+ double m_A89(0.0);
+ double m_A90(0.0);
+ double m_A91(0.0);
+ double m_A92(0.0);
+ double m_A93(0.0);
+ double m_A94(0.0);
+ double m_A95(0.0);
+ double m_A96(0.0);
+ double m_A97(0.0);
+ double m_A98(0.0);
+ double m_A99(0.0);
+ double m_A100(0.0);
+ double m_A101(0.0);
+ double m_A102(0.0);
+ double m_A103(0.0);
+ double m_A104(0.0);
+ double m_A105(0.0);
+ double m_A106(0.0);
+ double m_A107(0.0);
+ double m_A108(0.0);
+ double m_A109(0.0);
+ double m_A110(0.0);
+ double m_A111(0.0);
+ double m_A112(0.0);
+ double m_A113(0.0);
+ double m_A114(0.0);
+ double m_A115(0.0);
+ double m_A116(0.0);
+ double m_A117(0.0);
+ double m_A118(0.0);
+ double m_A119(0.0);
+ double m_A120(0.0);
+ double m_A121(0.0);
+ double m_A122(0.0);
+ double m_A123(0.0);
+ double m_A124(0.0);
+ double m_A125(0.0);
+ double m_A126(0.0);
+ double m_A127(0.0);
+ double m_A128(0.0);
+ double m_A129(0.0);
+ double m_A130(0.0);
+ double m_A131(0.0);
+ double m_A132(0.0);
+ double m_A133(0.0);
+ double m_A134(0.0);
+ double m_A135(0.0);
+ double m_A136(0.0);
+ double m_A137(0.0);
+ double m_A138(0.0);
+ double m_A139(0.0);
+ double m_A140(0.0);
+ double m_A141(0.0);
+ double m_A142(0.0);
+ double m_A143(0.0);
+ double m_A144(0.0);
+ double m_A145(0.0);
+ double m_A146(0.0);
+ double m_A147(0.0);
+ double m_A148(0.0);
+ double m_A149(0.0);
+ double m_A150(0.0);
+ double m_A151(0.0);
+ double m_A152(0.0);
+ double m_A153(0.0);
+ m_A0 += gt[0];
+ m_A0 += gt[1];
+ m_A1 += go[0];
+ double RHS0 = Idr[0];
+ RHS0 += Idr[1];
+ RHS0 -= go[1] * *cnV[1];
+ m_A2 += gt[2];
+ m_A2 += gt[3];
+ m_A3 += go[2];
+ double RHS1 = Idr[2];
+ RHS1 += Idr[3];
+ RHS1 -= go[3] * *cnV[3];
+ m_A4 += gt[4];
+ m_A4 += gt[5];
+ m_A5 += go[4];
+ double RHS2 = Idr[4];
+ RHS2 += Idr[5];
+ RHS2 -= go[5] * *cnV[5];
+ m_A6 += gt[6];
+ m_A6 += gt[7];
+ m_A7 += go[6];
+ double RHS3 = Idr[6];
+ RHS3 += Idr[7];
+ RHS3 -= go[7] * *cnV[7];
+ m_A8 += gt[8];
+ m_A8 += gt[9];
+ m_A9 += go[8];
+ m_A10 += go[9];
+ double RHS4 = Idr[8];
+ RHS4 += Idr[9];
+ m_A11 += gt[10];
+ m_A11 += gt[11];
+ m_A11 += gt[12];
+ m_A12 += go[10];
+ double RHS5 = Idr[10];
+ RHS5 += Idr[11];
+ RHS5 += Idr[12];
+ RHS5 -= go[11] * *cnV[11];
+ RHS5 -= go[12] * *cnV[12];
+ m_A13 += gt[13];
+ m_A13 += gt[14];
+ m_A13 += gt[15];
+ m_A13 += gt[16];
+ m_A14 += go[13];
+ m_A14 += go[14];
+ m_A15 += go[15];
+ double RHS6 = Idr[13];
+ RHS6 += Idr[14];
+ RHS6 += Idr[15];
+ RHS6 += Idr[16];
+ RHS6 -= go[16] * *cnV[16];
+ m_A16 += gt[17];
+ m_A16 += gt[18];
+ m_A16 += gt[19];
+ m_A16 += gt[20];
+ m_A16 += gt[21];
+ m_A16 += gt[22];
+ m_A18 += go[17];
+ m_A17 += go[18];
+ double RHS7 = Idr[17];
+ RHS7 += Idr[18];
+ RHS7 += Idr[19];
+ RHS7 += Idr[20];
+ RHS7 += Idr[21];
+ RHS7 += Idr[22];
+ RHS7 -= go[19] * *cnV[19];
+ RHS7 -= go[20] * *cnV[20];
+ RHS7 -= go[21] * *cnV[21];
+ RHS7 -= go[22] * *cnV[22];
+ m_A19 += gt[23];
+ m_A19 += gt[24];
+ m_A19 += gt[25];
+ m_A20 += go[23];
+ double RHS8 = Idr[23];
+ RHS8 += Idr[24];
+ RHS8 += Idr[25];
+ RHS8 -= go[24] * *cnV[24];
+ RHS8 -= go[25] * *cnV[25];
+ m_A21 += gt[26];
+ m_A21 += gt[27];
+ m_A21 += gt[28];
+ m_A22 += go[26];
+ double RHS9 = Idr[26];
+ RHS9 += Idr[27];
+ RHS9 += Idr[28];
+ RHS9 -= go[27] * *cnV[27];
+ RHS9 -= go[28] * *cnV[28];
+ m_A23 += gt[29];
+ m_A23 += gt[30];
+ m_A23 += gt[31];
+ m_A24 += go[29];
+ double RHS10 = Idr[29];
+ RHS10 += Idr[30];
+ RHS10 += Idr[31];
+ RHS10 -= go[30] * *cnV[30];
+ RHS10 -= go[31] * *cnV[31];
+ m_A25 += gt[32];
+ m_A25 += gt[33];
+ m_A25 += gt[34];
+ m_A26 += go[32];
+ double RHS11 = Idr[32];
+ RHS11 += Idr[33];
+ RHS11 += Idr[34];
+ RHS11 -= go[33] * *cnV[33];
+ RHS11 -= go[34] * *cnV[34];
+ m_A27 += gt[35];
+ m_A27 += gt[36];
+ m_A27 += gt[37];
+ m_A28 += go[35];
+ double RHS12 = Idr[35];
+ RHS12 += Idr[36];
+ RHS12 += Idr[37];
+ RHS12 -= go[36] * *cnV[36];
+ RHS12 -= go[37] * *cnV[37];
+ m_A29 += gt[38];
+ m_A29 += gt[39];
+ m_A30 += go[38];
+ double RHS13 = Idr[38];
+ RHS13 += Idr[39];
+ RHS13 -= go[39] * *cnV[39];
+ m_A31 += gt[40];
+ m_A31 += gt[41];
+ m_A31 += gt[42];
+ m_A32 += go[40];
+ double RHS14 = Idr[40];
+ RHS14 += Idr[41];
+ RHS14 += Idr[42];
+ RHS14 -= go[41] * *cnV[41];
+ RHS14 -= go[42] * *cnV[42];
+ m_A33 += gt[43];
+ m_A33 += gt[44];
+ m_A34 += go[43];
+ double RHS15 = Idr[43];
+ RHS15 += Idr[44];
+ RHS15 -= go[44] * *cnV[44];
+ m_A35 += gt[45];
+ m_A35 += gt[46];
+ m_A36 += go[45];
+ double RHS16 = Idr[45];
+ RHS16 += Idr[46];
+ RHS16 -= go[46] * *cnV[46];
+ m_A37 += gt[47];
+ m_A37 += gt[48];
+ m_A38 += go[47];
+ double RHS17 = Idr[47];
+ RHS17 += Idr[48];
+ RHS17 -= go[48] * *cnV[48];
+ m_A39 += gt[49];
+ m_A39 += gt[50];
+ m_A40 += go[49];
+ double RHS18 = Idr[49];
+ RHS18 += Idr[50];
+ RHS18 -= go[50] * *cnV[50];
+ m_A41 += gt[51];
+ m_A41 += gt[52];
+ m_A42 += go[51];
+ double RHS19 = Idr[51];
+ RHS19 += Idr[52];
+ RHS19 -= go[52] * *cnV[52];
+ m_A43 += gt[53];
+ m_A43 += gt[54];
+ m_A44 += go[53];
+ double RHS20 = Idr[53];
+ RHS20 += Idr[54];
+ RHS20 -= go[54] * *cnV[54];
+ m_A45 += gt[55];
+ m_A45 += gt[56];
+ m_A45 += gt[57];
+ m_A45 += gt[58];
+ m_A45 += gt[59];
+ m_A46 += go[55];
+ m_A48 += go[56];
+ m_A47 += go[57];
+ double RHS21 = Idr[55];
+ RHS21 += Idr[56];
+ RHS21 += Idr[57];
+ RHS21 += Idr[58];
+ RHS21 += Idr[59];
+ RHS21 -= go[58] * *cnV[58];
+ RHS21 -= go[59] * *cnV[59];
+ m_A49 += gt[60];
+ m_A49 += gt[61];
+ m_A49 += gt[62];
+ m_A50 += go[60];
+ double RHS22 = Idr[60];
+ RHS22 += Idr[61];
+ RHS22 += Idr[62];
+ RHS22 -= go[61] * *cnV[61];
+ RHS22 -= go[62] * *cnV[62];
+ m_A51 += gt[63];
+ m_A51 += gt[64];
+ m_A52 += go[63];
+ double RHS23 = Idr[63];
+ RHS23 += Idr[64];
+ RHS23 -= go[64] * *cnV[64];
+ m_A55 += gt[65];
+ m_A55 += gt[66];
+ m_A55 += gt[67];
+ m_A55 += gt[68];
+ m_A54 += go[65];
+ m_A53 += go[66];
+ double RHS24 = Idr[65];
+ RHS24 += Idr[66];
+ RHS24 += Idr[67];
+ RHS24 += Idr[68];
+ RHS24 -= go[67] * *cnV[67];
+ RHS24 -= go[68] * *cnV[68];
+ m_A57 += gt[69];
+ m_A57 += gt[70];
+ m_A58 += go[69];
+ double RHS25 = Idr[69];
+ RHS25 += Idr[70];
+ RHS25 -= go[70] * *cnV[70];
+ m_A59 += gt[71];
+ m_A59 += gt[72];
+ m_A59 += gt[73];
+ m_A60 += go[71];
+ double RHS26 = Idr[71];
+ RHS26 += Idr[72];
+ RHS26 += Idr[73];
+ RHS26 -= go[72] * *cnV[72];
+ RHS26 -= go[73] * *cnV[73];
+ m_A61 += gt[74];
+ m_A61 += gt[75];
+ m_A61 += gt[76];
+ m_A62 += go[74];
+ double RHS27 = Idr[74];
+ RHS27 += Idr[75];
+ RHS27 += Idr[76];
+ RHS27 -= go[75] * *cnV[75];
+ RHS27 -= go[76] * *cnV[76];
+ m_A63 += gt[77];
+ m_A63 += gt[78];
+ m_A63 += gt[79];
+ m_A64 += go[77];
+ double RHS28 = Idr[77];
+ RHS28 += Idr[78];
+ RHS28 += Idr[79];
+ RHS28 -= go[78] * *cnV[78];
+ RHS28 -= go[79] * *cnV[79];
+ m_A65 += gt[80];
+ m_A65 += gt[81];
+ m_A67 += go[80];
+ m_A66 += go[81];
+ double RHS29 = Idr[80];
+ RHS29 += Idr[81];
+ m_A68 += gt[82];
+ m_A68 += gt[83];
+ m_A70 += go[82];
+ m_A69 += go[83];
+ double RHS30 = Idr[82];
+ RHS30 += Idr[83];
+ m_A71 += gt[84];
+ m_A71 += gt[85];
+ m_A73 += go[84];
+ m_A72 += go[85];
+ double RHS31 = Idr[84];
+ RHS31 += Idr[85];
+ m_A77 += gt[86];
+ m_A77 += gt[87];
+ m_A77 += gt[88];
+ m_A77 += gt[89];
+ m_A77 += gt[90];
+ m_A77 += gt[91];
+ m_A77 += gt[92];
+ m_A74 += go[86];
+ m_A75 += go[87];
+ m_A75 += go[88];
+ m_A78 += go[89];
+ m_A78 += go[90];
+ double RHS32 = Idr[86];
+ RHS32 += Idr[87];
+ RHS32 += Idr[88];
+ RHS32 += Idr[89];
+ RHS32 += Idr[90];
+ RHS32 += Idr[91];
+ RHS32 += Idr[92];
+ RHS32 -= go[91] * *cnV[91];
+ RHS32 -= go[92] * *cnV[92];
+ m_A83 += gt[93];
+ m_A83 += gt[94];
+ m_A83 += gt[95];
+ m_A83 += gt[96];
+ m_A83 += gt[97];
+ m_A83 += gt[98];
+ m_A83 += gt[99];
+ m_A83 += gt[100];
+ m_A83 += gt[101];
+ m_A85 += go[93];
+ m_A85 += go[94];
+ m_A84 += go[95];
+ m_A84 += go[96];
+ m_A82 += go[97];
+ m_A81 += go[98];
+ m_A80 += go[99];
+ m_A79 += go[100];
+ double RHS33 = Idr[93];
+ RHS33 += Idr[94];
+ RHS33 += Idr[95];
+ RHS33 += Idr[96];
+ RHS33 += Idr[97];
+ RHS33 += Idr[98];
+ RHS33 += Idr[99];
+ RHS33 += Idr[100];
+ RHS33 += Idr[101];
+ RHS33 -= go[101] * *cnV[101];
+ m_A92 += gt[102];
+ m_A92 += gt[103];
+ m_A92 += gt[104];
+ m_A92 += gt[105];
+ m_A92 += gt[106];
+ m_A92 += gt[107];
+ m_A91 += go[102];
+ m_A90 += go[103];
+ m_A89 += go[104];
+ m_A88 += go[105];
+ m_A87 += go[106];
+ m_A86 += go[107];
+ double RHS34 = Idr[102];
+ RHS34 += Idr[103];
+ RHS34 += Idr[104];
+ RHS34 += Idr[105];
+ RHS34 += Idr[106];
+ RHS34 += Idr[107];
+ m_A95 += gt[108];
+ m_A95 += gt[109];
+ m_A95 += gt[110];
+ m_A95 += gt[111];
+ m_A95 += gt[112];
+ m_A95 += gt[113];
+ m_A95 += gt[114];
+ m_A97 += go[108];
+ m_A94 += go[109];
+ double RHS35 = Idr[108];
+ RHS35 += Idr[109];
+ RHS35 += Idr[110];
+ RHS35 += Idr[111];
+ RHS35 += Idr[112];
+ RHS35 += Idr[113];
+ RHS35 += Idr[114];
+ RHS35 -= go[110] * *cnV[110];
+ RHS35 -= go[111] * *cnV[111];
+ RHS35 -= go[112] * *cnV[112];
+ RHS35 -= go[113] * *cnV[113];
+ RHS35 -= go[114] * *cnV[114];
+ m_A99 += gt[115];
+ m_A99 += gt[116];
+ m_A98 += go[115];
+ m_A100 += go[116];
+ double RHS36 = Idr[115];
+ RHS36 += Idr[116];
+ m_A107 += gt[117];
+ m_A107 += gt[118];
+ m_A107 += gt[119];
+ m_A107 += gt[120];
+ m_A107 += gt[121];
+ m_A107 += gt[122];
+ m_A106 += go[117];
+ m_A105 += go[118];
+ m_A104 += go[119];
+ m_A103 += go[120];
+ m_A102 += go[121];
+ m_A101 += go[122];
+ double RHS37 = Idr[117];
+ RHS37 += Idr[118];
+ RHS37 += Idr[119];
+ RHS37 += Idr[120];
+ RHS37 += Idr[121];
+ RHS37 += Idr[122];
+ m_A112 += gt[123];
+ m_A112 += gt[124];
+ m_A112 += gt[125];
+ m_A112 += gt[126];
+ m_A112 += gt[127];
+ m_A111 += go[123];
+ m_A110 += go[124];
+ m_A109 += go[125];
+ double RHS38 = Idr[123];
+ RHS38 += Idr[124];
+ RHS38 += Idr[125];
+ RHS38 += Idr[126];
+ RHS38 += Idr[127];
+ RHS38 -= go[126] * *cnV[126];
+ RHS38 -= go[127] * *cnV[127];
+ m_A118 += gt[128];
+ m_A118 += gt[129];
+ m_A118 += gt[130];
+ m_A118 += gt[131];
+ m_A118 += gt[132];
+ m_A118 += gt[133];
+ m_A118 += gt[134];
+ m_A118 += gt[135];
+ m_A118 += gt[136];
+ m_A119 += go[128];
+ m_A115 += go[129];
+ m_A114 += go[130];
+ m_A116 += go[131];
+ m_A116 += go[132];
+ m_A117 += go[133];
+ m_A117 += go[134];
+ double RHS39 = Idr[128];
+ RHS39 += Idr[129];
+ RHS39 += Idr[130];
+ RHS39 += Idr[131];
+ RHS39 += Idr[132];
+ RHS39 += Idr[133];
+ RHS39 += Idr[134];
+ RHS39 += Idr[135];
+ RHS39 += Idr[136];
+ RHS39 -= go[135] * *cnV[135];
+ RHS39 -= go[136] * *cnV[136];
+ m_A121 += gt[137];
+ m_A121 += gt[138];
+ m_A120 += go[137];
+ m_A122 += go[138];
+ double RHS40 = Idr[137];
+ RHS40 += Idr[138];
+ m_A127 += gt[139];
+ m_A127 += gt[140];
+ m_A127 += gt[141];
+ m_A127 += gt[142];
+ m_A127 += gt[143];
+ m_A126 += go[139];
+ m_A125 += go[140];
+ m_A124 += go[141];
+ m_A123 += go[142];
+ m_A128 += go[143];
+ double RHS41 = Idr[139];
+ RHS41 += Idr[140];
+ RHS41 += Idr[141];
+ RHS41 += Idr[142];
+ RHS41 += Idr[143];
+ m_A134 += gt[144];
+ m_A134 += gt[145];
+ m_A134 += gt[146];
+ m_A134 += gt[147];
+ m_A134 += gt[148];
+ m_A134 += gt[149];
+ m_A130 += go[144];
+ m_A129 += go[145];
+ m_A133 += go[146];
+ m_A131 += go[147];
+ m_A131 += go[148];
+ double RHS42 = Idr[144];
+ RHS42 += Idr[145];
+ RHS42 += Idr[146];
+ RHS42 += Idr[147];
+ RHS42 += Idr[148];
+ RHS42 += Idr[149];
+ RHS42 -= go[149] * *cnV[149];
+ m_A137 += gt[150];
+ m_A137 += gt[151];
+ m_A136 += go[150];
+ m_A138 += go[151];
+ double RHS43 = Idr[150];
+ RHS43 += Idr[151];
+ m_A153 += gt[152];
+ m_A153 += gt[153];
+ m_A153 += gt[154];
+ m_A153 += gt[155];
+ m_A153 += gt[156];
+ m_A153 += gt[157];
+ m_A153 += gt[158];
+ m_A153 += gt[159];
+ m_A152 += go[152];
+ m_A140 += go[153];
+ m_A141 += go[154];
+ m_A142 += go[155];
+ m_A149 += go[156];
+ m_A145 += go[157];
+ m_A150 += go[158];
+ m_A139 += go[159];
+ double RHS44 = Idr[152];
+ RHS44 += Idr[153];
+ RHS44 += Idr[154];
+ RHS44 += Idr[155];
+ RHS44 += Idr[156];
+ RHS44 += Idr[157];
+ RHS44 += Idr[158];
+ RHS44 += Idr[159];
+ const double f0 = 1.0 / m_A0;
+ const double f0_33 = -f0 * m_A79;
+ m_A83 += m_A1 * f0_33;
+ RHS33 += f0_33 * RHS0;
+ const double f1 = 1.0 / m_A2;
+ const double f1_33 = -f1 * m_A80;
+ m_A83 += m_A3 * f1_33;
+ RHS33 += f1_33 * RHS1;
+ const double f2 = 1.0 / m_A4;
+ const double f2_33 = -f2 * m_A81;
+ m_A83 += m_A5 * f2_33;
+ RHS33 += f2_33 * RHS2;
+ const double f3 = 1.0 / m_A6;
+ const double f3_33 = -f3 * m_A82;
+ m_A83 += m_A7 * f3_33;
+ RHS33 += f3_33 * RHS3;
+ const double f4 = 1.0 / m_A8;
+ const double f4_24 = -f4 * m_A53;
+ m_A55 += m_A9 * f4_24;
+ m_A56 += m_A10 * f4_24;
+ RHS24 += f4_24 * RHS4;
+ const double f4_32 = -f4 * m_A74;
+ m_A76 += m_A9 * f4_32;
+ m_A77 += m_A10 * f4_32;
+ RHS32 += f4_32 * RHS4;
+ const double f5 = 1.0 / m_A11;
+ const double f5_24 = -f5 * m_A54;
+ m_A55 += m_A12 * f5_24;
+ RHS24 += f5_24 * RHS5;
+ const double f6 = 1.0 / m_A13;
+ const double f6_32 = -f6 * m_A75;
+ m_A77 += m_A14 * f6_32;
+ m_A78 += m_A15 * f6_32;
+ RHS32 += f6_32 * RHS6;
+ const double f6_39 = -f6 * m_A114;
+ m_A116 += m_A14 * f6_39;
+ m_A118 += m_A15 * f6_39;
+ RHS39 += f6_39 * RHS6;
+ const double f7 = 1.0 / m_A16;
+ const double f7_35 = -f7 * m_A94;
+ m_A96 += m_A17 * f7_35;
+ m_A97 += m_A18 * f7_35;
+ RHS35 += f7_35 * RHS7;
+ const double f7_39 = -f7 * m_A115;
+ m_A118 += m_A17 * f7_39;
+ m_A119 += m_A18 * f7_39;
+ RHS39 += f7_39 * RHS7;
+ const double f7_42 = -f7 * m_A129;
+ m_A133 += m_A17 * f7_42;
+ m_A134 += m_A18 * f7_42;
+ RHS42 += f7_42 * RHS7;
+ const double f8 = 1.0 / m_A19;
+ const double f8_37 = -f8 * m_A101;
+ m_A107 += m_A20 * f8_37;
+ RHS37 += f8_37 * RHS8;
+ const double f9 = 1.0 / m_A21;
+ const double f9_37 = -f9 * m_A102;
+ m_A107 += m_A22 * f9_37;
+ RHS37 += f9_37 * RHS9;
+ const double f10 = 1.0 / m_A23;
+ const double f10_37 = -f10 * m_A103;
+ m_A107 += m_A24 * f10_37;
+ RHS37 += f10_37 * RHS10;
+ const double f11 = 1.0 / m_A25;
+ const double f11_37 = -f11 * m_A104;
+ m_A107 += m_A26 * f11_37;
+ RHS37 += f11_37 * RHS11;
+ const double f12 = 1.0 / m_A27;
+ const double f12_37 = -f12 * m_A105;
+ m_A107 += m_A28 * f12_37;
+ RHS37 += f12_37 * RHS12;
+ const double f13 = 1.0 / m_A29;
+ const double f13_38 = -f13 * m_A109;
+ m_A112 += m_A30 * f13_38;
+ RHS38 += f13_38 * RHS13;
+ const double f14 = 1.0 / m_A31;
+ const double f14_34 = -f14 * m_A86;
+ m_A92 += m_A32 * f14_34;
+ RHS34 += f14_34 * RHS14;
+ const double f15 = 1.0 / m_A33;
+ const double f15_41 = -f15 * m_A123;
+ m_A127 += m_A34 * f15_41;
+ RHS41 += f15_41 * RHS15;
+ const double f16 = 1.0 / m_A35;
+ const double f16_36 = -f16 * m_A98;
+ m_A99 += m_A36 * f16_36;
+ RHS36 += f16_36 * RHS16;
+ const double f17 = 1.0 / m_A37;
+ const double f17_40 = -f17 * m_A120;
+ m_A121 += m_A38 * f17_40;
+ RHS40 += f17_40 * RHS17;
+ const double f18 = 1.0 / m_A39;
+ const double f18_41 = -f18 * m_A124;
+ m_A127 += m_A40 * f18_41;
+ RHS41 += f18_41 * RHS18;
+ const double f19 = 1.0 / m_A41;
+ const double f19_41 = -f19 * m_A125;
+ m_A127 += m_A42 * f19_41;
+ RHS41 += f19_41 * RHS19;
+ const double f20 = 1.0 / m_A43;
+ const double f20_41 = -f20 * m_A126;
+ m_A127 += m_A44 * f20_41;
+ RHS41 += f20_41 * RHS20;
+ const double f21 = 1.0 / m_A45;
+ const double f21_42 = -f21 * m_A130;
+ m_A132 += m_A46 * f21_42;
+ m_A134 += m_A47 * f21_42;
+ m_A135 += m_A48 * f21_42;
+ RHS42 += f21_42 * RHS21;
+ const double f21_44 = -f21 * m_A139;
+ m_A144 += m_A46 * f21_44;
+ m_A151 += m_A47 * f21_44;
+ m_A153 += m_A48 * f21_44;
+ RHS44 += f21_44 * RHS21;
+ const double f22 = 1.0 / m_A49;
+ const double f22_34 = -f22 * m_A87;
+ m_A92 += m_A50 * f22_34;
+ RHS34 += f22_34 * RHS22;
+ const double f23 = 1.0 / m_A51;
+ const double f23_43 = -f23 * m_A136;
+ m_A137 += m_A52 * f23_43;
+ RHS43 += f23_43 * RHS23;
+ const double f24 = 1.0 / m_A55;
+ const double f24_32 = -f24 * m_A76;
+ m_A77 += m_A56 * f24_32;
+ RHS32 += f24_32 * RHS24;
+ const double f25 = 1.0 / m_A57;
+ const double f25_38 = -f25 * m_A110;
+ m_A112 += m_A58 * f25_38;
+ RHS38 += f25_38 * RHS25;
+ const double f26 = 1.0 / m_A59;
+ const double f26_34 = -f26 * m_A88;
+ m_A92 += m_A60 * f26_34;
+ RHS34 += f26_34 * RHS26;
+ const double f27 = 1.0 / m_A61;
+ const double f27_34 = -f27 * m_A89;
+ m_A92 += m_A62 * f27_34;
+ RHS34 += f27_34 * RHS27;
+ const double f28 = 1.0 / m_A63;
+ const double f28_34 = -f28 * m_A90;
+ m_A92 += m_A64 * f28_34;
+ RHS34 += f28_34 * RHS28;
+ const double f29 = 1.0 / m_A65;
+ const double f29_34 = -f29 * m_A91;
+ m_A92 += m_A66 * f29_34;
+ m_A93 += m_A67 * f29_34;
+ RHS34 += f29_34 * RHS29;
+ const double f29_44 = -f29 * m_A140;
+ m_A143 += m_A66 * f29_44;
+ m_A153 += m_A67 * f29_44;
+ RHS44 += f29_44 * RHS29;
+ const double f30 = 1.0 / m_A68;
+ const double f30_37 = -f30 * m_A106;
+ m_A107 += m_A69 * f30_37;
+ m_A108 += m_A70 * f30_37;
+ RHS37 += f30_37 * RHS30;
+ const double f30_44 = -f30 * m_A141;
+ m_A146 += m_A69 * f30_44;
+ m_A153 += m_A70 * f30_44;
+ RHS44 += f30_44 * RHS30;
+ const double f31 = 1.0 / m_A71;
+ const double f31_38 = -f31 * m_A111;
+ m_A112 += m_A72 * f31_38;
+ m_A113 += m_A73 * f31_38;
+ RHS38 += f31_38 * RHS31;
+ const double f31_44 = -f31 * m_A142;
+ m_A147 += m_A72 * f31_44;
+ m_A153 += m_A73 * f31_44;
+ RHS44 += f31_44 * RHS31;
+ const double f32 = 1.0 / m_A77;
+ const double f32_39 = -f32 * m_A116;
+ m_A118 += m_A78 * f32_39;
+ RHS39 += f32_39 * RHS32;
+ const double f33 = 1.0 / m_A83;
+ const double f33_39 = -f33 * m_A117;
+ m_A118 += m_A84 * f33_39;
+ m_A119 += m_A85 * f33_39;
+ RHS39 += f33_39 * RHS33;
+ const double f33_42 = -f33 * m_A131;
+ m_A133 += m_A84 * f33_42;
+ m_A134 += m_A85 * f33_42;
+ RHS42 += f33_42 * RHS33;
+ const double f34 = 1.0 / m_A92;
+ const double f34_44 = -f34 * m_A143;
+ m_A153 += m_A93 * f34_44;
+ RHS44 += f34_44 * RHS34;
+ const double f35 = 1.0 / m_A95;
+ const double f35_42 = -f35 * m_A132;
+ m_A133 += m_A96 * f35_42;
+ m_A134 += m_A97 * f35_42;
+ RHS42 += f35_42 * RHS35;
+ const double f35_44 = -f35 * m_A144;
+ m_A148 += m_A96 * f35_44;
+ m_A151 += m_A97 * f35_44;
+ RHS44 += f35_44 * RHS35;
+ const double f36 = 1.0 / m_A99;
+ const double f36_44 = -f36 * m_A145;
+ m_A153 += m_A100 * f36_44;
+ RHS44 += f36_44 * RHS36;
+ const double f37 = 1.0 / m_A107;
+ const double f37_44 = -f37 * m_A146;
+ m_A153 += m_A108 * f37_44;
+ RHS44 += f37_44 * RHS37;
+ const double f38 = 1.0 / m_A112;
+ const double f38_44 = -f38 * m_A147;
+ m_A153 += m_A113 * f38_44;
+ RHS44 += f38_44 * RHS38;
+ const double f39 = 1.0 / m_A118;
+ const double f39_42 = -f39 * m_A133;
+ m_A134 += m_A119 * f39_42;
+ RHS42 += f39_42 * RHS39;
+ const double f39_44 = -f39 * m_A148;
+ m_A151 += m_A119 * f39_44;
+ RHS44 += f39_44 * RHS39;
+ const double f40 = 1.0 / m_A121;
+ const double f40_44 = -f40 * m_A149;
+ m_A153 += m_A122 * f40_44;
+ RHS44 += f40_44 * RHS40;
+ const double f41 = 1.0 / m_A127;
+ const double f41_44 = -f41 * m_A150;
+ m_A153 += m_A128 * f41_44;
+ RHS44 += f41_44 * RHS41;
+ const double f42 = 1.0 / m_A134;
+ const double f42_44 = -f42 * m_A151;
+ m_A153 += m_A135 * f42_44;
+ RHS44 += f42_44 * RHS42;
+ const double f43 = 1.0 / m_A137;
+ const double f43_44 = -f43 * m_A152;
+ m_A153 += m_A138 * f43_44;
+ RHS44 += f43_44 * RHS43;
+ V[44] = RHS44 / m_A153;
+ double tmp43 = 0.0;
+ tmp43 += m_A138 * V[44];
+ V[43] = (RHS43 - tmp43) / m_A137;
+ double tmp42 = 0.0;
+ tmp42 += m_A135 * V[44];
+ V[42] = (RHS42 - tmp42) / m_A134;
+ double tmp41 = 0.0;
+ tmp41 += m_A128 * V[44];
+ V[41] = (RHS41 - tmp41) / m_A127;
+ double tmp40 = 0.0;
+ tmp40 += m_A122 * V[44];
+ V[40] = (RHS40 - tmp40) / m_A121;
+ double tmp39 = 0.0;
+ tmp39 += m_A119 * V[42];
+ V[39] = (RHS39 - tmp39) / m_A118;
+ double tmp38 = 0.0;
+ tmp38 += m_A113 * V[44];
+ V[38] = (RHS38 - tmp38) / m_A112;
+ double tmp37 = 0.0;
+ tmp37 += m_A108 * V[44];
+ V[37] = (RHS37 - tmp37) / m_A107;
+ double tmp36 = 0.0;
+ tmp36 += m_A100 * V[44];
+ V[36] = (RHS36 - tmp36) / m_A99;
+ double tmp35 = 0.0;
+ tmp35 += m_A96 * V[39];
+ tmp35 += m_A97 * V[42];
+ V[35] = (RHS35 - tmp35) / m_A95;
+ double tmp34 = 0.0;
+ tmp34 += m_A93 * V[44];
+ V[34] = (RHS34 - tmp34) / m_A92;
+ double tmp33 = 0.0;
+ tmp33 += m_A84 * V[39];
+ tmp33 += m_A85 * V[42];
+ V[33] = (RHS33 - tmp33) / m_A83;
+ double tmp32 = 0.0;
+ tmp32 += m_A78 * V[39];
+ V[32] = (RHS32 - tmp32) / m_A77;
+ double tmp31 = 0.0;
+ tmp31 += m_A72 * V[38];
+ tmp31 += m_A73 * V[44];
+ V[31] = (RHS31 - tmp31) / m_A71;
+ double tmp30 = 0.0;
+ tmp30 += m_A69 * V[37];
+ tmp30 += m_A70 * V[44];
+ V[30] = (RHS30 - tmp30) / m_A68;
+ double tmp29 = 0.0;
+ tmp29 += m_A66 * V[34];
+ tmp29 += m_A67 * V[44];
+ V[29] = (RHS29 - tmp29) / m_A65;
+ double tmp28 = 0.0;
+ tmp28 += m_A64 * V[34];
+ V[28] = (RHS28 - tmp28) / m_A63;
+ double tmp27 = 0.0;
+ tmp27 += m_A62 * V[34];
+ V[27] = (RHS27 - tmp27) / m_A61;
+ double tmp26 = 0.0;
+ tmp26 += m_A60 * V[34];
+ V[26] = (RHS26 - tmp26) / m_A59;
+ double tmp25 = 0.0;
+ tmp25 += m_A58 * V[38];
+ V[25] = (RHS25 - tmp25) / m_A57;
+ double tmp24 = 0.0;
+ tmp24 += m_A56 * V[32];
+ V[24] = (RHS24 - tmp24) / m_A55;
+ double tmp23 = 0.0;
+ tmp23 += m_A52 * V[43];
+ V[23] = (RHS23 - tmp23) / m_A51;
+ double tmp22 = 0.0;
+ tmp22 += m_A50 * V[34];
+ V[22] = (RHS22 - tmp22) / m_A49;
+ double tmp21 = 0.0;
+ tmp21 += m_A46 * V[35];
+ tmp21 += m_A47 * V[42];
+ tmp21 += m_A48 * V[44];
+ V[21] = (RHS21 - tmp21) / m_A45;
+ double tmp20 = 0.0;
+ tmp20 += m_A44 * V[41];
+ V[20] = (RHS20 - tmp20) / m_A43;
+ double tmp19 = 0.0;
+ tmp19 += m_A42 * V[41];
+ V[19] = (RHS19 - tmp19) / m_A41;
+ double tmp18 = 0.0;
+ tmp18 += m_A40 * V[41];
+ V[18] = (RHS18 - tmp18) / m_A39;
+ double tmp17 = 0.0;
+ tmp17 += m_A38 * V[40];
+ V[17] = (RHS17 - tmp17) / m_A37;
+ double tmp16 = 0.0;
+ tmp16 += m_A36 * V[36];
+ V[16] = (RHS16 - tmp16) / m_A35;
+ double tmp15 = 0.0;
+ tmp15 += m_A34 * V[41];
+ V[15] = (RHS15 - tmp15) / m_A33;
+ double tmp14 = 0.0;
+ tmp14 += m_A32 * V[34];
+ V[14] = (RHS14 - tmp14) / m_A31;
+ double tmp13 = 0.0;
+ tmp13 += m_A30 * V[38];
+ V[13] = (RHS13 - tmp13) / m_A29;
+ double tmp12 = 0.0;
+ tmp12 += m_A28 * V[37];
+ V[12] = (RHS12 - tmp12) / m_A27;
+ double tmp11 = 0.0;
+ tmp11 += m_A26 * V[37];
+ V[11] = (RHS11 - tmp11) / m_A25;
+ double tmp10 = 0.0;
+ tmp10 += m_A24 * V[37];
+ V[10] = (RHS10 - tmp10) / m_A23;
+ double tmp9 = 0.0;
+ tmp9 += m_A22 * V[37];
+ V[9] = (RHS9 - tmp9) / m_A21;
+ double tmp8 = 0.0;
+ tmp8 += m_A20 * V[37];
+ V[8] = (RHS8 - tmp8) / m_A19;
+ double tmp7 = 0.0;
+ tmp7 += m_A17 * V[39];
+ tmp7 += m_A18 * V[42];
+ V[7] = (RHS7 - tmp7) / m_A16;
+ double tmp6 = 0.0;
+ tmp6 += m_A14 * V[32];
+ tmp6 += m_A15 * V[39];
+ V[6] = (RHS6 - tmp6) / m_A13;
+ double tmp5 = 0.0;
+ tmp5 += m_A12 * V[24];
+ V[5] = (RHS5 - tmp5) / m_A11;
+ double tmp4 = 0.0;
+ tmp4 += m_A9 * V[24];
+ tmp4 += m_A10 * V[32];
+ V[4] = (RHS4 - tmp4) / m_A8;
+ double tmp3 = 0.0;
+ tmp3 += m_A7 * V[33];
+ V[3] = (RHS3 - tmp3) / m_A6;
+ double tmp2 = 0.0;
+ tmp2 += m_A5 * V[33];
+ V[2] = (RHS2 - tmp2) / m_A4;
+ double tmp1 = 0.0;
+ tmp1 += m_A3 * V[33];
+ V[1] = (RHS1 - tmp1) / m_A2;
+ double tmp0 = 0.0;
+ tmp0 += m_A1 * V[33];
+ V[0] = (RHS0 - tmp0) / m_A0;
+}
+
// pongf
static void nl_gcr_13e7b5ac1a260dbf_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
@@ -1176,218 +2191,6 @@ static void nl_gcr_144ed14e6bafdb_119_double_double(double * __restrict V, const
V[0] = (RHS0 - tmp0) / m_A0;
}
-// astrob
-static void nl_gcr_15b7648945a58fb_27_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
-
-{
-
- plib::unused_var(cnV);
- double m_A0(0.0);
- double m_A1(0.0);
- double m_A2(0.0);
- double m_A3(0.0);
- double m_A4(0.0);
- double m_A5(0.0);
- double m_A6(0.0);
- double m_A7(0.0);
- double m_A8(0.0);
- double m_A9(0.0);
- double m_A10(0.0);
- double m_A11(0.0);
- double m_A12(0.0);
- double m_A13(0.0);
- double m_A14(0.0);
- double m_A15(0.0);
- double m_A16(0.0);
- double m_A17(0.0);
- double m_A18(0.0);
- double m_A19(0.0);
- double m_A20(0.0);
- double m_A21(0.0);
- double m_A22(0.0);
- double m_A23(0.0);
- double m_A24(0.0);
- double m_A25(0.0);
- double m_A26(0.0);
- m_A0 += gt[0];
- m_A0 += gt[1];
- m_A0 += gt[2];
- m_A0 += gt[3];
- m_A0 += gt[4];
- m_A0 += gt[5];
- m_A0 += gt[6];
- m_A1 += go[0];
- double RHS0 = Idr[0];
- RHS0 += Idr[1];
- RHS0 += Idr[2];
- RHS0 += Idr[3];
- RHS0 += Idr[4];
- RHS0 += Idr[5];
- RHS0 += Idr[6];
- RHS0 -= go[1] * *cnV[1];
- RHS0 -= go[2] * *cnV[2];
- RHS0 -= go[3] * *cnV[3];
- RHS0 -= go[4] * *cnV[4];
- RHS0 -= go[5] * *cnV[5];
- RHS0 -= go[6] * *cnV[6];
- m_A2 += gt[7];
- m_A2 += gt[8];
- m_A2 += gt[9];
- m_A4 += go[7];
- m_A3 += go[8];
- double RHS1 = Idr[7];
- RHS1 += Idr[8];
- RHS1 += Idr[9];
- RHS1 -= go[9] * *cnV[9];
- m_A5 += gt[10];
- m_A5 += gt[11];
- m_A5 += gt[12];
- m_A5 += gt[13];
- m_A5 += gt[14];
- m_A5 += gt[15];
- m_A5 += gt[16];
- m_A6 += go[10];
- double RHS2 = Idr[10];
- RHS2 += Idr[11];
- RHS2 += Idr[12];
- RHS2 += Idr[13];
- RHS2 += Idr[14];
- RHS2 += Idr[15];
- RHS2 += Idr[16];
- RHS2 -= go[11] * *cnV[11];
- RHS2 -= go[12] * *cnV[12];
- RHS2 -= go[13] * *cnV[13];
- RHS2 -= go[14] * *cnV[14];
- RHS2 -= go[15] * *cnV[15];
- RHS2 -= go[16] * *cnV[16];
- m_A7 += gt[17];
- m_A7 += gt[18];
- m_A7 += gt[19];
- m_A7 += gt[20];
- m_A9 += go[17];
- m_A10 += go[18];
- m_A8 += go[19];
- double RHS3 = Idr[17];
- RHS3 += Idr[18];
- RHS3 += Idr[19];
- RHS3 += Idr[20];
- RHS3 -= go[20] * *cnV[20];
- m_A14 += gt[21];
- m_A14 += gt[22];
- m_A14 += gt[23];
- m_A14 += gt[24];
- m_A14 += gt[25];
- m_A11 += go[21];
- m_A13 += go[22];
- m_A12 += go[23];
- double RHS4 = Idr[21];
- RHS4 += Idr[22];
- RHS4 += Idr[23];
- RHS4 += Idr[24];
- RHS4 += Idr[25];
- RHS4 -= go[24] * *cnV[24];
- RHS4 -= go[25] * *cnV[25];
- m_A19 += gt[26];
- m_A19 += gt[27];
- m_A19 += gt[28];
- m_A20 += go[26];
- m_A17 += go[27];
- double RHS5 = Idr[26];
- RHS5 += Idr[27];
- RHS5 += Idr[28];
- RHS5 -= go[28] * *cnV[28];
- m_A26 += gt[29];
- m_A26 += gt[30];
- m_A26 += gt[31];
- m_A26 += gt[32];
- m_A26 += gt[33];
- m_A26 += gt[34];
- m_A26 += gt[35];
- m_A22 += go[29];
- m_A25 += go[30];
- m_A23 += go[31];
- m_A21 += go[32];
- double RHS6 = Idr[29];
- RHS6 += Idr[30];
- RHS6 += Idr[31];
- RHS6 += Idr[32];
- RHS6 += Idr[33];
- RHS6 += Idr[34];
- RHS6 += Idr[35];
- RHS6 -= go[33] * *cnV[33];
- RHS6 -= go[34] * *cnV[34];
- RHS6 -= go[35] * *cnV[35];
- const double f0 = 1.0 / m_A0;
- const double f0_4 = -f0 * m_A11;
- m_A12 += m_A1 * f0_4;
- RHS4 += f0_4 * RHS0;
- const double f1 = 1.0 / m_A2;
- const double f1_4 = -f1 * m_A12;
- m_A14 += m_A3 * f1_4;
- m_A16 += m_A4 * f1_4;
- RHS4 += f1_4 * RHS1;
- const double f1_6 = -f1 * m_A21;
- m_A24 += m_A3 * f1_6;
- m_A26 += m_A4 * f1_6;
- RHS6 += f1_6 * RHS1;
- const double f2 = 1.0 / m_A5;
- const double f2_6 = -f2 * m_A22;
- m_A25 += m_A6 * f2_6;
- RHS6 += f2_6 * RHS2;
- const double f3 = 1.0 / m_A7;
- const double f3_4 = -f3 * m_A13;
- m_A14 += m_A8 * f3_4;
- m_A15 += m_A9 * f3_4;
- m_A16 += m_A10 * f3_4;
- RHS4 += f3_4 * RHS3;
- const double f3_5 = -f3 * m_A17;
- m_A18 += m_A8 * f3_5;
- m_A19 += m_A9 * f3_5;
- m_A20 += m_A10 * f3_5;
- RHS5 += f3_5 * RHS3;
- const double f3_6 = -f3 * m_A23;
- m_A24 += m_A8 * f3_6;
- m_A25 += m_A9 * f3_6;
- m_A26 += m_A10 * f3_6;
- RHS6 += f3_6 * RHS3;
- const double f4 = 1.0 / m_A14;
- const double f4_5 = -f4 * m_A18;
- m_A19 += m_A15 * f4_5;
- m_A20 += m_A16 * f4_5;
- RHS5 += f4_5 * RHS4;
- const double f4_6 = -f4 * m_A24;
- m_A25 += m_A15 * f4_6;
- m_A26 += m_A16 * f4_6;
- RHS6 += f4_6 * RHS4;
- const double f5 = 1.0 / m_A19;
- const double f5_6 = -f5 * m_A25;
- m_A26 += m_A20 * f5_6;
- RHS6 += f5_6 * RHS5;
- V[6] = RHS6 / m_A26;
- double tmp5 = 0.0;
- tmp5 += m_A20 * V[6];
- V[5] = (RHS5 - tmp5) / m_A19;
- double tmp4 = 0.0;
- tmp4 += m_A15 * V[5];
- tmp4 += m_A16 * V[6];
- V[4] = (RHS4 - tmp4) / m_A14;
- double tmp3 = 0.0;
- tmp3 += m_A8 * V[4];
- tmp3 += m_A9 * V[5];
- tmp3 += m_A10 * V[6];
- V[3] = (RHS3 - tmp3) / m_A7;
- double tmp2 = 0.0;
- tmp2 += m_A6 * V[5];
- V[2] = (RHS2 - tmp2) / m_A5;
- double tmp1 = 0.0;
- tmp1 += m_A3 * V[4];
- tmp1 += m_A4 * V[6];
- V[1] = (RHS1 - tmp1) / m_A2;
- double tmp0 = 0.0;
- tmp0 += m_A1 * V[1];
- V[0] = (RHS0 - tmp0) / m_A0;
-}
-
// spacewar
static void nl_gcr_15e8f6fb021de0f9_28_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
@@ -1581,74 +2384,6 @@ static void nl_gcr_15e8f6fb021de0f9_28_double_double(double * __restrict V, cons
V[0] = (RHS0 - tmp0) / m_A0;
}
-// armora
-static void nl_gcr_1692de755a535408_9_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
-
-{
-
- plib::unused_var(cnV);
- double m_A0(0.0);
- double m_A1(0.0);
- double m_A2(0.0);
- double m_A3(0.0);
- double m_A4(0.0);
- double m_A5(0.0);
- double m_A6(0.0);
- double m_A7(0.0);
- double m_A8(0.0);
- m_A0 += gt[0];
- m_A0 += gt[1];
- m_A0 += gt[2];
- m_A2 += go[0];
- m_A1 += go[1];
- m_A1 += go[2];
- double RHS0 = Idr[0];
- RHS0 += Idr[1];
- RHS0 += Idr[2];
- m_A4 += gt[3];
- m_A4 += gt[4];
- m_A4 += gt[5];
- m_A4 += gt[6];
- m_A5 += go[3];
- m_A5 += go[4];
- m_A3 += go[5];
- m_A3 += go[6];
- double RHS1 = Idr[3];
- RHS1 += Idr[4];
- RHS1 += Idr[5];
- RHS1 += Idr[6];
- m_A8 += gt[7];
- m_A8 += gt[8];
- m_A8 += gt[9];
- m_A7 += go[7];
- m_A7 += go[8];
- m_A6 += go[9];
- double RHS2 = Idr[7];
- RHS2 += Idr[8];
- RHS2 += Idr[9];
- const double f0 = 1.0 / m_A0;
- const double f0_1 = -f0 * m_A3;
- m_A4 += m_A1 * f0_1;
- m_A5 += m_A2 * f0_1;
- RHS1 += f0_1 * RHS0;
- const double f0_2 = -f0 * m_A6;
- m_A7 += m_A1 * f0_2;
- m_A8 += m_A2 * f0_2;
- RHS2 += f0_2 * RHS0;
- const double f1 = 1.0 / m_A4;
- const double f1_2 = -f1 * m_A7;
- m_A8 += m_A5 * f1_2;
- RHS2 += f1_2 * RHS1;
- V[2] = RHS2 / m_A8;
- double tmp1 = 0.0;
- tmp1 += m_A5 * V[2];
- V[1] = (RHS1 - tmp1) / m_A4;
- double tmp0 = 0.0;
- tmp0 += m_A1 * V[1];
- tmp0 += m_A2 * V[2];
- V[0] = (RHS0 - tmp0) / m_A0;
-}
-
// dpatrol
static void nl_gcr_18f4d9160b51d613_20_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
@@ -8321,1021 +9056,6 @@ static void nl_gcr_34e910fc1896999f_76_double_double(double * __restrict V, cons
V[0] = (RHS0 - tmp0) / m_A0;
}
-// astrob
-static void nl_gcr_37b9bb3472eec580_154_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
-
-{
-
- plib::unused_var(cnV);
- double m_A0(0.0);
- double m_A1(0.0);
- double m_A2(0.0);
- double m_A3(0.0);
- double m_A4(0.0);
- double m_A5(0.0);
- double m_A6(0.0);
- double m_A7(0.0);
- double m_A8(0.0);
- double m_A9(0.0);
- double m_A10(0.0);
- double m_A11(0.0);
- double m_A12(0.0);
- double m_A13(0.0);
- double m_A14(0.0);
- double m_A15(0.0);
- double m_A16(0.0);
- double m_A17(0.0);
- double m_A18(0.0);
- double m_A19(0.0);
- double m_A20(0.0);
- double m_A21(0.0);
- double m_A22(0.0);
- double m_A23(0.0);
- double m_A24(0.0);
- double m_A25(0.0);
- double m_A26(0.0);
- double m_A27(0.0);
- double m_A28(0.0);
- double m_A29(0.0);
- double m_A30(0.0);
- double m_A31(0.0);
- double m_A32(0.0);
- double m_A33(0.0);
- double m_A34(0.0);
- double m_A35(0.0);
- double m_A36(0.0);
- double m_A37(0.0);
- double m_A38(0.0);
- double m_A39(0.0);
- double m_A40(0.0);
- double m_A41(0.0);
- double m_A42(0.0);
- double m_A43(0.0);
- double m_A44(0.0);
- double m_A45(0.0);
- double m_A46(0.0);
- double m_A47(0.0);
- double m_A48(0.0);
- double m_A49(0.0);
- double m_A50(0.0);
- double m_A51(0.0);
- double m_A52(0.0);
- double m_A53(0.0);
- double m_A54(0.0);
- double m_A55(0.0);
- double m_A56(0.0);
- double m_A57(0.0);
- double m_A58(0.0);
- double m_A59(0.0);
- double m_A60(0.0);
- double m_A61(0.0);
- double m_A62(0.0);
- double m_A63(0.0);
- double m_A64(0.0);
- double m_A65(0.0);
- double m_A66(0.0);
- double m_A67(0.0);
- double m_A68(0.0);
- double m_A69(0.0);
- double m_A70(0.0);
- double m_A71(0.0);
- double m_A72(0.0);
- double m_A73(0.0);
- double m_A74(0.0);
- double m_A75(0.0);
- double m_A76(0.0);
- double m_A77(0.0);
- double m_A78(0.0);
- double m_A79(0.0);
- double m_A80(0.0);
- double m_A81(0.0);
- double m_A82(0.0);
- double m_A83(0.0);
- double m_A84(0.0);
- double m_A85(0.0);
- double m_A86(0.0);
- double m_A87(0.0);
- double m_A88(0.0);
- double m_A89(0.0);
- double m_A90(0.0);
- double m_A91(0.0);
- double m_A92(0.0);
- double m_A93(0.0);
- double m_A94(0.0);
- double m_A95(0.0);
- double m_A96(0.0);
- double m_A97(0.0);
- double m_A98(0.0);
- double m_A99(0.0);
- double m_A100(0.0);
- double m_A101(0.0);
- double m_A102(0.0);
- double m_A103(0.0);
- double m_A104(0.0);
- double m_A105(0.0);
- double m_A106(0.0);
- double m_A107(0.0);
- double m_A108(0.0);
- double m_A109(0.0);
- double m_A110(0.0);
- double m_A111(0.0);
- double m_A112(0.0);
- double m_A113(0.0);
- double m_A114(0.0);
- double m_A115(0.0);
- double m_A116(0.0);
- double m_A117(0.0);
- double m_A118(0.0);
- double m_A119(0.0);
- double m_A120(0.0);
- double m_A121(0.0);
- double m_A122(0.0);
- double m_A123(0.0);
- double m_A124(0.0);
- double m_A125(0.0);
- double m_A126(0.0);
- double m_A127(0.0);
- double m_A128(0.0);
- double m_A129(0.0);
- double m_A130(0.0);
- double m_A131(0.0);
- double m_A132(0.0);
- double m_A133(0.0);
- double m_A134(0.0);
- double m_A135(0.0);
- double m_A136(0.0);
- double m_A137(0.0);
- double m_A138(0.0);
- double m_A139(0.0);
- double m_A140(0.0);
- double m_A141(0.0);
- double m_A142(0.0);
- double m_A143(0.0);
- double m_A144(0.0);
- double m_A145(0.0);
- double m_A146(0.0);
- double m_A147(0.0);
- double m_A148(0.0);
- double m_A149(0.0);
- double m_A150(0.0);
- double m_A151(0.0);
- double m_A152(0.0);
- double m_A153(0.0);
- m_A0 += gt[0];
- m_A0 += gt[1];
- m_A1 += go[0];
- double RHS0 = Idr[0];
- RHS0 += Idr[1];
- RHS0 -= go[1] * *cnV[1];
- m_A2 += gt[2];
- m_A2 += gt[3];
- m_A3 += go[2];
- double RHS1 = Idr[2];
- RHS1 += Idr[3];
- RHS1 -= go[3] * *cnV[3];
- m_A4 += gt[4];
- m_A4 += gt[5];
- m_A5 += go[4];
- double RHS2 = Idr[4];
- RHS2 += Idr[5];
- RHS2 -= go[5] * *cnV[5];
- m_A6 += gt[6];
- m_A6 += gt[7];
- m_A7 += go[6];
- m_A8 += go[7];
- double RHS3 = Idr[6];
- RHS3 += Idr[7];
- m_A9 += gt[8];
- m_A9 += gt[9];
- m_A9 += gt[10];
- m_A10 += go[8];
- double RHS4 = Idr[8];
- RHS4 += Idr[9];
- RHS4 += Idr[10];
- RHS4 -= go[9] * *cnV[9];
- RHS4 -= go[10] * *cnV[10];
- m_A11 += gt[11];
- m_A11 += gt[12];
- m_A11 += gt[13];
- m_A11 += gt[14];
- m_A12 += go[11];
- m_A12 += go[12];
- m_A13 += go[13];
- double RHS5 = Idr[11];
- RHS5 += Idr[12];
- RHS5 += Idr[13];
- RHS5 += Idr[14];
- RHS5 -= go[14] * *cnV[14];
- m_A14 += gt[15];
- m_A14 += gt[16];
- m_A15 += go[15];
- double RHS6 = Idr[15];
- RHS6 += Idr[16];
- RHS6 -= go[16] * *cnV[16];
- m_A16 += gt[17];
- m_A16 += gt[18];
- m_A16 += gt[19];
- m_A16 += gt[20];
- m_A16 += gt[21];
- m_A16 += gt[22];
- m_A18 += go[17];
- m_A17 += go[18];
- double RHS7 = Idr[17];
- RHS7 += Idr[18];
- RHS7 += Idr[19];
- RHS7 += Idr[20];
- RHS7 += Idr[21];
- RHS7 += Idr[22];
- RHS7 -= go[19] * *cnV[19];
- RHS7 -= go[20] * *cnV[20];
- RHS7 -= go[21] * *cnV[21];
- RHS7 -= go[22] * *cnV[22];
- m_A19 += gt[23];
- m_A19 += gt[24];
- m_A19 += gt[25];
- m_A20 += go[23];
- double RHS8 = Idr[23];
- RHS8 += Idr[24];
- RHS8 += Idr[25];
- RHS8 -= go[24] * *cnV[24];
- RHS8 -= go[25] * *cnV[25];
- m_A21 += gt[26];
- m_A21 += gt[27];
- m_A21 += gt[28];
- m_A22 += go[26];
- double RHS9 = Idr[26];
- RHS9 += Idr[27];
- RHS9 += Idr[28];
- RHS9 -= go[27] * *cnV[27];
- RHS9 -= go[28] * *cnV[28];
- m_A23 += gt[29];
- m_A23 += gt[30];
- m_A23 += gt[31];
- m_A24 += go[29];
- double RHS10 = Idr[29];
- RHS10 += Idr[30];
- RHS10 += Idr[31];
- RHS10 -= go[30] * *cnV[30];
- RHS10 -= go[31] * *cnV[31];
- m_A25 += gt[32];
- m_A25 += gt[33];
- m_A25 += gt[34];
- m_A26 += go[32];
- double RHS11 = Idr[32];
- RHS11 += Idr[33];
- RHS11 += Idr[34];
- RHS11 -= go[33] * *cnV[33];
- RHS11 -= go[34] * *cnV[34];
- m_A27 += gt[35];
- m_A27 += gt[36];
- m_A27 += gt[37];
- m_A28 += go[35];
- double RHS12 = Idr[35];
- RHS12 += Idr[36];
- RHS12 += Idr[37];
- RHS12 -= go[36] * *cnV[36];
- RHS12 -= go[37] * *cnV[37];
- m_A29 += gt[38];
- m_A29 += gt[39];
- m_A30 += go[38];
- double RHS13 = Idr[38];
- RHS13 += Idr[39];
- RHS13 -= go[39] * *cnV[39];
- m_A31 += gt[40];
- m_A31 += gt[41];
- m_A31 += gt[42];
- m_A32 += go[40];
- double RHS14 = Idr[40];
- RHS14 += Idr[41];
- RHS14 += Idr[42];
- RHS14 -= go[41] * *cnV[41];
- RHS14 -= go[42] * *cnV[42];
- m_A33 += gt[43];
- m_A33 += gt[44];
- m_A34 += go[43];
- double RHS15 = Idr[43];
- RHS15 += Idr[44];
- RHS15 -= go[44] * *cnV[44];
- m_A35 += gt[45];
- m_A35 += gt[46];
- m_A36 += go[45];
- double RHS16 = Idr[45];
- RHS16 += Idr[46];
- RHS16 -= go[46] * *cnV[46];
- m_A37 += gt[47];
- m_A37 += gt[48];
- m_A38 += go[47];
- double RHS17 = Idr[47];
- RHS17 += Idr[48];
- RHS17 -= go[48] * *cnV[48];
- m_A39 += gt[49];
- m_A39 += gt[50];
- m_A40 += go[49];
- double RHS18 = Idr[49];
- RHS18 += Idr[50];
- RHS18 -= go[50] * *cnV[50];
- m_A41 += gt[51];
- m_A41 += gt[52];
- m_A42 += go[51];
- double RHS19 = Idr[51];
- RHS19 += Idr[52];
- RHS19 -= go[52] * *cnV[52];
- m_A43 += gt[53];
- m_A43 += gt[54];
- m_A44 += go[53];
- double RHS20 = Idr[53];
- RHS20 += Idr[54];
- RHS20 -= go[54] * *cnV[54];
- m_A45 += gt[55];
- m_A45 += gt[56];
- m_A45 += gt[57];
- m_A45 += gt[58];
- m_A45 += gt[59];
- m_A46 += go[55];
- m_A48 += go[56];
- m_A47 += go[57];
- double RHS21 = Idr[55];
- RHS21 += Idr[56];
- RHS21 += Idr[57];
- RHS21 += Idr[58];
- RHS21 += Idr[59];
- RHS21 -= go[58] * *cnV[58];
- RHS21 -= go[59] * *cnV[59];
- m_A49 += gt[60];
- m_A49 += gt[61];
- m_A49 += gt[62];
- m_A50 += go[60];
- double RHS22 = Idr[60];
- RHS22 += Idr[61];
- RHS22 += Idr[62];
- RHS22 -= go[61] * *cnV[61];
- RHS22 -= go[62] * *cnV[62];
- m_A51 += gt[63];
- m_A51 += gt[64];
- m_A52 += go[63];
- double RHS23 = Idr[63];
- RHS23 += Idr[64];
- RHS23 -= go[64] * *cnV[64];
- m_A55 += gt[65];
- m_A55 += gt[66];
- m_A55 += gt[67];
- m_A55 += gt[68];
- m_A54 += go[65];
- m_A53 += go[66];
- double RHS24 = Idr[65];
- RHS24 += Idr[66];
- RHS24 += Idr[67];
- RHS24 += Idr[68];
- RHS24 -= go[67] * *cnV[67];
- RHS24 -= go[68] * *cnV[68];
- m_A57 += gt[69];
- m_A57 += gt[70];
- m_A58 += go[69];
- double RHS25 = Idr[69];
- RHS25 += Idr[70];
- RHS25 -= go[70] * *cnV[70];
- m_A59 += gt[71];
- m_A59 += gt[72];
- m_A59 += gt[73];
- m_A60 += go[71];
- double RHS26 = Idr[71];
- RHS26 += Idr[72];
- RHS26 += Idr[73];
- RHS26 -= go[72] * *cnV[72];
- RHS26 -= go[73] * *cnV[73];
- m_A61 += gt[74];
- m_A61 += gt[75];
- m_A61 += gt[76];
- m_A62 += go[74];
- double RHS27 = Idr[74];
- RHS27 += Idr[75];
- RHS27 += Idr[76];
- RHS27 -= go[75] * *cnV[75];
- RHS27 -= go[76] * *cnV[76];
- m_A63 += gt[77];
- m_A63 += gt[78];
- m_A63 += gt[79];
- m_A64 += go[77];
- double RHS28 = Idr[77];
- RHS28 += Idr[78];
- RHS28 += Idr[79];
- RHS28 -= go[78] * *cnV[78];
- RHS28 -= go[79] * *cnV[79];
- m_A65 += gt[80];
- m_A65 += gt[81];
- m_A67 += go[80];
- m_A66 += go[81];
- double RHS29 = Idr[80];
- RHS29 += Idr[81];
- m_A68 += gt[82];
- m_A68 += gt[83];
- m_A70 += go[82];
- m_A69 += go[83];
- double RHS30 = Idr[82];
- RHS30 += Idr[83];
- m_A71 += gt[84];
- m_A71 += gt[85];
- m_A73 += go[84];
- m_A72 += go[85];
- double RHS31 = Idr[84];
- RHS31 += Idr[85];
- m_A77 += gt[86];
- m_A77 += gt[87];
- m_A77 += gt[88];
- m_A77 += gt[89];
- m_A77 += gt[90];
- m_A77 += gt[91];
- m_A77 += gt[92];
- m_A74 += go[86];
- m_A75 += go[87];
- m_A75 += go[88];
- m_A78 += go[89];
- m_A78 += go[90];
- double RHS32 = Idr[86];
- RHS32 += Idr[87];
- RHS32 += Idr[88];
- RHS32 += Idr[89];
- RHS32 += Idr[90];
- RHS32 += Idr[91];
- RHS32 += Idr[92];
- RHS32 -= go[91] * *cnV[91];
- RHS32 -= go[92] * *cnV[92];
- m_A83 += gt[93];
- m_A83 += gt[94];
- m_A83 += gt[95];
- m_A83 += gt[96];
- m_A83 += gt[97];
- m_A83 += gt[98];
- m_A83 += gt[99];
- m_A83 += gt[100];
- m_A83 += gt[101];
- m_A85 += go[93];
- m_A85 += go[94];
- m_A84 += go[95];
- m_A84 += go[96];
- m_A82 += go[97];
- m_A81 += go[98];
- m_A80 += go[99];
- m_A79 += go[100];
- double RHS33 = Idr[93];
- RHS33 += Idr[94];
- RHS33 += Idr[95];
- RHS33 += Idr[96];
- RHS33 += Idr[97];
- RHS33 += Idr[98];
- RHS33 += Idr[99];
- RHS33 += Idr[100];
- RHS33 += Idr[101];
- RHS33 -= go[101] * *cnV[101];
- m_A92 += gt[102];
- m_A92 += gt[103];
- m_A92 += gt[104];
- m_A92 += gt[105];
- m_A92 += gt[106];
- m_A92 += gt[107];
- m_A91 += go[102];
- m_A90 += go[103];
- m_A89 += go[104];
- m_A88 += go[105];
- m_A87 += go[106];
- m_A86 += go[107];
- double RHS34 = Idr[102];
- RHS34 += Idr[103];
- RHS34 += Idr[104];
- RHS34 += Idr[105];
- RHS34 += Idr[106];
- RHS34 += Idr[107];
- m_A95 += gt[108];
- m_A95 += gt[109];
- m_A95 += gt[110];
- m_A95 += gt[111];
- m_A95 += gt[112];
- m_A95 += gt[113];
- m_A95 += gt[114];
- m_A97 += go[108];
- m_A94 += go[109];
- double RHS35 = Idr[108];
- RHS35 += Idr[109];
- RHS35 += Idr[110];
- RHS35 += Idr[111];
- RHS35 += Idr[112];
- RHS35 += Idr[113];
- RHS35 += Idr[114];
- RHS35 -= go[110] * *cnV[110];
- RHS35 -= go[111] * *cnV[111];
- RHS35 -= go[112] * *cnV[112];
- RHS35 -= go[113] * *cnV[113];
- RHS35 -= go[114] * *cnV[114];
- m_A99 += gt[115];
- m_A99 += gt[116];
- m_A98 += go[115];
- m_A100 += go[116];
- double RHS36 = Idr[115];
- RHS36 += Idr[116];
- m_A107 += gt[117];
- m_A107 += gt[118];
- m_A107 += gt[119];
- m_A107 += gt[120];
- m_A107 += gt[121];
- m_A107 += gt[122];
- m_A106 += go[117];
- m_A105 += go[118];
- m_A104 += go[119];
- m_A103 += go[120];
- m_A102 += go[121];
- m_A101 += go[122];
- double RHS37 = Idr[117];
- RHS37 += Idr[118];
- RHS37 += Idr[119];
- RHS37 += Idr[120];
- RHS37 += Idr[121];
- RHS37 += Idr[122];
- m_A112 += gt[123];
- m_A112 += gt[124];
- m_A112 += gt[125];
- m_A112 += gt[126];
- m_A112 += gt[127];
- m_A111 += go[123];
- m_A110 += go[124];
- m_A109 += go[125];
- double RHS38 = Idr[123];
- RHS38 += Idr[124];
- RHS38 += Idr[125];
- RHS38 += Idr[126];
- RHS38 += Idr[127];
- RHS38 -= go[126] * *cnV[126];
- RHS38 -= go[127] * *cnV[127];
- m_A118 += gt[128];
- m_A118 += gt[129];
- m_A118 += gt[130];
- m_A118 += gt[131];
- m_A118 += gt[132];
- m_A118 += gt[133];
- m_A118 += gt[134];
- m_A118 += gt[135];
- m_A118 += gt[136];
- m_A119 += go[128];
- m_A115 += go[129];
- m_A114 += go[130];
- m_A116 += go[131];
- m_A116 += go[132];
- m_A117 += go[133];
- m_A117 += go[134];
- double RHS39 = Idr[128];
- RHS39 += Idr[129];
- RHS39 += Idr[130];
- RHS39 += Idr[131];
- RHS39 += Idr[132];
- RHS39 += Idr[133];
- RHS39 += Idr[134];
- RHS39 += Idr[135];
- RHS39 += Idr[136];
- RHS39 -= go[135] * *cnV[135];
- RHS39 -= go[136] * *cnV[136];
- m_A121 += gt[137];
- m_A121 += gt[138];
- m_A120 += go[137];
- m_A122 += go[138];
- double RHS40 = Idr[137];
- RHS40 += Idr[138];
- m_A127 += gt[139];
- m_A127 += gt[140];
- m_A127 += gt[141];
- m_A127 += gt[142];
- m_A127 += gt[143];
- m_A126 += go[139];
- m_A125 += go[140];
- m_A124 += go[141];
- m_A123 += go[142];
- m_A128 += go[143];
- double RHS41 = Idr[139];
- RHS41 += Idr[140];
- RHS41 += Idr[141];
- RHS41 += Idr[142];
- RHS41 += Idr[143];
- m_A134 += gt[144];
- m_A134 += gt[145];
- m_A134 += gt[146];
- m_A134 += gt[147];
- m_A134 += gt[148];
- m_A134 += gt[149];
- m_A130 += go[144];
- m_A129 += go[145];
- m_A133 += go[146];
- m_A131 += go[147];
- m_A131 += go[148];
- double RHS42 = Idr[144];
- RHS42 += Idr[145];
- RHS42 += Idr[146];
- RHS42 += Idr[147];
- RHS42 += Idr[148];
- RHS42 += Idr[149];
- RHS42 -= go[149] * *cnV[149];
- m_A137 += gt[150];
- m_A137 += gt[151];
- m_A136 += go[150];
- m_A138 += go[151];
- double RHS43 = Idr[150];
- RHS43 += Idr[151];
- m_A153 += gt[152];
- m_A153 += gt[153];
- m_A153 += gt[154];
- m_A153 += gt[155];
- m_A153 += gt[156];
- m_A153 += gt[157];
- m_A153 += gt[158];
- m_A153 += gt[159];
- m_A152 += go[152];
- m_A140 += go[153];
- m_A141 += go[154];
- m_A142 += go[155];
- m_A149 += go[156];
- m_A145 += go[157];
- m_A150 += go[158];
- m_A139 += go[159];
- double RHS44 = Idr[152];
- RHS44 += Idr[153];
- RHS44 += Idr[154];
- RHS44 += Idr[155];
- RHS44 += Idr[156];
- RHS44 += Idr[157];
- RHS44 += Idr[158];
- RHS44 += Idr[159];
- const double f0 = 1.0 / m_A0;
- const double f0_33 = -f0 * m_A79;
- m_A83 += m_A1 * f0_33;
- RHS33 += f0_33 * RHS0;
- const double f1 = 1.0 / m_A2;
- const double f1_33 = -f1 * m_A80;
- m_A83 += m_A3 * f1_33;
- RHS33 += f1_33 * RHS1;
- const double f2 = 1.0 / m_A4;
- const double f2_33 = -f2 * m_A81;
- m_A83 += m_A5 * f2_33;
- RHS33 += f2_33 * RHS2;
- const double f3 = 1.0 / m_A6;
- const double f3_24 = -f3 * m_A53;
- m_A55 += m_A7 * f3_24;
- m_A56 += m_A8 * f3_24;
- RHS24 += f3_24 * RHS3;
- const double f3_32 = -f3 * m_A74;
- m_A76 += m_A7 * f3_32;
- m_A77 += m_A8 * f3_32;
- RHS32 += f3_32 * RHS3;
- const double f4 = 1.0 / m_A9;
- const double f4_24 = -f4 * m_A54;
- m_A55 += m_A10 * f4_24;
- RHS24 += f4_24 * RHS4;
- const double f5 = 1.0 / m_A11;
- const double f5_32 = -f5 * m_A75;
- m_A77 += m_A12 * f5_32;
- m_A78 += m_A13 * f5_32;
- RHS32 += f5_32 * RHS5;
- const double f5_39 = -f5 * m_A114;
- m_A116 += m_A12 * f5_39;
- m_A118 += m_A13 * f5_39;
- RHS39 += f5_39 * RHS5;
- const double f6 = 1.0 / m_A14;
- const double f6_33 = -f6 * m_A82;
- m_A83 += m_A15 * f6_33;
- RHS33 += f6_33 * RHS6;
- const double f7 = 1.0 / m_A16;
- const double f7_35 = -f7 * m_A94;
- m_A96 += m_A17 * f7_35;
- m_A97 += m_A18 * f7_35;
- RHS35 += f7_35 * RHS7;
- const double f7_39 = -f7 * m_A115;
- m_A118 += m_A17 * f7_39;
- m_A119 += m_A18 * f7_39;
- RHS39 += f7_39 * RHS7;
- const double f7_42 = -f7 * m_A129;
- m_A133 += m_A17 * f7_42;
- m_A134 += m_A18 * f7_42;
- RHS42 += f7_42 * RHS7;
- const double f8 = 1.0 / m_A19;
- const double f8_37 = -f8 * m_A101;
- m_A107 += m_A20 * f8_37;
- RHS37 += f8_37 * RHS8;
- const double f9 = 1.0 / m_A21;
- const double f9_37 = -f9 * m_A102;
- m_A107 += m_A22 * f9_37;
- RHS37 += f9_37 * RHS9;
- const double f10 = 1.0 / m_A23;
- const double f10_37 = -f10 * m_A103;
- m_A107 += m_A24 * f10_37;
- RHS37 += f10_37 * RHS10;
- const double f11 = 1.0 / m_A25;
- const double f11_37 = -f11 * m_A104;
- m_A107 += m_A26 * f11_37;
- RHS37 += f11_37 * RHS11;
- const double f12 = 1.0 / m_A27;
- const double f12_37 = -f12 * m_A105;
- m_A107 += m_A28 * f12_37;
- RHS37 += f12_37 * RHS12;
- const double f13 = 1.0 / m_A29;
- const double f13_38 = -f13 * m_A109;
- m_A112 += m_A30 * f13_38;
- RHS38 += f13_38 * RHS13;
- const double f14 = 1.0 / m_A31;
- const double f14_34 = -f14 * m_A86;
- m_A92 += m_A32 * f14_34;
- RHS34 += f14_34 * RHS14;
- const double f15 = 1.0 / m_A33;
- const double f15_41 = -f15 * m_A123;
- m_A127 += m_A34 * f15_41;
- RHS41 += f15_41 * RHS15;
- const double f16 = 1.0 / m_A35;
- const double f16_36 = -f16 * m_A98;
- m_A99 += m_A36 * f16_36;
- RHS36 += f16_36 * RHS16;
- const double f17 = 1.0 / m_A37;
- const double f17_40 = -f17 * m_A120;
- m_A121 += m_A38 * f17_40;
- RHS40 += f17_40 * RHS17;
- const double f18 = 1.0 / m_A39;
- const double f18_41 = -f18 * m_A124;
- m_A127 += m_A40 * f18_41;
- RHS41 += f18_41 * RHS18;
- const double f19 = 1.0 / m_A41;
- const double f19_41 = -f19 * m_A125;
- m_A127 += m_A42 * f19_41;
- RHS41 += f19_41 * RHS19;
- const double f20 = 1.0 / m_A43;
- const double f20_41 = -f20 * m_A126;
- m_A127 += m_A44 * f20_41;
- RHS41 += f20_41 * RHS20;
- const double f21 = 1.0 / m_A45;
- const double f21_42 = -f21 * m_A130;
- m_A132 += m_A46 * f21_42;
- m_A134 += m_A47 * f21_42;
- m_A135 += m_A48 * f21_42;
- RHS42 += f21_42 * RHS21;
- const double f21_44 = -f21 * m_A139;
- m_A144 += m_A46 * f21_44;
- m_A151 += m_A47 * f21_44;
- m_A153 += m_A48 * f21_44;
- RHS44 += f21_44 * RHS21;
- const double f22 = 1.0 / m_A49;
- const double f22_34 = -f22 * m_A87;
- m_A92 += m_A50 * f22_34;
- RHS34 += f22_34 * RHS22;
- const double f23 = 1.0 / m_A51;
- const double f23_43 = -f23 * m_A136;
- m_A137 += m_A52 * f23_43;
- RHS43 += f23_43 * RHS23;
- const double f24 = 1.0 / m_A55;
- const double f24_32 = -f24 * m_A76;
- m_A77 += m_A56 * f24_32;
- RHS32 += f24_32 * RHS24;
- const double f25 = 1.0 / m_A57;
- const double f25_38 = -f25 * m_A110;
- m_A112 += m_A58 * f25_38;
- RHS38 += f25_38 * RHS25;
- const double f26 = 1.0 / m_A59;
- const double f26_34 = -f26 * m_A88;
- m_A92 += m_A60 * f26_34;
- RHS34 += f26_34 * RHS26;
- const double f27 = 1.0 / m_A61;
- const double f27_34 = -f27 * m_A89;
- m_A92 += m_A62 * f27_34;
- RHS34 += f27_34 * RHS27;
- const double f28 = 1.0 / m_A63;
- const double f28_34 = -f28 * m_A90;
- m_A92 += m_A64 * f28_34;
- RHS34 += f28_34 * RHS28;
- const double f29 = 1.0 / m_A65;
- const double f29_34 = -f29 * m_A91;
- m_A92 += m_A66 * f29_34;
- m_A93 += m_A67 * f29_34;
- RHS34 += f29_34 * RHS29;
- const double f29_44 = -f29 * m_A140;
- m_A143 += m_A66 * f29_44;
- m_A153 += m_A67 * f29_44;
- RHS44 += f29_44 * RHS29;
- const double f30 = 1.0 / m_A68;
- const double f30_37 = -f30 * m_A106;
- m_A107 += m_A69 * f30_37;
- m_A108 += m_A70 * f30_37;
- RHS37 += f30_37 * RHS30;
- const double f30_44 = -f30 * m_A141;
- m_A146 += m_A69 * f30_44;
- m_A153 += m_A70 * f30_44;
- RHS44 += f30_44 * RHS30;
- const double f31 = 1.0 / m_A71;
- const double f31_38 = -f31 * m_A111;
- m_A112 += m_A72 * f31_38;
- m_A113 += m_A73 * f31_38;
- RHS38 += f31_38 * RHS31;
- const double f31_44 = -f31 * m_A142;
- m_A147 += m_A72 * f31_44;
- m_A153 += m_A73 * f31_44;
- RHS44 += f31_44 * RHS31;
- const double f32 = 1.0 / m_A77;
- const double f32_39 = -f32 * m_A116;
- m_A118 += m_A78 * f32_39;
- RHS39 += f32_39 * RHS32;
- const double f33 = 1.0 / m_A83;
- const double f33_39 = -f33 * m_A117;
- m_A118 += m_A84 * f33_39;
- m_A119 += m_A85 * f33_39;
- RHS39 += f33_39 * RHS33;
- const double f33_42 = -f33 * m_A131;
- m_A133 += m_A84 * f33_42;
- m_A134 += m_A85 * f33_42;
- RHS42 += f33_42 * RHS33;
- const double f34 = 1.0 / m_A92;
- const double f34_44 = -f34 * m_A143;
- m_A153 += m_A93 * f34_44;
- RHS44 += f34_44 * RHS34;
- const double f35 = 1.0 / m_A95;
- const double f35_42 = -f35 * m_A132;
- m_A133 += m_A96 * f35_42;
- m_A134 += m_A97 * f35_42;
- RHS42 += f35_42 * RHS35;
- const double f35_44 = -f35 * m_A144;
- m_A148 += m_A96 * f35_44;
- m_A151 += m_A97 * f35_44;
- RHS44 += f35_44 * RHS35;
- const double f36 = 1.0 / m_A99;
- const double f36_44 = -f36 * m_A145;
- m_A153 += m_A100 * f36_44;
- RHS44 += f36_44 * RHS36;
- const double f37 = 1.0 / m_A107;
- const double f37_44 = -f37 * m_A146;
- m_A153 += m_A108 * f37_44;
- RHS44 += f37_44 * RHS37;
- const double f38 = 1.0 / m_A112;
- const double f38_44 = -f38 * m_A147;
- m_A153 += m_A113 * f38_44;
- RHS44 += f38_44 * RHS38;
- const double f39 = 1.0 / m_A118;
- const double f39_42 = -f39 * m_A133;
- m_A134 += m_A119 * f39_42;
- RHS42 += f39_42 * RHS39;
- const double f39_44 = -f39 * m_A148;
- m_A151 += m_A119 * f39_44;
- RHS44 += f39_44 * RHS39;
- const double f40 = 1.0 / m_A121;
- const double f40_44 = -f40 * m_A149;
- m_A153 += m_A122 * f40_44;
- RHS44 += f40_44 * RHS40;
- const double f41 = 1.0 / m_A127;
- const double f41_44 = -f41 * m_A150;
- m_A153 += m_A128 * f41_44;
- RHS44 += f41_44 * RHS41;
- const double f42 = 1.0 / m_A134;
- const double f42_44 = -f42 * m_A151;
- m_A153 += m_A135 * f42_44;
- RHS44 += f42_44 * RHS42;
- const double f43 = 1.0 / m_A137;
- const double f43_44 = -f43 * m_A152;
- m_A153 += m_A138 * f43_44;
- RHS44 += f43_44 * RHS43;
- V[44] = RHS44 / m_A153;
- double tmp43 = 0.0;
- tmp43 += m_A138 * V[44];
- V[43] = (RHS43 - tmp43) / m_A137;
- double tmp42 = 0.0;
- tmp42 += m_A135 * V[44];
- V[42] = (RHS42 - tmp42) / m_A134;
- double tmp41 = 0.0;
- tmp41 += m_A128 * V[44];
- V[41] = (RHS41 - tmp41) / m_A127;
- double tmp40 = 0.0;
- tmp40 += m_A122 * V[44];
- V[40] = (RHS40 - tmp40) / m_A121;
- double tmp39 = 0.0;
- tmp39 += m_A119 * V[42];
- V[39] = (RHS39 - tmp39) / m_A118;
- double tmp38 = 0.0;
- tmp38 += m_A113 * V[44];
- V[38] = (RHS38 - tmp38) / m_A112;
- double tmp37 = 0.0;
- tmp37 += m_A108 * V[44];
- V[37] = (RHS37 - tmp37) / m_A107;
- double tmp36 = 0.0;
- tmp36 += m_A100 * V[44];
- V[36] = (RHS36 - tmp36) / m_A99;
- double tmp35 = 0.0;
- tmp35 += m_A96 * V[39];
- tmp35 += m_A97 * V[42];
- V[35] = (RHS35 - tmp35) / m_A95;
- double tmp34 = 0.0;
- tmp34 += m_A93 * V[44];
- V[34] = (RHS34 - tmp34) / m_A92;
- double tmp33 = 0.0;
- tmp33 += m_A84 * V[39];
- tmp33 += m_A85 * V[42];
- V[33] = (RHS33 - tmp33) / m_A83;
- double tmp32 = 0.0;
- tmp32 += m_A78 * V[39];
- V[32] = (RHS32 - tmp32) / m_A77;
- double tmp31 = 0.0;
- tmp31 += m_A72 * V[38];
- tmp31 += m_A73 * V[44];
- V[31] = (RHS31 - tmp31) / m_A71;
- double tmp30 = 0.0;
- tmp30 += m_A69 * V[37];
- tmp30 += m_A70 * V[44];
- V[30] = (RHS30 - tmp30) / m_A68;
- double tmp29 = 0.0;
- tmp29 += m_A66 * V[34];
- tmp29 += m_A67 * V[44];
- V[29] = (RHS29 - tmp29) / m_A65;
- double tmp28 = 0.0;
- tmp28 += m_A64 * V[34];
- V[28] = (RHS28 - tmp28) / m_A63;
- double tmp27 = 0.0;
- tmp27 += m_A62 * V[34];
- V[27] = (RHS27 - tmp27) / m_A61;
- double tmp26 = 0.0;
- tmp26 += m_A60 * V[34];
- V[26] = (RHS26 - tmp26) / m_A59;
- double tmp25 = 0.0;
- tmp25 += m_A58 * V[38];
- V[25] = (RHS25 - tmp25) / m_A57;
- double tmp24 = 0.0;
- tmp24 += m_A56 * V[32];
- V[24] = (RHS24 - tmp24) / m_A55;
- double tmp23 = 0.0;
- tmp23 += m_A52 * V[43];
- V[23] = (RHS23 - tmp23) / m_A51;
- double tmp22 = 0.0;
- tmp22 += m_A50 * V[34];
- V[22] = (RHS22 - tmp22) / m_A49;
- double tmp21 = 0.0;
- tmp21 += m_A46 * V[35];
- tmp21 += m_A47 * V[42];
- tmp21 += m_A48 * V[44];
- V[21] = (RHS21 - tmp21) / m_A45;
- double tmp20 = 0.0;
- tmp20 += m_A44 * V[41];
- V[20] = (RHS20 - tmp20) / m_A43;
- double tmp19 = 0.0;
- tmp19 += m_A42 * V[41];
- V[19] = (RHS19 - tmp19) / m_A41;
- double tmp18 = 0.0;
- tmp18 += m_A40 * V[41];
- V[18] = (RHS18 - tmp18) / m_A39;
- double tmp17 = 0.0;
- tmp17 += m_A38 * V[40];
- V[17] = (RHS17 - tmp17) / m_A37;
- double tmp16 = 0.0;
- tmp16 += m_A36 * V[36];
- V[16] = (RHS16 - tmp16) / m_A35;
- double tmp15 = 0.0;
- tmp15 += m_A34 * V[41];
- V[15] = (RHS15 - tmp15) / m_A33;
- double tmp14 = 0.0;
- tmp14 += m_A32 * V[34];
- V[14] = (RHS14 - tmp14) / m_A31;
- double tmp13 = 0.0;
- tmp13 += m_A30 * V[38];
- V[13] = (RHS13 - tmp13) / m_A29;
- double tmp12 = 0.0;
- tmp12 += m_A28 * V[37];
- V[12] = (RHS12 - tmp12) / m_A27;
- double tmp11 = 0.0;
- tmp11 += m_A26 * V[37];
- V[11] = (RHS11 - tmp11) / m_A25;
- double tmp10 = 0.0;
- tmp10 += m_A24 * V[37];
- V[10] = (RHS10 - tmp10) / m_A23;
- double tmp9 = 0.0;
- tmp9 += m_A22 * V[37];
- V[9] = (RHS9 - tmp9) / m_A21;
- double tmp8 = 0.0;
- tmp8 += m_A20 * V[37];
- V[8] = (RHS8 - tmp8) / m_A19;
- double tmp7 = 0.0;
- tmp7 += m_A17 * V[39];
- tmp7 += m_A18 * V[42];
- V[7] = (RHS7 - tmp7) / m_A16;
- double tmp6 = 0.0;
- tmp6 += m_A15 * V[33];
- V[6] = (RHS6 - tmp6) / m_A14;
- double tmp5 = 0.0;
- tmp5 += m_A12 * V[32];
- tmp5 += m_A13 * V[39];
- V[5] = (RHS5 - tmp5) / m_A11;
- double tmp4 = 0.0;
- tmp4 += m_A10 * V[24];
- V[4] = (RHS4 - tmp4) / m_A9;
- double tmp3 = 0.0;
- tmp3 += m_A7 * V[24];
- tmp3 += m_A8 * V[32];
- V[3] = (RHS3 - tmp3) / m_A6;
- double tmp2 = 0.0;
- tmp2 += m_A5 * V[33];
- V[2] = (RHS2 - tmp2) / m_A4;
- double tmp1 = 0.0;
- tmp1 += m_A3 * V[33];
- V[1] = (RHS1 - tmp1) / m_A2;
- double tmp0 = 0.0;
- tmp0 += m_A1 * V[33];
- V[0] = (RHS0 - tmp0) / m_A0;
-}
-
// sspeedr
static void nl_gcr_3e833834e5ce5aee_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
@@ -20697,6 +20417,221 @@ static void nl_gcr_6041272373b8603c_178_double_double(double * __restrict V, con
V[0] = (RHS0 - tmp0) / m_A0;
}
+// astrob
+static void nl_gcr_62464664b1c5aa1e_27_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
+
+{
+
+ plib::unused_var(cnV);
+ double m_A0(0.0);
+ double m_A1(0.0);
+ double m_A2(0.0);
+ double m_A3(0.0);
+ double m_A4(0.0);
+ double m_A5(0.0);
+ double m_A6(0.0);
+ double m_A7(0.0);
+ double m_A8(0.0);
+ double m_A9(0.0);
+ double m_A10(0.0);
+ double m_A11(0.0);
+ double m_A12(0.0);
+ double m_A13(0.0);
+ double m_A14(0.0);
+ double m_A15(0.0);
+ double m_A16(0.0);
+ double m_A17(0.0);
+ double m_A18(0.0);
+ double m_A19(0.0);
+ double m_A20(0.0);
+ double m_A21(0.0);
+ double m_A22(0.0);
+ double m_A23(0.0);
+ double m_A24(0.0);
+ double m_A25(0.0);
+ double m_A26(0.0);
+ m_A0 += gt[0];
+ m_A0 += gt[1];
+ m_A0 += gt[2];
+ m_A0 += gt[3];
+ m_A0 += gt[4];
+ m_A0 += gt[5];
+ m_A0 += gt[6];
+ m_A1 += go[0];
+ double RHS0 = Idr[0];
+ RHS0 += Idr[1];
+ RHS0 += Idr[2];
+ RHS0 += Idr[3];
+ RHS0 += Idr[4];
+ RHS0 += Idr[5];
+ RHS0 += Idr[6];
+ RHS0 -= go[1] * *cnV[1];
+ RHS0 -= go[2] * *cnV[2];
+ RHS0 -= go[3] * *cnV[3];
+ RHS0 -= go[4] * *cnV[4];
+ RHS0 -= go[5] * *cnV[5];
+ RHS0 -= go[6] * *cnV[6];
+ m_A2 += gt[7];
+ m_A2 += gt[8];
+ m_A2 += gt[9];
+ m_A4 += go[7];
+ m_A3 += go[8];
+ double RHS1 = Idr[7];
+ RHS1 += Idr[8];
+ RHS1 += Idr[9];
+ RHS1 -= go[9] * *cnV[9];
+ m_A5 += gt[10];
+ m_A5 += gt[11];
+ m_A5 += gt[12];
+ m_A5 += gt[13];
+ m_A5 += gt[14];
+ m_A5 += gt[15];
+ m_A5 += gt[16];
+ m_A6 += go[10];
+ double RHS2 = Idr[10];
+ RHS2 += Idr[11];
+ RHS2 += Idr[12];
+ RHS2 += Idr[13];
+ RHS2 += Idr[14];
+ RHS2 += Idr[15];
+ RHS2 += Idr[16];
+ RHS2 -= go[11] * *cnV[11];
+ RHS2 -= go[12] * *cnV[12];
+ RHS2 -= go[13] * *cnV[13];
+ RHS2 -= go[14] * *cnV[14];
+ RHS2 -= go[15] * *cnV[15];
+ RHS2 -= go[16] * *cnV[16];
+ m_A7 += gt[17];
+ m_A7 += gt[18];
+ m_A7 += gt[19];
+ m_A7 += gt[20];
+ m_A9 += go[17];
+ m_A10 += go[18];
+ m_A8 += go[19];
+ double RHS3 = Idr[17];
+ RHS3 += Idr[18];
+ RHS3 += Idr[19];
+ RHS3 += Idr[20];
+ RHS3 -= go[20] * *cnV[20];
+ m_A14 += gt[21];
+ m_A14 += gt[22];
+ m_A14 += gt[23];
+ m_A14 += gt[24];
+ m_A14 += gt[25];
+ m_A11 += go[21];
+ m_A13 += go[22];
+ m_A12 += go[23];
+ double RHS4 = Idr[21];
+ RHS4 += Idr[22];
+ RHS4 += Idr[23];
+ RHS4 += Idr[24];
+ RHS4 += Idr[25];
+ RHS4 -= go[24] * *cnV[24];
+ RHS4 -= go[25] * *cnV[25];
+ m_A19 += gt[26];
+ m_A19 += gt[27];
+ m_A19 += gt[28];
+ m_A20 += go[26];
+ m_A17 += go[27];
+ double RHS5 = Idr[26];
+ RHS5 += Idr[27];
+ RHS5 += Idr[28];
+ RHS5 -= go[28] * *cnV[28];
+ m_A26 += gt[29];
+ m_A26 += gt[30];
+ m_A26 += gt[31];
+ m_A26 += gt[32];
+ m_A26 += gt[33];
+ m_A26 += gt[34];
+ m_A26 += gt[35];
+ m_A26 += gt[36];
+ m_A22 += go[29];
+ m_A25 += go[30];
+ m_A23 += go[31];
+ m_A21 += go[32];
+ double RHS6 = Idr[29];
+ RHS6 += Idr[30];
+ RHS6 += Idr[31];
+ RHS6 += Idr[32];
+ RHS6 += Idr[33];
+ RHS6 += Idr[34];
+ RHS6 += Idr[35];
+ RHS6 += Idr[36];
+ RHS6 -= go[33] * *cnV[33];
+ RHS6 -= go[34] * *cnV[34];
+ RHS6 -= go[35] * *cnV[35];
+ RHS6 -= go[36] * *cnV[36];
+ const double f0 = 1.0 / m_A0;
+ const double f0_4 = -f0 * m_A11;
+ m_A12 += m_A1 * f0_4;
+ RHS4 += f0_4 * RHS0;
+ const double f1 = 1.0 / m_A2;
+ const double f1_4 = -f1 * m_A12;
+ m_A14 += m_A3 * f1_4;
+ m_A16 += m_A4 * f1_4;
+ RHS4 += f1_4 * RHS1;
+ const double f1_6 = -f1 * m_A21;
+ m_A24 += m_A3 * f1_6;
+ m_A26 += m_A4 * f1_6;
+ RHS6 += f1_6 * RHS1;
+ const double f2 = 1.0 / m_A5;
+ const double f2_6 = -f2 * m_A22;
+ m_A25 += m_A6 * f2_6;
+ RHS6 += f2_6 * RHS2;
+ const double f3 = 1.0 / m_A7;
+ const double f3_4 = -f3 * m_A13;
+ m_A14 += m_A8 * f3_4;
+ m_A15 += m_A9 * f3_4;
+ m_A16 += m_A10 * f3_4;
+ RHS4 += f3_4 * RHS3;
+ const double f3_5 = -f3 * m_A17;
+ m_A18 += m_A8 * f3_5;
+ m_A19 += m_A9 * f3_5;
+ m_A20 += m_A10 * f3_5;
+ RHS5 += f3_5 * RHS3;
+ const double f3_6 = -f3 * m_A23;
+ m_A24 += m_A8 * f3_6;
+ m_A25 += m_A9 * f3_6;
+ m_A26 += m_A10 * f3_6;
+ RHS6 += f3_6 * RHS3;
+ const double f4 = 1.0 / m_A14;
+ const double f4_5 = -f4 * m_A18;
+ m_A19 += m_A15 * f4_5;
+ m_A20 += m_A16 * f4_5;
+ RHS5 += f4_5 * RHS4;
+ const double f4_6 = -f4 * m_A24;
+ m_A25 += m_A15 * f4_6;
+ m_A26 += m_A16 * f4_6;
+ RHS6 += f4_6 * RHS4;
+ const double f5 = 1.0 / m_A19;
+ const double f5_6 = -f5 * m_A25;
+ m_A26 += m_A20 * f5_6;
+ RHS6 += f5_6 * RHS5;
+ V[6] = RHS6 / m_A26;
+ double tmp5 = 0.0;
+ tmp5 += m_A20 * V[6];
+ V[5] = (RHS5 - tmp5) / m_A19;
+ double tmp4 = 0.0;
+ tmp4 += m_A15 * V[5];
+ tmp4 += m_A16 * V[6];
+ V[4] = (RHS4 - tmp4) / m_A14;
+ double tmp3 = 0.0;
+ tmp3 += m_A8 * V[4];
+ tmp3 += m_A9 * V[5];
+ tmp3 += m_A10 * V[6];
+ V[3] = (RHS3 - tmp3) / m_A7;
+ double tmp2 = 0.0;
+ tmp2 += m_A6 * V[5];
+ V[2] = (RHS2 - tmp2) / m_A5;
+ double tmp1 = 0.0;
+ tmp1 += m_A3 * V[4];
+ tmp1 += m_A4 * V[6];
+ V[1] = (RHS1 - tmp1) / m_A2;
+ double tmp0 = 0.0;
+ tmp0 += m_A1 * V[1];
+ V[0] = (RHS0 - tmp0) / m_A0;
+}
+
// solarq
static void nl_gcr_62612f71055b8fd4_303_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
@@ -41167,450 +41102,6 @@ static void nl_gcr_a6f74be7f61e6db2_29_double_double(double * __restrict V, cons
V[0] = (RHS0 - tmp0) / m_A0;
}
-// astrob
-static void nl_gcr_a7f11a2ba7b1e0de_61_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
-
-{
-
- plib::unused_var(cnV);
- double m_A0(0.0);
- double m_A1(0.0);
- double m_A2(0.0);
- double m_A3(0.0);
- double m_A4(0.0);
- double m_A5(0.0);
- double m_A6(0.0);
- double m_A7(0.0);
- double m_A8(0.0);
- double m_A9(0.0);
- double m_A10(0.0);
- double m_A11(0.0);
- double m_A12(0.0);
- double m_A13(0.0);
- double m_A14(0.0);
- double m_A15(0.0);
- double m_A16(0.0);
- double m_A17(0.0);
- double m_A18(0.0);
- double m_A19(0.0);
- double m_A20(0.0);
- double m_A21(0.0);
- double m_A22(0.0);
- double m_A23(0.0);
- double m_A24(0.0);
- double m_A25(0.0);
- double m_A26(0.0);
- double m_A27(0.0);
- double m_A28(0.0);
- double m_A29(0.0);
- double m_A30(0.0);
- double m_A31(0.0);
- double m_A32(0.0);
- double m_A33(0.0);
- double m_A34(0.0);
- double m_A35(0.0);
- double m_A36(0.0);
- double m_A37(0.0);
- double m_A38(0.0);
- double m_A39(0.0);
- double m_A40(0.0);
- double m_A41(0.0);
- double m_A42(0.0);
- double m_A43(0.0);
- double m_A44(0.0);
- double m_A45(0.0);
- double m_A46(0.0);
- double m_A47(0.0);
- double m_A48(0.0);
- double m_A49(0.0);
- double m_A50(0.0);
- double m_A51(0.0);
- double m_A52(0.0);
- double m_A53(0.0);
- double m_A54(0.0);
- double m_A55(0.0);
- double m_A56(0.0);
- double m_A57(0.0);
- double m_A58(0.0);
- double m_A59(0.0);
- double m_A60(0.0);
- m_A0 += gt[0];
- m_A0 += gt[1];
- m_A0 += gt[2];
- m_A0 += gt[3];
- m_A0 += gt[4];
- m_A0 += gt[5];
- m_A0 += gt[6];
- m_A1 += go[0];
- double RHS0 = Idr[0];
- RHS0 += Idr[1];
- RHS0 += Idr[2];
- RHS0 += Idr[3];
- RHS0 += Idr[4];
- RHS0 += Idr[5];
- RHS0 += Idr[6];
- RHS0 -= go[1] * *cnV[1];
- RHS0 -= go[2] * *cnV[2];
- RHS0 -= go[3] * *cnV[3];
- RHS0 -= go[4] * *cnV[4];
- RHS0 -= go[5] * *cnV[5];
- RHS0 -= go[6] * *cnV[6];
- m_A2 += gt[7];
- m_A2 += gt[8];
- m_A2 += gt[9];
- m_A4 += go[7];
- m_A3 += go[8];
- double RHS1 = Idr[7];
- RHS1 += Idr[8];
- RHS1 += Idr[9];
- RHS1 -= go[9] * *cnV[9];
- m_A5 += gt[10];
- m_A5 += gt[11];
- m_A5 += gt[12];
- m_A5 += gt[13];
- m_A5 += gt[14];
- m_A5 += gt[15];
- m_A5 += gt[16];
- m_A6 += go[10];
- double RHS2 = Idr[10];
- RHS2 += Idr[11];
- RHS2 += Idr[12];
- RHS2 += Idr[13];
- RHS2 += Idr[14];
- RHS2 += Idr[15];
- RHS2 += Idr[16];
- RHS2 -= go[11] * *cnV[11];
- RHS2 -= go[12] * *cnV[12];
- RHS2 -= go[13] * *cnV[13];
- RHS2 -= go[14] * *cnV[14];
- RHS2 -= go[15] * *cnV[15];
- RHS2 -= go[16] * *cnV[16];
- m_A7 += gt[17];
- m_A7 += gt[18];
- m_A7 += gt[19];
- m_A7 += gt[20];
- m_A8 += go[17];
- m_A10 += go[18];
- m_A9 += go[19];
- double RHS3 = Idr[17];
- RHS3 += Idr[18];
- RHS3 += Idr[19];
- RHS3 += Idr[20];
- RHS3 -= go[20] * *cnV[20];
- m_A13 += gt[21];
- m_A13 += gt[22];
- m_A13 += gt[23];
- m_A11 += go[21];
- double RHS4 = Idr[21];
- RHS4 += Idr[22];
- RHS4 += Idr[23];
- RHS4 -= go[22] * *cnV[22];
- RHS4 -= go[23] * *cnV[23];
- m_A16 += gt[24];
- m_A16 += gt[25];
- m_A16 += gt[26];
- m_A16 += gt[27];
- m_A16 += gt[28];
- m_A16 += gt[29];
- m_A16 += gt[30];
- m_A17 += go[24];
- double RHS5 = Idr[24];
- RHS5 += Idr[25];
- RHS5 += Idr[26];
- RHS5 += Idr[27];
- RHS5 += Idr[28];
- RHS5 += Idr[29];
- RHS5 += Idr[30];
- RHS5 -= go[25] * *cnV[25];
- RHS5 -= go[26] * *cnV[26];
- RHS5 -= go[27] * *cnV[27];
- RHS5 -= go[28] * *cnV[28];
- RHS5 -= go[29] * *cnV[29];
- RHS5 -= go[30] * *cnV[30];
- m_A18 += gt[31];
- m_A18 += gt[32];
- m_A18 += gt[33];
- m_A18 += gt[34];
- m_A18 += gt[35];
- m_A18 += gt[36];
- m_A18 += gt[37];
- m_A19 += go[31];
- double RHS6 = Idr[31];
- RHS6 += Idr[32];
- RHS6 += Idr[33];
- RHS6 += Idr[34];
- RHS6 += Idr[35];
- RHS6 += Idr[36];
- RHS6 += Idr[37];
- RHS6 -= go[32] * *cnV[32];
- RHS6 -= go[33] * *cnV[33];
- RHS6 -= go[34] * *cnV[34];
- RHS6 -= go[35] * *cnV[35];
- RHS6 -= go[36] * *cnV[36];
- RHS6 -= go[37] * *cnV[37];
- m_A20 += gt[38];
- m_A20 += gt[39];
- m_A20 += gt[40];
- m_A22 += go[38];
- m_A21 += go[39];
- double RHS7 = Idr[38];
- RHS7 += Idr[39];
- RHS7 += Idr[40];
- RHS7 -= go[40] * *cnV[40];
- m_A23 += gt[41];
- m_A23 += gt[42];
- m_A23 += gt[43];
- m_A23 += gt[44];
- m_A25 += go[41];
- m_A26 += go[42];
- m_A24 += go[43];
- double RHS8 = Idr[41];
- RHS8 += Idr[42];
- RHS8 += Idr[43];
- RHS8 += Idr[44];
- RHS8 -= go[44] * *cnV[44];
- m_A28 += gt[45];
- m_A28 += gt[46];
- m_A28 += gt[47];
- m_A30 += go[45];
- m_A27 += go[46];
- double RHS9 = Idr[45];
- RHS9 += Idr[46];
- RHS9 += Idr[47];
- RHS9 -= go[47] * *cnV[47];
- m_A37 += gt[48];
- m_A37 += gt[49];
- m_A37 += gt[50];
- m_A37 += gt[51];
- m_A37 += gt[52];
- m_A37 += gt[53];
- m_A37 += gt[54];
- m_A33 += go[48];
- m_A35 += go[49];
- m_A34 += go[50];
- m_A32 += go[51];
- m_A31 += go[52];
- double RHS10 = Idr[48];
- RHS10 += Idr[49];
- RHS10 += Idr[50];
- RHS10 += Idr[51];
- RHS10 += Idr[52];
- RHS10 += Idr[53];
- RHS10 += Idr[54];
- RHS10 -= go[53] * *cnV[53];
- RHS10 -= go[54] * *cnV[54];
- m_A43 += gt[55];
- m_A43 += gt[56];
- m_A43 += gt[57];
- m_A45 += go[55];
- m_A41 += go[56];
- double RHS11 = Idr[55];
- RHS11 += Idr[56];
- RHS11 += Idr[57];
- RHS11 -= go[57] * *cnV[57];
- m_A52 += gt[58];
- m_A52 += gt[59];
- m_A52 += gt[60];
- m_A52 += gt[61];
- m_A52 += gt[62];
- m_A52 += gt[63];
- m_A52 += gt[64];
- m_A47 += go[58];
- m_A49 += go[59];
- m_A48 += go[60];
- m_A46 += go[61];
- double RHS12 = Idr[58];
- RHS12 += Idr[59];
- RHS12 += Idr[60];
- RHS12 += Idr[61];
- RHS12 += Idr[62];
- RHS12 += Idr[63];
- RHS12 += Idr[64];
- RHS12 -= go[62] * *cnV[62];
- RHS12 -= go[63] * *cnV[63];
- RHS12 -= go[64] * *cnV[64];
- m_A60 += gt[65];
- m_A60 += gt[66];
- m_A60 += gt[67];
- m_A60 += gt[68];
- m_A60 += gt[69];
- m_A60 += gt[70];
- m_A60 += gt[71];
- m_A54 += go[65];
- m_A58 += go[66];
- m_A56 += go[67];
- m_A55 += go[68];
- double RHS13 = Idr[65];
- RHS13 += Idr[66];
- RHS13 += Idr[67];
- RHS13 += Idr[68];
- RHS13 += Idr[69];
- RHS13 += Idr[70];
- RHS13 += Idr[71];
- RHS13 -= go[69] * *cnV[69];
- RHS13 -= go[70] * *cnV[70];
- RHS13 -= go[71] * *cnV[71];
- const double f0 = 1.0 / m_A0;
- const double f0_4 = -f0 * m_A11;
- m_A12 += m_A1 * f0_4;
- RHS4 += f0_4 * RHS0;
- const double f1 = 1.0 / m_A2;
- const double f1_4 = -f1 * m_A12;
- m_A14 += m_A3 * f1_4;
- m_A15 += m_A4 * f1_4;
- RHS4 += f1_4 * RHS1;
- const double f1_10 = -f1 * m_A31;
- m_A37 += m_A3 * f1_10;
- m_A39 += m_A4 * f1_10;
- RHS10 += f1_10 * RHS1;
- const double f1_12 = -f1 * m_A46;
- m_A50 += m_A3 * f1_12;
- m_A52 += m_A4 * f1_12;
- RHS12 += f1_12 * RHS1;
- const double f2 = 1.0 / m_A5;
- const double f2_12 = -f2 * m_A47;
- m_A49 += m_A6 * f2_12;
- RHS12 += f2_12 * RHS2;
- const double f3 = 1.0 / m_A7;
- const double f3_9 = -f3 * m_A27;
- m_A28 += m_A8 * f3_9;
- m_A29 += m_A9 * f3_9;
- m_A30 += m_A10 * f3_9;
- RHS9 += f3_9 * RHS3;
- const double f3_10 = -f3 * m_A32;
- m_A36 += m_A8 * f3_10;
- m_A37 += m_A9 * f3_10;
- m_A39 += m_A10 * f3_10;
- RHS10 += f3_10 * RHS3;
- const double f3_12 = -f3 * m_A48;
- m_A49 += m_A8 * f3_12;
- m_A50 += m_A9 * f3_12;
- m_A52 += m_A10 * f3_12;
- RHS12 += f3_12 * RHS3;
- const double f5 = 1.0 / m_A16;
- const double f5_10 = -f5 * m_A33;
- m_A34 += m_A17 * f5_10;
- RHS10 += f5_10 * RHS5;
- const double f6 = 1.0 / m_A18;
- const double f6_13 = -f6 * m_A54;
- m_A58 += m_A19 * f6_13;
- RHS13 += f6_13 * RHS6;
- const double f7 = 1.0 / m_A20;
- const double f7_10 = -f7 * m_A34;
- m_A37 += m_A21 * f7_10;
- m_A40 += m_A22 * f7_10;
- RHS10 += f7_10 * RHS7;
- const double f7_13 = -f7 * m_A55;
- m_A57 += m_A21 * f7_13;
- m_A60 += m_A22 * f7_13;
- RHS13 += f7_13 * RHS7;
- const double f8 = 1.0 / m_A23;
- const double f8_10 = -f8 * m_A35;
- m_A37 += m_A24 * f8_10;
- m_A38 += m_A25 * f8_10;
- m_A40 += m_A26 * f8_10;
- RHS10 += f8_10 * RHS8;
- const double f8_11 = -f8 * m_A41;
- m_A42 += m_A24 * f8_11;
- m_A43 += m_A25 * f8_11;
- m_A45 += m_A26 * f8_11;
- RHS11 += f8_11 * RHS8;
- const double f8_13 = -f8 * m_A56;
- m_A57 += m_A24 * f8_13;
- m_A58 += m_A25 * f8_13;
- m_A60 += m_A26 * f8_13;
- RHS13 += f8_13 * RHS8;
- const double f9 = 1.0 / m_A28;
- const double f9_10 = -f9 * m_A36;
- m_A37 += m_A29 * f9_10;
- m_A39 += m_A30 * f9_10;
- RHS10 += f9_10 * RHS9;
- const double f9_12 = -f9 * m_A49;
- m_A50 += m_A29 * f9_12;
- m_A52 += m_A30 * f9_12;
- RHS12 += f9_12 * RHS9;
- const double f10 = 1.0 / m_A37;
- const double f10_11 = -f10 * m_A42;
- m_A43 += m_A38 * f10_11;
- m_A44 += m_A39 * f10_11;
- m_A45 += m_A40 * f10_11;
- RHS11 += f10_11 * RHS10;
- const double f10_12 = -f10 * m_A50;
- m_A51 += m_A38 * f10_12;
- m_A52 += m_A39 * f10_12;
- m_A53 += m_A40 * f10_12;
- RHS12 += f10_12 * RHS10;
- const double f10_13 = -f10 * m_A57;
- m_A58 += m_A38 * f10_13;
- m_A59 += m_A39 * f10_13;
- m_A60 += m_A40 * f10_13;
- RHS13 += f10_13 * RHS10;
- const double f11 = 1.0 / m_A43;
- const double f11_12 = -f11 * m_A51;
- m_A52 += m_A44 * f11_12;
- m_A53 += m_A45 * f11_12;
- RHS12 += f11_12 * RHS11;
- const double f11_13 = -f11 * m_A58;
- m_A59 += m_A44 * f11_13;
- m_A60 += m_A45 * f11_13;
- RHS13 += f11_13 * RHS11;
- const double f12 = 1.0 / m_A52;
- const double f12_13 = -f12 * m_A59;
- m_A60 += m_A53 * f12_13;
- RHS13 += f12_13 * RHS12;
- V[13] = RHS13 / m_A60;
- double tmp12 = 0.0;
- tmp12 += m_A53 * V[13];
- V[12] = (RHS12 - tmp12) / m_A52;
- double tmp11 = 0.0;
- tmp11 += m_A44 * V[12];
- tmp11 += m_A45 * V[13];
- V[11] = (RHS11 - tmp11) / m_A43;
- double tmp10 = 0.0;
- tmp10 += m_A38 * V[11];
- tmp10 += m_A39 * V[12];
- tmp10 += m_A40 * V[13];
- V[10] = (RHS10 - tmp10) / m_A37;
- double tmp9 = 0.0;
- tmp9 += m_A29 * V[10];
- tmp9 += m_A30 * V[12];
- V[9] = (RHS9 - tmp9) / m_A28;
- double tmp8 = 0.0;
- tmp8 += m_A24 * V[10];
- tmp8 += m_A25 * V[11];
- tmp8 += m_A26 * V[13];
- V[8] = (RHS8 - tmp8) / m_A23;
- double tmp7 = 0.0;
- tmp7 += m_A21 * V[10];
- tmp7 += m_A22 * V[13];
- V[7] = (RHS7 - tmp7) / m_A20;
- double tmp6 = 0.0;
- tmp6 += m_A19 * V[11];
- V[6] = (RHS6 - tmp6) / m_A18;
- double tmp5 = 0.0;
- tmp5 += m_A17 * V[7];
- V[5] = (RHS5 - tmp5) / m_A16;
- double tmp4 = 0.0;
- tmp4 += m_A14 * V[10];
- tmp4 += m_A15 * V[12];
- V[4] = (RHS4 - tmp4) / m_A13;
- double tmp3 = 0.0;
- tmp3 += m_A8 * V[9];
- tmp3 += m_A9 * V[10];
- tmp3 += m_A10 * V[12];
- V[3] = (RHS3 - tmp3) / m_A7;
- double tmp2 = 0.0;
- tmp2 += m_A6 * V[9];
- V[2] = (RHS2 - tmp2) / m_A5;
- double tmp1 = 0.0;
- tmp1 += m_A3 * V[10];
- tmp1 += m_A4 * V[12];
- V[1] = (RHS1 - tmp1) / m_A2;
- double tmp0 = 0.0;
- tmp0 += m_A1 * V[1];
- V[0] = (RHS0 - tmp0) / m_A0;
-}
-
// carpolo
static void nl_gcr_a8f1d076330f06b7_34_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
@@ -66683,62 +66174,6 @@ static void nl_gcr_ef2f49641f433a74_94_double_double(double * __restrict V, cons
V[0] = (RHS0 - tmp0) / m_A0;
}
-// astrob
-static void nl_gcr_efd052e6829c33e_9_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
-
-{
-
- plib::unused_var(cnV);
- double m_A0(0.0);
- double m_A1(0.0);
- double m_A2(0.0);
- double m_A3(0.0);
- double m_A4(0.0);
- double m_A5(0.0);
- double m_A6(0.0);
- double m_A7(0.0);
- double m_A8(0.0);
- m_A0 += gt[0];
- m_A0 += gt[1];
- m_A2 += go[0];
- m_A1 += go[1];
- double RHS0 = Idr[0];
- RHS0 += Idr[1];
- m_A4 += gt[2];
- m_A4 += gt[3];
- m_A5 += go[2];
- m_A3 += go[3];
- double RHS1 = Idr[2];
- RHS1 += Idr[3];
- m_A8 += gt[4];
- m_A8 += gt[5];
- m_A7 += go[4];
- m_A6 += go[5];
- double RHS2 = Idr[4];
- RHS2 += Idr[5];
- const double f0 = 1.0 / m_A0;
- const double f0_1 = -f0 * m_A3;
- m_A4 += m_A1 * f0_1;
- m_A5 += m_A2 * f0_1;
- RHS1 += f0_1 * RHS0;
- const double f0_2 = -f0 * m_A6;
- m_A7 += m_A1 * f0_2;
- m_A8 += m_A2 * f0_2;
- RHS2 += f0_2 * RHS0;
- const double f1 = 1.0 / m_A4;
- const double f1_2 = -f1 * m_A7;
- m_A8 += m_A5 * f1_2;
- RHS2 += f1_2 * RHS1;
- V[2] = RHS2 / m_A8;
- double tmp1 = 0.0;
- tmp1 += m_A5 * V[2];
- V[1] = (RHS1 - tmp1) / m_A4;
- double tmp0 = 0.0;
- tmp0 += m_A1 * V[1];
- tmp0 += m_A2 * V[2];
- V[0] = (RHS0 - tmp0) / m_A0;
-}
-
// spacfury
static void nl_gcr_f365c3863b050e35_45_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
@@ -72910,16 +72345,14 @@ const plib::dynlib_static_sym nl_static_solver_syms[] = {
{"nl_gcr_124f7aa10f044582_16_double_double", reinterpret_cast<void *>(&nl_gcr_124f7aa10f044582_16_double_double)},
// armora
{"nl_gcr_1250f340dea396ae_22_double_double", reinterpret_cast<void *>(&nl_gcr_1250f340dea396ae_22_double_double)},
+// astrob
+ {"nl_gcr_13833bf8c127deaa_154_double_double", reinterpret_cast<void *>(&nl_gcr_13833bf8c127deaa_154_double_double)},
// pongf
{"nl_gcr_13e7b5ac1a260dbf_10_double_double", reinterpret_cast<void *>(&nl_gcr_13e7b5ac1a260dbf_10_double_double)},
// tailg
{"nl_gcr_144ed14e6bafdb_119_double_double", reinterpret_cast<void *>(&nl_gcr_144ed14e6bafdb_119_double_double)},
-// astrob
- {"nl_gcr_15b7648945a58fb_27_double_double", reinterpret_cast<void *>(&nl_gcr_15b7648945a58fb_27_double_double)},
// spacewar
{"nl_gcr_15e8f6fb021de0f9_28_double_double", reinterpret_cast<void *>(&nl_gcr_15e8f6fb021de0f9_28_double_double)},
-// armora
- {"nl_gcr_1692de755a535408_9_double_double", reinterpret_cast<void *>(&nl_gcr_1692de755a535408_9_double_double)},
// dpatrol
{"nl_gcr_18f4d9160b51d613_20_double_double", reinterpret_cast<void *>(&nl_gcr_18f4d9160b51d613_20_double_double)},
// starhawk
@@ -72948,8 +72381,6 @@ const plib::dynlib_static_sym nl_static_solver_syms[] = {
{"nl_gcr_339c6b457f339538_159_double_double", reinterpret_cast<void *>(&nl_gcr_339c6b457f339538_159_double_double)},
// solarq
{"nl_gcr_34e910fc1896999f_76_double_double", reinterpret_cast<void *>(&nl_gcr_34e910fc1896999f_76_double_double)},
-// astrob
- {"nl_gcr_37b9bb3472eec580_154_double_double", reinterpret_cast<void *>(&nl_gcr_37b9bb3472eec580_154_double_double)},
// sspeedr
{"nl_gcr_3e833834e5ce5aee_13_double_double", reinterpret_cast<void *>(&nl_gcr_3e833834e5ce5aee_13_double_double)},
// astrob
@@ -73002,6 +72433,8 @@ const plib::dynlib_static_sym nl_static_solver_syms[] = {
{"nl_gcr_5d550fc7441617a2_109_double_double", reinterpret_cast<void *>(&nl_gcr_5d550fc7441617a2_109_double_double)},
// zac1b11142
{"nl_gcr_6041272373b8603c_178_double_double", reinterpret_cast<void *>(&nl_gcr_6041272373b8603c_178_double_double)},
+// astrob
+ {"nl_gcr_62464664b1c5aa1e_27_double_double", reinterpret_cast<void *>(&nl_gcr_62464664b1c5aa1e_27_double_double)},
// solarq
{"nl_gcr_62612f71055b8fd4_303_double_double", reinterpret_cast<void *>(&nl_gcr_62612f71055b8fd4_303_double_double)},
// konami1x
@@ -73126,8 +72559,6 @@ const plib::dynlib_static_sym nl_static_solver_syms[] = {
{"nl_gcr_a6cfda6668b153c2_22_double_double", reinterpret_cast<void *>(&nl_gcr_a6cfda6668b153c2_22_double_double)},
// boxingb
{"nl_gcr_a6f74be7f61e6db2_29_double_double", reinterpret_cast<void *>(&nl_gcr_a6f74be7f61e6db2_29_double_double)},
-// astrob
- {"nl_gcr_a7f11a2ba7b1e0de_61_double_double", reinterpret_cast<void *>(&nl_gcr_a7f11a2ba7b1e0de_61_double_double)},
// carpolo
{"nl_gcr_a8f1d076330f06b7_34_double_double", reinterpret_cast<void *>(&nl_gcr_a8f1d076330f06b7_34_double_double)},
// breakout
@@ -73272,8 +72703,6 @@ const plib::dynlib_static_sym nl_static_solver_syms[] = {
{"nl_gcr_ee61dcaa355fc625_285_double_double", reinterpret_cast<void *>(&nl_gcr_ee61dcaa355fc625_285_double_double)},
// starcrus
{"nl_gcr_ef2f49641f433a74_94_double_double", reinterpret_cast<void *>(&nl_gcr_ef2f49641f433a74_94_double_double)},
-// astrob
- {"nl_gcr_efd052e6829c33e_9_double_double", reinterpret_cast<void *>(&nl_gcr_efd052e6829c33e_9_double_double)},
// spacfury
{"nl_gcr_f365c3863b050e35_45_double_double", reinterpret_cast<void *>(&nl_gcr_f365c3863b050e35_45_double_double)},
// spacfury
diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp
index 10dc7cf635c..7e0e5f0425f 100644
--- a/src/lib/netlist/nl_base.cpp
+++ b/src/lib/netlist/nl_base.cpp
@@ -106,7 +106,6 @@ namespace netlist
netlist_state_t::netlist_state_t(const pstring &name,
plib::plog_delegate logger)
: m_log(logger)
- , m_extended_validation(false)
, m_dummy_version(1)
{
m_setup = plib::make_unique<setup_t, host_arena>(*this);
diff --git a/src/lib/netlist/nl_errstr.h b/src/lib/netlist/nl_errstr.h
index 4b44fb7b963..f60287e7a2d 100644
--- a/src/lib/netlist/nl_errstr.h
+++ b/src/lib/netlist/nl_errstr.h
@@ -150,6 +150,17 @@ namespace netlist
PERRMSGV(MI_NO_SPECIFIC_SOLVER, 1, "No specific solver found for netlist of size {1}")
PERRMSGV(MW_SOLVER_METHOD_NOT_SUPPORTED, 2, "Solver method {1} not supported. Falling back to {2}")
+ PERRMSGV(ME_SOLVER_CONSISTENCY_NOT_ANALOG_NET, 1, "Solver consistency: {1} is not an analog net")
+ PERRMSGV(ME_SOLVER_CONSISTENCY_RAIL_NET, 1, "Solver consistency: {1} is a rail net")
+ PERRMSGV(ME_SOLVER_TERMINAL_NO_NET, 1, "Solver consistency: Terminal {1} has no net")
+ PERRMSGV(ME_SOLVER_NO_RAIL_TERMINAL, 1, "Solver consistency: No rail terminals in group with nets: {1}\n"
+ "At least one rail terminal (like ANALOG_INPUT) needs to be part of a group of nets\n"
+ "solved by a solver. Without a singular matrix would be created\n"
+ "which has the potential to cause a crash now or in the future.\n"
+ "A common cause of this error are BJT or FET devices which\n"
+ "are defined but not used in the netlist.")
+ PERRMSGV(MF_SOLVER_CONSISTENCY_ERRORS, 1, "Found {1} errors during solver consistency test")
+
// nld_mm5837.cpp
PERRMSGV(MW_FREQUENCY_OUTSIDE_OF_SPECS_1, 1, "MM5837: Frequency outside of specs: {1}")
diff --git a/src/lib/netlist/nl_setup.cpp b/src/lib/netlist/nl_setup.cpp
index 11584bceb48..d28ba51e476 100644
--- a/src/lib/netlist/nl_setup.cpp
+++ b/src/lib/netlist/nl_setup.cpp
@@ -9,6 +9,7 @@
#include "nl_factory.h"
#include "nl_parser.h"
#include "nl_setup.h"
+#include "nl_errstr.h"
#include "plib/penum.h"
#include "plib/pstonum.h"
#include "plib/pstrutil.h"
@@ -1192,6 +1193,7 @@ void setup_t::resolve_inputs()
log().warning(MW_TERMINAL_1_WITHOUT_CONNECTIONS(name_da));
}
}
+
log().verbose("checking tristate consistency ...");
for (auto & i : m_terminals)
{
diff --git a/src/lib/netlist/prg/nltool.cpp b/src/lib/netlist/prg/nltool.cpp
index 44b96bf0d6d..313ec4e8b2e 100644
--- a/src/lib/netlist/prg/nltool.cpp
+++ b/src/lib/netlist/prg/nltool.cpp
@@ -82,7 +82,6 @@ public:
opt_type(*this, "y", "type", 0, std::vector<pstring>({"spice","eagle","rinf"}), "type of file to be converted: spice,eagle,rinf"),
opt_grp6(*this, "Options for validate command", "These options are only used by the validate command."),
- opt_extended_validation(*this, "", "extended", "Identify issues with power terminals."),
opt_grp7(*this, "Options for header command", "These options are only used by the header command."),
opt_tabwidth(*this, "", "tab-width", 4, "Tab width for output."),
@@ -153,7 +152,6 @@ private:
plib::option_str_limit<unsigned> opt_type;
plib::option_group opt_grp6;
- plib::option_bool opt_extended_validation;
plib::option_group opt_grp7;
plib::option_num<unsigned> opt_tabwidth;
plib::option_num<unsigned> opt_linewidth;
@@ -548,8 +546,6 @@ void tool_app_t::validate()
m_errors = 0;
m_warnings = 0;
- nt.set_extended_validation(opt_extended_validation());
-
try
{
nt.read_netlist(opt_files()[0], opt_name(),
diff --git a/src/lib/netlist/solver/nld_ms_gcr.h b/src/lib/netlist/solver/nld_ms_gcr.h
index 5d8440e5d1d..71388dc867e 100644
--- a/src/lib/netlist/solver/nld_ms_gcr.h
+++ b/src/lib/netlist/solver/nld_ms_gcr.h
@@ -93,10 +93,7 @@ namespace solver
// FIXME: Move me
//
- // During extended validation there is no reason to check for
- // differences in the generated code since during
- // extended validation this will be different (and non-functional)
- if (!this->state().is_extended_validation() && this->state().static_solver_lib().isLoaded())
+ if (this->state().static_solver_lib().isLoaded())
{
pstring symname = static_compile_name();
m_proc.load(this->state().static_solver_lib(), symname);
diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp
index a9ff476728d..cd669256608 100644
--- a/src/lib/netlist/solver/nld_solver.cpp
+++ b/src/lib/netlist/solver/nld_solver.cpp
@@ -3,6 +3,7 @@
#include "nl_factory.h"
+#include "nl_errstr.h"
#include "core/setup.h"
#include "nl_setup.h" // FIXME: only needed for splitter code
#include "nld_matrix_solver.h"
@@ -380,9 +381,55 @@ namespace devices
net_splitter splitter;
splitter.run(state());
+ log().verbose("Found {1} net groups in {2} nets\n", splitter.groups.size(), state().nets().size());
+
+ int num_errors = 0;
+
+ log().verbose("checking net consistency ...");
+ for (const auto &grp : splitter.groups)
+ {
+ int railterms = 0;
+ pstring nets_in_grp;
+ for (const auto &n : grp)
+ {
+ nets_in_grp += (n->name() + " ");
+ if (!n->is_analog())
+ {
+ state().log().error(ME_SOLVER_CONSISTENCY_NOT_ANALOG_NET(n->name()));
+ num_errors++;
+ }
+ if (n->is_rail_net())
+ {
+ state().log().error(ME_SOLVER_CONSISTENCY_RAIL_NET(n->name()));
+ num_errors++;
+ }
+ for (const auto &t : n->core_terms())
+ {
+ if (!t->has_net())
+ {
+ state().log().error(ME_SOLVER_TERMINAL_NO_NET(t->name()));
+ num_errors++;
+ }
+ else
+ {
+ auto *otherterm = dynamic_cast<terminal_t *>(t);
+ if (otherterm != nullptr)
+ if (state().setup().get_connected_terminal(*otherterm)->net().is_rail_net())
+ railterms++;
+ }
+ }
+ }
+ if (railterms == 0)
+ {
+ state().log().error(ME_SOLVER_NO_RAIL_TERMINAL(nets_in_grp));
+ num_errors++;
+ }
+ }
+ if (num_errors > 0)
+ throw nl_exception(MF_SOLVER_CONSISTENCY_ERRORS(num_errors));
+
// setup the solvers
- log().verbose("Found {1} net groups in {2} nets\n", splitter.groups.size(), state().nets().size());
for (auto & grp : splitter.groups)
{
solver_ptr ms;
diff --git a/src/lib/util/avhuff.cpp b/src/lib/util/avhuff.cpp
index 50eea9f24dc..ac5cea71526 100644
--- a/src/lib/util/avhuff.cpp
+++ b/src/lib/util/avhuff.cpp
@@ -691,24 +691,19 @@ avhuff_decoder::avhuff_decoder()
}
/**
- * @fn void avhuff_decoder::configure(const avhuff_decompress_config &config)
+ * @fn void avhuff_decoder::configure(const config &cfg)
*
* @brief -------------------------------------------------
* configure - configure decompression parameters
* -------------------------------------------------.
*
- * @param config The configuration.
+ * @param cfg The configuration.
*/
-void avhuff_decoder::configure(const avhuff_decompress_config &config)
+void avhuff_decoder::configure(const config &cfg)
{
- m_config.video.wrap(config.video, config.video.cliprect());
- m_config.maxsamples = config.maxsamples;
- m_config.actsamples = config.actsamples;
- memcpy(m_config.audio, config.audio, sizeof(m_config.audio));
- m_config.maxmetalength = config.maxmetalength;
- m_config.actmetalength = config.actmetalength;
- m_config.metadata = config.metadata;
+ m_video.wrap(*cfg.video, cfg.video->cliprect());
+ m_config = cfg;
}
/**
@@ -792,9 +787,9 @@ avhuff_error avhuff_decoder::decode_data(const uint8_t *source, uint32_t complen
// determine the start of each piece of data
metastart = m_config.metadata;
for (int chnum = 0; chnum < channels; chnum++)
- audiostart[chnum] = (uint8_t *)m_config.audio[chnum];
- videostart = (m_config.video.valid()) ? reinterpret_cast<uint8_t *>(&m_config.video.pix(0)) : nullptr;
- videostride = (m_config.video.valid()) ? m_config.video.rowpixels() * 2 : 0;
+ audiostart[chnum] = reinterpret_cast<uint8_t *>(m_config.audio[chnum]);
+ videostart = m_video.valid() ? reinterpret_cast<uint8_t *>(&m_video.pix(0)) : nullptr;
+ videostride = m_video.valid() ? m_video.rowpixels() * 2 : 0;
// data is assumed to be native-endian
uint16_t betest = 0;
@@ -802,7 +797,7 @@ avhuff_error avhuff_decoder::decode_data(const uint8_t *source, uint32_t complen
audioxor = videoxor = (betest == 1) ? 1 : 0;
// verify against sizes
- if (m_config.video.valid() && (m_config.video.width() < width || m_config.video.height() < height))
+ if (m_video.valid() && (m_video.width() < width || m_video.height() < height))
return AVHERR_VIDEO_TOO_LARGE;
for (int chnum = 0; chnum < channels; chnum++)
if (m_config.audio[chnum] != nullptr && m_config.maxsamples < samples)
diff --git a/src/lib/util/avhuff.h b/src/lib/util/avhuff.h
index 90ef43e977f..83b46195d6b 100644
--- a/src/lib/util/avhuff.h
+++ b/src/lib/util/avhuff.h
@@ -19,6 +19,8 @@
#include "huffman.h"
#include "flac.h"
+#include <algorithm>
+
//**************************************************************************
// CONSTANTS
@@ -49,32 +51,6 @@ enum avhuff_error
// TYPE DEFINITIONS
//**************************************************************************
-// ======================> av_codec_decompress_config
-
-// decompression configuration
-class avhuff_decompress_config
-{
-public:
- avhuff_decompress_config()
- : maxsamples(0),
- actsamples(nullptr),
- maxmetalength(0),
- actmetalength(nullptr),
- metadata(nullptr)
- {
- memset(audio, 0, sizeof(audio));
- }
-
- bitmap_yuy16 video; // pointer to video bitmap
- uint32_t maxsamples; // maximum number of samples per channel
- uint32_t * actsamples; // actual number of samples per channel
- int16_t * audio[16]; // pointer to individual audio channels
- uint32_t maxmetalength; // maximum length of metadata
- uint32_t * actmetalength; // actual length of metadata
- uint8_t * metadata; // pointer to metadata buffer
-};
-
-
// ======================> avhuff_encoder
// core state for the codec
@@ -98,8 +74,7 @@ private:
{
public:
// construction/destruction
- deltarle_encoder()
- : m_rlecount(0) { }
+ deltarle_encoder() { }
// histogramming
uint16_t *rle_and_histo_bitmap(const uint8_t *source, uint32_t items_per_row, uint32_t item_advance, uint32_t row_count);
@@ -111,7 +86,7 @@ private:
private:
// internal state
- int m_rlecount;
+ int m_rlecount = 0;
huffman_encoder<256 + 16> m_encoder;
std::vector<uint16_t> m_rlebuffer;
};
@@ -143,11 +118,30 @@ private:
class avhuff_decoder
{
public:
+ // decompression configuration
+ class config
+ {
+ public:
+ config()
+ {
+ std::fill(std::begin(audio), std::end(audio), nullptr);
+ }
+
+ bitmap_yuy16 * video = nullptr; // pointer to video bitmap
+ uint32_t maxsamples = 0; // maximum number of samples per channel
+ uint32_t * actsamples = nullptr; // actual number of samples per channel
+ int16_t * audio[16]; // pointer to individual audio channels
+ uint32_t maxmetalength = 0; // maximum length of metadata
+ uint32_t * actmetalength = nullptr; // actual length of metadata
+ uint8_t * metadata = nullptr; // pointer to metadata buffer
+ };
+
+
// construction/destruction
avhuff_decoder();
// configuration
- void configure(const avhuff_decompress_config &config);
+ void configure(const config &cfg);
// encode/decode
avhuff_error decode_data(const uint8_t *source, uint32_t complength, uint8_t *dest);
@@ -158,8 +152,7 @@ private:
{
public:
// construction/destruction
- deltarle_decoder()
- : m_rlecount(0), m_prevdata(0) { }
+ deltarle_decoder() { }
// general
void reset() { m_rlecount = m_prevdata = 0; }
@@ -171,8 +164,8 @@ private:
private:
// internal state
- int m_rlecount;
- uint8_t m_prevdata;
+ int m_rlecount = 0;
+ uint8_t m_prevdata = 0;
huffman_decoder<256 + 16> m_decoder;
};
@@ -183,7 +176,8 @@ private:
avhuff_error decode_video_lossless(int width, int height, const uint8_t *source, uint32_t complength, uint8_t *dest, uint32_t dstride, uint32_t dxor);
// internal state
- avhuff_decompress_config m_config;
+ bitmap_yuy16 m_video;
+ config m_config;
// video decoding contexts
deltarle_decoder m_ycontext;
diff --git a/src/lib/util/aviio.cpp b/src/lib/util/aviio.cpp
index 8722017d3e8..7f74920f06b 100644
--- a/src/lib/util/aviio.cpp
+++ b/src/lib/util/aviio.cpp
@@ -999,7 +999,7 @@ avi_file::error avi_stream::rgb32_compress_to_rgb(const bitmap_rgb32 &bitmap, st
/* compressed video */
for (y = 0; y < height; y++)
{
- const std::uint32_t *source = &bitmap.pix32(y);
+ const std::uint32_t *source = &bitmap.pix(y);
std::uint8_t *dest = data + (m_height - 1 - y) * m_width * 3;
for (x = 0; x < width && dest < dataend; x++)
@@ -1062,7 +1062,7 @@ avi_file::error avi_stream::yuv_decompress_to_yuy16(const std::uint8_t *data, st
for (y = 0; y < m_height; y++)
{
const std::uint16_t *source = reinterpret_cast<const std::uint16_t *>(data) + y * m_width;
- std::uint16_t *dest = &bitmap.pix16(y);
+ std::uint16_t *dest = &bitmap.pix(y);
/* switch off the compression */
switch (m_format)
@@ -1113,7 +1113,7 @@ avi_file::error avi_stream::yuy16_compress_to_yuy(const bitmap_yuy16 &bitmap, st
/* compressed video */
for (y = 0; y < m_height; y++)
{
- const std::uint16_t *source = &bitmap.pix16(y);
+ const std::uint16_t *source = &bitmap.pix(y);
std::uint16_t *dest = reinterpret_cast<std::uint16_t *>(data) + y * m_width;
/* switch off the compression */
@@ -1298,7 +1298,7 @@ avi_file::error avi_stream::huffyuv_decompress_to_yuy16(const std::uint8_t *data
/* compressed video */
for (y = 0; y < m_height; y++)
{
- std::uint16_t *dest = &bitmap.pix16(y);
+ std::uint16_t *dest = &bitmap.pix(y);
/* handle the first four bytes independently */
x = 0;
@@ -1386,8 +1386,8 @@ avi_file::error avi_stream::huffyuv_decompress_to_yuy16(const std::uint8_t *data
lastprevy = lastprevcb = lastprevcr = 0;
for (y = 0; y < m_height; y++)
{
- std::uint16_t *prevrow = &bitmap.pix16(y - prevlines);
- std::uint16_t *dest = &bitmap.pix16(y);
+ std::uint16_t *prevrow = &bitmap.pix(y - prevlines);
+ std::uint16_t *dest = &bitmap.pix(y);
/* handle the first four bytes independently */
x = 0;
@@ -1500,7 +1500,7 @@ avi_file::error avi_stream::uncompressed_rgb24_to_argb32(const std::uint8_t *dat
/* uncompressed video */
for (int y = 0; y < m_height; y++)
{
- std::uint32_t *dest = &bitmap.pix32(y);
+ std::uint32_t *dest = &bitmap.pix(y);
/* loop over pixels */
for (int x = 0; x < m_width; x++)
@@ -1530,7 +1530,7 @@ avi_file::error avi_stream::uncompressed_yuv420p_to_argb32(const std::uint8_t *d
/* uncompressed video */
for (int y = 0; y < m_height; y++)
{
- std::uint32_t *dest = &bitmap.pix32(y);
+ std::uint32_t *dest = &bitmap.pix(y);
/* loop over pixels */
for (int x = 0; x < m_width; x++)
diff --git a/src/lib/util/bitmap.cpp b/src/lib/util/bitmap.cpp
index 2b7cd74b5a1..fc05b89f1b6 100644
--- a/src/lib/util/bitmap.cpp
+++ b/src/lib/util/bitmap.cpp
@@ -10,7 +10,6 @@
#include "bitmap.h"
-#include <algorithm>
#include <cassert>
#include <new>
@@ -360,7 +359,7 @@ void bitmap_t::wrap(void *base, int width, int height, int rowpixels)
* @param subrect The subrect.
*/
-void bitmap_t::wrap(const bitmap_t &source, const rectangle &subrect)
+void bitmap_t::wrap(bitmap_t &source, const rectangle &subrect)
{
assert(m_format == source.m_format);
assert(m_bpp == source.m_bpp);
@@ -406,7 +405,7 @@ void bitmap_t::set_palette(palette_t *palette)
}
/**
- * @fn void bitmap_t::fill(uint32_t color, const rectangle &cliprect)
+ * @fn void bitmap_t::fill(uint64_t color, const rectangle &bounds)
*
* @brief -------------------------------------------------
* fill -- fill a bitmap with a solid color
@@ -416,10 +415,10 @@ void bitmap_t::set_palette(palette_t *palette)
* @param cliprect The cliprect.
*/
-void bitmap_t::fill(uint32_t color, const rectangle &cliprect)
+void bitmap_t::fill(uint64_t color, const rectangle &bounds)
{
// if we have a cliprect, intersect with that
- rectangle fill(cliprect);
+ rectangle fill(bounds);
fill &= m_cliprect;
if (!fill.empty())
{
@@ -448,3 +447,13 @@ void bitmap_t::fill(uint32_t color, const rectangle &cliprect)
}
}
}
+
+
+//**************************************************************************
+// EXPLICIT TEMPLATE INSTANTIATIONS
+//**************************************************************************
+
+template class bitmap_specific<uint8_t>;
+template class bitmap_specific<uint16_t>;
+template class bitmap_specific<uint32_t>;
+template class bitmap_specific<uint64_t>;
diff --git a/src/lib/util/bitmap.h b/src/lib/util/bitmap.h
index ed6a5382a61..57ed0bc1775 100644
--- a/src/lib/util/bitmap.h
+++ b/src/lib/util/bitmap.h
@@ -16,6 +16,9 @@
#include "osdcore.h"
#include "palette.h"
+#include <algorithm>
+#include <memory>
+
//**************************************************************************
// TYPE DEFINITIONS
@@ -151,23 +154,23 @@ public:
// operations
void set_palette(palette_t *palette);
- void fill(uint32_t color) { fill(color, m_cliprect); }
- void fill(uint32_t color, const rectangle &cliprect);
- void plot_box(int x, int y, int width, int height, uint32_t color)
+ void fill(uint64_t color) { fill(color, m_cliprect); }
+ void fill(uint64_t color, const rectangle &bounds);
+ void plot_box(int32_t x, int32_t y, int32_t width, int32_t height, uint64_t color)
{
- rectangle clip(x, x + width - 1, y, y + height - 1);
- fill(color, clip);
+ fill(color, rectangle(x, x + width - 1, y, y + height - 1));
}
// pixel access
- template<typename PixelType>
- PixelType &pixt(int32_t y, int32_t x = 0) const { return *(reinterpret_cast<PixelType *>(m_base) + y * m_rowpixels + x); }
- void *raw_pixptr(int32_t y, int32_t x = 0) const { return reinterpret_cast<uint8_t *>(m_base) + (y * m_rowpixels + x) * m_bpp / 8; }
+ void *raw_pixptr(int32_t y, int32_t x = 0) { return reinterpret_cast<uint8_t *>(m_base) + (y * m_rowpixels + x) * m_bpp / 8; }
+ void const *raw_pixptr(int32_t y, int32_t x = 0) const { return reinterpret_cast<uint8_t *>(m_base) + (y * m_rowpixels + x) * m_bpp / 8; }
protected:
// for use by subclasses only to ensure type correctness
+ template <typename PixelType> PixelType &pixt(int32_t y, int32_t x = 0) { return *(reinterpret_cast<PixelType *>(m_base) + y * m_rowpixels + x); }
+ template <typename PixelType> PixelType const &pixt(int32_t y, int32_t x = 0) const { return *(reinterpret_cast<PixelType *>(m_base) + y * m_rowpixels + x); }
void wrap(void *base, int width, int height, int rowpixels);
- void wrap(const bitmap_t &source, const rectangle &subrect);
+ void wrap(bitmap_t &source, const rectangle &subrect);
private:
// internal helpers
@@ -191,17 +194,17 @@ private:
// ======================> bitmap_specific, bitmap8_t, bitmap16_t, bitmap32_t, bitmap64_t
-template<typename PixelType>
+template <typename PixelType>
class bitmap_specific : public bitmap_t
{
- static constexpr int PixelBits = 8 * sizeof(PixelType);
+ static constexpr int PIXEL_BITS = 8 * sizeof(PixelType);
protected:
// construction/destruction -- subclasses only
bitmap_specific(bitmap_specific<PixelType> &&) = default;
- bitmap_specific(bitmap_format format, int width = 0, int height = 0, int xslop = 0, int yslop = 0) : bitmap_t(format, PixelBits, width, height, xslop, yslop) { }
- bitmap_specific(bitmap_format format, PixelType *base, int width, int height, int rowpixels) : bitmap_t(format, PixelBits, base, width, height, rowpixels) { }
- bitmap_specific(bitmap_format format, bitmap_specific<PixelType> &source, const rectangle &subrect) : bitmap_t(format, PixelBits, source, subrect) { }
+ bitmap_specific(bitmap_format format, int width = 0, int height = 0, int xslop = 0, int yslop = 0) : bitmap_t(format, PIXEL_BITS, width, height, xslop, yslop) { }
+ bitmap_specific(bitmap_format format, PixelType *base, int width, int height, int rowpixels) : bitmap_t(format, PIXEL_BITS, base, width, height, rowpixels) { }
+ bitmap_specific(bitmap_format format, bitmap_specific<PixelType> &source, const rectangle &subrect) : bitmap_t(format, PIXEL_BITS, source, subrect) { }
bitmap_specific<PixelType> &operator=(bitmap_specific<PixelType> &&) = default;
@@ -209,27 +212,46 @@ public:
using pixel_t = PixelType;
// getters
- uint8_t bpp() const { return PixelBits; }
+ uint8_t bpp() const { return PIXEL_BITS; }
// pixel accessors
- PixelType &pix(int32_t y, int32_t x = 0) const { return pixt<PixelType>(y, x); }
- PixelType &pix8(int32_t y, int32_t x = 0) const { static_assert(PixelBits == 8, "must be 8bpp"); return pixt<PixelType>(y, x); }
- PixelType &pix16(int32_t y, int32_t x = 0) const { static_assert(PixelBits == 16, "must be 16bpp"); return pixt<PixelType>(y, x); }
- PixelType &pix32(int32_t y, int32_t x = 0) const { static_assert(PixelBits == 32, "must be 32bpp"); return pixt<PixelType>(y, x); }
- PixelType &pix64(int32_t y, int32_t x = 0) const { static_assert(PixelBits == 64, "must be 64bpp"); return pixt<PixelType>(y, x); }
+ PixelType &pix(int32_t y, int32_t x = 0) { return pixt<PixelType>(y, x); }
+ PixelType const &pix(int32_t y, int32_t x = 0) const { return pixt<PixelType>(y, x); }
+
+ // operations
+ void fill(PixelType color) { fill(color, cliprect()); }
+ void fill(PixelType color, const rectangle &bounds)
+ {
+ // if we have a cliprect, intersect with that
+ rectangle fill(bounds);
+ fill &= cliprect();
+ if (!fill.empty())
+ {
+ for (int32_t y = fill.top(); y <= fill.bottom(); y++)
+ std::fill_n(&pix(y, fill.left()), fill.width(), color);
+ }
+ }
+ void plot_box(int32_t x, int32_t y, int32_t width, int32_t height, PixelType color)
+ {
+ fill(color, rectangle(x, x + width - 1, y, y + height - 1));
+ }
};
// 8bpp bitmaps
using bitmap8_t = bitmap_specific<uint8_t>;
+extern template class bitmap_specific<uint8_t>;
// 16bpp bitmaps
using bitmap16_t = bitmap_specific<uint16_t>;
+extern template class bitmap_specific<uint16_t>;
// 32bpp bitmaps
using bitmap32_t = bitmap_specific<uint32_t>;
+extern template class bitmap_specific<uint32_t>;
// 64bpp bitmaps
using bitmap64_t = bitmap_specific<uint64_t>;
+extern template class bitmap_specific<uint64_t>;
// ======================> bitmap_ind8, bitmap_ind16, bitmap_ind32, bitmap_ind64
@@ -246,7 +268,7 @@ public:
bitmap_ind8(uint8_t *base, int width, int height, int rowpixels) : bitmap8_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_ind8(bitmap_ind8 &source, const rectangle &subrect) : bitmap8_t(k_bitmap_format, source, subrect) { }
void wrap(uint8_t *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
- void wrap(const bitmap_ind8 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<const bitmap_t &>(source), subrect); }
+ void wrap(bitmap_ind8 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
// getters
bitmap_format format() const { return k_bitmap_format; }
@@ -266,7 +288,7 @@ public:
bitmap_ind16(uint16_t *base, int width, int height, int rowpixels) : bitmap16_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_ind16(bitmap_ind16 &source, const rectangle &subrect) : bitmap16_t(k_bitmap_format, source, subrect) { }
void wrap(uint16_t *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
- void wrap(const bitmap_ind8 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<const bitmap_t &>(source), subrect); }
+ void wrap(bitmap_ind8 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
// getters
bitmap_format format() const { return k_bitmap_format; }
@@ -286,7 +308,7 @@ public:
bitmap_ind32(uint32_t *base, int width, int height, int rowpixels) : bitmap32_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_ind32(bitmap_ind32 &source, const rectangle &subrect) : bitmap32_t(k_bitmap_format, source, subrect) { }
void wrap(uint32_t *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
- void wrap(const bitmap_ind8 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<const bitmap_t &>(source), subrect); }
+ void wrap(bitmap_ind8 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
// getters
bitmap_format format() const { return k_bitmap_format; }
@@ -306,7 +328,7 @@ public:
bitmap_ind64(uint64_t *base, int width, int height, int rowpixels) : bitmap64_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_ind64(bitmap_ind64 &source, const rectangle &subrect) : bitmap64_t(k_bitmap_format, source, subrect) { }
void wrap(uint64_t *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
- void wrap(const bitmap_ind8 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<const bitmap_t &>(source), subrect); }
+ void wrap(bitmap_ind8 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
// getters
bitmap_format format() const { return k_bitmap_format; }
@@ -329,7 +351,7 @@ public:
bitmap_yuy16(uint16_t *base, int width, int height, int rowpixels) : bitmap16_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_yuy16(bitmap_yuy16 &source, const rectangle &subrect) : bitmap16_t(k_bitmap_format, source, subrect) { }
void wrap(uint16_t *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
- void wrap(const bitmap_yuy16 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<const bitmap_t &>(source), subrect); }
+ void wrap(bitmap_yuy16 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
// getters
bitmap_format format() const { return k_bitmap_format; }
@@ -349,7 +371,7 @@ public:
bitmap_rgb32(uint32_t *base, int width, int height, int rowpixels) : bitmap32_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_rgb32(bitmap_rgb32 &source, const rectangle &subrect) : bitmap32_t(k_bitmap_format, source, subrect) { }
void wrap(uint32_t *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
- void wrap(const bitmap_rgb32 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<const bitmap_t &>(source), subrect); }
+ void wrap(bitmap_rgb32 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
// getters
bitmap_format format() const { return k_bitmap_format; }
@@ -369,7 +391,7 @@ public:
bitmap_argb32(uint32_t *base, int width, int height, int rowpixels) : bitmap32_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_argb32(bitmap_argb32 &source, const rectangle &subrect) : bitmap32_t(k_bitmap_format, source, subrect) { }
void wrap(uint32_t *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
- void wrap(const bitmap_argb32 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<const bitmap_t &>(source), subrect); }
+ void wrap(bitmap_argb32 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
// getters
bitmap_format format() const { return k_bitmap_format; }
@@ -377,5 +399,4 @@ public:
bitmap_argb32 &operator=(bitmap_argb32 &&) = default;
};
-
-#endif // MAME_UTIL_BITMAP_H
+#endif // MAME_UTIL_BITMAP_H
diff --git a/src/lib/util/chdcodec.cpp b/src/lib/util/chdcodec.cpp
index 58f7b4291db..7f6e0f018cd 100644
--- a/src/lib/util/chdcodec.cpp
+++ b/src/lib/util/chdcodec.cpp
@@ -1786,7 +1786,7 @@ void chd_avhuff_decompressor::configure(int param, void *config)
{
// if we're getting the decompression configuration, apply it now
if (param == AVHUFF_CODEC_DECOMPRESS_CONFIG)
- m_decoder.configure(*reinterpret_cast<avhuff_decompress_config *>(config));
+ m_decoder.configure(*reinterpret_cast<avhuff_decoder::config const *>(config));
// anything else is invalid
else
diff --git a/src/lib/util/png.cpp b/src/lib/util/png.cpp
index 6b59436750c..69835e54051 100644
--- a/src/lib/util/png.cpp
+++ b/src/lib/util/png.cpp
@@ -519,7 +519,7 @@ public:
accumalpha &= alpha;
std::uint16_t const paloffs(std::uint16_t(*src) * 3);
rgb_t const pix(alpha, pnginfo.palette[paloffs], pnginfo.palette[paloffs + 1], pnginfo.palette[paloffs + 2]);
- bitmap.pix32((y << y_shift) + y_offs, (x << x_shift) + x_offs) = pix;
+ bitmap.pix((y << y_shift) + y_offs, (x << x_shift) + x_offs) = pix;
}
}
}
@@ -537,7 +537,7 @@ public:
std::uint8_t const a_val((pnginfo.trans && (transpen == i_val)) ? 0x00 : 0xff);
i_val >>= samp_shift;
accumalpha &= a_val;
- bitmap.pix32((y << y_shift) + y_offs, (x << x_shift) + x_offs) = rgb_t(a_val, i_val, i_val, i_val);
+ bitmap.pix((y << y_shift) + y_offs, (x << x_shift) + x_offs) = rgb_t(a_val, i_val, i_val, i_val);
}
}
}
@@ -552,7 +552,7 @@ public:
{
accumalpha &= src[a];
rgb_t const pix(src[a], src[i], src[i], src[i]);
- bitmap.pix32((y << y_shift) + y_offs, (x << x_shift) + x_offs) = pix;
+ bitmap.pix((y << y_shift) + y_offs, (x << x_shift) + x_offs) = pix;
}
}
}
@@ -578,7 +578,7 @@ public:
g_val >>= samp_shift;
b_val >>= samp_shift;
accumalpha &= a_val;
- bitmap.pix32((y << y_shift) + y_offs, (x << x_shift) + x_offs) = rgb_t(a_val, r_val, g_val, b_val);
+ bitmap.pix((y << y_shift) + y_offs, (x << x_shift) + x_offs) = rgb_t(a_val, r_val, g_val, b_val);
}
}
}
@@ -595,7 +595,7 @@ public:
{
accumalpha &= src[a];
rgb_t const pix(src[a], src[r], src[g], src[b]);
- bitmap.pix32((y << y_shift) + y_offs, (x << x_shift) + x_offs) = pix;
+ bitmap.pix((y << y_shift) + y_offs, (x << x_shift) + x_offs) = pix;
}
}
}
@@ -1042,7 +1042,7 @@ static png_error convert_bitmap_to_image_palette(png_info &pnginfo, const bitmap
/* copy in the pixels, specifying a nullptr filter */
for (y = 0; y < pnginfo.height; y++)
{
- auto *src = reinterpret_cast<uint16_t *>(bitmap.raw_pixptr(y));
+ uint16_t const *src = reinterpret_cast<uint16_t const *>(bitmap.raw_pixptr(y));
uint8_t *dst = &pnginfo.image[y * (rowbytes + 1)];
/* store the filter byte, then copy the data */
@@ -1088,7 +1088,7 @@ static png_error convert_bitmap_to_image_rgb(png_info &pnginfo, const bitmap_t &
/* 16bpp palettized format */
if (bitmap.format() == BITMAP_FORMAT_IND16)
{
- auto *src16 = reinterpret_cast<uint16_t *>(bitmap.raw_pixptr(y));
+ uint16_t const *src16 = reinterpret_cast<uint16_t const *>(bitmap.raw_pixptr(y));
for (x = 0; x < pnginfo.width; x++)
{
rgb_t color = palette[*src16++];
@@ -1101,7 +1101,7 @@ static png_error convert_bitmap_to_image_rgb(png_info &pnginfo, const bitmap_t &
/* 32-bit RGB direct */
else if (bitmap.format() == BITMAP_FORMAT_RGB32)
{
- auto *src32 = reinterpret_cast<uint32_t *>(bitmap.raw_pixptr(y));
+ uint32_t const *src32 = reinterpret_cast<uint32_t const *>(bitmap.raw_pixptr(y));
for (x = 0; x < pnginfo.width; x++)
{
rgb_t raw = *src32++;
@@ -1114,7 +1114,7 @@ static png_error convert_bitmap_to_image_rgb(png_info &pnginfo, const bitmap_t &
/* 32-bit ARGB direct */
else if (bitmap.format() == BITMAP_FORMAT_ARGB32)
{
- auto *src32 = reinterpret_cast<uint32_t *>(bitmap.raw_pixptr(y));
+ uint32_t const *src32 = reinterpret_cast<uint32_t const *>(bitmap.raw_pixptr(y));
for (x = 0; x < pnginfo.width; x++)
{
rgb_t raw = *src32++;