summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2023-01-12 01:06:16 +0100
committer hap <happppp@users.noreply.github.com>2023-01-12 01:06:16 +0100
commited0bdc7cf80203609504c0d577ffbf5b4d93beb9 (patch)
tree0a9fa914c1f9036e62f8a403c6303f33048a2146
parent1996133366e96d922cb096441ad24e12eb8be392 (diff)
netlist: update static solvers
-rw-r--r--src/lib/netlist/generated/static_solvers.cpp1520
-rw-r--r--src/mame/handheld/nl_bship.cpp12
2 files changed, 1524 insertions, 8 deletions
diff --git a/src/lib/netlist/generated/static_solvers.cpp b/src/lib/netlist/generated/static_solvers.cpp
index 07f7f883e6c..ff615be2670 100644
--- a/src/lib/netlist/generated/static_solvers.cpp
+++ b/src/lib/netlist/generated/static_solvers.cpp
@@ -21018,6 +21018,1203 @@ static void nl_gcr_7_double_double_f7dc4f87b5a8ba93(double * __restrict V, const
V[0] = (RHS0 - tmp0) / m_A0;
}
+// bship
+static void nl_gcr_137_double_double_401090c1ee6d0345(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);
+ m_A0 += gt[0];
+ m_A0 += gt[1];
+ m_A0 += gt[2];
+ m_A0 += gt[3];
+ m_A1 += go[0];
+ double RHS0 = Idr[0];
+ RHS0 += Idr[1];
+ RHS0 += Idr[2];
+ RHS0 += Idr[3];
+ RHS0 -= go[1] * *cnV[1];
+ RHS0 -= go[2] * *cnV[2];
+ RHS0 -= go[3] * *cnV[3];
+ m_A2 += gt[4];
+ m_A2 += gt[5];
+ m_A2 += gt[6];
+ m_A2 += gt[7];
+ m_A2 += gt[8];
+ m_A3 += go[4];
+ m_A5 += go[5];
+ m_A4 += go[6];
+ double RHS1 = Idr[4];
+ RHS1 += Idr[5];
+ RHS1 += Idr[6];
+ RHS1 += Idr[7];
+ RHS1 += Idr[8];
+ RHS1 -= go[7] * *cnV[7];
+ RHS1 -= go[8] * *cnV[8];
+ m_A6 += gt[9];
+ m_A6 += gt[10];
+ m_A7 += go[9];
+ double RHS2 = Idr[9];
+ RHS2 += Idr[10];
+ RHS2 -= go[10] * *cnV[10];
+ m_A8 += gt[11];
+ m_A8 += gt[12];
+ m_A8 += gt[13];
+ m_A8 += gt[14];
+ m_A8 += gt[15];
+ m_A8 += gt[16];
+ m_A8 += gt[17];
+ m_A8 += gt[18];
+ m_A8 += gt[19];
+ m_A8 += gt[20];
+ m_A8 += gt[21];
+ m_A9 += go[11];
+ m_A10 += go[12];
+ m_A10 += go[13];
+ m_A10 += go[14];
+ m_A10 += go[15];
+ double RHS3 = Idr[11];
+ RHS3 += Idr[12];
+ RHS3 += Idr[13];
+ RHS3 += Idr[14];
+ RHS3 += Idr[15];
+ RHS3 += Idr[16];
+ RHS3 += Idr[17];
+ RHS3 += Idr[18];
+ RHS3 += Idr[19];
+ RHS3 += Idr[20];
+ RHS3 += Idr[21];
+ RHS3 -= go[16] * *cnV[16];
+ RHS3 -= go[17] * *cnV[17];
+ RHS3 -= go[18] * *cnV[18];
+ RHS3 -= go[19] * *cnV[19];
+ RHS3 -= go[20] * *cnV[20];
+ RHS3 -= go[21] * *cnV[21];
+ m_A11 += gt[22];
+ m_A11 += gt[23];
+ m_A11 += gt[24];
+ m_A11 += gt[25];
+ m_A11 += gt[26];
+ m_A11 += gt[27];
+ m_A11 += gt[28];
+ m_A12 += go[22];
+ m_A13 += go[23];
+ double RHS4 = Idr[22];
+ RHS4 += Idr[23];
+ RHS4 += Idr[24];
+ RHS4 += Idr[25];
+ RHS4 += Idr[26];
+ RHS4 += Idr[27];
+ RHS4 += Idr[28];
+ RHS4 -= go[24] * *cnV[24];
+ RHS4 -= go[25] * *cnV[25];
+ RHS4 -= go[26] * *cnV[26];
+ RHS4 -= go[27] * *cnV[27];
+ RHS4 -= go[28] * *cnV[28];
+ m_A14 += gt[29];
+ m_A14 += gt[30];
+ m_A14 += gt[31];
+ m_A14 += gt[32];
+ m_A14 += gt[33];
+ m_A14 += gt[34];
+ m_A14 += gt[35];
+ m_A15 += go[29];
+ m_A16 += go[30];
+ double RHS5 = Idr[29];
+ RHS5 += Idr[30];
+ RHS5 += Idr[31];
+ RHS5 += Idr[32];
+ RHS5 += Idr[33];
+ RHS5 += Idr[34];
+ RHS5 += Idr[35];
+ RHS5 -= go[31] * *cnV[31];
+ RHS5 -= go[32] * *cnV[32];
+ RHS5 -= go[33] * *cnV[33];
+ RHS5 -= go[34] * *cnV[34];
+ RHS5 -= go[35] * *cnV[35];
+ m_A17 += gt[36];
+ m_A17 += gt[37];
+ m_A19 += go[36];
+ m_A18 += go[37];
+ double RHS6 = Idr[36];
+ RHS6 += Idr[37];
+ m_A20 += gt[38];
+ m_A20 += gt[39];
+ m_A20 += gt[40];
+ m_A20 += gt[41];
+ m_A20 += gt[42];
+ m_A20 += gt[43];
+ m_A22 += go[38];
+ m_A23 += go[39];
+ m_A21 += go[40];
+ double RHS7 = Idr[38];
+ RHS7 += Idr[39];
+ RHS7 += Idr[40];
+ RHS7 += Idr[41];
+ RHS7 += Idr[42];
+ RHS7 += Idr[43];
+ RHS7 -= go[41] * *cnV[41];
+ RHS7 -= go[42] * *cnV[42];
+ RHS7 -= go[43] * *cnV[43];
+ m_A24 += gt[44];
+ m_A24 += gt[45];
+ m_A26 += go[44];
+ m_A25 += go[45];
+ double RHS8 = Idr[44];
+ RHS8 += Idr[45];
+ m_A27 += gt[46];
+ m_A27 += gt[47];
+ m_A29 += go[46];
+ m_A28 += go[47];
+ double RHS9 = Idr[46];
+ RHS9 += Idr[47];
+ m_A30 += gt[48];
+ m_A30 += gt[49];
+ m_A30 += gt[50];
+ m_A31 += go[48];
+ m_A32 += go[49];
+ double RHS10 = Idr[48];
+ RHS10 += Idr[49];
+ RHS10 += Idr[50];
+ RHS10 -= go[50] * *cnV[50];
+ m_A33 += gt[51];
+ m_A33 += gt[52];
+ m_A33 += gt[53];
+ m_A33 += gt[54];
+ m_A35 += go[51];
+ m_A34 += go[52];
+ double RHS11 = Idr[51];
+ RHS11 += Idr[52];
+ RHS11 += Idr[53];
+ RHS11 += Idr[54];
+ RHS11 -= go[53] * *cnV[53];
+ RHS11 -= go[54] * *cnV[54];
+ m_A36 += gt[55];
+ m_A36 += gt[56];
+ m_A36 += gt[57];
+ m_A36 += gt[58];
+ m_A38 += go[55];
+ m_A37 += go[56];
+ m_A37 += go[57];
+ double RHS12 = Idr[55];
+ RHS12 += Idr[56];
+ RHS12 += Idr[57];
+ RHS12 += Idr[58];
+ RHS12 -= go[58] * *cnV[58];
+ m_A44 += gt[59];
+ m_A44 += gt[60];
+ m_A44 += gt[61];
+ m_A44 += gt[62];
+ m_A43 += go[59];
+ m_A42 += go[60];
+ m_A40 += go[61];
+ m_A39 += go[62];
+ double RHS13 = Idr[59];
+ RHS13 += Idr[60];
+ RHS13 += Idr[61];
+ RHS13 += Idr[62];
+ m_A53 += gt[63];
+ m_A53 += gt[64];
+ m_A55 += go[63];
+ m_A49 += go[64];
+ double RHS14 = Idr[63];
+ RHS14 += Idr[64];
+ m_A63 += gt[65];
+ m_A63 += gt[66];
+ m_A63 += gt[67];
+ m_A63 += gt[68];
+ m_A63 += gt[69];
+ m_A63 += gt[70];
+ m_A63 += gt[71];
+ m_A63 += gt[72];
+ m_A58 += go[65];
+ m_A58 += go[66];
+ m_A58 += go[67];
+ m_A58 += go[68];
+ m_A57 += go[69];
+ m_A65 += go[70];
+ double RHS15 = Idr[65];
+ RHS15 += Idr[66];
+ RHS15 += Idr[67];
+ RHS15 += Idr[68];
+ RHS15 += Idr[69];
+ RHS15 += Idr[70];
+ RHS15 += Idr[71];
+ RHS15 += Idr[72];
+ RHS15 -= go[71] * *cnV[71];
+ RHS15 -= go[72] * *cnV[72];
+ m_A71 += gt[73];
+ m_A71 += gt[74];
+ m_A71 += gt[75];
+ m_A67 += go[73];
+ m_A68 += go[74];
+ m_A74 += go[75];
+ double RHS16 = Idr[73];
+ RHS16 += Idr[74];
+ RHS16 += Idr[75];
+ m_A76 += gt[76];
+ m_A76 += gt[77];
+ m_A76 += gt[78];
+ m_A75 += go[76];
+ m_A78 += go[77];
+ double RHS17 = Idr[76];
+ RHS17 += Idr[77];
+ RHS17 += Idr[78];
+ RHS17 -= go[78] * *cnV[78];
+ m_A81 += gt[79];
+ m_A81 += gt[80];
+ m_A81 += gt[81];
+ m_A81 += gt[82];
+ m_A81 += gt[83];
+ m_A79 += go[79];
+ m_A82 += go[80];
+ m_A82 += go[81];
+ double RHS18 = Idr[79];
+ RHS18 += Idr[80];
+ RHS18 += Idr[81];
+ RHS18 += Idr[82];
+ RHS18 += Idr[83];
+ RHS18 -= go[82] * *cnV[82];
+ RHS18 -= go[83] * *cnV[83];
+ m_A85 += gt[84];
+ m_A85 += gt[85];
+ m_A85 += gt[86];
+ m_A85 += gt[87];
+ m_A85 += gt[88];
+ m_A84 += go[84];
+ m_A83 += go[85];
+ double RHS19 = Idr[84];
+ RHS19 += Idr[85];
+ RHS19 += Idr[86];
+ RHS19 += Idr[87];
+ RHS19 += Idr[88];
+ RHS19 -= go[86] * *cnV[86];
+ RHS19 -= go[87] * *cnV[87];
+ RHS19 -= go[88] * *cnV[88];
+ m_A92 += gt[89];
+ m_A92 += gt[90];
+ m_A92 += gt[91];
+ m_A92 += gt[92];
+ m_A92 += gt[93];
+ m_A92 += gt[94];
+ m_A92 += gt[95];
+ m_A88 += go[89];
+ m_A91 += go[90];
+ double RHS20 = Idr[89];
+ RHS20 += Idr[90];
+ RHS20 += Idr[91];
+ RHS20 += Idr[92];
+ RHS20 += Idr[93];
+ RHS20 += Idr[94];
+ RHS20 += Idr[95];
+ RHS20 -= go[91] * *cnV[91];
+ RHS20 -= go[92] * *cnV[92];
+ RHS20 -= go[93] * *cnV[93];
+ RHS20 -= go[94] * *cnV[94];
+ RHS20 -= go[95] * *cnV[95];
+ m_A99 += gt[96];
+ m_A99 += gt[97];
+ m_A99 += gt[98];
+ m_A99 += gt[99];
+ m_A99 += gt[100];
+ m_A101 += go[96];
+ m_A101 += go[97];
+ m_A97 += go[98];
+ m_A97 += go[99];
+ m_A96 += go[100];
+ double RHS21 = Idr[96];
+ RHS21 += Idr[97];
+ RHS21 += Idr[98];
+ RHS21 += Idr[99];
+ RHS21 += Idr[100];
+ m_A107 += gt[101];
+ m_A107 += gt[102];
+ m_A107 += gt[103];
+ m_A107 += gt[104];
+ m_A102 += go[101];
+ m_A110 += go[102];
+ m_A105 += go[103];
+ m_A104 += go[104];
+ double RHS22 = Idr[101];
+ RHS22 += Idr[102];
+ RHS22 += Idr[103];
+ RHS22 += Idr[104];
+ m_A119 += gt[105];
+ m_A119 += gt[106];
+ m_A119 += gt[107];
+ m_A119 += gt[108];
+ m_A119 += gt[109];
+ m_A119 += gt[110];
+ m_A112 += go[105];
+ m_A115 += go[106];
+ m_A115 += go[107];
+ m_A114 += go[108];
+ m_A111 += go[109];
+ double RHS23 = Idr[105];
+ RHS23 += Idr[106];
+ RHS23 += Idr[107];
+ RHS23 += Idr[108];
+ RHS23 += Idr[109];
+ RHS23 += Idr[110];
+ RHS23 -= go[110] * *cnV[110];
+ m_A129 += gt[111];
+ m_A129 += gt[112];
+ m_A129 += gt[113];
+ m_A129 += gt[114];
+ m_A129 += gt[115];
+ m_A126 += go[111];
+ m_A125 += go[112];
+ m_A122 += go[113];
+ double RHS24 = Idr[111];
+ RHS24 += Idr[112];
+ RHS24 += Idr[113];
+ RHS24 += Idr[114];
+ RHS24 += Idr[115];
+ RHS24 -= go[114] * *cnV[114];
+ RHS24 -= go[115] * *cnV[115];
+ m_A136 += gt[116];
+ m_A136 += gt[117];
+ m_A136 += gt[118];
+ m_A136 += gt[119];
+ m_A131 += go[116];
+ m_A132 += go[117];
+ m_A132 += go[118];
+ m_A133 += go[119];
+ double RHS25 = Idr[116];
+ RHS25 += Idr[117];
+ RHS25 += Idr[118];
+ RHS25 += Idr[119];
+ const double f0 = 1.0 / m_A0;
+ const double f0_13 = -f0 * m_A39;
+ m_A44 += m_A1 * f0_13;
+ RHS13 += f0_13 * RHS0;
+ const double f1 = 1.0 / m_A2;
+ const double f1_13 = -f1 * m_A40;
+ m_A41 += m_A3 * f1_13;
+ m_A44 += m_A4 * f1_13;
+ m_A45 += m_A5 * f1_13;
+ RHS13 += f1_13 * RHS1;
+ const double f1_14 = -f1 * m_A49;
+ m_A50 += m_A3 * f1_14;
+ m_A52 += m_A4 * f1_14;
+ m_A53 += m_A5 * f1_14;
+ RHS14 += f1_14 * RHS1;
+ const double f2 = 1.0 / m_A6;
+ const double f2_15 = -f2 * m_A57;
+ m_A63 += m_A7 * f2_15;
+ RHS15 += f2_15 * RHS2;
+ const double f3 = 1.0 / m_A8;
+ const double f3_15 = -f3 * m_A58;
+ m_A59 += m_A9 * f3_15;
+ m_A63 += m_A10 * f3_15;
+ RHS15 += f3_15 * RHS3;
+ const double f4 = 1.0 / m_A11;
+ const double f4_13 = -f4 * m_A41;
+ m_A43 += m_A12 * f4_13;
+ m_A44 += m_A13 * f4_13;
+ RHS13 += f4_13 * RHS4;
+ const double f4_14 = -f4 * m_A50;
+ m_A51 += m_A12 * f4_14;
+ m_A52 += m_A13 * f4_14;
+ RHS14 += f4_14 * RHS4;
+ const double f5 = 1.0 / m_A14;
+ const double f5_15 = -f5 * m_A59;
+ m_A60 += m_A15 * f5_15;
+ m_A65 += m_A16 * f5_15;
+ RHS15 += f5_15 * RHS5;
+ const double f6 = 1.0 / m_A17;
+ const double f6_13 = -f6 * m_A42;
+ m_A44 += m_A18 * f6_13;
+ m_A48 += m_A19 * f6_13;
+ RHS13 += f6_13 * RHS6;
+ const double f6_24 = -f6 * m_A122;
+ m_A123 += m_A18 * f6_24;
+ m_A129 += m_A19 * f6_24;
+ RHS24 += f6_24 * RHS6;
+ const double f7 = 1.0 / m_A20;
+ const double f7_13 = -f7 * m_A43;
+ m_A44 += m_A21 * f7_13;
+ m_A46 += m_A22 * f7_13;
+ m_A47 += m_A23 * f7_13;
+ RHS13 += f7_13 * RHS7;
+ const double f7_14 = -f7 * m_A51;
+ m_A52 += m_A21 * f7_14;
+ m_A54 += m_A22 * f7_14;
+ m_A55 += m_A23 * f7_14;
+ RHS14 += f7_14 * RHS7;
+ const double f7_15 = -f7 * m_A60;
+ m_A61 += m_A21 * f7_15;
+ m_A64 += m_A22 * f7_15;
+ m_A65 += m_A23 * f7_15;
+ RHS15 += f7_15 * RHS7;
+ const double f7_16 = -f7 * m_A67;
+ m_A69 += m_A21 * f7_16;
+ m_A71 += m_A22 * f7_16;
+ m_A72 += m_A23 * f7_16;
+ RHS16 += f7_16 * RHS7;
+ const double f7_20 = -f7 * m_A88;
+ m_A89 += m_A21 * f7_20;
+ m_A91 += m_A22 * f7_20;
+ m_A93 += m_A23 * f7_20;
+ RHS20 += f7_20 * RHS7;
+ const double f7_22 = -f7 * m_A102;
+ m_A103 += m_A21 * f7_22;
+ m_A106 += m_A22 * f7_22;
+ m_A107 += m_A23 * f7_22;
+ RHS22 += f7_22 * RHS7;
+ const double f8 = 1.0 / m_A24;
+ const double f8_17 = -f8 * m_A75;
+ m_A76 += m_A25 * f8_17;
+ m_A77 += m_A26 * f8_17;
+ RHS17 += f8_17 * RHS8;
+ const double f8_18 = -f8 * m_A79;
+ m_A80 += m_A25 * f8_18;
+ m_A81 += m_A26 * f8_18;
+ RHS18 += f8_18 * RHS8;
+ const double f9 = 1.0 / m_A27;
+ const double f9_16 = -f9 * m_A68;
+ m_A71 += m_A28 * f9_16;
+ m_A73 += m_A29 * f9_16;
+ RHS16 += f9_16 * RHS9;
+ const double f9_23 = -f9 * m_A111;
+ m_A113 += m_A28 * f9_23;
+ m_A119 += m_A29 * f9_23;
+ RHS23 += f9_23 * RHS9;
+ const double f10 = 1.0 / m_A30;
+ const double f10_19 = -f10 * m_A83;
+ m_A85 += m_A31 * f10_19;
+ m_A87 += m_A32 * f10_19;
+ RHS19 += f10_19 * RHS10;
+ const double f10_23 = -f10 * m_A112;
+ m_A116 += m_A31 * f10_23;
+ m_A119 += m_A32 * f10_23;
+ RHS23 += f10_23 * RHS10;
+ const double f11 = 1.0 / m_A33;
+ const double f11_19 = -f11 * m_A84;
+ m_A85 += m_A34 * f11_19;
+ m_A86 += m_A35 * f11_19;
+ RHS19 += f11_19 * RHS11;
+ const double f11_21 = -f11 * m_A96;
+ m_A98 += m_A34 * f11_21;
+ m_A99 += m_A35 * f11_21;
+ RHS21 += f11_21 * RHS11;
+ const double f12 = 1.0 / m_A36;
+ const double f12_21 = -f12 * m_A97;
+ m_A99 += m_A37 * f12_21;
+ m_A101 += m_A38 * f12_21;
+ RHS21 += f12_21 * RHS12;
+ const double f12_25 = -f12 * m_A131;
+ m_A132 += m_A37 * f12_25;
+ m_A136 += m_A38 * f12_25;
+ RHS25 += f12_25 * RHS12;
+ const double f13 = 1.0 / m_A44;
+ const double f13_14 = -f13 * m_A52;
+ m_A53 += m_A45 * f13_14;
+ m_A54 += m_A46 * f13_14;
+ m_A55 += m_A47 * f13_14;
+ m_A56 += m_A48 * f13_14;
+ RHS14 += f13_14 * RHS13;
+ const double f13_15 = -f13 * m_A61;
+ m_A62 += m_A45 * f13_15;
+ m_A64 += m_A46 * f13_15;
+ m_A65 += m_A47 * f13_15;
+ m_A66 += m_A48 * f13_15;
+ RHS15 += f13_15 * RHS13;
+ const double f13_16 = -f13 * m_A69;
+ m_A70 += m_A45 * f13_16;
+ m_A71 += m_A46 * f13_16;
+ m_A72 += m_A47 * f13_16;
+ m_A74 += m_A48 * f13_16;
+ RHS16 += f13_16 * RHS13;
+ const double f13_20 = -f13 * m_A89;
+ m_A90 += m_A45 * f13_20;
+ m_A91 += m_A46 * f13_20;
+ m_A93 += m_A47 * f13_20;
+ m_A95 += m_A48 * f13_20;
+ RHS20 += f13_20 * RHS13;
+ const double f13_22 = -f13 * m_A103;
+ m_A104 += m_A45 * f13_22;
+ m_A106 += m_A46 * f13_22;
+ m_A107 += m_A47 * f13_22;
+ m_A109 += m_A48 * f13_22;
+ RHS22 += f13_22 * RHS13;
+ const double f13_24 = -f13 * m_A123;
+ m_A124 += m_A45 * f13_24;
+ m_A125 += m_A46 * f13_24;
+ m_A127 += m_A47 * f13_24;
+ m_A129 += m_A48 * f13_24;
+ RHS24 += f13_24 * RHS13;
+ const double f14 = 1.0 / m_A53;
+ const double f14_15 = -f14 * m_A62;
+ m_A64 += m_A54 * f14_15;
+ m_A65 += m_A55 * f14_15;
+ m_A66 += m_A56 * f14_15;
+ RHS15 += f14_15 * RHS14;
+ const double f14_16 = -f14 * m_A70;
+ m_A71 += m_A54 * f14_16;
+ m_A72 += m_A55 * f14_16;
+ m_A74 += m_A56 * f14_16;
+ RHS16 += f14_16 * RHS14;
+ const double f14_20 = -f14 * m_A90;
+ m_A91 += m_A54 * f14_20;
+ m_A93 += m_A55 * f14_20;
+ m_A95 += m_A56 * f14_20;
+ RHS20 += f14_20 * RHS14;
+ const double f14_22 = -f14 * m_A104;
+ m_A106 += m_A54 * f14_22;
+ m_A107 += m_A55 * f14_22;
+ m_A109 += m_A56 * f14_22;
+ RHS22 += f14_22 * RHS14;
+ const double f14_24 = -f14 * m_A124;
+ m_A125 += m_A54 * f14_24;
+ m_A127 += m_A55 * f14_24;
+ m_A129 += m_A56 * f14_24;
+ RHS24 += f14_24 * RHS14;
+ const double f15 = 1.0 / m_A63;
+ const double f15_22 = -f15 * m_A105;
+ m_A106 += m_A64 * f15_22;
+ m_A107 += m_A65 * f15_22;
+ m_A109 += m_A66 * f15_22;
+ RHS22 += f15_22 * RHS15;
+ const double f16 = 1.0 / m_A71;
+ const double f16_20 = -f16 * m_A91;
+ m_A93 += m_A72 * f16_20;
+ m_A94 += m_A73 * f16_20;
+ m_A95 += m_A74 * f16_20;
+ RHS20 += f16_20 * RHS16;
+ const double f16_22 = -f16 * m_A106;
+ m_A107 += m_A72 * f16_22;
+ m_A108 += m_A73 * f16_22;
+ m_A109 += m_A74 * f16_22;
+ RHS22 += f16_22 * RHS16;
+ const double f16_23 = -f16 * m_A113;
+ m_A118 += m_A72 * f16_23;
+ m_A119 += m_A73 * f16_23;
+ m_A120 += m_A74 * f16_23;
+ RHS23 += f16_23 * RHS16;
+ const double f16_24 = -f16 * m_A125;
+ m_A127 += m_A72 * f16_24;
+ m_A128 += m_A73 * f16_24;
+ m_A129 += m_A74 * f16_24;
+ RHS24 += f16_24 * RHS16;
+ const double f17 = 1.0 / m_A76;
+ const double f17_18 = -f17 * m_A80;
+ m_A81 += m_A77 * f17_18;
+ m_A82 += m_A78 * f17_18;
+ RHS18 += f17_18 * RHS17;
+ const double f17_23 = -f17 * m_A114;
+ m_A115 += m_A77 * f17_23;
+ m_A119 += m_A78 * f17_23;
+ RHS23 += f17_23 * RHS17;
+ const double f18 = 1.0 / m_A81;
+ const double f18_23 = -f18 * m_A115;
+ m_A119 += m_A82 * f18_23;
+ RHS23 += f18_23 * RHS18;
+ const double f19 = 1.0 / m_A85;
+ const double f19_21 = -f19 * m_A98;
+ m_A99 += m_A86 * f19_21;
+ m_A100 += m_A87 * f19_21;
+ RHS21 += f19_21 * RHS19;
+ const double f19_23 = -f19 * m_A116;
+ m_A117 += m_A86 * f19_23;
+ m_A119 += m_A87 * f19_23;
+ RHS23 += f19_23 * RHS19;
+ const double f20 = 1.0 / m_A92;
+ const double f20_24 = -f20 * m_A126;
+ m_A127 += m_A93 * f20_24;
+ m_A128 += m_A94 * f20_24;
+ m_A129 += m_A95 * f20_24;
+ RHS24 += f20_24 * RHS20;
+ const double f21 = 1.0 / m_A99;
+ const double f21_23 = -f21 * m_A117;
+ m_A119 += m_A100 * f21_23;
+ m_A121 += m_A101 * f21_23;
+ RHS23 += f21_23 * RHS21;
+ const double f21_25 = -f21 * m_A132;
+ m_A134 += m_A100 * f21_25;
+ m_A136 += m_A101 * f21_25;
+ RHS25 += f21_25 * RHS21;
+ const double f22 = 1.0 / m_A107;
+ const double f22_23 = -f22 * m_A118;
+ m_A119 += m_A108 * f22_23;
+ m_A120 += m_A109 * f22_23;
+ m_A121 += m_A110 * f22_23;
+ RHS23 += f22_23 * RHS22;
+ const double f22_24 = -f22 * m_A127;
+ m_A128 += m_A108 * f22_24;
+ m_A129 += m_A109 * f22_24;
+ m_A130 += m_A110 * f22_24;
+ RHS24 += f22_24 * RHS22;
+ const double f22_25 = -f22 * m_A133;
+ m_A134 += m_A108 * f22_25;
+ m_A135 += m_A109 * f22_25;
+ m_A136 += m_A110 * f22_25;
+ RHS25 += f22_25 * RHS22;
+ const double f23 = 1.0 / m_A119;
+ const double f23_24 = -f23 * m_A128;
+ m_A129 += m_A120 * f23_24;
+ m_A130 += m_A121 * f23_24;
+ RHS24 += f23_24 * RHS23;
+ const double f23_25 = -f23 * m_A134;
+ m_A135 += m_A120 * f23_25;
+ m_A136 += m_A121 * f23_25;
+ RHS25 += f23_25 * RHS23;
+ const double f24 = 1.0 / m_A129;
+ const double f24_25 = -f24 * m_A135;
+ m_A136 += m_A130 * f24_25;
+ RHS25 += f24_25 * RHS24;
+ V[25] = RHS25 / m_A136;
+ double tmp24 = 0.0;
+ tmp24 += m_A130 * V[25];
+ V[24] = (RHS24 - tmp24) / m_A129;
+ double tmp23 = 0.0;
+ tmp23 += m_A120 * V[24];
+ tmp23 += m_A121 * V[25];
+ V[23] = (RHS23 - tmp23) / m_A119;
+ double tmp22 = 0.0;
+ tmp22 += m_A108 * V[23];
+ tmp22 += m_A109 * V[24];
+ tmp22 += m_A110 * V[25];
+ V[22] = (RHS22 - tmp22) / m_A107;
+ double tmp21 = 0.0;
+ tmp21 += m_A100 * V[23];
+ tmp21 += m_A101 * V[25];
+ V[21] = (RHS21 - tmp21) / m_A99;
+ double tmp20 = 0.0;
+ tmp20 += m_A93 * V[22];
+ tmp20 += m_A94 * V[23];
+ tmp20 += m_A95 * V[24];
+ V[20] = (RHS20 - tmp20) / m_A92;
+ double tmp19 = 0.0;
+ tmp19 += m_A86 * V[21];
+ tmp19 += m_A87 * V[23];
+ V[19] = (RHS19 - tmp19) / m_A85;
+ double tmp18 = 0.0;
+ tmp18 += m_A82 * V[23];
+ V[18] = (RHS18 - tmp18) / m_A81;
+ double tmp17 = 0.0;
+ tmp17 += m_A77 * V[18];
+ tmp17 += m_A78 * V[23];
+ V[17] = (RHS17 - tmp17) / m_A76;
+ double tmp16 = 0.0;
+ tmp16 += m_A72 * V[22];
+ tmp16 += m_A73 * V[23];
+ tmp16 += m_A74 * V[24];
+ V[16] = (RHS16 - tmp16) / m_A71;
+ double tmp15 = 0.0;
+ tmp15 += m_A64 * V[16];
+ tmp15 += m_A65 * V[22];
+ tmp15 += m_A66 * V[24];
+ V[15] = (RHS15 - tmp15) / m_A63;
+ double tmp14 = 0.0;
+ tmp14 += m_A54 * V[16];
+ tmp14 += m_A55 * V[22];
+ tmp14 += m_A56 * V[24];
+ V[14] = (RHS14 - tmp14) / m_A53;
+ double tmp13 = 0.0;
+ tmp13 += m_A45 * V[14];
+ tmp13 += m_A46 * V[16];
+ tmp13 += m_A47 * V[22];
+ tmp13 += m_A48 * V[24];
+ V[13] = (RHS13 - tmp13) / m_A44;
+ double tmp12 = 0.0;
+ tmp12 += m_A37 * V[21];
+ tmp12 += m_A38 * V[25];
+ V[12] = (RHS12 - tmp12) / m_A36;
+ double tmp11 = 0.0;
+ tmp11 += m_A34 * V[19];
+ tmp11 += m_A35 * V[21];
+ V[11] = (RHS11 - tmp11) / m_A33;
+ double tmp10 = 0.0;
+ tmp10 += m_A31 * V[19];
+ tmp10 += m_A32 * V[23];
+ V[10] = (RHS10 - tmp10) / m_A30;
+ double tmp9 = 0.0;
+ tmp9 += m_A28 * V[16];
+ tmp9 += m_A29 * V[23];
+ V[9] = (RHS9 - tmp9) / m_A27;
+ double tmp8 = 0.0;
+ tmp8 += m_A25 * V[17];
+ tmp8 += m_A26 * V[18];
+ V[8] = (RHS8 - tmp8) / m_A24;
+ double tmp7 = 0.0;
+ tmp7 += m_A21 * V[13];
+ tmp7 += m_A22 * V[16];
+ tmp7 += m_A23 * V[22];
+ V[7] = (RHS7 - tmp7) / m_A20;
+ double tmp6 = 0.0;
+ tmp6 += m_A18 * V[13];
+ tmp6 += m_A19 * V[24];
+ V[6] = (RHS6 - tmp6) / m_A17;
+ double tmp5 = 0.0;
+ tmp5 += m_A15 * V[7];
+ tmp5 += m_A16 * V[22];
+ V[5] = (RHS5 - tmp5) / m_A14;
+ double tmp4 = 0.0;
+ tmp4 += m_A12 * V[7];
+ tmp4 += m_A13 * V[13];
+ V[4] = (RHS4 - tmp4) / m_A11;
+ double tmp3 = 0.0;
+ tmp3 += m_A9 * V[5];
+ tmp3 += m_A10 * V[15];
+ V[3] = (RHS3 - tmp3) / m_A8;
+ double tmp2 = 0.0;
+ tmp2 += m_A7 * V[15];
+ V[2] = (RHS2 - tmp2) / m_A6;
+ double tmp1 = 0.0;
+ tmp1 += m_A3 * V[4];
+ tmp1 += m_A4 * V[13];
+ tmp1 += m_A5 * V[14];
+ V[1] = (RHS1 - tmp1) / m_A2;
+ double tmp0 = 0.0;
+ tmp0 += m_A1 * V[13];
+ V[0] = (RHS0 - tmp0) / m_A0;
+}
+
+// bship
+static void nl_gcr_44_double_double_6a0b8563aaaa6b06(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);
+ m_A0 += gt[0];
+ m_A0 += gt[1];
+ m_A0 += gt[2];
+ m_A0 += gt[3];
+ m_A1 += go[0];
+ double RHS0 = Idr[0];
+ RHS0 += Idr[1];
+ RHS0 += Idr[2];
+ RHS0 += Idr[3];
+ RHS0 -= go[1] * *cnV[1];
+ RHS0 -= go[2] * *cnV[2];
+ RHS0 -= go[3] * *cnV[3];
+ m_A2 += gt[4];
+ m_A2 += gt[5];
+ m_A2 += gt[6];
+ m_A3 += go[4];
+ double RHS1 = Idr[4];
+ RHS1 += Idr[5];
+ RHS1 += Idr[6];
+ RHS1 -= go[5] * *cnV[5];
+ RHS1 -= go[6] * *cnV[6];
+ m_A4 += gt[7];
+ m_A4 += gt[8];
+ m_A4 += gt[9];
+ m_A4 += gt[10];
+ m_A5 += go[7];
+ double RHS2 = Idr[7];
+ RHS2 += Idr[8];
+ RHS2 += Idr[9];
+ RHS2 += Idr[10];
+ RHS2 -= go[8] * *cnV[8];
+ RHS2 -= go[9] * *cnV[9];
+ RHS2 -= go[10] * *cnV[10];
+ m_A6 += gt[11];
+ m_A6 += gt[12];
+ m_A6 += gt[13];
+ m_A6 += gt[14];
+ m_A7 += go[11];
+ double RHS3 = Idr[11];
+ RHS3 += Idr[12];
+ RHS3 += Idr[13];
+ RHS3 += Idr[14];
+ RHS3 -= go[12] * *cnV[12];
+ RHS3 -= go[13] * *cnV[13];
+ RHS3 -= go[14] * *cnV[14];
+ m_A8 += gt[15];
+ m_A8 += gt[16];
+ m_A10 += go[15];
+ m_A9 += go[16];
+ double RHS4 = Idr[15];
+ RHS4 += Idr[16];
+ m_A11 += gt[17];
+ m_A11 += gt[18];
+ m_A11 += gt[19];
+ m_A12 += go[17];
+ m_A13 += go[18];
+ double RHS5 = Idr[17];
+ RHS5 += Idr[18];
+ RHS5 += Idr[19];
+ RHS5 -= go[19] * *cnV[19];
+ m_A14 += gt[20];
+ m_A14 += gt[21];
+ m_A14 += gt[22];
+ m_A14 += gt[23];
+ m_A14 += gt[24];
+ m_A14 += gt[25];
+ m_A14 += gt[26];
+ m_A15 += go[20];
+ m_A16 += go[21];
+ double RHS6 = Idr[20];
+ RHS6 += Idr[21];
+ RHS6 += Idr[22];
+ RHS6 += Idr[23];
+ RHS6 += Idr[24];
+ RHS6 += Idr[25];
+ RHS6 += Idr[26];
+ RHS6 -= go[22] * *cnV[22];
+ RHS6 -= go[23] * *cnV[23];
+ RHS6 -= go[24] * *cnV[24];
+ RHS6 -= go[25] * *cnV[25];
+ RHS6 -= go[26] * *cnV[26];
+ m_A18 += gt[27];
+ m_A18 += gt[28];
+ m_A19 += go[27];
+ m_A17 += go[28];
+ double RHS7 = Idr[27];
+ RHS7 += Idr[28];
+ m_A21 += gt[29];
+ m_A21 += gt[30];
+ m_A20 += go[29];
+ m_A22 += go[30];
+ double RHS8 = Idr[29];
+ RHS8 += Idr[30];
+ m_A25 += gt[31];
+ m_A25 += gt[32];
+ m_A25 += gt[33];
+ m_A25 += gt[34];
+ m_A26 += go[31];
+ m_A24 += go[32];
+ m_A23 += go[33];
+ double RHS9 = Idr[31];
+ RHS9 += Idr[32];
+ RHS9 += Idr[33];
+ RHS9 += Idr[34];
+ RHS9 -= go[34] * *cnV[34];
+ m_A29 += gt[35];
+ m_A29 += gt[36];
+ m_A29 += gt[37];
+ m_A29 += gt[38];
+ m_A29 += gt[39];
+ m_A28 += go[35];
+ m_A27 += go[36];
+ m_A31 += go[37];
+ double RHS10 = Idr[35];
+ RHS10 += Idr[36];
+ RHS10 += Idr[37];
+ RHS10 += Idr[38];
+ RHS10 += Idr[39];
+ RHS10 -= go[38] * *cnV[38];
+ RHS10 -= go[39] * *cnV[39];
+ m_A36 += gt[40];
+ m_A36 += gt[41];
+ m_A36 += gt[42];
+ m_A36 += gt[43];
+ m_A33 += go[40];
+ m_A32 += go[41];
+ m_A34 += go[42];
+ double RHS11 = Idr[40];
+ RHS11 += Idr[41];
+ RHS11 += Idr[42];
+ RHS11 += Idr[43];
+ RHS11 -= go[43] * *cnV[43];
+ m_A43 += gt[44];
+ m_A43 += gt[45];
+ m_A43 += gt[46];
+ m_A43 += gt[47];
+ m_A43 += gt[48];
+ m_A43 += gt[49];
+ m_A38 += go[44];
+ m_A41 += go[45];
+ m_A40 += go[46];
+ m_A39 += go[47];
+ double RHS12 = Idr[44];
+ RHS12 += Idr[45];
+ RHS12 += Idr[46];
+ RHS12 += Idr[47];
+ RHS12 += Idr[48];
+ RHS12 += Idr[49];
+ RHS12 -= go[48] * *cnV[48];
+ RHS12 -= go[49] * *cnV[49];
+ const double f0 = 1.0 / m_A0;
+ const double f0_7 = -f0 * m_A17;
+ m_A18 += m_A1 * f0_7;
+ RHS7 += f0_7 * RHS0;
+ const double f1 = 1.0 / m_A2;
+ const double f1_12 = -f1 * m_A38;
+ m_A43 += m_A3 * f1_12;
+ RHS12 += f1_12 * RHS1;
+ const double f2 = 1.0 / m_A4;
+ const double f2_8 = -f2 * m_A20;
+ m_A21 += m_A5 * f2_8;
+ RHS8 += f2_8 * RHS2;
+ const double f3 = 1.0 / m_A6;
+ const double f3_9 = -f3 * m_A23;
+ m_A25 += m_A7 * f3_9;
+ RHS9 += f3_9 * RHS3;
+ const double f4 = 1.0 / m_A8;
+ const double f4_9 = -f4 * m_A24;
+ m_A25 += m_A9 * f4_9;
+ m_A26 += m_A10 * f4_9;
+ RHS9 += f4_9 * RHS4;
+ const double f4_11 = -f4 * m_A32;
+ m_A34 += m_A9 * f4_11;
+ m_A36 += m_A10 * f4_11;
+ RHS11 += f4_11 * RHS4;
+ const double f5 = 1.0 / m_A11;
+ const double f5_10 = -f5 * m_A27;
+ m_A29 += m_A12 * f5_10;
+ m_A30 += m_A13 * f5_10;
+ RHS10 += f5_10 * RHS5;
+ const double f5_11 = -f5 * m_A33;
+ m_A35 += m_A12 * f5_11;
+ m_A36 += m_A13 * f5_11;
+ RHS11 += f5_11 * RHS5;
+ const double f6 = 1.0 / m_A14;
+ const double f6_10 = -f6 * m_A28;
+ m_A29 += m_A15 * f6_10;
+ m_A31 += m_A16 * f6_10;
+ RHS10 += f6_10 * RHS6;
+ const double f7 = 1.0 / m_A18;
+ const double f7_12 = -f7 * m_A39;
+ m_A43 += m_A19 * f7_12;
+ RHS12 += f7_12 * RHS7;
+ const double f8 = 1.0 / m_A21;
+ const double f8_12 = -f8 * m_A40;
+ m_A43 += m_A22 * f8_12;
+ RHS12 += f8_12 * RHS8;
+ const double f9 = 1.0 / m_A25;
+ const double f9_11 = -f9 * m_A34;
+ m_A36 += m_A26 * f9_11;
+ RHS11 += f9_11 * RHS9;
+ const double f10 = 1.0 / m_A29;
+ const double f10_11 = -f10 * m_A35;
+ m_A36 += m_A30 * f10_11;
+ m_A37 += m_A31 * f10_11;
+ RHS11 += f10_11 * RHS10;
+ const double f10_12 = -f10 * m_A41;
+ m_A42 += m_A30 * f10_12;
+ m_A43 += m_A31 * f10_12;
+ RHS12 += f10_12 * RHS10;
+ const double f11 = 1.0 / m_A36;
+ const double f11_12 = -f11 * m_A42;
+ m_A43 += m_A37 * f11_12;
+ RHS12 += f11_12 * RHS11;
+ V[12] = RHS12 / m_A43;
+ double tmp11 = 0.0;
+ tmp11 += m_A37 * V[12];
+ V[11] = (RHS11 - tmp11) / m_A36;
+ double tmp10 = 0.0;
+ tmp10 += m_A30 * V[11];
+ tmp10 += m_A31 * V[12];
+ V[10] = (RHS10 - tmp10) / m_A29;
+ double tmp9 = 0.0;
+ tmp9 += m_A26 * V[11];
+ V[9] = (RHS9 - tmp9) / m_A25;
+ double tmp8 = 0.0;
+ tmp8 += m_A22 * V[12];
+ V[8] = (RHS8 - tmp8) / m_A21;
+ double tmp7 = 0.0;
+ tmp7 += m_A19 * V[12];
+ V[7] = (RHS7 - tmp7) / m_A18;
+ double tmp6 = 0.0;
+ tmp6 += m_A15 * V[10];
+ tmp6 += m_A16 * V[12];
+ V[6] = (RHS6 - tmp6) / m_A14;
+ double tmp5 = 0.0;
+ tmp5 += m_A12 * V[10];
+ tmp5 += m_A13 * V[11];
+ V[5] = (RHS5 - tmp5) / m_A11;
+ double tmp4 = 0.0;
+ tmp4 += m_A9 * V[9];
+ tmp4 += m_A10 * V[11];
+ V[4] = (RHS4 - tmp4) / m_A8;
+ double tmp3 = 0.0;
+ tmp3 += m_A7 * V[9];
+ V[3] = (RHS3 - tmp3) / m_A6;
+ double tmp2 = 0.0;
+ tmp2 += m_A5 * V[8];
+ V[2] = (RHS2 - tmp2) / m_A4;
+ double tmp1 = 0.0;
+ tmp1 += m_A3 * V[12];
+ V[1] = (RHS1 - tmp1) / m_A2;
+ double tmp0 = 0.0;
+ tmp0 += m_A1 * V[7];
+ V[0] = (RHS0 - tmp0) / m_A0;
+}
+
// carpolo
static void nl_gcr_34_double_double_a8f1d076330f06b7(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
@@ -46810,6 +48007,323 @@ static void nl_gcr_84_double_double_c61e08cf5e35918(double * __restrict V, const
V[0] = (RHS0 - tmp0) / m_A0;
}
+// sfxphasor
+static void nl_gcr_40_double_double_53bd9f9a45276ed0(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);
+ m_A0 += gt[0];
+ m_A0 += gt[1];
+ m_A0 += gt[2];
+ m_A0 += gt[3];
+ m_A1 += go[0];
+ double RHS0 = Idr[0];
+ RHS0 += Idr[1];
+ RHS0 += Idr[2];
+ RHS0 += Idr[3];
+ RHS0 -= go[1] * *cnV[1];
+ RHS0 -= go[2] * *cnV[2];
+ RHS0 -= go[3] * *cnV[3];
+ m_A2 += gt[4];
+ m_A2 += gt[5];
+ m_A2 += gt[6];
+ m_A2 += gt[7];
+ m_A3 += go[4];
+ double RHS1 = Idr[4];
+ RHS1 += Idr[5];
+ RHS1 += Idr[6];
+ RHS1 += Idr[7];
+ RHS1 -= go[5] * *cnV[5];
+ RHS1 -= go[6] * *cnV[6];
+ RHS1 -= go[7] * *cnV[7];
+ m_A4 += gt[8];
+ m_A4 += gt[9];
+ m_A4 += gt[10];
+ m_A5 += go[8];
+ m_A7 += go[9];
+ m_A6 += go[10];
+ double RHS2 = Idr[8];
+ RHS2 += Idr[9];
+ RHS2 += Idr[10];
+ m_A8 += gt[11];
+ m_A8 += gt[12];
+ m_A8 += gt[13];
+ m_A9 += go[11];
+ double RHS3 = Idr[11];
+ RHS3 += Idr[12];
+ RHS3 += Idr[13];
+ RHS3 -= go[12] * *cnV[12];
+ RHS3 -= go[13] * *cnV[13];
+ m_A10 += gt[14];
+ m_A10 += gt[15];
+ m_A10 += gt[16];
+ m_A11 += go[14];
+ double RHS4 = Idr[14];
+ RHS4 += Idr[15];
+ RHS4 += Idr[16];
+ RHS4 -= go[15] * *cnV[15];
+ RHS4 -= go[16] * *cnV[16];
+ m_A12 += gt[17];
+ m_A12 += gt[18];
+ m_A12 += gt[19];
+ m_A12 += gt[20];
+ m_A12 += gt[21];
+ m_A13 += go[17];
+ m_A13 += go[18];
+ m_A13 += go[19];
+ double RHS5 = Idr[17];
+ RHS5 += Idr[18];
+ RHS5 += Idr[19];
+ RHS5 += Idr[20];
+ RHS5 += Idr[21];
+ RHS5 -= go[20] * *cnV[20];
+ RHS5 -= go[21] * *cnV[21];
+ m_A14 += gt[22];
+ m_A14 += gt[23];
+ m_A14 += gt[24];
+ m_A15 += go[22];
+ double RHS6 = Idr[22];
+ RHS6 += Idr[23];
+ RHS6 += Idr[24];
+ RHS6 -= go[23] * *cnV[23];
+ RHS6 -= go[24] * *cnV[24];
+ m_A18 += gt[25];
+ m_A18 += gt[26];
+ m_A17 += go[25];
+ m_A16 += go[26];
+ double RHS7 = Idr[25];
+ RHS7 += Idr[26];
+ m_A24 += gt[27];
+ m_A24 += gt[28];
+ m_A24 += gt[29];
+ m_A24 += gt[30];
+ m_A24 += gt[31];
+ m_A24 += gt[32];
+ m_A24 += gt[33];
+ m_A24 += gt[34];
+ m_A22 += go[27];
+ m_A25 += go[28];
+ m_A25 += go[29];
+ m_A21 += go[30];
+ double RHS8 = Idr[27];
+ RHS8 += Idr[28];
+ RHS8 += Idr[29];
+ RHS8 += Idr[30];
+ RHS8 += Idr[31];
+ RHS8 += Idr[32];
+ RHS8 += Idr[33];
+ RHS8 += Idr[34];
+ RHS8 -= go[31] * *cnV[31];
+ RHS8 -= go[32] * *cnV[32];
+ RHS8 -= go[33] * *cnV[33];
+ RHS8 -= go[34] * *cnV[34];
+ m_A27 += gt[35];
+ m_A27 += gt[36];
+ m_A27 += gt[37];
+ m_A27 += gt[38];
+ m_A27 += gt[39];
+ m_A27 += gt[40];
+ m_A27 += gt[41];
+ m_A27 += gt[42];
+ m_A26 += go[35];
+ m_A26 += go[36];
+ m_A26 += go[37];
+ m_A28 += go[38];
+ m_A28 += go[39];
+ double RHS9 = Idr[35];
+ RHS9 += Idr[36];
+ RHS9 += Idr[37];
+ RHS9 += Idr[38];
+ RHS9 += Idr[39];
+ RHS9 += Idr[40];
+ RHS9 += Idr[41];
+ RHS9 += Idr[42];
+ RHS9 -= go[40] * *cnV[40];
+ RHS9 -= go[41] * *cnV[41];
+ RHS9 -= go[42] * *cnV[42];
+ m_A32 += gt[43];
+ m_A32 += gt[44];
+ m_A32 += gt[45];
+ m_A32 += gt[46];
+ m_A32 += gt[47];
+ m_A33 += go[43];
+ m_A29 += go[44];
+ m_A31 += go[45];
+ m_A31 += go[46];
+ double RHS10 = Idr[43];
+ RHS10 += Idr[44];
+ RHS10 += Idr[45];
+ RHS10 += Idr[46];
+ RHS10 += Idr[47];
+ RHS10 -= go[47] * *cnV[47];
+ m_A39 += gt[48];
+ m_A39 += gt[49];
+ m_A39 += gt[50];
+ m_A39 += gt[51];
+ m_A39 += gt[52];
+ m_A39 += gt[53];
+ m_A39 += gt[54];
+ m_A39 += gt[55];
+ m_A39 += gt[56];
+ m_A37 += go[48];
+ m_A37 += go[49];
+ m_A36 += go[50];
+ m_A35 += go[51];
+ m_A34 += go[52];
+ m_A38 += go[53];
+ double RHS11 = Idr[48];
+ RHS11 += Idr[49];
+ RHS11 += Idr[50];
+ RHS11 += Idr[51];
+ RHS11 += Idr[52];
+ RHS11 += Idr[53];
+ RHS11 += Idr[54];
+ RHS11 += Idr[55];
+ RHS11 += Idr[56];
+ RHS11 -= go[54] * *cnV[54];
+ RHS11 -= go[55] * *cnV[55];
+ RHS11 -= go[56] * *cnV[56];
+ const double f0 = 1.0 / m_A0;
+ const double f0_8 = -f0 * m_A21;
+ m_A24 += m_A1 * f0_8;
+ RHS8 += f0_8 * RHS0;
+ const double f1 = 1.0 / m_A2;
+ const double f1_7 = -f1 * m_A16;
+ m_A18 += m_A3 * f1_7;
+ RHS7 += f1_7 * RHS1;
+ const double f2 = 1.0 / m_A4;
+ const double f2_7 = -f2 * m_A17;
+ m_A18 += m_A5 * f2_7;
+ m_A19 += m_A6 * f2_7;
+ m_A20 += m_A7 * f2_7;
+ RHS7 += f2_7 * RHS2;
+ const double f2_8 = -f2 * m_A22;
+ m_A23 += m_A5 * f2_8;
+ m_A24 += m_A6 * f2_8;
+ m_A25 += m_A7 * f2_8;
+ RHS8 += f2_8 * RHS2;
+ const double f2_10 = -f2 * m_A29;
+ m_A30 += m_A5 * f2_10;
+ m_A31 += m_A6 * f2_10;
+ m_A32 += m_A7 * f2_10;
+ RHS10 += f2_10 * RHS2;
+ const double f3 = 1.0 / m_A8;
+ const double f3_11 = -f3 * m_A34;
+ m_A39 += m_A9 * f3_11;
+ RHS11 += f3_11 * RHS3;
+ const double f4 = 1.0 / m_A10;
+ const double f4_11 = -f4 * m_A35;
+ m_A39 += m_A11 * f4_11;
+ RHS11 += f4_11 * RHS4;
+ const double f5 = 1.0 / m_A12;
+ const double f5_9 = -f5 * m_A26;
+ m_A27 += m_A13 * f5_9;
+ RHS9 += f5_9 * RHS5;
+ const double f6 = 1.0 / m_A14;
+ const double f6_11 = -f6 * m_A36;
+ m_A39 += m_A15 * f6_11;
+ RHS11 += f6_11 * RHS6;
+ const double f7 = 1.0 / m_A18;
+ const double f7_8 = -f7 * m_A23;
+ m_A24 += m_A19 * f7_8;
+ m_A25 += m_A20 * f7_8;
+ RHS8 += f7_8 * RHS7;
+ const double f7_10 = -f7 * m_A30;
+ m_A31 += m_A19 * f7_10;
+ m_A32 += m_A20 * f7_10;
+ RHS10 += f7_10 * RHS7;
+ const double f8 = 1.0 / m_A24;
+ const double f8_10 = -f8 * m_A31;
+ m_A32 += m_A25 * f8_10;
+ RHS10 += f8_10 * RHS8;
+ const double f9 = 1.0 / m_A27;
+ const double f9_11 = -f9 * m_A37;
+ m_A39 += m_A28 * f9_11;
+ RHS11 += f9_11 * RHS9;
+ const double f10 = 1.0 / m_A32;
+ const double f10_11 = -f10 * m_A38;
+ m_A39 += m_A33 * f10_11;
+ RHS11 += f10_11 * RHS10;
+ V[11] = RHS11 / m_A39;
+ double tmp10 = 0.0;
+ tmp10 += m_A33 * V[11];
+ V[10] = (RHS10 - tmp10) / m_A32;
+ double tmp9 = 0.0;
+ tmp9 += m_A28 * V[11];
+ V[9] = (RHS9 - tmp9) / m_A27;
+ double tmp8 = 0.0;
+ tmp8 += m_A25 * V[10];
+ V[8] = (RHS8 - tmp8) / m_A24;
+ double tmp7 = 0.0;
+ tmp7 += m_A19 * V[8];
+ tmp7 += m_A20 * V[10];
+ V[7] = (RHS7 - tmp7) / m_A18;
+ double tmp6 = 0.0;
+ tmp6 += m_A15 * V[11];
+ V[6] = (RHS6 - tmp6) / m_A14;
+ double tmp5 = 0.0;
+ tmp5 += m_A13 * V[9];
+ V[5] = (RHS5 - tmp5) / m_A12;
+ double tmp4 = 0.0;
+ tmp4 += m_A11 * V[11];
+ V[4] = (RHS4 - tmp4) / m_A10;
+ double tmp3 = 0.0;
+ tmp3 += m_A9 * V[11];
+ V[3] = (RHS3 - tmp3) / m_A8;
+ double tmp2 = 0.0;
+ tmp2 += m_A5 * V[7];
+ tmp2 += m_A6 * V[8];
+ tmp2 += m_A7 * V[10];
+ V[2] = (RHS2 - tmp2) / m_A4;
+ double tmp1 = 0.0;
+ tmp1 += m_A3 * V[7];
+ V[1] = (RHS1 - tmp1) / m_A2;
+ double tmp0 = 0.0;
+ tmp0 += m_A1 * V[8];
+ V[0] = (RHS0 - tmp0) / m_A0;
+}
+
// solarq,boxingb
static void nl_gcr_10_double_double_d7d45dc58b08cab9(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict cnV)
@@ -80435,6 +81949,10 @@ const plib::static_library::symbol nl_static_solver_syms[] = {
{"nl_gcr_7_double_double_cb2aae3366e0ac1c", reinterpret_cast<void *>(&nl_gcr_7_double_double_cb2aae3366e0ac1c)}, // NOLINT
// breakout
{"nl_gcr_7_double_double_f7dc4f87b5a8ba93", reinterpret_cast<void *>(&nl_gcr_7_double_double_f7dc4f87b5a8ba93)}, // NOLINT
+// bship
+ {"nl_gcr_137_double_double_401090c1ee6d0345", reinterpret_cast<void *>(&nl_gcr_137_double_double_401090c1ee6d0345)}, // NOLINT
+// bship
+ {"nl_gcr_44_double_double_6a0b8563aaaa6b06", reinterpret_cast<void *>(&nl_gcr_44_double_double_6a0b8563aaaa6b06)}, // NOLINT
// carpolo
{"nl_gcr_34_double_double_a8f1d076330f06b7", reinterpret_cast<void *>(&nl_gcr_34_double_double_a8f1d076330f06b7)}, // NOLINT
// cheekyms
@@ -80593,6 +82111,8 @@ const plib::static_library::symbol nl_static_solver_syms[] = {
{"nl_gcr_30_double_double_8cc4eb213eaeef9b", reinterpret_cast<void *>(&nl_gcr_30_double_double_8cc4eb213eaeef9b)}, // NOLINT
// segausb
{"nl_gcr_84_double_double_c61e08cf5e35918", reinterpret_cast<void *>(&nl_gcr_84_double_double_c61e08cf5e35918)}, // NOLINT
+// sfxphasor
+ {"nl_gcr_40_double_double_53bd9f9a45276ed0", reinterpret_cast<void *>(&nl_gcr_40_double_double_53bd9f9a45276ed0)}, // NOLINT
// solarq,boxingb
{"nl_gcr_10_double_double_d7d45dc58b08cab9", reinterpret_cast<void *>(&nl_gcr_10_double_double_d7d45dc58b08cab9)}, // NOLINT
// solarq
diff --git a/src/mame/handheld/nl_bship.cpp b/src/mame/handheld/nl_bship.cpp
index 924450c2d1d..4857e2f032c 100644
--- a/src/mame/handheld/nl_bship.cpp
+++ b/src/mame/handheld/nl_bship.cpp
@@ -7,20 +7,16 @@ Milton Bradley Electronic Battleship model 4750A (hh_tms1k.cpp)
TODO:
- OPENDRAIN parameters are not fully known
-- Q2 should be a 2N3703
+- Q2 should be a 2N3703 (same, just different max voltage)
- D6 should be a 1K60? (germanium, type unknown, but looks like 1K60)
- move 1N754A to netlist library?
-There are no labels on the PCB for the components. The commented-out ones
-are on the PCB, but not used for sound.
+There are no labels on the PCB for the components. The commented-out ones are
+on the PCB, but not used for sound.
Noise source (used for explosion sound) is a zener diode, this is partially
HLE'd, as I don't think MAME's netlist simulates that.
-Things to look out for when tweaking solver minimum time step: Most notably the
-sweep sound when you fire (Load/Go switch in Go mode, simply press Fire to test).
-Small tweaks can alter the sound a lot, it's hard to get everything right.
-
*/
#include "netlist/devices/net_lib.h"
@@ -33,7 +29,7 @@ NETLIST_START(bship)
SOLVER(Solver, 48000)
PARAM(Solver.ACCURACY, 1e-7)
PARAM(Solver.DYNAMIC_TS, 1)
- PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 4.82e-6)
+ PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 2e-6)
ANALOG_INPUT(VBATT1, 9)
ANALOG_INPUT(VBATT2, 9)