diff options
Diffstat (limited to 'src')
67 files changed, 16463 insertions, 10958 deletions
diff --git a/src/devices/machine/netlist.cpp b/src/devices/machine/netlist.cpp index a47d453762d..1dd17acd8b1 100644 --- a/src/devices/machine/netlist.cpp +++ b/src/devices/machine/netlist.cpp @@ -127,7 +127,7 @@ protected: netlist::host_arena::unique_ptr<plib::dynlib_base> static_solver_lib() const noexcept override { //return plib::make_unique<plib::dynlib_static>(nullptr); - return netlist::host_arena::make_unique<plib::dynlib_static>(nl_static_solver_syms); + return plib::make_unique<plib::dynlib_static, netlist::host_arena>(nl_static_solver_syms); } private: @@ -169,7 +169,7 @@ protected: netlist::host_arena::unique_ptr<plib::dynlib_base> static_solver_lib() const noexcept override { - return netlist::host_arena::make_unique<plib::dynlib_static>(nullptr); + return plib::make_unique<plib::dynlib_static, netlist::host_arena>(nullptr); } private: @@ -181,7 +181,7 @@ class netlist_mame_device::netlist_mame_t : public netlist::netlist_state_t public: netlist_mame_t(netlist_mame_device &parent, const pstring &name) - : netlist::netlist_state_t(name, netlist::host_arena::make_unique<netlist_mame_device::netlist_mame_callbacks_t>(parent)) + : netlist::netlist_state_t(name, plib::make_unique<netlist_mame_device::netlist_mame_callbacks_t, netlist::host_arena>(parent)) , m_parent(parent) { } @@ -978,7 +978,8 @@ netlist::host_arena::unique_ptr<netlist::netlist_state_t> netlist_mame_device::b { try { - auto lnetlist = netlist::host_arena::make_unique<netlist::netlist_state_t>("netlist", netlist::host_arena::make_unique<netlist_validate_callbacks_t>()); + auto lnetlist = plib::make_unique<netlist::netlist_state_t, netlist::host_arena>("netlist", + plib::make_unique<netlist_validate_callbacks_t, netlist::host_arena>()); // enable validation mode lnetlist->set_extended_validation(true); common_dev_start(lnetlist.get()); diff --git a/src/lib/netlist/analog/nld_mosfet.cpp b/src/lib/netlist/analog/nld_mosfet.cpp index b285f099adb..846ba8f3ba1 100644 --- a/src/lib/netlist/analog/nld_mosfet.cpp +++ b/src/lib/netlist/analog/nld_mosfet.cpp @@ -415,8 +415,8 @@ namespace analog else { // linear - const auto Sqr1(static_cast<nl_fptype>(plib::pow(Vdsat - Vds, 2))); - const auto Sqr2(static_cast<nl_fptype>(plib::pow(nlconst::two() * Vdsat - Vds, 2))); + const auto Sqr1(plib::narrow_cast<nl_fptype>(plib::pow(Vdsat - Vds, 2))); + const auto Sqr2(plib::narrow_cast<nl_fptype>(plib::pow(nlconst::two() * Vdsat - Vds, 2))); Cgb = 0; Cgs = m_CoxWL * (nlconst::one() - Sqr1 / Sqr2) * nlconst::two_thirds(); Cgd = m_CoxWL * (nlconst::one() - Vdsat * Vdsat / Sqr2) * nlconst::two_thirds(); diff --git a/src/lib/netlist/analog/nld_opamps.cpp b/src/lib/netlist/analog/nld_opamps.cpp index 1890ba85826..7b5db6b2fb6 100644 --- a/src/lib/netlist/analog/nld_opamps.cpp +++ b/src/lib/netlist/analog/nld_opamps.cpp @@ -115,7 +115,7 @@ namespace netlist , m_VL(*this, "VL") , m_VREF(*this, "VREF") { - m_type = static_cast<int>(m_modacc.m_TYPE); + m_type = plib::narrow_cast<int>(m_modacc.m_TYPE); if (m_type < 1 || m_type > 3) { log().fatal(MF_OPAMP_UNKNOWN_TYPE(m_type)); diff --git a/src/lib/netlist/analog/nlid_twoterm.h b/src/lib/netlist/analog/nlid_twoterm.h index 87411ee8109..de2a69a23f7 100644 --- a/src/lib/netlist/analog/nlid_twoterm.h +++ b/src/lib/netlist/analog/nlid_twoterm.h @@ -561,11 +561,11 @@ namespace analog { register_subalias("P", P()); register_subalias("N", N()); - if (m_func() != "") + if (!m_func().empty()) m_compiled->compile(m_func(), std::vector<pstring>({{pstring("T")}})); } - NETLIB_IS_TIMESTEP(m_func() != "") + NETLIB_IS_TIMESTEP(!m_func().empty()) NETLIB_TIMESTEPI() { @@ -609,11 +609,11 @@ namespace analog { register_subalias("P", P()); register_subalias("N", N()); - if (m_func() != "") + if (!m_func().empty()) m_compiled->compile(m_func(), std::vector<pstring>({{pstring("T")}})); } - NETLIB_IS_TIMESTEP(m_func() != "") + NETLIB_IS_TIMESTEP(!m_func().empty()) NETLIB_TIMESTEPI() { m_t += step; diff --git a/src/lib/netlist/build/makefile b/src/lib/netlist/build/makefile index 5f5352d0c69..1d442953fb6 100644 --- a/src/lib/netlist/build/makefile +++ b/src/lib/netlist/build/makefile @@ -25,11 +25,13 @@ VSBUILD = $(SRC)/buildVS DOC = $(SRC)/documentation TIDY_FLAGSX = -checks=*,-google*,-hicpp*,readability*,-fuchsia*,cert-*,-android-*, -TIDY_FLAGSX += -llvm-header-guard,-cppcoreguidelines-pro-type-reinterpret-cast, +TIDY_FLAGSX += -llvm-header-guard, +# TIDY_FLAGSX += -cppcoreguidelines-pro-type-reinterpret-cast, TIDY_FLAGSX += -cppcoreguidelines-pro-bounds-pointer-arithmetic, #TIDY_FLAGSX += -cppcoreguidelines-owning-memory, TIDY_FLAGSX += -modernize-use-default-member-init,-cppcoreguidelines-pro-bounds-constant-array-index, -TIDY_FLAGSX += -modernize-pass-by-value,-cppcoreguidelines-pro-type-static-cast-downcast, +TIDY_FLAGSX += -modernize-pass-by-value, +#TIDY_FLAGSX += -cppcoreguidelines-pro-type-static-cast-downcast, TIDY_FLAGSX += -cppcoreguidelines-avoid-magic-numbers, TIDY_FLAGSX += -cppcoreguidelines-macro-usage, TIDY_FLAGSX += -cppcoreguidelines-non-private-member-variables-in-classes,-misc-non-private-member-variables-in-classes, @@ -37,7 +39,7 @@ TIDY_FLAGSX += -bugprone-macro-parentheses, #TIDY_FLAGSX += -misc-macro-parentheses, TIDY_FLAGSX += -bugprone-too-small-loop-variable, TIDY_FLAGSX += -modernize-use-trailing-return-type, -TIDY_FLAGSX += -cppcoreguidelines-pro-bounds-array-to-pointer-decay, +#TIDY_FLAGSX += -cppcoreguidelines-pro-bounds-array-to-pointer-decay, TIDY_FLAGSX += -readability-magic-numbers,-readability-braces-around-statements, TIDY_FLAGSX += -readability-implicit-bool-conversion, TIDY_FLAGSX += -readability-named-parameter,-readability-function-size, @@ -85,7 +87,7 @@ CC = g++ LD = @g++ MD = @mkdir RM = @rm -CLANG_TIDY = clang-tidy-10 +CLANG_TIDY = clang-tidy-11 DEPENDCC=$(CC) @@ -132,6 +134,8 @@ POBJS := \ PMAIN := $(POBJ)/pmain.o NLOBJS := \ + $(NLOBJ)/solver/nld_solver.o \ + $(NLOBJ)/solver/nld_matrix_solver.o \ $(NLOBJ)/nl_base.o \ $(NLOBJ)/nl_parser.o \ $(NLOBJ)/nl_setup.o \ @@ -142,8 +146,6 @@ NLOBJS := \ $(NLOBJ)/analog/nld_switches.o \ $(NLOBJ)/analog/nlid_twoterm.o \ $(NLOBJ)/analog/nld_opamps.o \ - $(NLOBJ)/solver/nld_solver.o \ - $(NLOBJ)/solver/nld_matrix_solver.o \ $(NLOBJ)/tools/nl_convert.o \ $(NLOBJ)/generated/static_solvers.o \ $(NLOBJ)/devices/nld_2102A.o \ @@ -287,27 +289,32 @@ native: $(MAKE) CEXTRAFLAGS="-march=native -msse4.2 -Wall -Wpedantic -Wsign-compare -Wextra " gcc9: - $(MAKE) CC=g++-9 LD=g++-9 CEXTRAFLAGS="-march=native -fext-numeric-literals -Wall -pedantic -Wpedantic -Wsign-compare -Wextra" EXTRALIBS="-lquadmath" + $(MAKE) CC=g++-9 LD=g++-9 CEXTRAFLAGS="-march=native -Wall -pedantic -Wpedantic -fext-numeric-literals -Wsign-compare -Wextra" EXTRALIBS="-lquadmath" clang: #$(MAKE) CC=clang++-11 LD=clang++-11 OBJ=obj/clang CEXTRAFLAGS="-march=native -msse4.2 -Weverything -Wall -pedantic -Wpedantic -Wunused-private-field -Wno-padded -Wno-unused-template -Wno-missing-variable-declarations -Wno-float-equal -Wconversion -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wno-exit-time-destructors" $(MAKE) CC=clang++-11 LD=clang++-11 OBJ=obj/clang CEXTRAFLAGS="-march=native \ -mllvm -inline-threshold=2000 \ + -Wunknown-warning-option \ -Weverything -Wall -pedantic -Wpedantic -Wunused-private-field \ -Werror -Wno-padded -Wno-weak-vtables -Wno-weak-template-vtables -Wno-unused-template \ - -Wno-missing-variable-declarations -Wno-float-equal -Wconversion \ + -Wmissing-variable-declarations -Wno-float-equal -Wconversion \ -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-format-nonliteral \ - -Wno-exit-time-destructors -Winconsistent-missing-destructor-override" + -Wno-exit-time-destructors -Winconsistent-missing-destructor-override \ + -Wno-return-std-move-in-c++11 -Wno-unreachable-code" clang-libc: + #clang-11 currently broken #$(MAKE) CC=clang++-11 LD=clang++-11 OBJ=obj/clang CEXTRAFLAGS="-march=native -msse4.2 -Weverything -Wall -pedantic -Wpedantic -Wunused-private-field -Wno-padded -Wno-unused-template -Wno-missing-variable-declarations -Wno-float-equal -Wconversion -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wno-exit-time-destructors" - $(MAKE) CC=clang++-11 LD=clang++-11 OBJ=obj/clang-libc CEXTRAFLAGS="-march=native \ + $(MAKE) CC=clang++-10 LD=clang++-10 OBJ=obj/clang-libc CEXTRAFLAGS="-march=native \ -stdlib=libc++ -mllvm -inline-threshold=2000 \ + -Wunknown-warning-option \ -Weverything -Wall -pedantic -Wpedantic -Wunused-private-field \ -Werror -Wno-padded -Wno-weak-vtables -Wno-weak-template-vtables -Wno-unused-template \ - -Wno-missing-variable-declarations -Wno-float-equal -Wconversion \ + -Wmissing-variable-declarations -Wno-float-equal -Wconversion \ -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-format-nonliteral \ - -Wno-exit-time-destructors -Winconsistent-missing-destructor-override" \ + -Wno-exit-time-destructors -Winconsistent-missing-destructor-override \ + -Wno-return-std-move-in-c++11 -Wno-unreachable-code" LDEXTRAFLAGS=-stdlib=libc++ clang-5: diff --git a/src/lib/netlist/devices/nlid_proxy.cpp b/src/lib/netlist/devices/nlid_proxy.cpp index d804988c6fd..585637fb5f9 100644 --- a/src/lib/netlist/devices/nlid_proxy.cpp +++ b/src/lib/netlist/devices/nlid_proxy.cpp @@ -9,6 +9,8 @@ #include "nl_errstr.h" #include "solver/nld_solver.h" +#include <array> + namespace netlist { namespace devices @@ -18,6 +20,8 @@ namespace netlist // nld_base_proxy // ----------------------------------------------------------------------------- + static const std::array<std::pair<const char *, const char *>, 3> power_syms = {{ {"VCC", "VEE"}, {"VCC", "GND"}, {"VDD", "VSS"}}}; + nld_base_proxy::nld_base_proxy(netlist_state_t &anetlist, const pstring &name, const logic_t *inout_proxied) : device_t(anetlist, name, inout_proxied->logic_family()) @@ -29,16 +33,15 @@ namespace netlist throw nl_exception(MF_NULLPTR_FAMILY_NP("nld_base_proxy")); } - const std::vector<std::pair<pstring, pstring>> power_syms = { {"VCC", "VEE"}, {"VCC", "GND"}, {"VDD", "VSS"}}; bool f = false; for (const auto & pwr_sym : power_syms) { pstring devname = inout_proxied->device().name(); - auto *tp_ct(anetlist.setup().find_terminal(devname + "." + pwr_sym.first, + auto *tp_ct(anetlist.setup().find_terminal(devname + "." + pstring(pwr_sym.first), /*detail::terminal_type::INPUT,*/ false)); - auto *tp_cn(anetlist.setup().find_terminal(devname + "." + pwr_sym.second, + auto *tp_cn(anetlist.setup().find_terminal(devname + "." + pstring(pwr_sym.second), /*detail::terminal_type::INPUT,*/ false)); if ((tp_ct != nullptr) && (tp_cn != nullptr)) { @@ -47,8 +50,8 @@ namespace netlist if (!tp_cn->is_analog()) throw nl_exception(plib::pfmt("Not an analog terminal: {1}")(tp_cn->name())); - auto *tp_t = static_cast<analog_t* >(tp_ct); - auto *tn_t = static_cast<analog_t *>(tp_cn); + auto *tp_t = dynamic_cast<analog_t* >(tp_ct); + auto *tn_t = dynamic_cast<analog_t *>(tp_cn); if (f && (tp_t != nullptr && tn_t != nullptr)) log().warning(MI_MULTIPLE_POWER_TERMINALS_ON_DEVICE(inout_proxied->device().name(), m_tp->name(), m_tn->name(), diff --git a/src/lib/netlist/devices/nlid_system.h b/src/lib/netlist/devices/nlid_system.h index fc1bfefd84b..31a31c62d88 100644 --- a/src/lib/netlist/devices/nlid_system.h +++ b/src/lib/netlist/devices/nlid_system.h @@ -93,7 +93,7 @@ namespace devices , m_compiled(*this, "m_compiled") , m_funcparam({nlconst::zero()}) { - if (m_func() != "") + if (!m_func().empty()) m_compiled->compile(m_func(), std::vector<pstring>({{pstring("T")}})); connect(m_feedback, m_Q); } diff --git a/src/lib/netlist/devices/nlid_truthtable.cpp b/src/lib/netlist/devices/nlid_truthtable.cpp index 1718f53560d..a1bcc26d035 100644 --- a/src/lib/netlist/devices/nlid_truthtable.cpp +++ b/src/lib/netlist/devices/nlid_truthtable.cpp @@ -440,7 +440,7 @@ namespace devices if (!m_ttbl) { - m_ttbl = pool.make_unique<typename nld_truthtable_t<m_NI, m_NO>::truthtable_t>(); + m_ttbl = plib::make_unique<typename nld_truthtable_t<m_NI, m_NO>::truthtable_t>(pool); truthtable_parser desc_s(m_NO, m_NI, packed_int(m_ttbl->m_out_state.data(), sizeof(m_ttbl->m_out_state[0]) * 8), m_ttbl->m_timing_index.data(), m_ttbl->m_timing_nt.data()); @@ -448,7 +448,7 @@ namespace devices desc_s.parse(m_desc); } - return pool.make_unique<tt_type>(anetlist, name, m_family_name, *m_ttbl, m_desc); + return plib::make_unique<tt_type>(pool, anetlist, name, m_family_name, *m_ttbl, m_desc); } private: device_arena::unique_ptr<typename nld_truthtable_t<m_NI, m_NO>::truthtable_t> m_ttbl; @@ -578,7 +578,7 @@ void truthtable_parser::parse(const std::vector<pstring> &truthtable) for (int j=0; j < 16; j++) m_timing_nt[j] = netlist_time::zero(); - while (!(ttline == "")) + while (!ttline.empty()) { std::vector<pstring> io(plib::psplit(ttline,"|")); // checks @@ -670,7 +670,7 @@ namespace factory #define ENTRYY(n, m, s) case (n * 100 + m): \ { using xtype = devices::netlist_factory_truthtable_t<n, m>; \ auto cs=s; \ - ret = host_arena::make_unique<xtype>(desc.name, std::move(cs)); } \ + ret = plib::make_unique<xtype, host_arena>(desc.name, std::move(cs)); } \ break #define ENTRY(n, s) ENTRYY(n, 1, s); ENTRYY(n, 2, s); ENTRYY(n, 3, s); \ @@ -700,7 +700,7 @@ namespace factory nl_assert_always(false, msg.c_str()); } ret->m_desc = desc.desc; - ret->m_family_name = (desc.family != "" ? desc.family : pstring(config::DEFAULT_LOGIC_FAMILY())); + ret->m_family_name = (!desc.family.empty() ? desc.family : pstring(config::DEFAULT_LOGIC_FAMILY())); return ret; } diff --git a/src/lib/netlist/generated/static_solvers.cpp b/src/lib/netlist/generated/static_solvers.cpp index 98987a2b086..54f87598b0d 100644 --- a/src/lib/netlist/generated/static_solvers.cpp +++ b/src/lib/netlist/generated/static_solvers.cpp @@ -1,420 +1,2437 @@ #include "plib/pdynlib.h" -// gamemachine -static void nl_gcr_111d6ad4781c136_19_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// konami1x +static void nl_gcr_105d3ecb773843b6_49_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[8] + gt[9] + gt[10]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A4 = gt[16] + gt[17] + gt[18]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] - go[17] * *cnV[17] - go[18] * *cnV[18]; - m_A6 = gt[24] + gt[25] + gt[26]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] - go[25] * *cnV[25] - go[26] * *cnV[26]; - m_A8 = gt[32] + gt[33] + gt[34]; - m_A9 = m_A9 + go[32]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] - go[33] * *cnV[33] - go[34] * *cnV[34]; - m_A10 = gt[40] + gt[41] + gt[42]; - m_A11 = m_A11 + go[40]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] - go[41] * *cnV[41] - go[42] * *cnV[42]; - m_A18 = gt[48] + gt[49] + gt[50] + gt[51] + gt[52] + gt[53] + gt[54]; - m_A17 = m_A17 + go[48]; - m_A16 = m_A16 + go[49]; - m_A15 = m_A15 + go[50]; - m_A14 = m_A14 + go[51]; - m_A13 = m_A13 + go[52]; - m_A12 = m_A12 + go[53]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] + Idr[51] + Idr[52] + Idr[53] + Idr[54] - go[54] * *cnV[54]; -const double f0 = 1.0 / m_A0; - const double f0_6 = -f0 * m_A12; - m_A18 += m_A1 * f0_6; - RHS6 += f0_6 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_6 = -f1 * m_A13; - m_A18 += m_A3 * f1_6; - RHS6 += f1_6 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_6 = -f2 * m_A14; - m_A18 += m_A5 * f2_6; - RHS6 += f2_6 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_6 = -f3 * m_A15; - m_A18 += m_A7 * f3_6; - RHS6 += f3_6 * RHS3; -const double f4 = 1.0 / m_A8; - const double f4_6 = -f4 * m_A16; - m_A18 += m_A9 * f4_6; - RHS6 += f4_6 * RHS4; -const double f5 = 1.0 / m_A10; - const double f5_6 = -f5 * m_A17; - m_A18 += m_A11 * f5_6; - RHS6 += f5_6 * RHS5; - V[6] = RHS6 / m_A18; + 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); + 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]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + RHS4 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A11 += go[10]; + double RHS5 = Idr[10]; + RHS5 += Idr[11]; + RHS5 -= go[11] * *cnV[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A13 += go[12]; + double RHS6 = Idr[12]; + RHS6 += Idr[13]; + RHS6 -= go[13] * *cnV[13]; + m_A14 += gt[14]; + m_A14 += gt[15]; + m_A15 += go[14]; + double RHS7 = Idr[14]; + RHS7 += Idr[15]; + RHS7 -= go[15] * *cnV[15]; + m_A16 += gt[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_A17 += go[16]; + double RHS8 = Idr[16]; + RHS8 += Idr[17]; + RHS8 += Idr[18]; + RHS8 += Idr[19]; + RHS8 += Idr[20]; + RHS8 += Idr[21]; + RHS8 += Idr[22]; + RHS8 -= go[17] * *cnV[17]; + RHS8 -= go[18] * *cnV[18]; + RHS8 -= go[19] * *cnV[19]; + RHS8 -= go[20] * *cnV[20]; + RHS8 -= go[21] * *cnV[21]; + RHS8 -= go[22] * *cnV[22]; + m_A18 += gt[23]; + m_A18 += gt[24]; + m_A19 += go[23]; + double RHS9 = Idr[23]; + RHS9 += Idr[24]; + RHS9 -= go[24] * *cnV[24]; + m_A20 += gt[25]; + m_A20 += gt[26]; + m_A21 += go[25]; + double RHS10 = Idr[25]; + RHS10 += Idr[26]; + RHS10 -= go[26] * *cnV[26]; + m_A25 += gt[27]; + m_A25 += gt[28]; + m_A25 += gt[29]; + m_A25 += gt[30]; + m_A26 += go[27]; + m_A24 += go[28]; + m_A23 += go[29]; + m_A22 += go[30]; + double RHS11 = Idr[27]; + RHS11 += Idr[28]; + RHS11 += Idr[29]; + RHS11 += Idr[30]; + m_A30 += gt[31]; + m_A30 += gt[32]; + m_A30 += gt[33]; + m_A30 += gt[34]; + m_A31 += go[31]; + m_A29 += go[32]; + m_A28 += go[33]; + m_A27 += go[34]; + double RHS12 = Idr[31]; + RHS12 += Idr[32]; + RHS12 += Idr[33]; + RHS12 += Idr[34]; + m_A35 += gt[35]; + m_A35 += gt[36]; + m_A35 += gt[37]; + m_A35 += gt[38]; + m_A36 += go[35]; + m_A34 += go[36]; + m_A33 += go[37]; + m_A32 += go[38]; + double RHS13 = Idr[35]; + RHS13 += Idr[36]; + RHS13 += Idr[37]; + RHS13 += Idr[38]; + m_A38 += gt[39]; + m_A38 += gt[40]; + m_A38 += gt[41]; + m_A37 += go[39]; + m_A39 += go[40]; + double RHS14 = Idr[39]; + RHS14 += Idr[40]; + RHS14 += Idr[41]; + RHS14 -= go[41] * *cnV[41]; + m_A43 += gt[42]; + m_A43 += gt[43]; + m_A43 += gt[44]; + m_A43 += gt[45]; + m_A43 += gt[46]; + m_A44 += go[42]; + m_A42 += go[43]; + m_A41 += go[44]; + m_A40 += go[45]; + double RHS15 = Idr[42]; + RHS15 += Idr[43]; + RHS15 += Idr[44]; + RHS15 += Idr[45]; + RHS15 += Idr[46]; + RHS15 -= go[46] * *cnV[46]; + m_A48 += gt[47]; + m_A48 += gt[48]; + m_A48 += gt[49]; + m_A48 += gt[50]; + m_A48 += gt[51]; + m_A45 += go[47]; + m_A46 += go[48]; + m_A47 += go[49]; + double RHS16 = Idr[47]; + RHS16 += Idr[48]; + RHS16 += Idr[49]; + RHS16 += Idr[50]; + RHS16 += Idr[51]; + RHS16 -= go[50] * *cnV[50]; + RHS16 -= go[51] * *cnV[51]; + const double f0 = 1.0 / m_A0; + const double f0_11 = -f0 * m_A22; + m_A25 += m_A1 * f0_11; + RHS11 += f0_11 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_11 = -f1 * m_A23; + m_A25 += m_A3 * f1_11; + RHS11 += f1_11 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_11 = -f2 * m_A24; + m_A25 += m_A5 * f2_11; + RHS11 += f2_11 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_12 = -f3 * m_A27; + m_A30 += m_A7 * f3_12; + RHS12 += f3_12 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_12 = -f4 * m_A28; + m_A30 += m_A9 * f4_12; + RHS12 += f4_12 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_12 = -f5 * m_A29; + m_A30 += m_A11 * f5_12; + RHS12 += f5_12 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_13 = -f6 * m_A32; + m_A35 += m_A13 * f6_13; + RHS13 += f6_13 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_13 = -f7 * m_A33; + m_A35 += m_A15 * f7_13; + RHS13 += f7_13 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_16 = -f8 * m_A45; + m_A47 += m_A17 * f8_16; + RHS16 += f8_16 * RHS8; + const double f9 = 1.0 / m_A18; + const double f9_13 = -f9 * m_A34; + m_A35 += m_A19 * f9_13; + RHS13 += f9_13 * RHS9; + const double f10 = 1.0 / m_A20; + const double f10_14 = -f10 * m_A37; + m_A38 += m_A21 * f10_14; + RHS14 += f10_14 * RHS10; + const double f11 = 1.0 / m_A25; + const double f11_15 = -f11 * m_A40; + m_A43 += m_A26 * f11_15; + RHS15 += f11_15 * RHS11; + const double f12 = 1.0 / m_A30; + const double f12_15 = -f12 * m_A41; + m_A43 += m_A31 * f12_15; + RHS15 += f12_15 * RHS12; + const double f13 = 1.0 / m_A35; + const double f13_15 = -f13 * m_A42; + m_A43 += m_A36 * f13_15; + RHS15 += f13_15 * RHS13; + const double f14 = 1.0 / m_A38; + const double f14_16 = -f14 * m_A46; + m_A48 += m_A39 * f14_16; + RHS16 += f14_16 * RHS14; + const double f15 = 1.0 / m_A43; + const double f15_16 = -f15 * m_A47; + m_A48 += m_A44 * f15_16; + RHS16 += f15_16 * RHS15; + V[16] = RHS16 / m_A48; + double tmp15 = 0.0; + tmp15 += m_A44 * V[16]; + V[15] = (RHS15 - tmp15) / m_A43; + double tmp14 = 0.0; + tmp14 += m_A39 * V[16]; + V[14] = (RHS14 - tmp14) / m_A38; + double tmp13 = 0.0; + tmp13 += m_A36 * V[15]; + V[13] = (RHS13 - tmp13) / m_A35; + double tmp12 = 0.0; + tmp12 += m_A31 * V[15]; + V[12] = (RHS12 - tmp12) / m_A30; + double tmp11 = 0.0; + tmp11 += m_A26 * V[15]; + V[11] = (RHS11 - tmp11) / m_A25; + double tmp10 = 0.0; + tmp10 += m_A21 * V[14]; + V[10] = (RHS10 - tmp10) / m_A20; + double tmp9 = 0.0; + tmp9 += m_A19 * V[13]; + V[9] = (RHS9 - tmp9) / m_A18; + double tmp8 = 0.0; + tmp8 += m_A17 * V[15]; + V[8] = (RHS8 - tmp8) / m_A16; + double tmp7 = 0.0; + tmp7 += m_A15 * V[13]; + V[7] = (RHS7 - tmp7) / m_A14; + double tmp6 = 0.0; + tmp6 += m_A13 * V[13]; + V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A11 * V[6]; + tmp5 += m_A11 * V[12]; V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[6]; + tmp4 += m_A9 * V[12]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[6]; + tmp3 += m_A7 * V[12]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[6]; + tmp2 += m_A5 * V[11]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[6]; + tmp1 += m_A3 * V[11]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[6]; + tmp0 += m_A1 * V[11]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// breakout +static void nl_gcr_15a4e7fbe5facb3a_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A5 += go[6]; + m_A4 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// breakout +static void nl_gcr_1993cb957e80c097_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + 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_A3 += go[4]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + m_A9 += gt[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A8 += go[8]; + m_A7 += go[9]; + m_A6 += go[10]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A6; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A5 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; + double tmp2 = 0.0; + tmp2 += m_A5 * V[3]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// kidniki +static void nl_gcr_1cbd5d704f6e93c1_67_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + 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]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + RHS4 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A11 += go[10]; + double RHS5 = Idr[10]; + RHS5 += Idr[11]; + RHS5 -= go[11] * *cnV[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A12 += gt[14]; + m_A12 += gt[15]; + m_A12 += gt[16]; + m_A12 += gt[17]; + m_A12 += gt[18]; + m_A12 += gt[19]; + m_A14 += go[12]; + m_A15 += go[13]; + m_A17 += go[14]; + m_A18 += go[15]; + m_A16 += go[16]; + m_A13 += go[17]; + double RHS6 = Idr[12]; + RHS6 += Idr[13]; + RHS6 += Idr[14]; + RHS6 += Idr[15]; + RHS6 += Idr[16]; + RHS6 += Idr[17]; + RHS6 += Idr[18]; + RHS6 += Idr[19]; + RHS6 -= go[18] * *cnV[18]; + RHS6 -= go[19] * *cnV[19]; + m_A21 += gt[20]; + m_A21 += gt[21]; + m_A21 += gt[22]; + m_A21 += gt[23]; + m_A20 += go[20]; + m_A19 += go[21]; + double RHS7 = Idr[20]; + RHS7 += Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 -= go[22] * *cnV[22]; + RHS7 -= go[23] * *cnV[23]; + m_A30 += gt[24]; + m_A30 += gt[25]; + m_A30 += gt[26]; + m_A30 += gt[27]; + m_A28 += go[24]; + m_A27 += go[25]; + double RHS8 = Idr[24]; + RHS8 += Idr[25]; + RHS8 += Idr[26]; + RHS8 += Idr[27]; + RHS8 -= go[26] * *cnV[26]; + RHS8 -= go[27] * *cnV[27]; + m_A39 += gt[28]; + m_A39 += gt[29]; + m_A39 += gt[30]; + m_A39 += gt[31]; + m_A36 += go[28]; + m_A35 += go[29]; + double RHS9 = Idr[28]; + RHS9 += Idr[29]; + RHS9 += Idr[30]; + RHS9 += Idr[31]; + RHS9 -= go[30] * *cnV[30]; + RHS9 -= go[31] * *cnV[31]; + m_A48 += gt[32]; + m_A48 += gt[33]; + m_A48 += gt[34]; + m_A48 += gt[35]; + m_A44 += go[32]; + m_A43 += go[33]; + double RHS10 = Idr[32]; + RHS10 += Idr[33]; + RHS10 += Idr[34]; + RHS10 += Idr[35]; + RHS10 -= go[34] * *cnV[34]; + RHS10 -= go[35] * *cnV[35]; + m_A57 += gt[36]; + m_A57 += gt[37]; + m_A57 += gt[38]; + m_A57 += gt[39]; + m_A52 += go[36]; + m_A51 += go[37]; + double RHS11 = Idr[36]; + RHS11 += Idr[37]; + RHS11 += Idr[38]; + RHS11 += Idr[39]; + RHS11 -= go[38] * *cnV[38]; + RHS11 -= go[39] * *cnV[39]; + m_A66 += gt[40]; + m_A66 += gt[41]; + m_A66 += gt[42]; + m_A66 += gt[43]; + m_A60 += go[40]; + m_A59 += go[41]; + double RHS12 = Idr[40]; + RHS12 += Idr[41]; + RHS12 += Idr[42]; + RHS12 += Idr[43]; + RHS12 -= go[42] * *cnV[42]; + RHS12 -= go[43] * *cnV[43]; + const double f0 = 1.0 / m_A0; + const double f0_7 = -f0 * m_A19; + m_A21 += m_A1 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_10 = -f1 * m_A43; + m_A48 += m_A3 * f1_10; + RHS10 += f1_10 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_12 = -f2 * m_A59; + m_A66 += m_A5 * f2_12; + RHS12 += f2_12 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_11 = -f3 * m_A51; + m_A57 += m_A7 * f3_11; + RHS11 += f3_11 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_9 = -f4 * m_A35; + m_A39 += m_A9 * f4_9; + RHS9 += f4_9 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_8 = -f5 * m_A27; + m_A30 += m_A11 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_7 = -f6 * m_A20; + m_A21 += m_A13 * f6_7; + m_A22 += m_A14 * f6_7; + m_A23 += m_A15 * f6_7; + m_A24 += m_A16 * f6_7; + m_A25 += m_A17 * f6_7; + m_A26 += m_A18 * f6_7; + RHS7 += f6_7 * RHS6; + const double f6_8 = -f6 * m_A28; + m_A29 += m_A13 * f6_8; + m_A30 += m_A14 * f6_8; + m_A31 += m_A15 * f6_8; + m_A32 += m_A16 * f6_8; + m_A33 += m_A17 * f6_8; + m_A34 += m_A18 * f6_8; + RHS8 += f6_8 * RHS6; + const double f6_9 = -f6 * m_A36; + m_A37 += m_A13 * f6_9; + m_A38 += m_A14 * f6_9; + m_A39 += m_A15 * f6_9; + m_A40 += m_A16 * f6_9; + m_A41 += m_A17 * f6_9; + m_A42 += m_A18 * f6_9; + RHS9 += f6_9 * RHS6; + const double f6_10 = -f6 * m_A44; + m_A45 += m_A13 * f6_10; + m_A46 += m_A14 * f6_10; + m_A47 += m_A15 * f6_10; + m_A48 += m_A16 * f6_10; + m_A49 += m_A17 * f6_10; + m_A50 += m_A18 * f6_10; + RHS10 += f6_10 * RHS6; + const double f6_11 = -f6 * m_A52; + m_A53 += m_A13 * f6_11; + m_A54 += m_A14 * f6_11; + m_A55 += m_A15 * f6_11; + m_A56 += m_A16 * f6_11; + m_A57 += m_A17 * f6_11; + m_A58 += m_A18 * f6_11; + RHS11 += f6_11 * RHS6; + const double f6_12 = -f6 * m_A60; + m_A61 += m_A13 * f6_12; + m_A62 += m_A14 * f6_12; + m_A63 += m_A15 * f6_12; + m_A64 += m_A16 * f6_12; + m_A65 += m_A17 * f6_12; + m_A66 += m_A18 * f6_12; + RHS12 += f6_12 * RHS6; + const double f7 = 1.0 / m_A21; + const double f7_8 = -f7 * m_A29; + m_A30 += m_A22 * f7_8; + m_A31 += m_A23 * f7_8; + m_A32 += m_A24 * f7_8; + m_A33 += m_A25 * f7_8; + m_A34 += m_A26 * f7_8; + RHS8 += f7_8 * RHS7; + const double f7_9 = -f7 * m_A37; + m_A38 += m_A22 * f7_9; + m_A39 += m_A23 * f7_9; + m_A40 += m_A24 * f7_9; + m_A41 += m_A25 * f7_9; + m_A42 += m_A26 * f7_9; + RHS9 += f7_9 * RHS7; + const double f7_10 = -f7 * m_A45; + m_A46 += m_A22 * f7_10; + m_A47 += m_A23 * f7_10; + m_A48 += m_A24 * f7_10; + m_A49 += m_A25 * f7_10; + m_A50 += m_A26 * f7_10; + RHS10 += f7_10 * RHS7; + const double f7_11 = -f7 * m_A53; + m_A54 += m_A22 * f7_11; + m_A55 += m_A23 * f7_11; + m_A56 += m_A24 * f7_11; + m_A57 += m_A25 * f7_11; + m_A58 += m_A26 * f7_11; + RHS11 += f7_11 * RHS7; + const double f7_12 = -f7 * m_A61; + m_A62 += m_A22 * f7_12; + m_A63 += m_A23 * f7_12; + m_A64 += m_A24 * f7_12; + m_A65 += m_A25 * f7_12; + m_A66 += m_A26 * f7_12; + RHS12 += f7_12 * RHS7; + const double f8 = 1.0 / m_A30; + const double f8_9 = -f8 * m_A38; + m_A39 += m_A31 * f8_9; + m_A40 += m_A32 * f8_9; + m_A41 += m_A33 * f8_9; + m_A42 += m_A34 * f8_9; + RHS9 += f8_9 * RHS8; + const double f8_10 = -f8 * m_A46; + m_A47 += m_A31 * f8_10; + m_A48 += m_A32 * f8_10; + m_A49 += m_A33 * f8_10; + m_A50 += m_A34 * f8_10; + RHS10 += f8_10 * RHS8; + const double f8_11 = -f8 * m_A54; + m_A55 += m_A31 * f8_11; + m_A56 += m_A32 * f8_11; + m_A57 += m_A33 * f8_11; + m_A58 += m_A34 * f8_11; + RHS11 += f8_11 * RHS8; + const double f8_12 = -f8 * m_A62; + m_A63 += m_A31 * f8_12; + m_A64 += m_A32 * f8_12; + m_A65 += m_A33 * f8_12; + m_A66 += m_A34 * f8_12; + RHS12 += f8_12 * RHS8; + const double f9 = 1.0 / m_A39; + const double f9_10 = -f9 * m_A47; + m_A48 += m_A40 * f9_10; + m_A49 += m_A41 * f9_10; + m_A50 += m_A42 * f9_10; + RHS10 += f9_10 * RHS9; + const double f9_11 = -f9 * m_A55; + m_A56 += m_A40 * f9_11; + m_A57 += m_A41 * f9_11; + m_A58 += m_A42 * f9_11; + RHS11 += f9_11 * RHS9; + const double f9_12 = -f9 * m_A63; + m_A64 += m_A40 * f9_12; + m_A65 += m_A41 * f9_12; + m_A66 += m_A42 * f9_12; + RHS12 += f9_12 * RHS9; + const double f10 = 1.0 / m_A48; + const double f10_11 = -f10 * m_A56; + m_A57 += m_A49 * f10_11; + m_A58 += m_A50 * f10_11; + RHS11 += f10_11 * RHS10; + const double f10_12 = -f10 * m_A64; + m_A65 += m_A49 * f10_12; + m_A66 += m_A50 * f10_12; + RHS12 += f10_12 * RHS10; + const double f11 = 1.0 / m_A57; + const double f11_12 = -f11 * m_A65; + m_A66 += m_A58 * f11_12; + RHS12 += f11_12 * RHS11; + V[12] = RHS12 / m_A66; + double tmp11 = 0.0; + tmp11 += m_A58 * V[12]; + V[11] = (RHS11 - tmp11) / m_A57; + double tmp10 = 0.0; + tmp10 += m_A49 * V[11]; + tmp10 += m_A50 * V[12]; + V[10] = (RHS10 - tmp10) / m_A48; + double tmp9 = 0.0; + tmp9 += m_A40 * V[10]; + tmp9 += m_A41 * V[11]; + tmp9 += m_A42 * V[12]; + V[9] = (RHS9 - tmp9) / m_A39; + double tmp8 = 0.0; + tmp8 += m_A31 * V[9]; + tmp8 += m_A32 * V[10]; + tmp8 += m_A33 * V[11]; + tmp8 += m_A34 * V[12]; + V[8] = (RHS8 - tmp8) / m_A30; + double tmp7 = 0.0; + tmp7 += m_A22 * V[8]; + tmp7 += m_A23 * V[9]; + tmp7 += m_A24 * V[10]; + tmp7 += m_A25 * V[11]; + tmp7 += m_A26 * V[12]; + V[7] = (RHS7 - tmp7) / m_A21; + double tmp6 = 0.0; + tmp6 += m_A13 * V[7]; + tmp6 += m_A14 * V[8]; + tmp6 += m_A15 * V[9]; + tmp6 += m_A16 * V[10]; + tmp6 += m_A17 * V[11]; + tmp6 += m_A18 * V[12]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[8]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[9]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[11]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[12]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[10]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[7]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// 280zzzap +static void nl_gcr_20d478ed5597161_123_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A5 += go[5]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A7 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[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[15]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[16] * *cnV[16]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + m_A10 += gt[22]; + m_A10 += gt[23]; + m_A11 += go[22]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[23] * *cnV[23]; + m_A12 += gt[24]; + m_A12 += gt[25]; + m_A14 += go[24]; + m_A13 += go[25]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + m_A15 += gt[26]; + m_A15 += gt[27]; + m_A16 += go[26]; + double RHS7 = Idr[26]; + RHS7 += Idr[27]; + RHS7 -= go[27] * *cnV[27]; + m_A17 += gt[28]; + m_A17 += gt[29]; + m_A18 += go[28]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + RHS8 -= go[29] * *cnV[29]; + m_A19 += gt[30]; + m_A19 += gt[31]; + m_A19 += gt[32]; + m_A19 += gt[33]; + m_A19 += gt[34]; + m_A19 += gt[35]; + m_A19 += gt[36]; + m_A20 += go[30]; + double RHS9 = Idr[30]; + RHS9 += Idr[31]; + RHS9 += Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 -= go[31] * *cnV[31]; + RHS9 -= go[32] * *cnV[32]; + RHS9 -= go[33] * *cnV[33]; + RHS9 -= go[34] * *cnV[34]; + RHS9 -= go[35] * *cnV[35]; + RHS9 -= go[36] * *cnV[36]; + m_A21 += gt[37]; + m_A21 += gt[38]; + m_A21 += gt[39]; + m_A22 += go[37]; + double RHS10 = Idr[37]; + RHS10 += Idr[38]; + RHS10 += Idr[39]; + RHS10 -= go[38] * *cnV[38]; + RHS10 -= go[39] * *cnV[39]; + m_A23 += gt[40]; + m_A23 += gt[41]; + m_A23 += gt[42]; + m_A23 += gt[43]; + m_A24 += go[40]; + double RHS11 = Idr[40]; + RHS11 += Idr[41]; + RHS11 += Idr[42]; + RHS11 += Idr[43]; + RHS11 -= go[41] * *cnV[41]; + RHS11 -= go[42] * *cnV[42]; + RHS11 -= go[43] * *cnV[43]; + m_A25 += gt[44]; + m_A25 += gt[45]; + m_A25 += gt[46]; + m_A25 += gt[47]; + m_A25 += gt[48]; + m_A25 += gt[49]; + m_A25 += gt[50]; + m_A26 += go[44]; + double RHS12 = Idr[44]; + RHS12 += Idr[45]; + RHS12 += Idr[46]; + RHS12 += Idr[47]; + RHS12 += Idr[48]; + RHS12 += Idr[49]; + RHS12 += Idr[50]; + RHS12 -= go[45] * *cnV[45]; + RHS12 -= go[46] * *cnV[46]; + RHS12 -= go[47] * *cnV[47]; + RHS12 -= go[48] * *cnV[48]; + RHS12 -= go[49] * *cnV[49]; + RHS12 -= go[50] * *cnV[50]; + m_A27 += gt[51]; + m_A27 += gt[52]; + m_A28 += go[51]; + double RHS13 = Idr[51]; + RHS13 += Idr[52]; + RHS13 -= go[52] * *cnV[52]; + m_A29 += gt[53]; + m_A29 += gt[54]; + m_A30 += go[53]; + double RHS14 = Idr[53]; + RHS14 += Idr[54]; + RHS14 -= go[54] * *cnV[54]; + m_A31 += gt[55]; + m_A31 += gt[56]; + m_A32 += go[55]; + double RHS15 = Idr[55]; + RHS15 += Idr[56]; + RHS15 -= go[56] * *cnV[56]; + m_A33 += gt[57]; + m_A33 += gt[58]; + m_A33 += gt[59]; + m_A33 += gt[60]; + m_A35 += go[57]; + m_A34 += go[58]; + double RHS16 = Idr[57]; + RHS16 += Idr[58]; + RHS16 += Idr[59]; + RHS16 += Idr[60]; + RHS16 -= go[59] * *cnV[59]; + RHS16 -= go[60] * *cnV[60]; + m_A36 += gt[61]; + m_A36 += gt[62]; + m_A36 += gt[63]; + m_A37 += go[61]; + double RHS17 = Idr[61]; + RHS17 += Idr[62]; + RHS17 += Idr[63]; + RHS17 -= go[62] * *cnV[62]; + RHS17 -= go[63] * *cnV[63]; + m_A38 += gt[64]; + m_A38 += gt[65]; + m_A39 += go[64]; + double RHS18 = Idr[64]; + RHS18 += Idr[65]; + RHS18 -= go[65] * *cnV[65]; + m_A40 += gt[66]; + m_A40 += gt[67]; + m_A41 += go[66]; + double RHS19 = Idr[66]; + RHS19 += Idr[67]; + RHS19 -= go[67] * *cnV[67]; + m_A43 += gt[68]; + m_A43 += gt[69]; + m_A43 += gt[70]; + m_A43 += gt[71]; + m_A42 += go[68]; + double RHS20 = Idr[68]; + RHS20 += Idr[69]; + RHS20 += Idr[70]; + RHS20 += Idr[71]; + RHS20 -= go[69] * *cnV[69]; + RHS20 -= go[70] * *cnV[70]; + RHS20 -= go[71] * *cnV[71]; + m_A47 += gt[72]; + m_A47 += gt[73]; + m_A46 += go[72]; + m_A45 += go[73]; + double RHS21 = Idr[72]; + RHS21 += Idr[73]; + m_A51 += gt[74]; + m_A51 += gt[75]; + m_A49 += go[74]; + double RHS22 = Idr[74]; + RHS22 += Idr[75]; + RHS22 -= go[75] * *cnV[75]; + m_A54 += gt[76]; + m_A54 += gt[77]; + m_A54 += gt[78]; + m_A53 += go[76]; + m_A52 += go[77]; + double RHS23 = Idr[76]; + RHS23 += Idr[77]; + RHS23 += Idr[78]; + RHS23 -= go[78] * *cnV[78]; + m_A56 += gt[79]; + m_A56 += gt[80]; + m_A56 += gt[81]; + m_A56 += gt[82]; + m_A55 += go[79]; + m_A57 += go[80]; + double RHS24 = Idr[79]; + RHS24 += Idr[80]; + RHS24 += Idr[81]; + RHS24 += Idr[82]; + RHS24 -= go[81] * *cnV[81]; + RHS24 -= go[82] * *cnV[82]; + m_A59 += gt[83]; + m_A59 += gt[84]; + m_A59 += gt[85]; + m_A59 += gt[86]; + m_A58 += go[83]; + m_A60 += go[84]; + double RHS25 = Idr[83]; + RHS25 += Idr[84]; + RHS25 += Idr[85]; + RHS25 += Idr[86]; + RHS25 -= go[85] * *cnV[85]; + RHS25 -= go[86] * *cnV[86]; + m_A62 += gt[87]; + m_A62 += gt[88]; + m_A63 += go[87]; + m_A61 += go[88]; + double RHS26 = Idr[87]; + RHS26 += Idr[88]; + m_A67 += gt[89]; + m_A67 += gt[90]; + m_A67 += gt[91]; + m_A67 += gt[92]; + m_A67 += gt[93]; + m_A67 += gt[94]; + m_A64 += go[89]; + m_A65 += go[90]; + m_A69 += go[91]; + m_A68 += go[92]; + double RHS27 = Idr[89]; + RHS27 += Idr[90]; + RHS27 += Idr[91]; + RHS27 += Idr[92]; + RHS27 += Idr[93]; + RHS27 += Idr[94]; + RHS27 -= go[93] * *cnV[93]; + RHS27 -= go[94] * *cnV[94]; + m_A72 += gt[95]; + m_A72 += gt[96]; + m_A72 += gt[97]; + m_A72 += gt[98]; + m_A71 += go[95]; + m_A73 += go[96]; + double RHS28 = Idr[95]; + RHS28 += Idr[96]; + RHS28 += Idr[97]; + RHS28 += Idr[98]; + RHS28 -= go[97] * *cnV[97]; + RHS28 -= go[98] * *cnV[98]; + m_A76 += gt[99]; + m_A76 += gt[100]; + m_A76 += gt[101]; + m_A76 += gt[102]; + m_A77 += go[99]; + m_A78 += go[100]; + m_A74 += go[101]; + m_A75 += go[102]; + double RHS29 = Idr[99]; + RHS29 += Idr[100]; + RHS29 += Idr[101]; + RHS29 += Idr[102]; + m_A81 += gt[103]; + m_A81 += gt[104]; + m_A81 += gt[105]; + m_A80 += go[103]; + m_A79 += go[104]; + double RHS30 = Idr[103]; + RHS30 += Idr[104]; + RHS30 += Idr[105]; + RHS30 -= go[105] * *cnV[105]; + m_A84 += gt[106]; + m_A84 += gt[107]; + m_A82 += go[106]; + m_A83 += go[107]; + double RHS31 = Idr[106]; + RHS31 += Idr[107]; + m_A91 += gt[108]; + m_A91 += gt[109]; + m_A91 += gt[110]; + m_A91 += gt[111]; + m_A91 += gt[112]; + m_A86 += go[108]; + m_A90 += go[109]; + m_A88 += go[110]; + m_A85 += go[111]; + m_A87 += go[112]; + double RHS32 = Idr[108]; + RHS32 += Idr[109]; + RHS32 += Idr[110]; + RHS32 += Idr[111]; + RHS32 += Idr[112]; + m_A99 += gt[113]; + m_A99 += gt[114]; + m_A99 += gt[115]; + m_A99 += gt[116]; + m_A99 += gt[117]; + m_A96 += go[113]; + m_A100 += go[114]; + m_A97 += go[115]; + m_A94 += go[116]; + m_A95 += go[117]; + double RHS33 = Idr[113]; + RHS33 += Idr[114]; + RHS33 += Idr[115]; + RHS33 += Idr[116]; + RHS33 += Idr[117]; + m_A106 += gt[118]; + m_A106 += gt[119]; + m_A106 += gt[120]; + m_A106 += gt[121]; + m_A103 += go[118]; + m_A104 += go[119]; + m_A101 += go[120]; + m_A102 += go[121]; + double RHS34 = Idr[118]; + RHS34 += Idr[119]; + RHS34 += Idr[120]; + RHS34 += Idr[121]; + m_A111 += gt[122]; + m_A111 += gt[123]; + m_A111 += gt[124]; + m_A111 += gt[125]; + m_A108 += go[122]; + m_A109 += go[123]; + double RHS35 = Idr[122]; + RHS35 += Idr[123]; + RHS35 += Idr[124]; + RHS35 += Idr[125]; + RHS35 -= go[124] * *cnV[124]; + RHS35 -= go[125] * *cnV[125]; + m_A122 += gt[126]; + m_A122 += gt[127]; + m_A122 += gt[128]; + m_A122 += gt[129]; + m_A122 += gt[130]; + m_A122 += gt[131]; + m_A113 += go[126]; + m_A117 += go[127]; + m_A120 += go[128]; + m_A114 += go[129]; + double RHS36 = Idr[126]; + RHS36 += Idr[127]; + RHS36 += Idr[128]; + RHS36 += Idr[129]; + RHS36 += Idr[130]; + RHS36 += Idr[131]; + RHS36 -= go[130] * *cnV[130]; + RHS36 -= go[131] * *cnV[131]; + const double f0 = 1.0 / m_A0; + const double f0_24 = -f0 * m_A55; + m_A57 += m_A1 * f0_24; + RHS24 += f0_24 * RHS0; + const double f0_32 = -f0 * m_A85; + m_A91 += m_A1 * f0_32; + RHS32 += f0_32 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_32 = -f1 * m_A86; + m_A91 += m_A3 * f1_32; + RHS32 += f1_32 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_27 = -f2 * m_A64; + m_A66 += m_A5 * f2_27; + RHS27 += f2_27 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_25 = -f3 * m_A58; + m_A60 += m_A7 * f3_25; + RHS25 += f3_25 * RHS3; + const double f3_34 = -f3 * m_A101; + m_A106 += m_A7 * f3_34; + RHS34 += f3_34 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_20 = -f4 * m_A42; + m_A44 += m_A9 * f4_20; + RHS20 += f4_20 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_21 = -f5 * m_A45; + m_A47 += m_A11 * f5_21; + RHS21 += f5_21 * RHS5; + const double f5_32 = -f5 * m_A87; + m_A88 += m_A11 * f5_32; + RHS32 += f5_32 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_21 = -f6 * m_A46; + m_A47 += m_A13 * f6_21; + m_A48 += m_A14 * f6_21; + RHS21 += f6_21 * RHS6; + const double f6_22 = -f6 * m_A49; + m_A50 += m_A13 * f6_22; + m_A51 += m_A14 * f6_22; + RHS22 += f6_22 * RHS6; + const double f7 = 1.0 / m_A15; + const double f7_23 = -f7 * m_A52; + m_A54 += m_A16 * f7_23; + RHS23 += f7_23 * RHS7; + const double f7_34 = -f7 * m_A102; + m_A103 += m_A16 * f7_34; + RHS34 += f7_34 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_23 = -f8 * m_A53; + m_A54 += m_A18 * f8_23; + RHS23 += f8_23 * RHS8; + const double f9 = 1.0 / m_A19; + const double f9_36 = -f9 * m_A113; + m_A116 += m_A20 * f9_36; + RHS36 += f9_36 * RHS9; + const double f10 = 1.0 / m_A21; + const double f10_28 = -f10 * m_A71; + m_A73 += m_A22 * f10_28; + RHS28 += f10_28 * RHS10; + const double f10_33 = -f10 * m_A94; + m_A99 += m_A22 * f10_33; + RHS33 += f10_33 * RHS10; + const double f13 = 1.0 / m_A27; + const double f13_26 = -f13 * m_A61; + m_A62 += m_A28 * f13_26; + RHS26 += f13_26 * RHS13; + const double f13_33 = -f13 * m_A95; + m_A97 += m_A28 * f13_33; + RHS33 += f13_33 * RHS13; + const double f14 = 1.0 / m_A29; + const double f14_33 = -f14 * m_A96; + m_A99 += m_A30 * f14_33; + RHS33 += f14_33 * RHS14; + const double f15 = 1.0 / m_A31; + const double f15_31 = -f15 * m_A82; + m_A84 += m_A32 * f15_31; + RHS31 += f15_31 * RHS15; + const double f16 = 1.0 / m_A33; + const double f16_27 = -f16 * m_A65; + m_A67 += m_A34 * f16_27; + m_A70 += m_A35 * f16_27; + RHS27 += f16_27 * RHS16; + const double f16_36 = -f16 * m_A114; + m_A115 += m_A34 * f16_36; + m_A122 += m_A35 * f16_36; + RHS36 += f16_36 * RHS16; + const double f17 = 1.0 / m_A36; + const double f17_29 = -f17 * m_A74; + m_A76 += m_A37 * f17_29; + RHS29 += f17_29 * RHS17; + const double f17_35 = -f17 * m_A108; + m_A109 += m_A37 * f17_35; + RHS35 += f17_35 * RHS17; + const double f18 = 1.0 / m_A38; + const double f18_29 = -f18 * m_A75; + m_A77 += m_A39 * f18_29; + RHS29 += f18_29 * RHS18; + const double f18_30 = -f18 * m_A79; + m_A81 += m_A39 * f18_30; + RHS30 += f18_30 * RHS18; + const double f19 = 1.0 / m_A40; + const double f19_30 = -f19 * m_A80; + m_A81 += m_A41 * f19_30; + RHS30 += f19_30 * RHS19; + const double f21 = 1.0 / m_A47; + const double f21_22 = -f21 * m_A50; + m_A51 += m_A48 * f21_22; + RHS22 += f21_22 * RHS21; + const double f21_32 = -f21 * m_A88; + m_A89 += m_A48 * f21_32; + RHS32 += f21_32 * RHS21; + const double f22 = 1.0 / m_A51; + const double f22_32 = -f22 * m_A89; + RHS32 += f22_32 * RHS22; + const double f23 = 1.0 / m_A54; + const double f23_34 = -f23 * m_A103; + RHS34 += f23_34 * RHS23; + const double f24 = 1.0 / m_A56; + const double f24_27 = -f24 * m_A66; + m_A68 += m_A57 * f24_27; + RHS27 += f24_27 * RHS24; + const double f26 = 1.0 / m_A62; + const double f26_31 = -f26 * m_A83; + m_A84 += m_A63 * f26_31; + RHS31 += f26_31 * RHS26; + const double f26_33 = -f26 * m_A97; + m_A98 += m_A63 * f26_33; + RHS33 += f26_33 * RHS26; + const double f27 = 1.0 / m_A67; + const double f27_32 = -f27 * m_A90; + m_A91 += m_A68 * f27_32; + m_A92 += m_A69 * f27_32; + m_A93 += m_A70 * f27_32; + RHS32 += f27_32 * RHS27; + const double f27_34 = -f27 * m_A104; + m_A105 += m_A68 * f27_34; + m_A106 += m_A69 * f27_34; + m_A107 += m_A70 * f27_34; + RHS34 += f27_34 * RHS27; + const double f27_36 = -f27 * m_A115; + m_A119 += m_A68 * f27_36; + m_A121 += m_A69 * f27_36; + m_A122 += m_A70 * f27_36; + RHS36 += f27_36 * RHS27; + const double f28 = 1.0 / m_A72; + const double f28_36 = -f28 * m_A116; + m_A120 += m_A73 * f28_36; + RHS36 += f28_36 * RHS28; + const double f29 = 1.0 / m_A76; + const double f29_35 = -f29 * m_A109; + m_A110 += m_A77 * f29_35; + m_A112 += m_A78 * f29_35; + RHS35 += f29_35 * RHS29; + const double f29_36 = -f29 * m_A117; + m_A118 += m_A77 * f29_36; + m_A122 += m_A78 * f29_36; + RHS36 += f29_36 * RHS29; + const double f30 = 1.0 / m_A81; + const double f30_35 = -f30 * m_A110; + RHS35 += f30_35 * RHS30; + const double f30_36 = -f30 * m_A118; + RHS36 += f30_36 * RHS30; + const double f31 = 1.0 / m_A84; + const double f31_33 = -f31 * m_A98; + RHS33 += f31_33 * RHS31; + const double f32 = 1.0 / m_A91; + const double f32_34 = -f32 * m_A105; + m_A106 += m_A92 * f32_34; + m_A107 += m_A93 * f32_34; + RHS34 += f32_34 * RHS32; + const double f32_36 = -f32 * m_A119; + m_A121 += m_A92 * f32_36; + m_A122 += m_A93 * f32_36; + RHS36 += f32_36 * RHS32; + const double f33 = 1.0 / m_A99; + const double f33_36 = -f33 * m_A120; + m_A122 += m_A100 * f33_36; + RHS36 += f33_36 * RHS33; + const double f34 = 1.0 / m_A106; + const double f34_36 = -f34 * m_A121; + m_A122 += m_A107 * f34_36; + RHS36 += f34_36 * RHS34; + V[36] = RHS36 / m_A122; + double tmp35 = 0.0; + tmp35 += m_A112 * V[36]; + V[35] = (RHS35 - tmp35) / m_A111; + double tmp34 = 0.0; + tmp34 += m_A107 * V[36]; + V[34] = (RHS34 - tmp34) / m_A106; + double tmp33 = 0.0; + tmp33 += m_A100 * V[36]; + V[33] = (RHS33 - tmp33) / m_A99; + double tmp32 = 0.0; + tmp32 += m_A92 * V[34]; + tmp32 += m_A93 * V[36]; + V[32] = (RHS32 - tmp32) / m_A91; + double tmp31 = 0.0; + V[31] = (RHS31 - tmp31) / m_A84; + double tmp30 = 0.0; + V[30] = (RHS30 - tmp30) / m_A81; + double tmp29 = 0.0; + tmp29 += m_A77 * V[30]; + tmp29 += m_A78 * V[36]; + V[29] = (RHS29 - tmp29) / m_A76; + double tmp28 = 0.0; + tmp28 += m_A73 * V[33]; + V[28] = (RHS28 - tmp28) / m_A72; + double tmp27 = 0.0; + tmp27 += m_A68 * V[32]; + tmp27 += m_A69 * V[34]; + tmp27 += m_A70 * V[36]; + V[27] = (RHS27 - tmp27) / m_A67; + double tmp26 = 0.0; + tmp26 += m_A63 * V[31]; + V[26] = (RHS26 - tmp26) / m_A62; + double tmp25 = 0.0; + tmp25 += m_A60 * V[34]; + V[25] = (RHS25 - tmp25) / m_A59; + double tmp24 = 0.0; + tmp24 += m_A57 * V[32]; + V[24] = (RHS24 - tmp24) / m_A56; + double tmp23 = 0.0; + V[23] = (RHS23 - tmp23) / m_A54; + double tmp22 = 0.0; + V[22] = (RHS22 - tmp22) / m_A51; + double tmp21 = 0.0; + tmp21 += m_A48 * V[22]; + V[21] = (RHS21 - tmp21) / m_A47; + double tmp20 = 0.0; + tmp20 += m_A44 * V[25]; + V[20] = (RHS20 - tmp20) / m_A43; + double tmp19 = 0.0; + tmp19 += m_A41 * V[30]; + V[19] = (RHS19 - tmp19) / m_A40; + double tmp18 = 0.0; + tmp18 += m_A39 * V[30]; + V[18] = (RHS18 - tmp18) / m_A38; + double tmp17 = 0.0; + tmp17 += m_A37 * V[29]; + V[17] = (RHS17 - tmp17) / m_A36; + double tmp16 = 0.0; + tmp16 += m_A34 * V[27]; + tmp16 += m_A35 * V[36]; + V[16] = (RHS16 - tmp16) / m_A33; + double tmp15 = 0.0; + tmp15 += m_A32 * V[31]; + V[15] = (RHS15 - tmp15) / m_A31; + double tmp14 = 0.0; + tmp14 += m_A30 * V[33]; + V[14] = (RHS14 - tmp14) / m_A29; + double tmp13 = 0.0; + tmp13 += m_A28 * V[26]; + V[13] = (RHS13 - tmp13) / m_A27; + double tmp12 = 0.0; + tmp12 += m_A26 * V[35]; + V[12] = (RHS12 - tmp12) / m_A25; + double tmp11 = 0.0; + tmp11 += m_A24 * V[12]; + V[11] = (RHS11 - tmp11) / m_A23; + double tmp10 = 0.0; + tmp10 += m_A22 * V[33]; + V[10] = (RHS10 - tmp10) / m_A21; + double tmp9 = 0.0; + tmp9 += m_A20 * V[28]; + V[9] = (RHS9 - tmp9) / m_A19; + double tmp8 = 0.0; + tmp8 += m_A18 * V[23]; + V[8] = (RHS8 - tmp8) / m_A17; + double tmp7 = 0.0; + tmp7 += m_A16 * V[23]; + V[7] = (RHS7 - tmp7) / m_A15; + double tmp6 = 0.0; + tmp6 += m_A13 * V[21]; + tmp6 += m_A14 * V[22]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[21]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[25]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[34]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[24]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[32]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[32]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// stuntcyc +static void nl_gcr_251e2a2e2c8d5b33_20_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A3 += go[5]; + double RHS1 = Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A6 += go[8]; + m_A5 += go[9]; + double RHS2 = Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[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_A10 += go[13]; + m_A9 += go[14]; + m_A7 += go[15]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[17] * *cnV[17]; + RHS3 -= go[18] * *cnV[18]; + RHS3 -= go[19] * *cnV[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A12 += go[20]; + m_A11 += go[21]; + m_A13 += go[22]; + double RHS4 = Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 -= go[23] * *cnV[23]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A19 += gt[26]; + m_A16 += go[24]; + m_A17 += go[25]; + double RHS5 = Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 -= go[26] * *cnV[26]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A7; + m_A8 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_4 = -f1 * m_A11; + m_A14 += m_A3 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A12; + m_A14 += m_A5 * f2_4; + m_A15 += m_A6 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_5 = -f2 * m_A16; + m_A18 += m_A5 * f2_5; + m_A19 += m_A6 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_4 = -f3 * m_A13; + m_A14 += m_A9 * f3_4; + m_A15 += m_A10 * f3_4; + RHS4 += f3_4 * RHS3; + const double f3_5 = -f3 * m_A17; + m_A18 += m_A9 * f3_5; + m_A19 += m_A10 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A14; + const double f4_5 = -f4 * m_A18; + m_A19 += m_A15 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A19; + double tmp4 = 0.0; + tmp4 += m_A15 * V[5]; + V[4] = (RHS4 - tmp4) / m_A14; + double tmp3 = 0.0; + tmp3 += m_A9 * V[4]; + tmp3 += m_A10 * V[5]; + V[3] = (RHS3 - tmp3) / m_A8; + double tmp2 = 0.0; + tmp2 += m_A5 * V[4]; + tmp2 += m_A6 * V[5]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[4]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } // cheekyms -static void nl_gcr_11995a0d28843023_150_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_278f0b40e27b21fc_150_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[12] + gt[13] + gt[14]; - m_A3 = m_A3 + go[12]; - double RHS1 = Idr[12] + Idr[13] + Idr[14] - go[13] * *cnV[13] - go[14] * *cnV[14]; - m_A4 = gt[24] + gt[25] + gt[26]; - m_A6 = m_A6 + go[24]; - m_A5 = m_A5 + go[25]; - double RHS2 = Idr[24] + Idr[25] + Idr[26] - go[26] * *cnV[26]; - m_A7 = gt[36] + gt[37] + gt[38] + gt[39] + gt[40]; - m_A10 = m_A10 + go[36]; - m_A9 = m_A9 + go[37]; - m_A8 = m_A8 + go[38]; - double RHS3 = Idr[36] + Idr[37] + Idr[38] + Idr[39] + Idr[40] - go[39] * *cnV[39] - go[40] * *cnV[40]; - m_A11 = gt[48] + gt[49] + gt[50]; - m_A12 = m_A12 + go[48]; - double RHS4 = Idr[48] + Idr[49] + Idr[50] - go[49] * *cnV[49] - go[50] * *cnV[50]; - m_A13 = gt[60] + gt[61] + gt[62] + gt[63] + gt[64] + gt[65] + gt[66]; - m_A15 = m_A15 + go[60]; - m_A14 = m_A14 + go[61]; - double RHS5 = Idr[60] + Idr[61] + Idr[62] + Idr[63] + Idr[64] + Idr[65] + Idr[66] - go[62] * *cnV[62] - go[63] * *cnV[63] - go[64] * *cnV[64] - go[65] * *cnV[65] - go[66] * *cnV[66]; - m_A16 = gt[72] + gt[73] + gt[74]; - m_A17 = m_A17 + go[72]; - double RHS6 = Idr[72] + Idr[73] + Idr[74] - go[73] * *cnV[73] - go[74] * *cnV[74]; - m_A18 = gt[84] + gt[85]; - m_A19 = m_A19 + go[84]; - double RHS7 = Idr[84] + Idr[85] - go[85] * *cnV[85]; - m_A20 = gt[96] + gt[97] + gt[98]; - m_A21 = m_A21 + go[96]; - m_A23 = m_A23 + go[97]; - m_A22 = m_A22 + go[98]; - double RHS8 = Idr[96] + Idr[97] + Idr[98]; - m_A24 = gt[108] + gt[109] + gt[110]; - m_A25 = m_A25 + go[108]; - double RHS9 = Idr[108] + Idr[109] + Idr[110] - go[109] * *cnV[109] - go[110] * *cnV[110]; - m_A26 = gt[120] + gt[121] + gt[122] + gt[123]; - m_A27 = m_A27 + go[120]; - m_A28 = m_A28 + go[121]; - double RHS10 = Idr[120] + Idr[121] + Idr[122] + Idr[123] - go[122] * *cnV[122] - go[123] * *cnV[123]; - m_A29 = gt[132] + gt[133]; - m_A30 = m_A30 + go[132]; - double RHS11 = Idr[132] + Idr[133] - go[133] * *cnV[133]; - m_A31 = gt[144] + gt[145] + gt[146] + gt[147]; - m_A32 = m_A32 + go[144]; - m_A33 = m_A33 + go[145]; - double RHS12 = Idr[144] + Idr[145] + Idr[146] + Idr[147] - go[146] * *cnV[146] - go[147] * *cnV[147]; - m_A34 = gt[156] + gt[157] + gt[158]; - m_A36 = m_A36 + go[156]; - m_A35 = m_A35 + go[157]; - double RHS13 = Idr[156] + Idr[157] + Idr[158] - go[158] * *cnV[158]; - m_A37 = gt[168] + gt[169]; - m_A38 = m_A38 + go[168]; - double RHS14 = Idr[168] + Idr[169] - go[169] * *cnV[169]; - m_A39 = gt[180] + gt[181]; - m_A40 = m_A40 + go[180]; - double RHS15 = Idr[180] + Idr[181] - go[181] * *cnV[181]; - m_A41 = gt[192] + gt[193]; - m_A42 = m_A42 + go[192]; - double RHS16 = Idr[192] + Idr[193] - go[193] * *cnV[193]; - m_A43 = gt[204] + gt[205] + gt[206] + gt[207] + gt[208]; - m_A44 = m_A44 + go[204]; - m_A46 = m_A46 + go[205]; - m_A45 = m_A45 + go[206]; - double RHS17 = Idr[204] + Idr[205] + Idr[206] + Idr[207] + Idr[208] - go[207] * *cnV[207] - go[208] * *cnV[208]; - m_A47 = gt[216] + gt[217] + gt[218] + gt[219] + gt[220]; - m_A48 = m_A48 + go[216]; - m_A50 = m_A50 + go[217]; - m_A49 = m_A49 + go[218]; - double RHS18 = Idr[216] + Idr[217] + Idr[218] + Idr[219] + Idr[220] - go[219] * *cnV[219] - go[220] * *cnV[220]; - m_A51 = gt[228] + gt[229]; - m_A52 = m_A52 + go[228]; - double RHS19 = Idr[228] + Idr[229] - go[229] * *cnV[229]; - m_A55 = gt[240] + gt[241]; - m_A54 = m_A54 + go[240]; - m_A53 = m_A53 + go[241]; - double RHS20 = Idr[240] + Idr[241]; - m_A60 = gt[252] + gt[253] + gt[254]; - m_A58 = m_A58 + go[252]; - m_A57 = m_A57 + go[253]; - double RHS21 = Idr[252] + Idr[253] + Idr[254] - go[254] * *cnV[254]; - m_A63 = gt[264] + gt[265]; - m_A64 = m_A64 + go[264]; - double RHS22 = Idr[264] + Idr[265] - go[265] * *cnV[265]; - m_A65 = gt[276] + gt[277] + gt[278]; - m_A66 = m_A66 + go[276]; - double RHS23 = Idr[276] + Idr[277] + Idr[278] - go[277] * *cnV[277] - go[278] * *cnV[278]; - m_A69 = gt[288] + gt[289] + gt[290]; - m_A67 = m_A67 + go[288]; - m_A68 = m_A68 + go[289]; - double RHS24 = Idr[288] + Idr[289] + Idr[290] - go[290] * *cnV[290]; - m_A76 = gt[300] + gt[301]; - m_A73 = m_A73 + go[300]; - m_A72 = m_A72 + go[301]; - double RHS25 = Idr[300] + Idr[301]; - m_A81 = gt[312] + gt[313]; - m_A80 = m_A80 + go[312]; - m_A79 = m_A79 + go[313]; - double RHS26 = Idr[312] + Idr[313]; - m_A84 = gt[324] + gt[325] + gt[326]; - m_A85 = m_A85 + go[324]; - m_A83 = m_A83 + go[325]; - double RHS27 = Idr[324] + Idr[325] + Idr[326] - go[326] * *cnV[326]; - m_A88 = gt[336] + gt[337]; - m_A87 = m_A87 + go[336]; - m_A86 = m_A86 + go[337]; - double RHS28 = Idr[336] + Idr[337]; - m_A95 = gt[348] + gt[349] + gt[350] + gt[351] + gt[352]; - m_A90 = m_A90 + go[348]; - m_A92 = m_A92 + go[349]; - m_A91 = m_A91 + go[350]; - double RHS29 = Idr[348] + Idr[349] + Idr[350] + Idr[351] + Idr[352] - go[351] * *cnV[351] - go[352] * *cnV[352]; - m_A100 = gt[360] + gt[361] + gt[362] + gt[363] + gt[364] + gt[365] + gt[366]; - m_A98 = m_A98 + go[360]; - m_A101 = m_A101 + go[361]; - double RHS30 = Idr[360] + Idr[361] + Idr[362] + Idr[363] + Idr[364] + Idr[365] + Idr[366] - go[362] * *cnV[362] - go[363] * *cnV[363] - go[364] * *cnV[364] - go[365] * *cnV[365] - go[366] * *cnV[366]; - m_A103 = gt[372] + gt[373] + gt[374] + gt[375] + gt[376] + gt[377]; - m_A104 = m_A104 + go[372]; - m_A104 = m_A104 + go[373]; - m_A102 = m_A102 + go[374]; - double RHS31 = Idr[372] + Idr[373] + Idr[374] + Idr[375] + Idr[376] + Idr[377] - go[375] * *cnV[375] - go[376] * *cnV[376] - go[377] * *cnV[377]; - m_A110 = gt[384] + gt[385] + gt[386]; - m_A106 = m_A106 + go[384]; - m_A107 = m_A107 + go[385]; - m_A105 = m_A105 + go[386]; - double RHS32 = Idr[384] + Idr[385] + Idr[386]; - m_A114 = gt[396] + gt[397] + gt[398] + gt[399] + gt[400] + gt[401] + gt[402]; - m_A112 = m_A112 + go[396]; - m_A115 = m_A115 + go[397]; - double RHS33 = Idr[396] + Idr[397] + Idr[398] + Idr[399] + Idr[400] + Idr[401] + Idr[402] - go[398] * *cnV[398] - go[399] * *cnV[399] - go[400] * *cnV[400] - go[401] * *cnV[401] - go[402] * *cnV[402]; - m_A121 = gt[408] + gt[409] + gt[410] + gt[411] + gt[412] + gt[413] + gt[414]; - m_A118 = m_A118 + go[408]; - m_A116 = m_A116 + go[409]; - double RHS34 = Idr[408] + Idr[409] + Idr[410] + Idr[411] + Idr[412] + Idr[413] + Idr[414] - go[410] * *cnV[410] - go[411] * *cnV[411] - go[412] * *cnV[412] - go[413] * *cnV[413] - go[414] * *cnV[414]; - m_A125 = gt[420] + gt[421] + gt[422]; - m_A124 = m_A124 + go[420]; - m_A126 = m_A126 + go[421]; - m_A123 = m_A123 + go[422]; - double RHS35 = Idr[420] + Idr[421] + Idr[422]; - m_A132 = gt[432] + gt[433] + gt[434]; - m_A127 = m_A127 + go[432]; - m_A128 = m_A128 + go[433]; - m_A130 = m_A130 + go[434]; - double RHS36 = Idr[432] + Idr[433] + Idr[434]; - m_A149 = gt[444] + gt[445] + gt[446] + gt[447] + gt[448] + gt[449] + gt[450] + gt[451] + gt[452] + gt[453] + gt[454]; - m_A140 = m_A140 + go[444]; - m_A147 = m_A147 + go[445]; - m_A139 = m_A139 + go[446]; - m_A138 = m_A138 + go[447]; - m_A137 = m_A137 + go[448]; - m_A136 = m_A136 + go[449]; - m_A135 = m_A135 + go[450]; - m_A134 = m_A134 + go[451]; - m_A143 = m_A143 + go[452]; - m_A143 = m_A143 + go[453]; - double RHS37 = Idr[444] + Idr[445] + Idr[446] + Idr[447] + Idr[448] + Idr[449] + Idr[450] + Idr[451] + Idr[452] + Idr[453] + Idr[454] - go[454] * *cnV[454]; -const double f0 = 1.0 / m_A0; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A6 += go[6]; + m_A5 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[8] * *cnV[8]; + m_A7 += gt[9]; + m_A7 += gt[10]; + m_A7 += gt[11]; + m_A7 += gt[12]; + m_A7 += gt[13]; + m_A10 += go[9]; + m_A9 += go[10]; + m_A8 += go[11]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + m_A11 += gt[14]; + m_A11 += gt[15]; + m_A11 += gt[16]; + m_A12 += go[14]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 -= go[15] * *cnV[15]; + RHS4 -= go[16] * *cnV[16]; + m_A13 += gt[17]; + m_A13 += gt[18]; + m_A13 += gt[19]; + m_A13 += gt[20]; + m_A13 += gt[21]; + m_A13 += gt[22]; + m_A13 += gt[23]; + m_A15 += go[17]; + m_A14 += go[18]; + double RHS5 = Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[19] * *cnV[19]; + RHS5 -= go[20] * *cnV[20]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + RHS5 -= go[23] * *cnV[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A17 += go[24]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 -= go[25] * *cnV[25]; + RHS6 -= go[26] * *cnV[26]; + m_A18 += gt[27]; + m_A18 += gt[28]; + m_A19 += go[27]; + double RHS7 = Idr[27]; + RHS7 += Idr[28]; + RHS7 -= go[28] * *cnV[28]; + m_A20 += gt[29]; + m_A20 += gt[30]; + m_A20 += gt[31]; + m_A21 += go[29]; + m_A23 += go[30]; + m_A22 += go[31]; + double RHS8 = Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + m_A24 += gt[32]; + m_A24 += gt[33]; + m_A24 += gt[34]; + m_A25 += go[32]; + double RHS9 = Idr[32]; + RHS9 += Idr[33]; + RHS9 += Idr[34]; + RHS9 -= go[33] * *cnV[33]; + RHS9 -= go[34] * *cnV[34]; + m_A26 += gt[35]; + m_A26 += gt[36]; + m_A26 += gt[37]; + m_A26 += gt[38]; + m_A27 += go[35]; + m_A28 += go[36]; + double RHS10 = Idr[35]; + RHS10 += Idr[36]; + RHS10 += Idr[37]; + RHS10 += Idr[38]; + RHS10 -= go[37] * *cnV[37]; + RHS10 -= go[38] * *cnV[38]; + m_A29 += gt[39]; + m_A29 += gt[40]; + m_A30 += go[39]; + double RHS11 = Idr[39]; + RHS11 += Idr[40]; + RHS11 -= go[40] * *cnV[40]; + m_A31 += gt[41]; + m_A31 += gt[42]; + m_A31 += gt[43]; + m_A31 += gt[44]; + m_A32 += go[41]; + m_A33 += go[42]; + double RHS12 = Idr[41]; + RHS12 += Idr[42]; + RHS12 += Idr[43]; + RHS12 += Idr[44]; + RHS12 -= go[43] * *cnV[43]; + RHS12 -= go[44] * *cnV[44]; + m_A34 += gt[45]; + m_A34 += gt[46]; + m_A34 += gt[47]; + m_A36 += go[45]; + m_A35 += go[46]; + double RHS13 = Idr[45]; + RHS13 += Idr[46]; + RHS13 += Idr[47]; + RHS13 -= go[47] * *cnV[47]; + m_A37 += gt[48]; + m_A37 += gt[49]; + m_A38 += go[48]; + double RHS14 = Idr[48]; + RHS14 += Idr[49]; + RHS14 -= go[49] * *cnV[49]; + m_A39 += gt[50]; + m_A39 += gt[51]; + m_A40 += go[50]; + double RHS15 = Idr[50]; + RHS15 += Idr[51]; + RHS15 -= go[51] * *cnV[51]; + m_A41 += gt[52]; + m_A41 += gt[53]; + m_A42 += go[52]; + double RHS16 = Idr[52]; + RHS16 += Idr[53]; + RHS16 -= go[53] * *cnV[53]; + m_A43 += gt[54]; + m_A43 += gt[55]; + m_A43 += gt[56]; + m_A43 += gt[57]; + m_A43 += gt[58]; + m_A44 += go[54]; + m_A46 += go[55]; + m_A45 += go[56]; + double RHS17 = Idr[54]; + RHS17 += Idr[55]; + RHS17 += Idr[56]; + RHS17 += Idr[57]; + RHS17 += Idr[58]; + RHS17 -= go[57] * *cnV[57]; + RHS17 -= go[58] * *cnV[58]; + m_A47 += gt[59]; + m_A47 += gt[60]; + m_A47 += gt[61]; + m_A47 += gt[62]; + m_A47 += gt[63]; + m_A48 += go[59]; + m_A50 += go[60]; + m_A49 += go[61]; + double RHS18 = Idr[59]; + RHS18 += Idr[60]; + RHS18 += Idr[61]; + RHS18 += Idr[62]; + RHS18 += Idr[63]; + RHS18 -= go[62] * *cnV[62]; + RHS18 -= go[63] * *cnV[63]; + m_A51 += gt[64]; + m_A51 += gt[65]; + m_A52 += go[64]; + double RHS19 = Idr[64]; + RHS19 += Idr[65]; + RHS19 -= go[65] * *cnV[65]; + m_A55 += gt[66]; + m_A55 += gt[67]; + m_A54 += go[66]; + m_A53 += go[67]; + double RHS20 = Idr[66]; + RHS20 += Idr[67]; + m_A60 += gt[68]; + m_A60 += gt[69]; + m_A60 += gt[70]; + m_A58 += go[68]; + m_A57 += go[69]; + double RHS21 = Idr[68]; + RHS21 += Idr[69]; + RHS21 += Idr[70]; + RHS21 -= go[70] * *cnV[70]; + m_A63 += gt[71]; + m_A63 += gt[72]; + m_A64 += go[71]; + double RHS22 = Idr[71]; + RHS22 += Idr[72]; + RHS22 -= go[72] * *cnV[72]; + m_A65 += gt[73]; + m_A65 += gt[74]; + m_A65 += gt[75]; + m_A66 += go[73]; + double RHS23 = Idr[73]; + RHS23 += Idr[74]; + RHS23 += Idr[75]; + RHS23 -= go[74] * *cnV[74]; + RHS23 -= go[75] * *cnV[75]; + m_A69 += gt[76]; + m_A69 += gt[77]; + m_A69 += gt[78]; + m_A67 += go[76]; + m_A68 += go[77]; + double RHS24 = Idr[76]; + RHS24 += Idr[77]; + RHS24 += Idr[78]; + RHS24 -= go[78] * *cnV[78]; + m_A76 += gt[79]; + m_A76 += gt[80]; + m_A73 += go[79]; + m_A72 += go[80]; + double RHS25 = Idr[79]; + RHS25 += Idr[80]; + m_A81 += gt[81]; + m_A81 += gt[82]; + m_A80 += go[81]; + m_A79 += go[82]; + double RHS26 = Idr[81]; + RHS26 += Idr[82]; + m_A84 += gt[83]; + m_A84 += gt[84]; + m_A84 += gt[85]; + m_A85 += go[83]; + m_A83 += go[84]; + double RHS27 = Idr[83]; + RHS27 += Idr[84]; + RHS27 += Idr[85]; + RHS27 -= go[85] * *cnV[85]; + m_A88 += gt[86]; + m_A88 += gt[87]; + m_A87 += go[86]; + m_A86 += go[87]; + double RHS28 = Idr[86]; + RHS28 += Idr[87]; + m_A95 += gt[88]; + m_A95 += gt[89]; + m_A95 += gt[90]; + m_A95 += gt[91]; + m_A95 += gt[92]; + m_A90 += go[88]; + m_A92 += go[89]; + m_A91 += go[90]; + double RHS29 = Idr[88]; + RHS29 += Idr[89]; + RHS29 += Idr[90]; + RHS29 += Idr[91]; + RHS29 += Idr[92]; + RHS29 -= go[91] * *cnV[91]; + RHS29 -= go[92] * *cnV[92]; + m_A100 += gt[93]; + m_A100 += gt[94]; + m_A100 += gt[95]; + m_A100 += gt[96]; + m_A100 += gt[97]; + m_A100 += gt[98]; + m_A100 += gt[99]; + m_A98 += go[93]; + m_A101 += go[94]; + double RHS30 = Idr[93]; + RHS30 += Idr[94]; + RHS30 += Idr[95]; + RHS30 += Idr[96]; + RHS30 += Idr[97]; + RHS30 += Idr[98]; + RHS30 += Idr[99]; + RHS30 -= go[95] * *cnV[95]; + RHS30 -= go[96] * *cnV[96]; + RHS30 -= go[97] * *cnV[97]; + RHS30 -= go[98] * *cnV[98]; + RHS30 -= go[99] * *cnV[99]; + m_A103 += gt[100]; + m_A103 += gt[101]; + m_A103 += gt[102]; + m_A103 += gt[103]; + m_A103 += gt[104]; + m_A103 += gt[105]; + m_A104 += go[100]; + m_A104 += go[101]; + m_A102 += go[102]; + double RHS31 = Idr[100]; + RHS31 += Idr[101]; + RHS31 += Idr[102]; + RHS31 += Idr[103]; + RHS31 += Idr[104]; + RHS31 += Idr[105]; + RHS31 -= go[103] * *cnV[103]; + RHS31 -= go[104] * *cnV[104]; + RHS31 -= go[105] * *cnV[105]; + m_A110 += gt[106]; + m_A110 += gt[107]; + m_A110 += gt[108]; + m_A106 += go[106]; + m_A107 += go[107]; + m_A105 += go[108]; + double RHS32 = Idr[106]; + RHS32 += Idr[107]; + RHS32 += Idr[108]; + m_A114 += gt[109]; + m_A114 += gt[110]; + m_A114 += gt[111]; + m_A114 += gt[112]; + m_A114 += gt[113]; + m_A114 += gt[114]; + m_A114 += gt[115]; + m_A112 += go[109]; + m_A115 += go[110]; + double RHS33 = Idr[109]; + RHS33 += Idr[110]; + RHS33 += Idr[111]; + RHS33 += Idr[112]; + RHS33 += Idr[113]; + RHS33 += Idr[114]; + RHS33 += Idr[115]; + RHS33 -= go[111] * *cnV[111]; + RHS33 -= go[112] * *cnV[112]; + RHS33 -= go[113] * *cnV[113]; + RHS33 -= go[114] * *cnV[114]; + RHS33 -= go[115] * *cnV[115]; + m_A121 += gt[116]; + m_A121 += gt[117]; + m_A121 += gt[118]; + m_A121 += gt[119]; + m_A121 += gt[120]; + m_A121 += gt[121]; + m_A121 += gt[122]; + m_A118 += go[116]; + m_A116 += go[117]; + double RHS34 = Idr[116]; + RHS34 += Idr[117]; + RHS34 += Idr[118]; + RHS34 += Idr[119]; + RHS34 += Idr[120]; + RHS34 += Idr[121]; + RHS34 += Idr[122]; + RHS34 -= go[118] * *cnV[118]; + RHS34 -= go[119] * *cnV[119]; + RHS34 -= go[120] * *cnV[120]; + RHS34 -= go[121] * *cnV[121]; + RHS34 -= go[122] * *cnV[122]; + m_A125 += gt[123]; + m_A125 += gt[124]; + m_A125 += gt[125]; + m_A124 += go[123]; + m_A126 += go[124]; + m_A123 += go[125]; + double RHS35 = Idr[123]; + RHS35 += Idr[124]; + RHS35 += Idr[125]; + m_A132 += gt[126]; + m_A132 += gt[127]; + m_A132 += gt[128]; + m_A127 += go[126]; + m_A128 += go[127]; + m_A130 += go[128]; + double RHS36 = Idr[126]; + RHS36 += Idr[127]; + RHS36 += Idr[128]; + m_A149 += gt[129]; + m_A149 += gt[130]; + m_A149 += gt[131]; + m_A149 += gt[132]; + m_A149 += gt[133]; + m_A149 += gt[134]; + m_A149 += gt[135]; + m_A149 += gt[136]; + m_A149 += gt[137]; + m_A149 += gt[138]; + m_A149 += gt[139]; + m_A140 += go[129]; + m_A147 += go[130]; + m_A139 += go[131]; + m_A138 += go[132]; + m_A137 += go[133]; + m_A136 += go[134]; + m_A135 += go[135]; + m_A134 += go[136]; + m_A143 += go[137]; + m_A143 += go[138]; + double RHS37 = Idr[129]; + RHS37 += Idr[130]; + RHS37 += Idr[131]; + RHS37 += Idr[132]; + RHS37 += Idr[133]; + RHS37 += Idr[134]; + RHS37 += Idr[135]; + RHS37 += Idr[136]; + RHS37 += Idr[137]; + RHS37 += Idr[138]; + RHS37 += Idr[139]; + RHS37 -= go[139] * *cnV[139]; + const double f0 = 1.0 / m_A0; const double f0_31 = -f0 * m_A102; m_A103 += m_A1 * f0_31; RHS31 += f0_31 * RHS0; -const double f1 = 1.0 / m_A2; + const double f1 = 1.0 / m_A2; const double f1_20 = -f1 * m_A53; m_A55 += m_A3 * f1_20; RHS20 += f1_20 * RHS1; -const double f2 = 1.0 / m_A4; + const double f2 = 1.0 / m_A4; const double f2_20 = -f2 * m_A54; m_A55 += m_A5 * f2_20; m_A56 += m_A6 * f2_20; @@ -427,7 +2444,7 @@ const double f2 = 1.0 / m_A4; m_A117 += m_A5 * f2_34; m_A118 += m_A6 * f2_34; RHS34 += f2_34 * RHS2; -const double f3 = 1.0 / m_A7; + const double f3 = 1.0 / m_A7; const double f3_21 = -f3 * m_A58; m_A60 += m_A8 * f3_21; m_A61 += m_A9 * f3_21; @@ -438,24 +2455,24 @@ const double f3 = 1.0 / m_A7; m_A76 += m_A9 * f3_25; m_A78 += m_A10 * f3_25; RHS25 += f3_25 * RHS3; -const double f4 = 1.0 / m_A11; + const double f4 = 1.0 / m_A11; const double f4_24 = -f4 * m_A67; m_A69 += m_A12 * f4_24; RHS24 += f4_24 * RHS4; -const double f5 = 1.0 / m_A13; + const double f5 = 1.0 / m_A13; const double f5_29 = -f5 * m_A90; m_A91 += m_A14 * f5_29; m_A93 += m_A15 * f5_29; RHS29 += f5_29 * RHS5; -const double f6 = 1.0 / m_A16; + const double f6 = 1.0 / m_A16; const double f6_26 = -f6 * m_A79; m_A81 += m_A17 * f6_26; RHS26 += f6_26 * RHS6; -const double f7 = 1.0 / m_A18; + const double f7 = 1.0 / m_A18; const double f7_27 = -f7 * m_A83; m_A84 += m_A19 * f7_27; RHS27 += f7_27 * RHS7; -const double f8 = 1.0 / m_A20; + const double f8 = 1.0 / m_A20; const double f8_24 = -f8 * m_A68; m_A69 += m_A21 * f8_24; m_A70 += m_A22 * f8_24; @@ -471,11 +2488,11 @@ const double f8 = 1.0 / m_A20; m_A94 += m_A22 * f8_29; m_A95 += m_A23 * f8_29; RHS29 += f8_29 * RHS8; -const double f9 = 1.0 / m_A24; + const double f9 = 1.0 / m_A24; const double f9_28 = -f9 * m_A86; m_A88 += m_A25 * f9_28; RHS28 += f9_28 * RHS9; -const double f10 = 1.0 / m_A26; + const double f10 = 1.0 / m_A26; const double f10_26 = -f10 * m_A80; m_A81 += m_A27 * f10_26; m_A82 += m_A28 * f10_26; @@ -488,11 +2505,11 @@ const double f10 = 1.0 / m_A26; m_A129 += m_A27 * f10_36; m_A132 += m_A28 * f10_36; RHS36 += f10_36 * RHS10; -const double f11 = 1.0 / m_A29; + const double f11 = 1.0 / m_A29; const double f11_32 = -f11 * m_A105; m_A110 += m_A30 * f11_32; RHS32 += f11_32 * RHS11; -const double f12 = 1.0 / m_A31; + const double f12 = 1.0 / m_A31; const double f12_28 = -f12 * m_A87; m_A88 += m_A32 * f12_28; m_A89 += m_A33 * f12_28; @@ -505,7 +2522,7 @@ const double f12 = 1.0 / m_A31; m_A108 += m_A32 * f12_32; m_A110 += m_A33 * f12_32; RHS32 += f12_32 * RHS12; -const double f13 = 1.0 / m_A34; + const double f13 = 1.0 / m_A34; const double f13_29 = -f13 * m_A92; m_A95 += m_A35 * f13_29; m_A97 += m_A36 * f13_29; @@ -514,19 +2531,19 @@ const double f13 = 1.0 / m_A34; m_A141 += m_A35 * f13_37; m_A149 += m_A36 * f13_37; RHS37 += f13_37 * RHS13; -const double f14 = 1.0 / m_A37; + const double f14 = 1.0 / m_A37; const double f14_35 = -f14 * m_A123; m_A125 += m_A38 * f14_35; RHS35 += f14_35 * RHS14; -const double f15 = 1.0 / m_A39; + const double f15 = 1.0 / m_A39; const double f15_35 = -f15 * m_A124; m_A125 += m_A40 * f15_35; RHS35 += f15_35 * RHS15; -const double f16 = 1.0 / m_A41; + const double f16 = 1.0 / m_A41; const double f16_37 = -f16 * m_A135; m_A149 += m_A42 * f16_37; RHS37 += f16_37 * RHS16; -const double f17 = 1.0 / m_A43; + const double f17 = 1.0 / m_A43; const double f17_36 = -f17 * m_A128; m_A131 += m_A44 * f17_36; m_A132 += m_A45 * f17_36; @@ -537,7 +2554,7 @@ const double f17 = 1.0 / m_A43; m_A148 += m_A45 * f17_37; m_A149 += m_A46 * f17_37; RHS37 += f17_37 * RHS17; -const double f18 = 1.0 / m_A47; + const double f18 = 1.0 / m_A47; const double f18_32 = -f18 * m_A107; m_A109 += m_A48 * f18_32; m_A110 += m_A49 * f18_32; @@ -548,18 +2565,18 @@ const double f18 = 1.0 / m_A47; m_A144 += m_A49 * f18_37; m_A149 += m_A50 * f18_37; RHS37 += f18_37 * RHS18; -const double f19 = 1.0 / m_A51; + const double f19 = 1.0 / m_A51; const double f19_37 = -f19 * m_A138; m_A149 += m_A52 * f19_37; RHS37 += f19_37 * RHS19; -const double f20 = 1.0 / m_A55; + const double f20 = 1.0 / m_A55; const double f20_21 = -f20 * m_A59; m_A60 += m_A56 * f20_21; RHS21 += f20_21 * RHS20; const double f20_34 = -f20 * m_A117; m_A118 += m_A56 * f20_34; RHS34 += f20_34 * RHS20; -const double f21 = 1.0 / m_A60; + const double f21 = 1.0 / m_A60; const double f21_25 = -f21 * m_A74; m_A76 += m_A61 * f21_25; m_A78 += m_A62 * f21_25; @@ -568,15 +2585,15 @@ const double f21 = 1.0 / m_A60; m_A119 += m_A61 * f21_34; m_A121 += m_A62 * f21_34; RHS34 += f21_34 * RHS21; -const double f22 = 1.0 / m_A63; + const double f22 = 1.0 / m_A63; const double f22_37 = -f22 * m_A139; m_A149 += m_A64 * f22_37; RHS37 += f22_37 * RHS22; -const double f23 = 1.0 / m_A65; + const double f23 = 1.0 / m_A65; const double f23_37 = -f23 * m_A140; m_A149 += m_A66 * f23_37; RHS37 += f23_37 * RHS23; -const double f24 = 1.0 / m_A69; + const double f24 = 1.0 / m_A69; const double f24_25 = -f24 * m_A75; m_A76 += m_A70 * f24_25; m_A77 += m_A71 * f24_25; @@ -585,7 +2602,7 @@ const double f24 = 1.0 / m_A69; m_A94 += m_A70 * f24_29; m_A95 += m_A71 * f24_29; RHS29 += f24_29 * RHS24; -const double f25 = 1.0 / m_A76; + const double f25 = 1.0 / m_A76; const double f25_29 = -f25 * m_A94; m_A95 += m_A77 * f25_29; m_A96 += m_A78 * f25_29; @@ -594,25 +2611,25 @@ const double f25 = 1.0 / m_A76; m_A120 += m_A77 * f25_34; m_A121 += m_A78 * f25_34; RHS34 += f25_34 * RHS25; -const double f26 = 1.0 / m_A81; + const double f26 = 1.0 / m_A81; const double f26_33 = -f26 * m_A113; m_A115 += m_A82 * f26_33; RHS33 += f26_33 * RHS26; const double f26_36 = -f26 * m_A129; m_A132 += m_A82 * f26_36; RHS36 += f26_36 * RHS26; -const double f27 = 1.0 / m_A84; + const double f27 = 1.0 / m_A84; const double f27_36 = -f27 * m_A130; m_A132 += m_A85 * f27_36; RHS36 += f27_36 * RHS27; -const double f28 = 1.0 / m_A88; + const double f28 = 1.0 / m_A88; const double f28_30 = -f28 * m_A99; m_A101 += m_A89 * f28_30; RHS30 += f28_30 * RHS28; const double f28_32 = -f28 * m_A108; m_A110 += m_A89 * f28_32; RHS32 += f28_32 * RHS28; -const double f29 = 1.0 / m_A95; + const double f29 = 1.0 / m_A95; const double f29_34 = -f29 * m_A120; m_A121 += m_A96 * f29_34; m_A122 += m_A97 * f29_34; @@ -621,37 +2638,37 @@ const double f29 = 1.0 / m_A95; m_A146 += m_A96 * f29_37; m_A149 += m_A97 * f29_37; RHS37 += f29_37 * RHS29; -const double f30 = 1.0 / m_A100; + const double f30 = 1.0 / m_A100; const double f30_32 = -f30 * m_A109; m_A110 += m_A101 * f30_32; RHS32 += f30_32 * RHS30; const double f30_37 = -f30 * m_A142; m_A144 += m_A101 * f30_37; RHS37 += f30_37 * RHS30; -const double f31 = 1.0 / m_A103; + const double f31 = 1.0 / m_A103; const double f31_37 = -f31 * m_A143; m_A149 += m_A104 * f31_37; RHS37 += f31_37 * RHS31; -const double f32 = 1.0 / m_A110; + const double f32 = 1.0 / m_A110; const double f32_37 = -f32 * m_A144; m_A149 += m_A111 * f32_37; RHS37 += f32_37 * RHS32; -const double f33 = 1.0 / m_A114; + const double f33 = 1.0 / m_A114; const double f33_36 = -f33 * m_A131; m_A132 += m_A115 * f33_36; RHS36 += f33_36 * RHS33; const double f33_37 = -f33 * m_A145; m_A148 += m_A115 * f33_37; RHS37 += f33_37 * RHS33; -const double f34 = 1.0 / m_A121; + const double f34 = 1.0 / m_A121; const double f34_37 = -f34 * m_A146; m_A149 += m_A122 * f34_37; RHS37 += f34_37 * RHS34; -const double f35 = 1.0 / m_A125; + const double f35 = 1.0 / m_A125; const double f35_37 = -f35 * m_A147; m_A149 += m_A126 * f35_37; RHS37 += f35_37 * RHS35; -const double f36 = 1.0 / m_A132; + const double f36 = 1.0 / m_A132; const double f36_37 = -f36 * m_A148; m_A149 += m_A133 * f36_37; RHS37 += f36_37 * RHS36; @@ -786,565 +2803,1061 @@ const double f36 = 1.0 / m_A132; V[0] = (RHS0 - tmp0) / m_A0; } -// mario -static void nl_gcr_15fa1a3cf923c9fd_29_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// zac1b11142 +static void nl_gcr_2b5c86f8653bcde7_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[8] + gt[9] + gt[10]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A4 = gt[16] + gt[17] + gt[18]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] - go[17] * *cnV[17] - go[18] * *cnV[18]; - m_A6 = gt[24] + gt[25] + gt[26] + gt[27]; - m_A8 = m_A8 + go[24]; - m_A7 = m_A7 + go[25]; - m_A7 = m_A7 + go[26]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] + Idr[27] - go[27] * *cnV[27]; - m_A9 = gt[32] + gt[33] + gt[34]; - m_A10 = m_A10 + go[32]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] - go[33] * *cnV[33] - go[34] * *cnV[34]; - m_A11 = gt[40] + gt[41]; - m_A12 = m_A12 + go[40]; - double RHS5 = Idr[40] + Idr[41] - go[41] * *cnV[41]; - m_A14 = gt[48] + gt[49] + gt[50] + gt[51] + gt[52] + gt[53] + gt[54]; - m_A16 = m_A16 + go[48]; - m_A16 = m_A16 + go[49]; - m_A13 = m_A13 + go[50]; - m_A13 = m_A13 + go[51]; - m_A15 = m_A15 + go[52]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] + Idr[51] + Idr[52] + Idr[53] + Idr[54] - go[53] * *cnV[53] - go[54] * *cnV[54]; - m_A22 = gt[56] + gt[57] + gt[58] + gt[59] + gt[60] + gt[61]; - m_A20 = m_A20 + go[56]; - m_A21 = m_A21 + go[57]; - m_A19 = m_A19 + go[58]; - m_A18 = m_A18 + go[59]; - m_A17 = m_A17 + go[60]; - double RHS7 = Idr[56] + Idr[57] + Idr[58] + Idr[59] + Idr[60] + Idr[61] - go[61] * *cnV[61]; - m_A28 = gt[64] + gt[65] + gt[66] + gt[67] + gt[68] + gt[69]; - m_A25 = m_A25 + go[64]; - m_A24 = m_A24 + go[65]; - m_A26 = m_A26 + go[66]; - m_A26 = m_A26 + go[67]; - double RHS8 = Idr[64] + Idr[65] + Idr[66] + Idr[67] + Idr[68] + Idr[69] - go[68] * *cnV[68] - go[69] * *cnV[69]; -const double f0 = 1.0 / m_A0; - const double f0_7 = -f0 * m_A17; - m_A22 += m_A1 * f0_7; - RHS7 += f0_7 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_7 = -f1 * m_A18; - m_A22 += m_A3 * f1_7; - RHS7 += f1_7 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_7 = -f2 * m_A19; - m_A22 += m_A5 * f2_7; - RHS7 += f2_7 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_6 = -f3 * m_A13; - m_A14 += m_A7 * f3_6; - m_A16 += m_A8 * f3_6; - RHS6 += f3_6 * RHS3; - const double f3_8 = -f3 * m_A24; - m_A26 += m_A7 * f3_8; - m_A28 += m_A8 * f3_8; - RHS8 += f3_8 * RHS3; -const double f4 = 1.0 / m_A9; - const double f4_8 = -f4 * m_A25; - m_A28 += m_A10 * f4_8; - RHS8 += f4_8 * RHS4; -const double f5 = 1.0 / m_A11; - const double f5_7 = -f5 * m_A20; - m_A22 += m_A12 * f5_7; - RHS7 += f5_7 * RHS5; -const double f6 = 1.0 / m_A14; - const double f6_7 = -f6 * m_A21; - m_A22 += m_A15 * f6_7; - m_A23 += m_A16 * f6_7; - RHS7 += f6_7 * RHS6; - const double f6_8 = -f6 * m_A26; - m_A27 += m_A15 * f6_8; - m_A28 += m_A16 * f6_8; - RHS8 += f6_8 * RHS6; -const double f7 = 1.0 / m_A22; - const double f7_8 = -f7 * m_A27; - m_A28 += m_A23 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A28; - double tmp7 = 0.0; - tmp7 += m_A23 * V[8]; - V[7] = (RHS7 - tmp7) / m_A22; - double tmp6 = 0.0; - tmp6 += m_A15 * V[7]; - tmp6 += m_A16 * V[8]; - V[6] = (RHS6 - tmp6) / m_A14; - double tmp5 = 0.0; - tmp5 += m_A12 * V[7]; - V[5] = (RHS5 - tmp5) / m_A11; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A4 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + m_A7 += gt[5]; + m_A7 += gt[6]; + m_A6 += go[5]; + m_A5 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + m_A11 += gt[7]; + m_A11 += gt[8]; + m_A9 += go[7]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 -= go[8] * *cnV[8]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A5; + m_A7 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A6; + m_A7 += m_A3 * f1_2; + m_A8 += m_A4 * f1_2; + RHS2 += f1_2 * RHS1; + const double f1_3 = -f1 * m_A9; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A7; + const double f2_3 = -f2 * m_A10; + m_A11 += m_A8 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A11; + double tmp2 = 0.0; + tmp2 += m_A8 * V[3]; + V[2] = (RHS2 - tmp2) / m_A7; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + tmp1 += m_A4 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// rebound +static void nl_gcr_33a561080717d469_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + 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_A3 += go[4]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A5 += go[6]; + m_A4 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// dpatrol +static void nl_gcr_390fe6bd5468155d_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + 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_A6 += gt[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A5 += go[4]; + m_A4 += go[5]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; + double tmp1 = 0.0; + tmp1 += m_A3 * V[2]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[2]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// kidniki +static void nl_gcr_445192d0ef3f62c6_21_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + 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]; + m_A2 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 += Idr[5]; + RHS0 += Idr[6]; + 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_A3 += gt[7]; + m_A3 += gt[8]; + m_A3 += gt[9]; + m_A5 += go[7]; + m_A4 += go[8]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[9] * *cnV[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[10]; + m_A8 += go[11]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A10 += gt[14]; + m_A9 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + m_A14 += gt[15]; + m_A14 += gt[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A12 += go[15]; + m_A15 += go[16]; + m_A13 += go[17]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + m_A20 += gt[21]; + m_A20 += gt[22]; + m_A20 += gt[23]; + m_A17 += go[21]; + m_A16 += go[22]; + m_A19 += go[23]; + double RHS5 = Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A12; + m_A13 += m_A1 * f0_4; + m_A14 += m_A2 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_4 = -f1 * m_A13; + m_A14 += m_A4 * f1_4; + m_A15 += m_A5 * f1_4; + RHS4 += f1_4 * RHS1; + const double f1_5 = -f1 * m_A16; + m_A19 += m_A4 * f1_5; + m_A20 += m_A5 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_3 = -f2 * m_A9; + m_A10 += m_A7 * f2_3; + m_A11 += m_A8 * f2_3; + RHS3 += f2_3 * RHS2; + const double f2_5 = -f2 * m_A17; + m_A18 += m_A7 * f2_5; + m_A20 += m_A8 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_5 = -f3 * m_A18; + m_A20 += m_A11 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A14; + const double f4_5 = -f4 * m_A19; + m_A20 += m_A15 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A20; double tmp4 = 0.0; - tmp4 += m_A10 * V[8]; - V[4] = (RHS4 - tmp4) / m_A9; + tmp4 += m_A15 * V[5]; + V[4] = (RHS4 - tmp4) / m_A14; double tmp3 = 0.0; - tmp3 += m_A7 * V[6]; - tmp3 += m_A8 * V[8]; - V[3] = (RHS3 - tmp3) / m_A6; + tmp3 += m_A11 * V[5]; + V[3] = (RHS3 - tmp3) / m_A10; double tmp2 = 0.0; - tmp2 += m_A5 * V[7]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A7 * V[3]; + tmp2 += m_A8 * V[5]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[7]; - V[1] = (RHS1 - tmp1) / m_A2; + tmp1 += m_A4 * V[4]; + tmp1 += m_A5 * V[5]; + V[1] = (RHS1 - tmp1) / m_A3; double tmp0 = 0.0; - tmp0 += m_A1 * V[7]; + tmp0 += m_A1 * V[1]; + tmp0 += m_A2 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } // kidniki -static void nl_gcr_169c14d438ffb621_198_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_4a06f16ac700a832_198_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); -double m_A154(0.0); -double m_A155(0.0); -double m_A156(0.0); -double m_A157(0.0); -double m_A158(0.0); -double m_A159(0.0); -double m_A160(0.0); -double m_A161(0.0); -double m_A162(0.0); -double m_A163(0.0); -double m_A164(0.0); -double m_A165(0.0); -double m_A166(0.0); -double m_A167(0.0); -double m_A168(0.0); -double m_A169(0.0); -double m_A170(0.0); -double m_A171(0.0); -double m_A172(0.0); -double m_A173(0.0); -double m_A174(0.0); -double m_A175(0.0); -double m_A176(0.0); -double m_A177(0.0); -double m_A178(0.0); -double m_A179(0.0); -double m_A180(0.0); -double m_A181(0.0); -double m_A182(0.0); -double m_A183(0.0); -double m_A184(0.0); -double m_A185(0.0); -double m_A186(0.0); -double m_A187(0.0); -double m_A188(0.0); -double m_A189(0.0); -double m_A190(0.0); -double m_A191(0.0); -double m_A192(0.0); -double m_A193(0.0); -double m_A194(0.0); -double m_A195(0.0); -double m_A196(0.0); -double m_A197(0.0); - m_A0 = gt[0] + gt[1]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] - go[1] * *cnV[1]; - m_A2 = gt[8] + gt[9]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] - go[9] * *cnV[9]; - m_A4 = gt[16] + gt[17] + gt[18]; - m_A6 = m_A6 + go[16]; - m_A5 = m_A5 + go[17]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] - go[18] * *cnV[18]; - m_A7 = gt[24] + gt[25] + gt[26] + gt[27] + gt[28] + gt[29] + gt[30]; - m_A8 = m_A8 + go[24]; - m_A9 = m_A9 + go[25]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] + Idr[27] + Idr[28] + Idr[29] + Idr[30] - go[26] * *cnV[26] - go[27] * *cnV[27] - go[28] * *cnV[28] - go[29] * *cnV[29] - go[30] * *cnV[30]; - m_A10 = gt[32] + gt[33]; - m_A12 = m_A12 + go[32]; - m_A11 = m_A11 + go[33]; - double RHS4 = Idr[32] + Idr[33]; - m_A13 = gt[40] + gt[41]; - m_A14 = m_A14 + go[40]; - double RHS5 = Idr[40] + Idr[41] - go[41] * *cnV[41]; - m_A15 = gt[48] + gt[49] + gt[50]; - m_A16 = m_A16 + go[48]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] - go[49] * *cnV[49] - go[50] * *cnV[50]; - m_A17 = gt[56] + gt[57] + gt[58] + gt[59] + gt[60] + gt[61] + gt[62]; - m_A19 = m_A19 + go[56]; - m_A18 = m_A18 + go[57]; - double RHS7 = Idr[56] + Idr[57] + Idr[58] + Idr[59] + Idr[60] + Idr[61] + Idr[62] - go[58] * *cnV[58] - go[59] * *cnV[59] - go[60] * *cnV[60] - go[61] * *cnV[61] - go[62] * *cnV[62]; - m_A20 = gt[64] + gt[65]; - m_A21 = m_A21 + go[64]; - m_A22 = m_A22 + go[65]; - double RHS8 = Idr[64] + Idr[65]; - m_A23 = gt[72] + gt[73] + gt[74]; - m_A24 = m_A24 + go[72]; - m_A25 = m_A25 + go[73]; - double RHS9 = Idr[72] + Idr[73] + Idr[74] - go[74] * *cnV[74]; - m_A26 = gt[80] + gt[81]; - m_A27 = m_A27 + go[80]; - double RHS10 = Idr[80] + Idr[81] - go[81] * *cnV[81]; - m_A28 = gt[88] + gt[89] + gt[90] + gt[91]; - m_A30 = m_A30 + go[88]; - m_A29 = m_A29 + go[89]; - m_A29 = m_A29 + go[90]; - double RHS11 = Idr[88] + Idr[89] + Idr[90] + Idr[91] - go[91] * *cnV[91]; - m_A31 = gt[96] + gt[97]; - m_A33 = m_A33 + go[96]; - m_A32 = m_A32 + go[97]; - double RHS12 = Idr[96] + Idr[97]; - m_A34 = gt[104] + gt[105] + gt[106]; - m_A36 = m_A36 + go[104]; - m_A35 = m_A35 + go[105]; - double RHS13 = Idr[104] + Idr[105] + Idr[106] - go[106] * *cnV[106]; - m_A37 = gt[112] + gt[113] + gt[114]; - m_A38 = m_A38 + go[112]; - m_A39 = m_A39 + go[113]; - double RHS14 = Idr[112] + Idr[113] + Idr[114] - go[114] * *cnV[114]; - m_A40 = gt[120] + gt[121] + gt[122] + gt[123] + gt[124]; - m_A42 = m_A42 + go[120]; - m_A41 = m_A41 + go[121]; - m_A41 = m_A41 + go[122]; - double RHS15 = Idr[120] + Idr[121] + Idr[122] + Idr[123] + Idr[124] - go[123] * *cnV[123] - go[124] * *cnV[124]; - m_A43 = gt[128] + gt[129] + gt[130] + gt[131]; - m_A44 = m_A44 + go[128]; - double RHS16 = Idr[128] + Idr[129] + Idr[130] + Idr[131] - go[129] * *cnV[129] - go[130] * *cnV[130] - go[131] * *cnV[131]; - m_A45 = gt[136] + gt[137] + gt[138] + gt[139]; - m_A46 = m_A46 + go[136]; - double RHS17 = Idr[136] + Idr[137] + Idr[138] + Idr[139] - go[137] * *cnV[137] - go[138] * *cnV[138] - go[139] * *cnV[139]; - m_A47 = gt[144] + gt[145] + gt[146] + gt[147] + gt[148]; - m_A49 = m_A49 + go[144]; - m_A49 = m_A49 + go[145]; - m_A48 = m_A48 + go[146]; - double RHS18 = Idr[144] + Idr[145] + Idr[146] + Idr[147] + Idr[148] - go[147] * *cnV[147] - go[148] * *cnV[148]; - m_A50 = gt[152] + gt[153] + gt[154] + gt[155] + gt[156]; - m_A53 = m_A53 + go[152]; - m_A52 = m_A52 + go[153]; - m_A51 = m_A51 + go[154]; - m_A51 = m_A51 + go[155]; - double RHS19 = Idr[152] + Idr[153] + Idr[154] + Idr[155] + Idr[156] - go[156] * *cnV[156]; - m_A54 = gt[160] + gt[161] + gt[162] + gt[163]; - m_A57 = m_A57 + go[160]; - m_A56 = m_A56 + go[161]; - m_A55 = m_A55 + go[162]; - double RHS20 = Idr[160] + Idr[161] + Idr[162] + Idr[163] - go[163] * *cnV[163]; - m_A58 = gt[168] + gt[169] + gt[170]; - m_A59 = m_A59 + go[168]; - m_A60 = m_A60 + go[169]; - double RHS21 = Idr[168] + Idr[169] + Idr[170] - go[170] * *cnV[170]; - m_A61 = gt[176] + gt[177]; - m_A62 = m_A62 + go[176]; - m_A63 = m_A63 + go[177]; - double RHS22 = Idr[176] + Idr[177]; - m_A64 = gt[184] + gt[185]; - m_A65 = m_A65 + go[184]; - m_A66 = m_A66 + go[185]; - double RHS23 = Idr[184] + Idr[185]; - m_A69 = gt[192] + gt[193] + gt[194] + gt[195]; - m_A68 = m_A68 + go[192]; - m_A68 = m_A68 + go[193]; - m_A67 = m_A67 + go[194]; - double RHS24 = Idr[192] + Idr[193] + Idr[194] + Idr[195] - go[195] * *cnV[195]; - m_A75 = gt[200] + gt[201] + gt[202]; - m_A73 = m_A73 + go[200]; - m_A72 = m_A72 + go[201]; - double RHS25 = Idr[200] + Idr[201] + Idr[202] - go[202] * *cnV[202]; - m_A79 = gt[208] + gt[209] + gt[210]; - m_A78 = m_A78 + go[208]; - m_A77 = m_A77 + go[209]; - double RHS26 = Idr[208] + Idr[209] + Idr[210] - go[210] * *cnV[210]; - m_A83 = gt[216] + gt[217] + gt[218] + gt[219] + gt[220] + gt[221]; - m_A82 = m_A82 + go[216]; - m_A82 = m_A82 + go[217]; - m_A81 = m_A81 + go[218]; - double RHS27 = Idr[216] + Idr[217] + Idr[218] + Idr[219] + Idr[220] + Idr[221] - go[219] * *cnV[219] - go[220] * *cnV[220] - go[221] * *cnV[221]; - m_A93 = gt[224] + gt[225] + gt[226]; - m_A87 = m_A87 + go[224]; - m_A89 = m_A89 + go[225]; - m_A88 = m_A88 + go[226]; - double RHS28 = Idr[224] + Idr[225] + Idr[226]; - m_A102 = gt[232] + gt[233] + gt[234]; - m_A99 = m_A99 + go[232]; - m_A98 = m_A98 + go[233]; - m_A97 = m_A97 + go[234]; - double RHS29 = Idr[232] + Idr[233] + Idr[234]; - m_A110 = gt[240] + gt[241] + gt[242] + gt[243]; - m_A107 = m_A107 + go[240]; - m_A106 = m_A106 + go[241]; - m_A106 = m_A106 + go[242]; - double RHS30 = Idr[240] + Idr[241] + Idr[242] + Idr[243] - go[243] * *cnV[243]; - m_A116 = gt[248] + gt[249] + gt[250] + gt[251] + gt[252] + gt[253]; - m_A114 = m_A114 + go[248]; - m_A115 = m_A115 + go[249]; - m_A115 = m_A115 + go[250]; - m_A117 = m_A117 + go[251]; - m_A117 = m_A117 + go[252]; - m_A113 = m_A113 + go[253]; - double RHS31 = Idr[248] + Idr[249] + Idr[250] + Idr[251] + Idr[252] + Idr[253]; - m_A120 = gt[256] + gt[257]; - m_A119 = m_A119 + go[256]; - double RHS32 = Idr[256] + Idr[257] - go[257] * *cnV[257]; - m_A123 = gt[264] + gt[265]; - m_A122 = m_A122 + go[264]; - m_A124 = m_A124 + go[265]; - double RHS33 = Idr[264] + Idr[265]; - m_A126 = gt[272] + gt[273] + gt[274] + gt[275] + gt[276] + gt[277] + gt[278]; - m_A125 = m_A125 + go[272]; - m_A127 = m_A127 + go[273]; - double RHS34 = Idr[272] + Idr[273] + Idr[274] + Idr[275] + Idr[276] + Idr[277] + Idr[278] - go[274] * *cnV[274] - go[275] * *cnV[275] - go[276] * *cnV[276] - go[277] * *cnV[277] - go[278] * *cnV[278]; - m_A129 = gt[280] + gt[281]; - m_A128 = m_A128 + go[280]; - double RHS35 = Idr[280] + Idr[281] - go[281] * *cnV[281]; - m_A133 = gt[288] + gt[289] + gt[290] + gt[291] + gt[292] + gt[293]; - m_A132 = m_A132 + go[288]; - m_A135 = m_A135 + go[289]; - m_A131 = m_A131 + go[290]; - double RHS36 = Idr[288] + Idr[289] + Idr[290] + Idr[291] + Idr[292] + Idr[293] - go[291] * *cnV[291] - go[292] * *cnV[292] - go[293] * *cnV[293]; - m_A139 = gt[296] + gt[297] + gt[298] + gt[299] + gt[300] + gt[301]; - m_A136 = m_A136 + go[296]; - m_A137 = m_A137 + go[297]; - m_A141 = m_A141 + go[298]; - m_A138 = m_A138 + go[299]; - double RHS37 = Idr[296] + Idr[297] + Idr[298] + Idr[299] + Idr[300] + Idr[301] - go[300] * *cnV[300] - go[301] * *cnV[301]; - m_A149 = gt[304] + gt[305] + gt[306] + gt[307] + gt[308] + gt[309]; - m_A145 = m_A145 + go[304]; - m_A144 = m_A144 + go[305]; - m_A142 = m_A142 + go[306]; - m_A143 = m_A143 + go[307]; - m_A152 = m_A152 + go[308]; - double RHS38 = Idr[304] + Idr[305] + Idr[306] + Idr[307] + Idr[308] + Idr[309] - go[309] * *cnV[309]; - m_A157 = gt[312] + gt[313] + gt[314] + gt[315] + gt[316]; - m_A154 = m_A154 + go[312]; - m_A153 = m_A153 + go[313]; - m_A155 = m_A155 + go[314]; - m_A155 = m_A155 + go[315]; - double RHS39 = Idr[312] + Idr[313] + Idr[314] + Idr[315] + Idr[316] - go[316] * *cnV[316]; - m_A164 = gt[320] + gt[321] + gt[322] + gt[323] + gt[324]; - m_A162 = m_A162 + go[320]; - m_A165 = m_A165 + go[321]; - m_A165 = m_A165 + go[322]; - m_A161 = m_A161 + go[323]; - m_A163 = m_A163 + go[324]; - double RHS40 = Idr[320] + Idr[321] + Idr[322] + Idr[323] + Idr[324]; - m_A174 = gt[328] + gt[329] + gt[330]; - m_A167 = m_A167 + go[328]; - m_A166 = m_A166 + go[329]; - m_A171 = m_A171 + go[330]; - double RHS41 = Idr[328] + Idr[329] + Idr[330]; - m_A182 = gt[336] + gt[337] + gt[338]; - m_A177 = m_A177 + go[336]; - m_A178 = m_A178 + go[337]; - m_A179 = m_A179 + go[338]; - double RHS42 = Idr[336] + Idr[337] + Idr[338]; - m_A197 = gt[344] + gt[345] + gt[346] + gt[347] + gt[348] + gt[349] + gt[350] + gt[351]; - m_A192 = m_A192 + go[344]; - m_A185 = m_A185 + go[345]; - m_A186 = m_A186 + go[346]; - m_A184 = m_A184 + go[347]; - m_A194 = m_A194 + go[348]; - m_A194 = m_A194 + go[349]; - double RHS43 = Idr[344] + Idr[345] + Idr[346] + Idr[347] + Idr[348] + Idr[349] + Idr[350] + Idr[351] - go[350] * *cnV[350] - go[351] * *cnV[351]; -const double f0 = 1.0 / m_A0; + 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); + double m_A154(0.0); + double m_A155(0.0); + double m_A156(0.0); + double m_A157(0.0); + double m_A158(0.0); + double m_A159(0.0); + double m_A160(0.0); + double m_A161(0.0); + double m_A162(0.0); + double m_A163(0.0); + double m_A164(0.0); + double m_A165(0.0); + double m_A166(0.0); + double m_A167(0.0); + double m_A168(0.0); + double m_A169(0.0); + double m_A170(0.0); + double m_A171(0.0); + double m_A172(0.0); + double m_A173(0.0); + double m_A174(0.0); + double m_A175(0.0); + double m_A176(0.0); + double m_A177(0.0); + double m_A178(0.0); + double m_A179(0.0); + double m_A180(0.0); + double m_A181(0.0); + double m_A182(0.0); + double m_A183(0.0); + double m_A184(0.0); + double m_A185(0.0); + double m_A186(0.0); + double m_A187(0.0); + double m_A188(0.0); + double m_A189(0.0); + double m_A190(0.0); + double m_A191(0.0); + double m_A192(0.0); + double m_A193(0.0); + double m_A194(0.0); + double m_A195(0.0); + double m_A196(0.0); + double m_A197(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_A4 += gt[6]; + m_A6 += go[4]; + m_A5 += go[5]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 -= go[6] * *cnV[6]; + m_A7 += gt[7]; + m_A7 += gt[8]; + m_A7 += gt[9]; + m_A7 += gt[10]; + m_A7 += gt[11]; + m_A7 += gt[12]; + m_A7 += gt[13]; + m_A8 += go[7]; + m_A9 += go[8]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[9] * *cnV[9]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + m_A10 += gt[14]; + m_A10 += gt[15]; + m_A12 += go[14]; + m_A11 += go[15]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + m_A13 += gt[16]; + m_A13 += gt[17]; + m_A14 += go[16]; + double RHS5 = Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[17] * *cnV[17]; + m_A15 += gt[18]; + m_A15 += gt[19]; + m_A15 += gt[20]; + m_A16 += go[18]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 -= go[19] * *cnV[19]; + RHS6 -= go[20] * *cnV[20]; + m_A17 += gt[21]; + m_A17 += gt[22]; + m_A17 += gt[23]; + m_A17 += gt[24]; + m_A17 += gt[25]; + m_A17 += gt[26]; + m_A17 += gt[27]; + m_A19 += go[21]; + m_A18 += go[22]; + double RHS7 = Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 += Idr[24]; + RHS7 += Idr[25]; + RHS7 += Idr[26]; + RHS7 += Idr[27]; + RHS7 -= go[23] * *cnV[23]; + RHS7 -= go[24] * *cnV[24]; + RHS7 -= go[25] * *cnV[25]; + RHS7 -= go[26] * *cnV[26]; + RHS7 -= go[27] * *cnV[27]; + m_A20 += gt[28]; + m_A20 += gt[29]; + m_A21 += go[28]; + m_A22 += go[29]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + m_A23 += gt[30]; + m_A23 += gt[31]; + m_A23 += gt[32]; + m_A24 += go[30]; + m_A25 += go[31]; + double RHS9 = Idr[30]; + RHS9 += Idr[31]; + RHS9 += Idr[32]; + RHS9 -= go[32] * *cnV[32]; + m_A26 += gt[33]; + m_A26 += gt[34]; + m_A27 += go[33]; + double RHS10 = Idr[33]; + RHS10 += Idr[34]; + RHS10 -= go[34] * *cnV[34]; + m_A28 += gt[35]; + m_A28 += gt[36]; + m_A28 += gt[37]; + m_A28 += gt[38]; + m_A30 += go[35]; + m_A29 += go[36]; + m_A29 += go[37]; + double RHS11 = Idr[35]; + RHS11 += Idr[36]; + RHS11 += Idr[37]; + RHS11 += Idr[38]; + RHS11 -= go[38] * *cnV[38]; + m_A31 += gt[39]; + m_A31 += gt[40]; + m_A33 += go[39]; + m_A32 += go[40]; + double RHS12 = Idr[39]; + RHS12 += Idr[40]; + m_A34 += gt[41]; + m_A34 += gt[42]; + m_A34 += gt[43]; + m_A36 += go[41]; + m_A35 += go[42]; + double RHS13 = Idr[41]; + RHS13 += Idr[42]; + RHS13 += Idr[43]; + RHS13 -= go[43] * *cnV[43]; + m_A37 += gt[44]; + m_A37 += gt[45]; + m_A37 += gt[46]; + m_A38 += go[44]; + m_A39 += go[45]; + double RHS14 = Idr[44]; + RHS14 += Idr[45]; + RHS14 += Idr[46]; + RHS14 -= go[46] * *cnV[46]; + m_A40 += gt[47]; + m_A40 += gt[48]; + m_A40 += gt[49]; + m_A40 += gt[50]; + m_A40 += gt[51]; + m_A42 += go[47]; + m_A41 += go[48]; + m_A41 += go[49]; + double RHS15 = Idr[47]; + RHS15 += Idr[48]; + RHS15 += Idr[49]; + RHS15 += Idr[50]; + RHS15 += Idr[51]; + RHS15 -= go[50] * *cnV[50]; + RHS15 -= go[51] * *cnV[51]; + m_A43 += gt[52]; + m_A43 += gt[53]; + m_A43 += gt[54]; + m_A43 += gt[55]; + m_A44 += go[52]; + double RHS16 = Idr[52]; + RHS16 += Idr[53]; + RHS16 += Idr[54]; + RHS16 += Idr[55]; + RHS16 -= go[53] * *cnV[53]; + RHS16 -= go[54] * *cnV[54]; + RHS16 -= go[55] * *cnV[55]; + m_A45 += gt[56]; + m_A45 += gt[57]; + m_A45 += gt[58]; + m_A45 += gt[59]; + m_A46 += go[56]; + double RHS17 = Idr[56]; + RHS17 += Idr[57]; + RHS17 += Idr[58]; + RHS17 += Idr[59]; + RHS17 -= go[57] * *cnV[57]; + RHS17 -= go[58] * *cnV[58]; + RHS17 -= go[59] * *cnV[59]; + m_A47 += gt[60]; + m_A47 += gt[61]; + m_A47 += gt[62]; + m_A47 += gt[63]; + m_A47 += gt[64]; + m_A49 += go[60]; + m_A49 += go[61]; + m_A48 += go[62]; + double RHS18 = Idr[60]; + RHS18 += Idr[61]; + RHS18 += Idr[62]; + RHS18 += Idr[63]; + RHS18 += Idr[64]; + RHS18 -= go[63] * *cnV[63]; + RHS18 -= go[64] * *cnV[64]; + m_A50 += gt[65]; + m_A50 += gt[66]; + m_A50 += gt[67]; + m_A50 += gt[68]; + m_A50 += gt[69]; + m_A53 += go[65]; + m_A52 += go[66]; + m_A51 += go[67]; + m_A51 += go[68]; + double RHS19 = Idr[65]; + RHS19 += Idr[66]; + RHS19 += Idr[67]; + RHS19 += Idr[68]; + RHS19 += Idr[69]; + RHS19 -= go[69] * *cnV[69]; + m_A54 += gt[70]; + m_A54 += gt[71]; + m_A54 += gt[72]; + m_A54 += gt[73]; + m_A57 += go[70]; + m_A56 += go[71]; + m_A55 += go[72]; + double RHS20 = Idr[70]; + RHS20 += Idr[71]; + RHS20 += Idr[72]; + RHS20 += Idr[73]; + RHS20 -= go[73] * *cnV[73]; + m_A58 += gt[74]; + m_A58 += gt[75]; + m_A58 += gt[76]; + m_A59 += go[74]; + m_A60 += go[75]; + double RHS21 = Idr[74]; + RHS21 += Idr[75]; + RHS21 += Idr[76]; + RHS21 -= go[76] * *cnV[76]; + m_A61 += gt[77]; + m_A61 += gt[78]; + m_A62 += go[77]; + m_A63 += go[78]; + double RHS22 = Idr[77]; + RHS22 += Idr[78]; + m_A64 += gt[79]; + m_A64 += gt[80]; + m_A65 += go[79]; + m_A66 += go[80]; + double RHS23 = Idr[79]; + RHS23 += Idr[80]; + m_A69 += gt[81]; + m_A69 += gt[82]; + m_A69 += gt[83]; + m_A69 += gt[84]; + m_A68 += go[81]; + m_A68 += go[82]; + m_A67 += go[83]; + double RHS24 = Idr[81]; + RHS24 += Idr[82]; + RHS24 += Idr[83]; + RHS24 += Idr[84]; + RHS24 -= go[84] * *cnV[84]; + m_A75 += gt[85]; + m_A75 += gt[86]; + m_A75 += gt[87]; + m_A73 += go[85]; + m_A72 += go[86]; + double RHS25 = Idr[85]; + RHS25 += Idr[86]; + RHS25 += Idr[87]; + RHS25 -= go[87] * *cnV[87]; + m_A79 += gt[88]; + m_A79 += gt[89]; + m_A79 += gt[90]; + m_A78 += go[88]; + m_A77 += go[89]; + double RHS26 = Idr[88]; + RHS26 += Idr[89]; + RHS26 += Idr[90]; + RHS26 -= go[90] * *cnV[90]; + m_A83 += gt[91]; + m_A83 += gt[92]; + m_A83 += gt[93]; + m_A83 += gt[94]; + m_A83 += gt[95]; + m_A83 += gt[96]; + m_A82 += go[91]; + m_A82 += go[92]; + m_A81 += go[93]; + double RHS27 = Idr[91]; + RHS27 += Idr[92]; + RHS27 += Idr[93]; + RHS27 += Idr[94]; + RHS27 += Idr[95]; + RHS27 += Idr[96]; + RHS27 -= go[94] * *cnV[94]; + RHS27 -= go[95] * *cnV[95]; + RHS27 -= go[96] * *cnV[96]; + m_A93 += gt[97]; + m_A93 += gt[98]; + m_A93 += gt[99]; + m_A87 += go[97]; + m_A89 += go[98]; + m_A88 += go[99]; + double RHS28 = Idr[97]; + RHS28 += Idr[98]; + RHS28 += Idr[99]; + m_A102 += gt[100]; + m_A102 += gt[101]; + m_A102 += gt[102]; + m_A99 += go[100]; + m_A98 += go[101]; + m_A97 += go[102]; + double RHS29 = Idr[100]; + RHS29 += Idr[101]; + RHS29 += Idr[102]; + m_A110 += gt[103]; + m_A110 += gt[104]; + m_A110 += gt[105]; + m_A110 += gt[106]; + m_A107 += go[103]; + m_A106 += go[104]; + m_A106 += go[105]; + double RHS30 = Idr[103]; + RHS30 += Idr[104]; + RHS30 += Idr[105]; + RHS30 += Idr[106]; + RHS30 -= go[106] * *cnV[106]; + m_A116 += gt[107]; + m_A116 += gt[108]; + m_A116 += gt[109]; + m_A116 += gt[110]; + m_A116 += gt[111]; + m_A116 += gt[112]; + m_A114 += go[107]; + m_A115 += go[108]; + m_A115 += go[109]; + m_A117 += go[110]; + m_A117 += go[111]; + m_A113 += go[112]; + double RHS31 = Idr[107]; + RHS31 += Idr[108]; + RHS31 += Idr[109]; + RHS31 += Idr[110]; + RHS31 += Idr[111]; + RHS31 += Idr[112]; + m_A120 += gt[113]; + m_A120 += gt[114]; + m_A119 += go[113]; + double RHS32 = Idr[113]; + RHS32 += Idr[114]; + RHS32 -= go[114] * *cnV[114]; + m_A123 += gt[115]; + m_A123 += gt[116]; + m_A122 += go[115]; + m_A124 += go[116]; + double RHS33 = Idr[115]; + RHS33 += Idr[116]; + m_A126 += gt[117]; + m_A126 += gt[118]; + m_A126 += gt[119]; + m_A126 += gt[120]; + m_A126 += gt[121]; + m_A126 += gt[122]; + m_A126 += gt[123]; + m_A125 += go[117]; + m_A127 += go[118]; + double RHS34 = Idr[117]; + RHS34 += Idr[118]; + RHS34 += Idr[119]; + RHS34 += Idr[120]; + RHS34 += Idr[121]; + RHS34 += Idr[122]; + RHS34 += Idr[123]; + RHS34 -= go[119] * *cnV[119]; + RHS34 -= go[120] * *cnV[120]; + RHS34 -= go[121] * *cnV[121]; + RHS34 -= go[122] * *cnV[122]; + RHS34 -= go[123] * *cnV[123]; + m_A129 += gt[124]; + m_A129 += gt[125]; + m_A128 += go[124]; + double RHS35 = Idr[124]; + RHS35 += Idr[125]; + RHS35 -= go[125] * *cnV[125]; + m_A133 += gt[126]; + m_A133 += gt[127]; + m_A133 += gt[128]; + m_A133 += gt[129]; + m_A133 += gt[130]; + m_A133 += gt[131]; + m_A132 += go[126]; + m_A135 += go[127]; + m_A131 += go[128]; + double RHS36 = Idr[126]; + RHS36 += Idr[127]; + RHS36 += Idr[128]; + RHS36 += Idr[129]; + RHS36 += Idr[130]; + RHS36 += Idr[131]; + RHS36 -= go[129] * *cnV[129]; + RHS36 -= go[130] * *cnV[130]; + RHS36 -= go[131] * *cnV[131]; + m_A139 += gt[132]; + m_A139 += gt[133]; + m_A139 += gt[134]; + m_A139 += gt[135]; + m_A139 += gt[136]; + m_A139 += gt[137]; + m_A136 += go[132]; + m_A137 += go[133]; + m_A141 += go[134]; + m_A138 += go[135]; + double RHS37 = Idr[132]; + RHS37 += Idr[133]; + RHS37 += Idr[134]; + RHS37 += Idr[135]; + RHS37 += Idr[136]; + RHS37 += Idr[137]; + RHS37 -= go[136] * *cnV[136]; + RHS37 -= go[137] * *cnV[137]; + m_A149 += gt[138]; + m_A149 += gt[139]; + m_A149 += gt[140]; + m_A149 += gt[141]; + m_A149 += gt[142]; + m_A149 += gt[143]; + m_A145 += go[138]; + m_A144 += go[139]; + m_A142 += go[140]; + m_A143 += go[141]; + m_A152 += go[142]; + double RHS38 = Idr[138]; + RHS38 += Idr[139]; + RHS38 += Idr[140]; + RHS38 += Idr[141]; + RHS38 += Idr[142]; + RHS38 += Idr[143]; + RHS38 -= go[143] * *cnV[143]; + m_A157 += gt[144]; + m_A157 += gt[145]; + m_A157 += gt[146]; + m_A157 += gt[147]; + m_A157 += gt[148]; + m_A154 += go[144]; + m_A153 += go[145]; + m_A155 += go[146]; + m_A155 += go[147]; + double RHS39 = Idr[144]; + RHS39 += Idr[145]; + RHS39 += Idr[146]; + RHS39 += Idr[147]; + RHS39 += Idr[148]; + RHS39 -= go[148] * *cnV[148]; + m_A164 += gt[149]; + m_A164 += gt[150]; + m_A164 += gt[151]; + m_A164 += gt[152]; + m_A164 += gt[153]; + m_A162 += go[149]; + m_A165 += go[150]; + m_A165 += go[151]; + m_A161 += go[152]; + m_A163 += go[153]; + double RHS40 = Idr[149]; + RHS40 += Idr[150]; + RHS40 += Idr[151]; + RHS40 += Idr[152]; + RHS40 += Idr[153]; + m_A174 += gt[154]; + m_A174 += gt[155]; + m_A174 += gt[156]; + m_A167 += go[154]; + m_A166 += go[155]; + m_A171 += go[156]; + double RHS41 = Idr[154]; + RHS41 += Idr[155]; + RHS41 += Idr[156]; + m_A182 += gt[157]; + m_A182 += gt[158]; + m_A182 += gt[159]; + m_A177 += go[157]; + m_A178 += go[158]; + m_A179 += go[159]; + double RHS42 = Idr[157]; + RHS42 += Idr[158]; + RHS42 += Idr[159]; + m_A197 += gt[160]; + m_A197 += gt[161]; + m_A197 += gt[162]; + m_A197 += gt[163]; + m_A197 += gt[164]; + m_A197 += gt[165]; + m_A197 += gt[166]; + m_A197 += gt[167]; + m_A192 += go[160]; + m_A185 += go[161]; + m_A186 += go[162]; + m_A184 += go[163]; + m_A194 += go[164]; + m_A194 += go[165]; + double RHS43 = Idr[160]; + RHS43 += Idr[161]; + RHS43 += Idr[162]; + RHS43 += Idr[163]; + RHS43 += Idr[164]; + RHS43 += Idr[165]; + RHS43 += Idr[166]; + RHS43 += Idr[167]; + RHS43 -= go[166] * *cnV[166]; + RHS43 -= go[167] * *cnV[167]; + const double f0 = 1.0 / m_A0; const double f0_33 = -f0 * m_A122; m_A123 += m_A1 * f0_33; RHS33 += f0_33 * RHS0; -const double f1 = 1.0 / m_A2; + const double f1 = 1.0 / m_A2; const double f1_34 = -f1 * m_A125; m_A127 += m_A3 * f1_34; RHS34 += f1_34 * RHS1; const double f1_40 = -f1 * m_A161; m_A164 += m_A3 * f1_40; RHS40 += f1_40 * RHS1; -const double f2 = 1.0 / m_A4; + const double f2 = 1.0 / m_A4; const double f2_40 = -f2 * m_A162; m_A164 += m_A5 * f2_40; m_A165 += m_A6 * f2_40; @@ -1353,12 +3866,12 @@ const double f2 = 1.0 / m_A4; m_A194 += m_A5 * f2_43; m_A197 += m_A6 * f2_43; RHS43 += f2_43 * RHS2; -const double f3 = 1.0 / m_A7; + const double f3 = 1.0 / m_A7; const double f3_37 = -f3 * m_A136; m_A138 += m_A8 * f3_37; m_A139 += m_A9 * f3_37; RHS37 += f3_37 * RHS3; -const double f4 = 1.0 / m_A10; + const double f4 = 1.0 / m_A10; const double f4_37 = -f4 * m_A137; m_A139 += m_A11 * f4_37; m_A140 += m_A12 * f4_37; @@ -1367,20 +3880,20 @@ const double f4 = 1.0 / m_A10; m_A148 += m_A11 * f4_38; m_A149 += m_A12 * f4_38; RHS38 += f4_38 * RHS4; -const double f5 = 1.0 / m_A13; + const double f5 = 1.0 / m_A13; const double f5_42 = -f5 * m_A177; m_A182 += m_A14 * f5_42; RHS42 += f5_42 * RHS5; -const double f6 = 1.0 / m_A15; + const double f6 = 1.0 / m_A15; const double f6_36 = -f6 * m_A131; m_A133 += m_A16 * f6_36; RHS36 += f6_36 * RHS6; -const double f7 = 1.0 / m_A17; + const double f7 = 1.0 / m_A17; const double f7_36 = -f7 * m_A132; m_A134 += m_A18 * f7_36; m_A135 += m_A19 * f7_36; RHS36 += f7_36 * RHS7; -const double f8 = 1.0 / m_A20; + const double f8 = 1.0 / m_A20; const double f8_27 = -f8 * m_A81; m_A83 += m_A21 * f8_27; m_A86 += m_A22 * f8_27; @@ -1389,7 +3902,7 @@ const double f8 = 1.0 / m_A20; m_A187 += m_A21 * f8_43; m_A197 += m_A22 * f8_43; RHS43 += f8_43 * RHS8; -const double f9 = 1.0 / m_A23; + const double f9 = 1.0 / m_A23; const double f9_31 = -f9 * m_A113; m_A116 += m_A24 * f9_31; m_A118 += m_A25 * f9_31; @@ -1398,11 +3911,11 @@ const double f9 = 1.0 / m_A23; m_A191 += m_A24 * f9_43; m_A197 += m_A25 * f9_43; RHS43 += f9_43 * RHS9; -const double f10 = 1.0 / m_A26; + const double f10 = 1.0 / m_A26; const double f10_31 = -f10 * m_A114; m_A116 += m_A27 * f10_31; RHS31 += f10_31 * RHS10; -const double f11 = 1.0 / m_A28; + const double f11 = 1.0 / m_A28; const double f11_31 = -f11 * m_A115; m_A116 += m_A29 * f11_31; m_A117 += m_A30 * f11_31; @@ -1411,7 +3924,7 @@ const double f11 = 1.0 / m_A28; m_A155 += m_A29 * f11_39; m_A157 += m_A30 * f11_39; RHS39 += f11_39 * RHS11; -const double f12 = 1.0 / m_A31; + const double f12 = 1.0 / m_A31; const double f12_38 = -f12 * m_A143; m_A149 += m_A32 * f12_38; m_A150 += m_A33 * f12_38; @@ -1420,7 +3933,7 @@ const double f12 = 1.0 / m_A31; m_A156 += m_A32 * f12_39; m_A157 += m_A33 * f12_39; RHS39 += f12_39 * RHS12; -const double f13 = 1.0 / m_A34; + const double f13 = 1.0 / m_A34; const double f13_37 = -f13 * m_A138; m_A139 += m_A35 * f13_37; m_A141 += m_A36 * f13_37; @@ -1429,7 +3942,7 @@ const double f13 = 1.0 / m_A34; m_A171 += m_A35 * f13_41; m_A174 += m_A36 * f13_41; RHS41 += f13_41 * RHS13; -const double f14 = 1.0 / m_A37; + const double f14 = 1.0 / m_A37; const double f14_24 = -f14 * m_A67; m_A69 += m_A38 * f14_24; m_A71 += m_A39 * f14_24; @@ -1438,7 +3951,7 @@ const double f14 = 1.0 / m_A37; m_A90 += m_A38 * f14_28; m_A93 += m_A39 * f14_28; RHS28 += f14_28 * RHS14; -const double f15 = 1.0 / m_A40; + const double f15 = 1.0 / m_A40; const double f15_24 = -f15 * m_A68; m_A69 += m_A41 * f15_24; m_A70 += m_A42 * f15_24; @@ -1447,15 +3960,15 @@ const double f15 = 1.0 / m_A40; m_A74 += m_A41 * f15_25; m_A75 += m_A42 * f15_25; RHS25 += f15_25 * RHS15; -const double f16 = 1.0 / m_A43; + const double f16 = 1.0 / m_A43; const double f16_25 = -f16 * m_A73; m_A75 += m_A44 * f16_25; RHS25 += f16_25 * RHS16; -const double f17 = 1.0 / m_A45; + const double f17 = 1.0 / m_A45; const double f17_26 = -f17 * m_A77; m_A79 += m_A46 * f17_26; RHS26 += f17_26 * RHS17; -const double f18 = 1.0 / m_A47; + const double f18 = 1.0 / m_A47; const double f18_26 = -f18 * m_A78; m_A79 += m_A48 * f18_26; m_A80 += m_A49 * f18_26; @@ -1464,7 +3977,7 @@ const double f18 = 1.0 / m_A47; m_A108 += m_A48 * f18_30; m_A110 += m_A49 * f18_30; RHS30 += f18_30 * RHS18; -const double f19 = 1.0 / m_A50; + const double f19 = 1.0 / m_A50; const double f19_27 = -f19 * m_A82; m_A83 += m_A51 * f19_27; m_A84 += m_A52 * f19_27; @@ -1480,7 +3993,7 @@ const double f19 = 1.0 / m_A50; m_A101 += m_A52 * f19_29; m_A102 += m_A53 * f19_29; RHS29 += f19_29 * RHS19; -const double f20 = 1.0 / m_A54; + const double f20 = 1.0 / m_A54; const double f20_28 = -f20 * m_A89; m_A93 += m_A55 * f20_28; m_A94 += m_A56 * f20_28; @@ -1496,7 +4009,7 @@ const double f20 = 1.0 / m_A54; m_A169 += m_A56 * f20_41; m_A174 += m_A57 * f20_41; RHS41 += f20_41 * RHS20; -const double f21 = 1.0 / m_A58; + const double f21 = 1.0 / m_A58; const double f21_29 = -f21 * m_A99; m_A102 += m_A59 * f21_29; m_A103 += m_A60 * f21_29; @@ -1505,7 +4018,7 @@ const double f21 = 1.0 / m_A58; m_A109 += m_A59 * f21_30; m_A110 += m_A60 * f21_30; RHS30 += f21_30 * RHS21; -const double f22 = 1.0 / m_A61; + const double f22 = 1.0 / m_A61; const double f22_32 = -f22 * m_A119; m_A120 += m_A62 * f22_32; m_A121 += m_A63 * f22_32; @@ -1514,7 +4027,7 @@ const double f22 = 1.0 / m_A61; m_A146 += m_A62 * f22_38; m_A149 += m_A63 * f22_38; RHS38 += f22_38 * RHS22; -const double f23 = 1.0 / m_A64; + const double f23 = 1.0 / m_A64; const double f23_35 = -f23 * m_A128; m_A129 += m_A65 * f23_35; m_A130 += m_A66 * f23_35; @@ -1523,7 +4036,7 @@ const double f23 = 1.0 / m_A64; m_A147 += m_A65 * f23_38; m_A149 += m_A66 * f23_38; RHS38 += f23_38 * RHS23; -const double f24 = 1.0 / m_A69; + const double f24 = 1.0 / m_A69; const double f24_25 = -f24 * m_A74; m_A75 += m_A70 * f24_25; m_A76 += m_A71 * f24_25; @@ -1532,15 +4045,15 @@ const double f24 = 1.0 / m_A69; m_A91 += m_A70 * f24_28; m_A93 += m_A71 * f24_28; RHS28 += f24_28 * RHS24; -const double f25 = 1.0 / m_A75; + const double f25 = 1.0 / m_A75; const double f25_28 = -f25 * m_A91; m_A93 += m_A76 * f25_28; RHS28 += f25_28 * RHS25; -const double f26 = 1.0 / m_A79; + const double f26 = 1.0 / m_A79; const double f26_30 = -f26 * m_A108; m_A110 += m_A80 * f26_30; RHS30 += f26_30 * RHS26; -const double f27 = 1.0 / m_A83; + const double f27 = 1.0 / m_A83; const double f27_28 = -f27 * m_A92; m_A93 += m_A84 * f27_28; m_A94 += m_A85 * f27_28; @@ -1556,7 +4069,7 @@ const double f27 = 1.0 / m_A83; m_A189 += m_A85 * f27_43; m_A197 += m_A86 * f27_43; RHS43 += f27_43 * RHS27; -const double f28 = 1.0 / m_A93; + const double f28 = 1.0 / m_A93; const double f28_29 = -f28 * m_A101; m_A102 += m_A94 * f28_29; m_A104 += m_A95 * f28_29; @@ -1572,7 +4085,7 @@ const double f28 = 1.0 / m_A93; m_A195 += m_A95 * f28_43; m_A197 += m_A96 * f28_43; RHS43 += f28_43 * RHS28; -const double f29 = 1.0 / m_A102; + const double f29 = 1.0 / m_A102; const double f29_30 = -f29 * m_A109; m_A110 += m_A103 * f29_30; m_A111 += m_A104 * f29_30; @@ -1588,7 +4101,7 @@ const double f29 = 1.0 / m_A102; m_A195 += m_A104 * f29_43; m_A197 += m_A105 * f29_43; RHS43 += f29_43 * RHS29; -const double f30 = 1.0 / m_A110; + const double f30 = 1.0 / m_A110; const double f30_41 = -f30 * m_A170; m_A174 += m_A111 * f30_41; m_A176 += m_A112 * f30_41; @@ -1597,7 +4110,7 @@ const double f30 = 1.0 / m_A110; m_A195 += m_A111 * f30_43; m_A197 += m_A112 * f30_43; RHS43 += f30_43 * RHS30; -const double f31 = 1.0 / m_A116; + const double f31 = 1.0 / m_A116; const double f31_39 = -f31 * m_A155; m_A157 += m_A117 * f31_39; m_A160 += m_A118 * f31_39; @@ -1606,28 +4119,28 @@ const double f31 = 1.0 / m_A116; m_A193 += m_A117 * f31_43; m_A197 += m_A118 * f31_43; RHS43 += f31_43 * RHS31; -const double f32 = 1.0 / m_A120; + const double f32 = 1.0 / m_A120; const double f32_38 = -f32 * m_A146; m_A149 += m_A121 * f32_38; RHS38 += f32_38 * RHS32; -const double f33 = 1.0 / m_A123; + const double f33 = 1.0 / m_A123; const double f33_40 = -f33 * m_A163; m_A164 += m_A124 * f33_40; RHS40 += f33_40 * RHS33; -const double f34 = 1.0 / m_A126; + const double f34 = 1.0 / m_A126; const double f34_43 = -f34 * m_A192; m_A194 += m_A127 * f34_43; RHS43 += f34_43 * RHS34; -const double f35 = 1.0 / m_A129; + const double f35 = 1.0 / m_A129; const double f35_38 = -f35 * m_A147; m_A149 += m_A130 * f35_38; RHS38 += f35_38 * RHS35; -const double f36 = 1.0 / m_A133; + const double f36 = 1.0 / m_A133; const double f36_42 = -f36 * m_A178; m_A179 += m_A134 * f36_42; m_A182 += m_A135 * f36_42; RHS42 += f36_42 * RHS36; -const double f37 = 1.0 / m_A139; + const double f37 = 1.0 / m_A139; const double f37_38 = -f37 * m_A148; m_A149 += m_A140 * f37_38; m_A151 += m_A141 * f37_38; @@ -1636,7 +4149,7 @@ const double f37 = 1.0 / m_A139; m_A172 += m_A140 * f37_41; m_A174 += m_A141 * f37_41; RHS41 += f37_41 * RHS37; -const double f38 = 1.0 / m_A149; + const double f38 = 1.0 / m_A149; const double f38_39 = -f38 * m_A156; m_A157 += m_A150 * f38_39; m_A158 += m_A151 * f38_39; @@ -1652,7 +4165,7 @@ const double f38 = 1.0 / m_A149; m_A181 += m_A151 * f38_42; m_A182 += m_A152 * f38_42; RHS42 += f38_42 * RHS38; -const double f39 = 1.0 / m_A157; + const double f39 = 1.0 / m_A157; const double f39_41 = -f39 * m_A173; m_A174 += m_A158 * f39_41; m_A175 += m_A159 * f39_41; @@ -1668,11 +4181,11 @@ const double f39 = 1.0 / m_A157; m_A196 += m_A159 * f39_43; m_A197 += m_A160 * f39_43; RHS43 += f39_43 * RHS39; -const double f40 = 1.0 / m_A164; + const double f40 = 1.0 / m_A164; const double f40_43 = -f40 * m_A194; m_A197 += m_A165 * f40_43; RHS43 += f40_43 * RHS40; -const double f41 = 1.0 / m_A174; + const double f41 = 1.0 / m_A174; const double f41_42 = -f41 * m_A181; m_A182 += m_A175 * f41_42; m_A183 += m_A176 * f41_42; @@ -1681,7 +4194,7 @@ const double f41 = 1.0 / m_A174; m_A196 += m_A175 * f41_43; m_A197 += m_A176 * f41_43; RHS43 += f41_43 * RHS41; -const double f42 = 1.0 / m_A182; + const double f42 = 1.0 / m_A182; const double f42_43 = -f42 * m_A196; m_A197 += m_A183 * f42_43; RHS43 += f42_43 * RHS42; @@ -1852,281 +4365,1619 @@ const double f42 = 1.0 / m_A182; V[0] = (RHS0 - tmp0) / m_A0; } -// cheekyms -static void nl_gcr_19f6e9708f37ad65_7_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// gtrak10 +static void nl_gcr_4e48e9f6ef4bfdc4_43_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[4] + gt[5]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] - go[5] * *cnV[5]; - m_A6 = gt[8] + gt[9] + gt[10] + gt[11]; - m_A5 = m_A5 + go[8]; - m_A4 = m_A4 + go[9]; - double RHS2 = Idr[8] + Idr[9] + Idr[10] + Idr[11] - go[10] * *cnV[10] - go[11] * *cnV[11]; -const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A9 += go[12]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 -= go[13] * *cnV[13]; + RHS4 -= go[14] * *cnV[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A11 += go[15]; + double RHS5 = Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[16] * *cnV[16]; + RHS5 -= go[17] * *cnV[17]; + m_A12 += gt[18]; + m_A12 += gt[19]; + m_A12 += gt[20]; + m_A13 += go[18]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 -= go[19] * *cnV[19]; + RHS6 -= go[20] * *cnV[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A15 += go[21]; + double RHS7 = Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 -= go[22] * *cnV[22]; + RHS7 -= go[23] * *cnV[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A17 += go[24]; + double RHS8 = Idr[24]; + RHS8 += Idr[25]; + RHS8 += Idr[26]; + RHS8 -= go[25] * *cnV[25]; + RHS8 -= go[26] * *cnV[26]; + m_A18 += gt[27]; + m_A18 += gt[28]; + m_A18 += gt[29]; + m_A19 += go[27]; + double RHS9 = Idr[27]; + RHS9 += Idr[28]; + RHS9 += Idr[29]; + RHS9 -= go[28] * *cnV[28]; + RHS9 -= go[29] * *cnV[29]; + m_A20 += gt[30]; + m_A20 += gt[31]; + m_A20 += gt[32]; + m_A21 += go[30]; + double RHS10 = Idr[30]; + RHS10 += Idr[31]; + RHS10 += Idr[32]; + RHS10 -= go[31] * *cnV[31]; + RHS10 -= go[32] * *cnV[32]; + m_A22 += gt[33]; + m_A22 += gt[34]; + m_A22 += gt[35]; + m_A23 += go[33]; + double RHS11 = Idr[33]; + RHS11 += Idr[34]; + RHS11 += Idr[35]; + RHS11 -= go[34] * *cnV[34]; + RHS11 -= go[35] * *cnV[35]; + m_A25 += gt[36]; + m_A25 += gt[37]; + m_A25 += gt[38]; + m_A26 += go[36]; + m_A24 += go[37]; + double RHS12 = Idr[36]; + RHS12 += Idr[37]; + RHS12 += Idr[38]; + RHS12 -= go[38] * *cnV[38]; + m_A30 += gt[39]; + m_A30 += gt[40]; + m_A30 += gt[41]; + m_A30 += gt[42]; + m_A30 += gt[43]; + m_A30 += gt[44]; + m_A30 += gt[45]; + m_A29 += go[39]; + m_A28 += go[40]; + m_A27 += go[41]; + m_A31 += go[42]; + m_A31 += go[43]; + double RHS13 = Idr[39]; + RHS13 += Idr[40]; + RHS13 += Idr[41]; + RHS13 += Idr[42]; + RHS13 += Idr[43]; + RHS13 += Idr[44]; + RHS13 += Idr[45]; + RHS13 -= go[44] * *cnV[44]; + RHS13 -= go[45] * *cnV[45]; + m_A42 += gt[46]; + m_A42 += gt[47]; + m_A42 += gt[48]; + m_A42 += gt[49]; + m_A42 += gt[50]; + m_A42 += gt[51]; + m_A42 += gt[52]; + m_A42 += gt[53]; + m_A42 += gt[54]; + m_A42 += gt[55]; + m_A42 += gt[56]; + m_A42 += gt[57]; + m_A42 += gt[58]; + m_A41 += go[46]; + m_A41 += go[47]; + m_A39 += go[48]; + m_A38 += go[49]; + m_A37 += go[50]; + m_A36 += go[51]; + m_A35 += go[52]; + m_A34 += go[53]; + m_A33 += go[54]; + m_A32 += go[55]; + m_A40 += go[56]; + double RHS14 = Idr[46]; + RHS14 += Idr[47]; + RHS14 += Idr[48]; + RHS14 += Idr[49]; + RHS14 += Idr[50]; + RHS14 += Idr[51]; + RHS14 += Idr[52]; + RHS14 += Idr[53]; + RHS14 += Idr[54]; + RHS14 += Idr[55]; + RHS14 += Idr[56]; + RHS14 += Idr[57]; + RHS14 += Idr[58]; + RHS14 -= go[57] * *cnV[57]; + RHS14 -= go[58] * *cnV[58]; + const double f0 = 1.0 / m_A0; + const double f0_12 = -f0 * m_A24; + m_A25 += m_A1 * f0_12; + RHS12 += f0_12 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_14 = -f1 * m_A32; + m_A42 += m_A3 * f1_14; + RHS14 += f1_14 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_14 = -f2 * m_A33; + m_A42 += m_A5 * f2_14; + RHS14 += f2_14 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_14 = -f3 * m_A34; + m_A42 += m_A7 * f3_14; + RHS14 += f3_14 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_14 = -f4 * m_A35; + m_A42 += m_A9 * f4_14; + RHS14 += f4_14 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_14 = -f5 * m_A36; + m_A42 += m_A11 * f5_14; + RHS14 += f5_14 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_14 = -f6 * m_A37; + m_A42 += m_A13 * f6_14; + RHS14 += f6_14 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_14 = -f7 * m_A38; + m_A42 += m_A15 * f7_14; + RHS14 += f7_14 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_14 = -f8 * m_A39; + m_A42 += m_A17 * f8_14; + RHS14 += f8_14 * RHS8; + const double f9 = 1.0 / m_A18; + const double f9_13 = -f9 * m_A27; + m_A30 += m_A19 * f9_13; + RHS13 += f9_13 * RHS9; + const double f10 = 1.0 / m_A20; + const double f10_13 = -f10 * m_A28; + m_A30 += m_A21 * f10_13; + RHS13 += f10_13 * RHS10; + const double f11 = 1.0 / m_A22; + const double f11_13 = -f11 * m_A29; + m_A30 += m_A23 * f11_13; + RHS13 += f11_13 * RHS11; + const double f12 = 1.0 / m_A25; + const double f12_14 = -f12 * m_A40; + m_A42 += m_A26 * f12_14; + RHS14 += f12_14 * RHS12; + const double f13 = 1.0 / m_A30; + const double f13_14 = -f13 * m_A41; + m_A42 += m_A31 * f13_14; + RHS14 += f13_14 * RHS13; + V[14] = RHS14 / m_A42; + double tmp13 = 0.0; + tmp13 += m_A31 * V[14]; + V[13] = (RHS13 - tmp13) / m_A30; + double tmp12 = 0.0; + tmp12 += m_A26 * V[14]; + V[12] = (RHS12 - tmp12) / m_A25; + double tmp11 = 0.0; + tmp11 += m_A23 * V[13]; + V[11] = (RHS11 - tmp11) / m_A22; + double tmp10 = 0.0; + tmp10 += m_A21 * V[13]; + V[10] = (RHS10 - tmp10) / m_A20; + double tmp9 = 0.0; + tmp9 += m_A19 * V[13]; + V[9] = (RHS9 - tmp9) / m_A18; + double tmp8 = 0.0; + tmp8 += m_A17 * V[14]; + V[8] = (RHS8 - tmp8) / m_A16; + double tmp7 = 0.0; + tmp7 += m_A15 * V[14]; + V[7] = (RHS7 - tmp7) / m_A14; + double tmp6 = 0.0; + tmp6 += m_A13 * V[14]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[14]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[14]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[14]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[14]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; + tmp1 += m_A3 * V[14]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; + tmp0 += m_A1 * V[12]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// kidniki +static void nl_gcr_580e08d22698f60a_37_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A2 += go[0]; + m_A2 += go[1]; + m_A1 += go[2]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[3] * *cnV[3]; + m_A3 += gt[4]; + m_A3 += gt[5]; + m_A3 += gt[6]; + m_A5 += go[4]; + m_A4 += go[5]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A7 += go[7]; + m_A7 += go[8]; + m_A8 += go[9]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A9 += gt[16]; + m_A11 += go[14]; + m_A10 += go[15]; + double RHS3 = Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 -= go[16] * *cnV[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A13 += go[17]; + m_A12 += go[18]; + m_A12 += go[19]; + double RHS4 = Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + m_A18 += gt[22]; + m_A18 += gt[23]; + m_A18 += gt[24]; + m_A18 += gt[25]; + m_A18 += gt[26]; + m_A18 += gt[27]; + m_A18 += gt[28]; + m_A20 += go[22]; + m_A19 += go[23]; + m_A19 += go[24]; + m_A19 += go[25]; + m_A17 += go[26]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 += Idr[28]; + RHS5 -= go[27] * *cnV[27]; + RHS5 -= go[28] * *cnV[28]; + m_A23 += gt[29]; + m_A23 += gt[30]; + m_A23 += gt[31]; + m_A23 += gt[32]; + m_A21 += go[29]; + double RHS6 = Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + RHS6 += Idr[32]; + RHS6 -= go[30] * *cnV[30]; + RHS6 -= go[31] * *cnV[31]; + RHS6 -= go[32] * *cnV[32]; + m_A28 += gt[33]; + m_A28 += gt[34]; + m_A28 += gt[35]; + m_A28 += gt[36]; + m_A28 += gt[37]; + m_A28 += gt[38]; + m_A26 += go[33]; + m_A27 += go[34]; + m_A27 += go[35]; + m_A27 += go[36]; + m_A25 += go[37]; + m_A25 += go[38]; + double RHS7 = Idr[33]; + RHS7 += Idr[34]; + RHS7 += Idr[35]; + RHS7 += Idr[36]; + RHS7 += Idr[37]; + RHS7 += Idr[38]; + m_A36 += gt[39]; + m_A36 += gt[40]; + m_A36 += gt[41]; + m_A36 += gt[42]; + m_A30 += go[39]; + m_A33 += go[40]; + m_A31 += go[41]; + double RHS8 = Idr[39]; + RHS8 += Idr[40]; + RHS8 += Idr[41]; + RHS8 += Idr[42]; + RHS8 -= go[42] * *cnV[42]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A17; + m_A18 += m_A1 * f0_5; + m_A19 += m_A2 * f0_5; + RHS5 += f0_5 * RHS0; + const double f0_7 = -f0 * m_A25; + m_A27 += m_A1 * f0_7; + m_A28 += m_A2 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_7 = -f1 * m_A26; + m_A28 += m_A4 * f1_7; + m_A29 += m_A5 * f1_7; + RHS7 += f1_7 * RHS1; + const double f1_8 = -f1 * m_A30; + m_A35 += m_A4 * f1_8; + m_A36 += m_A5 * f1_8; + RHS8 += f1_8 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_4 = -f2 * m_A12; + m_A14 += m_A7 * f2_4; + m_A16 += m_A8 * f2_4; + RHS4 += f2_4 * RHS2; + const double f2_8 = -f2 * m_A31; + m_A32 += m_A7 * f2_8; + m_A36 += m_A8 * f2_8; + RHS8 += f2_8 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_4 = -f3 * m_A13; + m_A14 += m_A10 * f3_4; + m_A15 += m_A11 * f3_4; + RHS4 += f3_4 * RHS3; + const double f3_6 = -f3 * m_A21; + m_A22 += m_A10 * f3_6; + m_A23 += m_A11 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A14; + const double f4_6 = -f4 * m_A22; + m_A23 += m_A15 * f4_6; + m_A24 += m_A16 * f4_6; + RHS6 += f4_6 * RHS4; + const double f4_8 = -f4 * m_A32; + m_A34 += m_A15 * f4_8; + m_A36 += m_A16 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A18; + const double f5_7 = -f5 * m_A27; + m_A28 += m_A19 * f5_7; + m_A29 += m_A20 * f5_7; + RHS7 += f5_7 * RHS5; + const double f5_8 = -f5 * m_A33; + m_A35 += m_A19 * f5_8; + m_A36 += m_A20 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A23; + const double f6_8 = -f6 * m_A34; + m_A36 += m_A24 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A28; + const double f7_8 = -f7 * m_A35; + m_A36 += m_A29 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A36; + double tmp7 = 0.0; + tmp7 += m_A29 * V[8]; + V[7] = (RHS7 - tmp7) / m_A28; + double tmp6 = 0.0; + tmp6 += m_A24 * V[8]; + V[6] = (RHS6 - tmp6) / m_A23; + double tmp5 = 0.0; + tmp5 += m_A19 * V[7]; + tmp5 += m_A20 * V[8]; + V[5] = (RHS5 - tmp5) / m_A18; + double tmp4 = 0.0; + tmp4 += m_A15 * V[6]; + tmp4 += m_A16 * V[8]; + V[4] = (RHS4 - tmp4) / m_A14; + double tmp3 = 0.0; + tmp3 += m_A10 * V[4]; + tmp3 += m_A11 * V[6]; + V[3] = (RHS3 - tmp3) / m_A9; + double tmp2 = 0.0; + tmp2 += m_A7 * V[4]; + tmp2 += m_A8 * V[8]; + V[2] = (RHS2 - tmp2) / m_A6; + double tmp1 = 0.0; + tmp1 += m_A4 * V[7]; + tmp1 += m_A5 * V[8]; + V[1] = (RHS1 - tmp1) / m_A3; + double tmp0 = 0.0; + tmp0 += m_A1 * V[5]; + tmp0 += m_A2 * V[7]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// kidniki +static void nl_gcr_58f8065842de37d4_34_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + m_A2 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[2] * *cnV[2]; + m_A3 += gt[3]; + m_A3 += gt[4]; + m_A3 += gt[5]; + m_A3 += gt[6]; + m_A3 += gt[7]; + m_A3 += gt[8]; + m_A3 += gt[9]; + m_A5 += go[3]; + m_A4 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A7 += gt[10]; + m_A7 += gt[11]; + m_A7 += gt[12]; + m_A6 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A11 += go[13]; + m_A10 += go[14]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 -= go[15] * *cnV[15]; + m_A12 += gt[16]; + m_A12 += gt[17]; + m_A12 += gt[18]; + m_A14 += go[16]; + m_A13 += go[17]; + double RHS4 = Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 -= go[18] * *cnV[18]; + m_A17 += gt[19]; + m_A17 += gt[20]; + m_A17 += gt[21]; + m_A17 += gt[22]; + m_A17 += gt[23]; + m_A17 += gt[24]; + m_A17 += gt[25]; + m_A15 += go[19]; + m_A18 += go[20]; + double RHS5 = Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + RHS5 -= go[23] * *cnV[23]; + RHS5 -= go[24] * *cnV[24]; + RHS5 -= go[25] * *cnV[25]; + m_A21 += gt[26]; + m_A21 += gt[27]; + m_A21 += gt[28]; + m_A21 += gt[29]; + m_A21 += gt[30]; + m_A21 += gt[31]; + m_A19 += go[26]; + m_A22 += go[27]; + m_A20 += go[28]; + double RHS6 = Idr[26]; + RHS6 += Idr[27]; + RHS6 += Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + RHS6 -= go[29] * *cnV[29]; + RHS6 -= go[30] * *cnV[30]; + RHS6 -= go[31] * *cnV[31]; + m_A27 += gt[32]; + m_A27 += gt[33]; + m_A27 += gt[34]; + m_A27 += gt[35]; + m_A27 += gt[36]; + m_A26 += go[32]; + m_A25 += go[33]; + m_A23 += go[34]; + double RHS7 = Idr[32]; + RHS7 += Idr[33]; + RHS7 += Idr[34]; + RHS7 += Idr[35]; + RHS7 += Idr[36]; + RHS7 -= go[35] * *cnV[35]; + RHS7 -= go[36] * *cnV[36]; + m_A33 += gt[37]; + m_A33 += gt[38]; + m_A33 += gt[39]; + m_A30 += go[37]; + m_A31 += go[38]; + m_A29 += go[39]; + double RHS8 = Idr[37]; + RHS8 += Idr[38]; + RHS8 += Idr[39]; + const double f0 = 1.0 / m_A0; + 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 f0_5 = -f0 * m_A15; + m_A16 += m_A1 * f0_5; + m_A18 += m_A2 * f0_5; + RHS5 += f0_5 * RHS0; + const double f0_7 = -f0 * m_A23; + m_A24 += m_A1 * f0_7; + m_A27 += m_A2 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_6 = -f1 * m_A19; + m_A20 += m_A4 * f1_6; + m_A21 += m_A5 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A7; + const double f2_5 = -f2 * m_A16; + m_A18 += m_A8 * f2_5; + RHS5 += f2_5 * RHS2; + const double f2_7 = -f2 * m_A24; + m_A27 += m_A8 * f2_7; + RHS7 += f2_7 * RHS2; + const double f3 = 1.0 / m_A9; + const double f3_6 = -f3 * m_A20; + m_A21 += m_A10 * f3_6; + m_A22 += m_A11 * f3_6; + RHS6 += f3_6 * RHS3; + const double f3_8 = -f3 * m_A29; + m_A31 += m_A10 * f3_8; + m_A33 += m_A11 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A12; + const double f4_7 = -f4 * m_A25; + m_A27 += m_A13 * f4_7; + m_A28 += m_A14 * f4_7; + RHS7 += f4_7 * RHS4; + const double f4_8 = -f4 * m_A30; + m_A32 += m_A13 * f4_8; + m_A33 += m_A14 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A17; + const double f5_7 = -f5 * m_A26; + m_A27 += m_A18 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A21; + const double f6_8 = -f6 * m_A31; + m_A33 += m_A22 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A27; + const double f7_8 = -f7 * m_A32; + m_A33 += m_A28 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A33; + double tmp7 = 0.0; + tmp7 += m_A28 * V[8]; + V[7] = (RHS7 - tmp7) / m_A27; + double tmp6 = 0.0; + tmp6 += m_A22 * V[8]; + V[6] = (RHS6 - tmp6) / m_A21; + double tmp5 = 0.0; + tmp5 += m_A18 * V[7]; + V[5] = (RHS5 - tmp5) / m_A17; + double tmp4 = 0.0; + tmp4 += m_A13 * V[7]; + tmp4 += m_A14 * V[8]; + V[4] = (RHS4 - tmp4) / m_A12; + double tmp3 = 0.0; + tmp3 += m_A10 * V[6]; + tmp3 += m_A11 * V[8]; + V[3] = (RHS3 - tmp3) / m_A9; + double tmp2 = 0.0; + tmp2 += m_A8 * V[7]; + V[2] = (RHS2 - tmp2) / m_A7; + double tmp1 = 0.0; + tmp1 += m_A4 * V[3]; + tmp1 += m_A5 * V[6]; + V[1] = (RHS1 - tmp1) / m_A3; + double tmp0 = 0.0; tmp0 += m_A1 * V[2]; + tmp0 += m_A2 * V[7]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// breakout +static void nl_gcr_59095cbc65117534_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A12 += gt[14]; + m_A12 += gt[15]; + m_A12 += gt[16]; + m_A12 += gt[17]; + m_A11 += go[12]; + m_A10 += go[13]; + m_A9 += go[14]; + m_A8 += go[15]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 -= go[16] * *cnV[16]; + RHS4 -= go[17] * *cnV[17]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A8; + m_A12 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_4 = -f1 * m_A9; + m_A12 += m_A3 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A10; + m_A12 += m_A5 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_4 = -f3 * m_A11; + m_A12 += m_A7 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A12; + double tmp3 = 0.0; + tmp3 += m_A7 * V[4]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[4]; + V[2] = (RHS2 - tmp2) / m_A4; + double tmp1 = 0.0; + tmp1 += m_A3 * V[4]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[4]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// breakout +static void nl_gcr_593686d4c01bf991_31_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A0 += gt[4]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 += Idr[4]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + RHS0 -= go[4] * *cnV[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A3 += go[5]; + double RHS1 = Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + 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_A6 += go[9]; + double RHS2 = Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[10] * *cnV[10]; + m_A7 += gt[11]; + m_A7 += gt[12]; + m_A7 += gt[13]; + m_A8 += go[11]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A9 += gt[16]; + m_A10 += 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_A12 += gt[22]; + m_A12 += gt[23]; + m_A14 += go[17]; + m_A13 += go[18]; + m_A11 += go[19]; + double RHS5 = Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[20] * *cnV[20]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + RHS5 -= 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_A18 += go[24]; + m_A15 += go[25]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 += Idr[28]; + RHS6 -= go[26] * *cnV[26]; + RHS6 -= go[27] * *cnV[27]; + RHS6 -= go[28] * *cnV[28]; + m_A23 += gt[29]; + m_A23 += gt[30]; + m_A23 += gt[31]; + m_A19 += go[29]; + m_A20 += go[30]; + m_A21 += go[31]; + double RHS7 = Idr[29]; + RHS7 += Idr[30]; + RHS7 += Idr[31]; + m_A30 += gt[32]; + m_A30 += gt[33]; + m_A30 += gt[34]; + m_A30 += gt[35]; + m_A30 += gt[36]; + m_A26 += go[32]; + m_A25 += go[33]; + m_A28 += go[34]; + m_A27 += go[35]; + double RHS8 = Idr[32]; + RHS8 += Idr[33]; + RHS8 += Idr[34]; + RHS8 += Idr[35]; + RHS8 += Idr[36]; + RHS8 -= go[36] * *cnV[36]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A11; + m_A12 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_7 = -f1 * m_A19; + m_A23 += m_A3 * f1_7; + RHS7 += f1_7 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_6 = -f2 * m_A15; + m_A16 += m_A5 * f2_6; + m_A17 += m_A6 * f2_6; + RHS6 += f2_6 * RHS2; + const double f2_7 = -f2 * m_A20; + m_A22 += m_A5 * f2_7; + m_A23 += m_A6 * f2_7; + RHS7 += f2_7 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_8 = -f3 * m_A25; + m_A30 += m_A8 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_8 = -f4 * m_A26; + m_A30 += m_A10 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A12; + const double f5_7 = -f5 * m_A21; + m_A23 += m_A13 * f5_7; + m_A24 += m_A14 * f5_7; + RHS7 += f5_7 * RHS5; + const double f5_8 = -f5 * m_A27; + m_A29 += m_A13 * f5_8; + m_A30 += m_A14 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_7 = -f6 * m_A22; + m_A23 += m_A17 * f6_7; + m_A24 += m_A18 * f6_7; + RHS7 += f6_7 * RHS6; + const double f6_8 = -f6 * m_A28; + m_A29 += m_A17 * f6_8; + m_A30 += m_A18 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A23; + const double f7_8 = -f7 * m_A29; + m_A30 += m_A24 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A30; + double tmp7 = 0.0; + tmp7 += m_A24 * V[8]; + V[7] = (RHS7 - tmp7) / m_A23; + double tmp6 = 0.0; + tmp6 += m_A17 * V[7]; + tmp6 += m_A18 * V[8]; + V[6] = (RHS6 - tmp6) / m_A16; + double tmp5 = 0.0; + tmp5 += m_A13 * V[7]; + tmp5 += m_A14 * V[8]; + V[5] = (RHS5 - tmp5) / m_A12; + double tmp4 = 0.0; + tmp4 += m_A10 * V[8]; + V[4] = (RHS4 - tmp4) / m_A9; + double tmp3 = 0.0; + tmp3 += m_A8 * V[8]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A5 * V[6]; + tmp2 += m_A6 * V[7]; + 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[5]; V[0] = (RHS0 - tmp0) / m_A0; } // zac1b11142 -static void nl_gcr_1dd100c8f34cf889_96_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_5a632d4741241573_96_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] - go[1] * *cnV[1]; - m_A2 = gt[8] + gt[9] + gt[10] + gt[11] + gt[12] + gt[13] + gt[14]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] + Idr[11] + Idr[12] + Idr[13] + Idr[14] - go[9] * *cnV[9] - go[10] * *cnV[10] - go[11] * *cnV[11] - go[12] * *cnV[12] - go[13] * *cnV[13] - go[14] * *cnV[14]; - m_A4 = gt[16] + gt[17]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] - go[17] * *cnV[17]; - m_A6 = gt[24] + gt[25] + gt[26] + gt[27] + gt[28] + gt[29] + gt[30]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] + Idr[27] + Idr[28] + Idr[29] + Idr[30] - go[25] * *cnV[25] - go[26] * *cnV[26] - go[27] * *cnV[27] - go[28] * *cnV[28] - go[29] * *cnV[29] - go[30] * *cnV[30]; - m_A8 = gt[32] + gt[33] + gt[34] + gt[35] + gt[36] + gt[37] + gt[38]; - m_A9 = m_A9 + go[32]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] + Idr[35] + Idr[36] + Idr[37] + Idr[38] - go[33] * *cnV[33] - go[34] * *cnV[34] - go[35] * *cnV[35] - go[36] * *cnV[36] - go[37] * *cnV[37] - go[38] * *cnV[38]; - m_A10 = gt[40] + gt[41] + gt[42] + gt[43] + gt[44]; - m_A11 = m_A11 + go[40]; - m_A12 = m_A12 + go[41]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] + Idr[43] + Idr[44] - go[42] * *cnV[42] - go[43] * *cnV[43] - go[44] * *cnV[44]; - m_A13 = gt[48] + gt[49] + gt[50]; - m_A14 = m_A14 + go[48]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] - go[49] * *cnV[49] - go[50] * *cnV[50]; - m_A15 = gt[56] + gt[57]; - m_A16 = m_A16 + go[56]; - double RHS7 = Idr[56] + Idr[57] - go[57] * *cnV[57]; - m_A17 = gt[64] + gt[65] + gt[66]; - m_A18 = m_A18 + go[64]; - double RHS8 = Idr[64] + Idr[65] + Idr[66] - go[65] * *cnV[65] - go[66] * *cnV[66]; - m_A20 = gt[72] + gt[73]; - m_A19 = m_A19 + go[72]; - double RHS9 = Idr[72] + Idr[73] - go[73] * *cnV[73]; - m_A21 = gt[80] + gt[81] + gt[82]; - m_A22 = m_A22 + go[80]; - double RHS10 = Idr[80] + Idr[81] + Idr[82] - go[81] * *cnV[81] - go[82] * *cnV[82]; - m_A23 = gt[88] + gt[89] + gt[90]; - m_A24 = m_A24 + go[88]; - m_A25 = m_A25 + go[89]; - double RHS11 = Idr[88] + Idr[89] + Idr[90] - go[90] * *cnV[90]; - m_A26 = gt[96] + gt[97] + gt[98]; - m_A27 = m_A27 + go[96]; - double RHS12 = Idr[96] + Idr[97] + Idr[98] - go[97] * *cnV[97] - go[98] * *cnV[98]; - m_A29 = gt[104] + gt[105]; - m_A28 = m_A28 + go[104]; - double RHS13 = Idr[104] + Idr[105] - go[105] * *cnV[105]; - m_A31 = gt[112] + gt[113] + gt[114] + gt[115] + gt[116]; - m_A30 = m_A30 + go[112]; - m_A33 = m_A33 + go[113]; - double RHS14 = Idr[112] + Idr[113] + Idr[114] + Idr[115] + Idr[116] - go[114] * *cnV[114] - go[115] * *cnV[115] - go[116] * *cnV[116]; - m_A35 = gt[120] + gt[121] + gt[122]; - m_A37 = m_A37 + go[120]; - m_A34 = m_A34 + go[121]; - double RHS15 = Idr[120] + Idr[121] + Idr[122] - go[122] * *cnV[122]; - m_A39 = gt[128] + gt[129] + gt[130] + gt[131] + gt[132]; - m_A38 = m_A38 + go[128]; - m_A41 = m_A41 + go[129]; - double RHS16 = Idr[128] + Idr[129] + Idr[130] + Idr[131] + Idr[132] - go[130] * *cnV[130] - go[131] * *cnV[131] - go[132] * *cnV[132]; - m_A44 = gt[136] + gt[137]; - m_A43 = m_A43 + go[136]; - m_A42 = m_A42 + go[137]; - double RHS17 = Idr[136] + Idr[137]; - m_A47 = gt[144] + gt[145] + gt[146]; - m_A48 = m_A48 + go[144]; - m_A45 = m_A45 + go[145]; - double RHS18 = Idr[144] + Idr[145] + Idr[146] - go[146] * *cnV[146]; - m_A51 = gt[152] + gt[153] + gt[154] + gt[155]; - m_A52 = m_A52 + go[152]; - m_A50 = m_A50 + go[153]; - double RHS19 = Idr[152] + Idr[153] + Idr[154] + Idr[155] - go[154] * *cnV[154] - go[155] * *cnV[155]; - m_A54 = gt[160] + gt[161]; - m_A56 = m_A56 + go[160]; - m_A53 = m_A53 + go[161]; - double RHS20 = Idr[160] + Idr[161]; - m_A58 = gt[168] + gt[169] + gt[170] + gt[171]; - m_A59 = m_A59 + go[168]; - m_A57 = m_A57 + go[169]; - double RHS21 = Idr[168] + Idr[169] + Idr[170] + Idr[171] - go[170] * *cnV[170] - go[171] * *cnV[171]; - m_A64 = gt[176] + gt[177] + gt[178] + gt[179] + gt[180] + gt[181]; - m_A60 = m_A60 + go[176]; - m_A61 = m_A61 + go[177]; - m_A66 = m_A66 + go[178]; - m_A66 = m_A66 + go[179]; - double RHS22 = Idr[176] + Idr[177] + Idr[178] + Idr[179] + Idr[180] + Idr[181] - go[180] * *cnV[180] - go[181] * *cnV[181]; - m_A73 = gt[184] + gt[185] + gt[186] + gt[187] + gt[188]; - m_A69 = m_A69 + go[184]; - m_A70 = m_A70 + go[185]; - m_A71 = m_A71 + go[186]; - m_A68 = m_A68 + go[187]; - m_A67 = m_A67 + go[188]; - double RHS23 = Idr[184] + Idr[185] + Idr[186] + Idr[187] + Idr[188]; - m_A76 = gt[192] + gt[193] + gt[194] + gt[195]; - m_A77 = m_A77 + go[192]; - m_A75 = m_A75 + go[193]; - double RHS24 = Idr[192] + Idr[193] + Idr[194] + Idr[195] - go[194] * *cnV[194] - go[195] * *cnV[195]; - m_A85 = gt[200] + gt[201] + gt[202] + gt[203] + gt[204]; - m_A81 = m_A81 + go[200]; - m_A80 = m_A80 + go[201]; - m_A82 = m_A82 + go[202]; - m_A79 = m_A79 + go[203]; - m_A78 = m_A78 + go[204]; - double RHS25 = Idr[200] + Idr[201] + Idr[202] + Idr[203] + Idr[204]; - m_A95 = gt[208] + gt[209] + gt[210] + gt[211] + gt[212] + gt[213] + gt[214] + gt[215]; - m_A89 = m_A89 + go[208]; - m_A92 = m_A92 + go[209]; - m_A92 = m_A92 + go[210]; - m_A90 = m_A90 + go[211]; - m_A88 = m_A88 + go[212]; - m_A87 = m_A87 + go[213]; - double RHS26 = Idr[208] + Idr[209] + Idr[210] + Idr[211] + Idr[212] + Idr[213] + Idr[214] + Idr[215] - go[214] * *cnV[214] - go[215] * *cnV[215]; -const double f0 = 1.0 / m_A0; + 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); + 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_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 -= go[3] * *cnV[3]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A5 += go[9]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[10] * *cnV[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A6 += gt[16]; + m_A6 += gt[17]; + m_A7 += go[11]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[17] * *cnV[17]; + m_A8 += gt[18]; + m_A8 += gt[19]; + m_A8 += gt[20]; + m_A8 += gt[21]; + m_A8 += gt[22]; + m_A8 += gt[23]; + m_A8 += gt[24]; + m_A9 += go[18]; + double RHS4 = Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 += Idr[23]; + RHS4 += Idr[24]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + RHS4 -= go[23] * *cnV[23]; + RHS4 -= go[24] * *cnV[24]; + m_A10 += gt[25]; + m_A10 += gt[26]; + m_A10 += gt[27]; + m_A10 += gt[28]; + m_A10 += gt[29]; + m_A11 += go[25]; + m_A12 += go[26]; + double RHS5 = Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 += Idr[28]; + RHS5 += Idr[29]; + RHS5 -= go[27] * *cnV[27]; + RHS5 -= go[28] * *cnV[28]; + RHS5 -= go[29] * *cnV[29]; + m_A13 += gt[30]; + m_A13 += gt[31]; + m_A13 += gt[32]; + m_A14 += go[30]; + double RHS6 = Idr[30]; + RHS6 += Idr[31]; + RHS6 += Idr[32]; + RHS6 -= go[31] * *cnV[31]; + RHS6 -= go[32] * *cnV[32]; + m_A15 += gt[33]; + m_A15 += gt[34]; + m_A16 += go[33]; + double RHS7 = Idr[33]; + RHS7 += Idr[34]; + RHS7 -= go[34] * *cnV[34]; + m_A17 += gt[35]; + m_A17 += gt[36]; + m_A17 += gt[37]; + m_A18 += go[35]; + double RHS8 = Idr[35]; + RHS8 += Idr[36]; + RHS8 += Idr[37]; + RHS8 -= go[36] * *cnV[36]; + RHS8 -= go[37] * *cnV[37]; + m_A20 += gt[38]; + m_A20 += gt[39]; + m_A19 += go[38]; + double RHS9 = Idr[38]; + RHS9 += Idr[39]; + RHS9 -= go[39] * *cnV[39]; + m_A21 += gt[40]; + m_A21 += gt[41]; + m_A21 += gt[42]; + m_A22 += go[40]; + double RHS10 = Idr[40]; + RHS10 += Idr[41]; + RHS10 += Idr[42]; + RHS10 -= go[41] * *cnV[41]; + RHS10 -= go[42] * *cnV[42]; + m_A23 += gt[43]; + m_A23 += gt[44]; + m_A23 += gt[45]; + m_A24 += go[43]; + m_A25 += go[44]; + double RHS11 = Idr[43]; + RHS11 += Idr[44]; + RHS11 += Idr[45]; + RHS11 -= go[45] * *cnV[45]; + m_A26 += gt[46]; + m_A26 += gt[47]; + m_A26 += gt[48]; + m_A27 += go[46]; + double RHS12 = Idr[46]; + RHS12 += Idr[47]; + RHS12 += Idr[48]; + RHS12 -= go[47] * *cnV[47]; + RHS12 -= go[48] * *cnV[48]; + m_A29 += gt[49]; + m_A29 += gt[50]; + m_A28 += go[49]; + double RHS13 = Idr[49]; + RHS13 += Idr[50]; + RHS13 -= go[50] * *cnV[50]; + m_A31 += gt[51]; + m_A31 += gt[52]; + m_A31 += gt[53]; + m_A31 += gt[54]; + m_A31 += gt[55]; + m_A30 += go[51]; + m_A33 += go[52]; + double RHS14 = Idr[51]; + RHS14 += Idr[52]; + RHS14 += Idr[53]; + RHS14 += Idr[54]; + RHS14 += Idr[55]; + RHS14 -= go[53] * *cnV[53]; + RHS14 -= go[54] * *cnV[54]; + RHS14 -= go[55] * *cnV[55]; + m_A35 += gt[56]; + m_A35 += gt[57]; + m_A35 += gt[58]; + m_A37 += go[56]; + m_A34 += go[57]; + double RHS15 = Idr[56]; + RHS15 += Idr[57]; + RHS15 += Idr[58]; + RHS15 -= go[58] * *cnV[58]; + m_A39 += gt[59]; + m_A39 += gt[60]; + m_A39 += gt[61]; + m_A39 += gt[62]; + m_A39 += gt[63]; + m_A38 += go[59]; + m_A41 += go[60]; + double RHS16 = Idr[59]; + RHS16 += Idr[60]; + RHS16 += Idr[61]; + RHS16 += Idr[62]; + RHS16 += Idr[63]; + RHS16 -= go[61] * *cnV[61]; + RHS16 -= go[62] * *cnV[62]; + RHS16 -= go[63] * *cnV[63]; + m_A44 += gt[64]; + m_A44 += gt[65]; + m_A43 += go[64]; + m_A42 += go[65]; + double RHS17 = Idr[64]; + RHS17 += Idr[65]; + m_A47 += gt[66]; + m_A47 += gt[67]; + m_A47 += gt[68]; + m_A48 += go[66]; + m_A45 += go[67]; + double RHS18 = Idr[66]; + RHS18 += Idr[67]; + RHS18 += Idr[68]; + RHS18 -= go[68] * *cnV[68]; + m_A51 += gt[69]; + m_A51 += gt[70]; + m_A51 += gt[71]; + m_A51 += gt[72]; + m_A52 += go[69]; + m_A50 += go[70]; + double RHS19 = Idr[69]; + RHS19 += Idr[70]; + RHS19 += Idr[71]; + RHS19 += Idr[72]; + RHS19 -= go[71] * *cnV[71]; + RHS19 -= go[72] * *cnV[72]; + m_A54 += gt[73]; + m_A54 += gt[74]; + m_A56 += go[73]; + m_A53 += go[74]; + double RHS20 = Idr[73]; + RHS20 += Idr[74]; + m_A58 += gt[75]; + m_A58 += gt[76]; + m_A58 += gt[77]; + m_A58 += gt[78]; + m_A59 += go[75]; + m_A57 += go[76]; + double RHS21 = Idr[75]; + RHS21 += Idr[76]; + RHS21 += Idr[77]; + RHS21 += Idr[78]; + RHS21 -= go[77] * *cnV[77]; + RHS21 -= go[78] * *cnV[78]; + m_A64 += gt[79]; + m_A64 += gt[80]; + m_A64 += gt[81]; + m_A64 += gt[82]; + m_A64 += gt[83]; + m_A64 += gt[84]; + m_A60 += go[79]; + m_A61 += go[80]; + m_A66 += go[81]; + m_A66 += go[82]; + double RHS22 = Idr[79]; + RHS22 += Idr[80]; + RHS22 += Idr[81]; + RHS22 += Idr[82]; + RHS22 += Idr[83]; + RHS22 += Idr[84]; + RHS22 -= go[83] * *cnV[83]; + RHS22 -= go[84] * *cnV[84]; + m_A73 += gt[85]; + m_A73 += gt[86]; + m_A73 += gt[87]; + m_A73 += gt[88]; + m_A73 += gt[89]; + m_A69 += go[85]; + m_A70 += go[86]; + m_A71 += go[87]; + m_A68 += go[88]; + m_A67 += go[89]; + double RHS23 = Idr[85]; + RHS23 += Idr[86]; + RHS23 += Idr[87]; + RHS23 += Idr[88]; + RHS23 += Idr[89]; + m_A76 += gt[90]; + m_A76 += gt[91]; + m_A76 += gt[92]; + m_A76 += gt[93]; + m_A77 += go[90]; + m_A75 += go[91]; + double RHS24 = Idr[90]; + RHS24 += Idr[91]; + RHS24 += Idr[92]; + RHS24 += Idr[93]; + RHS24 -= go[92] * *cnV[92]; + RHS24 -= go[93] * *cnV[93]; + m_A85 += gt[94]; + m_A85 += gt[95]; + m_A85 += gt[96]; + m_A85 += gt[97]; + m_A85 += gt[98]; + m_A81 += go[94]; + m_A80 += go[95]; + m_A82 += go[96]; + m_A79 += go[97]; + m_A78 += go[98]; + double RHS25 = Idr[94]; + RHS25 += Idr[95]; + RHS25 += Idr[96]; + RHS25 += Idr[97]; + RHS25 += Idr[98]; + m_A95 += gt[99]; + m_A95 += gt[100]; + m_A95 += gt[101]; + m_A95 += gt[102]; + m_A95 += gt[103]; + m_A95 += gt[104]; + m_A95 += gt[105]; + m_A95 += gt[106]; + m_A89 += go[99]; + m_A92 += go[100]; + m_A92 += go[101]; + m_A90 += go[102]; + m_A88 += go[103]; + m_A87 += go[104]; + double RHS26 = Idr[99]; + RHS26 += Idr[100]; + RHS26 += Idr[101]; + RHS26 += Idr[102]; + RHS26 += Idr[103]; + RHS26 += Idr[104]; + RHS26 += Idr[105]; + RHS26 += Idr[106]; + RHS26 -= go[105] * *cnV[105]; + RHS26 -= go[106] * *cnV[106]; + const double f0 = 1.0 / m_A0; const double f0_9 = -f0 * m_A19; m_A20 += m_A1 * f0_9; RHS9 += f0_9 * RHS0; const double f0_23 = -f0 * m_A67; m_A69 += m_A1 * f0_23; RHS23 += f0_23 * RHS0; -const double f1 = 1.0 / m_A2; + const double f1 = 1.0 / m_A2; const double f1_16 = -f1 * m_A38; m_A40 += m_A3 * f1_16; RHS16 += f1_16 * RHS1; -const double f2 = 1.0 / m_A4; + const double f2 = 1.0 / m_A4; const double f2_13 = -f2 * m_A28; m_A29 += m_A5 * f2_13; RHS13 += f2_13 * RHS2; const double f2_26 = -f2 * m_A87; m_A89 += m_A5 * f2_26; RHS26 += f2_26 * RHS2; -const double f3 = 1.0 / m_A6; + const double f3 = 1.0 / m_A6; const double f3_22 = -f3 * m_A60; m_A63 += m_A7 * f3_22; RHS22 += f3_22 * RHS3; -const double f4 = 1.0 / m_A8; + const double f4 = 1.0 / m_A8; const double f4_14 = -f4 * m_A30; m_A32 += m_A9 * f4_14; RHS14 += f4_14 * RHS4; -const double f5 = 1.0 / m_A10; + const double f5 = 1.0 / m_A10; const double f5_15 = -f5 * m_A34; m_A35 += m_A11 * f5_15; m_A36 += m_A12 * f5_15; @@ -2135,35 +5986,35 @@ const double f5 = 1.0 / m_A10; m_A46 += m_A11 * f5_18; m_A47 += m_A12 * f5_18; RHS18 += f5_18 * RHS5; -const double f6 = 1.0 / m_A13; + const double f6 = 1.0 / m_A13; const double f6_19 = -f6 * m_A50; m_A52 += m_A14 * f6_19; RHS19 += f6_19 * RHS6; const double f6_23 = -f6 * m_A68; m_A73 += m_A14 * f6_23; RHS23 += f6_23 * RHS6; -const double f7 = 1.0 / m_A15; + const double f7 = 1.0 / m_A15; const double f7_17 = -f7 * m_A42; m_A44 += m_A16 * f7_17; RHS17 += f7_17 * RHS7; const double f7_25 = -f7 * m_A78; m_A81 += m_A16 * f7_25; RHS25 += f7_25 * RHS7; -const double f8 = 1.0 / m_A17; + const double f8 = 1.0 / m_A17; const double f8_17 = -f8 * m_A43; m_A44 += m_A18 * f8_17; RHS17 += f8_17 * RHS8; -const double f9 = 1.0 / m_A20; + const double f9 = 1.0 / m_A20; const double f9_23 = -f9 * m_A69; RHS23 += f9_23 * RHS9; -const double f10 = 1.0 / m_A21; + const double f10 = 1.0 / m_A21; const double f10_21 = -f10 * m_A57; m_A59 += m_A22 * f10_21; RHS21 += f10_21 * RHS10; const double f10_26 = -f10 * m_A88; m_A95 += m_A22 * f10_26; RHS26 += f10_26 * RHS10; -const double f11 = 1.0 / m_A23; + const double f11 = 1.0 / m_A23; const double f11_20 = -f11 * m_A53; m_A54 += m_A24 * f11_20; m_A55 += m_A25 * f11_20; @@ -2172,22 +6023,22 @@ const double f11 = 1.0 / m_A23; m_A62 += m_A24 * f11_22; m_A64 += m_A25 * f11_22; RHS22 += f11_22 * RHS11; -const double f12 = 1.0 / m_A26; + const double f12 = 1.0 / m_A26; const double f12_24 = -f12 * m_A75; m_A77 += m_A27 * f12_24; RHS24 += f12_24 * RHS12; const double f12_25 = -f12 * m_A79; m_A85 += m_A27 * f12_25; RHS25 += f12_25 * RHS12; -const double f13 = 1.0 / m_A29; + const double f13 = 1.0 / m_A29; const double f13_26 = -f13 * m_A89; RHS26 += f13_26 * RHS13; -const double f14 = 1.0 / m_A31; + const double f14 = 1.0 / m_A31; const double f14_25 = -f14 * m_A80; m_A84 += m_A32 * f14_25; m_A85 += m_A33 * f14_25; RHS25 += f14_25 * RHS14; -const double f15 = 1.0 / m_A35; + const double f15 = 1.0 / m_A35; const double f15_18 = -f15 * m_A46; m_A47 += m_A36 * f15_18; m_A49 += m_A37 * f15_18; @@ -2196,15 +6047,15 @@ const double f15 = 1.0 / m_A35; m_A91 += m_A36 * f15_26; m_A95 += m_A37 * f15_26; RHS26 += f15_26 * RHS15; -const double f16 = 1.0 / m_A39; + const double f16 = 1.0 / m_A39; const double f16_23 = -f16 * m_A70; m_A72 += m_A40 * f16_23; m_A73 += m_A41 * f16_23; RHS23 += f16_23 * RHS16; -const double f17 = 1.0 / m_A44; + const double f17 = 1.0 / m_A44; const double f17_25 = -f17 * m_A81; RHS25 += f17_25 * RHS17; -const double f18 = 1.0 / m_A47; + const double f18 = 1.0 / m_A47; const double f18_23 = -f18 * m_A71; m_A73 += m_A48 * f18_23; m_A74 += m_A49 * f18_23; @@ -2213,11 +6064,11 @@ const double f18 = 1.0 / m_A47; m_A93 += m_A48 * f18_26; m_A95 += m_A49 * f18_26; RHS26 += f18_26 * RHS18; -const double f19 = 1.0 / m_A51; + const double f19 = 1.0 / m_A51; const double f19_23 = -f19 * m_A72; m_A73 += m_A52 * f19_23; RHS23 += f19_23 * RHS19; -const double f20 = 1.0 / m_A54; + const double f20 = 1.0 / m_A54; const double f20_22 = -f20 * m_A62; m_A64 += m_A55 * f20_22; m_A65 += m_A56 * f20_22; @@ -2226,11 +6077,11 @@ const double f20 = 1.0 / m_A54; m_A83 += m_A55 * f20_25; m_A85 += m_A56 * f20_25; RHS25 += f20_25 * RHS20; -const double f21 = 1.0 / m_A58; + const double f21 = 1.0 / m_A58; const double f21_22 = -f21 * m_A63; m_A66 += m_A59 * f21_22; RHS22 += f21_22 * RHS21; -const double f22 = 1.0 / m_A64; + const double f22 = 1.0 / m_A64; const double f22_25 = -f22 * m_A83; m_A85 += m_A65 * f22_25; m_A86 += m_A66 * f22_25; @@ -2239,15 +6090,15 @@ const double f22 = 1.0 / m_A64; m_A94 += m_A65 * f22_26; m_A95 += m_A66 * f22_26; RHS26 += f22_26 * RHS22; -const double f23 = 1.0 / m_A73; + const double f23 = 1.0 / m_A73; const double f23_26 = -f23 * m_A93; m_A95 += m_A74 * f23_26; RHS26 += f23_26 * RHS23; -const double f24 = 1.0 / m_A76; + const double f24 = 1.0 / m_A76; const double f24_25 = -f24 * m_A84; m_A85 += m_A77 * f24_25; RHS25 += f24_25 * RHS24; -const double f25 = 1.0 / m_A85; + const double f25 = 1.0 / m_A85; const double f25_26 = -f25 * m_A94; m_A95 += m_A86 * f25_26; RHS26 += f25_26 * RHS25; @@ -2337,383 +6188,858 @@ const double f25 = 1.0 / m_A85; V[0] = (RHS0 - tmp0) / m_A0; } -// rebound -static void nl_gcr_1faccd91c85d3ab3_28_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// 280zzzap +static void nl_gcr_5af09c93b5cf0788_95_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[10] + gt[11] + gt[12] + gt[13]; - m_A4 = m_A4 + go[10]; - m_A4 = m_A4 + go[11]; - m_A3 = m_A3 + go[12]; - double RHS1 = Idr[10] + Idr[11] + Idr[12] + Idr[13] - go[13] * *cnV[13]; - m_A5 = gt[20] + gt[21] + gt[22]; - m_A6 = m_A6 + go[20]; - double RHS2 = Idr[20] + Idr[21] + Idr[22] - go[21] * *cnV[21] - go[22] * *cnV[22]; - m_A7 = gt[30] + gt[31] + gt[32] + gt[33] + gt[34] + gt[35] + gt[36]; - m_A8 = m_A8 + go[30]; - m_A8 = m_A8 + go[31]; - double RHS3 = Idr[30] + Idr[31] + Idr[32] + Idr[33] + Idr[34] + Idr[35] + Idr[36] - go[32] * *cnV[32] - go[33] * *cnV[33] - go[34] * *cnV[34] - go[35] * *cnV[35] - go[36] * *cnV[36]; - m_A11 = gt[40] + gt[41] + gt[42]; - m_A13 = m_A13 + go[40]; - m_A10 = m_A10 + go[41]; - m_A9 = m_A9 + go[42]; - double RHS4 = Idr[40] + Idr[41] + Idr[42]; - m_A16 = gt[50] + gt[51] + gt[52] + gt[53] + gt[54] + gt[55] + gt[56]; - m_A18 = m_A18 + go[50]; - m_A14 = m_A14 + go[51]; - m_A14 = m_A14 + go[52]; - double RHS5 = Idr[50] + Idr[51] + Idr[52] + Idr[53] + Idr[54] + Idr[55] + Idr[56] - go[53] * *cnV[53] - go[54] * *cnV[54] - go[55] * *cnV[55] - go[56] * *cnV[56]; - m_A22 = gt[60] + gt[61] + gt[62] + gt[63] + gt[64] + gt[65] + gt[66] + gt[67] + gt[68] + gt[69]; - m_A23 = m_A23 + go[60]; - m_A23 = m_A23 + go[61]; - m_A20 = m_A20 + go[62]; - m_A19 = m_A19 + go[63]; - m_A19 = m_A19 + go[64]; - double RHS6 = Idr[60] + Idr[61] + Idr[62] + Idr[63] + Idr[64] + Idr[65] + Idr[66] + Idr[67] + Idr[68] + Idr[69] - go[65] * *cnV[65] - go[66] * *cnV[66] - go[67] * *cnV[67] - go[68] * *cnV[68] - go[69] * *cnV[69]; - m_A27 = gt[70] + gt[71] + gt[72] + gt[73] + gt[74]; - m_A26 = m_A26 + go[70]; - m_A26 = m_A26 + go[71]; - m_A25 = m_A25 + go[72]; - m_A24 = m_A24 + go[73]; - double RHS7 = Idr[70] + Idr[71] + Idr[72] + Idr[73] + Idr[74] - go[74] * *cnV[74]; -const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A9; - m_A11 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A10; - m_A11 += m_A3 * f1_4; - m_A12 += m_A4 * f1_4; - RHS4 += f1_4 * RHS1; - const double f1_5 = -f1 * m_A14; - m_A15 += m_A3 * f1_5; - m_A16 += m_A4 * f1_5; - RHS5 += f1_5 * RHS1; -const double f2 = 1.0 / m_A5; - const double f2_7 = -f2 * m_A24; - m_A27 += m_A6 * f2_7; - RHS7 += f2_7 * RHS2; -const double f3 = 1.0 / m_A7; - const double f3_6 = -f3 * m_A19; - m_A22 += m_A8 * f3_6; - RHS6 += f3_6 * RHS3; -const double f4 = 1.0 / m_A11; - const double f4_5 = -f4 * m_A15; - m_A16 += m_A12 * f4_5; - m_A17 += m_A13 * f4_5; - RHS5 += f4_5 * RHS4; - const double f4_6 = -f4 * m_A20; - m_A21 += m_A12 * f4_6; - m_A22 += m_A13 * f4_6; - RHS6 += f4_6 * RHS4; -const double f5 = 1.0 / m_A16; - const double f5_6 = -f5 * m_A21; - m_A22 += m_A17 * f5_6; - m_A23 += m_A18 * f5_6; - RHS6 += f5_6 * RHS5; - const double f5_7 = -f5 * m_A25; - m_A26 += m_A17 * f5_7; - m_A27 += m_A18 * f5_7; - RHS7 += f5_7 * RHS5; -const double f6 = 1.0 / m_A22; - const double f6_7 = -f6 * m_A26; - m_A27 += m_A23 * f6_7; - RHS7 += f6_7 * RHS6; - V[7] = RHS7 / m_A27; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A5 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A6 += gt[15]; + m_A6 += gt[16]; + m_A6 += gt[17]; + m_A6 += gt[18]; + m_A6 += gt[19]; + m_A7 += go[13]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 += Idr[17]; + RHS3 += Idr[18]; + RHS3 += Idr[19]; + RHS3 -= go[14] * *cnV[14]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + RHS3 -= go[17] * *cnV[17]; + RHS3 -= go[18] * *cnV[18]; + RHS3 -= go[19] * *cnV[19]; + m_A8 += gt[20]; + m_A8 += gt[21]; + m_A9 += go[20]; + double RHS4 = Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[21] * *cnV[21]; + m_A10 += gt[22]; + m_A10 += gt[23]; + m_A11 += go[22]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[23] * *cnV[23]; + m_A12 += gt[24]; + m_A12 += gt[25]; + m_A12 += gt[26]; + m_A12 += gt[27]; + m_A13 += go[24]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 -= go[25] * *cnV[25]; + RHS6 -= go[26] * *cnV[26]; + RHS6 -= go[27] * *cnV[27]; + m_A14 += gt[28]; + m_A14 += gt[29]; + m_A14 += gt[30]; + m_A14 += gt[31]; + m_A15 += go[28]; + double RHS7 = Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + RHS7 += Idr[31]; + RHS7 -= go[29] * *cnV[29]; + RHS7 -= go[30] * *cnV[30]; + RHS7 -= go[31] * *cnV[31]; + m_A16 += gt[32]; + m_A16 += gt[33]; + m_A17 += go[32]; + double RHS8 = Idr[32]; + RHS8 += Idr[33]; + RHS8 -= go[33] * *cnV[33]; + m_A18 += gt[34]; + m_A18 += gt[35]; + m_A18 += gt[36]; + m_A18 += gt[37]; + m_A19 += go[34]; + double RHS9 = Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 += Idr[37]; + RHS9 -= go[35] * *cnV[35]; + RHS9 -= go[36] * *cnV[36]; + RHS9 -= go[37] * *cnV[37]; + m_A20 += gt[38]; + m_A20 += gt[39]; + m_A22 += go[38]; + m_A21 += go[39]; + double RHS10 = Idr[38]; + RHS10 += Idr[39]; + m_A23 += gt[40]; + m_A23 += gt[41]; + m_A23 += gt[42]; + m_A23 += gt[43]; + m_A24 += go[40]; + double RHS11 = Idr[40]; + RHS11 += Idr[41]; + RHS11 += Idr[42]; + RHS11 += Idr[43]; + RHS11 -= go[41] * *cnV[41]; + RHS11 -= go[42] * *cnV[42]; + RHS11 -= go[43] * *cnV[43]; + m_A25 += gt[44]; + m_A25 += gt[45]; + m_A25 += gt[46]; + m_A27 += go[44]; + m_A28 += go[45]; + m_A26 += go[46]; + double RHS12 = Idr[44]; + RHS12 += Idr[45]; + RHS12 += Idr[46]; + m_A29 += gt[47]; + m_A29 += gt[48]; + m_A31 += go[47]; + m_A30 += go[48]; + double RHS13 = Idr[47]; + RHS13 += Idr[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_A36 += go[49]; + m_A35 += go[50]; + m_A34 += go[51]; + m_A33 += go[52]; + m_A32 += go[53]; + double RHS14 = Idr[49]; + RHS14 += Idr[50]; + RHS14 += Idr[51]; + RHS14 += Idr[52]; + RHS14 += Idr[53]; + RHS14 += Idr[54]; + RHS14 -= go[54] * *cnV[54]; + m_A39 += gt[55]; + m_A39 += gt[56]; + m_A39 += gt[57]; + m_A39 += gt[58]; + m_A38 += go[55]; + m_A40 += go[56]; + double RHS15 = Idr[55]; + RHS15 += Idr[56]; + RHS15 += Idr[57]; + RHS15 += Idr[58]; + RHS15 -= go[57] * *cnV[57]; + RHS15 -= go[58] * *cnV[58]; + m_A42 += gt[59]; + m_A42 += gt[60]; + m_A42 += gt[61]; + m_A42 += gt[62]; + m_A41 += go[59]; + m_A43 += go[60]; + double RHS16 = Idr[59]; + RHS16 += Idr[60]; + RHS16 += Idr[61]; + RHS16 += Idr[62]; + RHS16 -= go[61] * *cnV[61]; + RHS16 -= go[62] * *cnV[62]; + m_A45 += gt[63]; + m_A45 += gt[64]; + m_A45 += gt[65]; + m_A46 += go[63]; + m_A44 += go[64]; + double RHS17 = Idr[63]; + RHS17 += Idr[64]; + RHS17 += Idr[65]; + RHS17 -= go[65] * *cnV[65]; + m_A52 += gt[66]; + m_A52 += gt[67]; + m_A52 += gt[68]; + m_A52 += gt[69]; + m_A52 += gt[70]; + m_A52 += gt[71]; + m_A49 += go[66]; + m_A50 += go[67]; + m_A51 += go[68]; + m_A47 += go[69]; + m_A48 += go[70]; + double RHS18 = Idr[66]; + RHS18 += Idr[67]; + RHS18 += Idr[68]; + RHS18 += Idr[69]; + RHS18 += Idr[70]; + RHS18 += Idr[71]; + RHS18 -= go[71] * *cnV[71]; + m_A59 += gt[72]; + m_A59 += gt[73]; + m_A57 += go[72]; + m_A62 += go[73]; + double RHS19 = Idr[72]; + RHS19 += Idr[73]; + m_A66 += gt[74]; + m_A66 += gt[75]; + m_A66 += gt[76]; + m_A66 += gt[77]; + m_A66 += gt[78]; + m_A66 += gt[79]; + m_A63 += go[74]; + m_A64 += go[75]; + m_A68 += go[76]; + m_A67 += go[77]; + double RHS20 = Idr[74]; + RHS20 += Idr[75]; + RHS20 += Idr[76]; + RHS20 += Idr[77]; + RHS20 += Idr[78]; + RHS20 += Idr[79]; + RHS20 -= go[78] * *cnV[78]; + RHS20 -= go[79] * *cnV[79]; + m_A73 += gt[80]; + m_A73 += gt[81]; + m_A73 += gt[82]; + m_A73 += gt[83]; + m_A72 += go[80]; + m_A71 += go[81]; + m_A69 += go[82]; + m_A70 += go[83]; + double RHS21 = Idr[80]; + RHS21 += Idr[81]; + RHS21 += Idr[82]; + RHS21 += Idr[83]; + m_A80 += gt[84]; + m_A80 += gt[85]; + m_A80 += gt[86]; + m_A80 += gt[87]; + m_A80 += gt[88]; + m_A80 += gt[89]; + m_A80 += gt[90]; + m_A80 += gt[91]; + m_A80 += gt[92]; + m_A80 += gt[93]; + m_A80 += gt[94]; + m_A75 += go[84]; + m_A82 += go[85]; + m_A76 += go[86]; + double RHS22 = Idr[84]; + RHS22 += Idr[85]; + RHS22 += Idr[86]; + RHS22 += Idr[87]; + RHS22 += Idr[88]; + RHS22 += Idr[89]; + RHS22 += Idr[90]; + RHS22 += Idr[91]; + RHS22 += Idr[92]; + RHS22 += Idr[93]; + RHS22 += Idr[94]; + RHS22 -= go[87] * *cnV[87]; + RHS22 -= go[88] * *cnV[88]; + RHS22 -= go[89] * *cnV[89]; + RHS22 -= go[90] * *cnV[90]; + RHS22 -= go[91] * *cnV[91]; + RHS22 -= go[92] * *cnV[92]; + RHS22 -= go[93] * *cnV[93]; + RHS22 -= go[94] * *cnV[94]; + m_A88 += gt[95]; + m_A88 += gt[96]; + m_A88 += gt[97]; + m_A88 += gt[98]; + m_A88 += gt[99]; + m_A83 += go[95]; + m_A85 += go[96]; + m_A84 += go[97]; + m_A86 += go[98]; + double RHS23 = Idr[95]; + RHS23 += Idr[96]; + RHS23 += Idr[97]; + RHS23 += Idr[98]; + RHS23 += Idr[99]; + RHS23 -= go[99] * *cnV[99]; + m_A94 += gt[100]; + m_A94 += gt[101]; + m_A94 += gt[102]; + m_A91 += go[100]; + m_A89 += go[101]; + m_A92 += go[102]; + double RHS24 = Idr[100]; + RHS24 += Idr[101]; + RHS24 += Idr[102]; + const double f0 = 1.0 / m_A0; + const double f0_15 = -f0 * m_A38; + m_A40 += m_A1 * f0_15; + RHS15 += f0_15 * RHS0; + const double f0_21 = -f0 * m_A69; + m_A73 += m_A1 * f0_21; + RHS21 += f0_21 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_20 = -f1 * m_A63; + m_A65 += m_A3 * f1_20; + RHS20 += f1_20 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_16 = -f2 * m_A41; + m_A43 += m_A5 * f2_16; + RHS16 += f2_16 * RHS2; + const double f2_18 = -f2 * m_A47; + m_A52 += m_A5 * f2_18; + RHS18 += f2_18 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_22 = -f3 * m_A75; + m_A77 += m_A7 * f3_22; + RHS22 += f3_22 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_14 = -f4 * m_A32; + m_A37 += m_A9 * f4_14; + RHS14 += f4_14 * RHS4; + const double f4_21 = -f4 * m_A70; + m_A71 += m_A9 * f4_21; + RHS21 += f4_21 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_17 = -f5 * m_A44; + m_A45 += m_A11 * f5_17; + RHS17 += f5_17 * RHS5; + const double f5_18 = -f5 * m_A48; + m_A51 += m_A11 * f5_18; + RHS18 += f5_18 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_14 = -f6 * m_A33; + m_A37 += m_A13 * f6_14; + RHS14 += f6_14 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_14 = -f7 * m_A34; + m_A37 += m_A15 * f7_14; + RHS14 += f7_14 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_23 = -f8 * m_A83; + m_A88 += m_A17 * f8_23; + RHS23 += f8_23 * RHS8; + const double f9 = 1.0 / m_A18; + const double f9_14 = -f9 * m_A35; + m_A37 += m_A19 * f9_14; + RHS14 += f9_14 * RHS9; + const double f10 = 1.0 / m_A20; + const double f10_20 = -f10 * m_A64; + m_A66 += m_A21 * f10_20; + m_A68 += m_A22 * f10_20; + RHS20 += f10_20 * RHS10; + const double f10_23 = -f10 * m_A84; + m_A86 += m_A21 * f10_23; + m_A88 += m_A22 * f10_23; + RHS23 += f10_23 * RHS10; + const double f11 = 1.0 / m_A23; + const double f11_14 = -f11 * m_A36; + m_A37 += m_A24 * f11_14; + RHS14 += f11_14 * RHS11; + const double f12 = 1.0 / m_A25; + const double f12_18 = -f12 * m_A49; + m_A52 += m_A26 * f12_18; + m_A53 += m_A27 * f12_18; + m_A56 += m_A28 * f12_18; + RHS18 += f12_18 * RHS12; + const double f12_19 = -f12 * m_A57; + m_A58 += m_A26 * f12_19; + m_A59 += m_A27 * f12_19; + m_A62 += m_A28 * f12_19; + RHS19 += f12_19 * RHS12; + const double f12_24 = -f12 * m_A89; + m_A90 += m_A26 * f12_24; + m_A91 += m_A27 * f12_24; + m_A94 += m_A28 * f12_24; + RHS24 += f12_24 * RHS12; + const double f13 = 1.0 / m_A29; + const double f13_18 = -f13 * m_A50; + m_A52 += m_A30 * f13_18; + m_A54 += m_A31 * f13_18; + RHS18 += f13_18 * RHS13; + const double f13_22 = -f13 * m_A76; + m_A78 += m_A30 * f13_22; + m_A80 += m_A31 * f13_22; + RHS22 += f13_22 * RHS13; + const double f14 = 1.0 / m_A37; + const double f14_21 = -f14 * m_A71; + RHS21 += f14_21 * RHS14; + const double f15 = 1.0 / m_A39; + const double f15_20 = -f15 * m_A65; + m_A67 += m_A40 * f15_20; + RHS20 += f15_20 * RHS15; + const double f16 = 1.0 / m_A42; + const double f16_22 = -f16 * m_A77; + m_A78 += m_A43 * f16_22; + RHS22 += f16_22 * RHS16; + const double f17 = 1.0 / m_A45; + const double f17_18 = -f17 * m_A51; + m_A55 += m_A46 * f17_18; + RHS18 += f17_18 * RHS17; + const double f17_23 = -f17 * m_A85; + m_A88 += m_A46 * f17_23; + RHS23 += f17_23 * RHS17; + const double f18 = 1.0 / m_A52; + const double f18_19 = -f18 * m_A58; + m_A59 += m_A53 * f18_19; + m_A60 += m_A54 * f18_19; + m_A61 += m_A55 * f18_19; + m_A62 += m_A56 * f18_19; + RHS19 += f18_19 * RHS18; + const double f18_22 = -f18 * m_A78; + m_A79 += m_A53 * f18_22; + m_A80 += m_A54 * f18_22; + m_A81 += m_A55 * f18_22; + m_A82 += m_A56 * f18_22; + RHS22 += f18_22 * RHS18; + const double f18_24 = -f18 * m_A90; + m_A91 += m_A53 * f18_24; + m_A92 += m_A54 * f18_24; + m_A93 += m_A55 * f18_24; + m_A94 += m_A56 * f18_24; + RHS24 += f18_24 * RHS18; + const double f19 = 1.0 / m_A59; + const double f19_22 = -f19 * m_A79; + m_A80 += m_A60 * f19_22; + m_A81 += m_A61 * f19_22; + m_A82 += m_A62 * f19_22; + RHS22 += f19_22 * RHS19; + const double f19_24 = -f19 * m_A91; + m_A92 += m_A60 * f19_24; + m_A93 += m_A61 * f19_24; + m_A94 += m_A62 * f19_24; + RHS24 += f19_24 * RHS19; + const double f20 = 1.0 / m_A66; + const double f20_21 = -f20 * m_A72; + m_A73 += m_A67 * f20_21; + m_A74 += m_A68 * f20_21; + RHS21 += f20_21 * RHS20; + const double f20_23 = -f20 * m_A86; + m_A87 += m_A67 * f20_23; + m_A88 += m_A68 * f20_23; + RHS23 += f20_23 * RHS20; + const double f21 = 1.0 / m_A73; + const double f21_23 = -f21 * m_A87; + m_A88 += m_A74 * f21_23; + RHS23 += f21_23 * RHS21; + const double f22 = 1.0 / m_A80; + const double f22_24 = -f22 * m_A92; + m_A93 += m_A81 * f22_24; + m_A94 += m_A82 * f22_24; + RHS24 += f22_24 * RHS22; + const double f23 = 1.0 / m_A88; + const double f23_24 = -f23 * m_A93; + RHS24 += f23_24 * RHS23; + V[24] = RHS24 / m_A94; + double tmp23 = 0.0; + V[23] = (RHS23 - tmp23) / m_A88; + double tmp22 = 0.0; + tmp22 += m_A81 * V[23]; + tmp22 += m_A82 * V[24]; + V[22] = (RHS22 - tmp22) / m_A80; + double tmp21 = 0.0; + tmp21 += m_A74 * V[23]; + V[21] = (RHS21 - tmp21) / m_A73; + double tmp20 = 0.0; + tmp20 += m_A67 * V[21]; + tmp20 += m_A68 * V[23]; + V[20] = (RHS20 - tmp20) / m_A66; + double tmp19 = 0.0; + tmp19 += m_A60 * V[22]; + tmp19 += m_A61 * V[23]; + tmp19 += m_A62 * V[24]; + V[19] = (RHS19 - tmp19) / m_A59; + double tmp18 = 0.0; + tmp18 += m_A53 * V[19]; + tmp18 += m_A54 * V[22]; + tmp18 += m_A55 * V[23]; + tmp18 += m_A56 * V[24]; + V[18] = (RHS18 - tmp18) / m_A52; + double tmp17 = 0.0; + tmp17 += m_A46 * V[23]; + V[17] = (RHS17 - tmp17) / m_A45; + double tmp16 = 0.0; + tmp16 += m_A43 * V[18]; + V[16] = (RHS16 - tmp16) / m_A42; + double tmp15 = 0.0; + tmp15 += m_A40 * V[21]; + V[15] = (RHS15 - tmp15) / m_A39; + double tmp14 = 0.0; + V[14] = (RHS14 - tmp14) / m_A37; + double tmp13 = 0.0; + tmp13 += m_A30 * V[18]; + tmp13 += m_A31 * V[22]; + V[13] = (RHS13 - tmp13) / m_A29; + double tmp12 = 0.0; + tmp12 += m_A26 * V[18]; + tmp12 += m_A27 * V[19]; + tmp12 += m_A28 * V[24]; + V[12] = (RHS12 - tmp12) / m_A25; + double tmp11 = 0.0; + tmp11 += m_A24 * V[14]; + V[11] = (RHS11 - tmp11) / m_A23; + double tmp10 = 0.0; + tmp10 += m_A21 * V[20]; + tmp10 += m_A22 * V[23]; + V[10] = (RHS10 - tmp10) / m_A20; + double tmp9 = 0.0; + tmp9 += m_A19 * V[14]; + V[9] = (RHS9 - tmp9) / m_A18; + double tmp8 = 0.0; + tmp8 += m_A17 * V[23]; + V[8] = (RHS8 - tmp8) / m_A16; + double tmp7 = 0.0; + tmp7 += m_A15 * V[14]; + V[7] = (RHS7 - tmp7) / m_A14; double tmp6 = 0.0; - tmp6 += m_A23 * V[7]; - V[6] = (RHS6 - tmp6) / m_A22; + tmp6 += m_A13 * V[14]; + V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A17 * V[6]; - tmp5 += m_A18 * V[7]; - V[5] = (RHS5 - tmp5) / m_A16; + tmp5 += m_A11 * V[17]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A12 * V[5]; - tmp4 += m_A13 * V[6]; - V[4] = (RHS4 - tmp4) / m_A11; - double tmp3 = 0.0; - tmp3 += m_A8 * V[6]; - V[3] = (RHS3 - tmp3) / m_A7; - double tmp2 = 0.0; - tmp2 += m_A6 * V[7]; - V[2] = (RHS2 - tmp2) / m_A5; - double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; - tmp1 += m_A4 * V[5]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// breakout -static void nl_gcr_1fffb23aa506432d_13_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[4] + gt[5] + gt[6]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] + Idr[6] - go[5] * *cnV[5] - go[6] * *cnV[6]; - m_A4 = gt[8] + gt[9] + gt[10]; - m_A5 = m_A5 + go[8]; - double RHS2 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A6 = gt[12] + gt[13] + gt[14]; - m_A7 = m_A7 + go[12]; - double RHS3 = Idr[12] + Idr[13] + Idr[14] - go[13] * *cnV[13] - go[14] * *cnV[14]; - m_A12 = gt[16] + gt[17] + gt[18] + gt[19]; - m_A11 = m_A11 + go[16]; - m_A10 = m_A10 + go[17]; - m_A9 = m_A9 + go[18]; - m_A8 = m_A8 + go[19]; - double RHS4 = Idr[16] + Idr[17] + Idr[18] + Idr[19]; -const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A8; - m_A12 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A9; - m_A12 += m_A3 * f1_4; - RHS4 += f1_4 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A10; - m_A12 += m_A5 * f2_4; - RHS4 += f2_4 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_4 = -f3 * m_A11; - m_A12 += m_A7 * f3_4; - RHS4 += f3_4 * RHS3; - V[4] = RHS4 / m_A12; + tmp4 += m_A9 * V[14]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[4]; + tmp3 += m_A7 * V[16]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[4]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// pongf -static void nl_gcr_20615d28f46254cb_10_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[4] + gt[5] + gt[6]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] + Idr[6] - go[5] * *cnV[5] - go[6] * *cnV[6]; - m_A4 = gt[8] + gt[9] + gt[10]; - m_A5 = m_A5 + go[8]; - double RHS2 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A9 = gt[12] + gt[13] + gt[14]; - m_A8 = m_A8 + go[12]; - m_A7 = m_A7 + go[13]; - m_A6 = m_A6 + go[14]; - double RHS3 = Idr[12] + Idr[13] + Idr[14]; -const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A6; - m_A9 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A7; - m_A9 += m_A3 * f1_3; - RHS3 += f1_3 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_3 = -f2 * m_A8; - m_A9 += m_A5 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A9; - double tmp2 = 0.0; - tmp2 += m_A5 * V[3]; + tmp2 += m_A5 * V[18]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; + tmp1 += m_A3 * V[15]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[21]; V[0] = (RHS0 - tmp0) / m_A0; } // zac1b11142 -static void nl_gcr_21d92b630d2e9a99_30_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_60352d234249ea57_30_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3] + gt[4] + gt[5] + gt[6]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] + Idr[4] + Idr[5] + Idr[6] - go[1] * *cnV[1] - go[2] * *cnV[2] - go[3] * *cnV[3] - go[4] * *cnV[4] - go[5] * *cnV[5] - go[6] * *cnV[6]; - m_A2 = gt[8] + gt[9] + gt[10]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A4 = gt[16] + gt[17]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] - go[17] * *cnV[17]; - m_A6 = gt[24] + gt[25] + gt[26]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] - go[25] * *cnV[25] - go[26] * *cnV[26]; - m_A8 = gt[32] + gt[33] + gt[34]; - m_A9 = m_A9 + go[32]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] - go[33] * *cnV[33] - go[34] * *cnV[34]; - m_A11 = gt[40] + gt[41] + gt[42] + gt[43]; - m_A12 = m_A12 + go[40]; - m_A10 = m_A10 + go[41]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] + Idr[43] - go[42] * *cnV[42] - go[43] * *cnV[43]; - m_A14 = gt[48] + gt[49] + gt[50] + gt[51] + gt[52] + gt[53] + gt[54]; - m_A13 = m_A13 + go[48]; - m_A16 = m_A16 + go[49]; - m_A16 = m_A16 + go[50]; - m_A16 = m_A16 + go[51]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] + Idr[51] + Idr[52] + Idr[53] + Idr[54] - go[52] * *cnV[52] - go[53] * *cnV[53] - go[54] * *cnV[54]; - m_A19 = gt[56] + gt[57]; - m_A18 = m_A18 + go[56]; - m_A17 = m_A17 + go[57]; - double RHS7 = Idr[56] + Idr[57]; - m_A21 = gt[64] + gt[65] + gt[66] + gt[67]; - m_A22 = m_A22 + go[64]; - m_A20 = m_A20 + go[65]; - double RHS8 = Idr[64] + Idr[65] + Idr[66] + Idr[67] - go[66] * *cnV[66] - go[67] * *cnV[67]; - m_A29 = gt[72] + gt[73] + gt[74] + gt[75] + gt[76] + gt[77] + gt[78]; - m_A26 = m_A26 + go[72]; - m_A26 = m_A26 + go[73]; - m_A26 = m_A26 + go[74]; - m_A27 = m_A27 + go[75]; - m_A25 = m_A25 + go[76]; - m_A24 = m_A24 + go[77]; - m_A23 = m_A23 + go[78]; - double RHS9 = Idr[72] + Idr[73] + Idr[74] + Idr[75] + Idr[76] + Idr[77] + Idr[78]; -const double f0 = 1.0 / m_A0; + 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); + 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_A3 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A5 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A7 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + m_A8 += gt[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A9 += go[15]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 -= go[16] * *cnV[16]; + RHS4 -= go[17] * *cnV[17]; + m_A11 += gt[18]; + m_A11 += gt[19]; + m_A11 += gt[20]; + m_A11 += gt[21]; + m_A12 += go[18]; + m_A10 += go[19]; + double 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_A14 += gt[25]; + m_A14 += gt[26]; + m_A14 += gt[27]; + m_A14 += gt[28]; + m_A13 += go[22]; + m_A16 += go[23]; + m_A16 += go[24]; + m_A16 += go[25]; + double RHS6 = Idr[22]; + RHS6 += Idr[23]; + RHS6 += Idr[24]; + RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 += Idr[28]; + RHS6 -= go[26] * *cnV[26]; + RHS6 -= go[27] * *cnV[27]; + RHS6 -= go[28] * *cnV[28]; + m_A19 += gt[29]; + m_A19 += gt[30]; + m_A18 += go[29]; + m_A17 += go[30]; + double RHS7 = Idr[29]; + RHS7 += Idr[30]; + m_A21 += gt[31]; + m_A21 += gt[32]; + m_A21 += gt[33]; + m_A21 += gt[34]; + m_A22 += go[31]; + m_A20 += go[32]; + double RHS8 = Idr[31]; + RHS8 += Idr[32]; + RHS8 += Idr[33]; + RHS8 += Idr[34]; + RHS8 -= go[33] * *cnV[33]; + RHS8 -= 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_A29 += gt[40]; + m_A29 += gt[41]; + m_A26 += go[35]; + m_A26 += go[36]; + m_A26 += go[37]; + m_A27 += go[38]; + m_A25 += go[39]; + m_A24 += go[40]; + m_A23 += go[41]; + double RHS9 = Idr[35]; + RHS9 += Idr[36]; + RHS9 += Idr[37]; + RHS9 += Idr[38]; + RHS9 += Idr[39]; + RHS9 += Idr[40]; + RHS9 += Idr[41]; + const double f0 = 1.0 / m_A0; const double f0_6 = -f0 * m_A13; m_A15 += m_A1 * f0_6; RHS6 += f0_6 * RHS0; -const double f1 = 1.0 / m_A2; + const double f1 = 1.0 / m_A2; const double f1_5 = -f1 * m_A10; m_A11 += m_A3 * f1_5; RHS5 += f1_5 * RHS1; -const double f2 = 1.0 / m_A4; + const double f2 = 1.0 / m_A4; const double f2_7 = -f2 * m_A17; m_A19 += m_A5 * f2_7; RHS7 += f2_7 * RHS2; const double f2_9 = -f2 * m_A23; m_A27 += m_A5 * f2_9; RHS9 += f2_9 * RHS2; -const double f3 = 1.0 / m_A6; + const double f3 = 1.0 / m_A6; const double f3_8 = -f3 * m_A20; m_A22 += m_A7 * f3_8; RHS8 += f3_8 * RHS3; const double f3_9 = -f3 * m_A24; m_A29 += m_A7 * f3_9; RHS9 += f3_9 * RHS3; -const double f4 = 1.0 / m_A8; + const double f4 = 1.0 / m_A8; const double f4_9 = -f4 * m_A25; m_A29 += m_A9 * f4_9; RHS9 += f4_9 * RHS4; -const double f5 = 1.0 / m_A11; + const double f5 = 1.0 / m_A11; const double f5_7 = -f5 * m_A18; m_A19 += m_A12 * f5_7; RHS7 += f5_7 * RHS5; -const double f6 = 1.0 / m_A14; + const double f6 = 1.0 / m_A14; const double f6_9 = -f6 * m_A26; m_A28 += m_A15 * f6_9; m_A29 += m_A16 * f6_9; RHS9 += f6_9 * RHS6; -const double f7 = 1.0 / m_A19; + const double f7 = 1.0 / m_A19; const double f7_9 = -f7 * m_A27; RHS9 += f7_9 * RHS7; -const double f8 = 1.0 / m_A21; + const double f8 = 1.0 / m_A21; const double f8_9 = -f8 * m_A28; m_A29 += m_A22 * f8_9; RHS9 += f8_9 * RHS8; @@ -2747,1136 +7073,524 @@ const double f8 = 1.0 / m_A21; V[0] = (RHS0 - tmp0) / m_A0; } -// dpatrol -static void nl_gcr_27a78682a9b70f8c_10_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// breakout +static void nl_gcr_655da76624809228_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[4] + gt[5] + gt[6]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] + Idr[6] - go[5] * *cnV[5] - go[6] * *cnV[6]; - m_A4 = gt[8] + gt[9] + gt[10]; - m_A5 = m_A5 + go[8]; - double RHS2 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A9 = gt[12] + gt[13] + gt[14] + gt[15]; - m_A8 = m_A8 + go[12]; - m_A7 = m_A7 + go[13]; - m_A6 = m_A6 + go[14]; - double RHS3 = Idr[12] + Idr[13] + Idr[14] + Idr[15] - go[15] * *cnV[15]; -const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A6; - m_A9 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A7; - m_A9 += m_A3 * f1_3; - RHS3 += f1_3 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_3 = -f2 * m_A8; - m_A9 += m_A5 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A9; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A12 += gt[14]; + m_A12 += gt[15]; + m_A11 += go[12]; + m_A10 += go[13]; + m_A9 += go[14]; + m_A8 += go[15]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A8; + m_A12 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_4 = -f1 * m_A9; + m_A12 += m_A3 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A10; + m_A12 += m_A5 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_4 = -f3 * m_A11; + m_A12 += m_A7 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A12; + double tmp3 = 0.0; + tmp3 += m_A7 * V[4]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[3]; + tmp2 += m_A5 * V[4]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; + tmp1 += m_A3 * V[4]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } -// 280zzzap -static void nl_gcr_2e7df52e4934b257_31_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// cheekyms +static void nl_gcr_6d03e64d09c956c3_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[8] + gt[9] + gt[10] + gt[11] + gt[12] + gt[13] + gt[14]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] + Idr[11] + Idr[12] + Idr[13] + Idr[14] - go[9] * *cnV[9] - go[10] * *cnV[10] - go[11] * *cnV[11] - go[12] * *cnV[12] - go[13] * *cnV[13] - go[14] * *cnV[14]; - m_A4 = gt[16] + gt[17] + gt[18]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] - go[17] * *cnV[17] - go[18] * *cnV[18]; - m_A6 = gt[24] + gt[25]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] - go[25] * *cnV[25]; - m_A9 = gt[32] + gt[33] + gt[34] + gt[35] + gt[36] + gt[37]; - m_A8 = m_A8 + go[32]; - m_A11 = m_A11 + go[33]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] + Idr[35] + Idr[36] + Idr[37] - go[34] * *cnV[34] - go[35] * *cnV[35] - go[36] * *cnV[36] - go[37] * *cnV[37]; - m_A13 = gt[40] + gt[41]; - m_A14 = m_A14 + go[40]; - m_A12 = m_A12 + go[41]; - double RHS5 = Idr[40] + Idr[41]; - m_A16 = gt[48] + gt[49] + gt[50] + gt[51]; - m_A15 = m_A15 + go[48]; - m_A17 = m_A17 + go[49]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] + Idr[51] - go[50] * *cnV[50] - go[51] * *cnV[51]; - m_A20 = gt[56] + gt[57] + gt[58] + gt[59]; - m_A21 = m_A21 + go[56]; - m_A22 = m_A22 + go[57]; - m_A18 = m_A18 + go[58]; - m_A19 = m_A19 + go[59]; - double RHS7 = Idr[56] + Idr[57] + Idr[58] + Idr[59]; - m_A25 = gt[64] + gt[65]; - m_A24 = m_A24 + go[64]; - m_A23 = m_A23 + go[65]; - double RHS8 = Idr[64] + Idr[65]; - m_A30 = gt[72] + gt[73] + gt[74]; - m_A26 = m_A26 + go[72]; - m_A28 = m_A28 + go[73]; - double RHS9 = Idr[72] + Idr[73] + Idr[74] - go[74] * *cnV[74]; -const double f0 = 1.0 / m_A0; - const double f0_6 = -f0 * m_A15; - m_A17 += m_A1 * f0_6; - RHS6 += f0_6 * RHS0; - const double f0_7 = -f0 * m_A18; - m_A20 += m_A1 * f0_7; - RHS7 += f0_7 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A8; - m_A10 += m_A3 * f1_4; - RHS4 += f1_4 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_5 = -f2 * m_A12; - m_A13 += m_A5 * f2_5; - RHS5 += f2_5 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_7 = -f3 * m_A19; - m_A21 += m_A7 * f3_7; - RHS7 += f3_7 * RHS3; - const double f3_8 = -f3 * m_A23; - m_A25 += m_A7 * f3_8; - RHS8 += f3_8 * RHS3; -const double f4 = 1.0 / m_A9; - const double f4_9 = -f4 * m_A26; - m_A27 += m_A10 * f4_9; - m_A30 += m_A11 * f4_9; - RHS9 += f4_9 * RHS4; -const double f5 = 1.0 / m_A13; - const double f5_8 = -f5 * m_A24; - m_A25 += m_A14 * f5_8; - RHS8 += f5_8 * RHS5; -const double f6 = 1.0 / m_A16; - const double f6_9 = -f6 * m_A27; - m_A28 += m_A17 * f6_9; - RHS9 += f6_9 * RHS6; -const double f7 = 1.0 / m_A20; - const double f7_9 = -f7 * m_A28; - m_A29 += m_A21 * f7_9; - m_A30 += m_A22 * f7_9; - RHS9 += f7_9 * RHS7; -const double f8 = 1.0 / m_A25; - const double f8_9 = -f8 * m_A29; - RHS9 += f8_9 * RHS8; - V[9] = RHS9 / m_A30; - double tmp8 = 0.0; - V[8] = (RHS8 - tmp8) / m_A25; - double tmp7 = 0.0; - tmp7 += m_A21 * V[8]; - tmp7 += m_A22 * V[9]; - V[7] = (RHS7 - tmp7) / m_A20; - double tmp6 = 0.0; - tmp6 += m_A17 * V[7]; - V[6] = (RHS6 - tmp6) / m_A16; - double tmp5 = 0.0; - tmp5 += m_A14 * V[8]; - V[5] = (RHS5 - tmp5) / m_A13; - double tmp4 = 0.0; - tmp4 += m_A10 * V[6]; - tmp4 += m_A11 * V[9]; - V[4] = (RHS4 - tmp4) / m_A9; - double tmp3 = 0.0; - tmp3 += m_A7 * V[8]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[5]; - V[2] = (RHS2 - tmp2) / m_A4; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A1 += go[0]; + m_A1 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[2] * *cnV[2]; + RHS0 -= go[3] * *cnV[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[4]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A5 += go[6]; + m_A4 += go[7]; + m_A4 += go[8]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[6]; + tmp1 += m_A3 * V[2]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[7]; + tmp0 += m_A1 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } -// mario -static void nl_gcr_2eb3d95f720484d_62_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// rebound +static void nl_gcr_6e17dfd7d26d8933_13_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] - go[1] * *cnV[1]; - m_A2 = gt[8] + gt[9] + gt[10]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A4 = gt[16] + gt[17]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] - go[17] * *cnV[17]; - m_A6 = gt[24] + gt[25] + gt[26] + gt[27] + gt[28] + gt[29] + gt[30]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] + Idr[27] + Idr[28] + Idr[29] + Idr[30] - go[25] * *cnV[25] - go[26] * *cnV[26] - go[27] * *cnV[27] - go[28] * *cnV[28] - go[29] * *cnV[29] - go[30] * *cnV[30]; - m_A8 = gt[32] + gt[33] + gt[34] + gt[35] + gt[36] + gt[37] + gt[38]; - m_A9 = m_A9 + go[32]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] + Idr[35] + Idr[36] + Idr[37] + Idr[38] - go[33] * *cnV[33] - go[34] * *cnV[34] - go[35] * *cnV[35] - go[36] * *cnV[36] - go[37] * *cnV[37] - go[38] * *cnV[38]; - m_A10 = gt[40] + gt[41]; - m_A12 = m_A12 + go[40]; - m_A11 = m_A11 + go[41]; - double RHS5 = Idr[40] + Idr[41]; - m_A13 = gt[48] + gt[49] + gt[50]; - m_A14 = m_A14 + go[48]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] - go[49] * *cnV[49] - go[50] * *cnV[50]; - m_A15 = gt[56] + gt[57]; - m_A16 = m_A16 + go[56]; - double RHS7 = Idr[56] + Idr[57] - go[57] * *cnV[57]; - m_A17 = gt[64] + gt[65] + gt[66] + gt[67]; - m_A18 = m_A18 + go[64]; - double RHS8 = Idr[64] + Idr[65] + Idr[66] + Idr[67] - go[65] * *cnV[65] - go[66] * *cnV[66] - go[67] * *cnV[67]; - m_A20 = gt[72] + gt[73]; - m_A19 = m_A19 + go[72]; - double RHS9 = Idr[72] + Idr[73] - go[73] * *cnV[73]; - m_A22 = gt[80] + gt[81] + gt[82] + gt[83]; - m_A21 = m_A21 + go[80]; - m_A23 = m_A23 + go[81]; - double RHS10 = Idr[80] + Idr[81] + Idr[82] + Idr[83] - go[82] * *cnV[82] - go[83] * *cnV[83]; - m_A27 = gt[88] + gt[89] + gt[90] + gt[91] + gt[92]; - m_A24 = m_A24 + go[88]; - m_A25 = m_A25 + go[89]; - m_A28 = m_A28 + go[90]; - double RHS11 = Idr[88] + Idr[89] + Idr[90] + Idr[91] + Idr[92] - go[91] * *cnV[91] - go[92] * *cnV[92]; - m_A32 = gt[96] + gt[97]; - m_A31 = m_A31 + go[96]; - m_A30 = m_A30 + go[97]; - double RHS12 = Idr[96] + Idr[97]; - m_A34 = gt[104] + gt[105] + gt[106] + gt[107] + gt[108] + gt[109]; - m_A33 = m_A33 + go[104]; - m_A37 = m_A37 + go[105]; - m_A36 = m_A36 + go[106]; - double RHS13 = Idr[104] + Idr[105] + Idr[106] + Idr[107] + Idr[108] + Idr[109] - go[107] * *cnV[107] - go[108] * *cnV[108] - go[109] * *cnV[109]; - m_A39 = gt[112] + gt[113] + gt[114] + gt[115]; - m_A40 = m_A40 + go[112]; - m_A38 = m_A38 + go[113]; - double RHS14 = Idr[112] + Idr[113] + Idr[114] + Idr[115] - go[114] * *cnV[114] - go[115] * *cnV[115]; - m_A46 = gt[120] + gt[121] + gt[122] + gt[123] + gt[124]; - m_A44 = m_A44 + go[120]; - m_A45 = m_A45 + go[121]; - m_A43 = m_A43 + go[122]; - m_A42 = m_A42 + go[123]; - m_A41 = m_A41 + go[124]; - double RHS15 = Idr[120] + Idr[121] + Idr[122] + Idr[123] + Idr[124]; - m_A53 = gt[128] + gt[129] + gt[130] + gt[131]; - m_A50 = m_A50 + go[128]; - m_A54 = m_A54 + go[129]; - m_A48 = m_A48 + go[130]; - double RHS16 = Idr[128] + Idr[129] + Idr[130] + Idr[131] - go[131] * *cnV[131]; - m_A61 = gt[136] + gt[137] + gt[138] + gt[139] + gt[140]; - m_A57 = m_A57 + go[136]; - m_A58 = m_A58 + go[137]; - m_A60 = m_A60 + go[138]; - m_A55 = m_A55 + go[139]; - m_A56 = m_A56 + go[140]; - double RHS17 = Idr[136] + Idr[137] + Idr[138] + Idr[139] + Idr[140]; -const double f0 = 1.0 / m_A0; - const double f0_9 = -f0 * m_A19; - m_A20 += m_A1 * f0_9; - RHS9 += f0_9 * RHS0; - const double f0_15 = -f0 * m_A41; - m_A44 += m_A1 * f0_15; - RHS15 += f0_15 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_10 = -f1 * m_A21; - m_A23 += m_A3 * f1_10; - RHS10 += f1_10 * RHS1; - const double f1_15 = -f1 * m_A42; - m_A46 += m_A3 * f1_15; - RHS15 += f1_15 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_15 = -f2 * m_A43; - m_A46 += m_A5 * f2_15; - RHS15 += f2_15 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_11 = -f3 * m_A24; - m_A26 += m_A7 * f3_11; - RHS11 += f3_11 * RHS3; -const double f4 = 1.0 / m_A8; - const double f4_13 = -f4 * m_A33; - m_A35 += m_A9 * f4_13; - RHS13 += f4_13 * RHS4; -const double f5 = 1.0 / m_A10; - const double f5_11 = -f5 * m_A25; - m_A27 += m_A11 * f5_11; - m_A29 += m_A12 * f5_11; - RHS11 += f5_11 * RHS5; - const double f5_16 = -f5 * m_A48; - m_A49 += m_A11 * f5_16; - m_A53 += m_A12 * f5_16; - RHS16 += f5_16 * RHS5; -const double f6 = 1.0 / m_A13; - const double f6_14 = -f6 * m_A38; - m_A40 += m_A14 * f6_14; - RHS14 += f6_14 * RHS6; - const double f6_17 = -f6 * m_A55; - m_A61 += m_A14 * f6_17; - RHS17 += f6_17 * RHS6; -const double f7 = 1.0 / m_A15; - const double f7_12 = -f7 * m_A30; - m_A32 += m_A16 * f7_12; - RHS12 += f7_12 * RHS7; - const double f7_17 = -f7 * m_A56; - m_A57 += m_A16 * f7_17; - RHS17 += f7_17 * RHS7; -const double f8 = 1.0 / m_A17; - const double f8_12 = -f8 * m_A31; - m_A32 += m_A18 * f8_12; - RHS12 += f8_12 * RHS8; -const double f9 = 1.0 / m_A20; - const double f9_15 = -f9 * m_A44; - RHS15 += f9_15 * RHS9; -const double f10 = 1.0 / m_A22; - const double f10_11 = -f10 * m_A26; - m_A28 += m_A23 * f10_11; - RHS11 += f10_11 * RHS10; -const double f11 = 1.0 / m_A27; - const double f11_15 = -f11 * m_A45; - m_A46 += m_A28 * f11_15; - m_A47 += m_A29 * f11_15; - RHS15 += f11_15 * RHS11; - const double f11_16 = -f11 * m_A49; - m_A52 += m_A28 * f11_16; - m_A53 += m_A29 * f11_16; - RHS16 += f11_16 * RHS11; -const double f12 = 1.0 / m_A32; - const double f12_17 = -f12 * m_A57; - RHS17 += f12_17 * RHS12; -const double f13 = 1.0 / m_A34; - const double f13_16 = -f13 * m_A50; - m_A51 += m_A35 * f13_16; - m_A53 += m_A36 * f13_16; - m_A54 += m_A37 * f13_16; - RHS16 += f13_16 * RHS13; - const double f13_17 = -f13 * m_A58; - m_A59 += m_A35 * f13_17; - m_A60 += m_A36 * f13_17; - m_A61 += m_A37 * f13_17; - RHS17 += f13_17 * RHS13; -const double f14 = 1.0 / m_A39; - const double f14_16 = -f14 * m_A51; - m_A54 += m_A40 * f14_16; - RHS16 += f14_16 * RHS14; - const double f14_17 = -f14 * m_A59; - m_A61 += m_A40 * f14_17; - RHS17 += f14_17 * RHS14; -const double f15 = 1.0 / m_A46; - const double f15_16 = -f15 * m_A52; - m_A53 += m_A47 * f15_16; - RHS16 += f15_16 * RHS15; -const double f16 = 1.0 / m_A53; - const double f16_17 = -f16 * m_A60; - m_A61 += m_A54 * f16_17; - RHS17 += f16_17 * RHS16; - V[17] = RHS17 / m_A61; - double tmp16 = 0.0; - tmp16 += m_A54 * V[17]; - V[16] = (RHS16 - tmp16) / m_A53; - double tmp15 = 0.0; - tmp15 += m_A47 * V[16]; - V[15] = (RHS15 - tmp15) / m_A46; - double tmp14 = 0.0; - tmp14 += m_A40 * V[17]; - V[14] = (RHS14 - tmp14) / m_A39; - double tmp13 = 0.0; - tmp13 += m_A35 * V[14]; - tmp13 += m_A36 * V[16]; - tmp13 += m_A37 * V[17]; - V[13] = (RHS13 - tmp13) / m_A34; - double tmp12 = 0.0; - V[12] = (RHS12 - tmp12) / m_A32; - double tmp11 = 0.0; - tmp11 += m_A28 * V[15]; - tmp11 += m_A29 * V[16]; - V[11] = (RHS11 - tmp11) / m_A27; - double tmp10 = 0.0; - tmp10 += m_A23 * V[15]; - V[10] = (RHS10 - tmp10) / m_A22; - double tmp9 = 0.0; - V[9] = (RHS9 - tmp9) / m_A20; - double tmp8 = 0.0; - tmp8 += m_A18 * V[12]; - V[8] = (RHS8 - tmp8) / m_A17; - double tmp7 = 0.0; - tmp7 += m_A16 * V[12]; - V[7] = (RHS7 - tmp7) / m_A15; - double tmp6 = 0.0; - tmp6 += m_A14 * V[17]; - V[6] = (RHS6 - tmp6) / m_A13; - double tmp5 = 0.0; - tmp5 += m_A11 * V[11]; - tmp5 += m_A12 * V[16]; - V[5] = (RHS5 - tmp5) / m_A10; - double tmp4 = 0.0; - tmp4 += m_A9 * V[14]; - V[4] = (RHS4 - tmp4) / m_A8; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A12 += gt[14]; + m_A12 += gt[15]; + m_A12 += gt[16]; + m_A11 += go[12]; + m_A10 += go[13]; + m_A9 += go[14]; + m_A8 += go[15]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 -= go[16] * *cnV[16]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A8; + m_A12 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_4 = -f1 * m_A9; + m_A12 += m_A3 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A10; + m_A12 += m_A5 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_4 = -f3 * m_A11; + m_A12 += m_A7 * f3_4; + RHS4 += f3_4 * RHS3; + V[4] = RHS4 / m_A12; double tmp3 = 0.0; - tmp3 += m_A7 * V[10]; + tmp3 += m_A7 * V[4]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[15]; + tmp2 += m_A5 * V[4]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[15]; + tmp1 += m_A3 * V[4]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[9]; + tmp0 += m_A1 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } -// segas16b_audio -static void nl_gcr_35947d349693c22_111_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// gamemachine +static void nl_gcr_70c1124c705dd998_19_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[8] + gt[9] + gt[10]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A4 = gt[16] + gt[17] + gt[18]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] - go[17] * *cnV[17] - go[18] * *cnV[18]; - m_A6 = gt[24] + gt[25] + gt[26]; - m_A8 = m_A8 + go[24]; - m_A7 = m_A7 + go[25]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] - go[26] * *cnV[26]; - m_A9 = gt[32] + gt[33] + gt[34]; - m_A12 = m_A12 + go[32]; - m_A10 = m_A10 + go[33]; - m_A11 = m_A11 + go[34]; - double RHS4 = Idr[32] + Idr[33] + Idr[34]; - m_A13 = gt[40] + gt[41] + gt[42] + gt[43] + gt[44] + gt[45] + gt[46]; - m_A15 = m_A15 + go[40]; - m_A14 = m_A14 + go[41]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] + Idr[43] + Idr[44] + Idr[45] + Idr[46] - go[42] * *cnV[42] - go[43] * *cnV[43] - go[44] * *cnV[44] - go[45] * *cnV[45] - go[46] * *cnV[46]; - m_A16 = gt[48] + gt[49]; - m_A17 = m_A17 + go[48]; - m_A18 = m_A18 + go[49]; - double RHS6 = Idr[48] + Idr[49]; - m_A19 = gt[56] + gt[57]; - m_A20 = m_A20 + go[56]; - m_A21 = m_A21 + go[57]; - double RHS7 = Idr[56] + Idr[57]; - m_A22 = gt[64] + gt[65]; - m_A23 = m_A23 + go[64]; - m_A24 = m_A24 + go[65]; - double RHS8 = Idr[64] + Idr[65]; - m_A25 = gt[72] + gt[73]; - m_A26 = m_A26 + go[72]; - m_A27 = m_A27 + go[73]; - double RHS9 = Idr[72] + Idr[73]; - m_A28 = gt[80] + gt[81]; - m_A29 = m_A29 + go[80]; - double RHS10 = Idr[80] + Idr[81] - go[81] * *cnV[81]; - m_A30 = gt[88] + gt[89] + gt[90] + gt[91]; - m_A31 = m_A31 + go[88]; - double RHS11 = Idr[88] + Idr[89] + Idr[90] + Idr[91] - go[89] * *cnV[89] - go[90] * *cnV[90] - go[91] * *cnV[91]; - m_A34 = gt[96] + gt[97] + gt[98]; - m_A33 = m_A33 + go[96]; - m_A32 = m_A32 + go[97]; - double RHS12 = Idr[96] + Idr[97] + Idr[98] - go[98] * *cnV[98]; - m_A37 = gt[104] + gt[105] + gt[106] + gt[107] + gt[108] + gt[109] + gt[110]; - m_A38 = m_A38 + go[104]; - m_A36 = m_A36 + go[105]; - double RHS13 = Idr[104] + Idr[105] + Idr[106] + Idr[107] + Idr[108] + Idr[109] + Idr[110] - go[106] * *cnV[106] - go[107] * *cnV[107] - go[108] * *cnV[108] - go[109] * *cnV[109] - go[110] * *cnV[110]; - m_A40 = gt[112] + gt[113] + gt[114] + gt[115] + gt[116] + gt[117] + gt[118]; - m_A41 = m_A41 + go[112]; - m_A39 = m_A39 + go[113]; - double RHS14 = Idr[112] + Idr[113] + Idr[114] + Idr[115] + Idr[116] + Idr[117] + Idr[118] - go[114] * *cnV[114] - go[115] * *cnV[115] - go[116] * *cnV[116] - go[117] * *cnV[117] - go[118] * *cnV[118]; - m_A44 = gt[120] + gt[121] + gt[122] + gt[123]; - m_A45 = m_A45 + go[120]; - m_A43 = m_A43 + go[121]; - m_A42 = m_A42 + go[122]; - double RHS15 = Idr[120] + Idr[121] + Idr[122] + Idr[123] - go[123] * *cnV[123]; - m_A48 = gt[128] + gt[129] + gt[130] + gt[131] + gt[132] + gt[133] + gt[134]; - m_A49 = m_A49 + go[128]; - m_A46 = m_A46 + go[129]; - double RHS16 = Idr[128] + Idr[129] + Idr[130] + Idr[131] + Idr[132] + Idr[133] + Idr[134] - go[130] * *cnV[130] - go[131] * *cnV[131] - go[132] * *cnV[132] - go[133] * *cnV[133] - go[134] * *cnV[134]; - m_A51 = gt[136] + gt[137] + gt[138]; - m_A53 = m_A53 + go[136]; - m_A50 = m_A50 + go[137]; - double RHS17 = Idr[136] + Idr[137] + Idr[138] - go[138] * *cnV[138]; - m_A58 = gt[144] + gt[145] + gt[146] + gt[147] + gt[148] + gt[149]; - m_A57 = m_A57 + go[144]; - m_A62 = m_A62 + go[145]; - m_A62 = m_A62 + go[146]; - m_A56 = m_A56 + go[147]; - m_A55 = m_A55 + go[148]; - m_A54 = m_A54 + go[149]; - double RHS18 = Idr[144] + Idr[145] + Idr[146] + Idr[147] + Idr[148] + Idr[149]; - m_A67 = gt[152] + gt[153] + gt[154] + gt[155] + gt[156]; - m_A65 = m_A65 + go[152]; - m_A64 = m_A64 + go[153]; - m_A63 = m_A63 + go[154]; - double RHS19 = Idr[152] + Idr[153] + Idr[154] + Idr[155] + Idr[156] - go[155] * *cnV[155] - go[156] * *cnV[156]; - m_A76 = gt[160] + gt[161] + gt[162] + gt[163] + gt[164]; - m_A73 = m_A73 + go[160]; - m_A72 = m_A72 + go[161]; - m_A71 = m_A71 + go[162]; - double RHS20 = Idr[160] + Idr[161] + Idr[162] + Idr[163] + Idr[164] - go[163] * *cnV[163] - go[164] * *cnV[164]; - m_A84 = gt[168] + gt[169] + gt[170] + gt[171] + gt[172] + gt[173]; - m_A82 = m_A82 + go[168]; - m_A80 = m_A80 + go[169]; - m_A79 = m_A79 + go[170]; - m_A81 = m_A81 + go[171]; - double RHS21 = Idr[168] + Idr[169] + Idr[170] + Idr[171] + Idr[172] + Idr[173] - go[172] * *cnV[172] - go[173] * *cnV[173]; - m_A94 = gt[176] + gt[177] + gt[178] + gt[179] + gt[180] + gt[181]; - m_A87 = m_A87 + go[176]; - m_A88 = m_A88 + go[177]; - m_A89 = m_A89 + go[178]; - m_A86 = m_A86 + go[179]; - double RHS22 = Idr[176] + Idr[177] + Idr[178] + Idr[179] + Idr[180] + Idr[181] - go[180] * *cnV[180] - go[181] * *cnV[181]; - m_A101 = gt[184] + gt[185] + gt[186] + gt[187] + gt[188] + gt[189] + gt[190]; - m_A96 = m_A96 + go[184]; - m_A97 = m_A97 + go[185]; - double RHS23 = Idr[184] + Idr[185] + Idr[186] + Idr[187] + Idr[188] + Idr[189] + Idr[190] - go[186] * *cnV[186] - go[187] * *cnV[187] - go[188] * *cnV[188] - go[189] * *cnV[189] - go[190] * *cnV[190]; - m_A110 = gt[192] + gt[193] + gt[194] + gt[195] + gt[196] + gt[197]; - m_A109 = m_A109 + go[192]; - m_A103 = m_A103 + go[193]; - m_A105 = m_A105 + go[194]; - m_A105 = m_A105 + go[195]; - double RHS24 = Idr[192] + Idr[193] + Idr[194] + Idr[195] + Idr[196] + Idr[197] - go[196] * *cnV[196] - go[197] * *cnV[197]; -const double f0 = 1.0 / m_A0; - const double f0_13 = -f0 * m_A36; - m_A38 += m_A1 * f0_13; - RHS13 += f0_13 * RHS0; - const double f0_19 = -f0 * m_A63; - m_A67 += m_A1 * f0_19; - RHS19 += f0_19 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_14 = -f1 * m_A39; - m_A41 += m_A3 * f1_14; - RHS14 += f1_14 * RHS1; - const double f1_20 = -f1 * m_A71; - m_A76 += m_A3 * f1_20; - RHS20 += f1_20 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_15 = -f2 * m_A42; - m_A44 += m_A5 * f2_15; - RHS15 += f2_15 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_15 = -f3 * m_A43; - m_A44 += m_A7 * f3_15; - m_A45 += m_A8 * f3_15; - RHS15 += f3_15 * RHS3; - const double f3_16 = -f3 * m_A46; - m_A47 += m_A7 * f3_16; - m_A49 += m_A8 * f3_16; - RHS16 += f3_16 * RHS3; - const double f3_21 = -f3 * m_A79; - m_A81 += m_A7 * f3_21; - m_A84 += m_A8 * f3_21; - RHS21 += f3_21 * RHS3; -const double f4 = 1.0 / m_A9; - const double f4_17 = -f4 * m_A50; - m_A51 += m_A10 * f4_17; - m_A52 += m_A11 * f4_17; - m_A53 += m_A12 * f4_17; - RHS17 += f4_17 * RHS4; - const double f4_21 = -f4 * m_A80; - m_A83 += m_A10 * f4_21; - m_A84 += m_A11 * f4_21; - m_A85 += m_A12 * f4_21; - RHS21 += f4_21 * RHS4; - const double f4_22 = -f4 * m_A86; - m_A89 += m_A10 * f4_22; - m_A93 += m_A11 * f4_22; - m_A94 += m_A12 * f4_22; - RHS22 += f4_22 * RHS4; -const double f5 = 1.0 / m_A13; - const double f5_22 = -f5 * m_A87; - m_A89 += m_A14 * f5_22; - m_A94 += m_A15 * f5_22; - RHS22 += f5_22 * RHS5; -const double f6 = 1.0 / m_A16; - const double f6_18 = -f6 * m_A54; - m_A58 += m_A17 * f6_18; - m_A61 += m_A18 * f6_18; - RHS18 += f6_18 * RHS6; - const double f6_22 = -f6 * m_A88; - m_A90 += m_A17 * f6_22; - m_A94 += m_A18 * f6_22; - RHS22 += f6_22 * RHS6; -const double f7 = 1.0 / m_A19; - const double f7_18 = -f7 * m_A55; - m_A58 += m_A20 * f7_18; - m_A59 += m_A21 * f7_18; - RHS18 += f7_18 * RHS7; - const double f7_19 = -f7 * m_A64; - m_A66 += m_A20 * f7_19; - m_A67 += m_A21 * f7_19; - RHS19 += f7_19 * RHS7; -const double f8 = 1.0 / m_A22; - const double f8_18 = -f8 * m_A56; - m_A58 += m_A23 * f8_18; - m_A60 += m_A24 * f8_18; - RHS18 += f8_18 * RHS8; - const double f8_20 = -f8 * m_A72; - m_A74 += m_A23 * f8_20; - m_A76 += m_A24 * f8_20; - RHS20 += f8_20 * RHS8; -const double f9 = 1.0 / m_A25; - const double f9_12 = -f9 * m_A32; - m_A34 += m_A26 * f9_12; - m_A35 += m_A27 * f9_12; - RHS12 += f9_12 * RHS9; - const double f9_24 = -f9 * m_A103; - m_A104 += m_A26 * f9_24; - m_A110 += m_A27 * f9_24; - RHS24 += f9_24 * RHS9; -const double f10 = 1.0 / m_A28; - const double f10_12 = -f10 * m_A33; - m_A34 += m_A29 * f10_12; - RHS12 += f10_12 * RHS10; -const double f11 = 1.0 / m_A30; - const double f11_18 = -f11 * m_A57; - m_A58 += m_A31 * f11_18; - RHS18 += f11_18 * RHS11; - const double f11_23 = -f11 * m_A96; - m_A97 += m_A31 * f11_23; - RHS23 += f11_23 * RHS11; -const double f12 = 1.0 / m_A34; - const double f12_24 = -f12 * m_A104; - m_A110 += m_A35 * f12_24; - RHS24 += f12_24 * RHS12; -const double f13 = 1.0 / m_A37; - const double f13_19 = -f13 * m_A65; - m_A67 += m_A38 * f13_19; - RHS19 += f13_19 * RHS13; -const double f14 = 1.0 / m_A40; - const double f14_20 = -f14 * m_A73; - m_A76 += m_A41 * f14_20; - RHS20 += f14_20 * RHS14; -const double f15 = 1.0 / m_A44; - const double f15_16 = -f15 * m_A47; - m_A49 += m_A45 * f15_16; - RHS16 += f15_16 * RHS15; - const double f15_21 = -f15 * m_A81; - m_A84 += m_A45 * f15_21; - RHS21 += f15_21 * RHS15; -const double f16 = 1.0 / m_A48; - const double f16_21 = -f16 * m_A82; - m_A84 += m_A49 * f16_21; - RHS21 += f16_21 * RHS16; -const double f17 = 1.0 / m_A51; - const double f17_21 = -f17 * m_A83; - m_A84 += m_A52 * f17_21; - m_A85 += m_A53 * f17_21; - RHS21 += f17_21 * RHS17; - const double f17_22 = -f17 * m_A89; - m_A93 += m_A52 * f17_22; - m_A94 += m_A53 * f17_22; - RHS22 += f17_22 * RHS17; -const double f18 = 1.0 / m_A58; - const double f18_19 = -f18 * m_A66; - m_A67 += m_A59 * f18_19; - m_A68 += m_A60 * f18_19; - m_A69 += m_A61 * f18_19; - m_A70 += m_A62 * f18_19; - RHS19 += f18_19 * RHS18; - const double f18_20 = -f18 * m_A74; - m_A75 += m_A59 * f18_20; - m_A76 += m_A60 * f18_20; - m_A77 += m_A61 * f18_20; - m_A78 += m_A62 * f18_20; - RHS20 += f18_20 * RHS18; - const double f18_22 = -f18 * m_A90; - m_A91 += m_A59 * f18_22; - m_A92 += m_A60 * f18_22; - m_A94 += m_A61 * f18_22; - m_A95 += m_A62 * f18_22; - RHS22 += f18_22 * RHS18; - const double f18_23 = -f18 * m_A97; - m_A98 += m_A59 * f18_23; - m_A99 += m_A60 * f18_23; - m_A100 += m_A61 * f18_23; - m_A102 += m_A62 * f18_23; - RHS23 += f18_23 * RHS18; - const double f18_24 = -f18 * m_A105; - m_A106 += m_A59 * f18_24; - m_A107 += m_A60 * f18_24; - m_A108 += m_A61 * f18_24; - m_A110 += m_A62 * f18_24; - RHS24 += f18_24 * RHS18; -const double f19 = 1.0 / m_A67; - const double f19_20 = -f19 * m_A75; - m_A76 += m_A68 * f19_20; - m_A77 += m_A69 * f19_20; - m_A78 += m_A70 * f19_20; - RHS20 += f19_20 * RHS19; - const double f19_22 = -f19 * m_A91; - m_A92 += m_A68 * f19_22; - m_A94 += m_A69 * f19_22; - m_A95 += m_A70 * f19_22; - RHS22 += f19_22 * RHS19; - const double f19_23 = -f19 * m_A98; - m_A99 += m_A68 * f19_23; - m_A100 += m_A69 * f19_23; - m_A102 += m_A70 * f19_23; - RHS23 += f19_23 * RHS19; - const double f19_24 = -f19 * m_A106; - m_A107 += m_A68 * f19_24; - m_A108 += m_A69 * f19_24; - m_A110 += m_A70 * f19_24; - RHS24 += f19_24 * RHS19; -const double f20 = 1.0 / m_A76; - const double f20_22 = -f20 * m_A92; - m_A94 += m_A77 * f20_22; - m_A95 += m_A78 * f20_22; - RHS22 += f20_22 * RHS20; - const double f20_23 = -f20 * m_A99; - m_A100 += m_A77 * f20_23; - m_A102 += m_A78 * f20_23; - RHS23 += f20_23 * RHS20; - const double f20_24 = -f20 * m_A107; - m_A108 += m_A77 * f20_24; - m_A110 += m_A78 * f20_24; - RHS24 += f20_24 * RHS20; -const double f21 = 1.0 / m_A84; - const double f21_22 = -f21 * m_A93; - m_A94 += m_A85 * f21_22; - RHS22 += f21_22 * RHS21; -const double f22 = 1.0 / m_A94; - const double f22_23 = -f22 * m_A100; - m_A102 += m_A95 * f22_23; - RHS23 += f22_23 * RHS22; - const double f22_24 = -f22 * m_A108; - m_A110 += m_A95 * f22_24; - RHS24 += f22_24 * RHS22; -const double f23 = 1.0 / m_A101; - const double f23_24 = -f23 * m_A109; - m_A110 += m_A102 * f23_24; - RHS24 += f23_24 * RHS23; - V[24] = RHS24 / m_A110; - double tmp23 = 0.0; - tmp23 += m_A102 * V[24]; - V[23] = (RHS23 - tmp23) / m_A101; - double tmp22 = 0.0; - tmp22 += m_A95 * V[24]; - V[22] = (RHS22 - tmp22) / m_A94; - double tmp21 = 0.0; - tmp21 += m_A85 * V[22]; - V[21] = (RHS21 - tmp21) / m_A84; - double tmp20 = 0.0; - tmp20 += m_A77 * V[22]; - tmp20 += m_A78 * V[24]; - V[20] = (RHS20 - tmp20) / m_A76; - double tmp19 = 0.0; - tmp19 += m_A68 * V[20]; - tmp19 += m_A69 * V[22]; - tmp19 += m_A70 * V[24]; - V[19] = (RHS19 - tmp19) / m_A67; - double tmp18 = 0.0; - tmp18 += m_A59 * V[19]; - tmp18 += m_A60 * V[20]; - tmp18 += m_A61 * V[22]; - tmp18 += m_A62 * V[24]; - V[18] = (RHS18 - tmp18) / m_A58; - double tmp17 = 0.0; - tmp17 += m_A52 * V[21]; - tmp17 += m_A53 * V[22]; - V[17] = (RHS17 - tmp17) / m_A51; - double tmp16 = 0.0; - tmp16 += m_A49 * V[21]; - V[16] = (RHS16 - tmp16) / m_A48; - double tmp15 = 0.0; - tmp15 += m_A45 * V[21]; - V[15] = (RHS15 - tmp15) / m_A44; - double tmp14 = 0.0; - tmp14 += m_A41 * V[20]; - V[14] = (RHS14 - tmp14) / m_A40; - double tmp13 = 0.0; - tmp13 += m_A38 * V[19]; - V[13] = (RHS13 - tmp13) / m_A37; - double tmp12 = 0.0; - tmp12 += m_A35 * V[24]; - V[12] = (RHS12 - tmp12) / m_A34; - double tmp11 = 0.0; - tmp11 += m_A31 * V[18]; - V[11] = (RHS11 - tmp11) / m_A30; - double tmp10 = 0.0; - tmp10 += m_A29 * V[12]; - V[10] = (RHS10 - tmp10) / m_A28; - double tmp9 = 0.0; - tmp9 += m_A26 * V[12]; - tmp9 += m_A27 * V[24]; - V[9] = (RHS9 - tmp9) / m_A25; - double tmp8 = 0.0; - tmp8 += m_A23 * V[18]; - tmp8 += m_A24 * V[20]; - V[8] = (RHS8 - tmp8) / m_A22; - double tmp7 = 0.0; - tmp7 += m_A20 * V[18]; - tmp7 += m_A21 * V[19]; - V[7] = (RHS7 - tmp7) / m_A19; - double tmp6 = 0.0; - tmp6 += m_A17 * V[18]; - tmp6 += m_A18 * V[22]; - V[6] = (RHS6 - tmp6) / m_A16; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A9 += go[12]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 -= go[13] * *cnV[13]; + RHS4 -= go[14] * *cnV[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A11 += go[15]; + double RHS5 = Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[16] * *cnV[16]; + RHS5 -= go[17] * *cnV[17]; + m_A18 += gt[18]; + m_A18 += gt[19]; + m_A18 += gt[20]; + m_A18 += gt[21]; + m_A18 += gt[22]; + m_A18 += gt[23]; + m_A18 += gt[24]; + m_A17 += go[18]; + m_A16 += go[19]; + m_A15 += go[20]; + m_A14 += go[21]; + m_A13 += go[22]; + m_A12 += go[23]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; + RHS6 += Idr[24]; + RHS6 -= go[24] * *cnV[24]; + const double f0 = 1.0 / m_A0; + const double f0_6 = -f0 * m_A12; + m_A18 += m_A1 * f0_6; + RHS6 += f0_6 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_6 = -f1 * m_A13; + m_A18 += m_A3 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_6 = -f2 * m_A14; + m_A18 += m_A5 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_6 = -f3 * m_A15; + m_A18 += m_A7 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_6 = -f4 * m_A16; + m_A18 += m_A9 * f4_6; + RHS6 += f4_6 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_6 = -f5 * m_A17; + m_A18 += m_A11 * f5_6; + RHS6 += f5_6 * RHS5; + V[6] = RHS6 / m_A18; double tmp5 = 0.0; - tmp5 += m_A14 * V[17]; - tmp5 += m_A15 * V[22]; - V[5] = (RHS5 - tmp5) / m_A13; + tmp5 += m_A11 * V[6]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A10 * V[17]; - tmp4 += m_A11 * V[21]; - tmp4 += m_A12 * V[22]; - V[4] = (RHS4 - tmp4) / m_A9; + tmp4 += m_A9 * V[6]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[15]; - tmp3 += m_A8 * V[21]; + tmp3 += m_A7 * V[6]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[15]; + tmp2 += m_A5 * V[6]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[20]; + tmp1 += m_A3 * V[6]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[19]; + tmp0 += m_A1 * V[6]; V[0] = (RHS0 - tmp0) / m_A0; } -// cocoloco -static void nl_gcr_3641ac25e244c362_16_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// cheekyms +static void nl_gcr_70f289d5486b9767_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] - go[1] * *cnV[1]; - m_A2 = gt[4] + gt[5]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] - go[5] * *cnV[5]; - m_A4 = gt[8] + gt[9]; - m_A5 = m_A5 + go[8]; - double RHS2 = Idr[8] + Idr[9] - go[9] * *cnV[9]; - m_A6 = gt[12] + gt[13]; - m_A7 = m_A7 + go[12]; - double RHS3 = Idr[12] + Idr[13] - go[13] * *cnV[13]; - m_A9 = gt[16] + gt[17] + gt[18]; - m_A8 = m_A8 + go[16]; - m_A10 = m_A10 + go[17]; - double RHS4 = Idr[16] + Idr[17] + Idr[18] - go[18] * *cnV[18]; - m_A15 = gt[20] + gt[21] + gt[22] + gt[23]; - m_A14 = m_A14 + go[20]; - m_A13 = m_A13 + go[21]; - m_A12 = m_A12 + go[22]; - m_A11 = m_A11 + go[23]; - double RHS5 = Idr[20] + Idr[21] + Idr[22] + Idr[23]; -const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A11; - m_A15 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_5 = -f1 * m_A12; - m_A15 += m_A3 * f1_5; - RHS5 += f1_5 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A8; - m_A9 += m_A5 * f2_4; - RHS4 += f2_4 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_5 = -f3 * m_A13; - m_A15 += m_A7 * f3_5; - RHS5 += f3_5 * RHS3; -const double f4 = 1.0 / m_A9; - const double f4_5 = -f4 * m_A14; - m_A15 += m_A10 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A15; - double tmp4 = 0.0; - tmp4 += m_A10 * V[5]; - V[4] = (RHS4 - tmp4) / m_A9; - double tmp3 = 0.0; - tmp3 += m_A7 * V[5]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[4]; - V[2] = (RHS2 - tmp2) / m_A4; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A5 += go[5]; + m_A4 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; + RHS2 += f1_2 * RHS1; + V[2] = RHS2 / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[5]; + tmp1 += m_A3 * V[2]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; + tmp0 += m_A1 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } // zac1b11142 -static void nl_gcr_38a3ac18f52bf78a_7_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_752680f8e0bc6a4a_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[8] + gt[9] + gt[10] + gt[11]; - m_A3 = m_A3 + go[8]; - m_A3 = m_A3 + go[9]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] + Idr[11] - go[10] * *cnV[10] - go[11] * *cnV[11]; - m_A6 = gt[16] + gt[17] + gt[18] + gt[19] + gt[20] + gt[21] + gt[22]; - m_A5 = m_A5 + go[16]; - m_A5 = m_A5 + go[17]; - m_A4 = m_A4 + go[18]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] + Idr[19] + Idr[20] + Idr[21] + Idr[22] - go[19] * *cnV[19] - go[20] * *cnV[20] - go[21] * *cnV[21] - go[22] * *cnV[22]; -const double f0 = 1.0 / m_A0; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A3 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A5 += go[7]; + m_A5 += go[8]; + m_A4 += go[9]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 += Idr[13]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + RHS2 -= go[13] * *cnV[13]; + const double f0 = 1.0 / m_A0; const double f0_2 = -f0 * m_A4; m_A6 += m_A1 * f0_2; RHS2 += f0_2 * RHS0; -const double f1 = 1.0 / m_A2; + const double f1 = 1.0 / m_A2; const double f1_2 = -f1 * m_A5; m_A6 += m_A3 * f1_2; RHS2 += f1_2 * RHS1; @@ -3889,121 +7603,432 @@ const double f1 = 1.0 / m_A2; V[0] = (RHS0 - tmp0) / m_A0; } -// dpatrol -static void nl_gcr_38f1806722626d7e_7_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// mario +static void nl_gcr_7b9186d9ff77f7a1_29_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] - go[1] * *cnV[1]; - m_A2 = gt[4] + gt[5]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] - go[5] * *cnV[5]; - m_A6 = gt[8] + gt[9] + gt[10] + gt[11]; - m_A5 = m_A5 + go[8]; - m_A4 = m_A4 + go[9]; - double RHS2 = Idr[8] + Idr[9] + Idr[10] + Idr[11] - go[10] * *cnV[10] - go[11] * *cnV[11]; -const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A8 += go[9]; + m_A7 += go[10]; + m_A7 += go[11]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 -= go[12] * *cnV[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A10 += go[13]; + double RHS4 = Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 -= go[14] * *cnV[14]; + RHS4 -= go[15] * *cnV[15]; + m_A11 += gt[16]; + m_A11 += gt[17]; + m_A12 += go[16]; + double RHS5 = Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[17] * *cnV[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A14 += gt[22]; + m_A14 += gt[23]; + m_A14 += gt[24]; + m_A16 += go[18]; + m_A16 += go[19]; + m_A13 += go[20]; + m_A13 += go[21]; + m_A15 += go[22]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; + RHS6 += Idr[24]; + RHS6 -= go[23] * *cnV[23]; + RHS6 -= go[24] * *cnV[24]; + m_A22 += gt[25]; + m_A22 += gt[26]; + m_A22 += gt[27]; + m_A22 += gt[28]; + m_A22 += gt[29]; + m_A22 += gt[30]; + m_A20 += go[25]; + m_A21 += go[26]; + m_A19 += go[27]; + m_A18 += go[28]; + m_A17 += go[29]; + double RHS7 = Idr[25]; + RHS7 += Idr[26]; + RHS7 += Idr[27]; + RHS7 += Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + RHS7 -= go[30] * *cnV[30]; + m_A28 += gt[31]; + m_A28 += gt[32]; + m_A28 += gt[33]; + m_A28 += gt[34]; + m_A28 += gt[35]; + m_A28 += gt[36]; + m_A25 += go[31]; + m_A24 += go[32]; + m_A26 += go[33]; + m_A26 += go[34]; + double RHS8 = Idr[31]; + RHS8 += Idr[32]; + RHS8 += Idr[33]; + RHS8 += Idr[34]; + RHS8 += Idr[35]; + RHS8 += Idr[36]; + RHS8 -= go[35] * *cnV[35]; + RHS8 -= go[36] * *cnV[36]; + const double f0 = 1.0 / m_A0; + const double f0_7 = -f0 * m_A17; + m_A22 += m_A1 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_7 = -f1 * m_A18; + m_A22 += m_A3 * f1_7; + RHS7 += f1_7 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_7 = -f2 * m_A19; + m_A22 += m_A5 * f2_7; + RHS7 += f2_7 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_6 = -f3 * m_A13; + m_A14 += m_A7 * f3_6; + m_A16 += m_A8 * f3_6; + RHS6 += f3_6 * RHS3; + const double f3_8 = -f3 * m_A24; + m_A26 += m_A7 * f3_8; + m_A28 += m_A8 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_8 = -f4 * m_A25; + m_A28 += m_A10 * f4_8; + RHS8 += f4_8 * RHS4; + const double f5 = 1.0 / m_A11; + const double f5_7 = -f5 * m_A20; + m_A22 += m_A12 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A14; + const double f6_7 = -f6 * m_A21; + m_A22 += m_A15 * f6_7; + m_A23 += m_A16 * f6_7; + RHS7 += f6_7 * RHS6; + const double f6_8 = -f6 * m_A26; + m_A27 += m_A15 * f6_8; + m_A28 += m_A16 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A22; + const double f7_8 = -f7 * m_A27; + m_A28 += m_A23 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A28; + double tmp7 = 0.0; + tmp7 += m_A23 * V[8]; + V[7] = (RHS7 - tmp7) / m_A22; + double tmp6 = 0.0; + tmp6 += m_A15 * V[7]; + tmp6 += m_A16 * V[8]; + V[6] = (RHS6 - tmp6) / m_A14; + double tmp5 = 0.0; + tmp5 += m_A12 * V[7]; + V[5] = (RHS5 - tmp5) / m_A11; + double tmp4 = 0.0; + tmp4 += m_A10 * V[8]; + V[4] = (RHS4 - tmp4) / m_A9; + double tmp3 = 0.0; + tmp3 += m_A7 * V[6]; + tmp3 += m_A8 * V[8]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[7]; + 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[7]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// cheekyms +static void nl_gcr_7e9498276980e5d1_12_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A2 += go[0]; + m_A1 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[2] * *cnV[2]; + m_A3 += gt[3]; + m_A3 += gt[4]; + m_A4 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A7 += go[5]; + m_A5 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + m_A11 += gt[7]; + m_A11 += gt[8]; + m_A11 += gt[9]; + m_A11 += gt[10]; + m_A11 += gt[11]; + m_A11 += gt[12]; + m_A9 += go[7]; + m_A10 += go[8]; + m_A8 += go[9]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A5; m_A6 += m_A1 * f0_2; + m_A7 += m_A2 * f0_2; RHS2 += f0_2 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; + const double f0_3 = -f0 * m_A8; + m_A10 += m_A1 * f0_3; + m_A11 += m_A2 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_3 = -f1 * m_A9; + m_A11 += m_A4 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_3 = -f2 * m_A10; + m_A11 += m_A7 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A11; + double tmp2 = 0.0; + tmp2 += m_A7 * V[3]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - V[1] = (RHS1 - tmp1) / m_A2; + tmp1 += m_A4 * V[3]; + V[1] = (RHS1 - tmp1) / m_A3; double tmp0 = 0.0; tmp0 += m_A1 * V[2]; + tmp0 += m_A2 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } // kidniki -static void nl_gcr_3e4821cabc0aeb96_24_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_80d7c219807268a_24_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3] + gt[4] + gt[5] + gt[6]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] + Idr[4] + Idr[5] + Idr[6] - go[1] * *cnV[1] - go[2] * *cnV[2] - go[3] * *cnV[3] - go[4] * *cnV[4] - go[5] * *cnV[5] - go[6] * *cnV[6]; - m_A2 = gt[8] + gt[9]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] - go[9] * *cnV[9]; - m_A4 = gt[16] + gt[17]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] - go[17] * *cnV[17]; - m_A6 = gt[24] + gt[25]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] - go[25] * *cnV[25]; - m_A8 = gt[32] + gt[33] + gt[34]; - m_A10 = m_A10 + go[32]; - m_A9 = m_A9 + go[33]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] - go[34] * *cnV[34]; - m_A11 = gt[40] + gt[41] + gt[42]; - m_A12 = m_A12 + go[40]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] - go[41] * *cnV[41] - go[42] * *cnV[42]; - m_A18 = gt[48] + gt[49] + gt[50] + gt[51] + gt[52]; - m_A16 = m_A16 + go[48]; - m_A15 = m_A15 + go[49]; - m_A14 = m_A14 + go[50]; - m_A17 = m_A17 + go[51]; - m_A13 = m_A13 + go[52]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] + Idr[51] + Idr[52]; - m_A23 = gt[56] + gt[57]; - m_A21 = m_A21 + go[56]; - m_A20 = m_A20 + go[57]; - double RHS7 = Idr[56] + Idr[57]; -const double f0 = 1.0 / m_A0; + 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); + 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_A3 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 -= go[8] * *cnV[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A5 += go[9]; + double RHS2 = Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[10] * *cnV[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A7 += go[11]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 -= go[12] * *cnV[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A10 += go[13]; + m_A9 += go[14]; + double RHS4 = Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 -= go[15] * *cnV[15]; + m_A11 += gt[16]; + m_A11 += gt[17]; + m_A11 += gt[18]; + m_A12 += go[16]; + double RHS5 = Idr[16]; + RHS5 += Idr[17]; + RHS5 += Idr[18]; + RHS5 -= go[17] * *cnV[17]; + RHS5 -= go[18] * *cnV[18]; + m_A18 += gt[19]; + m_A18 += gt[20]; + m_A18 += gt[21]; + m_A18 += gt[22]; + m_A18 += gt[23]; + m_A16 += go[19]; + m_A15 += go[20]; + m_A14 += go[21]; + m_A17 += go[22]; + m_A13 += go[23]; + double RHS6 = Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; + m_A23 += gt[24]; + m_A23 += gt[25]; + m_A21 += go[24]; + m_A20 += go[25]; + double RHS7 = Idr[24]; + RHS7 += Idr[25]; + const double f0 = 1.0 / m_A0; const double f0_6 = -f0 * m_A13; m_A18 += m_A1 * f0_6; RHS6 += f0_6 * RHS0; -const double f1 = 1.0 / m_A2; + const double f1 = 1.0 / m_A2; const double f1_6 = -f1 * m_A14; m_A18 += m_A3 * f1_6; RHS6 += f1_6 * RHS1; -const double f2 = 1.0 / m_A4; + const double f2 = 1.0 / m_A4; const double f2_6 = -f2 * m_A15; m_A18 += m_A5 * f2_6; RHS6 += f2_6 * RHS2; -const double f3 = 1.0 / m_A6; + const double f3 = 1.0 / m_A6; const double f3_6 = -f3 * m_A16; m_A18 += m_A7 * f3_6; RHS6 += f3_6 * RHS3; -const double f4 = 1.0 / m_A8; + const double f4 = 1.0 / m_A8; const double f4_6 = -f4 * m_A17; m_A18 += m_A9 * f4_6; m_A19 += m_A10 * f4_6; @@ -4012,11 +8037,11 @@ const double f4 = 1.0 / m_A8; m_A22 += m_A9 * f4_7; m_A23 += m_A10 * f4_7; RHS7 += f4_7 * RHS4; -const double f5 = 1.0 / m_A11; + const double f5 = 1.0 / m_A11; const double f5_7 = -f5 * m_A21; m_A23 += m_A12 * f5_7; RHS7 += f5_7 * RHS5; -const double f6 = 1.0 / m_A18; + const double f6 = 1.0 / m_A18; const double f6_7 = -f6 * m_A22; m_A23 += m_A19 * f6_7; RHS7 += f6_7 * RHS6; @@ -4045,379 +8070,295 @@ const double f6 = 1.0 / m_A18; V[0] = (RHS0 - tmp0) / m_A0; } -// dpatrol -static void nl_gcr_57a832104e53c9a8_20_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] - go[1] * *cnV[1] - go[2] * *cnV[2] - go[3] * *cnV[3]; - m_A2 = gt[8]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8]; - m_A4 = gt[16] + gt[17] + gt[18] + gt[19] + gt[20]; - m_A6 = m_A6 + go[16]; - m_A5 = m_A5 + go[17]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] + Idr[19] + Idr[20] - go[18] * *cnV[18] - go[19] * *cnV[19] - go[20] * *cnV[20]; - m_A8 = gt[24] + gt[25] + gt[26] + gt[27] + gt[28] + gt[29] + gt[30]; - m_A10 = m_A10 + go[24]; - m_A9 = m_A9 + go[25]; - m_A7 = m_A7 + go[26]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] + Idr[27] + Idr[28] + Idr[29] + Idr[30] - go[27] * *cnV[27] - go[28] * *cnV[28] - go[29] * *cnV[29] - go[30] * *cnV[30]; - m_A14 = gt[32] + gt[33] + gt[34] + gt[35]; - m_A11 = m_A11 + go[32]; - m_A12 = m_A12 + go[33]; - m_A13 = m_A13 + go[34]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] + Idr[35] - go[35] * *cnV[35]; - m_A19 = gt[40] + gt[41] + gt[42]; - m_A16 = m_A16 + go[40]; - m_A17 = m_A17 + go[41]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] - go[42] * *cnV[42]; -const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A7; - m_A8 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A11; - m_A14 += m_A3 * f1_4; - RHS4 += f1_4 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A12; - m_A14 += m_A5 * f2_4; - m_A15 += m_A6 * f2_4; - RHS4 += f2_4 * RHS2; - const double f2_5 = -f2 * m_A16; - m_A18 += m_A5 * f2_5; - m_A19 += m_A6 * f2_5; - RHS5 += f2_5 * RHS2; -const double f3 = 1.0 / m_A8; - const double f3_4 = -f3 * m_A13; - m_A14 += m_A9 * f3_4; - m_A15 += m_A10 * f3_4; - RHS4 += f3_4 * RHS3; - const double f3_5 = -f3 * m_A17; - m_A18 += m_A9 * f3_5; - m_A19 += m_A10 * f3_5; - RHS5 += f3_5 * RHS3; -const double f4 = 1.0 / m_A14; - const double f4_5 = -f4 * m_A18; - m_A19 += m_A15 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A19; - double tmp4 = 0.0; - tmp4 += m_A15 * V[5]; - V[4] = (RHS4 - tmp4) / m_A14; - double tmp3 = 0.0; - tmp3 += m_A9 * V[4]; - tmp3 += m_A10 * V[5]; - V[3] = (RHS3 - tmp3) / m_A8; - double tmp2 = 0.0; - tmp2 += m_A5 * V[4]; - tmp2 += m_A6 * V[5]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// rebound -static void nl_gcr_5985dfb549280eeb_13_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[6] + gt[7] + gt[8]; - m_A3 = m_A3 + go[6]; - double RHS1 = Idr[6] + Idr[7] + Idr[8] - go[7] * *cnV[7] - go[8] * *cnV[8]; - m_A4 = gt[12] + gt[13] + gt[14]; - m_A5 = m_A5 + go[12]; - double RHS2 = Idr[12] + Idr[13] + Idr[14] - go[13] * *cnV[13] - go[14] * *cnV[14]; - m_A6 = gt[18] + gt[19] + gt[20]; - m_A7 = m_A7 + go[18]; - double RHS3 = Idr[18] + Idr[19] + Idr[20] - go[19] * *cnV[19] - go[20] * *cnV[20]; - m_A12 = gt[24] + gt[25] + gt[26] + gt[27] + gt[28]; - m_A11 = m_A11 + go[24]; - m_A10 = m_A10 + go[25]; - m_A9 = m_A9 + go[26]; - m_A8 = m_A8 + go[27]; - double RHS4 = Idr[24] + Idr[25] + Idr[26] + Idr[27] + Idr[28] - go[28] * *cnV[28]; -const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A8; - m_A12 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A9; - m_A12 += m_A3 * f1_4; - RHS4 += f1_4 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A10; - m_A12 += m_A5 * f2_4; - RHS4 += f2_4 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_4 = -f3 * m_A11; - m_A12 += m_A7 * f3_4; - RHS4 += f3_4 * RHS3; - V[4] = RHS4 / m_A12; - double tmp3 = 0.0; - tmp3 += m_A7 * V[4]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[4]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// tp1985 -static void nl_gcr_5ca1779d1825c4c9_26_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// pongf +static void nl_gcr_81ae080c83dcf6a4_35_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1]; - m_A1 = m_A1 + go[0]; - m_A2 = m_A2 + go[1]; - double RHS0 = Idr[0] + Idr[1]; - m_A3 = gt[6] + gt[7] + gt[8]; - m_A4 = m_A4 + go[6]; - double RHS1 = Idr[6] + Idr[7] + Idr[8] - go[7] * *cnV[7] - go[8] * *cnV[8]; - m_A5 = gt[12] + gt[13] + gt[14]; - m_A6 = m_A6 + go[12]; - double RHS2 = Idr[12] + Idr[13] + Idr[14] - go[13] * *cnV[13] - go[14] * *cnV[14]; - m_A7 = gt[18] + gt[19]; - m_A8 = m_A8 + go[18]; - double RHS3 = Idr[18] + Idr[19] - go[19] * *cnV[19]; - m_A10 = gt[24] + gt[25] + gt[26] + gt[27]; - m_A11 = m_A11 + go[24]; - m_A9 = m_A9 + go[25]; - double RHS4 = Idr[24] + Idr[25] + Idr[26] + Idr[27] - go[26] * *cnV[26] - go[27] * *cnV[27]; - m_A14 = gt[30] + gt[31]; - m_A13 = m_A13 + go[30]; - m_A15 = m_A15 + go[31]; - double RHS5 = Idr[30] + Idr[31]; - m_A19 = gt[36] + gt[37] + gt[38] + gt[39]; - m_A17 = m_A17 + go[36]; - m_A16 = m_A16 + go[37]; - m_A18 = m_A18 + go[38]; - m_A20 = m_A20 + go[39]; - double RHS6 = Idr[36] + Idr[37] + Idr[38] + Idr[39]; - m_A25 = gt[42] + gt[43] + gt[44] + gt[45] + gt[46]; - m_A23 = m_A23 + go[42]; - m_A24 = m_A24 + go[43]; - m_A21 = m_A21 + go[44]; - double RHS7 = Idr[42] + Idr[43] + Idr[44] + Idr[45] + Idr[46] - go[45] * *cnV[45] - go[46] * *cnV[46]; -const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A9; - m_A10 += m_A1 * f0_4; - m_A12 += m_A2 * f0_4; + 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); + 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]; + double RHS2 = Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + 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_A6 += gt[15]; + m_A9 += go[11]; + m_A7 += go[12]; + m_A7 += go[13]; + m_A7 += go[14]; + m_A8 += go[15]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + m_A11 += gt[16]; + m_A11 += gt[17]; + m_A11 += gt[18]; + m_A11 += gt[19]; + m_A11 += gt[20]; + m_A11 += gt[21]; + m_A11 += gt[22]; + m_A13 += go[16]; + m_A12 += go[17]; + m_A10 += go[18]; + double RHS4 = Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 += Idr[22]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + RHS4 -= go[22] * *cnV[22]; + m_A15 += gt[23]; + m_A15 += gt[24]; + m_A15 += gt[25]; + m_A15 += gt[26]; + m_A15 += gt[27]; + m_A17 += go[23]; + m_A14 += go[24]; + m_A14 += go[25]; + m_A14 += go[26]; + double RHS5 = Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 += Idr[27]; + RHS5 -= go[27] * *cnV[27]; + m_A22 += gt[28]; + m_A22 += gt[29]; + m_A22 += gt[30]; + m_A22 += gt[31]; + m_A19 += go[28]; + m_A20 += go[29]; + m_A18 += go[30]; + double RHS6 = Idr[28]; + RHS6 += Idr[29]; + RHS6 += Idr[30]; + RHS6 += Idr[31]; + RHS6 -= go[31] * *cnV[31]; + m_A28 += gt[32]; + m_A28 += gt[33]; + m_A28 += gt[34]; + m_A29 += go[32]; + m_A25 += go[33]; + m_A26 += go[34]; + double RHS7 = Idr[32]; + RHS7 += Idr[33]; + RHS7 += Idr[34]; + m_A34 += gt[35]; + m_A34 += gt[36]; + m_A34 += gt[37]; + m_A31 += go[35]; + m_A30 += go[36]; + m_A33 += go[37]; + double RHS8 = Idr[35]; + RHS8 += Idr[36]; + RHS8 += Idr[37]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A10; + m_A11 += m_A1 * f0_4; RHS4 += f0_4 * RHS0; - const double f0_7 = -f0 * m_A21; - m_A22 += m_A1 * f0_7; - m_A25 += m_A2 * f0_7; - RHS7 += f0_7 * RHS0; -const double f1 = 1.0 / m_A3; - const double f1_6 = -f1 * m_A16; - m_A19 += m_A4 * f1_6; + const double f1 = 1.0 / m_A2; + const double f1_6 = -f1 * m_A18; + m_A22 += m_A3 * f1_6; RHS6 += f1_6 * RHS1; -const double f2 = 1.0 / m_A5; - const double f2_6 = -f2 * m_A17; - m_A19 += m_A6 * f2_6; - RHS6 += f2_6 * RHS2; -const double f3 = 1.0 / m_A7; - const double f3_5 = -f3 * m_A13; - m_A14 += m_A8 * f3_5; + const double f2 = 1.0 / m_A4; + const double f2_7 = -f2 * m_A25; + m_A28 += m_A5 * f2_7; + RHS7 += f2_7 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_5 = -f3 * m_A14; + m_A15 += m_A7 * f3_5; + m_A16 += m_A8 * f3_5; + m_A17 += m_A9 * f3_5; RHS5 += f3_5 * RHS3; -const double f4 = 1.0 / m_A10; - const double f4_6 = -f4 * m_A18; - m_A19 += m_A11 * f4_6; - m_A20 += m_A12 * f4_6; + const double f3_6 = -f3 * m_A19; + m_A21 += m_A7 * f3_6; + m_A22 += m_A8 * f3_6; + m_A24 += m_A9 * f3_6; + RHS6 += f3_6 * RHS3; + const double f3_8 = -f3 * m_A30; + m_A31 += m_A7 * f3_8; + m_A32 += m_A8 * f3_8; + m_A34 += m_A9 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_6 = -f4 * m_A20; + m_A22 += m_A12 * f4_6; + m_A23 += m_A13 * f4_6; RHS6 += f4_6 * RHS4; - const double f4_7 = -f4 * m_A22; - m_A24 += m_A11 * f4_7; - m_A25 += m_A12 * f4_7; + const double f4_7 = -f4 * m_A26; + m_A27 += m_A12 * f4_7; + m_A28 += m_A13 * f4_7; RHS7 += f4_7 * RHS4; -const double f5 = 1.0 / m_A14; - const double f5_7 = -f5 * m_A23; - m_A25 += m_A15 * f5_7; - RHS7 += f5_7 * RHS5; -const double f6 = 1.0 / m_A19; - const double f6_7 = -f6 * m_A24; - m_A25 += m_A20 * f6_7; + const double f5 = 1.0 / m_A15; + const double f5_6 = -f5 * m_A21; + m_A22 += m_A16 * f5_6; + m_A24 += m_A17 * f5_6; + RHS6 += f5_6 * RHS5; + const double f5_8 = -f5 * m_A31; + m_A32 += m_A16 * f5_8; + m_A34 += m_A17 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A22; + const double f6_7 = -f6 * m_A27; + m_A28 += m_A23 * f6_7; + m_A29 += m_A24 * f6_7; RHS7 += f6_7 * RHS6; - V[7] = RHS7 / m_A25; + const double f6_8 = -f6 * m_A32; + m_A33 += m_A23 * f6_8; + m_A34 += m_A24 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A28; + const double f7_8 = -f7 * m_A33; + m_A34 += m_A29 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A34; + double tmp7 = 0.0; + tmp7 += m_A29 * V[8]; + V[7] = (RHS7 - tmp7) / m_A28; double tmp6 = 0.0; - tmp6 += m_A20 * V[7]; - V[6] = (RHS6 - tmp6) / m_A19; + tmp6 += m_A23 * V[7]; + tmp6 += m_A24 * V[8]; + V[6] = (RHS6 - tmp6) / m_A22; double tmp5 = 0.0; - tmp5 += m_A15 * V[7]; - V[5] = (RHS5 - tmp5) / m_A14; + tmp5 += m_A16 * V[6]; + tmp5 += m_A17 * V[8]; + V[5] = (RHS5 - tmp5) / m_A15; double tmp4 = 0.0; - tmp4 += m_A11 * V[6]; - tmp4 += m_A12 * V[7]; - V[4] = (RHS4 - tmp4) / m_A10; + tmp4 += m_A12 * V[6]; + tmp4 += m_A13 * V[7]; + V[4] = (RHS4 - tmp4) / m_A11; double tmp3 = 0.0; - tmp3 += m_A8 * V[5]; - V[3] = (RHS3 - tmp3) / m_A7; - double tmp2 = 0.0; - tmp2 += m_A6 * V[6]; - V[2] = (RHS2 - tmp2) / m_A5; - double tmp1 = 0.0; - tmp1 += m_A4 * V[6]; - V[1] = (RHS1 - tmp1) / m_A3; - double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; - tmp0 += m_A2 * V[7]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// tp1985 -static void nl_gcr_6148fa421800febb_10_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[4] + gt[5] + gt[6]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] + Idr[6] - go[5] * *cnV[5] - go[6] * *cnV[6]; - m_A5 = gt[8] + gt[9]; - m_A6 = m_A6 + go[8]; - m_A4 = m_A4 + go[9]; - double RHS2 = Idr[8] + Idr[9]; - m_A9 = gt[12] + gt[13]; - m_A7 = m_A7 + go[12]; - m_A8 = m_A8 + go[13]; - double RHS3 = Idr[12] + Idr[13]; -const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A5 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A7; - m_A9 += m_A3 * f1_3; - RHS3 += f1_3 * RHS1; -const double f2 = 1.0 / m_A5; - const double f2_3 = -f2 * m_A8; - m_A9 += m_A6 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A9; + tmp3 += m_A7 * V[5]; + tmp3 += m_A8 * V[6]; + tmp3 += m_A9 * V[8]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A6 * V[3]; - V[2] = (RHS2 - tmp2) / m_A5; + tmp2 += m_A5 * V[7]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; + tmp1 += m_A3 * V[6]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[4]; V[0] = (RHS0 - tmp0) / m_A0; } // tp1985 -static void nl_gcr_6480c7a1d69e9131_7_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_83fbe835263b28d3_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[4] + gt[5] + gt[6]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] + Idr[6] - go[5] * *cnV[5] - go[6] * *cnV[6]; - m_A6 = gt[8] + gt[9] + gt[10]; - m_A5 = m_A5 + go[8]; - m_A4 = m_A4 + go[9]; - double RHS2 = Idr[8] + Idr[9] + Idr[10] - go[10] * *cnV[10]; -const double f0 = 1.0 / m_A0; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A5 += go[6]; + m_A4 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[8] * *cnV[8]; + const double f0 = 1.0 / m_A0; const double f0_2 = -f0 * m_A4; m_A6 += m_A1 * f0_2; RHS2 += f0_2 * RHS0; -const double f1 = 1.0 / m_A2; + const double f1 = 1.0 / m_A2; const double f1_2 = -f1 * m_A5; m_A6 += m_A3 * f1_2; RHS2 += f1_2 * RHS1; @@ -4430,1640 +8371,1592 @@ const double f1 = 1.0 / m_A2; V[0] = (RHS0 - tmp0) / m_A0; } -// 280zzzap -static void nl_gcr_66a07f8f9d33245b_57_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// pongf +static void nl_gcr_930be1d2f1a52598_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[8] + gt[9]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] - go[9] * *cnV[9]; - m_A4 = gt[16] + gt[17] + gt[18] + gt[19] + gt[20] + gt[21] + gt[22]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] + Idr[19] + Idr[20] + Idr[21] + Idr[22] - go[17] * *cnV[17] - go[18] * *cnV[18] - go[19] * *cnV[19] - go[20] * *cnV[20] - go[21] * *cnV[21] - go[22] * *cnV[22]; - m_A6 = gt[24] + gt[25] + gt[26]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] - go[25] * *cnV[25] - go[26] * *cnV[26]; - m_A8 = gt[32] + gt[33] + gt[34] + gt[35] + gt[36] + gt[37] + gt[38]; - m_A9 = m_A9 + go[32]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] + Idr[35] + Idr[36] + Idr[37] + Idr[38] - go[33] * *cnV[33] - go[34] * *cnV[34] - go[35] * *cnV[35] - go[36] * *cnV[36] - go[37] * *cnV[37] - go[38] * *cnV[38]; - m_A10 = gt[40] + gt[41]; - m_A11 = m_A11 + go[40]; - double RHS5 = Idr[40] + Idr[41] - go[41] * *cnV[41]; - m_A12 = gt[48] + gt[49]; - m_A14 = m_A14 + go[48]; - m_A13 = m_A13 + go[49]; - double RHS6 = Idr[48] + Idr[49]; - m_A15 = gt[56] + gt[57]; - m_A16 = m_A16 + go[56]; - double RHS7 = Idr[56] + Idr[57] - go[57] * *cnV[57]; - m_A17 = gt[64] + gt[65]; - m_A18 = m_A18 + go[64]; - double RHS8 = Idr[64] + Idr[65] - go[65] * *cnV[65]; - m_A20 = gt[72] + gt[73] + gt[74] + gt[75]; - m_A19 = m_A19 + go[72]; - double RHS9 = Idr[72] + Idr[73] + Idr[74] + Idr[75] - go[73] * *cnV[73] - go[74] * *cnV[74] - go[75] * *cnV[75]; - m_A24 = gt[80] + gt[81]; - m_A23 = m_A23 + go[80]; - m_A22 = m_A22 + go[81]; - double RHS10 = Idr[80] + Idr[81]; - m_A27 = gt[88] + gt[89] + gt[90] + gt[91]; - m_A26 = m_A26 + go[88]; - m_A28 = m_A28 + go[89]; - double RHS11 = Idr[88] + Idr[89] + Idr[90] + Idr[91] - go[90] * *cnV[90] - go[91] * *cnV[91]; - m_A31 = gt[96] + gt[97] + gt[98] + gt[99] + gt[100] + gt[101]; - m_A29 = m_A29 + go[96]; - m_A33 = m_A33 + go[97]; - m_A32 = m_A32 + go[98]; - double RHS12 = Idr[96] + Idr[97] + Idr[98] + Idr[99] + Idr[100] + Idr[101] - go[99] * *cnV[99] - go[100] * *cnV[100] - go[101] * *cnV[101]; - m_A36 = gt[104] + gt[105]; - m_A34 = m_A34 + go[104]; - double RHS13 = Idr[104] + Idr[105] - go[105] * *cnV[105]; - m_A39 = gt[112] + gt[113] + gt[114]; - m_A38 = m_A38 + go[112]; - m_A37 = m_A37 + go[113]; - double RHS14 = Idr[112] + Idr[113] + Idr[114] - go[114] * *cnV[114]; - m_A41 = gt[120] + gt[121] + gt[122] + gt[123]; - m_A40 = m_A40 + go[120]; - m_A42 = m_A42 + go[121]; - double RHS15 = Idr[120] + Idr[121] + Idr[122] + Idr[123] - go[122] * *cnV[122] - go[123] * *cnV[123]; - m_A49 = gt[128] + gt[129] + gt[130] + gt[131] + gt[132]; - m_A44 = m_A44 + go[128]; - m_A47 = m_A47 + go[129]; - m_A46 = m_A46 + go[130]; - m_A43 = m_A43 + go[131]; - m_A45 = m_A45 + go[132]; - double RHS16 = Idr[128] + Idr[129] + Idr[130] + Idr[131] + Idr[132]; - m_A56 = gt[136] + gt[137] + gt[138] + gt[139]; - m_A54 = m_A54 + go[136]; - m_A53 = m_A53 + go[137]; - m_A51 = m_A51 + go[138]; - m_A52 = m_A52 + go[139]; - double RHS17 = Idr[136] + Idr[137] + Idr[138] + Idr[139]; -const double f0 = 1.0 / m_A0; - const double f0_11 = -f0 * m_A26; - m_A28 += m_A1 * f0_11; - RHS11 += f0_11 * RHS0; - const double f0_16 = -f0 * m_A43; - m_A49 += m_A1 * f0_16; - RHS16 += f0_16 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_16 = -f1 * m_A44; - m_A49 += m_A3 * f1_16; - RHS16 += f1_16 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_12 = -f2 * m_A29; - m_A30 += m_A5 * f2_12; - RHS12 += f2_12 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_15 = -f3 * m_A40; - m_A42 += m_A7 * f3_15; - RHS15 += f3_15 * RHS3; - const double f3_17 = -f3 * m_A51; - m_A56 += m_A7 * f3_17; - RHS17 += f3_17 * RHS3; -const double f4 = 1.0 / m_A8; - const double f4_9 = -f4 * m_A19; - m_A21 += m_A9 * f4_9; - RHS9 += f4_9 * RHS4; -const double f5 = 1.0 / m_A10; - const double f5_10 = -f5 * m_A22; - m_A24 += m_A11 * f5_10; - RHS10 += f5_10 * RHS5; - const double f5_16 = -f5 * m_A45; - m_A46 += m_A11 * f5_16; - RHS16 += f5_16 * RHS5; -const double f6 = 1.0 / m_A12; - const double f6_10 = -f6 * m_A23; - m_A24 += m_A13 * f6_10; - m_A25 += m_A14 * f6_10; - RHS10 += f6_10 * RHS6; - const double f6_13 = -f6 * m_A34; - m_A35 += m_A13 * f6_13; - m_A36 += m_A14 * f6_13; - RHS13 += f6_13 * RHS6; -const double f7 = 1.0 / m_A15; - const double f7_14 = -f7 * m_A37; - m_A39 += m_A16 * f7_14; - RHS14 += f7_14 * RHS7; - const double f7_17 = -f7 * m_A52; - m_A54 += m_A16 * f7_17; - RHS17 += f7_17 * RHS7; -const double f8 = 1.0 / m_A17; - const double f8_14 = -f8 * m_A38; - m_A39 += m_A18 * f8_14; - RHS14 += f8_14 * RHS8; -const double f10 = 1.0 / m_A24; - const double f10_13 = -f10 * m_A35; - m_A36 += m_A25 * f10_13; - RHS13 += f10_13 * RHS10; - const double f10_16 = -f10 * m_A46; - m_A48 += m_A25 * f10_16; - RHS16 += f10_16 * RHS10; -const double f11 = 1.0 / m_A27; - const double f11_12 = -f11 * m_A30; - m_A32 += m_A28 * f11_12; - RHS12 += f11_12 * RHS11; -const double f12 = 1.0 / m_A31; - const double f12_16 = -f12 * m_A47; - m_A49 += m_A32 * f12_16; - m_A50 += m_A33 * f12_16; - RHS16 += f12_16 * RHS12; - const double f12_17 = -f12 * m_A53; - m_A55 += m_A32 * f12_17; - m_A56 += m_A33 * f12_17; - RHS17 += f12_17 * RHS12; -const double f13 = 1.0 / m_A36; - const double f13_16 = -f13 * m_A48; - RHS16 += f13_16 * RHS13; -const double f14 = 1.0 / m_A39; - const double f14_17 = -f14 * m_A54; - RHS17 += f14_17 * RHS14; -const double f16 = 1.0 / m_A49; - const double f16_17 = -f16 * m_A55; - m_A56 += m_A50 * f16_17; - RHS17 += f16_17 * RHS16; - V[17] = RHS17 / m_A56; - double tmp16 = 0.0; - tmp16 += m_A50 * V[17]; - V[16] = (RHS16 - tmp16) / m_A49; - double tmp15 = 0.0; - tmp15 += m_A42 * V[17]; - V[15] = (RHS15 - tmp15) / m_A41; - double tmp14 = 0.0; - V[14] = (RHS14 - tmp14) / m_A39; - double tmp13 = 0.0; - V[13] = (RHS13 - tmp13) / m_A36; - double tmp12 = 0.0; - tmp12 += m_A32 * V[16]; - tmp12 += m_A33 * V[17]; - V[12] = (RHS12 - tmp12) / m_A31; - double tmp11 = 0.0; - tmp11 += m_A28 * V[16]; - V[11] = (RHS11 - tmp11) / m_A27; - double tmp10 = 0.0; - tmp10 += m_A25 * V[13]; - V[10] = (RHS10 - tmp10) / m_A24; - double tmp9 = 0.0; - tmp9 += m_A21 * V[15]; - V[9] = (RHS9 - tmp9) / m_A20; - double tmp8 = 0.0; - tmp8 += m_A18 * V[14]; - V[8] = (RHS8 - tmp8) / m_A17; - double tmp7 = 0.0; - tmp7 += m_A16 * V[14]; - V[7] = (RHS7 - tmp7) / m_A15; - double tmp6 = 0.0; - tmp6 += m_A13 * V[10]; - tmp6 += m_A14 * V[13]; - V[6] = (RHS6 - tmp6) / m_A12; - double tmp5 = 0.0; - tmp5 += m_A11 * V[10]; - V[5] = (RHS5 - tmp5) / m_A10; - double tmp4 = 0.0; - tmp4 += m_A9 * V[15]; - V[4] = (RHS4 - tmp4) / m_A8; - double tmp3 = 0.0; - tmp3 += m_A7 * V[17]; - V[3] = (RHS3 - tmp3) / m_A6; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A9 += gt[11]; + m_A8 += go[9]; + m_A7 += go[10]; + m_A6 += go[11]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A6; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A5 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; double tmp2 = 0.0; - tmp2 += m_A5 * V[11]; + tmp2 += m_A5 * V[3]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[16]; + tmp1 += m_A3 * V[3]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[16]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } -// stuntcyc -static void nl_gcr_6c599fc01f5b084c_20_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// kidniki +static void nl_gcr_9701e2657a7f4ca3_37_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3] + gt[4]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] + Idr[4] - go[1] * *cnV[1] - go[2] * *cnV[2] - go[3] * *cnV[3] - go[4] * *cnV[4]; - m_A2 = gt[8] + gt[9] + gt[10]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A4 = gt[16] + gt[17] + gt[18] + gt[19] + gt[20]; - m_A6 = m_A6 + go[16]; - m_A5 = m_A5 + go[17]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] + Idr[19] + Idr[20] - go[18] * *cnV[18] - go[19] * *cnV[19] - go[20] * *cnV[20]; - m_A8 = gt[24] + gt[25] + gt[26] + gt[27] + gt[28] + gt[29] + gt[30]; - m_A10 = m_A10 + go[24]; - m_A9 = m_A9 + go[25]; - m_A7 = m_A7 + go[26]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] + Idr[27] + Idr[28] + Idr[29] + Idr[30] - go[27] * *cnV[27] - go[28] * *cnV[28] - go[29] * *cnV[29] - go[30] * *cnV[30]; - m_A14 = gt[32] + gt[33] + gt[34] + gt[35]; - m_A12 = m_A12 + go[32]; - m_A11 = m_A11 + go[33]; - m_A13 = m_A13 + go[34]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] + Idr[35] - go[35] * *cnV[35]; - m_A19 = gt[40] + gt[41] + gt[42]; - m_A16 = m_A16 + go[40]; - m_A17 = m_A17 + go[41]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] - go[42] * *cnV[42]; -const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A7; - m_A8 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A11; - m_A14 += m_A3 * f1_4; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A0 += gt[3]; + m_A2 += go[0]; + m_A2 += go[1]; + m_A1 += go[2]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 += Idr[3]; + RHS0 -= go[3] * *cnV[3]; + m_A3 += gt[4]; + m_A3 += gt[5]; + m_A3 += gt[6]; + m_A5 += go[4]; + m_A4 += go[5]; + double RHS1 = Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A7 += 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_A8 += gt[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A11 += go[11]; + m_A9 += go[12]; + m_A10 += go[13]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[14] * *cnV[14]; + m_A14 += gt[15]; + m_A14 += gt[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A14 += gt[21]; + m_A13 += go[15]; + m_A16 += go[16]; + m_A16 += go[17]; + m_A16 += go[18]; + m_A12 += go[19]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + m_A20 += gt[22]; + m_A20 += gt[23]; + m_A20 += gt[24]; + m_A17 += go[22]; + m_A18 += go[23]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 -= go[24] * *cnV[24]; + m_A24 += gt[25]; + m_A24 += gt[26]; + m_A24 += gt[27]; + m_A25 += go[25]; + m_A23 += go[26]; + double RHS6 = Idr[25]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 -= go[27] * *cnV[27]; + m_A30 += gt[28]; + m_A30 += gt[29]; + m_A30 += gt[30]; + m_A30 += gt[31]; + m_A30 += gt[32]; + m_A30 += gt[33]; + m_A27 += go[28]; + m_A28 += go[29]; + m_A28 += go[30]; + m_A28 += go[31]; + m_A26 += go[32]; + m_A26 += go[33]; + double RHS7 = Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + RHS7 += Idr[31]; + RHS7 += Idr[32]; + RHS7 += Idr[33]; + m_A36 += gt[34]; + m_A36 += gt[35]; + m_A34 += go[34]; + m_A32 += go[35]; + double RHS8 = Idr[34]; + RHS8 += Idr[35]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A12; + m_A14 += m_A1 * f0_4; + m_A16 += m_A2 * f0_4; + RHS4 += f0_4 * RHS0; + const double f0_7 = -f0 * m_A26; + m_A28 += m_A1 * f0_7; + m_A30 += m_A2 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_4 = -f1 * m_A13; + m_A14 += m_A4 * f1_4; + m_A15 += m_A5 * f1_4; RHS4 += f1_4 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A12; - m_A14 += m_A5 * f2_4; - m_A15 += m_A6 * f2_4; - RHS4 += f2_4 * RHS2; - const double f2_5 = -f2 * m_A16; - m_A18 += m_A5 * f2_5; - m_A19 += m_A6 * f2_5; - RHS5 += f2_5 * RHS2; -const double f3 = 1.0 / m_A8; - const double f3_4 = -f3 * m_A13; - m_A14 += m_A9 * f3_4; - m_A15 += m_A10 * f3_4; - RHS4 += f3_4 * RHS3; - const double f3_5 = -f3 * m_A17; - m_A18 += m_A9 * f3_5; - m_A19 += m_A10 * f3_5; + const double f1_5 = -f1 * m_A17; + m_A19 += m_A4 * f1_5; + m_A20 += m_A5 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_6 = -f2 * m_A23; + m_A24 += m_A7 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_5 = -f3 * m_A18; + m_A20 += m_A9 * f3_5; + m_A21 += m_A10 * f3_5; + m_A22 += m_A11 * f3_5; RHS5 += f3_5 * RHS3; -const double f4 = 1.0 / m_A14; - const double f4_5 = -f4 * m_A18; - m_A19 += m_A15 * f4_5; + const double f3_7 = -f3 * m_A27; + m_A29 += m_A9 * f3_7; + m_A30 += m_A10 * f3_7; + m_A31 += m_A11 * f3_7; + RHS7 += f3_7 * RHS3; + const double f3_8 = -f3 * m_A32; + m_A33 += m_A9 * f3_8; + m_A35 += m_A10 * f3_8; + m_A36 += m_A11 * f3_8; + RHS8 += f3_8 * RHS3; + const double f4 = 1.0 / m_A14; + const double f4_5 = -f4 * m_A19; + m_A20 += m_A15 * f4_5; + m_A21 += m_A16 * f4_5; RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A19; + const double f4_7 = -f4 * m_A28; + m_A29 += m_A15 * f4_7; + m_A30 += m_A16 * f4_7; + RHS7 += f4_7 * RHS4; + const double f5 = 1.0 / m_A20; + const double f5_7 = -f5 * m_A29; + m_A30 += m_A21 * f5_7; + m_A31 += m_A22 * f5_7; + RHS7 += f5_7 * RHS5; + const double f5_8 = -f5 * m_A33; + m_A35 += m_A21 * f5_8; + m_A36 += m_A22 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A24; + const double f6_8 = -f6 * m_A34; + m_A36 += m_A25 * f6_8; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A30; + const double f7_8 = -f7 * m_A35; + m_A36 += m_A31 * f7_8; + RHS8 += f7_8 * RHS7; + V[8] = RHS8 / m_A36; + double tmp7 = 0.0; + tmp7 += m_A31 * V[8]; + V[7] = (RHS7 - tmp7) / m_A30; + double tmp6 = 0.0; + tmp6 += m_A25 * V[8]; + V[6] = (RHS6 - tmp6) / m_A24; + double tmp5 = 0.0; + tmp5 += m_A21 * V[7]; + tmp5 += m_A22 * V[8]; + V[5] = (RHS5 - tmp5) / m_A20; double tmp4 = 0.0; tmp4 += m_A15 * V[5]; + tmp4 += m_A16 * V[7]; V[4] = (RHS4 - tmp4) / m_A14; double tmp3 = 0.0; - tmp3 += m_A9 * V[4]; - tmp3 += m_A10 * V[5]; + tmp3 += m_A9 * V[5]; + tmp3 += m_A10 * V[7]; + tmp3 += m_A11 * V[8]; V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A5 * V[4]; - tmp2 += m_A6 * V[5]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A7 * V[6]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; - V[1] = (RHS1 - tmp1) / m_A2; + tmp1 += m_A4 * V[4]; + tmp1 += m_A5 * V[5]; + V[1] = (RHS1 - tmp1) / m_A3; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[4]; + tmp0 += m_A2 * V[7]; V[0] = (RHS0 - tmp0) / m_A0; } -// breakout -static void nl_gcr_6d40bbc695987ef5_13_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// cocoloco +static void nl_gcr_97d556b480d72ab7_16_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[6] + gt[7] + gt[8]; - m_A3 = m_A3 + go[6]; - double RHS1 = Idr[6] + Idr[7] + Idr[8] - go[7] * *cnV[7] - go[8] * *cnV[8]; - m_A4 = gt[12] + gt[13] + gt[14]; - m_A5 = m_A5 + go[12]; - double RHS2 = Idr[12] + Idr[13] + Idr[14] - go[13] * *cnV[13] - go[14] * *cnV[14]; - m_A6 = gt[18] + gt[19] + gt[20]; - m_A7 = m_A7 + go[18]; - double RHS3 = Idr[18] + Idr[19] + Idr[20] - go[19] * *cnV[19] - go[20] * *cnV[20]; - m_A12 = gt[24] + gt[25] + gt[26] + gt[27] + gt[28] + gt[29]; - m_A11 = m_A11 + go[24]; - m_A10 = m_A10 + go[25]; - m_A9 = m_A9 + go[26]; - m_A8 = m_A8 + go[27]; - double RHS4 = Idr[24] + Idr[25] + Idr[26] + Idr[27] + Idr[28] + Idr[29] - go[28] * *cnV[28] - go[29] * *cnV[29]; -const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A8; - m_A12 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_4 = -f1 * m_A9; - m_A12 += m_A3 * f1_4; - RHS4 += f1_4 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_4 = -f2 * m_A10; - m_A12 += m_A5 * f2_4; + 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); + 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_A9 += gt[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A8 += go[8]; + m_A10 += go[9]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + RHS4 += Idr[10]; + RHS4 -= go[10] * *cnV[10]; + m_A15 += gt[11]; + m_A15 += gt[12]; + m_A15 += gt[13]; + m_A15 += gt[14]; + m_A14 += go[11]; + m_A13 += go[12]; + m_A12 += go[13]; + m_A11 += go[14]; + double RHS5 = Idr[11]; + RHS5 += Idr[12]; + RHS5 += Idr[13]; + RHS5 += Idr[14]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A11; + m_A15 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_5 = -f1 * m_A12; + m_A15 += m_A3 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A8; + m_A9 += m_A5 * f2_4; RHS4 += f2_4 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_4 = -f3 * m_A11; - m_A12 += m_A7 * f3_4; - RHS4 += f3_4 * RHS3; - V[4] = RHS4 / m_A12; + const double f3 = 1.0 / m_A6; + const double f3_5 = -f3 * m_A13; + m_A15 += m_A7 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_5 = -f4 * m_A14; + m_A15 += m_A10 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A15; + double tmp4 = 0.0; + tmp4 += m_A10 * V[5]; + V[4] = (RHS4 - tmp4) / m_A9; double tmp3 = 0.0; - tmp3 += m_A7 * V[4]; + tmp3 += m_A7 * V[5]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; tmp2 += m_A5 * V[4]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[4]; + tmp1 += m_A3 * V[5]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; + tmp0 += m_A1 * V[5]; V[0] = (RHS0 - tmp0) / m_A0; } -// pongf -static void nl_gcr_70e1061a9deb37a4_7_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// zac1b11142 +static void nl_gcr_988a81edfbe45655_30_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[4] + gt[5]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] - go[5] * *cnV[5]; - m_A6 = gt[8] + gt[9] + gt[10]; - m_A5 = m_A5 + go[8]; - m_A4 = m_A4 + go[9]; - double RHS2 = Idr[8] + Idr[9] + Idr[10] - go[10] * *cnV[10]; -const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; + 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); + 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_A3 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A5 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A7 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + m_A8 += gt[15]; + m_A8 += gt[16]; + m_A8 += gt[17]; + m_A9 += go[15]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 -= go[16] * *cnV[16]; + RHS4 -= go[17] * *cnV[17]; + m_A11 += gt[18]; + m_A11 += gt[19]; + m_A11 += gt[20]; + m_A11 += gt[21]; + m_A11 += gt[22]; + m_A11 += gt[23]; + m_A10 += go[18]; + m_A12 += go[19]; + m_A12 += go[20]; + double RHS5 = Idr[18]; + RHS5 += Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + RHS5 -= go[23] * *cnV[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A15 += go[24]; + m_A14 += go[25]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + m_A18 += gt[26]; + m_A18 += gt[27]; + m_A19 += go[26]; + m_A17 += go[27]; + double RHS7 = Idr[26]; + RHS7 += Idr[27]; + m_A25 += gt[28]; + m_A25 += gt[29]; + m_A25 += gt[30]; + m_A25 += gt[31]; + m_A25 += gt[32]; + m_A25 += gt[33]; + m_A23 += go[28]; + m_A22 += go[29]; + m_A22 += go[30]; + m_A24 += go[31]; + m_A21 += go[32]; + m_A20 += go[33]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + RHS8 += Idr[32]; + RHS8 += Idr[33]; + m_A29 += gt[34]; + m_A29 += gt[35]; + m_A29 += gt[36]; + m_A29 += gt[37]; + m_A28 += go[34]; + m_A27 += go[35]; + double RHS9 = Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 += Idr[37]; + RHS9 -= go[36] * *cnV[36]; + RHS9 -= go[37] * *cnV[37]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A10; + m_A13 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_7 = -f1 * m_A17; + m_A18 += m_A3 * f1_7; + RHS7 += f1_7 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_6 = -f2 * m_A14; + m_A16 += m_A5 * f2_6; + RHS6 += f2_6 * RHS2; + const double f2_8 = -f2 * m_A20; + m_A23 += m_A5 * f2_8; + RHS8 += f2_8 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_6 = -f3 * m_A15; + m_A16 += m_A7 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_8 = -f4 * m_A21; + m_A25 += m_A9 * f4_8; + RHS8 += f4_8 * RHS4; + const double f4_9 = -f4 * m_A27; + m_A28 += m_A9 * f4_9; + RHS9 += f4_9 * RHS4; + const double f5 = 1.0 / m_A11; + const double f5_8 = -f5 * m_A22; + m_A25 += m_A12 * f5_8; + m_A26 += m_A13 * f5_8; + RHS8 += f5_8 * RHS5; + const double f6 = 1.0 / m_A16; + const double f6_8 = -f6 * m_A23; + RHS8 += f6_8 * RHS6; + const double f7 = 1.0 / m_A18; + const double f7_8 = -f7 * m_A24; + m_A25 += m_A19 * f7_8; + RHS8 += f7_8 * RHS7; + const double f8 = 1.0 / m_A25; + const double f8_9 = -f8 * m_A28; + m_A29 += m_A26 * f8_9; + RHS9 += f8_9 * RHS8; + V[9] = RHS9 / m_A29; + double tmp8 = 0.0; + tmp8 += m_A26 * V[9]; + V[8] = (RHS8 - tmp8) / m_A25; + double tmp7 = 0.0; + tmp7 += m_A19 * V[8]; + V[7] = (RHS7 - tmp7) / m_A18; + double tmp6 = 0.0; + V[6] = (RHS6 - tmp6) / m_A16; + double tmp5 = 0.0; + tmp5 += m_A12 * V[8]; + tmp5 += m_A13 * V[9]; + V[5] = (RHS5 - tmp5) / m_A11; + double tmp4 = 0.0; + tmp4 += m_A9 * V[8]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[6]; + V[3] = (RHS3 - tmp3) / m_A6; + double tmp2 = 0.0; + tmp2 += m_A5 * V[6]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; + tmp1 += m_A3 * V[7]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[9]; V[0] = (RHS0 - tmp0) / m_A0; } -// breakout -static void nl_gcr_7421995adbfda1ad_10_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// tp1985 +static void nl_gcr_99e69c1880e516a7_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] - go[1] * *cnV[1] - go[2] * *cnV[2] - go[3] * *cnV[3]; - m_A2 = gt[4] + gt[5]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] - go[5] * *cnV[5]; - m_A4 = gt[8] + gt[9]; - m_A5 = m_A5 + go[8]; - double RHS2 = Idr[8] + Idr[9] - go[9] * *cnV[9]; - m_A9 = gt[12] + gt[13] + gt[14]; - m_A8 = m_A8 + go[12]; - m_A7 = m_A7 + go[13]; - m_A6 = m_A6 + go[14]; - double RHS3 = Idr[12] + Idr[13] + Idr[14]; -const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A6; - m_A9 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; -const double f1 = 1.0 / m_A2; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A6 += go[6]; + m_A4 += go[7]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + m_A9 += gt[8]; + m_A9 += gt[9]; + m_A7 += go[8]; + m_A8 += go[9]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A5 += m_A1 * f0_2; + RHS2 += f0_2 * RHS0; + const double f1 = 1.0 / m_A2; const double f1_3 = -f1 * m_A7; m_A9 += m_A3 * f1_3; RHS3 += f1_3 * RHS1; -const double f2 = 1.0 / m_A4; + const double f2 = 1.0 / m_A5; const double f2_3 = -f2 * m_A8; - m_A9 += m_A5 * f2_3; + m_A9 += m_A6 * f2_3; RHS3 += f2_3 * RHS2; V[3] = RHS3 / m_A9; double tmp2 = 0.0; - tmp2 += m_A5 * V[3]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A6 * V[3]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; tmp1 += m_A3 * V[3]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } -// zac1b11142 -static void nl_gcr_7572db25f250cf5a_71_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// tp1985 +static void nl_gcr_a1806410e32baeb_26_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3] + gt[4] + gt[5] + gt[6]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] + Idr[4] + Idr[5] + Idr[6] - go[1] * *cnV[1] - go[2] * *cnV[2] - go[3] * *cnV[3] - go[4] * *cnV[4] - go[5] * *cnV[5] - go[6] * *cnV[6]; - m_A2 = gt[8] + gt[9] + gt[10] + gt[11] + gt[12] + gt[13] + gt[14]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] + Idr[11] + Idr[12] + Idr[13] + Idr[14] - go[9] * *cnV[9] - go[10] * *cnV[10] - go[11] * *cnV[11] - go[12] * *cnV[12] - go[13] * *cnV[13] - go[14] * *cnV[14]; - m_A4 = gt[16] + gt[17] + gt[18]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] - go[17] * *cnV[17] - go[18] * *cnV[18]; - m_A6 = gt[24] + gt[25]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] - go[25] * *cnV[25]; - m_A8 = gt[32] + gt[33] + gt[34]; - m_A9 = m_A9 + go[32]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] - go[33] * *cnV[33] - go[34] * *cnV[34]; - m_A10 = gt[40] + gt[41]; - m_A11 = m_A11 + go[40]; - double RHS5 = Idr[40] + Idr[41] - go[41] * *cnV[41]; - m_A12 = gt[48] + gt[49] + gt[50]; - m_A13 = m_A13 + go[48]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] - go[49] * *cnV[49] - go[50] * *cnV[50]; - m_A14 = gt[56] + gt[57] + gt[58]; - m_A15 = m_A15 + go[56]; - double RHS7 = Idr[56] + Idr[57] + Idr[58] - go[57] * *cnV[57] - go[58] * *cnV[58]; - m_A17 = gt[64] + gt[65] + gt[66] + gt[67] + gt[68] + gt[69]; - m_A16 = m_A16 + go[64]; - m_A18 = m_A18 + go[65]; - m_A19 = m_A19 + go[66]; - m_A19 = m_A19 + go[67]; - double RHS8 = Idr[64] + Idr[65] + Idr[66] + Idr[67] + Idr[68] + Idr[69] - go[68] * *cnV[68] - go[69] * *cnV[69]; - m_A21 = gt[72] + gt[73] + gt[74]; - m_A22 = m_A22 + go[72]; - double RHS9 = Idr[72] + Idr[73] + Idr[74] - go[73] * *cnV[73] - go[74] * *cnV[74]; - m_A23 = gt[80] + gt[81] + gt[82]; - m_A25 = m_A25 + go[80]; - m_A24 = m_A24 + go[81]; - double RHS10 = Idr[80] + Idr[81] + Idr[82] - go[82] * *cnV[82]; - m_A27 = gt[88] + gt[89] + gt[90] + gt[91] + gt[92] + gt[93]; - m_A26 = m_A26 + go[88]; - m_A29 = m_A29 + go[89]; - m_A29 = m_A29 + go[90]; - double RHS11 = Idr[88] + Idr[89] + Idr[90] + Idr[91] + Idr[92] + Idr[93] - go[91] * *cnV[91] - go[92] * *cnV[92] - go[93] * *cnV[93]; - m_A31 = gt[96] + gt[97]; - m_A32 = m_A32 + go[96]; - m_A30 = m_A30 + go[97]; - double RHS12 = Idr[96] + Idr[97]; - m_A35 = gt[104] + gt[105]; - m_A34 = m_A34 + go[104]; - m_A33 = m_A33 + go[105]; - double RHS13 = Idr[104] + Idr[105]; - m_A38 = gt[112] + gt[113]; - m_A37 = m_A37 + go[112]; - m_A36 = m_A36 + go[113]; - double RHS14 = Idr[112] + Idr[113]; - m_A40 = gt[120] + gt[121] + gt[122] + gt[123]; - m_A41 = m_A41 + go[120]; - m_A39 = m_A39 + go[121]; - double RHS15 = Idr[120] + Idr[121] + Idr[122] + Idr[123] - go[122] * *cnV[122] - go[123] * *cnV[123]; - m_A44 = gt[128] + gt[129]; - m_A43 = m_A43 + go[128]; - m_A42 = m_A42 + go[129]; - double RHS16 = Idr[128] + Idr[129]; - m_A54 = gt[136] + gt[137] + gt[138] + gt[139] + gt[140] + gt[141]; - m_A52 = m_A52 + go[136]; - m_A50 = m_A50 + go[137]; - m_A50 = m_A50 + go[138]; - m_A51 = m_A51 + go[139]; - m_A49 = m_A49 + go[140]; - m_A48 = m_A48 + go[141]; - double RHS17 = Idr[136] + Idr[137] + Idr[138] + Idr[139] + Idr[140] + Idr[141]; - m_A65 = gt[144] + gt[145] + gt[146] + gt[147] + gt[148] + gt[149]; - m_A61 = m_A61 + go[144]; - m_A60 = m_A60 + go[145]; - m_A60 = m_A60 + go[146]; - m_A59 = m_A59 + go[147]; - m_A58 = m_A58 + go[148]; - m_A57 = m_A57 + go[149]; - double RHS18 = Idr[144] + Idr[145] + Idr[146] + Idr[147] + Idr[148] + Idr[149]; - m_A70 = gt[152] + gt[153] + gt[154] + gt[155]; - m_A68 = m_A68 + go[152]; - m_A67 = m_A67 + go[153]; - double RHS19 = Idr[152] + Idr[153] + Idr[154] + Idr[155] - go[154] * *cnV[154] - go[155] * *cnV[155]; -const double f0 = 1.0 / m_A0; - const double f0_8 = -f0 * m_A16; - m_A20 += m_A1 * f0_8; - RHS8 += f0_8 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_11 = -f1 * m_A26; - m_A28 += m_A3 * f1_11; - RHS11 += f1_11 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_12 = -f2 * m_A30; - m_A31 += m_A5 * f2_12; - RHS12 += f2_12 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_13 = -f3 * m_A33; - m_A35 += m_A7 * f3_13; - RHS13 += f3_13 * RHS3; - const double f3_17 = -f3 * m_A48; - m_A52 += m_A7 * f3_17; - RHS17 += f3_17 * RHS3; -const double f4 = 1.0 / m_A8; - const double f4_13 = -f4 * m_A34; - m_A35 += m_A9 * f4_13; - RHS13 += f4_13 * RHS4; -const double f5 = 1.0 / m_A10; - const double f5_14 = -f5 * m_A36; - m_A38 += m_A11 * f5_14; - RHS14 += f5_14 * RHS5; - const double f5_18 = -f5 * m_A57; - m_A61 += m_A11 * f5_18; - RHS18 += f5_18 * RHS5; -const double f6 = 1.0 / m_A12; - const double f6_14 = -f6 * m_A37; - m_A38 += m_A13 * f6_14; - RHS14 += f6_14 * RHS6; -const double f7 = 1.0 / m_A14; - const double f7_17 = -f7 * m_A49; - m_A54 += m_A15 * f7_17; - RHS17 += f7_17 * RHS7; - const double f7_19 = -f7 * m_A67; - m_A68 += m_A15 * f7_19; - RHS19 += f7_19 * RHS7; -const double f8 = 1.0 / m_A17; - const double f8_16 = -f8 * m_A42; - m_A44 += m_A18 * f8_16; - m_A45 += m_A19 * f8_16; - m_A47 += m_A20 * f8_16; - RHS16 += f8_16 * RHS8; - const double f8_17 = -f8 * m_A50; - m_A53 += m_A18 * f8_17; - m_A54 += m_A19 * f8_17; - m_A56 += m_A20 * f8_17; - RHS17 += f8_17 * RHS8; -const double f9 = 1.0 / m_A21; - const double f9_15 = -f9 * m_A39; - m_A41 += m_A22 * f9_15; - RHS15 += f9_15 * RHS9; - const double f9_18 = -f9 * m_A58; - m_A65 += m_A22 * f9_18; - RHS18 += f9_18 * RHS9; -const double f10 = 1.0 / m_A23; - const double f10_16 = -f10 * m_A43; - m_A44 += m_A24 * f10_16; - m_A46 += m_A25 * f10_16; - RHS16 += f10_16 * RHS10; - const double f10_18 = -f10 * m_A59; - m_A63 += m_A24 * f10_18; - m_A65 += m_A25 * f10_18; - RHS18 += f10_18 * RHS10; -const double f11 = 1.0 / m_A27; - const double f11_18 = -f11 * m_A60; - m_A62 += m_A28 * f11_18; - m_A65 += m_A29 * f11_18; - RHS18 += f11_18 * RHS11; -const double f12 = 1.0 / m_A31; - const double f12_17 = -f12 * m_A51; - m_A54 += m_A32 * f12_17; - RHS17 += f12_17 * RHS12; -const double f13 = 1.0 / m_A35; - const double f13_17 = -f13 * m_A52; - RHS17 += f13_17 * RHS13; -const double f14 = 1.0 / m_A38; - const double f14_18 = -f14 * m_A61; - RHS18 += f14_18 * RHS14; -const double f15 = 1.0 / m_A40; - const double f15_18 = -f15 * m_A62; - m_A65 += m_A41 * f15_18; - RHS18 += f15_18 * RHS15; -const double f16 = 1.0 / m_A44; - const double f16_17 = -f16 * m_A53; - m_A54 += m_A45 * f16_17; - m_A55 += m_A46 * f16_17; - m_A56 += m_A47 * f16_17; - RHS17 += f16_17 * RHS16; - const double f16_18 = -f16 * m_A63; - m_A64 += m_A45 * f16_18; - m_A65 += m_A46 * f16_18; - m_A66 += m_A47 * f16_18; - RHS18 += f16_18 * RHS16; -const double f17 = 1.0 / m_A54; - const double f17_18 = -f17 * m_A64; - m_A65 += m_A55 * f17_18; - m_A66 += m_A56 * f17_18; - RHS18 += f17_18 * RHS17; - const double f17_19 = -f17 * m_A68; - m_A69 += m_A55 * f17_19; - m_A70 += m_A56 * f17_19; - RHS19 += f17_19 * RHS17; -const double f18 = 1.0 / m_A65; - const double f18_19 = -f18 * m_A69; - m_A70 += m_A66 * f18_19; - RHS19 += f18_19 * RHS18; - V[19] = RHS19 / m_A70; - double tmp18 = 0.0; - tmp18 += m_A66 * V[19]; - V[18] = (RHS18 - tmp18) / m_A65; - double tmp17 = 0.0; - tmp17 += m_A55 * V[18]; - tmp17 += m_A56 * V[19]; - V[17] = (RHS17 - tmp17) / m_A54; - double tmp16 = 0.0; - tmp16 += m_A45 * V[17]; - tmp16 += m_A46 * V[18]; - tmp16 += m_A47 * V[19]; - V[16] = (RHS16 - tmp16) / m_A44; - double tmp15 = 0.0; - tmp15 += m_A41 * V[18]; - V[15] = (RHS15 - tmp15) / m_A40; - double tmp14 = 0.0; - V[14] = (RHS14 - tmp14) / m_A38; - double tmp13 = 0.0; - V[13] = (RHS13 - tmp13) / m_A35; - double tmp12 = 0.0; - tmp12 += m_A32 * V[17]; - V[12] = (RHS12 - tmp12) / m_A31; - double tmp11 = 0.0; - tmp11 += m_A28 * V[15]; - tmp11 += m_A29 * V[18]; - V[11] = (RHS11 - tmp11) / m_A27; - double tmp10 = 0.0; - tmp10 += m_A24 * V[16]; - tmp10 += m_A25 * V[18]; - V[10] = (RHS10 - tmp10) / m_A23; - double tmp9 = 0.0; - tmp9 += m_A22 * V[18]; - V[9] = (RHS9 - tmp9) / m_A21; - double tmp8 = 0.0; - tmp8 += m_A18 * V[16]; - tmp8 += m_A19 * V[17]; - tmp8 += m_A20 * V[19]; - V[8] = (RHS8 - tmp8) / m_A17; - double tmp7 = 0.0; - tmp7 += m_A15 * V[17]; - V[7] = (RHS7 - tmp7) / m_A14; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A1 += go[0]; + m_A2 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + m_A3 += gt[2]; + m_A3 += gt[3]; + m_A3 += gt[4]; + m_A4 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[3] * *cnV[3]; + RHS1 -= go[4] * *cnV[4]; + m_A5 += gt[5]; + m_A5 += gt[6]; + m_A5 += gt[7]; + m_A6 += go[5]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; + m_A7 += gt[8]; + m_A7 += gt[9]; + m_A8 += go[8]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A11 += go[10]; + m_A9 += go[11]; + double RHS4 = Idr[10]; + RHS4 += Idr[11]; + RHS4 += Idr[12]; + RHS4 += Idr[13]; + RHS4 -= go[12] * *cnV[12]; + RHS4 -= go[13] * *cnV[13]; + m_A14 += gt[14]; + m_A14 += gt[15]; + m_A13 += go[14]; + m_A15 += go[15]; + double RHS5 = Idr[14]; + RHS5 += Idr[15]; + m_A19 += gt[16]; + m_A19 += gt[17]; + m_A19 += gt[18]; + m_A19 += gt[19]; + m_A17 += go[16]; + m_A16 += go[17]; + m_A18 += go[18]; + m_A20 += go[19]; + double RHS6 = Idr[16]; + RHS6 += Idr[17]; + RHS6 += Idr[18]; + RHS6 += Idr[19]; + m_A25 += gt[20]; + m_A25 += gt[21]; + m_A25 += gt[22]; + m_A25 += gt[23]; + m_A25 += gt[24]; + m_A23 += go[20]; + m_A24 += go[21]; + m_A21 += go[22]; + double RHS7 = Idr[20]; + RHS7 += Idr[21]; + RHS7 += Idr[22]; + RHS7 += Idr[23]; + RHS7 += Idr[24]; + RHS7 -= go[23] * *cnV[23]; + RHS7 -= go[24] * *cnV[24]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A9; + m_A10 += m_A1 * f0_4; + m_A12 += m_A2 * f0_4; + RHS4 += f0_4 * RHS0; + const double f0_7 = -f0 * m_A21; + m_A22 += m_A1 * f0_7; + m_A25 += m_A2 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A3; + const double f1_6 = -f1 * m_A16; + m_A19 += m_A4 * f1_6; + RHS6 += f1_6 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_6 = -f2 * m_A17; + m_A19 += m_A6 * f2_6; + RHS6 += f2_6 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_5 = -f3 * m_A13; + m_A14 += m_A8 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_6 = -f4 * m_A18; + m_A19 += m_A11 * f4_6; + m_A20 += m_A12 * f4_6; + RHS6 += f4_6 * RHS4; + const double f4_7 = -f4 * m_A22; + m_A24 += m_A11 * f4_7; + m_A25 += m_A12 * f4_7; + RHS7 += f4_7 * RHS4; + const double f5 = 1.0 / m_A14; + const double f5_7 = -f5 * m_A23; + m_A25 += m_A15 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A19; + const double f6_7 = -f6 * m_A24; + m_A25 += m_A20 * f6_7; + RHS7 += f6_7 * RHS6; + V[7] = RHS7 / m_A25; double tmp6 = 0.0; - tmp6 += m_A13 * V[14]; - V[6] = (RHS6 - tmp6) / m_A12; + tmp6 += m_A20 * V[7]; + V[6] = (RHS6 - tmp6) / m_A19; double tmp5 = 0.0; - tmp5 += m_A11 * V[14]; - V[5] = (RHS5 - tmp5) / m_A10; + tmp5 += m_A15 * V[7]; + V[5] = (RHS5 - tmp5) / m_A14; double tmp4 = 0.0; - tmp4 += m_A9 * V[13]; - V[4] = (RHS4 - tmp4) / m_A8; + tmp4 += m_A11 * V[6]; + tmp4 += m_A12 * V[7]; + V[4] = (RHS4 - tmp4) / m_A10; double tmp3 = 0.0; - tmp3 += m_A7 * V[13]; - V[3] = (RHS3 - tmp3) / m_A6; + tmp3 += m_A8 * V[5]; + V[3] = (RHS3 - tmp3) / m_A7; double tmp2 = 0.0; - tmp2 += m_A5 * V[12]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A6 * V[6]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; - tmp1 += m_A3 * V[15]; - V[1] = (RHS1 - tmp1) / m_A2; + tmp1 += m_A4 * V[6]; + V[1] = (RHS1 - tmp1) / m_A3; double tmp0 = 0.0; - tmp0 += m_A1 * V[19]; + tmp0 += m_A1 * V[4]; + tmp0 += m_A2 * V[7]; V[0] = (RHS0 - tmp0) / m_A0; } -// 280zzzap -static void nl_gcr_766cc932eebf25ec_104_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// gunfight +static void nl_gcr_a479712c277f2ba4_108_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] - go[1] * *cnV[1]; - m_A2 = gt[8] + gt[9] + gt[10] + gt[11]; - m_A5 = m_A5 + go[8]; - m_A4 = m_A4 + go[9]; - m_A3 = m_A3 + go[10]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] + Idr[11] - go[11] * *cnV[11]; - m_A6 = gt[16] + gt[17] + gt[18]; - m_A7 = m_A7 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] - go[17] * *cnV[17] - go[18] * *cnV[18]; - m_A8 = gt[24] + gt[25]; - m_A9 = m_A9 + go[24]; - double RHS3 = Idr[24] + Idr[25] - go[25] * *cnV[25]; - m_A10 = gt[32] + gt[33] + gt[34]; - m_A12 = m_A12 + go[32]; - m_A11 = m_A11 + go[33]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] - go[34] * *cnV[34]; - m_A13 = gt[40] + gt[41]; - m_A14 = m_A14 + go[40]; - double RHS5 = Idr[40] + Idr[41] - go[41] * *cnV[41]; - m_A15 = gt[48] + gt[49] + gt[50] + gt[51] + gt[52] + gt[53] + gt[54]; - m_A19 = m_A19 + go[48]; - m_A18 = m_A18 + go[49]; - m_A17 = m_A17 + go[50]; - m_A16 = m_A16 + go[51]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] + Idr[51] + Idr[52] + Idr[53] + Idr[54] - go[52] * *cnV[52] - go[53] * *cnV[53] - go[54] * *cnV[54]; - m_A20 = gt[56] + gt[57] + gt[58] + gt[59] + gt[60] + gt[61] + gt[62]; - m_A24 = m_A24 + go[56]; - m_A23 = m_A23 + go[57]; - m_A22 = m_A22 + go[58]; - m_A21 = m_A21 + go[59]; - double RHS7 = Idr[56] + Idr[57] + Idr[58] + Idr[59] + Idr[60] + Idr[61] + Idr[62] - go[60] * *cnV[60] - go[61] * *cnV[61] - go[62] * *cnV[62]; - m_A25 = gt[64] + gt[65] + gt[66]; - m_A26 = m_A26 + go[64]; - m_A27 = m_A27 + go[65]; - double RHS8 = Idr[64] + Idr[65] + Idr[66] - go[66] * *cnV[66]; - m_A28 = gt[72] + gt[73]; - m_A29 = m_A29 + go[72]; - double RHS9 = Idr[72] + Idr[73] - go[73] * *cnV[73]; - m_A30 = gt[80] + gt[81] + gt[82] + gt[83]; - m_A31 = m_A31 + go[80]; - double RHS10 = Idr[80] + Idr[81] + Idr[82] + Idr[83] - go[81] * *cnV[81] - go[82] * *cnV[82] - go[83] * *cnV[83]; - m_A32 = gt[88] + gt[89]; - m_A33 = m_A33 + go[88]; - double RHS11 = Idr[88] + Idr[89] - go[89] * *cnV[89]; - m_A36 = gt[96] + gt[97] + gt[98] + gt[99]; - m_A35 = m_A35 + go[96]; - m_A34 = m_A34 + go[97]; - double RHS12 = Idr[96] + Idr[97] + Idr[98] + Idr[99] - go[98] * *cnV[98] - go[99] * *cnV[99]; - m_A42 = gt[104] + gt[105] + gt[106] + gt[107]; - m_A40 = m_A40 + go[104]; - m_A41 = m_A41 + go[105]; - m_A43 = m_A43 + go[106]; - m_A39 = m_A39 + go[107]; - double RHS13 = Idr[104] + Idr[105] + Idr[106] + Idr[107]; - m_A45 = gt[112] + gt[113] + gt[114] + gt[115]; - m_A44 = m_A44 + go[112]; - m_A46 = m_A46 + go[113]; - double RHS14 = Idr[112] + Idr[113] + Idr[114] + Idr[115] - go[114] * *cnV[114] - go[115] * *cnV[115]; - m_A50 = gt[120] + gt[121] + gt[122] + gt[123]; - m_A48 = m_A48 + go[120]; - m_A47 = m_A47 + go[121]; - double RHS15 = Idr[120] + Idr[121] + Idr[122] + Idr[123] - go[122] * *cnV[122] - go[123] * *cnV[123]; - m_A57 = gt[128] + gt[129] + gt[130] + gt[131]; - m_A56 = m_A56 + go[128]; - m_A55 = m_A55 + go[129]; - m_A58 = m_A58 + go[130]; - double RHS16 = Idr[128] + Idr[129] + Idr[130] + Idr[131] - go[131] * *cnV[131]; - m_A63 = gt[136] + gt[137] + gt[138] + gt[139]; - m_A66 = m_A66 + go[136]; - m_A60 = m_A60 + go[137]; - m_A59 = m_A59 + go[138]; - double RHS17 = Idr[136] + Idr[137] + Idr[138] + Idr[139] - go[139] * *cnV[139]; - m_A74 = gt[144] + gt[145] + gt[146] + gt[147] + gt[148] + gt[149]; - m_A77 = m_A77 + go[144]; - m_A70 = m_A70 + go[145]; - m_A69 = m_A69 + go[146]; - m_A68 = m_A68 + go[147]; - m_A71 = m_A71 + go[148]; - double RHS18 = Idr[144] + Idr[145] + Idr[146] + Idr[147] + Idr[148] + Idr[149] - go[149] * *cnV[149]; - m_A85 = gt[152] + gt[153] + gt[154] + gt[155] + gt[156] + gt[157]; - m_A82 = m_A82 + go[152]; - m_A87 = m_A87 + go[153]; - m_A79 = m_A79 + go[154]; - m_A80 = m_A80 + go[155]; - m_A78 = m_A78 + go[156]; - double RHS19 = Idr[152] + Idr[153] + Idr[154] + Idr[155] + Idr[156] + Idr[157] - go[157] * *cnV[157]; - m_A93 = gt[160] + gt[161] + gt[162] + gt[163] + gt[164]; - m_A89 = m_A89 + go[160]; - m_A88 = m_A88 + go[161]; - m_A90 = m_A90 + go[162]; - double RHS20 = Idr[160] + Idr[161] + Idr[162] + Idr[163] + Idr[164] - go[163] * *cnV[163] - go[164] * *cnV[164]; - m_A103 = gt[168] + gt[169] + gt[170] + gt[171] + gt[172] + gt[173] + gt[174]; - m_A97 = m_A97 + go[168]; - m_A96 = m_A96 + go[169]; - m_A101 = m_A101 + go[170]; - m_A95 = m_A95 + go[171]; - m_A100 = m_A100 + go[172]; - double RHS21 = Idr[168] + Idr[169] + Idr[170] + Idr[171] + Idr[172] + Idr[173] + Idr[174] - go[173] * *cnV[173] - go[174] * *cnV[174]; -const double f0 = 1.0 / m_A0; - const double f0_12 = -f0 * m_A34; - m_A36 += m_A1 * f0_12; - RHS12 += f0_12 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_12 = -f1 * m_A35; - m_A36 += m_A3 * f1_12; - m_A37 += m_A4 * f1_12; - m_A38 += m_A5 * f1_12; - RHS12 += f1_12 * RHS1; - const double f1_15 = -f1 * m_A47; - m_A49 += m_A3 * f1_15; - m_A50 += m_A4 * f1_15; - m_A51 += m_A5 * f1_15; - RHS15 += f1_15 * RHS1; - const double f1_17 = -f1 * m_A59; - m_A61 += m_A3 * f1_17; - m_A62 += m_A4 * f1_17; - m_A63 += m_A5 * f1_17; - RHS17 += f1_17 * RHS1; -const double f2 = 1.0 / m_A6; - const double f2_13 = -f2 * m_A39; - m_A42 += m_A7 * f2_13; - RHS13 += f2_13 * RHS2; -const double f3 = 1.0 / m_A8; - const double f3_13 = -f3 * m_A40; - m_A42 += m_A9 * f3_13; - RHS13 += f3_13 * RHS3; -const double f4 = 1.0 / m_A10; - const double f4_13 = -f4 * m_A41; - m_A42 += m_A11 * f4_13; - m_A43 += m_A12 * f4_13; - RHS13 += f4_13 * RHS4; - const double f4_18 = -f4 * m_A68; - m_A71 += m_A11 * f4_18; - m_A74 += m_A12 * f4_18; - RHS18 += f4_18 * RHS4; -const double f5 = 1.0 / m_A13; - const double f5_14 = -f5 * m_A44; - m_A45 += m_A14 * f5_14; - RHS14 += f5_14 * RHS5; -const double f6 = 1.0 / m_A15; - const double f6_15 = -f6 * m_A48; - m_A50 += m_A16 * f6_15; - m_A52 += m_A17 * f6_15; - m_A53 += m_A18 * f6_15; - m_A54 += m_A19 * f6_15; - RHS15 += f6_15 * RHS6; - const double f6_18 = -f6 * m_A69; - m_A72 += m_A16 * f6_18; - m_A74 += m_A17 * f6_18; - m_A75 += m_A18 * f6_18; - m_A77 += m_A19 * f6_18; - RHS18 += f6_18 * RHS6; - const double f6_19 = -f6 * m_A78; - m_A81 += m_A16 * f6_19; - m_A84 += m_A17 * f6_19; - m_A85 += m_A18 * f6_19; - m_A87 += m_A19 * f6_19; - RHS19 += f6_19 * RHS6; - const double f6_21 = -f6 * m_A95; - m_A98 += m_A16 * f6_21; - m_A100 += m_A17 * f6_21; - m_A101 += m_A18 * f6_21; - m_A103 += m_A19 * f6_21; - RHS21 += f6_21 * RHS6; -const double f7 = 1.0 / m_A20; - const double f7_17 = -f7 * m_A60; - m_A63 += m_A21 * f7_17; - m_A64 += m_A22 * f7_17; - m_A65 += m_A23 * f7_17; - m_A67 += m_A24 * f7_17; - RHS17 += f7_17 * RHS7; - const double f7_18 = -f7 * m_A70; - m_A73 += m_A21 * f7_18; - m_A74 += m_A22 * f7_18; - m_A75 += m_A23 * f7_18; - m_A77 += m_A24 * f7_18; - RHS18 += f7_18 * RHS7; - const double f7_19 = -f7 * m_A79; - m_A83 += m_A21 * f7_19; - m_A84 += m_A22 * f7_19; - m_A85 += m_A23 * f7_19; - m_A87 += m_A24 * f7_19; - RHS19 += f7_19 * RHS7; - const double f7_21 = -f7 * m_A96; - m_A99 += m_A21 * f7_21; - m_A100 += m_A22 * f7_21; - m_A101 += m_A23 * f7_21; - m_A103 += m_A24 * f7_21; - RHS21 += f7_21 * RHS7; -const double f8 = 1.0 / m_A25; - const double f8_16 = -f8 * m_A55; - m_A57 += m_A26 * f8_16; - m_A58 += m_A27 * f8_16; - RHS16 += f8_16 * RHS8; - const double f8_19 = -f8 * m_A80; - m_A82 += m_A26 * f8_19; - m_A85 += m_A27 * f8_19; - RHS19 += f8_19 * RHS8; -const double f9 = 1.0 / m_A28; - const double f9_16 = -f9 * m_A56; - m_A57 += m_A29 * f9_16; - RHS16 += f9_16 * RHS9; -const double f10 = 1.0 / m_A30; - const double f10_20 = -f10 * m_A88; - m_A93 += m_A31 * f10_20; - RHS20 += f10_20 * RHS10; -const double f11 = 1.0 / m_A32; - const double f11_20 = -f11 * m_A89; - m_A93 += m_A33 * f11_20; - RHS20 += f11_20 * RHS11; -const double f12 = 1.0 / m_A36; - const double f12_15 = -f12 * m_A49; - m_A50 += m_A37 * f12_15; - m_A51 += m_A38 * f12_15; - RHS15 += f12_15 * RHS12; - const double f12_17 = -f12 * m_A61; - m_A62 += m_A37 * f12_17; - m_A63 += m_A38 * f12_17; - RHS17 += f12_17 * RHS12; -const double f13 = 1.0 / m_A42; - const double f13_18 = -f13 * m_A71; - m_A74 += m_A43 * f13_18; - RHS18 += f13_18 * RHS13; -const double f14 = 1.0 / m_A45; - const double f14_21 = -f14 * m_A97; - m_A103 += m_A46 * f14_21; - RHS21 += f14_21 * RHS14; -const double f15 = 1.0 / m_A50; - const double f15_17 = -f15 * m_A62; - m_A63 += m_A51 * f15_17; - m_A64 += m_A52 * f15_17; - m_A65 += m_A53 * f15_17; - m_A67 += m_A54 * f15_17; + 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); + 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]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + RHS4 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A11 += go[10]; + m_A12 += go[11]; + double RHS5 = Idr[10]; + RHS5 += Idr[11]; + RHS5 += Idr[12]; + RHS5 += Idr[13]; + RHS5 -= go[12] * *cnV[12]; + RHS5 -= go[13] * *cnV[13]; + m_A13 += gt[14]; + m_A13 += gt[15]; + m_A15 += go[14]; + m_A14 += go[15]; + double RHS6 = Idr[14]; + RHS6 += Idr[15]; + m_A16 += gt[16]; + m_A16 += gt[17]; + m_A18 += go[16]; + m_A17 += go[17]; + double RHS7 = Idr[16]; + RHS7 += Idr[17]; + m_A20 += gt[18]; + m_A20 += gt[19]; + m_A20 += gt[20]; + m_A19 += go[18]; + m_A21 += go[19]; + double RHS8 = Idr[18]; + RHS8 += Idr[19]; + RHS8 += Idr[20]; + RHS8 -= go[20] * *cnV[20]; + m_A24 += gt[21]; + m_A24 += gt[22]; + m_A24 += gt[23]; + m_A23 += go[21]; + m_A25 += go[22]; + double RHS9 = Idr[21]; + RHS9 += Idr[22]; + RHS9 += Idr[23]; + RHS9 -= go[23] * *cnV[23]; + m_A28 += gt[24]; + m_A28 += gt[25]; + m_A28 += gt[26]; + m_A27 += go[24]; + m_A30 += go[25]; + double RHS10 = Idr[24]; + RHS10 += Idr[25]; + RHS10 += Idr[26]; + RHS10 -= go[26] * *cnV[26]; + m_A32 += gt[27]; + m_A32 += gt[28]; + m_A32 += gt[29]; + m_A31 += go[27]; + m_A33 += go[28]; + double RHS11 = Idr[27]; + RHS11 += Idr[28]; + RHS11 += Idr[29]; + RHS11 -= go[29] * *cnV[29]; + m_A35 += gt[30]; + m_A35 += gt[31]; + m_A35 += gt[32]; + m_A35 += gt[33]; + m_A37 += go[30]; + m_A36 += go[31]; + double RHS12 = Idr[30]; + RHS12 += Idr[31]; + RHS12 += Idr[32]; + RHS12 += Idr[33]; + RHS12 -= go[32] * *cnV[32]; + RHS12 -= go[33] * *cnV[33]; + m_A38 += gt[34]; + m_A38 += gt[35]; + m_A38 += gt[36]; + m_A40 += go[34]; + m_A39 += go[35]; + double RHS13 = Idr[34]; + RHS13 += Idr[35]; + RHS13 += Idr[36]; + RHS13 -= go[36] * *cnV[36]; + m_A41 += gt[37]; + m_A41 += gt[38]; + m_A41 += gt[39]; + m_A43 += go[37]; + m_A42 += go[38]; + double RHS14 = Idr[37]; + RHS14 += Idr[38]; + RHS14 += Idr[39]; + RHS14 -= go[39] * *cnV[39]; + m_A44 += gt[40]; + m_A44 += gt[41]; + m_A44 += gt[42]; + m_A46 += go[40]; + m_A45 += go[41]; + double RHS15 = Idr[40]; + RHS15 += Idr[41]; + RHS15 += Idr[42]; + RHS15 -= go[42] * *cnV[42]; + m_A49 += gt[43]; + m_A49 += gt[44]; + m_A47 += go[43]; + m_A48 += go[44]; + double RHS16 = Idr[43]; + RHS16 += Idr[44]; + m_A53 += gt[45]; + m_A53 += gt[46]; + m_A51 += go[45]; + m_A52 += go[46]; + double RHS17 = Idr[45]; + RHS17 += Idr[46]; + m_A56 += gt[47]; + m_A56 += gt[48]; + m_A56 += gt[49]; + m_A55 += go[47]; + m_A57 += go[48]; + double RHS18 = Idr[47]; + RHS18 += Idr[48]; + RHS18 += Idr[49]; + RHS18 -= go[49] * *cnV[49]; + m_A59 += gt[50]; + m_A59 += gt[51]; + m_A58 += go[50]; + m_A60 += go[51]; + double RHS19 = Idr[50]; + RHS19 += Idr[51]; + m_A62 += gt[52]; + m_A62 += gt[53]; + m_A62 += gt[54]; + m_A62 += gt[55]; + m_A64 += go[52]; + m_A63 += go[53]; + m_A61 += go[54]; + double RHS20 = Idr[52]; + RHS20 += Idr[53]; + RHS20 += Idr[54]; + RHS20 += Idr[55]; + RHS20 -= go[55] * *cnV[55]; + m_A67 += gt[56]; + m_A67 += gt[57]; + m_A67 += gt[58]; + m_A67 += gt[59]; + m_A66 += go[56]; + m_A65 += go[57]; + m_A68 += go[58]; + double RHS21 = Idr[56]; + RHS21 += Idr[57]; + RHS21 += Idr[58]; + RHS21 += Idr[59]; + RHS21 -= go[59] * *cnV[59]; + m_A70 += gt[60]; + m_A70 += gt[61]; + m_A70 += gt[62]; + m_A70 += gt[63]; + m_A72 += go[60]; + m_A71 += go[61]; + m_A69 += go[62]; + double RHS22 = Idr[60]; + RHS22 += Idr[61]; + RHS22 += Idr[62]; + RHS22 += Idr[63]; + RHS22 -= go[63] * *cnV[63]; + m_A77 += gt[64]; + m_A77 += gt[65]; + m_A77 += gt[66]; + m_A77 += gt[67]; + m_A77 += gt[68]; + m_A77 += gt[69]; + m_A78 += go[64]; + m_A73 += go[65]; + m_A74 += go[66]; + m_A76 += go[67]; + double RHS23 = Idr[64]; + RHS23 += Idr[65]; + RHS23 += Idr[66]; + RHS23 += Idr[67]; + RHS23 += Idr[68]; + RHS23 += Idr[69]; + RHS23 -= go[68] * *cnV[68]; + RHS23 -= go[69] * *cnV[69]; + m_A83 += gt[70]; + m_A83 += gt[71]; + m_A83 += gt[72]; + m_A83 += gt[73]; + m_A83 += gt[74]; + m_A83 += gt[75]; + m_A84 += go[70]; + m_A79 += go[71]; + m_A80 += go[72]; + m_A82 += go[73]; + double RHS24 = Idr[70]; + RHS24 += Idr[71]; + RHS24 += Idr[72]; + RHS24 += Idr[73]; + RHS24 += Idr[74]; + RHS24 += Idr[75]; + RHS24 -= go[74] * *cnV[74]; + RHS24 -= go[75] * *cnV[75]; + m_A89 += gt[76]; + m_A89 += gt[77]; + m_A89 += gt[78]; + m_A89 += gt[79]; + m_A85 += go[76]; + m_A86 += go[77]; + m_A88 += go[78]; + m_A87 += go[79]; + double RHS25 = Idr[76]; + RHS25 += Idr[77]; + RHS25 += Idr[78]; + RHS25 += Idr[79]; + m_A100 += gt[80]; + m_A100 += gt[81]; + m_A100 += gt[82]; + m_A100 += gt[83]; + m_A100 += gt[84]; + m_A100 += gt[85]; + m_A98 += go[80]; + m_A91 += go[81]; + m_A92 += go[82]; + m_A93 += go[83]; + double RHS26 = Idr[80]; + RHS26 += Idr[81]; + RHS26 += Idr[82]; + RHS26 += Idr[83]; + RHS26 += Idr[84]; + RHS26 += Idr[85]; + RHS26 -= go[84] * *cnV[84]; + RHS26 -= go[85] * *cnV[85]; + m_A107 += gt[86]; + m_A107 += gt[87]; + m_A107 += gt[88]; + m_A107 += gt[89]; + m_A102 += go[86]; + m_A103 += go[87]; + m_A105 += go[88]; + m_A104 += go[89]; + double RHS27 = Idr[86]; + RHS27 += Idr[87]; + RHS27 += Idr[88]; + RHS27 += Idr[89]; + const double f0 = 1.0 / m_A0; + const double f0_18 = -f0 * m_A55; + m_A56 += m_A1 * f0_18; + RHS18 += f0_18 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_16 = -f1 * m_A47; + m_A49 += m_A3 * f1_16; + RHS16 += f1_16 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_17 = -f2 * m_A51; + m_A53 += m_A5 * f2_17; + RHS17 += f2_17 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_22 = -f3 * m_A69; + m_A70 += m_A7 * f3_22; + RHS22 += f3_22 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_20 = -f4 * m_A61; + m_A62 += m_A9 * f4_20; + RHS20 += f4_20 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_21 = -f5 * m_A65; + m_A67 += m_A11 * f5_21; + m_A68 += m_A12 * f5_21; + RHS21 += f5_21 * RHS5; + const double f5_26 = -f5 * m_A91; + m_A98 += m_A11 * f5_26; + m_A100 += m_A12 * f5_26; + RHS26 += f5_26 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_8 = -f6 * m_A19; + m_A20 += m_A14 * f6_8; + m_A22 += m_A15 * f6_8; + RHS8 += f6_8 * RHS6; + const double f6_26 = -f6 * m_A92; + m_A94 += m_A14 * f6_26; + m_A100 += m_A15 * f6_26; + RHS26 += f6_26 * RHS6; + const double f7 = 1.0 / m_A16; + const double f7_9 = -f7 * m_A23; + m_A24 += m_A17 * f7_9; + m_A26 += m_A18 * f7_9; + RHS9 += f7_9 * RHS7; + const double f7_26 = -f7 * m_A93; + m_A95 += m_A17 * f7_26; + m_A100 += m_A18 * f7_26; + RHS26 += f7_26 * RHS7; + const double f8 = 1.0 / m_A20; + const double f8_10 = -f8 * m_A27; + m_A28 += m_A21 * f8_10; + m_A29 += m_A22 * f8_10; + RHS10 += f8_10 * RHS8; + const double f8_26 = -f8 * m_A94; + m_A96 += m_A21 * f8_26; + m_A100 += m_A22 * f8_26; + RHS26 += f8_26 * RHS8; + const double f9 = 1.0 / m_A24; + const double f9_11 = -f9 * m_A31; + m_A32 += m_A25 * f9_11; + m_A34 += m_A26 * f9_11; + RHS11 += f9_11 * RHS9; + const double f9_26 = -f9 * m_A95; + m_A97 += m_A25 * f9_26; + m_A100 += m_A26 * f9_26; + RHS26 += f9_26 * RHS9; + const double f10 = 1.0 / m_A28; + const double f10_26 = -f10 * m_A96; + m_A100 += m_A29 * f10_26; + m_A101 += m_A30 * f10_26; + RHS26 += f10_26 * RHS10; + const double f10_27 = -f10 * m_A102; + m_A106 += m_A29 * f10_27; + m_A107 += m_A30 * f10_27; + RHS27 += f10_27 * RHS10; + const double f11 = 1.0 / m_A32; + const double f11_25 = -f11 * m_A85; + m_A89 += m_A33 * f11_25; + m_A90 += m_A34 * f11_25; + RHS25 += f11_25 * RHS11; + const double f11_26 = -f11 * m_A97; + m_A99 += m_A33 * f11_26; + m_A100 += m_A34 * f11_26; + RHS26 += f11_26 * RHS11; + const double f12 = 1.0 / m_A35; + const double f12_23 = -f12 * m_A73; + m_A77 += m_A36 * f12_23; + m_A78 += m_A37 * f12_23; + RHS23 += f12_23 * RHS12; + const double f12_27 = -f12 * m_A103; + m_A105 += m_A36 * f12_27; + m_A107 += m_A37 * f12_27; + RHS27 += f12_27 * RHS12; + const double f13 = 1.0 / m_A38; + const double f13_24 = -f13 * m_A79; + m_A83 += m_A39 * f13_24; + m_A84 += m_A40 * f13_24; + RHS24 += f13_24 * RHS13; + const double f13_25 = -f13 * m_A86; + m_A88 += m_A39 * f13_25; + m_A89 += m_A40 * f13_25; + RHS25 += f13_25 * RHS13; + const double f14 = 1.0 / m_A41; + const double f14_16 = -f14 * m_A48; + m_A49 += m_A42 * f14_16; + m_A50 += m_A43 * f14_16; + RHS16 += f14_16 * RHS14; + const double f14_23 = -f14 * m_A74; + m_A75 += m_A42 * f14_23; + m_A77 += m_A43 * f14_23; + RHS23 += f14_23 * RHS14; + const double f15 = 1.0 / m_A44; + const double f15_17 = -f15 * m_A52; + m_A53 += m_A45 * f15_17; + m_A54 += m_A46 * f15_17; RHS17 += f15_17 * RHS15; - const double f15_18 = -f15 * m_A72; - m_A73 += m_A51 * f15_18; - m_A74 += m_A52 * f15_18; - m_A75 += m_A53 * f15_18; - m_A77 += m_A54 * f15_18; - RHS18 += f15_18 * RHS15; - const double f15_19 = -f15 * m_A81; - m_A83 += m_A51 * f15_19; - m_A84 += m_A52 * f15_19; - m_A85 += m_A53 * f15_19; - m_A87 += m_A54 * f15_19; - RHS19 += f15_19 * RHS15; - const double f15_21 = -f15 * m_A98; - m_A99 += m_A51 * f15_21; - m_A100 += m_A52 * f15_21; - m_A101 += m_A53 * f15_21; - m_A103 += m_A54 * f15_21; - RHS21 += f15_21 * RHS15; -const double f16 = 1.0 / m_A57; - const double f16_19 = -f16 * m_A82; - m_A85 += m_A58 * f16_19; - RHS19 += f16_19 * RHS16; -const double f17 = 1.0 / m_A63; - const double f17_18 = -f17 * m_A73; - m_A74 += m_A64 * f17_18; - m_A75 += m_A65 * f17_18; - m_A76 += m_A66 * f17_18; - m_A77 += m_A67 * f17_18; - RHS18 += f17_18 * RHS17; - const double f17_19 = -f17 * m_A83; - m_A84 += m_A64 * f17_19; - m_A85 += m_A65 * f17_19; - m_A86 += m_A66 * f17_19; - m_A87 += m_A67 * f17_19; - RHS19 += f17_19 * RHS17; - const double f17_20 = -f17 * m_A90; - m_A91 += m_A64 * f17_20; - m_A92 += m_A65 * f17_20; - m_A93 += m_A66 * f17_20; - m_A94 += m_A67 * f17_20; - RHS20 += f17_20 * RHS17; - const double f17_21 = -f17 * m_A99; - m_A100 += m_A64 * f17_21; - m_A101 += m_A65 * f17_21; - m_A102 += m_A66 * f17_21; - m_A103 += m_A67 * f17_21; - RHS21 += f17_21 * RHS17; -const double f18 = 1.0 / m_A74; - const double f18_19 = -f18 * m_A84; - m_A85 += m_A75 * f18_19; - m_A86 += m_A76 * f18_19; - m_A87 += m_A77 * f18_19; + const double f15_24 = -f15 * m_A80; + m_A81 += m_A45 * f15_24; + m_A83 += m_A46 * f15_24; + RHS24 += f15_24 * RHS15; + const double f16 = 1.0 / m_A49; + const double f16_23 = -f16 * m_A75; + m_A77 += m_A50 * f16_23; + RHS23 += f16_23 * RHS16; + const double f17 = 1.0 / m_A53; + const double f17_24 = -f17 * m_A81; + m_A83 += m_A54 * f17_24; + RHS24 += f17_24 * RHS17; + const double f18 = 1.0 / m_A56; + const double f18_19 = -f18 * m_A58; + m_A59 += m_A57 * f18_19; RHS19 += f18_19 * RHS18; - const double f18_20 = -f18 * m_A91; - m_A92 += m_A75 * f18_20; - m_A93 += m_A76 * f18_20; - m_A94 += m_A77 * f18_20; - RHS20 += f18_20 * RHS18; - const double f18_21 = -f18 * m_A100; - m_A101 += m_A75 * f18_21; - m_A102 += m_A76 * f18_21; - m_A103 += m_A77 * f18_21; - RHS21 += f18_21 * RHS18; -const double f19 = 1.0 / m_A85; - const double f19_20 = -f19 * m_A92; - m_A93 += m_A86 * f19_20; - m_A94 += m_A87 * f19_20; - RHS20 += f19_20 * RHS19; - const double f19_21 = -f19 * m_A101; - m_A102 += m_A86 * f19_21; - m_A103 += m_A87 * f19_21; + const double f19 = 1.0 / m_A59; + const double f19_21 = -f19 * m_A66; + m_A67 += m_A60 * f19_21; RHS21 += f19_21 * RHS19; -const double f20 = 1.0 / m_A93; - const double f20_21 = -f20 * m_A102; - m_A103 += m_A94 * f20_21; - RHS21 += f20_21 * RHS20; - V[21] = RHS21 / m_A103; + const double f20 = 1.0 / m_A62; + const double f20_24 = -f20 * m_A82; + m_A83 += m_A63 * f20_24; + m_A84 += m_A64 * f20_24; + RHS24 += f20_24 * RHS20; + const double f20_25 = -f20 * m_A87; + m_A88 += m_A63 * f20_25; + m_A89 += m_A64 * f20_25; + RHS25 += f20_25 * RHS20; + const double f21 = 1.0 / m_A67; + const double f21_26 = -f21 * m_A98; + m_A100 += m_A68 * f21_26; + RHS26 += f21_26 * RHS21; + const double f22 = 1.0 / m_A70; + const double f22_23 = -f22 * m_A76; + m_A77 += m_A71 * f22_23; + m_A78 += m_A72 * f22_23; + RHS23 += f22_23 * RHS22; + const double f22_27 = -f22 * m_A104; + m_A105 += m_A71 * f22_27; + m_A107 += m_A72 * f22_27; + RHS27 += f22_27 * RHS22; + const double f23 = 1.0 / m_A77; + const double f23_27 = -f23 * m_A105; + m_A107 += m_A78 * f23_27; + RHS27 += f23_27 * RHS23; + const double f24 = 1.0 / m_A83; + const double f24_25 = -f24 * m_A88; + m_A89 += m_A84 * f24_25; + RHS25 += f24_25 * RHS24; + const double f25 = 1.0 / m_A89; + const double f25_26 = -f25 * m_A99; + m_A100 += m_A90 * f25_26; + RHS26 += f25_26 * RHS25; + const double f26 = 1.0 / m_A100; + const double f26_27 = -f26 * m_A106; + m_A107 += m_A101 * f26_27; + RHS27 += f26_27 * RHS26; + V[27] = RHS27 / m_A107; + double tmp26 = 0.0; + tmp26 += m_A101 * V[27]; + V[26] = (RHS26 - tmp26) / m_A100; + double tmp25 = 0.0; + tmp25 += m_A90 * V[26]; + V[25] = (RHS25 - tmp25) / m_A89; + double tmp24 = 0.0; + tmp24 += m_A84 * V[25]; + V[24] = (RHS24 - tmp24) / m_A83; + double tmp23 = 0.0; + tmp23 += m_A78 * V[27]; + V[23] = (RHS23 - tmp23) / m_A77; + double tmp22 = 0.0; + tmp22 += m_A71 * V[23]; + tmp22 += m_A72 * V[27]; + V[22] = (RHS22 - tmp22) / m_A70; + double tmp21 = 0.0; + tmp21 += m_A68 * V[26]; + V[21] = (RHS21 - tmp21) / m_A67; double tmp20 = 0.0; - tmp20 += m_A94 * V[21]; - V[20] = (RHS20 - tmp20) / m_A93; + tmp20 += m_A63 * V[24]; + tmp20 += m_A64 * V[25]; + V[20] = (RHS20 - tmp20) / m_A62; double tmp19 = 0.0; - tmp19 += m_A86 * V[20]; - tmp19 += m_A87 * V[21]; - V[19] = (RHS19 - tmp19) / m_A85; + tmp19 += m_A60 * V[21]; + V[19] = (RHS19 - tmp19) / m_A59; double tmp18 = 0.0; - tmp18 += m_A75 * V[19]; - tmp18 += m_A76 * V[20]; - tmp18 += m_A77 * V[21]; - V[18] = (RHS18 - tmp18) / m_A74; + tmp18 += m_A57 * V[19]; + V[18] = (RHS18 - tmp18) / m_A56; double tmp17 = 0.0; - tmp17 += m_A64 * V[18]; - tmp17 += m_A65 * V[19]; - tmp17 += m_A66 * V[20]; - tmp17 += m_A67 * V[21]; - V[17] = (RHS17 - tmp17) / m_A63; + tmp17 += m_A54 * V[24]; + V[17] = (RHS17 - tmp17) / m_A53; double tmp16 = 0.0; - tmp16 += m_A58 * V[19]; - V[16] = (RHS16 - tmp16) / m_A57; + tmp16 += m_A50 * V[23]; + V[16] = (RHS16 - tmp16) / m_A49; double tmp15 = 0.0; - tmp15 += m_A51 * V[17]; - tmp15 += m_A52 * V[18]; - tmp15 += m_A53 * V[19]; - tmp15 += m_A54 * V[21]; - V[15] = (RHS15 - tmp15) / m_A50; + tmp15 += m_A45 * V[17]; + tmp15 += m_A46 * V[24]; + V[15] = (RHS15 - tmp15) / m_A44; double tmp14 = 0.0; - tmp14 += m_A46 * V[21]; - V[14] = (RHS14 - tmp14) / m_A45; + tmp14 += m_A42 * V[16]; + tmp14 += m_A43 * V[23]; + V[14] = (RHS14 - tmp14) / m_A41; double tmp13 = 0.0; - tmp13 += m_A43 * V[18]; - V[13] = (RHS13 - tmp13) / m_A42; + tmp13 += m_A39 * V[24]; + tmp13 += m_A40 * V[25]; + V[13] = (RHS13 - tmp13) / m_A38; double tmp12 = 0.0; - tmp12 += m_A37 * V[15]; - tmp12 += m_A38 * V[17]; - V[12] = (RHS12 - tmp12) / m_A36; + tmp12 += m_A36 * V[23]; + tmp12 += m_A37 * V[27]; + V[12] = (RHS12 - tmp12) / m_A35; double tmp11 = 0.0; - tmp11 += m_A33 * V[20]; + tmp11 += m_A33 * V[25]; + tmp11 += m_A34 * V[26]; V[11] = (RHS11 - tmp11) / m_A32; double tmp10 = 0.0; - tmp10 += m_A31 * V[20]; - V[10] = (RHS10 - tmp10) / m_A30; - double tmp9 = 0.0; - tmp9 += m_A29 * V[16]; - V[9] = (RHS9 - tmp9) / m_A28; - double tmp8 = 0.0; - tmp8 += m_A26 * V[16]; - tmp8 += m_A27 * V[19]; - V[8] = (RHS8 - tmp8) / m_A25; - double tmp7 = 0.0; - tmp7 += m_A21 * V[17]; - tmp7 += m_A22 * V[18]; - tmp7 += m_A23 * V[19]; - tmp7 += m_A24 * V[21]; - V[7] = (RHS7 - tmp7) / m_A20; - double tmp6 = 0.0; - tmp6 += m_A16 * V[15]; - tmp6 += m_A17 * V[18]; - tmp6 += m_A18 * V[19]; - tmp6 += m_A19 * V[21]; - V[6] = (RHS6 - tmp6) / m_A15; - double tmp5 = 0.0; - tmp5 += m_A14 * V[14]; - V[5] = (RHS5 - tmp5) / m_A13; - double tmp4 = 0.0; - tmp4 += m_A11 * V[13]; - tmp4 += m_A12 * V[18]; - V[4] = (RHS4 - tmp4) / m_A10; - double tmp3 = 0.0; - tmp3 += m_A9 * V[13]; - V[3] = (RHS3 - tmp3) / m_A8; - double tmp2 = 0.0; - tmp2 += m_A7 * V[13]; - V[2] = (RHS2 - tmp2) / m_A6; - double tmp1 = 0.0; - tmp1 += m_A3 * V[12]; - tmp1 += m_A4 * V[15]; - tmp1 += m_A5 * V[17]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[12]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// popeye -static void nl_gcr_794f14a13bda75f0_50_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[8] + gt[9] + gt[10]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A4 = gt[16] + gt[17] + gt[18]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] - go[17] * *cnV[17] - go[18] * *cnV[18]; - m_A6 = gt[24] + gt[25] + gt[26] + gt[27] + gt[28] + gt[29]; - m_A10 = m_A10 + go[24]; - m_A7 = m_A7 + go[25]; - m_A8 = m_A8 + go[26]; - m_A9 = m_A9 + go[27]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] + Idr[27] + Idr[28] + Idr[29] - go[28] * *cnV[28] - go[29] * *cnV[29]; - m_A11 = gt[32] + gt[33] + gt[34] + gt[35] + gt[36]; - m_A13 = m_A13 + go[32]; - m_A13 = m_A13 + go[33]; - m_A12 = m_A12 + go[34]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] + Idr[35] + Idr[36] - go[35] * *cnV[35] - go[36] * *cnV[36]; - m_A14 = gt[40] + gt[41] + gt[42] + gt[43] + gt[44]; - m_A16 = m_A16 + go[40]; - m_A15 = m_A15 + go[41]; - m_A15 = m_A15 + go[42]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] + Idr[43] + Idr[44] - go[43] * *cnV[43] - go[44] * *cnV[44]; - m_A19 = gt[48] + gt[49] + gt[50]; - m_A18 = m_A18 + go[48]; - m_A17 = m_A17 + go[49]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] - go[50] * *cnV[50]; - m_A26 = gt[56] + gt[57] + gt[58]; - m_A24 = m_A24 + go[56]; - m_A23 = m_A23 + go[57]; - double RHS7 = Idr[56] + Idr[57] + Idr[58] - go[58] * *cnV[58]; - m_A33 = gt[64] + gt[65] + gt[66]; - m_A30 = m_A30 + go[64]; - m_A29 = m_A29 + go[65]; - double RHS8 = Idr[64] + Idr[65] + Idr[66] - go[66] * *cnV[66]; - m_A40 = gt[72] + gt[73] + gt[74] + gt[75]; - m_A36 = m_A36 + go[72]; - m_A35 = m_A35 + go[73]; - double RHS9 = Idr[72] + Idr[73] + Idr[74] + Idr[75] - go[74] * *cnV[74] - go[75] * *cnV[75]; - m_A45 = gt[80] + gt[81] + gt[82] + gt[83] + gt[84] + gt[85] + gt[86] + gt[87]; - m_A43 = m_A43 + go[80]; - m_A43 = m_A43 + go[81]; - m_A42 = m_A42 + go[82]; - m_A42 = m_A42 + go[83]; - double RHS10 = Idr[80] + Idr[81] + Idr[82] + Idr[83] + Idr[84] + Idr[85] + Idr[86] + Idr[87] - go[84] * *cnV[84] - go[85] * *cnV[85] - go[86] * *cnV[86] - go[87] * *cnV[87]; - m_A49 = gt[88] + gt[89]; - m_A47 = m_A47 + go[88]; - double RHS11 = Idr[88] + Idr[89] - go[89] * *cnV[89]; -const double f0 = 1.0 / m_A0; - const double f0_8 = -f0 * m_A29; - m_A33 += m_A1 * f0_8; - RHS8 += f0_8 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_7 = -f1 * m_A23; - m_A26 += m_A3 * f1_7; - RHS7 += f1_7 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_6 = -f2 * m_A17; - m_A19 += m_A5 * f2_6; - RHS6 += f2_6 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_6 = -f3 * m_A18; - m_A19 += m_A7 * f3_6; - m_A20 += m_A8 * f3_6; - m_A21 += m_A9 * f3_6; - m_A22 += m_A10 * f3_6; - RHS6 += f3_6 * RHS3; - const double f3_7 = -f3 * m_A24; - m_A25 += m_A7 * f3_7; - m_A26 += m_A8 * f3_7; - m_A27 += m_A9 * f3_7; - m_A28 += m_A10 * f3_7; - RHS7 += f3_7 * RHS3; - const double f3_8 = -f3 * m_A30; - m_A31 += m_A7 * f3_8; - m_A32 += m_A8 * f3_8; - m_A33 += m_A9 * f3_8; - m_A34 += m_A10 * f3_8; - RHS8 += f3_8 * RHS3; - const double f3_9 = -f3 * m_A35; - m_A37 += m_A7 * f3_9; - m_A38 += m_A8 * f3_9; - m_A39 += m_A9 * f3_9; - m_A40 += m_A10 * f3_9; - RHS9 += f3_9 * RHS3; -const double f4 = 1.0 / m_A11; - const double f4_9 = -f4 * m_A36; - m_A40 += m_A12 * f4_9; - m_A41 += m_A13 * f4_9; - RHS9 += f4_9 * RHS4; - const double f4_10 = -f4 * m_A42; - m_A44 += m_A12 * f4_10; - m_A45 += m_A13 * f4_10; - RHS10 += f4_10 * RHS4; -const double f5 = 1.0 / m_A14; - const double f5_10 = -f5 * m_A43; - m_A45 += m_A15 * f5_10; - m_A46 += m_A16 * f5_10; - RHS10 += f5_10 * RHS5; - const double f5_11 = -f5 * m_A47; - m_A48 += m_A15 * f5_11; - m_A49 += m_A16 * f5_11; - RHS11 += f5_11 * RHS5; -const double f6 = 1.0 / m_A19; - const double f6_7 = -f6 * m_A25; - m_A26 += m_A20 * f6_7; - m_A27 += m_A21 * f6_7; - m_A28 += m_A22 * f6_7; - RHS7 += f6_7 * RHS6; - const double f6_8 = -f6 * m_A31; - m_A32 += m_A20 * f6_8; - m_A33 += m_A21 * f6_8; - m_A34 += m_A22 * f6_8; - RHS8 += f6_8 * RHS6; - const double f6_9 = -f6 * m_A37; - m_A38 += m_A20 * f6_9; - m_A39 += m_A21 * f6_9; - m_A40 += m_A22 * f6_9; - RHS9 += f6_9 * RHS6; -const double f7 = 1.0 / m_A26; - const double f7_8 = -f7 * m_A32; - m_A33 += m_A27 * f7_8; - m_A34 += m_A28 * f7_8; - RHS8 += f7_8 * RHS7; - const double f7_9 = -f7 * m_A38; - m_A39 += m_A27 * f7_9; - m_A40 += m_A28 * f7_9; - RHS9 += f7_9 * RHS7; -const double f8 = 1.0 / m_A33; - const double f8_9 = -f8 * m_A39; - m_A40 += m_A34 * f8_9; - RHS9 += f8_9 * RHS8; -const double f9 = 1.0 / m_A40; - const double f9_10 = -f9 * m_A44; - m_A45 += m_A41 * f9_10; - RHS10 += f9_10 * RHS9; -const double f10 = 1.0 / m_A45; - const double f10_11 = -f10 * m_A48; - m_A49 += m_A46 * f10_11; - RHS11 += f10_11 * RHS10; - V[11] = RHS11 / m_A49; - double tmp10 = 0.0; - tmp10 += m_A46 * V[11]; - V[10] = (RHS10 - tmp10) / m_A45; + tmp10 += m_A29 * V[26]; + tmp10 += m_A30 * V[27]; + V[10] = (RHS10 - tmp10) / m_A28; double tmp9 = 0.0; - tmp9 += m_A41 * V[10]; - V[9] = (RHS9 - tmp9) / m_A40; + tmp9 += m_A25 * V[11]; + tmp9 += m_A26 * V[26]; + V[9] = (RHS9 - tmp9) / m_A24; double tmp8 = 0.0; - tmp8 += m_A34 * V[9]; - V[8] = (RHS8 - tmp8) / m_A33; + tmp8 += m_A21 * V[10]; + tmp8 += m_A22 * V[26]; + V[8] = (RHS8 - tmp8) / m_A20; double tmp7 = 0.0; - tmp7 += m_A27 * V[8]; - tmp7 += m_A28 * V[9]; - V[7] = (RHS7 - tmp7) / m_A26; + tmp7 += m_A17 * V[9]; + tmp7 += m_A18 * V[26]; + V[7] = (RHS7 - tmp7) / m_A16; double tmp6 = 0.0; - tmp6 += m_A20 * V[7]; - tmp6 += m_A21 * V[8]; - tmp6 += m_A22 * V[9]; - V[6] = (RHS6 - tmp6) / m_A19; + tmp6 += m_A14 * V[8]; + tmp6 += m_A15 * V[26]; + V[6] = (RHS6 - tmp6) / m_A13; double tmp5 = 0.0; - tmp5 += m_A15 * V[10]; - tmp5 += m_A16 * V[11]; - V[5] = (RHS5 - tmp5) / m_A14; + tmp5 += m_A11 * V[21]; + tmp5 += m_A12 * V[26]; + V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A12 * V[9]; - tmp4 += m_A13 * V[10]; - V[4] = (RHS4 - tmp4) / m_A11; + tmp4 += m_A9 * V[20]; + V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[6]; - tmp3 += m_A8 * V[7]; - tmp3 += m_A9 * V[8]; - tmp3 += m_A10 * V[9]; + tmp3 += m_A7 * V[22]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[6]; + tmp2 += m_A5 * V[17]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[7]; + tmp1 += m_A3 * V[16]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[8]; + tmp0 += m_A1 * V[18]; V[0] = (RHS0 - tmp0) / m_A0; } // breakout -static void nl_gcr_7a4e8b4f388d66d7_7_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_a59b19805d7e4461_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[4] + gt[5] + gt[6]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] + Idr[6] - go[5] * *cnV[5] - go[6] * *cnV[6]; - m_A6 = gt[8] + gt[9]; - m_A5 = m_A5 + go[8]; - m_A4 = m_A4 + go[9]; - double RHS2 = Idr[8] + Idr[9]; -const double f0 = 1.0 / m_A0; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A5 += go[7]; + m_A4 += go[8]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[9] * *cnV[9]; + const double f0 = 1.0 / m_A0; const double f0_2 = -f0 * m_A4; m_A6 += m_A1 * f0_2; RHS2 += f0_2 * RHS0; -const double f1 = 1.0 / m_A2; + const double f1 = 1.0 / m_A2; const double f1_2 = -f1 * m_A5; m_A6 += m_A3 * f1_2; RHS2 += f1_2 * RHS1; @@ -6077,301 +9970,520 @@ const double f1 = 1.0 / m_A2; } // 280zzzap -static void nl_gcr_7af598c34aca424d_135_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_a716c0b150a52aeb_135_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] - go[1] * *cnV[1]; - m_A2 = gt[10] + gt[11]; - m_A3 = m_A3 + go[10]; - double RHS1 = Idr[10] + Idr[11] - go[11] * *cnV[11]; - m_A4 = gt[20] + gt[21] + gt[22]; - m_A5 = m_A5 + go[20]; - double RHS2 = Idr[20] + Idr[21] + Idr[22] - go[21] * *cnV[21] - go[22] * *cnV[22]; - m_A6 = gt[30] + gt[31] + gt[32] + gt[33] + gt[34] + gt[35] + gt[36]; - m_A7 = m_A7 + go[30]; - double RHS3 = Idr[30] + Idr[31] + Idr[32] + Idr[33] + Idr[34] + Idr[35] + Idr[36] - go[31] * *cnV[31] - go[32] * *cnV[32] - go[33] * *cnV[33] - go[34] * *cnV[34] - go[35] * *cnV[35] - go[36] * *cnV[36]; - m_A8 = gt[40] + gt[41]; - m_A9 = m_A9 + go[40]; - double RHS4 = Idr[40] + Idr[41] - go[41] * *cnV[41]; - m_A10 = gt[50] + gt[51] + gt[52] + gt[53]; - m_A12 = m_A12 + go[50]; - m_A13 = m_A13 + go[51]; - m_A11 = m_A11 + go[52]; - double RHS5 = Idr[50] + Idr[51] + Idr[52] + Idr[53] - go[53] * *cnV[53]; - m_A14 = gt[60] + gt[61] + gt[62] + gt[63] + gt[64] + gt[65] + gt[66]; - m_A15 = m_A15 + go[60]; - double RHS6 = Idr[60] + Idr[61] + Idr[62] + Idr[63] + Idr[64] + Idr[65] + Idr[66] - go[61] * *cnV[61] - go[62] * *cnV[62] - go[63] * *cnV[63] - go[64] * *cnV[64] - go[65] * *cnV[65] - go[66] * *cnV[66]; - m_A16 = gt[70] + gt[71]; - m_A17 = m_A17 + go[70]; - m_A18 = m_A18 + go[71]; - double RHS7 = Idr[70] + Idr[71]; - m_A19 = gt[80] + gt[81] + gt[82]; - m_A20 = m_A20 + go[80]; - double RHS8 = Idr[80] + Idr[81] + Idr[82] - go[81] * *cnV[81] - go[82] * *cnV[82]; - m_A21 = gt[90] + gt[91]; - m_A22 = m_A22 + go[90]; - double RHS9 = Idr[90] + Idr[91] - go[91] * *cnV[91]; - m_A23 = gt[100] + gt[101]; - m_A24 = m_A24 + go[100]; - double RHS10 = Idr[100] + Idr[101] - go[101] * *cnV[101]; - m_A25 = gt[110] + gt[111] + gt[112]; - m_A27 = m_A27 + go[110]; - m_A26 = m_A26 + go[111]; - m_A26 = m_A26 + go[112]; - double RHS11 = Idr[110] + Idr[111] + Idr[112]; - m_A28 = gt[120] + gt[121] + gt[122] + gt[123] + gt[124] + gt[125] + gt[126]; - m_A29 = m_A29 + go[120]; - double RHS12 = Idr[120] + Idr[121] + Idr[122] + Idr[123] + Idr[124] + Idr[125] + Idr[126] - go[121] * *cnV[121] - go[122] * *cnV[122] - go[123] * *cnV[123] - go[124] * *cnV[124] - go[125] * *cnV[125] - go[126] * *cnV[126]; - m_A30 = gt[130] + gt[131] + gt[132]; - m_A31 = m_A31 + go[130]; - double RHS13 = Idr[130] + Idr[131] + Idr[132] - go[131] * *cnV[131] - go[132] * *cnV[132]; - m_A32 = gt[140] + gt[141] + gt[142] + gt[143]; - m_A34 = m_A34 + go[140]; - m_A33 = m_A33 + go[141]; - m_A35 = m_A35 + go[142]; - double RHS14 = Idr[140] + Idr[141] + Idr[142] + Idr[143] - go[143] * *cnV[143]; - m_A37 = gt[150] + gt[151]; - m_A36 = m_A36 + go[150]; - double RHS15 = Idr[150] + Idr[151] - go[151] * *cnV[151]; - m_A39 = gt[160] + gt[161] + gt[162] + gt[163]; - m_A38 = m_A38 + go[160]; - m_A40 = m_A40 + go[161]; - double RHS16 = Idr[160] + Idr[161] + Idr[162] + Idr[163] - go[162] * *cnV[162] - go[163] * *cnV[163]; - m_A42 = gt[170] + gt[171]; - m_A41 = m_A41 + go[170]; - double RHS17 = Idr[170] + Idr[171] - go[171] * *cnV[171]; - m_A45 = gt[180] + gt[181]; - m_A43 = m_A43 + go[180]; - m_A44 = m_A44 + go[181]; - double RHS18 = Idr[180] + Idr[181]; - m_A49 = gt[190] + gt[191]; - m_A48 = m_A48 + go[190]; - double RHS19 = Idr[190] + Idr[191] - go[191] * *cnV[191]; - m_A51 = gt[200] + gt[201] + gt[202] + gt[203]; - m_A53 = m_A53 + go[200]; - m_A50 = m_A50 + go[201]; - m_A54 = m_A54 + go[202]; - double RHS20 = Idr[200] + Idr[201] + Idr[202] + Idr[203] - go[203] * *cnV[203]; - m_A62 = gt[210] + gt[211] + gt[212] + gt[213] + gt[214] + gt[215] + gt[216] + gt[217] + gt[218]; - m_A55 = m_A55 + go[210]; - m_A58 = m_A58 + go[211]; - m_A58 = m_A58 + go[212]; - m_A57 = m_A57 + go[213]; - m_A56 = m_A56 + go[214]; - m_A65 = m_A65 + go[215]; - double RHS21 = Idr[210] + Idr[211] + Idr[212] + Idr[213] + Idr[214] + Idr[215] + Idr[216] + Idr[217] + Idr[218] - go[216] * *cnV[216] - go[217] * *cnV[217] - go[218] * *cnV[218]; - m_A70 = gt[220] + gt[221]; - m_A68 = m_A68 + go[220]; - m_A67 = m_A67 + go[221]; - double RHS22 = Idr[220] + Idr[221]; - m_A77 = gt[230] + gt[231] + gt[232] + gt[233]; - m_A76 = m_A76 + go[230]; - m_A78 = m_A78 + go[231]; - double RHS23 = Idr[230] + Idr[231] + Idr[232] + Idr[233] - go[232] * *cnV[232] - go[233] * *cnV[233]; - m_A83 = gt[240] + gt[241] + gt[242] + gt[243] + gt[244] + gt[245]; - m_A79 = m_A79 + go[240]; - m_A80 = m_A80 + go[241]; - m_A86 = m_A86 + go[242]; - double RHS24 = Idr[240] + Idr[241] + Idr[242] + Idr[243] + Idr[244] + Idr[245] - go[243] * *cnV[243] - go[244] * *cnV[244] - go[245] * *cnV[245]; - m_A89 = gt[250] + gt[251] + gt[252] + gt[253]; - m_A88 = m_A88 + go[250]; - m_A90 = m_A90 + go[251]; - double RHS25 = Idr[250] + Idr[251] + Idr[252] + Idr[253] - go[252] * *cnV[252] - go[253] * *cnV[253]; - m_A98 = gt[260] + gt[261] + gt[262] + gt[263] + gt[264] + gt[265]; - m_A91 = m_A91 + go[260]; - m_A92 = m_A92 + go[261]; - m_A93 = m_A93 + go[262]; - m_A101 = m_A101 + go[263]; - double RHS26 = Idr[260] + Idr[261] + Idr[262] + Idr[263] + Idr[264] + Idr[265] - go[264] * *cnV[264] - go[265] * *cnV[265]; - m_A111 = gt[270] + gt[271] + gt[272] + gt[273] + gt[274]; - m_A107 = m_A107 + go[270]; - m_A105 = m_A105 + go[271]; - m_A104 = m_A104 + go[272]; - m_A103 = m_A103 + go[273]; - m_A102 = m_A102 + go[274]; - double RHS27 = Idr[270] + Idr[271] + Idr[272] + Idr[273] + Idr[274]; - m_A122 = gt[280] + gt[281] + gt[282] + gt[283] + gt[284]; - m_A119 = m_A119 + go[280]; - m_A117 = m_A117 + go[281]; - m_A116 = m_A116 + go[282]; - m_A115 = m_A115 + go[283]; - m_A114 = m_A114 + go[284]; - double RHS28 = Idr[280] + Idr[281] + Idr[282] + Idr[283] + Idr[284]; - m_A134 = gt[290] + gt[291] + gt[292] + gt[293] + gt[294]; - m_A131 = m_A131 + go[290]; - m_A126 = m_A126 + go[291]; - m_A127 = m_A127 + go[292]; - m_A125 = m_A125 + go[293]; - m_A124 = m_A124 + go[294]; - double RHS29 = Idr[290] + Idr[291] + Idr[292] + Idr[293] + Idr[294]; -const double f0 = 1.0 / m_A0; + 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); + 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_A4 += gt[6]; + m_A5 += go[4]; + double RHS2 = Idr[4]; + RHS2 += Idr[5]; + RHS2 += Idr[6]; + RHS2 -= go[5] * *cnV[5]; + RHS2 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A7 += go[7]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[8] * *cnV[8]; + RHS3 -= go[9] * *cnV[9]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A9 += go[14]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + RHS4 -= go[15] * *cnV[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A12 += go[16]; + m_A13 += go[17]; + m_A11 += go[18]; + double RHS5 = Idr[16]; + 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]; + double RHS6 = Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; + RHS6 += Idr[24]; + RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 -= go[21] * *cnV[21]; + 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_A16 += gt[27]; + m_A16 += gt[28]; + m_A17 += go[27]; + m_A18 += go[28]; + double RHS7 = Idr[27]; + RHS7 += Idr[28]; + m_A19 += gt[29]; + m_A19 += gt[30]; + m_A19 += gt[31]; + m_A20 += go[29]; + double RHS8 = Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + RHS8 -= go[30] * *cnV[30]; + RHS8 -= go[31] * *cnV[31]; + m_A21 += gt[32]; + m_A21 += gt[33]; + m_A22 += go[32]; + double RHS9 = Idr[32]; + RHS9 += Idr[33]; + RHS9 -= go[33] * *cnV[33]; + m_A23 += gt[34]; + m_A23 += gt[35]; + m_A24 += go[34]; + double RHS10 = Idr[34]; + RHS10 += Idr[35]; + RHS10 -= go[35] * *cnV[35]; + m_A25 += gt[36]; + m_A25 += gt[37]; + m_A25 += gt[38]; + m_A27 += go[36]; + m_A26 += go[37]; + m_A26 += go[38]; + double RHS11 = Idr[36]; + RHS11 += Idr[37]; + RHS11 += Idr[38]; + m_A28 += gt[39]; + m_A28 += gt[40]; + m_A28 += gt[41]; + m_A28 += gt[42]; + m_A28 += gt[43]; + m_A28 += gt[44]; + m_A28 += gt[45]; + m_A29 += go[39]; + double RHS12 = Idr[39]; + RHS12 += Idr[40]; + RHS12 += Idr[41]; + RHS12 += Idr[42]; + RHS12 += Idr[43]; + RHS12 += Idr[44]; + RHS12 += Idr[45]; + RHS12 -= go[40] * *cnV[40]; + RHS12 -= go[41] * *cnV[41]; + RHS12 -= go[42] * *cnV[42]; + RHS12 -= go[43] * *cnV[43]; + RHS12 -= go[44] * *cnV[44]; + RHS12 -= go[45] * *cnV[45]; + m_A30 += gt[46]; + m_A30 += gt[47]; + m_A30 += gt[48]; + m_A31 += go[46]; + double RHS13 = Idr[46]; + RHS13 += Idr[47]; + RHS13 += Idr[48]; + RHS13 -= go[47] * *cnV[47]; + RHS13 -= go[48] * *cnV[48]; + m_A32 += gt[49]; + m_A32 += gt[50]; + m_A32 += gt[51]; + m_A32 += gt[52]; + m_A34 += go[49]; + m_A33 += go[50]; + m_A35 += go[51]; + double RHS14 = Idr[49]; + RHS14 += Idr[50]; + RHS14 += Idr[51]; + RHS14 += Idr[52]; + RHS14 -= go[52] * *cnV[52]; + m_A37 += gt[53]; + m_A37 += gt[54]; + m_A36 += go[53]; + double RHS15 = Idr[53]; + RHS15 += Idr[54]; + RHS15 -= go[54] * *cnV[54]; + m_A39 += gt[55]; + m_A39 += gt[56]; + m_A39 += gt[57]; + m_A39 += gt[58]; + m_A38 += go[55]; + m_A40 += go[56]; + double RHS16 = Idr[55]; + RHS16 += Idr[56]; + RHS16 += Idr[57]; + RHS16 += Idr[58]; + RHS16 -= go[57] * *cnV[57]; + RHS16 -= go[58] * *cnV[58]; + m_A42 += gt[59]; + m_A42 += gt[60]; + m_A41 += go[59]; + double RHS17 = Idr[59]; + RHS17 += Idr[60]; + RHS17 -= go[60] * *cnV[60]; + m_A45 += gt[61]; + m_A45 += gt[62]; + m_A43 += go[61]; + m_A44 += go[62]; + double RHS18 = Idr[61]; + RHS18 += Idr[62]; + m_A49 += gt[63]; + m_A49 += gt[64]; + m_A48 += go[63]; + double RHS19 = Idr[63]; + RHS19 += Idr[64]; + RHS19 -= go[64] * *cnV[64]; + m_A51 += gt[65]; + m_A51 += gt[66]; + m_A51 += gt[67]; + m_A51 += gt[68]; + m_A53 += go[65]; + m_A50 += go[66]; + m_A54 += go[67]; + double RHS20 = Idr[65]; + RHS20 += Idr[66]; + RHS20 += Idr[67]; + RHS20 += Idr[68]; + RHS20 -= go[68] * *cnV[68]; + m_A62 += gt[69]; + m_A62 += gt[70]; + m_A62 += gt[71]; + m_A62 += gt[72]; + m_A62 += gt[73]; + m_A62 += gt[74]; + m_A62 += gt[75]; + m_A62 += gt[76]; + m_A62 += gt[77]; + m_A55 += go[69]; + m_A58 += go[70]; + m_A58 += go[71]; + m_A57 += go[72]; + m_A56 += go[73]; + m_A65 += go[74]; + double RHS21 = Idr[69]; + RHS21 += Idr[70]; + RHS21 += Idr[71]; + RHS21 += Idr[72]; + RHS21 += Idr[73]; + RHS21 += Idr[74]; + RHS21 += Idr[75]; + RHS21 += Idr[76]; + RHS21 += Idr[77]; + RHS21 -= go[75] * *cnV[75]; + RHS21 -= go[76] * *cnV[76]; + RHS21 -= go[77] * *cnV[77]; + m_A70 += gt[78]; + m_A70 += gt[79]; + m_A68 += go[78]; + m_A67 += go[79]; + double RHS22 = Idr[78]; + RHS22 += Idr[79]; + m_A77 += gt[80]; + m_A77 += gt[81]; + m_A77 += gt[82]; + m_A77 += gt[83]; + m_A76 += go[80]; + m_A78 += go[81]; + double RHS23 = Idr[80]; + RHS23 += Idr[81]; + RHS23 += Idr[82]; + RHS23 += Idr[83]; + RHS23 -= go[82] * *cnV[82]; + RHS23 -= go[83] * *cnV[83]; + m_A83 += gt[84]; + m_A83 += gt[85]; + m_A83 += gt[86]; + m_A83 += gt[87]; + m_A83 += gt[88]; + m_A83 += gt[89]; + m_A79 += go[84]; + m_A80 += go[85]; + m_A86 += go[86]; + double RHS24 = Idr[84]; + RHS24 += Idr[85]; + RHS24 += Idr[86]; + RHS24 += Idr[87]; + RHS24 += Idr[88]; + RHS24 += Idr[89]; + RHS24 -= go[87] * *cnV[87]; + RHS24 -= go[88] * *cnV[88]; + RHS24 -= go[89] * *cnV[89]; + m_A89 += gt[90]; + m_A89 += gt[91]; + m_A89 += gt[92]; + m_A89 += gt[93]; + m_A88 += go[90]; + m_A90 += go[91]; + double RHS25 = Idr[90]; + RHS25 += Idr[91]; + RHS25 += Idr[92]; + RHS25 += Idr[93]; + RHS25 -= go[92] * *cnV[92]; + RHS25 -= go[93] * *cnV[93]; + m_A98 += gt[94]; + m_A98 += gt[95]; + m_A98 += gt[96]; + m_A98 += gt[97]; + m_A98 += gt[98]; + m_A98 += gt[99]; + m_A91 += go[94]; + m_A92 += go[95]; + m_A93 += go[96]; + m_A101 += go[97]; + double RHS26 = Idr[94]; + RHS26 += Idr[95]; + RHS26 += Idr[96]; + RHS26 += Idr[97]; + RHS26 += Idr[98]; + RHS26 += Idr[99]; + RHS26 -= go[98] * *cnV[98]; + RHS26 -= go[99] * *cnV[99]; + m_A111 += gt[100]; + m_A111 += gt[101]; + m_A111 += gt[102]; + m_A111 += gt[103]; + m_A111 += gt[104]; + m_A107 += go[100]; + m_A105 += go[101]; + m_A104 += go[102]; + m_A103 += go[103]; + m_A102 += go[104]; + double RHS27 = Idr[100]; + RHS27 += Idr[101]; + RHS27 += Idr[102]; + RHS27 += Idr[103]; + RHS27 += Idr[104]; + m_A122 += gt[105]; + m_A122 += gt[106]; + m_A122 += gt[107]; + m_A122 += gt[108]; + m_A122 += gt[109]; + m_A119 += go[105]; + m_A117 += go[106]; + m_A116 += go[107]; + m_A115 += go[108]; + m_A114 += go[109]; + double RHS28 = Idr[105]; + RHS28 += Idr[106]; + RHS28 += Idr[107]; + RHS28 += Idr[108]; + RHS28 += Idr[109]; + m_A134 += gt[110]; + m_A134 += gt[111]; + m_A134 += gt[112]; + m_A134 += gt[113]; + m_A134 += gt[114]; + m_A131 += go[110]; + m_A126 += go[111]; + m_A127 += go[112]; + m_A125 += go[113]; + m_A124 += go[114]; + double RHS29 = Idr[110]; + RHS29 += Idr[111]; + RHS29 += Idr[112]; + RHS29 += Idr[113]; + RHS29 += Idr[114]; + const double f0 = 1.0 / m_A0; const double f0_18 = -f0 * m_A43; m_A45 += m_A1 * f0_18; RHS18 += f0_18 * RHS0; -const double f1 = 1.0 / m_A2; + const double f1 = 1.0 / m_A2; const double f1_15 = -f1 * m_A36; m_A37 += m_A3 * f1_15; RHS15 += f1_15 * RHS1; const double f1_27 = -f1 * m_A102; m_A105 += m_A3 * f1_27; RHS27 += f1_27 * RHS1; -const double f2 = 1.0 / m_A4; + const double f2 = 1.0 / m_A4; const double f2_16 = -f2 * m_A38; m_A40 += m_A5 * f2_16; RHS16 += f2_16 * RHS2; const double f2_27 = -f2 * m_A103; m_A111 += m_A5 * f2_27; RHS27 += f2_27 * RHS2; -const double f3 = 1.0 / m_A6; + const double f3 = 1.0 / m_A6; const double f3_21 = -f3 * m_A55; m_A59 += m_A7 * f3_21; RHS21 += f3_21 * RHS3; -const double f4 = 1.0 / m_A8; + const double f4 = 1.0 / m_A8; const double f4_17 = -f4 * m_A41; m_A42 += m_A9 * f4_17; RHS17 += f4_17 * RHS4; const double f4_29 = -f4 * m_A124; m_A126 += m_A9 * f4_29; RHS29 += f4_29 * RHS4; -const double f5 = 1.0 / m_A10; + const double f5 = 1.0 / m_A10; const double f5_18 = -f5 * m_A44; m_A45 += m_A11 * f5_18; m_A46 += m_A12 * f5_18; @@ -6387,11 +10499,11 @@ const double f5 = 1.0 / m_A10; m_A107 += m_A12 * f5_27; m_A111 += m_A13 * f5_27; RHS27 += f5_27 * RHS5; -const double f6 = 1.0 / m_A14; + const double f6 = 1.0 / m_A14; const double f6_26 = -f6 * m_A91; m_A97 += m_A15 * f6_26; RHS26 += f6_26 * RHS6; -const double f7 = 1.0 / m_A16; + const double f7 = 1.0 / m_A16; const double f7_20 = -f7 * m_A50; m_A51 += m_A17 * f7_20; m_A52 += m_A18 * f7_20; @@ -6400,25 +10512,25 @@ const double f7 = 1.0 / m_A16; m_A61 += m_A17 * f7_21; m_A62 += m_A18 * f7_21; RHS21 += f7_21 * RHS7; -const double f8 = 1.0 / m_A19; + const double f8 = 1.0 / m_A19; const double f8_25 = -f8 * m_A88; m_A90 += m_A20 * f8_25; RHS25 += f8_25 * RHS8; const double f8_29 = -f8 * m_A125; m_A134 += m_A20 * f8_29; RHS29 += f8_29 * RHS8; -const double f9 = 1.0 / m_A21; + const double f9 = 1.0 / m_A21; const double f9_19 = -f9 * m_A48; m_A49 += m_A22 * f9_19; RHS19 += f9_19 * RHS9; const double f9_28 = -f9 * m_A114; m_A117 += m_A22 * f9_28; RHS28 += f9_28 * RHS9; -const double f10 = 1.0 / m_A23; + const double f10 = 1.0 / m_A23; const double f10_26 = -f10 * m_A92; m_A98 += m_A24 * f10_26; RHS26 += f10_26 * RHS10; -const double f11 = 1.0 / m_A25; + const double f11 = 1.0 / m_A25; const double f11_21 = -f11 * m_A58; m_A62 += m_A26 * f11_21; m_A63 += m_A27 * f11_21; @@ -6427,18 +10539,18 @@ const double f11 = 1.0 / m_A25; m_A69 += m_A26 * f11_22; m_A70 += m_A27 * f11_22; RHS22 += f11_22 * RHS11; -const double f12 = 1.0 / m_A28; + const double f12 = 1.0 / m_A28; const double f12_24 = -f12 * m_A79; m_A82 += m_A29 * f12_24; RHS24 += f12_24 * RHS12; -const double f13 = 1.0 / m_A30; + const double f13 = 1.0 / m_A30; const double f13_23 = -f13 * m_A76; m_A78 += m_A31 * f13_23; RHS23 += f13_23 * RHS13; const double f13_28 = -f13 * m_A115; m_A122 += m_A31 * f13_28; RHS28 += f13_28 * RHS13; -const double f14 = 1.0 / m_A32; + const double f14 = 1.0 / m_A32; const double f14_22 = -f14 * m_A68; m_A70 += m_A33 * f14_22; m_A71 += m_A34 * f14_22; @@ -6454,17 +10566,17 @@ const double f14 = 1.0 / m_A32; m_A119 += m_A34 * f14_28; m_A122 += m_A35 * f14_28; RHS28 += f14_28 * RHS14; -const double f15 = 1.0 / m_A37; + const double f15 = 1.0 / m_A37; const double f15_27 = -f15 * m_A105; RHS27 += f15_27 * RHS15; -const double f16 = 1.0 / m_A39; + const double f16 = 1.0 / m_A39; const double f16_21 = -f16 * m_A59; m_A65 += m_A40 * f16_21; RHS21 += f16_21 * RHS16; -const double f17 = 1.0 / m_A42; + const double f17 = 1.0 / m_A42; const double f17_29 = -f17 * m_A126; RHS29 += f17_29 * RHS17; -const double f18 = 1.0 / m_A45; + const double f18 = 1.0 / m_A45; const double f18_21 = -f18 * m_A60; m_A62 += m_A46 * f18_21; m_A65 += m_A47 * f18_21; @@ -6473,10 +10585,10 @@ const double f18 = 1.0 / m_A45; m_A107 += m_A46 * f18_27; m_A111 += m_A47 * f18_27; RHS27 += f18_27 * RHS18; -const double f19 = 1.0 / m_A49; + const double f19 = 1.0 / m_A49; const double f19_28 = -f19 * m_A117; RHS28 += f19_28 * RHS19; -const double f20 = 1.0 / m_A51; + const double f20 = 1.0 / m_A51; const double f20_21 = -f20 * m_A61; m_A62 += m_A52 * f20_21; m_A64 += m_A53 * f20_21; @@ -6492,7 +10604,7 @@ const double f20 = 1.0 / m_A51; m_A131 += m_A53 * f20_29; m_A134 += m_A54 * f20_29; RHS29 += f20_29 * RHS20; -const double f21 = 1.0 / m_A62; + const double f21 = 1.0 / m_A62; const double f21_22 = -f21 * m_A69; m_A70 += m_A63 * f21_22; m_A72 += m_A64 * f21_22; @@ -6517,7 +10629,7 @@ const double f21 = 1.0 / m_A62; m_A132 += m_A65 * f21_29; m_A134 += m_A66 * f21_29; RHS29 += f21_29 * RHS21; -const double f22 = 1.0 / m_A70; + const double f22 = 1.0 / m_A70; const double f22_24 = -f22 * m_A81; m_A83 += m_A71 * f22_24; m_A84 += m_A72 * f22_24; @@ -6553,11 +10665,11 @@ const double f22 = 1.0 / m_A70; m_A133 += m_A74 * f22_29; m_A134 += m_A75 * f22_29; RHS29 += f22_29 * RHS22; -const double f23 = 1.0 / m_A77; + const double f23 = 1.0 / m_A77; const double f23_24 = -f23 * m_A82; m_A86 += m_A78 * f23_24; RHS24 += f23_24 * RHS23; -const double f24 = 1.0 / m_A83; + const double f24 = 1.0 / m_A83; const double f24_26 = -f24 * m_A96; m_A98 += m_A84 * f24_26; m_A99 += m_A85 * f24_26; @@ -6582,11 +10694,11 @@ const double f24 = 1.0 / m_A83; m_A133 += m_A86 * f24_29; m_A134 += m_A87 * f24_29; RHS29 += f24_29 * RHS24; -const double f25 = 1.0 / m_A89; + const double f25 = 1.0 / m_A89; const double f25_26 = -f25 * m_A97; m_A101 += m_A90 * f25_26; RHS26 += f25_26 * RHS25; -const double f26 = 1.0 / m_A98; + const double f26 = 1.0 / m_A98; const double f26_27 = -f26 * m_A110; m_A111 += m_A99 * f26_27; m_A112 += m_A100 * f26_27; @@ -6602,7 +10714,7 @@ const double f26 = 1.0 / m_A98; m_A133 += m_A100 * f26_29; m_A134 += m_A101 * f26_29; RHS29 += f26_29 * RHS26; -const double f27 = 1.0 / m_A111; + const double f27 = 1.0 / m_A111; const double f27_28 = -f27 * m_A121; m_A122 += m_A112 * f27_28; m_A123 += m_A113 * f27_28; @@ -6611,7 +10723,7 @@ const double f27 = 1.0 / m_A111; m_A133 += m_A112 * f27_29; m_A134 += m_A113 * f27_29; RHS29 += f27_29 * RHS27; -const double f28 = 1.0 / m_A122; + const double f28 = 1.0 / m_A122; const double f28_29 = -f28 * m_A133; m_A134 += m_A123 * f28_29; RHS29 += f28_29 * RHS28; @@ -6724,1994 +10836,1788 @@ const double f28 = 1.0 / m_A122; V[0] = (RHS0 - tmp0) / m_A0; } -// kidniki -static void nl_gcr_7b1592d23e41ce56_37_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// 1942 +static void nl_gcr_b20cee3516465509_90_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3]; - m_A2 = m_A2 + go[0]; - m_A2 = m_A2 + go[1]; - m_A1 = m_A1 + go[2]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] - go[3] * *cnV[3]; - m_A3 = gt[8] + gt[9] + gt[10]; - m_A5 = m_A5 + go[8]; - m_A4 = m_A4 + go[9]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[10] * *cnV[10]; - m_A6 = gt[16] + gt[17] + gt[18] + gt[19]; - m_A7 = m_A7 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] + Idr[19] - go[17] * *cnV[17] - go[18] * *cnV[18] - go[19] * *cnV[19]; - m_A8 = gt[24] + gt[25] + gt[26] + gt[27]; - m_A11 = m_A11 + go[24]; - m_A9 = m_A9 + go[25]; - m_A10 = m_A10 + go[26]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] + Idr[27] - go[27] * *cnV[27]; - m_A14 = gt[32] + gt[33] + gt[34] + gt[35] + gt[36] + gt[37] + gt[38]; - m_A13 = m_A13 + go[32]; - m_A16 = m_A16 + go[33]; - m_A16 = m_A16 + go[34]; - m_A16 = m_A16 + go[35]; - m_A12 = m_A12 + go[36]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] + Idr[35] + Idr[36] + Idr[37] + Idr[38] - go[37] * *cnV[37] - go[38] * *cnV[38]; - m_A20 = gt[40] + gt[41] + gt[42]; - m_A17 = m_A17 + go[40]; - m_A18 = m_A18 + go[41]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] - go[42] * *cnV[42]; - m_A24 = gt[48] + gt[49] + gt[50]; - m_A25 = m_A25 + go[48]; - m_A23 = m_A23 + go[49]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] - go[50] * *cnV[50]; - m_A30 = gt[56] + gt[57] + gt[58] + gt[59] + gt[60] + gt[61]; - m_A27 = m_A27 + go[56]; - m_A28 = m_A28 + go[57]; - m_A28 = m_A28 + go[58]; - m_A28 = m_A28 + go[59]; - m_A26 = m_A26 + go[60]; - m_A26 = m_A26 + go[61]; - double RHS7 = Idr[56] + Idr[57] + Idr[58] + Idr[59] + Idr[60] + Idr[61]; - m_A36 = gt[64] + gt[65]; - m_A34 = m_A34 + go[64]; - m_A32 = m_A32 + go[65]; - double RHS8 = Idr[64] + Idr[65]; -const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A12; - m_A14 += m_A1 * f0_4; - m_A16 += m_A2 * f0_4; - RHS4 += f0_4 * RHS0; - const double f0_7 = -f0 * m_A26; - m_A28 += m_A1 * f0_7; - m_A30 += m_A2 * f0_7; - RHS7 += f0_7 * RHS0; -const double f1 = 1.0 / m_A3; - const double f1_4 = -f1 * m_A13; - m_A14 += m_A4 * f1_4; - m_A15 += m_A5 * f1_4; - RHS4 += f1_4 * RHS1; - const double f1_5 = -f1 * m_A17; - m_A19 += m_A4 * f1_5; - m_A20 += m_A5 * f1_5; - RHS5 += f1_5 * RHS1; -const double f2 = 1.0 / m_A6; - const double f2_6 = -f2 * m_A23; - m_A24 += m_A7 * f2_6; - RHS6 += f2_6 * RHS2; -const double f3 = 1.0 / m_A8; - const double f3_5 = -f3 * m_A18; - m_A20 += m_A9 * f3_5; - m_A21 += m_A10 * f3_5; - m_A22 += m_A11 * f3_5; - RHS5 += f3_5 * RHS3; - const double f3_7 = -f3 * m_A27; - m_A29 += m_A9 * f3_7; - m_A30 += m_A10 * f3_7; - m_A31 += m_A11 * f3_7; - RHS7 += f3_7 * RHS3; - const double f3_8 = -f3 * m_A32; - m_A33 += m_A9 * f3_8; - m_A35 += m_A10 * f3_8; - m_A36 += m_A11 * f3_8; - RHS8 += f3_8 * RHS3; -const double f4 = 1.0 / m_A14; - const double f4_5 = -f4 * m_A19; - m_A20 += m_A15 * f4_5; - m_A21 += m_A16 * f4_5; - RHS5 += f4_5 * RHS4; - const double f4_7 = -f4 * m_A28; - m_A29 += m_A15 * f4_7; - m_A30 += m_A16 * f4_7; - RHS7 += f4_7 * RHS4; -const double f5 = 1.0 / m_A20; - const double f5_7 = -f5 * m_A29; - m_A30 += m_A21 * f5_7; - m_A31 += m_A22 * f5_7; - RHS7 += f5_7 * RHS5; - const double f5_8 = -f5 * m_A33; - m_A35 += m_A21 * f5_8; - m_A36 += m_A22 * f5_8; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A7 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + m_A8 += gt[12]; + m_A8 += gt[13]; + m_A8 += gt[14]; + m_A9 += go[12]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 -= go[13] * *cnV[13]; + RHS4 -= go[14] * *cnV[14]; + m_A10 += gt[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A11 += go[15]; + double RHS5 = Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[16] * *cnV[16]; + RHS5 -= go[17] * *cnV[17]; + m_A12 += gt[18]; + m_A12 += gt[19]; + m_A12 += gt[20]; + m_A12 += gt[21]; + m_A12 += gt[22]; + m_A12 += gt[23]; + m_A12 += gt[24]; + m_A19 += go[18]; + m_A13 += go[19]; + m_A15 += go[20]; + m_A17 += go[21]; + m_A18 += go[22]; + m_A16 += go[23]; + m_A14 += go[24]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 += Idr[23]; + RHS6 += Idr[24]; + m_A20 += gt[25]; + m_A20 += gt[26]; + m_A22 += go[25]; + m_A21 += go[26]; + double RHS7 = Idr[25]; + RHS7 += Idr[26]; + m_A25 += gt[27]; + m_A25 += gt[28]; + m_A24 += go[27]; + m_A23 += go[28]; + double RHS8 = Idr[27]; + RHS8 += Idr[28]; + m_A35 += gt[29]; + m_A35 += gt[30]; + m_A33 += go[29]; + m_A32 += go[30]; + double RHS9 = Idr[29]; + RHS9 += Idr[30]; + m_A45 += gt[31]; + m_A45 += gt[32]; + m_A42 += go[31]; + m_A41 += go[32]; + double RHS10 = Idr[31]; + RHS10 += Idr[32]; + m_A55 += gt[33]; + m_A55 += gt[34]; + m_A51 += go[33]; + m_A50 += go[34]; + double RHS11 = Idr[33]; + RHS11 += Idr[34]; + m_A65 += gt[35]; + m_A65 += gt[36]; + m_A60 += go[35]; + m_A59 += go[36]; + double RHS12 = Idr[35]; + RHS12 += Idr[36]; + m_A75 += gt[37]; + m_A75 += gt[38]; + m_A69 += go[37]; + m_A68 += go[38]; + double RHS13 = Idr[37]; + RHS13 += Idr[38]; + m_A85 += gt[39]; + m_A85 += gt[40]; + m_A85 += gt[41]; + m_A78 += go[39]; + m_A77 += go[40]; + double RHS14 = Idr[39]; + RHS14 += Idr[40]; + RHS14 += Idr[41]; + RHS14 -= go[41] * *cnV[41]; + m_A89 += gt[42]; + m_A89 += gt[43]; + m_A87 += go[42]; + double RHS15 = Idr[42]; + RHS15 += Idr[43]; + RHS15 -= go[43] * *cnV[43]; + const double f0 = 1.0 / m_A0; + const double f0_9 = -f0 * m_A32; + m_A35 += m_A1 * f0_9; + RHS9 += f0_9 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_11 = -f1 * m_A50; + m_A55 += m_A3 * f1_11; + RHS11 += f1_11 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_13 = -f2 * m_A68; + m_A75 += m_A5 * f2_13; + RHS13 += f2_13 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_12 = -f3 * m_A59; + m_A65 += m_A7 * f3_12; + RHS12 += f3_12 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_10 = -f4 * m_A41; + m_A45 += m_A9 * f4_10; + RHS10 += f4_10 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_8 = -f5 * m_A23; + m_A25 += m_A11 * f5_8; RHS8 += f5_8 * RHS5; -const double f6 = 1.0 / m_A24; - const double f6_8 = -f6 * m_A34; - m_A36 += m_A25 * f6_8; - RHS8 += f6_8 * RHS6; -const double f7 = 1.0 / m_A30; - const double f7_8 = -f7 * m_A35; - m_A36 += m_A31 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A36; - double tmp7 = 0.0; - tmp7 += m_A31 * V[8]; - V[7] = (RHS7 - tmp7) / m_A30; - double tmp6 = 0.0; - tmp6 += m_A25 * V[8]; - V[6] = (RHS6 - tmp6) / m_A24; - double tmp5 = 0.0; - tmp5 += m_A21 * V[7]; - tmp5 += m_A22 * V[8]; - V[5] = (RHS5 - tmp5) / m_A20; - double tmp4 = 0.0; - tmp4 += m_A15 * V[5]; - tmp4 += m_A16 * V[7]; - V[4] = (RHS4 - tmp4) / m_A14; - double tmp3 = 0.0; - tmp3 += m_A9 * V[5]; - tmp3 += m_A10 * V[7]; - tmp3 += m_A11 * V[8]; - V[3] = (RHS3 - tmp3) / m_A8; - double tmp2 = 0.0; - tmp2 += m_A7 * V[6]; - V[2] = (RHS2 - tmp2) / m_A6; - double tmp1 = 0.0; - tmp1 += m_A4 * V[4]; - tmp1 += m_A5 * V[5]; - V[1] = (RHS1 - tmp1) / m_A3; - double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; - tmp0 += m_A2 * V[7]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// rebound -static void nl_gcr_7c58698d6a68f4a0_7_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] - go[1] * *cnV[1] - go[2] * *cnV[2] - go[3] * *cnV[3]; - m_A2 = gt[4] + gt[5]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] - go[5] * *cnV[5]; - m_A6 = gt[8] + gt[9] + gt[10] + gt[11]; - m_A5 = m_A5 + go[8]; - m_A4 = m_A4 + go[9]; - double RHS2 = Idr[8] + Idr[9] + Idr[10] + Idr[11] - go[10] * *cnV[10] - go[11] * *cnV[11]; -const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; - double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// gunfight -static void nl_gcr_7dbbdf7feecfa9bd_108_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] - go[1] * *cnV[1]; - m_A2 = gt[6] + gt[7]; - m_A3 = m_A3 + go[6]; - double RHS1 = Idr[6] + Idr[7] - go[7] * *cnV[7]; - m_A4 = gt[12] + gt[13]; - m_A5 = m_A5 + go[12]; - double RHS2 = Idr[12] + Idr[13] - go[13] * *cnV[13]; - m_A6 = gt[18] + gt[19]; - m_A7 = m_A7 + go[18]; - double RHS3 = Idr[18] + Idr[19] - go[19] * *cnV[19]; - m_A8 = gt[24] + gt[25]; - m_A9 = m_A9 + go[24]; - double RHS4 = Idr[24] + Idr[25] - go[25] * *cnV[25]; - m_A10 = gt[30] + gt[31] + gt[32] + gt[33]; - m_A11 = m_A11 + go[30]; - m_A12 = m_A12 + go[31]; - double RHS5 = Idr[30] + Idr[31] + Idr[32] + Idr[33] - go[32] * *cnV[32] - go[33] * *cnV[33]; - m_A13 = gt[36] + gt[37]; - m_A15 = m_A15 + go[36]; - m_A14 = m_A14 + go[37]; - double RHS6 = Idr[36] + Idr[37]; - m_A16 = gt[42] + gt[43]; - m_A18 = m_A18 + go[42]; - m_A17 = m_A17 + go[43]; - double RHS7 = Idr[42] + Idr[43]; - m_A20 = gt[48] + gt[49] + gt[50]; - m_A19 = m_A19 + go[48]; - m_A21 = m_A21 + go[49]; - double RHS8 = Idr[48] + Idr[49] + Idr[50] - go[50] * *cnV[50]; - m_A24 = gt[54] + gt[55] + gt[56]; - m_A23 = m_A23 + go[54]; - m_A25 = m_A25 + go[55]; - double RHS9 = Idr[54] + Idr[55] + Idr[56] - go[56] * *cnV[56]; - m_A28 = gt[60] + gt[61] + gt[62]; - m_A27 = m_A27 + go[60]; - m_A30 = m_A30 + go[61]; - double RHS10 = Idr[60] + Idr[61] + Idr[62] - go[62] * *cnV[62]; - m_A32 = gt[66] + gt[67] + gt[68]; - m_A31 = m_A31 + go[66]; - m_A33 = m_A33 + go[67]; - double RHS11 = Idr[66] + Idr[67] + Idr[68] - go[68] * *cnV[68]; - m_A35 = gt[72] + gt[73] + gt[74] + gt[75]; - m_A37 = m_A37 + go[72]; - m_A36 = m_A36 + go[73]; - double RHS12 = Idr[72] + Idr[73] + Idr[74] + Idr[75] - go[74] * *cnV[74] - go[75] * *cnV[75]; - m_A38 = gt[78] + gt[79] + gt[80]; - m_A40 = m_A40 + go[78]; - m_A39 = m_A39 + go[79]; - double RHS13 = Idr[78] + Idr[79] + Idr[80] - go[80] * *cnV[80]; - m_A41 = gt[84] + gt[85] + gt[86]; - m_A43 = m_A43 + go[84]; - m_A42 = m_A42 + go[85]; - double RHS14 = Idr[84] + Idr[85] + Idr[86] - go[86] * *cnV[86]; - m_A44 = gt[90] + gt[91] + gt[92]; - m_A46 = m_A46 + go[90]; - m_A45 = m_A45 + go[91]; - double RHS15 = Idr[90] + Idr[91] + Idr[92] - go[92] * *cnV[92]; - m_A49 = gt[96] + gt[97]; - m_A47 = m_A47 + go[96]; - m_A48 = m_A48 + go[97]; - double RHS16 = Idr[96] + Idr[97]; - m_A53 = gt[102] + gt[103]; - m_A51 = m_A51 + go[102]; - m_A52 = m_A52 + go[103]; - double RHS17 = Idr[102] + Idr[103]; - m_A56 = gt[108] + gt[109] + gt[110]; - m_A55 = m_A55 + go[108]; - m_A57 = m_A57 + go[109]; - double RHS18 = Idr[108] + Idr[109] + Idr[110] - go[110] * *cnV[110]; - m_A59 = gt[114] + gt[115]; - m_A58 = m_A58 + go[114]; - m_A60 = m_A60 + go[115]; - double RHS19 = Idr[114] + Idr[115]; - m_A62 = gt[120] + gt[121] + gt[122] + gt[123]; - m_A64 = m_A64 + go[120]; - m_A63 = m_A63 + go[121]; - m_A61 = m_A61 + go[122]; - double RHS20 = Idr[120] + Idr[121] + Idr[122] + Idr[123] - go[123] * *cnV[123]; - m_A67 = gt[126] + gt[127] + gt[128] + gt[129]; - m_A66 = m_A66 + go[126]; - m_A65 = m_A65 + go[127]; - m_A68 = m_A68 + go[128]; - double RHS21 = Idr[126] + Idr[127] + Idr[128] + Idr[129] - go[129] * *cnV[129]; - m_A70 = gt[132] + gt[133] + gt[134] + gt[135]; - m_A72 = m_A72 + go[132]; - m_A71 = m_A71 + go[133]; - m_A69 = m_A69 + go[134]; - double RHS22 = Idr[132] + Idr[133] + Idr[134] + Idr[135] - go[135] * *cnV[135]; - m_A77 = gt[138] + gt[139] + gt[140] + gt[141] + gt[142] + gt[143]; - m_A78 = m_A78 + go[138]; - m_A73 = m_A73 + go[139]; - m_A74 = m_A74 + go[140]; - m_A76 = m_A76 + go[141]; - double RHS23 = Idr[138] + Idr[139] + Idr[140] + Idr[141] + Idr[142] + Idr[143] - go[142] * *cnV[142] - go[143] * *cnV[143]; - m_A83 = gt[144] + gt[145] + gt[146] + gt[147] + gt[148] + gt[149]; - m_A84 = m_A84 + go[144]; - m_A79 = m_A79 + go[145]; - m_A80 = m_A80 + go[146]; - m_A82 = m_A82 + go[147]; - double RHS24 = Idr[144] + Idr[145] + Idr[146] + Idr[147] + Idr[148] + Idr[149] - go[148] * *cnV[148] - go[149] * *cnV[149]; - m_A89 = gt[150] + gt[151] + gt[152] + gt[153]; - m_A85 = m_A85 + go[150]; - m_A86 = m_A86 + go[151]; - m_A88 = m_A88 + go[152]; - m_A87 = m_A87 + go[153]; - double RHS25 = Idr[150] + Idr[151] + Idr[152] + Idr[153]; - m_A100 = gt[156] + gt[157] + gt[158] + gt[159] + gt[160] + gt[161]; - m_A98 = m_A98 + go[156]; - m_A91 = m_A91 + go[157]; - m_A92 = m_A92 + go[158]; - m_A93 = m_A93 + go[159]; - double RHS26 = Idr[156] + Idr[157] + Idr[158] + Idr[159] + Idr[160] + Idr[161] - go[160] * *cnV[160] - go[161] * *cnV[161]; - m_A107 = gt[162] + gt[163] + gt[164] + gt[165]; - m_A102 = m_A102 + go[162]; - m_A103 = m_A103 + go[163]; - m_A105 = m_A105 + go[164]; - m_A104 = m_A104 + go[165]; - double RHS27 = Idr[162] + Idr[163] + Idr[164] + Idr[165]; -const double f0 = 1.0 / m_A0; - const double f0_18 = -f0 * m_A55; - m_A56 += m_A1 * f0_18; - RHS18 += f0_18 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_16 = -f1 * m_A47; - m_A49 += m_A3 * f1_16; - RHS16 += f1_16 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_17 = -f2 * m_A51; - m_A53 += m_A5 * f2_17; - RHS17 += f2_17 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_22 = -f3 * m_A69; - m_A70 += m_A7 * f3_22; - RHS22 += f3_22 * RHS3; -const double f4 = 1.0 / m_A8; - const double f4_20 = -f4 * m_A61; - m_A62 += m_A9 * f4_20; - RHS20 += f4_20 * RHS4; -const double f5 = 1.0 / m_A10; - const double f5_21 = -f5 * m_A65; - m_A67 += m_A11 * f5_21; - m_A68 += m_A12 * f5_21; - RHS21 += f5_21 * RHS5; - const double f5_26 = -f5 * m_A91; - m_A98 += m_A11 * f5_26; - m_A100 += m_A12 * f5_26; - RHS26 += f5_26 * RHS5; -const double f6 = 1.0 / m_A13; - const double f6_8 = -f6 * m_A19; - m_A20 += m_A14 * f6_8; - m_A22 += m_A15 * f6_8; + const double f6 = 1.0 / m_A12; + const double f6_8 = -f6 * m_A24; + m_A25 += m_A13 * f6_8; + m_A26 += m_A14 * f6_8; + m_A27 += m_A15 * f6_8; + m_A28 += m_A16 * f6_8; + m_A29 += m_A17 * f6_8; + m_A30 += m_A18 * f6_8; + m_A31 += m_A19 * f6_8; RHS8 += f6_8 * RHS6; - const double f6_26 = -f6 * m_A92; - m_A94 += m_A14 * f6_26; - m_A100 += m_A15 * f6_26; - RHS26 += f6_26 * RHS6; -const double f7 = 1.0 / m_A16; - const double f7_9 = -f7 * m_A23; - m_A24 += m_A17 * f7_9; - m_A26 += m_A18 * f7_9; - RHS9 += f7_9 * RHS7; - const double f7_26 = -f7 * m_A93; - m_A95 += m_A17 * f7_26; - m_A100 += m_A18 * f7_26; - RHS26 += f7_26 * RHS7; -const double f8 = 1.0 / m_A20; - const double f8_10 = -f8 * m_A27; - m_A28 += m_A21 * f8_10; - m_A29 += m_A22 * f8_10; + const double f6_9 = -f6 * m_A33; + m_A34 += m_A13 * f6_9; + m_A35 += m_A14 * f6_9; + m_A36 += m_A15 * f6_9; + m_A37 += m_A16 * f6_9; + m_A38 += m_A17 * f6_9; + m_A39 += m_A18 * f6_9; + m_A40 += m_A19 * f6_9; + RHS9 += f6_9 * RHS6; + const double f6_10 = -f6 * m_A42; + m_A43 += m_A13 * f6_10; + m_A44 += m_A14 * f6_10; + m_A45 += m_A15 * f6_10; + m_A46 += m_A16 * f6_10; + m_A47 += m_A17 * f6_10; + m_A48 += m_A18 * f6_10; + m_A49 += m_A19 * f6_10; + RHS10 += f6_10 * RHS6; + const double f6_11 = -f6 * m_A51; + m_A52 += m_A13 * f6_11; + m_A53 += m_A14 * f6_11; + m_A54 += m_A15 * f6_11; + m_A55 += m_A16 * f6_11; + m_A56 += m_A17 * f6_11; + m_A57 += m_A18 * f6_11; + m_A58 += m_A19 * f6_11; + RHS11 += f6_11 * RHS6; + const double f6_12 = -f6 * m_A60; + m_A61 += m_A13 * f6_12; + m_A62 += m_A14 * f6_12; + m_A63 += m_A15 * f6_12; + m_A64 += m_A16 * f6_12; + m_A65 += m_A17 * f6_12; + m_A66 += m_A18 * f6_12; + m_A67 += m_A19 * f6_12; + RHS12 += f6_12 * RHS6; + const double f6_13 = -f6 * m_A69; + m_A70 += m_A13 * f6_13; + m_A71 += m_A14 * f6_13; + m_A72 += m_A15 * f6_13; + m_A73 += m_A16 * f6_13; + m_A74 += m_A17 * f6_13; + m_A75 += m_A18 * f6_13; + m_A76 += m_A19 * f6_13; + RHS13 += f6_13 * RHS6; + const double f6_14 = -f6 * m_A77; + m_A79 += m_A13 * f6_14; + m_A80 += m_A14 * f6_14; + m_A81 += m_A15 * f6_14; + m_A82 += m_A16 * f6_14; + m_A83 += m_A17 * f6_14; + m_A84 += m_A18 * f6_14; + m_A85 += m_A19 * f6_14; + RHS14 += f6_14 * RHS6; + const double f7 = 1.0 / m_A20; + const double f7_14 = -f7 * m_A78; + m_A85 += m_A21 * f7_14; + m_A86 += m_A22 * f7_14; + RHS14 += f7_14 * RHS7; + const double f7_15 = -f7 * m_A87; + m_A88 += m_A21 * f7_15; + m_A89 += m_A22 * f7_15; + RHS15 += f7_15 * RHS7; + const double f8 = 1.0 / m_A25; + const double f8_9 = -f8 * m_A34; + m_A35 += m_A26 * f8_9; + m_A36 += m_A27 * f8_9; + m_A37 += m_A28 * f8_9; + m_A38 += m_A29 * f8_9; + m_A39 += m_A30 * f8_9; + m_A40 += m_A31 * f8_9; + RHS9 += f8_9 * RHS8; + const double f8_10 = -f8 * m_A43; + m_A44 += m_A26 * f8_10; + m_A45 += m_A27 * f8_10; + m_A46 += m_A28 * f8_10; + m_A47 += m_A29 * f8_10; + m_A48 += m_A30 * f8_10; + m_A49 += m_A31 * f8_10; RHS10 += f8_10 * RHS8; - const double f8_26 = -f8 * m_A94; - m_A96 += m_A21 * f8_26; - m_A100 += m_A22 * f8_26; - RHS26 += f8_26 * RHS8; -const double f9 = 1.0 / m_A24; - const double f9_11 = -f9 * m_A31; - m_A32 += m_A25 * f9_11; - m_A34 += m_A26 * f9_11; + const double f8_11 = -f8 * m_A52; + m_A53 += m_A26 * f8_11; + m_A54 += m_A27 * f8_11; + m_A55 += m_A28 * f8_11; + m_A56 += m_A29 * f8_11; + m_A57 += m_A30 * f8_11; + m_A58 += m_A31 * f8_11; + RHS11 += f8_11 * RHS8; + const double f8_12 = -f8 * m_A61; + m_A62 += m_A26 * f8_12; + m_A63 += m_A27 * f8_12; + m_A64 += m_A28 * f8_12; + m_A65 += m_A29 * f8_12; + m_A66 += m_A30 * f8_12; + m_A67 += m_A31 * f8_12; + RHS12 += f8_12 * RHS8; + const double f8_13 = -f8 * m_A70; + m_A71 += m_A26 * f8_13; + m_A72 += m_A27 * f8_13; + m_A73 += m_A28 * f8_13; + m_A74 += m_A29 * f8_13; + m_A75 += m_A30 * f8_13; + m_A76 += m_A31 * f8_13; + RHS13 += f8_13 * RHS8; + const double f8_14 = -f8 * m_A79; + m_A80 += m_A26 * f8_14; + m_A81 += m_A27 * f8_14; + m_A82 += m_A28 * f8_14; + m_A83 += m_A29 * f8_14; + m_A84 += m_A30 * f8_14; + m_A85 += m_A31 * f8_14; + RHS14 += f8_14 * RHS8; + const double f9 = 1.0 / m_A35; + const double f9_10 = -f9 * m_A44; + m_A45 += m_A36 * f9_10; + m_A46 += m_A37 * f9_10; + m_A47 += m_A38 * f9_10; + m_A48 += m_A39 * f9_10; + m_A49 += m_A40 * f9_10; + RHS10 += f9_10 * RHS9; + const double f9_11 = -f9 * m_A53; + m_A54 += m_A36 * f9_11; + m_A55 += m_A37 * f9_11; + m_A56 += m_A38 * f9_11; + m_A57 += m_A39 * f9_11; + m_A58 += m_A40 * f9_11; RHS11 += f9_11 * RHS9; - const double f9_26 = -f9 * m_A95; - m_A97 += m_A25 * f9_26; - m_A100 += m_A26 * f9_26; - RHS26 += f9_26 * RHS9; -const double f10 = 1.0 / m_A28; - const double f10_26 = -f10 * m_A96; - m_A100 += m_A29 * f10_26; - m_A101 += m_A30 * f10_26; - RHS26 += f10_26 * RHS10; - const double f10_27 = -f10 * m_A102; - m_A106 += m_A29 * f10_27; - m_A107 += m_A30 * f10_27; - RHS27 += f10_27 * RHS10; -const double f11 = 1.0 / m_A32; - const double f11_25 = -f11 * m_A85; - m_A89 += m_A33 * f11_25; - m_A90 += m_A34 * f11_25; - RHS25 += f11_25 * RHS11; - const double f11_26 = -f11 * m_A97; - m_A99 += m_A33 * f11_26; - m_A100 += m_A34 * f11_26; - RHS26 += f11_26 * RHS11; -const double f12 = 1.0 / m_A35; - const double f12_23 = -f12 * m_A73; - m_A77 += m_A36 * f12_23; - m_A78 += m_A37 * f12_23; - RHS23 += f12_23 * RHS12; - const double f12_27 = -f12 * m_A103; - m_A105 += m_A36 * f12_27; - m_A107 += m_A37 * f12_27; - RHS27 += f12_27 * RHS12; -const double f13 = 1.0 / m_A38; - const double f13_24 = -f13 * m_A79; - m_A83 += m_A39 * f13_24; - m_A84 += m_A40 * f13_24; - RHS24 += f13_24 * RHS13; - const double f13_25 = -f13 * m_A86; - m_A88 += m_A39 * f13_25; - m_A89 += m_A40 * f13_25; - RHS25 += f13_25 * RHS13; -const double f14 = 1.0 / m_A41; - const double f14_16 = -f14 * m_A48; - m_A49 += m_A42 * f14_16; - m_A50 += m_A43 * f14_16; - RHS16 += f14_16 * RHS14; - const double f14_23 = -f14 * m_A74; - m_A75 += m_A42 * f14_23; - m_A77 += m_A43 * f14_23; - RHS23 += f14_23 * RHS14; -const double f15 = 1.0 / m_A44; - const double f15_17 = -f15 * m_A52; - m_A53 += m_A45 * f15_17; - m_A54 += m_A46 * f15_17; - RHS17 += f15_17 * RHS15; - const double f15_24 = -f15 * m_A80; - m_A81 += m_A45 * f15_24; - m_A83 += m_A46 * f15_24; - RHS24 += f15_24 * RHS15; -const double f16 = 1.0 / m_A49; - const double f16_23 = -f16 * m_A75; - m_A77 += m_A50 * f16_23; - RHS23 += f16_23 * RHS16; -const double f17 = 1.0 / m_A53; - const double f17_24 = -f17 * m_A81; - m_A83 += m_A54 * f17_24; - RHS24 += f17_24 * RHS17; -const double f18 = 1.0 / m_A56; - const double f18_19 = -f18 * m_A58; - m_A59 += m_A57 * f18_19; - RHS19 += f18_19 * RHS18; -const double f19 = 1.0 / m_A59; - const double f19_21 = -f19 * m_A66; - m_A67 += m_A60 * f19_21; - RHS21 += f19_21 * RHS19; -const double f20 = 1.0 / m_A62; - const double f20_24 = -f20 * m_A82; - m_A83 += m_A63 * f20_24; - m_A84 += m_A64 * f20_24; - RHS24 += f20_24 * RHS20; - const double f20_25 = -f20 * m_A87; - m_A88 += m_A63 * f20_25; - m_A89 += m_A64 * f20_25; - RHS25 += f20_25 * RHS20; -const double f21 = 1.0 / m_A67; - const double f21_26 = -f21 * m_A98; - m_A100 += m_A68 * f21_26; - RHS26 += f21_26 * RHS21; -const double f22 = 1.0 / m_A70; - const double f22_23 = -f22 * m_A76; - m_A77 += m_A71 * f22_23; - m_A78 += m_A72 * f22_23; - RHS23 += f22_23 * RHS22; - const double f22_27 = -f22 * m_A104; - m_A105 += m_A71 * f22_27; - m_A107 += m_A72 * f22_27; - RHS27 += f22_27 * RHS22; -const double f23 = 1.0 / m_A77; - const double f23_27 = -f23 * m_A105; - m_A107 += m_A78 * f23_27; - RHS27 += f23_27 * RHS23; -const double f24 = 1.0 / m_A83; - const double f24_25 = -f24 * m_A88; - m_A89 += m_A84 * f24_25; - RHS25 += f24_25 * RHS24; -const double f25 = 1.0 / m_A89; - const double f25_26 = -f25 * m_A99; - m_A100 += m_A90 * f25_26; - RHS26 += f25_26 * RHS25; -const double f26 = 1.0 / m_A100; - const double f26_27 = -f26 * m_A106; - m_A107 += m_A101 * f26_27; - RHS27 += f26_27 * RHS26; - V[27] = RHS27 / m_A107; - double tmp26 = 0.0; - tmp26 += m_A101 * V[27]; - V[26] = (RHS26 - tmp26) / m_A100; - double tmp25 = 0.0; - tmp25 += m_A90 * V[26]; - V[25] = (RHS25 - tmp25) / m_A89; - double tmp24 = 0.0; - tmp24 += m_A84 * V[25]; - V[24] = (RHS24 - tmp24) / m_A83; - double tmp23 = 0.0; - tmp23 += m_A78 * V[27]; - V[23] = (RHS23 - tmp23) / m_A77; - double tmp22 = 0.0; - tmp22 += m_A71 * V[23]; - tmp22 += m_A72 * V[27]; - V[22] = (RHS22 - tmp22) / m_A70; - double tmp21 = 0.0; - tmp21 += m_A68 * V[26]; - V[21] = (RHS21 - tmp21) / m_A67; - double tmp20 = 0.0; - tmp20 += m_A63 * V[24]; - tmp20 += m_A64 * V[25]; - V[20] = (RHS20 - tmp20) / m_A62; - double tmp19 = 0.0; - tmp19 += m_A60 * V[21]; - V[19] = (RHS19 - tmp19) / m_A59; - double tmp18 = 0.0; - tmp18 += m_A57 * V[19]; - V[18] = (RHS18 - tmp18) / m_A56; - double tmp17 = 0.0; - tmp17 += m_A54 * V[24]; - V[17] = (RHS17 - tmp17) / m_A53; - double tmp16 = 0.0; - tmp16 += m_A50 * V[23]; - V[16] = (RHS16 - tmp16) / m_A49; - double tmp15 = 0.0; - tmp15 += m_A45 * V[17]; - tmp15 += m_A46 * V[24]; - V[15] = (RHS15 - tmp15) / m_A44; - double tmp14 = 0.0; - tmp14 += m_A42 * V[16]; - tmp14 += m_A43 * V[23]; - V[14] = (RHS14 - tmp14) / m_A41; - double tmp13 = 0.0; - tmp13 += m_A39 * V[24]; - tmp13 += m_A40 * V[25]; - V[13] = (RHS13 - tmp13) / m_A38; - double tmp12 = 0.0; - tmp12 += m_A36 * V[23]; - tmp12 += m_A37 * V[27]; - V[12] = (RHS12 - tmp12) / m_A35; - double tmp11 = 0.0; - tmp11 += m_A33 * V[25]; - tmp11 += m_A34 * V[26]; - V[11] = (RHS11 - tmp11) / m_A32; - double tmp10 = 0.0; - tmp10 += m_A29 * V[26]; - tmp10 += m_A30 * V[27]; - V[10] = (RHS10 - tmp10) / m_A28; - double tmp9 = 0.0; - tmp9 += m_A25 * V[11]; - tmp9 += m_A26 * V[26]; - V[9] = (RHS9 - tmp9) / m_A24; - double tmp8 = 0.0; - tmp8 += m_A21 * V[10]; - tmp8 += m_A22 * V[26]; - V[8] = (RHS8 - tmp8) / m_A20; - double tmp7 = 0.0; - tmp7 += m_A17 * V[9]; - tmp7 += m_A18 * V[26]; - V[7] = (RHS7 - tmp7) / m_A16; - double tmp6 = 0.0; - tmp6 += m_A14 * V[8]; - tmp6 += m_A15 * V[26]; - V[6] = (RHS6 - tmp6) / m_A13; - double tmp5 = 0.0; - tmp5 += m_A11 * V[21]; - tmp5 += m_A12 * V[26]; - V[5] = (RHS5 - tmp5) / m_A10; - double tmp4 = 0.0; - tmp4 += m_A9 * V[20]; - V[4] = (RHS4 - tmp4) / m_A8; - double tmp3 = 0.0; - tmp3 += m_A7 * V[22]; - V[3] = (RHS3 - tmp3) / m_A6; - double tmp2 = 0.0; - tmp2 += m_A5 * V[17]; - V[2] = (RHS2 - tmp2) / m_A4; - double tmp1 = 0.0; - tmp1 += m_A3 * V[16]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[18]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// konami1x -static void nl_gcr_7f2f6447ea71d31e_49_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] - go[1] * *cnV[1]; - m_A2 = gt[8] + gt[9]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] - go[9] * *cnV[9]; - m_A4 = gt[16] + gt[17]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] - go[17] * *cnV[17]; - m_A6 = gt[24] + gt[25]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] - go[25] * *cnV[25]; - m_A8 = gt[32] + gt[33]; - m_A9 = m_A9 + go[32]; - double RHS4 = Idr[32] + Idr[33] - go[33] * *cnV[33]; - m_A10 = gt[40] + gt[41]; - m_A11 = m_A11 + go[40]; - double RHS5 = Idr[40] + Idr[41] - go[41] * *cnV[41]; - m_A12 = gt[48] + gt[49]; - m_A13 = m_A13 + go[48]; - double RHS6 = Idr[48] + Idr[49] - go[49] * *cnV[49]; - m_A14 = gt[56] + gt[57]; - m_A15 = m_A15 + go[56]; - double RHS7 = Idr[56] + Idr[57] - go[57] * *cnV[57]; - m_A16 = gt[64] + gt[65] + gt[66] + gt[67] + gt[68] + gt[69] + gt[70]; - m_A17 = m_A17 + go[64]; - double RHS8 = Idr[64] + Idr[65] + Idr[66] + Idr[67] + Idr[68] + Idr[69] + Idr[70] - go[65] * *cnV[65] - go[66] * *cnV[66] - go[67] * *cnV[67] - go[68] * *cnV[68] - go[69] * *cnV[69] - go[70] * *cnV[70]; - m_A18 = gt[72] + gt[73]; - m_A19 = m_A19 + go[72]; - double RHS9 = Idr[72] + Idr[73] - go[73] * *cnV[73]; - m_A20 = gt[80] + gt[81]; - m_A21 = m_A21 + go[80]; - double RHS10 = Idr[80] + Idr[81] - go[81] * *cnV[81]; - m_A25 = gt[88] + gt[89] + gt[90] + gt[91]; - m_A26 = m_A26 + go[88]; - m_A24 = m_A24 + go[89]; - m_A23 = m_A23 + go[90]; - m_A22 = m_A22 + go[91]; - double RHS11 = Idr[88] + Idr[89] + Idr[90] + Idr[91]; - m_A30 = gt[96] + gt[97] + gt[98] + gt[99]; - m_A31 = m_A31 + go[96]; - m_A29 = m_A29 + go[97]; - m_A28 = m_A28 + go[98]; - m_A27 = m_A27 + go[99]; - double RHS12 = Idr[96] + Idr[97] + Idr[98] + Idr[99]; - m_A35 = gt[104] + gt[105] + gt[106] + gt[107]; - m_A36 = m_A36 + go[104]; - m_A34 = m_A34 + go[105]; - m_A33 = m_A33 + go[106]; - m_A32 = m_A32 + go[107]; - double RHS13 = Idr[104] + Idr[105] + Idr[106] + Idr[107]; - m_A38 = gt[112] + gt[113] + gt[114]; - m_A37 = m_A37 + go[112]; - m_A39 = m_A39 + go[113]; - double RHS14 = Idr[112] + Idr[113] + Idr[114] - go[114] * *cnV[114]; - m_A43 = gt[120] + gt[121] + gt[122] + gt[123] + gt[124]; - m_A44 = m_A44 + go[120]; - m_A42 = m_A42 + go[121]; - m_A41 = m_A41 + go[122]; - m_A40 = m_A40 + go[123]; - double RHS15 = Idr[120] + Idr[121] + Idr[122] + Idr[123] + Idr[124] - go[124] * *cnV[124]; - m_A48 = gt[128] + gt[129] + gt[130] + gt[131] + gt[132]; - m_A45 = m_A45 + go[128]; - m_A46 = m_A46 + go[129]; - m_A47 = m_A47 + go[130]; - double RHS16 = Idr[128] + Idr[129] + Idr[130] + Idr[131] + Idr[132] - go[131] * *cnV[131] - go[132] * *cnV[132]; -const double f0 = 1.0 / m_A0; - const double f0_11 = -f0 * m_A22; - m_A25 += m_A1 * f0_11; - RHS11 += f0_11 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_11 = -f1 * m_A23; - m_A25 += m_A3 * f1_11; - RHS11 += f1_11 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_11 = -f2 * m_A24; - m_A25 += m_A5 * f2_11; - RHS11 += f2_11 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_12 = -f3 * m_A27; - m_A30 += m_A7 * f3_12; - RHS12 += f3_12 * RHS3; -const double f4 = 1.0 / m_A8; - const double f4_12 = -f4 * m_A28; - m_A30 += m_A9 * f4_12; - RHS12 += f4_12 * RHS4; -const double f5 = 1.0 / m_A10; - const double f5_12 = -f5 * m_A29; - m_A30 += m_A11 * f5_12; - RHS12 += f5_12 * RHS5; -const double f6 = 1.0 / m_A12; - const double f6_13 = -f6 * m_A32; - m_A35 += m_A13 * f6_13; - RHS13 += f6_13 * RHS6; -const double f7 = 1.0 / m_A14; - const double f7_13 = -f7 * m_A33; - m_A35 += m_A15 * f7_13; - RHS13 += f7_13 * RHS7; -const double f8 = 1.0 / m_A16; - const double f8_16 = -f8 * m_A45; - m_A47 += m_A17 * f8_16; - RHS16 += f8_16 * RHS8; -const double f9 = 1.0 / m_A18; - const double f9_13 = -f9 * m_A34; - m_A35 += m_A19 * f9_13; + const double f9_12 = -f9 * m_A62; + m_A63 += m_A36 * f9_12; + m_A64 += m_A37 * f9_12; + m_A65 += m_A38 * f9_12; + m_A66 += m_A39 * f9_12; + m_A67 += m_A40 * f9_12; + RHS12 += f9_12 * RHS9; + const double f9_13 = -f9 * m_A71; + m_A72 += m_A36 * f9_13; + m_A73 += m_A37 * f9_13; + m_A74 += m_A38 * f9_13; + m_A75 += m_A39 * f9_13; + m_A76 += m_A40 * f9_13; RHS13 += f9_13 * RHS9; -const double f10 = 1.0 / m_A20; - const double f10_14 = -f10 * m_A37; - m_A38 += m_A21 * f10_14; + const double f9_14 = -f9 * m_A80; + m_A81 += m_A36 * f9_14; + m_A82 += m_A37 * f9_14; + m_A83 += m_A38 * f9_14; + m_A84 += m_A39 * f9_14; + m_A85 += m_A40 * f9_14; + RHS14 += f9_14 * RHS9; + const double f10 = 1.0 / m_A45; + const double f10_11 = -f10 * m_A54; + m_A55 += m_A46 * f10_11; + m_A56 += m_A47 * f10_11; + m_A57 += m_A48 * f10_11; + m_A58 += m_A49 * f10_11; + RHS11 += f10_11 * RHS10; + const double f10_12 = -f10 * m_A63; + m_A64 += m_A46 * f10_12; + m_A65 += m_A47 * f10_12; + m_A66 += m_A48 * f10_12; + m_A67 += m_A49 * f10_12; + RHS12 += f10_12 * RHS10; + const double f10_13 = -f10 * m_A72; + m_A73 += m_A46 * f10_13; + m_A74 += m_A47 * f10_13; + m_A75 += m_A48 * f10_13; + m_A76 += m_A49 * f10_13; + RHS13 += f10_13 * RHS10; + const double f10_14 = -f10 * m_A81; + m_A82 += m_A46 * f10_14; + m_A83 += m_A47 * f10_14; + m_A84 += m_A48 * f10_14; + m_A85 += m_A49 * f10_14; RHS14 += f10_14 * RHS10; -const double f11 = 1.0 / m_A25; - const double f11_15 = -f11 * m_A40; - m_A43 += m_A26 * f11_15; - RHS15 += f11_15 * RHS11; -const double f12 = 1.0 / m_A30; - const double f12_15 = -f12 * m_A41; - m_A43 += m_A31 * f12_15; - RHS15 += f12_15 * RHS12; -const double f13 = 1.0 / m_A35; - const double f13_15 = -f13 * m_A42; - m_A43 += m_A36 * f13_15; - RHS15 += f13_15 * RHS13; -const double f14 = 1.0 / m_A38; - const double f14_16 = -f14 * m_A46; - m_A48 += m_A39 * f14_16; - RHS16 += f14_16 * RHS14; -const double f15 = 1.0 / m_A43; - const double f15_16 = -f15 * m_A47; - m_A48 += m_A44 * f15_16; - RHS16 += f15_16 * RHS15; - V[16] = RHS16 / m_A48; - double tmp15 = 0.0; - tmp15 += m_A44 * V[16]; - V[15] = (RHS15 - tmp15) / m_A43; + const double f11 = 1.0 / m_A55; + const double f11_12 = -f11 * m_A64; + m_A65 += m_A56 * f11_12; + m_A66 += m_A57 * f11_12; + m_A67 += m_A58 * f11_12; + RHS12 += f11_12 * RHS11; + const double f11_13 = -f11 * m_A73; + m_A74 += m_A56 * f11_13; + m_A75 += m_A57 * f11_13; + m_A76 += m_A58 * f11_13; + RHS13 += f11_13 * RHS11; + const double f11_14 = -f11 * m_A82; + m_A83 += m_A56 * f11_14; + m_A84 += m_A57 * f11_14; + m_A85 += m_A58 * f11_14; + RHS14 += f11_14 * RHS11; + const double f12 = 1.0 / m_A65; + const double f12_13 = -f12 * m_A74; + m_A75 += m_A66 * f12_13; + m_A76 += m_A67 * f12_13; + RHS13 += f12_13 * RHS12; + const double f12_14 = -f12 * m_A83; + m_A84 += m_A66 * f12_14; + m_A85 += m_A67 * f12_14; + RHS14 += f12_14 * RHS12; + const double f13 = 1.0 / m_A75; + const double f13_14 = -f13 * m_A84; + m_A85 += m_A76 * f13_14; + RHS14 += f13_14 * RHS13; + const double f14 = 1.0 / m_A85; + const double f14_15 = -f14 * m_A88; + m_A89 += m_A86 * f14_15; + RHS15 += f14_15 * RHS14; + V[15] = RHS15 / m_A89; double tmp14 = 0.0; - tmp14 += m_A39 * V[16]; - V[14] = (RHS14 - tmp14) / m_A38; + tmp14 += m_A86 * V[15]; + V[14] = (RHS14 - tmp14) / m_A85; double tmp13 = 0.0; - tmp13 += m_A36 * V[15]; - V[13] = (RHS13 - tmp13) / m_A35; + tmp13 += m_A76 * V[14]; + V[13] = (RHS13 - tmp13) / m_A75; double tmp12 = 0.0; - tmp12 += m_A31 * V[15]; - V[12] = (RHS12 - tmp12) / m_A30; + tmp12 += m_A66 * V[13]; + tmp12 += m_A67 * V[14]; + V[12] = (RHS12 - tmp12) / m_A65; double tmp11 = 0.0; - tmp11 += m_A26 * V[15]; - V[11] = (RHS11 - tmp11) / m_A25; + tmp11 += m_A56 * V[12]; + tmp11 += m_A57 * V[13]; + tmp11 += m_A58 * V[14]; + V[11] = (RHS11 - tmp11) / m_A55; double tmp10 = 0.0; - tmp10 += m_A21 * V[14]; - V[10] = (RHS10 - tmp10) / m_A20; + tmp10 += m_A46 * V[11]; + tmp10 += m_A47 * V[12]; + tmp10 += m_A48 * V[13]; + tmp10 += m_A49 * V[14]; + V[10] = (RHS10 - tmp10) / m_A45; double tmp9 = 0.0; - tmp9 += m_A19 * V[13]; - V[9] = (RHS9 - tmp9) / m_A18; + tmp9 += m_A36 * V[10]; + tmp9 += m_A37 * V[11]; + tmp9 += m_A38 * V[12]; + tmp9 += m_A39 * V[13]; + tmp9 += m_A40 * V[14]; + V[9] = (RHS9 - tmp9) / m_A35; double tmp8 = 0.0; - tmp8 += m_A17 * V[15]; - V[8] = (RHS8 - tmp8) / m_A16; + tmp8 += m_A26 * V[9]; + tmp8 += m_A27 * V[10]; + tmp8 += m_A28 * V[11]; + tmp8 += m_A29 * V[12]; + tmp8 += m_A30 * V[13]; + tmp8 += m_A31 * V[14]; + V[8] = (RHS8 - tmp8) / m_A25; double tmp7 = 0.0; - tmp7 += m_A15 * V[13]; - V[7] = (RHS7 - tmp7) / m_A14; + tmp7 += m_A21 * V[14]; + tmp7 += m_A22 * V[15]; + V[7] = (RHS7 - tmp7) / m_A20; double tmp6 = 0.0; - tmp6 += m_A13 * V[13]; + tmp6 += m_A13 * V[8]; + tmp6 += m_A14 * V[9]; + tmp6 += m_A15 * V[10]; + tmp6 += m_A16 * V[11]; + tmp6 += m_A17 * V[12]; + tmp6 += m_A18 * V[13]; + tmp6 += m_A19 * V[14]; V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A11 * V[12]; + tmp5 += m_A11 * V[8]; V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[12]; + tmp4 += m_A9 * V[10]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; tmp3 += m_A7 * V[12]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[11]; + tmp2 += m_A5 * V[13]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; tmp1 += m_A3 * V[11]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[11]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// dpatrol -static void nl_gcr_81bfac76b696d9f3_22_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[6] + gt[7] + gt[8] + gt[9]; - m_A4 = m_A4 + go[6]; - m_A3 = m_A3 + go[7]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[6] + Idr[7] + Idr[8] + Idr[9] - go[9] * *cnV[9]; - m_A5 = gt[12] + gt[13] + gt[14] + gt[15]; - m_A7 = m_A7 + go[12]; - m_A6 = m_A6 + go[13]; - m_A6 = m_A6 + go[14]; - double RHS2 = Idr[12] + Idr[13] + Idr[14] + Idr[15] - go[15] * *cnV[15]; - m_A10 = gt[18] + gt[19] + gt[20] + gt[21] + gt[22]; - m_A12 = m_A12 + go[18]; - m_A9 = m_A9 + go[19]; - m_A9 = m_A9 + go[20]; - m_A8 = m_A8 + go[21]; - m_A8 = m_A8 + go[22]; - double RHS3 = Idr[18] + Idr[19] + Idr[20] + Idr[21] + Idr[22]; - m_A16 = gt[24] + gt[25] + gt[26]; - m_A17 = m_A17 + go[24]; - m_A14 = m_A14 + go[25]; - m_A13 = m_A13 + go[26]; - double RHS4 = Idr[24] + Idr[25] + Idr[26]; - m_A21 = gt[30] + gt[31] + gt[32]; - m_A20 = m_A20 + go[30]; - m_A19 = m_A19 + go[31]; - m_A18 = m_A18 + go[32]; - double RHS5 = Idr[30] + Idr[31] + Idr[32]; -const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A18; - m_A21 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A8; - m_A10 += m_A3 * f1_3; - m_A11 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; - const double f1_4 = -f1 * m_A13; - m_A15 += m_A3 * f1_4; - m_A16 += m_A4 * f1_4; - RHS4 += f1_4 * RHS1; -const double f2 = 1.0 / m_A5; - const double f2_3 = -f2 * m_A9; - m_A10 += m_A6 * f2_3; - m_A11 += m_A7 * f2_3; - RHS3 += f2_3 * RHS2; - const double f2_4 = -f2 * m_A14; - m_A15 += m_A6 * f2_4; - m_A16 += m_A7 * f2_4; - RHS4 += f2_4 * RHS2; -const double f3 = 1.0 / m_A10; - const double f3_4 = -f3 * m_A15; - m_A16 += m_A11 * f3_4; - m_A17 += m_A12 * f3_4; - RHS4 += f3_4 * RHS3; - const double f3_5 = -f3 * m_A19; - m_A20 += m_A11 * f3_5; - m_A21 += m_A12 * f3_5; - RHS5 += f3_5 * RHS3; -const double f4 = 1.0 / m_A16; - const double f4_5 = -f4 * m_A20; - m_A21 += m_A17 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A21; - double tmp4 = 0.0; - tmp4 += m_A17 * V[5]; - V[4] = (RHS4 - tmp4) / m_A16; - double tmp3 = 0.0; - tmp3 += m_A11 * V[4]; - tmp3 += m_A12 * V[5]; - V[3] = (RHS3 - tmp3) / m_A10; - double tmp2 = 0.0; - tmp2 += m_A6 * V[3]; - tmp2 += m_A7 * V[4]; - V[2] = (RHS2 - tmp2) / m_A5; - double tmp1 = 0.0; - tmp1 += m_A3 * V[3]; - tmp1 += m_A4 * V[4]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// breakout -static void nl_gcr_876240e48d904d1f_7_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[4] + gt[5] + gt[6] + gt[7]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] + Idr[6] + Idr[7] - go[5] * *cnV[5] - go[6] * *cnV[6] - go[7] * *cnV[7]; - m_A6 = gt[8] + gt[9] + gt[10]; - m_A5 = m_A5 + go[8]; - m_A4 = m_A4 + go[9]; - double RHS2 = Idr[8] + Idr[9] + Idr[10] - go[10] * *cnV[10]; -const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; - double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; + tmp0 += m_A1 * V[9]; V[0] = (RHS0 - tmp0) / m_A0; } -// konami2x -static void nl_gcr_8e55e5f9e065890e_85_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// segas16b_audio +static void nl_gcr_b71f53c9e7a6b4a9_111_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] - go[1] * *cnV[1]; - m_A2 = gt[8] + gt[9]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] - go[9] * *cnV[9]; - m_A4 = gt[16] + gt[17]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] - go[17] * *cnV[17]; - m_A6 = gt[24] + gt[25]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] - go[25] * *cnV[25]; - m_A8 = gt[32] + gt[33]; - m_A9 = m_A9 + go[32]; - double RHS4 = Idr[32] + Idr[33] - go[33] * *cnV[33]; - m_A10 = gt[40] + gt[41]; - m_A11 = m_A11 + go[40]; - double RHS5 = Idr[40] + Idr[41] - go[41] * *cnV[41]; - m_A12 = gt[48] + gt[49]; - m_A13 = m_A13 + go[48]; - double RHS6 = Idr[48] + Idr[49] - go[49] * *cnV[49]; - m_A14 = gt[56] + gt[57]; - m_A15 = m_A15 + go[56]; - double RHS7 = Idr[56] + Idr[57] - go[57] * *cnV[57]; - m_A16 = gt[64] + gt[65]; - m_A17 = m_A17 + go[64]; - double RHS8 = Idr[64] + Idr[65] - go[65] * *cnV[65]; - m_A18 = gt[72] + gt[73]; - m_A19 = m_A19 + go[72]; - double RHS9 = Idr[72] + Idr[73] - go[73] * *cnV[73]; - m_A20 = gt[80] + gt[81]; - m_A21 = m_A21 + go[80]; - double RHS10 = Idr[80] + Idr[81] - go[81] * *cnV[81]; - m_A22 = gt[88] + gt[89]; - m_A23 = m_A23 + go[88]; - double RHS11 = Idr[88] + Idr[89] - go[89] * *cnV[89]; - m_A24 = gt[96] + gt[97]; - m_A25 = m_A25 + go[96]; - double RHS12 = Idr[96] + Idr[97] - go[97] * *cnV[97]; - m_A26 = gt[104] + gt[105] + gt[106] + gt[107] + gt[108] + gt[109] + gt[110]; - m_A27 = m_A27 + go[104]; - double RHS13 = Idr[104] + Idr[105] + Idr[106] + Idr[107] + Idr[108] + Idr[109] + Idr[110] - go[105] * *cnV[105] - go[106] * *cnV[106] - go[107] * *cnV[107] - go[108] * *cnV[108] - go[109] * *cnV[109] - go[110] * *cnV[110]; - m_A28 = gt[112] + gt[113]; - m_A29 = m_A29 + go[112]; - double RHS14 = Idr[112] + Idr[113] - go[113] * *cnV[113]; - m_A30 = gt[120] + gt[121]; - m_A31 = m_A31 + go[120]; - double RHS15 = Idr[120] + Idr[121] - go[121] * *cnV[121]; - m_A35 = gt[128] + gt[129] + gt[130] + gt[131]; - m_A36 = m_A36 + go[128]; - m_A34 = m_A34 + go[129]; - m_A33 = m_A33 + go[130]; - m_A32 = m_A32 + go[131]; - double RHS16 = Idr[128] + Idr[129] + Idr[130] + Idr[131]; - m_A37 = gt[136] + gt[137]; - m_A38 = m_A38 + go[136]; - double RHS17 = Idr[136] + Idr[137] - go[137] * *cnV[137]; - m_A39 = gt[144] + gt[145]; - m_A40 = m_A40 + go[144]; - double RHS18 = Idr[144] + Idr[145] - go[145] * *cnV[145]; - m_A41 = gt[152] + gt[153]; - m_A42 = m_A42 + go[152]; - double RHS19 = Idr[152] + Idr[153] - go[153] * *cnV[153]; - m_A43 = gt[160] + gt[161]; - m_A44 = m_A44 + go[160]; - double RHS20 = Idr[160] + Idr[161] - go[161] * *cnV[161]; - m_A46 = gt[168] + gt[169] + gt[170]; - m_A45 = m_A45 + go[168]; - m_A47 = m_A47 + go[169]; - double RHS21 = Idr[168] + Idr[169] + Idr[170] - go[170] * *cnV[170]; - m_A51 = gt[176] + gt[177] + gt[178] + gt[179]; - m_A52 = m_A52 + go[176]; - m_A50 = m_A50 + go[177]; - m_A49 = m_A49 + go[178]; - m_A48 = m_A48 + go[179]; - double RHS22 = Idr[176] + Idr[177] + Idr[178] + Idr[179]; - m_A56 = gt[184] + gt[185] + gt[186] + gt[187]; - m_A57 = m_A57 + go[184]; - m_A55 = m_A55 + go[185]; - m_A54 = m_A54 + go[186]; - m_A53 = m_A53 + go[187]; - double RHS23 = Idr[184] + Idr[185] + Idr[186] + Idr[187]; - m_A61 = gt[192] + gt[193] + gt[194] + gt[195]; - m_A62 = m_A62 + go[192]; - m_A60 = m_A60 + go[193]; - m_A59 = m_A59 + go[194]; - m_A58 = m_A58 + go[195]; - double RHS24 = Idr[192] + Idr[193] + Idr[194] + Idr[195]; - m_A66 = gt[200] + gt[201] + gt[202] + gt[203]; - m_A67 = m_A67 + go[200]; - m_A65 = m_A65 + go[201]; - m_A64 = m_A64 + go[202]; - m_A63 = m_A63 + go[203]; - double RHS25 = Idr[200] + Idr[201] + Idr[202] + Idr[203]; - m_A71 = gt[208] + gt[209] + gt[210] + gt[211]; - m_A72 = m_A72 + go[208]; - m_A70 = m_A70 + go[209]; - m_A69 = m_A69 + go[210]; - m_A68 = m_A68 + go[211]; - double RHS26 = Idr[208] + Idr[209] + Idr[210] + Idr[211]; - m_A75 = gt[216] + gt[217] + gt[218] + gt[219] + gt[220]; - m_A73 = m_A73 + go[216]; - m_A74 = m_A74 + go[217]; - m_A76 = m_A76 + go[218]; - double RHS27 = Idr[216] + Idr[217] + Idr[218] + Idr[219] + Idr[220] - go[219] * *cnV[219] - go[220] * *cnV[220]; - m_A84 = gt[224] + gt[225] + gt[226] + gt[227] + gt[228] + gt[229] + gt[230] + gt[231]; - m_A83 = m_A83 + go[224]; - m_A80 = m_A80 + go[225]; - m_A82 = m_A82 + go[226]; - m_A81 = m_A81 + go[227]; - m_A79 = m_A79 + go[228]; - m_A78 = m_A78 + go[229]; - m_A77 = m_A77 + go[230]; - double RHS28 = Idr[224] + Idr[225] + Idr[226] + Idr[227] + Idr[228] + Idr[229] + Idr[230] + Idr[231] - go[231] * *cnV[231]; -const double f0 = 1.0 / m_A0; - const double f0_16 = -f0 * m_A32; - m_A35 += m_A1 * f0_16; - RHS16 += f0_16 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_16 = -f1 * m_A33; - m_A35 += m_A3 * f1_16; - RHS16 += f1_16 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_16 = -f2 * m_A34; - m_A35 += m_A5 * f2_16; - RHS16 += f2_16 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_22 = -f3 * m_A48; - m_A51 += m_A7 * f3_22; - RHS22 += f3_22 * RHS3; -const double f4 = 1.0 / m_A8; - const double f4_22 = -f4 * m_A49; - m_A51 += m_A9 * f4_22; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A8 += go[9]; + m_A7 += go[10]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 -= go[11] * *cnV[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A12 += go[12]; + m_A10 += go[13]; + m_A11 += go[14]; + double RHS4 = Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + m_A13 += gt[15]; + m_A13 += gt[16]; + m_A13 += gt[17]; + m_A13 += gt[18]; + m_A13 += gt[19]; + m_A13 += gt[20]; + m_A13 += gt[21]; + m_A15 += go[15]; + m_A14 += go[16]; + double RHS5 = Idr[15]; + RHS5 += Idr[16]; + RHS5 += Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 -= go[17] * *cnV[17]; + RHS5 -= go[18] * *cnV[18]; + RHS5 -= go[19] * *cnV[19]; + RHS5 -= go[20] * *cnV[20]; + RHS5 -= go[21] * *cnV[21]; + m_A16 += gt[22]; + m_A16 += gt[23]; + m_A17 += go[22]; + m_A18 += go[23]; + double RHS6 = Idr[22]; + RHS6 += Idr[23]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A20 += go[24]; + m_A21 += go[25]; + double RHS7 = Idr[24]; + RHS7 += Idr[25]; + m_A22 += gt[26]; + m_A22 += gt[27]; + m_A23 += go[26]; + m_A24 += go[27]; + double RHS8 = Idr[26]; + RHS8 += Idr[27]; + m_A25 += gt[28]; + m_A25 += gt[29]; + m_A26 += go[28]; + m_A27 += go[29]; + double RHS9 = Idr[28]; + RHS9 += Idr[29]; + m_A28 += gt[30]; + m_A28 += gt[31]; + m_A29 += go[30]; + double RHS10 = Idr[30]; + RHS10 += Idr[31]; + RHS10 -= go[31] * *cnV[31]; + m_A30 += gt[32]; + m_A30 += gt[33]; + m_A30 += gt[34]; + m_A30 += gt[35]; + m_A31 += go[32]; + double RHS11 = Idr[32]; + RHS11 += Idr[33]; + RHS11 += Idr[34]; + RHS11 += Idr[35]; + RHS11 -= go[33] * *cnV[33]; + RHS11 -= go[34] * *cnV[34]; + RHS11 -= go[35] * *cnV[35]; + m_A34 += gt[36]; + m_A34 += gt[37]; + m_A34 += gt[38]; + m_A33 += go[36]; + m_A32 += go[37]; + double RHS12 = Idr[36]; + RHS12 += Idr[37]; + RHS12 += Idr[38]; + RHS12 -= go[38] * *cnV[38]; + m_A37 += gt[39]; + m_A37 += gt[40]; + m_A37 += gt[41]; + m_A37 += gt[42]; + m_A37 += gt[43]; + m_A37 += gt[44]; + m_A37 += gt[45]; + m_A38 += go[39]; + m_A36 += go[40]; + double RHS13 = Idr[39]; + RHS13 += Idr[40]; + RHS13 += Idr[41]; + RHS13 += Idr[42]; + RHS13 += Idr[43]; + RHS13 += Idr[44]; + RHS13 += Idr[45]; + RHS13 -= go[41] * *cnV[41]; + RHS13 -= go[42] * *cnV[42]; + RHS13 -= go[43] * *cnV[43]; + RHS13 -= go[44] * *cnV[44]; + RHS13 -= go[45] * *cnV[45]; + m_A40 += gt[46]; + m_A40 += gt[47]; + m_A40 += gt[48]; + m_A40 += gt[49]; + m_A40 += gt[50]; + m_A40 += gt[51]; + m_A40 += gt[52]; + m_A41 += go[46]; + m_A39 += go[47]; + double RHS14 = Idr[46]; + RHS14 += Idr[47]; + RHS14 += Idr[48]; + RHS14 += Idr[49]; + RHS14 += Idr[50]; + RHS14 += Idr[51]; + RHS14 += Idr[52]; + RHS14 -= go[48] * *cnV[48]; + RHS14 -= go[49] * *cnV[49]; + RHS14 -= go[50] * *cnV[50]; + RHS14 -= go[51] * *cnV[51]; + RHS14 -= go[52] * *cnV[52]; + m_A44 += gt[53]; + m_A44 += gt[54]; + m_A44 += gt[55]; + m_A44 += gt[56]; + m_A45 += go[53]; + m_A43 += go[54]; + m_A42 += go[55]; + double RHS15 = Idr[53]; + RHS15 += Idr[54]; + RHS15 += Idr[55]; + RHS15 += Idr[56]; + RHS15 -= go[56] * *cnV[56]; + m_A48 += gt[57]; + m_A48 += gt[58]; + m_A48 += gt[59]; + m_A48 += gt[60]; + m_A48 += gt[61]; + m_A48 += gt[62]; + m_A48 += gt[63]; + m_A49 += go[57]; + m_A46 += go[58]; + double RHS16 = Idr[57]; + RHS16 += Idr[58]; + RHS16 += Idr[59]; + RHS16 += Idr[60]; + RHS16 += Idr[61]; + RHS16 += Idr[62]; + RHS16 += Idr[63]; + RHS16 -= go[59] * *cnV[59]; + RHS16 -= go[60] * *cnV[60]; + RHS16 -= go[61] * *cnV[61]; + RHS16 -= go[62] * *cnV[62]; + RHS16 -= go[63] * *cnV[63]; + m_A51 += gt[64]; + m_A51 += gt[65]; + m_A51 += gt[66]; + m_A53 += go[64]; + m_A50 += go[65]; + double RHS17 = Idr[64]; + RHS17 += Idr[65]; + RHS17 += Idr[66]; + RHS17 -= go[66] * *cnV[66]; + m_A58 += gt[67]; + m_A58 += gt[68]; + m_A58 += gt[69]; + m_A58 += gt[70]; + m_A58 += gt[71]; + m_A58 += gt[72]; + m_A57 += go[67]; + m_A62 += go[68]; + m_A62 += go[69]; + m_A56 += go[70]; + m_A55 += go[71]; + m_A54 += go[72]; + double RHS18 = Idr[67]; + RHS18 += Idr[68]; + RHS18 += Idr[69]; + RHS18 += Idr[70]; + RHS18 += Idr[71]; + RHS18 += Idr[72]; + m_A67 += gt[73]; + m_A67 += gt[74]; + m_A67 += gt[75]; + m_A67 += gt[76]; + m_A67 += gt[77]; + m_A65 += go[73]; + m_A64 += go[74]; + m_A63 += go[75]; + double RHS19 = Idr[73]; + RHS19 += Idr[74]; + RHS19 += Idr[75]; + RHS19 += Idr[76]; + RHS19 += Idr[77]; + RHS19 -= go[76] * *cnV[76]; + RHS19 -= go[77] * *cnV[77]; + m_A76 += gt[78]; + m_A76 += gt[79]; + m_A76 += gt[80]; + m_A76 += gt[81]; + m_A76 += gt[82]; + m_A73 += go[78]; + m_A72 += go[79]; + m_A71 += go[80]; + double RHS20 = Idr[78]; + RHS20 += Idr[79]; + RHS20 += Idr[80]; + RHS20 += Idr[81]; + RHS20 += Idr[82]; + RHS20 -= go[81] * *cnV[81]; + RHS20 -= go[82] * *cnV[82]; + m_A84 += gt[83]; + m_A84 += gt[84]; + m_A84 += gt[85]; + m_A84 += gt[86]; + m_A84 += gt[87]; + m_A84 += gt[88]; + m_A82 += go[83]; + m_A80 += go[84]; + m_A79 += go[85]; + m_A81 += go[86]; + double RHS21 = Idr[83]; + RHS21 += Idr[84]; + RHS21 += Idr[85]; + RHS21 += Idr[86]; + RHS21 += Idr[87]; + RHS21 += Idr[88]; + RHS21 -= go[87] * *cnV[87]; + RHS21 -= go[88] * *cnV[88]; + m_A94 += gt[89]; + m_A94 += gt[90]; + m_A94 += gt[91]; + m_A94 += gt[92]; + m_A94 += gt[93]; + m_A94 += gt[94]; + m_A87 += go[89]; + m_A88 += go[90]; + m_A89 += go[91]; + m_A86 += go[92]; + double RHS22 = Idr[89]; + RHS22 += Idr[90]; + RHS22 += Idr[91]; + RHS22 += Idr[92]; + RHS22 += Idr[93]; + RHS22 += Idr[94]; + RHS22 -= go[93] * *cnV[93]; + RHS22 -= go[94] * *cnV[94]; + m_A101 += gt[95]; + m_A101 += gt[96]; + m_A101 += gt[97]; + m_A101 += gt[98]; + m_A101 += gt[99]; + m_A101 += gt[100]; + m_A101 += gt[101]; + m_A96 += go[95]; + m_A97 += go[96]; + double RHS23 = Idr[95]; + RHS23 += Idr[96]; + RHS23 += Idr[97]; + RHS23 += Idr[98]; + RHS23 += Idr[99]; + RHS23 += Idr[100]; + RHS23 += Idr[101]; + RHS23 -= go[97] * *cnV[97]; + RHS23 -= go[98] * *cnV[98]; + RHS23 -= go[99] * *cnV[99]; + RHS23 -= go[100] * *cnV[100]; + RHS23 -= go[101] * *cnV[101]; + m_A110 += gt[102]; + m_A110 += gt[103]; + m_A110 += gt[104]; + m_A110 += gt[105]; + m_A110 += gt[106]; + m_A110 += gt[107]; + m_A109 += go[102]; + m_A103 += go[103]; + m_A105 += go[104]; + m_A105 += go[105]; + double RHS24 = Idr[102]; + RHS24 += Idr[103]; + RHS24 += Idr[104]; + RHS24 += Idr[105]; + RHS24 += Idr[106]; + RHS24 += Idr[107]; + RHS24 -= go[106] * *cnV[106]; + RHS24 -= go[107] * *cnV[107]; + const double f0 = 1.0 / m_A0; + const double f0_13 = -f0 * m_A36; + m_A38 += m_A1 * f0_13; + RHS13 += f0_13 * RHS0; + const double f0_19 = -f0 * m_A63; + m_A67 += m_A1 * f0_19; + RHS19 += f0_19 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_14 = -f1 * m_A39; + m_A41 += m_A3 * f1_14; + RHS14 += f1_14 * RHS1; + const double f1_20 = -f1 * m_A71; + m_A76 += m_A3 * f1_20; + RHS20 += f1_20 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_15 = -f2 * m_A42; + m_A44 += m_A5 * f2_15; + RHS15 += f2_15 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_15 = -f3 * m_A43; + m_A44 += m_A7 * f3_15; + m_A45 += m_A8 * f3_15; + RHS15 += f3_15 * RHS3; + const double f3_16 = -f3 * m_A46; + m_A47 += m_A7 * f3_16; + m_A49 += m_A8 * f3_16; + RHS16 += f3_16 * RHS3; + const double f3_21 = -f3 * m_A79; + m_A81 += m_A7 * f3_21; + m_A84 += m_A8 * f3_21; + RHS21 += f3_21 * RHS3; + const double f4 = 1.0 / m_A9; + const double f4_17 = -f4 * m_A50; + m_A51 += m_A10 * f4_17; + m_A52 += m_A11 * f4_17; + m_A53 += m_A12 * f4_17; + RHS17 += f4_17 * RHS4; + const double f4_21 = -f4 * m_A80; + m_A83 += m_A10 * f4_21; + m_A84 += m_A11 * f4_21; + m_A85 += m_A12 * f4_21; + RHS21 += f4_21 * RHS4; + const double f4_22 = -f4 * m_A86; + m_A89 += m_A10 * f4_22; + m_A93 += m_A11 * f4_22; + m_A94 += m_A12 * f4_22; RHS22 += f4_22 * RHS4; -const double f5 = 1.0 / m_A10; - const double f5_22 = -f5 * m_A50; - m_A51 += m_A11 * f5_22; + const double f5 = 1.0 / m_A13; + const double f5_22 = -f5 * m_A87; + m_A89 += m_A14 * f5_22; + m_A94 += m_A15 * f5_22; RHS22 += f5_22 * RHS5; -const double f6 = 1.0 / m_A12; - const double f6_23 = -f6 * m_A53; - m_A56 += m_A13 * f6_23; - RHS23 += f6_23 * RHS6; -const double f7 = 1.0 / m_A14; - const double f7_23 = -f7 * m_A54; - m_A56 += m_A15 * f7_23; - RHS23 += f7_23 * RHS7; -const double f8 = 1.0 / m_A16; - const double f8_23 = -f8 * m_A55; - m_A56 += m_A17 * f8_23; - RHS23 += f8_23 * RHS8; -const double f9 = 1.0 / m_A18; - const double f9_25 = -f9 * m_A63; - m_A66 += m_A19 * f9_25; - RHS25 += f9_25 * RHS9; -const double f10 = 1.0 / m_A20; - const double f10_26 = -f10 * m_A68; - m_A71 += m_A21 * f10_26; - RHS26 += f10_26 * RHS10; -const double f11 = 1.0 / m_A22; - const double f11_24 = -f11 * m_A58; - m_A61 += m_A23 * f11_24; - RHS24 += f11_24 * RHS11; -const double f12 = 1.0 / m_A24; - const double f12_24 = -f12 * m_A59; - m_A61 += m_A25 * f12_24; + const double f6 = 1.0 / m_A16; + const double f6_18 = -f6 * m_A54; + m_A58 += m_A17 * f6_18; + m_A61 += m_A18 * f6_18; + RHS18 += f6_18 * RHS6; + const double f6_22 = -f6 * m_A88; + m_A90 += m_A17 * f6_22; + m_A94 += m_A18 * f6_22; + RHS22 += f6_22 * RHS6; + const double f7 = 1.0 / m_A19; + const double f7_18 = -f7 * m_A55; + m_A58 += m_A20 * f7_18; + m_A59 += m_A21 * f7_18; + RHS18 += f7_18 * RHS7; + const double f7_19 = -f7 * m_A64; + m_A66 += m_A20 * f7_19; + m_A67 += m_A21 * f7_19; + RHS19 += f7_19 * RHS7; + const double f8 = 1.0 / m_A22; + const double f8_18 = -f8 * m_A56; + m_A58 += m_A23 * f8_18; + m_A60 += m_A24 * f8_18; + RHS18 += f8_18 * RHS8; + const double f8_20 = -f8 * m_A72; + m_A74 += m_A23 * f8_20; + m_A76 += m_A24 * f8_20; + RHS20 += f8_20 * RHS8; + const double f9 = 1.0 / m_A25; + const double f9_12 = -f9 * m_A32; + m_A34 += m_A26 * f9_12; + m_A35 += m_A27 * f9_12; + RHS12 += f9_12 * RHS9; + const double f9_24 = -f9 * m_A103; + m_A104 += m_A26 * f9_24; + m_A110 += m_A27 * f9_24; + RHS24 += f9_24 * RHS9; + const double f10 = 1.0 / m_A28; + const double f10_12 = -f10 * m_A33; + m_A34 += m_A29 * f10_12; + RHS12 += f10_12 * RHS10; + const double f11 = 1.0 / m_A30; + const double f11_18 = -f11 * m_A57; + m_A58 += m_A31 * f11_18; + RHS18 += f11_18 * RHS11; + const double f11_23 = -f11 * m_A96; + m_A97 += m_A31 * f11_23; + RHS23 += f11_23 * RHS11; + const double f12 = 1.0 / m_A34; + const double f12_24 = -f12 * m_A104; + m_A110 += m_A35 * f12_24; RHS24 += f12_24 * RHS12; -const double f13 = 1.0 / m_A26; - const double f13_27 = -f13 * m_A73; - m_A76 += m_A27 * f13_27; - RHS27 += f13_27 * RHS13; -const double f14 = 1.0 / m_A28; - const double f14_24 = -f14 * m_A60; - m_A61 += m_A29 * f14_24; - RHS24 += f14_24 * RHS14; -const double f15 = 1.0 / m_A30; - const double f15_21 = -f15 * m_A45; - m_A46 += m_A31 * f15_21; + const double f13 = 1.0 / m_A37; + const double f13_19 = -f13 * m_A65; + m_A67 += m_A38 * f13_19; + RHS19 += f13_19 * RHS13; + const double f14 = 1.0 / m_A40; + const double f14_20 = -f14 * m_A73; + m_A76 += m_A41 * f14_20; + RHS20 += f14_20 * RHS14; + const double f15 = 1.0 / m_A44; + const double f15_16 = -f15 * m_A47; + m_A49 += m_A45 * f15_16; + RHS16 += f15_16 * RHS15; + const double f15_21 = -f15 * m_A81; + m_A84 += m_A45 * f15_21; RHS21 += f15_21 * RHS15; -const double f16 = 1.0 / m_A35; - const double f16_28 = -f16 * m_A77; - m_A84 += m_A36 * f16_28; - RHS28 += f16_28 * RHS16; -const double f17 = 1.0 / m_A37; - const double f17_25 = -f17 * m_A64; - m_A66 += m_A38 * f17_25; - RHS25 += f17_25 * RHS17; -const double f18 = 1.0 / m_A39; - const double f18_25 = -f18 * m_A65; - m_A66 += m_A40 * f18_25; - RHS25 += f18_25 * RHS18; -const double f19 = 1.0 / m_A41; - const double f19_26 = -f19 * m_A69; - m_A71 += m_A42 * f19_26; - RHS26 += f19_26 * RHS19; -const double f20 = 1.0 / m_A43; - const double f20_26 = -f20 * m_A70; - m_A71 += m_A44 * f20_26; - RHS26 += f20_26 * RHS20; -const double f21 = 1.0 / m_A46; - const double f21_27 = -f21 * m_A74; - m_A75 += m_A47 * f21_27; - RHS27 += f21_27 * RHS21; -const double f22 = 1.0 / m_A51; - const double f22_28 = -f22 * m_A78; - m_A84 += m_A52 * f22_28; - RHS28 += f22_28 * RHS22; -const double f23 = 1.0 / m_A56; - const double f23_28 = -f23 * m_A79; - m_A84 += m_A57 * f23_28; - RHS28 += f23_28 * RHS23; -const double f24 = 1.0 / m_A61; - const double f24_28 = -f24 * m_A80; - m_A84 += m_A62 * f24_28; - RHS28 += f24_28 * RHS24; -const double f25 = 1.0 / m_A66; - const double f25_28 = -f25 * m_A81; - m_A84 += m_A67 * f25_28; - RHS28 += f25_28 * RHS25; -const double f26 = 1.0 / m_A71; - const double f26_28 = -f26 * m_A82; - m_A84 += m_A72 * f26_28; - RHS28 += f26_28 * RHS26; -const double f27 = 1.0 / m_A75; - const double f27_28 = -f27 * m_A83; - m_A84 += m_A76 * f27_28; - RHS28 += f27_28 * RHS27; - V[28] = RHS28 / m_A84; - double tmp27 = 0.0; - tmp27 += m_A76 * V[28]; - V[27] = (RHS27 - tmp27) / m_A75; - double tmp26 = 0.0; - tmp26 += m_A72 * V[28]; - V[26] = (RHS26 - tmp26) / m_A71; - double tmp25 = 0.0; - tmp25 += m_A67 * V[28]; - V[25] = (RHS25 - tmp25) / m_A66; - double tmp24 = 0.0; - tmp24 += m_A62 * V[28]; - V[24] = (RHS24 - tmp24) / m_A61; + const double f16 = 1.0 / m_A48; + const double f16_21 = -f16 * m_A82; + m_A84 += m_A49 * f16_21; + RHS21 += f16_21 * RHS16; + const double f17 = 1.0 / m_A51; + const double f17_21 = -f17 * m_A83; + m_A84 += m_A52 * f17_21; + m_A85 += m_A53 * f17_21; + RHS21 += f17_21 * RHS17; + const double f17_22 = -f17 * m_A89; + m_A93 += m_A52 * f17_22; + m_A94 += m_A53 * f17_22; + RHS22 += f17_22 * RHS17; + const double f18 = 1.0 / m_A58; + const double f18_19 = -f18 * m_A66; + m_A67 += m_A59 * f18_19; + m_A68 += m_A60 * f18_19; + m_A69 += m_A61 * f18_19; + m_A70 += m_A62 * f18_19; + RHS19 += f18_19 * RHS18; + const double f18_20 = -f18 * m_A74; + m_A75 += m_A59 * f18_20; + m_A76 += m_A60 * f18_20; + m_A77 += m_A61 * f18_20; + m_A78 += m_A62 * f18_20; + RHS20 += f18_20 * RHS18; + const double f18_22 = -f18 * m_A90; + m_A91 += m_A59 * f18_22; + m_A92 += m_A60 * f18_22; + m_A94 += m_A61 * f18_22; + m_A95 += m_A62 * f18_22; + RHS22 += f18_22 * RHS18; + const double f18_23 = -f18 * m_A97; + m_A98 += m_A59 * f18_23; + m_A99 += m_A60 * f18_23; + m_A100 += m_A61 * f18_23; + m_A102 += m_A62 * f18_23; + RHS23 += f18_23 * RHS18; + const double f18_24 = -f18 * m_A105; + m_A106 += m_A59 * f18_24; + m_A107 += m_A60 * f18_24; + m_A108 += m_A61 * f18_24; + m_A110 += m_A62 * f18_24; + RHS24 += f18_24 * RHS18; + const double f19 = 1.0 / m_A67; + const double f19_20 = -f19 * m_A75; + m_A76 += m_A68 * f19_20; + m_A77 += m_A69 * f19_20; + m_A78 += m_A70 * f19_20; + RHS20 += f19_20 * RHS19; + const double f19_22 = -f19 * m_A91; + m_A92 += m_A68 * f19_22; + m_A94 += m_A69 * f19_22; + m_A95 += m_A70 * f19_22; + RHS22 += f19_22 * RHS19; + const double f19_23 = -f19 * m_A98; + m_A99 += m_A68 * f19_23; + m_A100 += m_A69 * f19_23; + m_A102 += m_A70 * f19_23; + RHS23 += f19_23 * RHS19; + const double f19_24 = -f19 * m_A106; + m_A107 += m_A68 * f19_24; + m_A108 += m_A69 * f19_24; + m_A110 += m_A70 * f19_24; + RHS24 += f19_24 * RHS19; + const double f20 = 1.0 / m_A76; + const double f20_22 = -f20 * m_A92; + m_A94 += m_A77 * f20_22; + m_A95 += m_A78 * f20_22; + RHS22 += f20_22 * RHS20; + const double f20_23 = -f20 * m_A99; + m_A100 += m_A77 * f20_23; + m_A102 += m_A78 * f20_23; + RHS23 += f20_23 * RHS20; + const double f20_24 = -f20 * m_A107; + m_A108 += m_A77 * f20_24; + m_A110 += m_A78 * f20_24; + RHS24 += f20_24 * RHS20; + const double f21 = 1.0 / m_A84; + const double f21_22 = -f21 * m_A93; + m_A94 += m_A85 * f21_22; + RHS22 += f21_22 * RHS21; + const double f22 = 1.0 / m_A94; + const double f22_23 = -f22 * m_A100; + m_A102 += m_A95 * f22_23; + RHS23 += f22_23 * RHS22; + const double f22_24 = -f22 * m_A108; + m_A110 += m_A95 * f22_24; + RHS24 += f22_24 * RHS22; + const double f23 = 1.0 / m_A101; + const double f23_24 = -f23 * m_A109; + m_A110 += m_A102 * f23_24; + RHS24 += f23_24 * RHS23; + V[24] = RHS24 / m_A110; double tmp23 = 0.0; - tmp23 += m_A57 * V[28]; - V[23] = (RHS23 - tmp23) / m_A56; + tmp23 += m_A102 * V[24]; + V[23] = (RHS23 - tmp23) / m_A101; double tmp22 = 0.0; - tmp22 += m_A52 * V[28]; - V[22] = (RHS22 - tmp22) / m_A51; + tmp22 += m_A95 * V[24]; + V[22] = (RHS22 - tmp22) / m_A94; double tmp21 = 0.0; - tmp21 += m_A47 * V[27]; - V[21] = (RHS21 - tmp21) / m_A46; + tmp21 += m_A85 * V[22]; + V[21] = (RHS21 - tmp21) / m_A84; double tmp20 = 0.0; - tmp20 += m_A44 * V[26]; - V[20] = (RHS20 - tmp20) / m_A43; + tmp20 += m_A77 * V[22]; + tmp20 += m_A78 * V[24]; + V[20] = (RHS20 - tmp20) / m_A76; double tmp19 = 0.0; - tmp19 += m_A42 * V[26]; - V[19] = (RHS19 - tmp19) / m_A41; + tmp19 += m_A68 * V[20]; + tmp19 += m_A69 * V[22]; + tmp19 += m_A70 * V[24]; + V[19] = (RHS19 - tmp19) / m_A67; double tmp18 = 0.0; - tmp18 += m_A40 * V[25]; - V[18] = (RHS18 - tmp18) / m_A39; + tmp18 += m_A59 * V[19]; + tmp18 += m_A60 * V[20]; + tmp18 += m_A61 * V[22]; + tmp18 += m_A62 * V[24]; + V[18] = (RHS18 - tmp18) / m_A58; double tmp17 = 0.0; - tmp17 += m_A38 * V[25]; - V[17] = (RHS17 - tmp17) / m_A37; + tmp17 += m_A52 * V[21]; + tmp17 += m_A53 * V[22]; + V[17] = (RHS17 - tmp17) / m_A51; double tmp16 = 0.0; - tmp16 += m_A36 * V[28]; - V[16] = (RHS16 - tmp16) / m_A35; + tmp16 += m_A49 * V[21]; + V[16] = (RHS16 - tmp16) / m_A48; double tmp15 = 0.0; - tmp15 += m_A31 * V[21]; - V[15] = (RHS15 - tmp15) / m_A30; + tmp15 += m_A45 * V[21]; + V[15] = (RHS15 - tmp15) / m_A44; double tmp14 = 0.0; - tmp14 += m_A29 * V[24]; - V[14] = (RHS14 - tmp14) / m_A28; + tmp14 += m_A41 * V[20]; + V[14] = (RHS14 - tmp14) / m_A40; double tmp13 = 0.0; - tmp13 += m_A27 * V[28]; - V[13] = (RHS13 - tmp13) / m_A26; + tmp13 += m_A38 * V[19]; + V[13] = (RHS13 - tmp13) / m_A37; double tmp12 = 0.0; - tmp12 += m_A25 * V[24]; - V[12] = (RHS12 - tmp12) / m_A24; + tmp12 += m_A35 * V[24]; + V[12] = (RHS12 - tmp12) / m_A34; double tmp11 = 0.0; - tmp11 += m_A23 * V[24]; - V[11] = (RHS11 - tmp11) / m_A22; + tmp11 += m_A31 * V[18]; + V[11] = (RHS11 - tmp11) / m_A30; double tmp10 = 0.0; - tmp10 += m_A21 * V[26]; - V[10] = (RHS10 - tmp10) / m_A20; + tmp10 += m_A29 * V[12]; + V[10] = (RHS10 - tmp10) / m_A28; double tmp9 = 0.0; - tmp9 += m_A19 * V[25]; - V[9] = (RHS9 - tmp9) / m_A18; + tmp9 += m_A26 * V[12]; + tmp9 += m_A27 * V[24]; + V[9] = (RHS9 - tmp9) / m_A25; double tmp8 = 0.0; - tmp8 += m_A17 * V[23]; - V[8] = (RHS8 - tmp8) / m_A16; + tmp8 += m_A23 * V[18]; + tmp8 += m_A24 * V[20]; + V[8] = (RHS8 - tmp8) / m_A22; double tmp7 = 0.0; - tmp7 += m_A15 * V[23]; - V[7] = (RHS7 - tmp7) / m_A14; + tmp7 += m_A20 * V[18]; + tmp7 += m_A21 * V[19]; + V[7] = (RHS7 - tmp7) / m_A19; double tmp6 = 0.0; - tmp6 += m_A13 * V[23]; - V[6] = (RHS6 - tmp6) / m_A12; + tmp6 += m_A17 * V[18]; + tmp6 += m_A18 * V[22]; + V[6] = (RHS6 - tmp6) / m_A16; double tmp5 = 0.0; - tmp5 += m_A11 * V[22]; - V[5] = (RHS5 - tmp5) / m_A10; + tmp5 += m_A14 * V[17]; + tmp5 += m_A15 * V[22]; + V[5] = (RHS5 - tmp5) / m_A13; double tmp4 = 0.0; - tmp4 += m_A9 * V[22]; - V[4] = (RHS4 - tmp4) / m_A8; + tmp4 += m_A10 * V[17]; + tmp4 += m_A11 * V[21]; + tmp4 += m_A12 * V[22]; + V[4] = (RHS4 - tmp4) / m_A9; double tmp3 = 0.0; - tmp3 += m_A7 * V[22]; + tmp3 += m_A7 * V[15]; + tmp3 += m_A8 * V[21]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[16]; + tmp2 += m_A5 * V[15]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[16]; + tmp1 += m_A3 * V[20]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[16]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// kidniki -static void nl_gcr_933b3efec18faab_37_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3]; - m_A2 = m_A2 + go[0]; - m_A2 = m_A2 + go[1]; - m_A1 = m_A1 + go[2]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] - go[3] * *cnV[3]; - m_A3 = gt[8] + gt[9] + gt[10]; - m_A5 = m_A5 + go[8]; - m_A4 = m_A4 + go[9]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[10] * *cnV[10]; - m_A6 = gt[16] + gt[17] + gt[18] + gt[19] + gt[20] + gt[21] + gt[22]; - m_A7 = m_A7 + go[16]; - m_A7 = m_A7 + go[17]; - m_A8 = m_A8 + go[18]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] + Idr[19] + Idr[20] + Idr[21] + Idr[22] - go[19] * *cnV[19] - go[20] * *cnV[20] - go[21] * *cnV[21] - go[22] * *cnV[22]; - m_A9 = gt[24] + gt[25] + gt[26]; - m_A11 = m_A11 + go[24]; - m_A10 = m_A10 + go[25]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] - go[26] * *cnV[26]; - m_A14 = gt[32] + gt[33] + gt[34] + gt[35] + gt[36]; - m_A13 = m_A13 + go[32]; - m_A12 = m_A12 + go[33]; - m_A12 = m_A12 + go[34]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] + Idr[35] + Idr[36] - go[35] * *cnV[35] - go[36] * *cnV[36]; - m_A18 = gt[40] + gt[41] + gt[42] + gt[43] + gt[44] + gt[45] + gt[46]; - m_A20 = m_A20 + go[40]; - m_A19 = m_A19 + go[41]; - m_A19 = m_A19 + go[42]; - m_A19 = m_A19 + go[43]; - m_A17 = m_A17 + go[44]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] + Idr[43] + Idr[44] + Idr[45] + Idr[46] - go[45] * *cnV[45] - go[46] * *cnV[46]; - m_A23 = gt[48] + gt[49] + gt[50] + gt[51]; - m_A21 = m_A21 + go[48]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] + Idr[51] - go[49] * *cnV[49] - go[50] * *cnV[50] - go[51] * *cnV[51]; - m_A28 = gt[56] + gt[57] + gt[58] + gt[59] + gt[60] + gt[61]; - m_A26 = m_A26 + go[56]; - m_A27 = m_A27 + go[57]; - m_A27 = m_A27 + go[58]; - m_A27 = m_A27 + go[59]; - m_A25 = m_A25 + go[60]; - m_A25 = m_A25 + go[61]; - double RHS7 = Idr[56] + Idr[57] + Idr[58] + Idr[59] + Idr[60] + Idr[61]; - m_A36 = gt[64] + gt[65] + gt[66] + gt[67]; - m_A30 = m_A30 + go[64]; - m_A33 = m_A33 + go[65]; - m_A31 = m_A31 + go[66]; - double RHS8 = Idr[64] + Idr[65] + Idr[66] + Idr[67] - go[67] * *cnV[67]; -const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A17; - m_A18 += m_A1 * f0_5; - m_A19 += m_A2 * f0_5; - RHS5 += f0_5 * RHS0; - const double f0_7 = -f0 * m_A25; - m_A27 += m_A1 * f0_7; - m_A28 += m_A2 * f0_7; - RHS7 += f0_7 * RHS0; -const double f1 = 1.0 / m_A3; - const double f1_7 = -f1 * m_A26; - m_A28 += m_A4 * f1_7; - m_A29 += m_A5 * f1_7; - RHS7 += f1_7 * RHS1; - const double f1_8 = -f1 * m_A30; - m_A35 += m_A4 * f1_8; - m_A36 += m_A5 * f1_8; - RHS8 += f1_8 * RHS1; -const double f2 = 1.0 / m_A6; - const double f2_4 = -f2 * m_A12; - m_A14 += m_A7 * f2_4; - m_A16 += m_A8 * f2_4; - RHS4 += f2_4 * RHS2; - const double f2_8 = -f2 * m_A31; - m_A32 += m_A7 * f2_8; - m_A36 += m_A8 * f2_8; - RHS8 += f2_8 * RHS2; -const double f3 = 1.0 / m_A9; - const double f3_4 = -f3 * m_A13; - m_A14 += m_A10 * f3_4; - m_A15 += m_A11 * f3_4; - RHS4 += f3_4 * RHS3; - const double f3_6 = -f3 * m_A21; - m_A22 += m_A10 * f3_6; - m_A23 += m_A11 * f3_6; - RHS6 += f3_6 * RHS3; -const double f4 = 1.0 / m_A14; - const double f4_6 = -f4 * m_A22; - m_A23 += m_A15 * f4_6; - m_A24 += m_A16 * f4_6; - RHS6 += f4_6 * RHS4; - const double f4_8 = -f4 * m_A32; - m_A34 += m_A15 * f4_8; - m_A36 += m_A16 * f4_8; - RHS8 += f4_8 * RHS4; -const double f5 = 1.0 / m_A18; - const double f5_7 = -f5 * m_A27; - m_A28 += m_A19 * f5_7; - m_A29 += m_A20 * f5_7; - RHS7 += f5_7 * RHS5; - const double f5_8 = -f5 * m_A33; - m_A35 += m_A19 * f5_8; - m_A36 += m_A20 * f5_8; - RHS8 += f5_8 * RHS5; -const double f6 = 1.0 / m_A23; - const double f6_8 = -f6 * m_A34; - m_A36 += m_A24 * f6_8; - RHS8 += f6_8 * RHS6; -const double f7 = 1.0 / m_A28; - const double f7_8 = -f7 * m_A35; - m_A36 += m_A29 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A36; - double tmp7 = 0.0; - tmp7 += m_A29 * V[8]; - V[7] = (RHS7 - tmp7) / m_A28; - double tmp6 = 0.0; - tmp6 += m_A24 * V[8]; - V[6] = (RHS6 - tmp6) / m_A23; - double tmp5 = 0.0; - tmp5 += m_A19 * V[7]; - tmp5 += m_A20 * V[8]; - V[5] = (RHS5 - tmp5) / m_A18; - double tmp4 = 0.0; - tmp4 += m_A15 * V[6]; - tmp4 += m_A16 * V[8]; - V[4] = (RHS4 - tmp4) / m_A14; - double tmp3 = 0.0; - tmp3 += m_A10 * V[4]; - tmp3 += m_A11 * V[6]; - V[3] = (RHS3 - tmp3) / m_A9; - double tmp2 = 0.0; - tmp2 += m_A7 * V[4]; - tmp2 += m_A8 * V[8]; - V[2] = (RHS2 - tmp2) / m_A6; - double tmp1 = 0.0; - tmp1 += m_A4 * V[7]; - tmp1 += m_A5 * V[8]; - V[1] = (RHS1 - tmp1) / m_A3; - double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; - tmp0 += m_A2 * V[7]; + tmp0 += m_A1 * V[19]; V[0] = (RHS0 - tmp0) / m_A0; } // 280zzzap -static void nl_gcr_9de29bb0cfe2c4b4_116_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_bcf0e3af19330ca7_116_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] - go[1] * *cnV[1]; - m_A2 = gt[8] + gt[9] + gt[10]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A4 = gt[16] + gt[17] + gt[18] + gt[19] + gt[20] + gt[21] + gt[22]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] + Idr[19] + Idr[20] + Idr[21] + Idr[22] - go[17] * *cnV[17] - go[18] * *cnV[18] - go[19] * *cnV[19] - go[20] * *cnV[20] - go[21] * *cnV[21] - go[22] * *cnV[22]; - m_A6 = gt[24] + gt[25]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] - go[25] * *cnV[25]; - m_A8 = gt[32] + gt[33]; - m_A9 = m_A9 + go[32]; - double RHS4 = Idr[32] + Idr[33] - go[33] * *cnV[33]; - m_A10 = gt[40] + gt[41] + gt[42] + gt[43] + gt[44] + gt[45] + gt[46]; - m_A11 = m_A11 + go[40]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] + Idr[43] + Idr[44] + Idr[45] + Idr[46] - go[41] * *cnV[41] - go[42] * *cnV[42] - go[43] * *cnV[43] - go[44] * *cnV[44] - go[45] * *cnV[45] - go[46] * *cnV[46]; - m_A12 = gt[48] + gt[49] + gt[50]; - m_A13 = m_A13 + go[48]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] - go[49] * *cnV[49] - go[50] * *cnV[50]; - m_A14 = gt[56] + gt[57]; - m_A16 = m_A16 + go[56]; - m_A15 = m_A15 + go[57]; - double RHS7 = Idr[56] + Idr[57]; - m_A17 = gt[64] + gt[65]; - m_A18 = m_A18 + go[64]; - double RHS8 = Idr[64] + Idr[65] - go[65] * *cnV[65]; - m_A19 = gt[72] + gt[73]; - m_A20 = m_A20 + go[72]; - double RHS9 = Idr[72] + Idr[73] - go[73] * *cnV[73]; - m_A21 = gt[80] + gt[81]; - m_A22 = m_A22 + go[80]; - double RHS10 = Idr[80] + Idr[81] - go[81] * *cnV[81]; - m_A23 = gt[88] + gt[89] + gt[90] + gt[91] + gt[92] + gt[93] + gt[94]; - m_A24 = m_A24 + go[88]; - double RHS11 = Idr[88] + Idr[89] + Idr[90] + Idr[91] + Idr[92] + Idr[93] + Idr[94] - go[89] * *cnV[89] - go[90] * *cnV[90] - go[91] * *cnV[91] - go[92] * *cnV[92] - go[93] * *cnV[93] - go[94] * *cnV[94]; - m_A25 = gt[96] + gt[97]; - m_A26 = m_A26 + go[96]; - double RHS12 = Idr[96] + Idr[97] - go[97] * *cnV[97]; - m_A27 = gt[104] + gt[105] + gt[106]; - m_A28 = m_A28 + go[104]; - double RHS13 = Idr[104] + Idr[105] + Idr[106] - go[105] * *cnV[105] - go[106] * *cnV[106]; - m_A29 = gt[112] + gt[113] + gt[114]; - m_A30 = m_A30 + go[112]; - double RHS14 = Idr[112] + Idr[113] + Idr[114] - go[113] * *cnV[113] - go[114] * *cnV[114]; - m_A31 = gt[120] + gt[121]; - m_A32 = m_A32 + go[120]; - m_A33 = m_A33 + go[121]; - double RHS15 = Idr[120] + Idr[121]; - m_A35 = gt[128] + gt[129]; - m_A34 = m_A34 + go[128]; - double RHS16 = Idr[128] + Idr[129] - go[129] * *cnV[129]; - m_A37 = gt[136] + gt[137]; - m_A36 = m_A36 + go[136]; - double RHS17 = Idr[136] + Idr[137] - go[137] * *cnV[137]; - m_A40 = gt[144] + gt[145]; - m_A39 = m_A39 + go[144]; - m_A38 = m_A38 + go[145]; - double RHS18 = Idr[144] + Idr[145]; - m_A42 = gt[152] + gt[153] + gt[154] + gt[155]; - m_A41 = m_A41 + go[152]; - m_A43 = m_A43 + go[153]; - double RHS19 = Idr[152] + Idr[153] + Idr[154] + Idr[155] - go[154] * *cnV[154] - go[155] * *cnV[155]; - m_A46 = gt[160] + gt[161] + gt[162] + gt[163] + gt[164] + gt[165]; - m_A44 = m_A44 + go[160]; - m_A47 = m_A47 + go[161]; - m_A49 = m_A49 + go[162]; - m_A48 = m_A48 + go[163]; - double RHS20 = Idr[160] + Idr[161] + Idr[162] + Idr[163] + Idr[164] + Idr[165] - go[164] * *cnV[164] - go[165] * *cnV[165]; - m_A51 = gt[168] + gt[169] + gt[170] + gt[171]; - m_A50 = m_A50 + go[168]; - m_A52 = m_A52 + go[169]; - double RHS21 = Idr[168] + Idr[169] + Idr[170] + Idr[171] - go[170] * *cnV[170] - go[171] * *cnV[171]; - m_A56 = gt[176] + gt[177] + gt[178] + gt[179] + gt[180] + gt[181]; - m_A53 = m_A53 + go[176]; - m_A54 = m_A54 + go[177]; - m_A57 = m_A57 + go[178]; - m_A59 = m_A59 + go[179]; - double RHS22 = Idr[176] + Idr[177] + Idr[178] + Idr[179] + Idr[180] + Idr[181] - go[180] * *cnV[180] - go[181] * *cnV[181]; - m_A61 = gt[184] + gt[185]; - m_A60 = m_A60 + go[184]; - m_A62 = m_A62 + go[185]; - double RHS23 = Idr[184] + Idr[185]; - m_A68 = gt[192] + gt[193] + gt[194] + gt[195] + gt[196]; - m_A67 = m_A67 + go[192]; - m_A65 = m_A65 + go[193]; - m_A64 = m_A64 + go[194]; - m_A63 = m_A63 + go[195]; - m_A66 = m_A66 + go[196]; - double RHS24 = Idr[192] + Idr[193] + Idr[194] + Idr[195] + Idr[196]; - m_A77 = gt[200] + gt[201] + gt[202] + gt[203]; - m_A74 = m_A74 + go[200]; - m_A73 = m_A73 + go[201]; - m_A78 = m_A78 + go[202]; - m_A72 = m_A72 + go[203]; - double RHS25 = Idr[200] + Idr[201] + Idr[202] + Idr[203]; - m_A82 = gt[208] + gt[209] + gt[210] + gt[211]; - m_A81 = m_A81 + go[208]; - m_A83 = m_A83 + go[209]; - double RHS26 = Idr[208] + Idr[209] + Idr[210] + Idr[211] - go[210] * *cnV[210] - go[211] * *cnV[211]; - m_A87 = gt[216] + gt[217] + gt[218] + gt[219] + gt[220]; - m_A84 = m_A84 + go[216]; - m_A85 = m_A85 + go[217]; - m_A88 = m_A88 + go[218]; - double RHS27 = Idr[216] + Idr[217] + Idr[218] + Idr[219] + Idr[220] - go[219] * *cnV[219] - go[220] * *cnV[220]; - m_A96 = gt[224] + gt[225] + gt[226] + gt[227] + gt[228] + gt[229] + gt[230]; - m_A95 = m_A95 + go[224]; - m_A91 = m_A91 + go[225]; - m_A92 = m_A92 + go[226]; - m_A90 = m_A90 + go[227]; - m_A89 = m_A89 + go[228]; - m_A93 = m_A93 + go[229]; - m_A94 = m_A94 + go[230]; - double RHS28 = Idr[224] + Idr[225] + Idr[226] + Idr[227] + Idr[228] + Idr[229] + Idr[230]; - m_A106 = gt[232] + gt[233] + gt[234] + gt[235] + gt[236]; - m_A102 = m_A102 + go[232]; - m_A101 = m_A101 + go[233]; - m_A107 = m_A107 + go[234]; - m_A100 = m_A100 + go[235]; - m_A99 = m_A99 + go[236]; - double RHS29 = Idr[232] + Idr[233] + Idr[234] + Idr[235] + Idr[236]; - m_A115 = gt[240] + gt[241] + gt[242] + gt[243] + gt[244]; - m_A108 = m_A108 + go[240]; - m_A110 = m_A110 + go[241]; - m_A109 = m_A109 + go[242]; - m_A114 = m_A114 + go[243]; - double RHS30 = Idr[240] + Idr[241] + Idr[242] + Idr[243] + Idr[244] - go[244] * *cnV[244]; -const double f0 = 1.0 / m_A0; + 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); + 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_A2 += gt[4]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[3] * *cnV[3]; + RHS1 -= go[4] * *cnV[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A5 += go[5]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A7 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[13] * *cnV[13]; + m_A8 += gt[14]; + m_A8 += gt[15]; + m_A9 += go[14]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + RHS4 -= go[15] * *cnV[15]; + m_A10 += gt[16]; + m_A10 += gt[17]; + m_A10 += gt[18]; + m_A10 += gt[19]; + m_A10 += gt[20]; + m_A10 += gt[21]; + m_A10 += gt[22]; + m_A11 += go[16]; + double RHS5 = Idr[16]; + RHS5 += Idr[17]; + RHS5 += Idr[18]; + RHS5 += Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 -= go[17] * *cnV[17]; + RHS5 -= go[18] * *cnV[18]; + RHS5 -= go[19] * *cnV[19]; + RHS5 -= go[20] * *cnV[20]; + RHS5 -= go[21] * *cnV[21]; + RHS5 -= go[22] * *cnV[22]; + m_A12 += gt[23]; + m_A12 += gt[24]; + m_A12 += gt[25]; + m_A13 += go[23]; + double RHS6 = Idr[23]; + RHS6 += Idr[24]; + RHS6 += Idr[25]; + RHS6 -= go[24] * *cnV[24]; + RHS6 -= go[25] * *cnV[25]; + m_A14 += gt[26]; + m_A14 += gt[27]; + m_A16 += go[26]; + m_A15 += go[27]; + double RHS7 = Idr[26]; + RHS7 += Idr[27]; + m_A17 += gt[28]; + m_A17 += gt[29]; + m_A18 += go[28]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + RHS8 -= go[29] * *cnV[29]; + m_A19 += gt[30]; + m_A19 += gt[31]; + m_A20 += go[30]; + double RHS9 = Idr[30]; + RHS9 += Idr[31]; + RHS9 -= go[31] * *cnV[31]; + m_A21 += gt[32]; + m_A21 += gt[33]; + m_A22 += go[32]; + double RHS10 = Idr[32]; + RHS10 += Idr[33]; + RHS10 -= go[33] * *cnV[33]; + m_A23 += gt[34]; + m_A23 += gt[35]; + m_A23 += gt[36]; + m_A23 += gt[37]; + m_A23 += gt[38]; + m_A23 += gt[39]; + m_A23 += gt[40]; + m_A24 += go[34]; + double RHS11 = Idr[34]; + RHS11 += Idr[35]; + RHS11 += Idr[36]; + RHS11 += Idr[37]; + RHS11 += Idr[38]; + RHS11 += Idr[39]; + RHS11 += Idr[40]; + RHS11 -= go[35] * *cnV[35]; + RHS11 -= go[36] * *cnV[36]; + RHS11 -= go[37] * *cnV[37]; + RHS11 -= go[38] * *cnV[38]; + RHS11 -= go[39] * *cnV[39]; + RHS11 -= go[40] * *cnV[40]; + m_A25 += gt[41]; + m_A25 += gt[42]; + m_A26 += go[41]; + double RHS12 = Idr[41]; + RHS12 += Idr[42]; + RHS12 -= go[42] * *cnV[42]; + m_A27 += gt[43]; + m_A27 += gt[44]; + m_A27 += gt[45]; + m_A28 += go[43]; + double RHS13 = Idr[43]; + RHS13 += Idr[44]; + RHS13 += Idr[45]; + RHS13 -= go[44] * *cnV[44]; + RHS13 -= go[45] * *cnV[45]; + m_A29 += gt[46]; + m_A29 += gt[47]; + m_A29 += gt[48]; + m_A30 += go[46]; + double RHS14 = Idr[46]; + RHS14 += Idr[47]; + RHS14 += Idr[48]; + RHS14 -= go[47] * *cnV[47]; + RHS14 -= go[48] * *cnV[48]; + m_A31 += gt[49]; + m_A31 += gt[50]; + m_A32 += go[49]; + m_A33 += go[50]; + double RHS15 = Idr[49]; + RHS15 += Idr[50]; + m_A35 += gt[51]; + m_A35 += gt[52]; + m_A34 += go[51]; + double RHS16 = Idr[51]; + RHS16 += Idr[52]; + RHS16 -= go[52] * *cnV[52]; + m_A37 += gt[53]; + m_A37 += gt[54]; + m_A36 += go[53]; + double RHS17 = Idr[53]; + RHS17 += Idr[54]; + RHS17 -= go[54] * *cnV[54]; + m_A40 += gt[55]; + m_A40 += gt[56]; + m_A39 += go[55]; + m_A38 += go[56]; + double RHS18 = Idr[55]; + RHS18 += Idr[56]; + m_A42 += gt[57]; + m_A42 += gt[58]; + m_A42 += gt[59]; + m_A42 += gt[60]; + m_A41 += go[57]; + m_A43 += go[58]; + double RHS19 = Idr[57]; + RHS19 += Idr[58]; + RHS19 += Idr[59]; + RHS19 += Idr[60]; + RHS19 -= go[59] * *cnV[59]; + RHS19 -= go[60] * *cnV[60]; + m_A46 += gt[61]; + m_A46 += gt[62]; + m_A46 += gt[63]; + m_A46 += gt[64]; + m_A46 += gt[65]; + m_A46 += gt[66]; + m_A44 += go[61]; + m_A47 += go[62]; + m_A49 += go[63]; + m_A48 += go[64]; + double RHS20 = Idr[61]; + RHS20 += Idr[62]; + RHS20 += Idr[63]; + RHS20 += Idr[64]; + RHS20 += Idr[65]; + RHS20 += Idr[66]; + RHS20 -= go[65] * *cnV[65]; + RHS20 -= go[66] * *cnV[66]; + m_A51 += gt[67]; + m_A51 += gt[68]; + m_A51 += gt[69]; + m_A51 += gt[70]; + m_A50 += go[67]; + m_A52 += go[68]; + double RHS21 = Idr[67]; + RHS21 += Idr[68]; + RHS21 += Idr[69]; + RHS21 += Idr[70]; + RHS21 -= go[69] * *cnV[69]; + RHS21 -= go[70] * *cnV[70]; + m_A56 += gt[71]; + m_A56 += gt[72]; + m_A56 += gt[73]; + m_A56 += gt[74]; + m_A56 += gt[75]; + m_A56 += gt[76]; + m_A53 += go[71]; + m_A54 += go[72]; + m_A57 += go[73]; + m_A59 += go[74]; + double RHS22 = Idr[71]; + RHS22 += Idr[72]; + RHS22 += Idr[73]; + RHS22 += Idr[74]; + RHS22 += Idr[75]; + RHS22 += Idr[76]; + RHS22 -= go[75] * *cnV[75]; + RHS22 -= go[76] * *cnV[76]; + m_A61 += gt[77]; + m_A61 += gt[78]; + m_A60 += go[77]; + m_A62 += go[78]; + double RHS23 = Idr[77]; + RHS23 += Idr[78]; + m_A68 += gt[79]; + m_A68 += gt[80]; + m_A68 += gt[81]; + m_A68 += gt[82]; + m_A68 += gt[83]; + m_A67 += go[79]; + m_A65 += go[80]; + m_A64 += go[81]; + m_A63 += go[82]; + m_A66 += go[83]; + double RHS24 = Idr[79]; + RHS24 += Idr[80]; + RHS24 += Idr[81]; + RHS24 += Idr[82]; + RHS24 += Idr[83]; + m_A77 += gt[84]; + m_A77 += gt[85]; + m_A77 += gt[86]; + m_A77 += gt[87]; + m_A74 += go[84]; + m_A73 += go[85]; + m_A78 += go[86]; + m_A72 += go[87]; + double RHS25 = Idr[84]; + RHS25 += Idr[85]; + RHS25 += Idr[86]; + RHS25 += Idr[87]; + m_A82 += gt[88]; + m_A82 += gt[89]; + m_A82 += gt[90]; + m_A82 += gt[91]; + m_A81 += go[88]; + m_A83 += go[89]; + double RHS26 = Idr[88]; + RHS26 += Idr[89]; + RHS26 += Idr[90]; + RHS26 += Idr[91]; + RHS26 -= go[90] * *cnV[90]; + RHS26 -= go[91] * *cnV[91]; + m_A87 += gt[92]; + m_A87 += gt[93]; + m_A87 += gt[94]; + m_A87 += gt[95]; + m_A87 += gt[96]; + m_A84 += go[92]; + m_A85 += go[93]; + m_A88 += go[94]; + double RHS27 = Idr[92]; + RHS27 += Idr[93]; + RHS27 += Idr[94]; + RHS27 += Idr[95]; + RHS27 += Idr[96]; + RHS27 -= go[95] * *cnV[95]; + RHS27 -= go[96] * *cnV[96]; + m_A96 += gt[97]; + m_A96 += gt[98]; + m_A96 += gt[99]; + m_A96 += gt[100]; + m_A96 += gt[101]; + m_A96 += gt[102]; + m_A96 += gt[103]; + m_A95 += go[97]; + m_A91 += go[98]; + m_A92 += go[99]; + m_A90 += go[100]; + m_A89 += go[101]; + m_A93 += go[102]; + m_A94 += go[103]; + double RHS28 = Idr[97]; + RHS28 += Idr[98]; + RHS28 += Idr[99]; + RHS28 += Idr[100]; + RHS28 += Idr[101]; + RHS28 += Idr[102]; + RHS28 += Idr[103]; + m_A106 += gt[104]; + m_A106 += gt[105]; + m_A106 += gt[106]; + m_A106 += gt[107]; + m_A106 += gt[108]; + m_A102 += go[104]; + m_A101 += go[105]; + m_A107 += go[106]; + m_A100 += go[107]; + m_A99 += go[108]; + double RHS29 = Idr[104]; + RHS29 += Idr[105]; + RHS29 += Idr[106]; + RHS29 += Idr[107]; + RHS29 += Idr[108]; + m_A115 += gt[109]; + m_A115 += gt[110]; + m_A115 += gt[111]; + m_A115 += gt[112]; + m_A115 += gt[113]; + m_A108 += go[109]; + m_A110 += go[110]; + m_A109 += go[111]; + m_A114 += go[112]; + double RHS30 = Idr[109]; + RHS30 += Idr[110]; + RHS30 += Idr[111]; + RHS30 += Idr[112]; + RHS30 += Idr[113]; + RHS30 -= go[113] * *cnV[113]; + const double f0 = 1.0 / m_A0; const double f0_16 = -f0 * m_A34; m_A35 += m_A1 * f0_16; RHS16 += f0_16 * RHS0; const double f0_29 = -f0 * m_A99; m_A101 += m_A1 * f0_29; RHS29 += f0_29 * RHS0; -const double f1 = 1.0 / m_A2; + const double f1 = 1.0 / m_A2; const double f1_19 = -f1 * m_A41; m_A43 += m_A3 * f1_19; RHS19 += f1_19 * RHS1; const double f1_29 = -f1 * m_A100; m_A106 += m_A3 * f1_29; RHS29 += f1_29 * RHS1; -const double f2 = 1.0 / m_A4; + const double f2 = 1.0 / m_A4; const double f2_20 = -f2 * m_A44; m_A45 += m_A5 * f2_20; RHS20 += f2_20 * RHS2; -const double f3 = 1.0 / m_A6; + const double f3 = 1.0 / m_A6; const double f3_30 = -f3 * m_A108; m_A115 += m_A7 * f3_30; RHS30 += f3_30 * RHS3; -const double f4 = 1.0 / m_A8; + const double f4 = 1.0 / m_A8; const double f4_17 = -f4 * m_A36; m_A37 += m_A9 * f4_17; RHS17 += f4_17 * RHS4; const double f4_24 = -f4 * m_A63; m_A65 += m_A9 * f4_24; RHS24 += f4_24 * RHS4; -const double f5 = 1.0 / m_A10; + const double f5 = 1.0 / m_A10; const double f5_22 = -f5 * m_A53; m_A55 += m_A11 * f5_22; RHS22 += f5_22 * RHS5; -const double f6 = 1.0 / m_A12; + const double f6 = 1.0 / m_A12; const double f6_21 = -f6 * m_A50; m_A52 += m_A13 * f6_21; RHS21 += f6_21 * RHS6; const double f6_24 = -f6 * m_A64; m_A68 += m_A13 * f6_24; RHS24 += f6_24 * RHS6; -const double f7 = 1.0 / m_A14; + const double f7 = 1.0 / m_A14; const double f7_22 = -f7 * m_A54; m_A56 += m_A15 * f7_22; m_A58 += m_A16 * f7_22; @@ -8720,41 +12626,41 @@ const double f7 = 1.0 / m_A14; m_A75 += m_A15 * f7_25; m_A77 += m_A16 * f7_25; RHS25 += f7_25 * RHS7; -const double f8 = 1.0 / m_A17; + const double f8 = 1.0 / m_A17; const double f8_25 = -f8 * m_A73; m_A77 += m_A18 * f8_25; RHS25 += f8_25 * RHS8; -const double f9 = 1.0 / m_A19; + const double f9 = 1.0 / m_A19; const double f9_23 = -f9 * m_A60; m_A61 += m_A20 * f9_23; RHS23 += f9_23 * RHS9; -const double f10 = 1.0 / m_A21; + const double f10 = 1.0 / m_A21; const double f10_25 = -f10 * m_A74; m_A77 += m_A22 * f10_25; RHS25 += f10_25 * RHS10; -const double f11 = 1.0 / m_A23; + const double f11 = 1.0 / m_A23; const double f11_27 = -f11 * m_A84; m_A86 += m_A24 * f11_27; RHS27 += f11_27 * RHS11; -const double f12 = 1.0 / m_A25; + const double f12 = 1.0 / m_A25; const double f12_18 = -f12 * m_A38; m_A40 += m_A26 * f12_18; RHS18 += f12_18 * RHS12; const double f12_28 = -f12 * m_A89; m_A92 += m_A26 * f12_28; RHS28 += f12_28 * RHS12; -const double f13 = 1.0 / m_A27; + const double f13 = 1.0 / m_A27; const double f13_18 = -f13 * m_A39; m_A40 += m_A28 * f13_18; RHS18 += f13_18 * RHS13; -const double f14 = 1.0 / m_A29; + const double f14 = 1.0 / m_A29; const double f14_26 = -f14 * m_A81; m_A83 += m_A30 * f14_26; RHS26 += f14_26 * RHS14; const double f14_28 = -f14 * m_A90; m_A96 += m_A30 * f14_28; RHS28 += f14_28 * RHS14; -const double f15 = 1.0 / m_A31; + const double f15 = 1.0 / m_A31; const double f15_27 = -f15 * m_A85; m_A87 += m_A32 * f15_27; m_A88 += m_A33 * f15_27; @@ -8763,20 +12669,20 @@ const double f15 = 1.0 / m_A31; m_A95 += m_A32 * f15_28; m_A96 += m_A33 * f15_28; RHS28 += f15_28 * RHS15; -const double f16 = 1.0 / m_A35; + const double f16 = 1.0 / m_A35; const double f16_29 = -f16 * m_A101; RHS29 += f16_29 * RHS16; -const double f17 = 1.0 / m_A37; + const double f17 = 1.0 / m_A37; const double f17_24 = -f17 * m_A65; RHS24 += f17_24 * RHS17; -const double f18 = 1.0 / m_A40; + const double f18 = 1.0 / m_A40; const double f18_28 = -f18 * m_A92; RHS28 += f18_28 * RHS18; -const double f19 = 1.0 / m_A42; + const double f19 = 1.0 / m_A42; const double f19_20 = -f19 * m_A45; m_A48 += m_A43 * f19_20; RHS20 += f19_20 * RHS19; -const double f20 = 1.0 / m_A46; + const double f20 = 1.0 / m_A46; const double f20_24 = -f20 * m_A66; m_A68 += m_A47 * f20_24; m_A70 += m_A48 * f20_24; @@ -8792,11 +12698,11 @@ const double f20 = 1.0 / m_A46; m_A114 += m_A48 * f20_30; m_A115 += m_A49 * f20_30; RHS30 += f20_30 * RHS20; -const double f21 = 1.0 / m_A51; + const double f21 = 1.0 / m_A51; const double f21_22 = -f21 * m_A55; m_A57 += m_A52 * f21_22; RHS22 += f21_22 * RHS21; -const double f22 = 1.0 / m_A56; + const double f22 = 1.0 / m_A56; const double f22_24 = -f22 * m_A67; m_A68 += m_A57 * f22_24; m_A69 += m_A58 * f22_24; @@ -8812,11 +12718,11 @@ const double f22 = 1.0 / m_A56; m_A112 += m_A58 * f22_30; m_A115 += m_A59 * f22_30; RHS30 += f22_30 * RHS22; -const double f23 = 1.0 / m_A61; + const double f23 = 1.0 / m_A61; const double f23_28 = -f23 * m_A93; m_A96 += m_A62 * f23_28; RHS28 += f23_28 * RHS23; -const double f24 = 1.0 / m_A68; + const double f24 = 1.0 / m_A68; const double f24_25 = -f24 * m_A76; m_A77 += m_A69 * f24_25; m_A79 += m_A70 * f24_25; @@ -8832,7 +12738,7 @@ const double f24 = 1.0 / m_A68; m_A114 += m_A70 * f24_30; m_A115 += m_A71 * f24_30; RHS30 += f24_30 * RHS24; -const double f25 = 1.0 / m_A77; + const double f25 = 1.0 / m_A77; const double f25_28 = -f25 * m_A94; m_A96 += m_A78 * f25_28; m_A97 += m_A79 * f25_28; @@ -8848,15 +12754,15 @@ const double f25 = 1.0 / m_A77; m_A114 += m_A79 * f25_30; m_A115 += m_A80 * f25_30; RHS30 += f25_30 * RHS25; -const double f26 = 1.0 / m_A82; + const double f26 = 1.0 / m_A82; const double f26_27 = -f26 * m_A86; m_A88 += m_A83 * f26_27; RHS27 += f26_27 * RHS26; -const double f27 = 1.0 / m_A87; + const double f27 = 1.0 / m_A87; const double f27_28 = -f27 * m_A95; m_A96 += m_A88 * f27_28; RHS28 += f27_28 * RHS27; -const double f28 = 1.0 / m_A96; + const double f28 = 1.0 / m_A96; const double f28_29 = -f28 * m_A105; m_A106 += m_A97 * f28_29; m_A107 += m_A98 * f28_29; @@ -8865,7 +12771,7 @@ const double f28 = 1.0 / m_A96; m_A114 += m_A97 * f28_30; m_A115 += m_A98 * f28_30; RHS30 += f28_30 * RHS28; -const double f29 = 1.0 / m_A106; + const double f29 = 1.0 / m_A106; const double f29_30 = -f29 * m_A114; m_A115 += m_A107 * f29_30; RHS30 += f29_30 * RHS29; @@ -8971,1547 +12877,1859 @@ const double f29 = 1.0 / m_A106; } // 280zzzap -static void nl_gcr_9e7791458f751e0c_123_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_caa814c0740131f2_104_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[8] + gt[9]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] - go[9] * *cnV[9]; - m_A4 = gt[16] + gt[17] + gt[18] + gt[19] + gt[20] + gt[21] + gt[22]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] + Idr[19] + Idr[20] + Idr[21] + Idr[22] - go[17] * *cnV[17] - go[18] * *cnV[18] - go[19] * *cnV[19] - go[20] * *cnV[20] - go[21] * *cnV[21] - go[22] * *cnV[22]; - m_A6 = gt[24] + gt[25] + gt[26]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] - go[25] * *cnV[25] - go[26] * *cnV[26]; - m_A8 = gt[32] + gt[33] + gt[34] + gt[35] + gt[36] + gt[37] + gt[38]; - m_A9 = m_A9 + go[32]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] + Idr[35] + Idr[36] + Idr[37] + Idr[38] - go[33] * *cnV[33] - go[34] * *cnV[34] - go[35] * *cnV[35] - go[36] * *cnV[36] - go[37] * *cnV[37] - go[38] * *cnV[38]; - m_A10 = gt[40] + gt[41]; - m_A11 = m_A11 + go[40]; - double RHS5 = Idr[40] + Idr[41] - go[41] * *cnV[41]; - m_A12 = gt[48] + gt[49]; - m_A14 = m_A14 + go[48]; - m_A13 = m_A13 + go[49]; - double RHS6 = Idr[48] + Idr[49]; - m_A15 = gt[56] + gt[57]; - m_A16 = m_A16 + go[56]; - double RHS7 = Idr[56] + Idr[57] - go[57] * *cnV[57]; - m_A17 = gt[64] + gt[65]; - m_A18 = m_A18 + go[64]; - double RHS8 = Idr[64] + Idr[65] - go[65] * *cnV[65]; - m_A19 = gt[72] + gt[73] + gt[74] + gt[75] + gt[76] + gt[77] + gt[78]; - m_A20 = m_A20 + go[72]; - double RHS9 = Idr[72] + Idr[73] + Idr[74] + Idr[75] + Idr[76] + Idr[77] + Idr[78] - go[73] * *cnV[73] - go[74] * *cnV[74] - go[75] * *cnV[75] - go[76] * *cnV[76] - go[77] * *cnV[77] - go[78] * *cnV[78]; - m_A21 = gt[80] + gt[81] + gt[82]; - m_A22 = m_A22 + go[80]; - double RHS10 = Idr[80] + Idr[81] + Idr[82] - go[81] * *cnV[81] - go[82] * *cnV[82]; - m_A23 = gt[88] + gt[89] + gt[90] + gt[91]; - m_A24 = m_A24 + go[88]; - double RHS11 = Idr[88] + Idr[89] + Idr[90] + Idr[91] - go[89] * *cnV[89] - go[90] * *cnV[90] - go[91] * *cnV[91]; - m_A25 = gt[96] + gt[97] + gt[98] + gt[99] + gt[100] + gt[101] + gt[102]; - m_A26 = m_A26 + go[96]; - double RHS12 = Idr[96] + Idr[97] + Idr[98] + Idr[99] + Idr[100] + Idr[101] + Idr[102] - go[97] * *cnV[97] - go[98] * *cnV[98] - go[99] * *cnV[99] - go[100] * *cnV[100] - go[101] * *cnV[101] - go[102] * *cnV[102]; - m_A27 = gt[104] + gt[105]; - m_A28 = m_A28 + go[104]; - double RHS13 = Idr[104] + Idr[105] - go[105] * *cnV[105]; - m_A29 = gt[112] + gt[113]; - m_A30 = m_A30 + go[112]; - double RHS14 = Idr[112] + Idr[113] - go[113] * *cnV[113]; - m_A31 = gt[120] + gt[121]; - m_A32 = m_A32 + go[120]; - double RHS15 = Idr[120] + Idr[121] - go[121] * *cnV[121]; - m_A33 = gt[128] + gt[129] + gt[130] + gt[131]; - m_A35 = m_A35 + go[128]; - m_A34 = m_A34 + go[129]; - double RHS16 = Idr[128] + Idr[129] + Idr[130] + Idr[131] - go[130] * *cnV[130] - go[131] * *cnV[131]; - m_A36 = gt[136] + gt[137] + gt[138]; - m_A37 = m_A37 + go[136]; - double RHS17 = Idr[136] + Idr[137] + Idr[138] - go[137] * *cnV[137] - go[138] * *cnV[138]; - m_A38 = gt[144] + gt[145]; - m_A39 = m_A39 + go[144]; - double RHS18 = Idr[144] + Idr[145] - go[145] * *cnV[145]; - m_A40 = gt[152] + gt[153]; - m_A41 = m_A41 + go[152]; - double RHS19 = Idr[152] + Idr[153] - go[153] * *cnV[153]; - m_A43 = gt[160] + gt[161] + gt[162] + gt[163]; - m_A42 = m_A42 + go[160]; - double RHS20 = Idr[160] + Idr[161] + Idr[162] + Idr[163] - go[161] * *cnV[161] - go[162] * *cnV[162] - go[163] * *cnV[163]; - m_A47 = gt[168] + gt[169]; - m_A46 = m_A46 + go[168]; - m_A45 = m_A45 + go[169]; - double RHS21 = Idr[168] + Idr[169]; - m_A51 = gt[176] + gt[177]; - m_A49 = m_A49 + go[176]; - double RHS22 = Idr[176] + Idr[177] - go[177] * *cnV[177]; - m_A54 = gt[184] + gt[185] + gt[186]; - m_A53 = m_A53 + go[184]; - m_A52 = m_A52 + go[185]; - double RHS23 = Idr[184] + Idr[185] + Idr[186] - go[186] * *cnV[186]; - m_A56 = gt[192] + gt[193] + gt[194] + gt[195]; - m_A55 = m_A55 + go[192]; - m_A57 = m_A57 + go[193]; - double RHS24 = Idr[192] + Idr[193] + Idr[194] + Idr[195] - go[194] * *cnV[194] - go[195] * *cnV[195]; - m_A59 = gt[200] + gt[201] + gt[202] + gt[203]; - m_A58 = m_A58 + go[200]; - m_A60 = m_A60 + go[201]; - double RHS25 = Idr[200] + Idr[201] + Idr[202] + Idr[203] - go[202] * *cnV[202] - go[203] * *cnV[203]; - m_A62 = gt[208] + gt[209]; - m_A63 = m_A63 + go[208]; - m_A61 = m_A61 + go[209]; - double RHS26 = Idr[208] + Idr[209]; - m_A67 = gt[216] + gt[217] + gt[218] + gt[219] + gt[220] + gt[221]; - m_A64 = m_A64 + go[216]; - m_A65 = m_A65 + go[217]; - m_A69 = m_A69 + go[218]; - m_A68 = m_A68 + go[219]; - double RHS27 = Idr[216] + Idr[217] + Idr[218] + Idr[219] + Idr[220] + Idr[221] - go[220] * *cnV[220] - go[221] * *cnV[221]; - m_A72 = gt[224] + gt[225] + gt[226] + gt[227]; - m_A71 = m_A71 + go[224]; - m_A73 = m_A73 + go[225]; - double RHS28 = Idr[224] + Idr[225] + Idr[226] + Idr[227] - go[226] * *cnV[226] - go[227] * *cnV[227]; - m_A76 = gt[232] + gt[233] + gt[234] + gt[235]; - m_A77 = m_A77 + go[232]; - m_A78 = m_A78 + go[233]; - m_A74 = m_A74 + go[234]; - m_A75 = m_A75 + go[235]; - double RHS29 = Idr[232] + Idr[233] + Idr[234] + Idr[235]; - m_A81 = gt[240] + gt[241] + gt[242]; - m_A80 = m_A80 + go[240]; - m_A79 = m_A79 + go[241]; - double RHS30 = Idr[240] + Idr[241] + Idr[242] - go[242] * *cnV[242]; - m_A84 = gt[248] + gt[249]; - m_A82 = m_A82 + go[248]; - m_A83 = m_A83 + go[249]; - double RHS31 = Idr[248] + Idr[249]; - m_A91 = gt[256] + gt[257] + gt[258] + gt[259] + gt[260]; - m_A86 = m_A86 + go[256]; - m_A90 = m_A90 + go[257]; - m_A88 = m_A88 + go[258]; - m_A85 = m_A85 + go[259]; - m_A87 = m_A87 + go[260]; - double RHS32 = Idr[256] + Idr[257] + Idr[258] + Idr[259] + Idr[260]; - m_A99 = gt[264] + gt[265] + gt[266] + gt[267] + gt[268]; - m_A96 = m_A96 + go[264]; - m_A100 = m_A100 + go[265]; - m_A97 = m_A97 + go[266]; - m_A94 = m_A94 + go[267]; - m_A95 = m_A95 + go[268]; - double RHS33 = Idr[264] + Idr[265] + Idr[266] + Idr[267] + Idr[268]; - m_A106 = gt[272] + gt[273] + gt[274] + gt[275]; - m_A103 = m_A103 + go[272]; - m_A104 = m_A104 + go[273]; - m_A101 = m_A101 + go[274]; - m_A102 = m_A102 + go[275]; - double RHS34 = Idr[272] + Idr[273] + Idr[274] + Idr[275]; - m_A111 = gt[280] + gt[281] + gt[282] + gt[283]; - m_A108 = m_A108 + go[280]; - m_A109 = m_A109 + go[281]; - double RHS35 = Idr[280] + Idr[281] + Idr[282] + Idr[283] - go[282] * *cnV[282] - go[283] * *cnV[283]; - m_A122 = gt[288] + gt[289] + gt[290] + gt[291] + gt[292] + gt[293]; - m_A113 = m_A113 + go[288]; - m_A117 = m_A117 + go[289]; - m_A120 = m_A120 + go[290]; - m_A114 = m_A114 + go[291]; - double RHS36 = Idr[288] + Idr[289] + Idr[290] + Idr[291] + Idr[292] + Idr[293] - go[292] * *cnV[292] - go[293] * *cnV[293]; -const double f0 = 1.0 / m_A0; - const double f0_24 = -f0 * m_A55; - m_A57 += m_A1 * f0_24; - RHS24 += f0_24 * RHS0; - const double f0_32 = -f0 * m_A85; - m_A91 += m_A1 * f0_32; - RHS32 += f0_32 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_32 = -f1 * m_A86; - m_A91 += m_A3 * f1_32; - RHS32 += f1_32 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_27 = -f2 * m_A64; - m_A66 += m_A5 * f2_27; - RHS27 += f2_27 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_25 = -f3 * m_A58; - m_A60 += m_A7 * f3_25; - RHS25 += f3_25 * RHS3; - const double f3_34 = -f3 * m_A101; - m_A106 += m_A7 * f3_34; - RHS34 += f3_34 * RHS3; -const double f4 = 1.0 / m_A8; - const double f4_20 = -f4 * m_A42; - m_A44 += m_A9 * f4_20; - RHS20 += f4_20 * RHS4; -const double f5 = 1.0 / m_A10; - const double f5_21 = -f5 * m_A45; - m_A47 += m_A11 * f5_21; - RHS21 += f5_21 * RHS5; - const double f5_32 = -f5 * m_A87; - m_A88 += m_A11 * f5_32; - RHS32 += f5_32 * RHS5; -const double f6 = 1.0 / m_A12; - const double f6_21 = -f6 * m_A46; - m_A47 += m_A13 * f6_21; - m_A48 += m_A14 * f6_21; + 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); + 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_A2 += gt[4]; + m_A2 += gt[5]; + m_A5 += go[2]; + m_A4 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[5] * *cnV[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A7 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A8 += gt[9]; + m_A8 += gt[10]; + m_A9 += go[9]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 -= go[10] * *cnV[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A12 += go[11]; + m_A11 += go[12]; + double RHS4 = Idr[11]; + RHS4 += Idr[12]; + RHS4 += Idr[13]; + RHS4 -= go[13] * *cnV[13]; + m_A13 += gt[14]; + m_A13 += gt[15]; + m_A14 += go[14]; + double RHS5 = Idr[14]; + RHS5 += Idr[15]; + RHS5 -= go[15] * *cnV[15]; + m_A15 += gt[16]; + m_A15 += gt[17]; + m_A15 += gt[18]; + m_A15 += gt[19]; + m_A15 += gt[20]; + m_A15 += gt[21]; + m_A15 += gt[22]; + m_A19 += go[16]; + m_A18 += go[17]; + m_A17 += go[18]; + m_A16 += go[19]; + double RHS6 = Idr[16]; + RHS6 += Idr[17]; + RHS6 += Idr[18]; + RHS6 += Idr[19]; + RHS6 += Idr[20]; + RHS6 += Idr[21]; + RHS6 += Idr[22]; + RHS6 -= go[20] * *cnV[20]; + RHS6 -= go[21] * *cnV[21]; + RHS6 -= go[22] * *cnV[22]; + m_A20 += gt[23]; + m_A20 += gt[24]; + m_A20 += gt[25]; + m_A20 += gt[26]; + m_A20 += gt[27]; + m_A20 += gt[28]; + m_A20 += gt[29]; + m_A24 += go[23]; + m_A23 += go[24]; + m_A22 += go[25]; + m_A21 += go[26]; + double RHS7 = Idr[23]; + RHS7 += Idr[24]; + RHS7 += Idr[25]; + RHS7 += Idr[26]; + RHS7 += Idr[27]; + RHS7 += Idr[28]; + RHS7 += Idr[29]; + RHS7 -= go[27] * *cnV[27]; + RHS7 -= go[28] * *cnV[28]; + RHS7 -= go[29] * *cnV[29]; + m_A25 += gt[30]; + m_A25 += gt[31]; + m_A25 += gt[32]; + m_A26 += go[30]; + m_A27 += go[31]; + double RHS8 = Idr[30]; + RHS8 += Idr[31]; + RHS8 += Idr[32]; + RHS8 -= go[32] * *cnV[32]; + m_A28 += gt[33]; + m_A28 += gt[34]; + m_A29 += go[33]; + double RHS9 = Idr[33]; + RHS9 += Idr[34]; + RHS9 -= go[34] * *cnV[34]; + m_A30 += gt[35]; + m_A30 += gt[36]; + m_A30 += gt[37]; + m_A30 += gt[38]; + m_A31 += go[35]; + double RHS10 = Idr[35]; + RHS10 += Idr[36]; + RHS10 += Idr[37]; + RHS10 += Idr[38]; + RHS10 -= go[36] * *cnV[36]; + RHS10 -= go[37] * *cnV[37]; + RHS10 -= go[38] * *cnV[38]; + m_A32 += gt[39]; + m_A32 += gt[40]; + m_A33 += go[39]; + double RHS11 = Idr[39]; + RHS11 += Idr[40]; + RHS11 -= go[40] * *cnV[40]; + m_A36 += gt[41]; + m_A36 += gt[42]; + m_A36 += gt[43]; + m_A36 += gt[44]; + m_A35 += go[41]; + m_A34 += go[42]; + double RHS12 = Idr[41]; + RHS12 += Idr[42]; + RHS12 += Idr[43]; + RHS12 += Idr[44]; + RHS12 -= go[43] * *cnV[43]; + RHS12 -= go[44] * *cnV[44]; + m_A42 += gt[45]; + m_A42 += gt[46]; + m_A42 += gt[47]; + m_A42 += gt[48]; + m_A40 += go[45]; + m_A41 += go[46]; + m_A43 += go[47]; + m_A39 += go[48]; + double RHS13 = Idr[45]; + RHS13 += Idr[46]; + RHS13 += Idr[47]; + RHS13 += Idr[48]; + m_A45 += gt[49]; + m_A45 += gt[50]; + m_A45 += gt[51]; + m_A45 += gt[52]; + m_A44 += go[49]; + m_A46 += go[50]; + double RHS14 = Idr[49]; + RHS14 += Idr[50]; + RHS14 += Idr[51]; + RHS14 += Idr[52]; + RHS14 -= go[51] * *cnV[51]; + RHS14 -= go[52] * *cnV[52]; + m_A50 += gt[53]; + m_A50 += gt[54]; + m_A50 += gt[55]; + m_A50 += gt[56]; + m_A48 += go[53]; + m_A47 += go[54]; + double RHS15 = Idr[53]; + RHS15 += Idr[54]; + RHS15 += Idr[55]; + RHS15 += Idr[56]; + RHS15 -= go[55] * *cnV[55]; + RHS15 -= go[56] * *cnV[56]; + m_A57 += gt[57]; + m_A57 += gt[58]; + m_A57 += gt[59]; + m_A57 += gt[60]; + m_A56 += go[57]; + m_A55 += go[58]; + m_A58 += go[59]; + double RHS16 = Idr[57]; + RHS16 += Idr[58]; + RHS16 += Idr[59]; + RHS16 += Idr[60]; + RHS16 -= go[60] * *cnV[60]; + m_A63 += gt[61]; + m_A63 += gt[62]; + m_A63 += gt[63]; + m_A63 += gt[64]; + m_A66 += go[61]; + m_A60 += go[62]; + m_A59 += go[63]; + double RHS17 = Idr[61]; + RHS17 += Idr[62]; + RHS17 += Idr[63]; + RHS17 += Idr[64]; + RHS17 -= go[64] * *cnV[64]; + m_A74 += gt[65]; + m_A74 += gt[66]; + m_A74 += gt[67]; + m_A74 += gt[68]; + m_A74 += gt[69]; + m_A74 += gt[70]; + m_A77 += go[65]; + m_A70 += go[66]; + m_A69 += go[67]; + m_A68 += go[68]; + m_A71 += go[69]; + double RHS18 = Idr[65]; + RHS18 += Idr[66]; + RHS18 += Idr[67]; + RHS18 += Idr[68]; + RHS18 += Idr[69]; + RHS18 += Idr[70]; + RHS18 -= go[70] * *cnV[70]; + m_A85 += gt[71]; + m_A85 += gt[72]; + m_A85 += gt[73]; + m_A85 += gt[74]; + m_A85 += gt[75]; + m_A85 += gt[76]; + m_A82 += go[71]; + m_A87 += go[72]; + m_A79 += go[73]; + m_A80 += go[74]; + m_A78 += go[75]; + double RHS19 = Idr[71]; + RHS19 += Idr[72]; + RHS19 += Idr[73]; + RHS19 += Idr[74]; + RHS19 += Idr[75]; + RHS19 += Idr[76]; + RHS19 -= go[76] * *cnV[76]; + m_A93 += gt[77]; + m_A93 += gt[78]; + m_A93 += gt[79]; + m_A93 += gt[80]; + m_A93 += gt[81]; + m_A89 += go[77]; + m_A88 += go[78]; + m_A90 += go[79]; + double RHS20 = Idr[77]; + RHS20 += Idr[78]; + RHS20 += Idr[79]; + RHS20 += Idr[80]; + RHS20 += Idr[81]; + RHS20 -= go[80] * *cnV[80]; + RHS20 -= go[81] * *cnV[81]; + m_A103 += gt[82]; + m_A103 += gt[83]; + m_A103 += gt[84]; + m_A103 += gt[85]; + m_A103 += gt[86]; + m_A103 += gt[87]; + m_A103 += gt[88]; + m_A97 += go[82]; + m_A96 += go[83]; + m_A101 += go[84]; + m_A95 += go[85]; + m_A100 += go[86]; + double RHS21 = Idr[82]; + RHS21 += Idr[83]; + RHS21 += Idr[84]; + RHS21 += Idr[85]; + RHS21 += Idr[86]; + RHS21 += Idr[87]; + RHS21 += Idr[88]; + RHS21 -= go[87] * *cnV[87]; + RHS21 -= go[88] * *cnV[88]; + const double f0 = 1.0 / m_A0; + const double f0_12 = -f0 * m_A34; + m_A36 += m_A1 * f0_12; + RHS12 += f0_12 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_12 = -f1 * m_A35; + m_A36 += m_A3 * f1_12; + m_A37 += m_A4 * f1_12; + m_A38 += m_A5 * f1_12; + RHS12 += f1_12 * RHS1; + const double f1_15 = -f1 * m_A47; + m_A49 += m_A3 * f1_15; + m_A50 += m_A4 * f1_15; + m_A51 += m_A5 * f1_15; + RHS15 += f1_15 * RHS1; + const double f1_17 = -f1 * m_A59; + m_A61 += m_A3 * f1_17; + m_A62 += m_A4 * f1_17; + m_A63 += m_A5 * f1_17; + RHS17 += f1_17 * RHS1; + const double f2 = 1.0 / m_A6; + const double f2_13 = -f2 * m_A39; + m_A42 += m_A7 * f2_13; + RHS13 += f2_13 * RHS2; + const double f3 = 1.0 / m_A8; + const double f3_13 = -f3 * m_A40; + m_A42 += m_A9 * f3_13; + RHS13 += f3_13 * RHS3; + const double f4 = 1.0 / m_A10; + const double f4_13 = -f4 * m_A41; + m_A42 += m_A11 * f4_13; + m_A43 += m_A12 * f4_13; + RHS13 += f4_13 * RHS4; + const double f4_18 = -f4 * m_A68; + m_A71 += m_A11 * f4_18; + m_A74 += m_A12 * f4_18; + RHS18 += f4_18 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_14 = -f5 * m_A44; + m_A45 += m_A14 * f5_14; + RHS14 += f5_14 * RHS5; + const double f6 = 1.0 / m_A15; + const double f6_15 = -f6 * m_A48; + m_A50 += m_A16 * f6_15; + m_A52 += m_A17 * f6_15; + m_A53 += m_A18 * f6_15; + m_A54 += m_A19 * f6_15; + RHS15 += f6_15 * RHS6; + const double f6_18 = -f6 * m_A69; + m_A72 += m_A16 * f6_18; + m_A74 += m_A17 * f6_18; + m_A75 += m_A18 * f6_18; + m_A77 += m_A19 * f6_18; + RHS18 += f6_18 * RHS6; + const double f6_19 = -f6 * m_A78; + m_A81 += m_A16 * f6_19; + m_A84 += m_A17 * f6_19; + m_A85 += m_A18 * f6_19; + m_A87 += m_A19 * f6_19; + RHS19 += f6_19 * RHS6; + const double f6_21 = -f6 * m_A95; + m_A98 += m_A16 * f6_21; + m_A100 += m_A17 * f6_21; + m_A101 += m_A18 * f6_21; + m_A103 += m_A19 * f6_21; RHS21 += f6_21 * RHS6; - const double f6_22 = -f6 * m_A49; - m_A50 += m_A13 * f6_22; - m_A51 += m_A14 * f6_22; - RHS22 += f6_22 * RHS6; -const double f7 = 1.0 / m_A15; - const double f7_23 = -f7 * m_A52; - m_A54 += m_A16 * f7_23; - RHS23 += f7_23 * RHS7; - const double f7_34 = -f7 * m_A102; - m_A103 += m_A16 * f7_34; - RHS34 += f7_34 * RHS7; -const double f8 = 1.0 / m_A17; - const double f8_23 = -f8 * m_A53; - m_A54 += m_A18 * f8_23; - RHS23 += f8_23 * RHS8; -const double f9 = 1.0 / m_A19; - const double f9_36 = -f9 * m_A113; - m_A116 += m_A20 * f9_36; - RHS36 += f9_36 * RHS9; -const double f10 = 1.0 / m_A21; - const double f10_28 = -f10 * m_A71; - m_A73 += m_A22 * f10_28; - RHS28 += f10_28 * RHS10; - const double f10_33 = -f10 * m_A94; - m_A99 += m_A22 * f10_33; - RHS33 += f10_33 * RHS10; -const double f13 = 1.0 / m_A27; - const double f13_26 = -f13 * m_A61; - m_A62 += m_A28 * f13_26; - RHS26 += f13_26 * RHS13; - const double f13_33 = -f13 * m_A95; - m_A97 += m_A28 * f13_33; - RHS33 += f13_33 * RHS13; -const double f14 = 1.0 / m_A29; - const double f14_33 = -f14 * m_A96; - m_A99 += m_A30 * f14_33; - RHS33 += f14_33 * RHS14; -const double f15 = 1.0 / m_A31; - const double f15_31 = -f15 * m_A82; - m_A84 += m_A32 * f15_31; - RHS31 += f15_31 * RHS15; -const double f16 = 1.0 / m_A33; - const double f16_27 = -f16 * m_A65; - m_A67 += m_A34 * f16_27; - m_A70 += m_A35 * f16_27; - RHS27 += f16_27 * RHS16; - const double f16_36 = -f16 * m_A114; - m_A115 += m_A34 * f16_36; - m_A122 += m_A35 * f16_36; - RHS36 += f16_36 * RHS16; -const double f17 = 1.0 / m_A36; - const double f17_29 = -f17 * m_A74; - m_A76 += m_A37 * f17_29; - RHS29 += f17_29 * RHS17; - const double f17_35 = -f17 * m_A108; - m_A109 += m_A37 * f17_35; - RHS35 += f17_35 * RHS17; -const double f18 = 1.0 / m_A38; - const double f18_29 = -f18 * m_A75; - m_A77 += m_A39 * f18_29; - RHS29 += f18_29 * RHS18; - const double f18_30 = -f18 * m_A79; - m_A81 += m_A39 * f18_30; - RHS30 += f18_30 * RHS18; -const double f19 = 1.0 / m_A40; - const double f19_30 = -f19 * m_A80; - m_A81 += m_A41 * f19_30; - RHS30 += f19_30 * RHS19; -const double f21 = 1.0 / m_A47; - const double f21_22 = -f21 * m_A50; - m_A51 += m_A48 * f21_22; - RHS22 += f21_22 * RHS21; - const double f21_32 = -f21 * m_A88; - m_A89 += m_A48 * f21_32; - RHS32 += f21_32 * RHS21; -const double f22 = 1.0 / m_A51; - const double f22_32 = -f22 * m_A89; - RHS32 += f22_32 * RHS22; -const double f23 = 1.0 / m_A54; - const double f23_34 = -f23 * m_A103; - RHS34 += f23_34 * RHS23; -const double f24 = 1.0 / m_A56; - const double f24_27 = -f24 * m_A66; - m_A68 += m_A57 * f24_27; - RHS27 += f24_27 * RHS24; -const double f26 = 1.0 / m_A62; - const double f26_31 = -f26 * m_A83; - m_A84 += m_A63 * f26_31; - RHS31 += f26_31 * RHS26; - const double f26_33 = -f26 * m_A97; - m_A98 += m_A63 * f26_33; - RHS33 += f26_33 * RHS26; -const double f27 = 1.0 / m_A67; - const double f27_32 = -f27 * m_A90; - m_A91 += m_A68 * f27_32; - m_A92 += m_A69 * f27_32; - m_A93 += m_A70 * f27_32; - RHS32 += f27_32 * RHS27; - const double f27_34 = -f27 * m_A104; - m_A105 += m_A68 * f27_34; - m_A106 += m_A69 * f27_34; - m_A107 += m_A70 * f27_34; - RHS34 += f27_34 * RHS27; - const double f27_36 = -f27 * m_A115; - m_A119 += m_A68 * f27_36; - m_A121 += m_A69 * f27_36; - m_A122 += m_A70 * f27_36; - RHS36 += f27_36 * RHS27; -const double f28 = 1.0 / m_A72; - const double f28_36 = -f28 * m_A116; - m_A120 += m_A73 * f28_36; - RHS36 += f28_36 * RHS28; -const double f29 = 1.0 / m_A76; - const double f29_35 = -f29 * m_A109; - m_A110 += m_A77 * f29_35; - m_A112 += m_A78 * f29_35; - RHS35 += f29_35 * RHS29; - const double f29_36 = -f29 * m_A117; - m_A118 += m_A77 * f29_36; - m_A122 += m_A78 * f29_36; - RHS36 += f29_36 * RHS29; -const double f30 = 1.0 / m_A81; - const double f30_35 = -f30 * m_A110; - RHS35 += f30_35 * RHS30; - const double f30_36 = -f30 * m_A118; - RHS36 += f30_36 * RHS30; -const double f31 = 1.0 / m_A84; - const double f31_33 = -f31 * m_A98; - RHS33 += f31_33 * RHS31; -const double f32 = 1.0 / m_A91; - const double f32_34 = -f32 * m_A105; - m_A106 += m_A92 * f32_34; - m_A107 += m_A93 * f32_34; - RHS34 += f32_34 * RHS32; - const double f32_36 = -f32 * m_A119; - m_A121 += m_A92 * f32_36; - m_A122 += m_A93 * f32_36; - RHS36 += f32_36 * RHS32; -const double f33 = 1.0 / m_A99; - const double f33_36 = -f33 * m_A120; - m_A122 += m_A100 * f33_36; - RHS36 += f33_36 * RHS33; -const double f34 = 1.0 / m_A106; - const double f34_36 = -f34 * m_A121; - m_A122 += m_A107 * f34_36; - RHS36 += f34_36 * RHS34; - V[36] = RHS36 / m_A122; - double tmp35 = 0.0; - tmp35 += m_A112 * V[36]; - V[35] = (RHS35 - tmp35) / m_A111; - double tmp34 = 0.0; - tmp34 += m_A107 * V[36]; - V[34] = (RHS34 - tmp34) / m_A106; - double tmp33 = 0.0; - tmp33 += m_A100 * V[36]; - V[33] = (RHS33 - tmp33) / m_A99; - double tmp32 = 0.0; - tmp32 += m_A92 * V[34]; - tmp32 += m_A93 * V[36]; - V[32] = (RHS32 - tmp32) / m_A91; - double tmp31 = 0.0; - V[31] = (RHS31 - tmp31) / m_A84; - double tmp30 = 0.0; - V[30] = (RHS30 - tmp30) / m_A81; - double tmp29 = 0.0; - tmp29 += m_A77 * V[30]; - tmp29 += m_A78 * V[36]; - V[29] = (RHS29 - tmp29) / m_A76; - double tmp28 = 0.0; - tmp28 += m_A73 * V[33]; - V[28] = (RHS28 - tmp28) / m_A72; - double tmp27 = 0.0; - tmp27 += m_A68 * V[32]; - tmp27 += m_A69 * V[34]; - tmp27 += m_A70 * V[36]; - V[27] = (RHS27 - tmp27) / m_A67; - double tmp26 = 0.0; - tmp26 += m_A63 * V[31]; - V[26] = (RHS26 - tmp26) / m_A62; - double tmp25 = 0.0; - tmp25 += m_A60 * V[34]; - V[25] = (RHS25 - tmp25) / m_A59; - double tmp24 = 0.0; - tmp24 += m_A57 * V[32]; - V[24] = (RHS24 - tmp24) / m_A56; - double tmp23 = 0.0; - V[23] = (RHS23 - tmp23) / m_A54; - double tmp22 = 0.0; - V[22] = (RHS22 - tmp22) / m_A51; - double tmp21 = 0.0; - tmp21 += m_A48 * V[22]; - V[21] = (RHS21 - tmp21) / m_A47; + const double f7 = 1.0 / m_A20; + const double f7_17 = -f7 * m_A60; + m_A63 += m_A21 * f7_17; + m_A64 += m_A22 * f7_17; + m_A65 += m_A23 * f7_17; + m_A67 += m_A24 * f7_17; + RHS17 += f7_17 * RHS7; + const double f7_18 = -f7 * m_A70; + m_A73 += m_A21 * f7_18; + m_A74 += m_A22 * f7_18; + m_A75 += m_A23 * f7_18; + m_A77 += m_A24 * f7_18; + RHS18 += f7_18 * RHS7; + const double f7_19 = -f7 * m_A79; + m_A83 += m_A21 * f7_19; + m_A84 += m_A22 * f7_19; + m_A85 += m_A23 * f7_19; + m_A87 += m_A24 * f7_19; + RHS19 += f7_19 * RHS7; + const double f7_21 = -f7 * m_A96; + m_A99 += m_A21 * f7_21; + m_A100 += m_A22 * f7_21; + m_A101 += m_A23 * f7_21; + m_A103 += m_A24 * f7_21; + RHS21 += f7_21 * RHS7; + const double f8 = 1.0 / m_A25; + const double f8_16 = -f8 * m_A55; + m_A57 += m_A26 * f8_16; + m_A58 += m_A27 * f8_16; + RHS16 += f8_16 * RHS8; + const double f8_19 = -f8 * m_A80; + m_A82 += m_A26 * f8_19; + m_A85 += m_A27 * f8_19; + RHS19 += f8_19 * RHS8; + const double f9 = 1.0 / m_A28; + const double f9_16 = -f9 * m_A56; + m_A57 += m_A29 * f9_16; + RHS16 += f9_16 * RHS9; + const double f10 = 1.0 / m_A30; + const double f10_20 = -f10 * m_A88; + m_A93 += m_A31 * f10_20; + RHS20 += f10_20 * RHS10; + const double f11 = 1.0 / m_A32; + const double f11_20 = -f11 * m_A89; + m_A93 += m_A33 * f11_20; + RHS20 += f11_20 * RHS11; + const double f12 = 1.0 / m_A36; + const double f12_15 = -f12 * m_A49; + m_A50 += m_A37 * f12_15; + m_A51 += m_A38 * f12_15; + RHS15 += f12_15 * RHS12; + const double f12_17 = -f12 * m_A61; + m_A62 += m_A37 * f12_17; + m_A63 += m_A38 * f12_17; + RHS17 += f12_17 * RHS12; + const double f13 = 1.0 / m_A42; + const double f13_18 = -f13 * m_A71; + m_A74 += m_A43 * f13_18; + RHS18 += f13_18 * RHS13; + const double f14 = 1.0 / m_A45; + const double f14_21 = -f14 * m_A97; + m_A103 += m_A46 * f14_21; + RHS21 += f14_21 * RHS14; + const double f15 = 1.0 / m_A50; + const double f15_17 = -f15 * m_A62; + m_A63 += m_A51 * f15_17; + m_A64 += m_A52 * f15_17; + m_A65 += m_A53 * f15_17; + m_A67 += m_A54 * f15_17; + RHS17 += f15_17 * RHS15; + const double f15_18 = -f15 * m_A72; + m_A73 += m_A51 * f15_18; + m_A74 += m_A52 * f15_18; + m_A75 += m_A53 * f15_18; + m_A77 += m_A54 * f15_18; + RHS18 += f15_18 * RHS15; + const double f15_19 = -f15 * m_A81; + m_A83 += m_A51 * f15_19; + m_A84 += m_A52 * f15_19; + m_A85 += m_A53 * f15_19; + m_A87 += m_A54 * f15_19; + RHS19 += f15_19 * RHS15; + const double f15_21 = -f15 * m_A98; + m_A99 += m_A51 * f15_21; + m_A100 += m_A52 * f15_21; + m_A101 += m_A53 * f15_21; + m_A103 += m_A54 * f15_21; + RHS21 += f15_21 * RHS15; + const double f16 = 1.0 / m_A57; + const double f16_19 = -f16 * m_A82; + m_A85 += m_A58 * f16_19; + RHS19 += f16_19 * RHS16; + const double f17 = 1.0 / m_A63; + const double f17_18 = -f17 * m_A73; + m_A74 += m_A64 * f17_18; + m_A75 += m_A65 * f17_18; + m_A76 += m_A66 * f17_18; + m_A77 += m_A67 * f17_18; + RHS18 += f17_18 * RHS17; + const double f17_19 = -f17 * m_A83; + m_A84 += m_A64 * f17_19; + m_A85 += m_A65 * f17_19; + m_A86 += m_A66 * f17_19; + m_A87 += m_A67 * f17_19; + RHS19 += f17_19 * RHS17; + const double f17_20 = -f17 * m_A90; + m_A91 += m_A64 * f17_20; + m_A92 += m_A65 * f17_20; + m_A93 += m_A66 * f17_20; + m_A94 += m_A67 * f17_20; + RHS20 += f17_20 * RHS17; + const double f17_21 = -f17 * m_A99; + m_A100 += m_A64 * f17_21; + m_A101 += m_A65 * f17_21; + m_A102 += m_A66 * f17_21; + m_A103 += m_A67 * f17_21; + RHS21 += f17_21 * RHS17; + const double f18 = 1.0 / m_A74; + const double f18_19 = -f18 * m_A84; + m_A85 += m_A75 * f18_19; + m_A86 += m_A76 * f18_19; + m_A87 += m_A77 * f18_19; + RHS19 += f18_19 * RHS18; + const double f18_20 = -f18 * m_A91; + m_A92 += m_A75 * f18_20; + m_A93 += m_A76 * f18_20; + m_A94 += m_A77 * f18_20; + RHS20 += f18_20 * RHS18; + const double f18_21 = -f18 * m_A100; + m_A101 += m_A75 * f18_21; + m_A102 += m_A76 * f18_21; + m_A103 += m_A77 * f18_21; + RHS21 += f18_21 * RHS18; + const double f19 = 1.0 / m_A85; + const double f19_20 = -f19 * m_A92; + m_A93 += m_A86 * f19_20; + m_A94 += m_A87 * f19_20; + RHS20 += f19_20 * RHS19; + const double f19_21 = -f19 * m_A101; + m_A102 += m_A86 * f19_21; + m_A103 += m_A87 * f19_21; + RHS21 += f19_21 * RHS19; + const double f20 = 1.0 / m_A93; + const double f20_21 = -f20 * m_A102; + m_A103 += m_A94 * f20_21; + RHS21 += f20_21 * RHS20; + V[21] = RHS21 / m_A103; double tmp20 = 0.0; - tmp20 += m_A44 * V[25]; - V[20] = (RHS20 - tmp20) / m_A43; + tmp20 += m_A94 * V[21]; + V[20] = (RHS20 - tmp20) / m_A93; double tmp19 = 0.0; - tmp19 += m_A41 * V[30]; - V[19] = (RHS19 - tmp19) / m_A40; + tmp19 += m_A86 * V[20]; + tmp19 += m_A87 * V[21]; + V[19] = (RHS19 - tmp19) / m_A85; double tmp18 = 0.0; - tmp18 += m_A39 * V[30]; - V[18] = (RHS18 - tmp18) / m_A38; + tmp18 += m_A75 * V[19]; + tmp18 += m_A76 * V[20]; + tmp18 += m_A77 * V[21]; + V[18] = (RHS18 - tmp18) / m_A74; double tmp17 = 0.0; - tmp17 += m_A37 * V[29]; - V[17] = (RHS17 - tmp17) / m_A36; + tmp17 += m_A64 * V[18]; + tmp17 += m_A65 * V[19]; + tmp17 += m_A66 * V[20]; + tmp17 += m_A67 * V[21]; + V[17] = (RHS17 - tmp17) / m_A63; double tmp16 = 0.0; - tmp16 += m_A34 * V[27]; - tmp16 += m_A35 * V[36]; - V[16] = (RHS16 - tmp16) / m_A33; + tmp16 += m_A58 * V[19]; + V[16] = (RHS16 - tmp16) / m_A57; double tmp15 = 0.0; - tmp15 += m_A32 * V[31]; - V[15] = (RHS15 - tmp15) / m_A31; + tmp15 += m_A51 * V[17]; + tmp15 += m_A52 * V[18]; + tmp15 += m_A53 * V[19]; + tmp15 += m_A54 * V[21]; + V[15] = (RHS15 - tmp15) / m_A50; double tmp14 = 0.0; - tmp14 += m_A30 * V[33]; - V[14] = (RHS14 - tmp14) / m_A29; + tmp14 += m_A46 * V[21]; + V[14] = (RHS14 - tmp14) / m_A45; double tmp13 = 0.0; - tmp13 += m_A28 * V[26]; - V[13] = (RHS13 - tmp13) / m_A27; + tmp13 += m_A43 * V[18]; + V[13] = (RHS13 - tmp13) / m_A42; double tmp12 = 0.0; - tmp12 += m_A26 * V[35]; - V[12] = (RHS12 - tmp12) / m_A25; + tmp12 += m_A37 * V[15]; + tmp12 += m_A38 * V[17]; + V[12] = (RHS12 - tmp12) / m_A36; double tmp11 = 0.0; - tmp11 += m_A24 * V[12]; - V[11] = (RHS11 - tmp11) / m_A23; + tmp11 += m_A33 * V[20]; + V[11] = (RHS11 - tmp11) / m_A32; double tmp10 = 0.0; - tmp10 += m_A22 * V[33]; - V[10] = (RHS10 - tmp10) / m_A21; + tmp10 += m_A31 * V[20]; + V[10] = (RHS10 - tmp10) / m_A30; double tmp9 = 0.0; - tmp9 += m_A20 * V[28]; - V[9] = (RHS9 - tmp9) / m_A19; + tmp9 += m_A29 * V[16]; + V[9] = (RHS9 - tmp9) / m_A28; double tmp8 = 0.0; - tmp8 += m_A18 * V[23]; - V[8] = (RHS8 - tmp8) / m_A17; + tmp8 += m_A26 * V[16]; + tmp8 += m_A27 * V[19]; + V[8] = (RHS8 - tmp8) / m_A25; double tmp7 = 0.0; - tmp7 += m_A16 * V[23]; - V[7] = (RHS7 - tmp7) / m_A15; + tmp7 += m_A21 * V[17]; + tmp7 += m_A22 * V[18]; + tmp7 += m_A23 * V[19]; + tmp7 += m_A24 * V[21]; + V[7] = (RHS7 - tmp7) / m_A20; double tmp6 = 0.0; - tmp6 += m_A13 * V[21]; - tmp6 += m_A14 * V[22]; - V[6] = (RHS6 - tmp6) / m_A12; + tmp6 += m_A16 * V[15]; + tmp6 += m_A17 * V[18]; + tmp6 += m_A18 * V[19]; + tmp6 += m_A19 * V[21]; + V[6] = (RHS6 - tmp6) / m_A15; double tmp5 = 0.0; - tmp5 += m_A11 * V[21]; - V[5] = (RHS5 - tmp5) / m_A10; + tmp5 += m_A14 * V[14]; + V[5] = (RHS5 - tmp5) / m_A13; double tmp4 = 0.0; - tmp4 += m_A9 * V[25]; - V[4] = (RHS4 - tmp4) / m_A8; + tmp4 += m_A11 * V[13]; + tmp4 += m_A12 * V[18]; + V[4] = (RHS4 - tmp4) / m_A10; double tmp3 = 0.0; - tmp3 += m_A7 * V[34]; - V[3] = (RHS3 - tmp3) / m_A6; + tmp3 += m_A9 * V[13]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A5 * V[24]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A7 * V[13]; + V[2] = (RHS2 - tmp2) / m_A6; double tmp1 = 0.0; - tmp1 += m_A3 * V[32]; + tmp1 += m_A3 * V[12]; + tmp1 += m_A4 * V[15]; + tmp1 += m_A5 * V[17]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[32]; + tmp0 += m_A1 * V[12]; V[0] = (RHS0 - tmp0) / m_A0; } -// 1942 -static void nl_gcr_a1b753ac9c408940_90_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// rebound +static void nl_gcr_cb1d3c28ba315ca6_28_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[8] + gt[9] + gt[10]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A4 = gt[16] + gt[17] + gt[18]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] - go[17] * *cnV[17] - go[18] * *cnV[18]; - m_A6 = gt[24] + gt[25] + gt[26]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] - go[25] * *cnV[25] - go[26] * *cnV[26]; - m_A8 = gt[32] + gt[33] + gt[34]; - m_A9 = m_A9 + go[32]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] - go[33] * *cnV[33] - go[34] * *cnV[34]; - m_A10 = gt[40] + gt[41] + gt[42]; - m_A11 = m_A11 + go[40]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] - go[41] * *cnV[41] - go[42] * *cnV[42]; - m_A12 = gt[48] + gt[49] + gt[50] + gt[51] + gt[52] + gt[53] + gt[54]; - m_A19 = m_A19 + go[48]; - m_A13 = m_A13 + go[49]; - m_A15 = m_A15 + go[50]; - m_A17 = m_A17 + go[51]; - m_A18 = m_A18 + go[52]; - m_A16 = m_A16 + go[53]; - m_A14 = m_A14 + go[54]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] + Idr[51] + Idr[52] + Idr[53] + Idr[54]; - m_A20 = gt[56] + gt[57]; - m_A22 = m_A22 + go[56]; - m_A21 = m_A21 + go[57]; - double RHS7 = Idr[56] + Idr[57]; - m_A25 = gt[64] + gt[65]; - m_A24 = m_A24 + go[64]; - m_A23 = m_A23 + go[65]; - double RHS8 = Idr[64] + Idr[65]; - m_A35 = gt[72] + gt[73]; - m_A33 = m_A33 + go[72]; - m_A32 = m_A32 + go[73]; - double RHS9 = Idr[72] + Idr[73]; - m_A45 = gt[80] + gt[81]; - m_A42 = m_A42 + go[80]; - m_A41 = m_A41 + go[81]; - double RHS10 = Idr[80] + Idr[81]; - m_A55 = gt[88] + gt[89]; - m_A51 = m_A51 + go[88]; - m_A50 = m_A50 + go[89]; - double RHS11 = Idr[88] + Idr[89]; - m_A65 = gt[96] + gt[97]; - m_A60 = m_A60 + go[96]; - m_A59 = m_A59 + go[97]; - double RHS12 = Idr[96] + Idr[97]; - m_A75 = gt[104] + gt[105]; - m_A69 = m_A69 + go[104]; - m_A68 = m_A68 + go[105]; - double RHS13 = Idr[104] + Idr[105]; - m_A85 = gt[112] + gt[113] + gt[114]; - m_A78 = m_A78 + go[112]; - m_A77 = m_A77 + go[113]; - double RHS14 = Idr[112] + Idr[113] + Idr[114] - go[114] * *cnV[114]; - m_A89 = gt[120] + gt[121]; - m_A87 = m_A87 + go[120]; - double RHS15 = Idr[120] + Idr[121] - go[121] * *cnV[121]; -const double f0 = 1.0 / m_A0; - const double f0_9 = -f0 * m_A32; - m_A35 += m_A1 * f0_9; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A4 += go[3]; + m_A4 += go[4]; + m_A3 += go[5]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[6] * *cnV[6]; + m_A5 += gt[7]; + m_A5 += gt[8]; + m_A5 += gt[9]; + m_A6 += go[7]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + m_A7 += gt[10]; + m_A7 += gt[11]; + m_A7 += gt[12]; + m_A7 += gt[13]; + m_A7 += gt[14]; + m_A7 += gt[15]; + m_A7 += gt[16]; + m_A8 += go[10]; + m_A8 += go[11]; + double RHS3 = Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + m_A11 += gt[17]; + m_A11 += gt[18]; + m_A11 += gt[19]; + m_A13 += go[17]; + m_A10 += go[18]; + m_A9 += go[19]; + double RHS4 = Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + m_A16 += gt[20]; + m_A16 += gt[21]; + m_A16 += gt[22]; + m_A16 += gt[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A18 += go[20]; + m_A14 += go[21]; + m_A14 += go[22]; + double RHS5 = Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 += Idr[25]; + RHS5 += Idr[26]; + RHS5 -= go[23] * *cnV[23]; + RHS5 -= go[24] * *cnV[24]; + RHS5 -= go[25] * *cnV[25]; + RHS5 -= go[26] * *cnV[26]; + m_A22 += gt[27]; + m_A22 += gt[28]; + m_A22 += gt[29]; + m_A22 += gt[30]; + m_A22 += gt[31]; + m_A22 += gt[32]; + m_A22 += gt[33]; + m_A22 += gt[34]; + m_A22 += gt[35]; + m_A22 += gt[36]; + m_A23 += go[27]; + m_A23 += go[28]; + m_A20 += go[29]; + m_A19 += go[30]; + m_A19 += go[31]; + double RHS6 = Idr[27]; + RHS6 += Idr[28]; + 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[32] * *cnV[32]; + RHS6 -= go[33] * *cnV[33]; + RHS6 -= go[34] * *cnV[34]; + RHS6 -= go[35] * *cnV[35]; + RHS6 -= go[36] * *cnV[36]; + m_A27 += gt[37]; + m_A27 += gt[38]; + m_A27 += gt[39]; + m_A27 += gt[40]; + m_A27 += gt[41]; + m_A26 += go[37]; + m_A26 += go[38]; + m_A25 += go[39]; + m_A24 += go[40]; + double RHS7 = Idr[37]; + RHS7 += Idr[38]; + RHS7 += Idr[39]; + RHS7 += Idr[40]; + RHS7 += Idr[41]; + RHS7 -= go[41] * *cnV[41]; + const double f0 = 1.0 / m_A0; + const double f0_4 = -f0 * m_A9; + m_A11 += m_A1 * f0_4; + RHS4 += f0_4 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_4 = -f1 * m_A10; + m_A11 += m_A3 * f1_4; + m_A12 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f1_5 = -f1 * m_A14; + m_A15 += m_A3 * f1_5; + m_A16 += m_A4 * f1_5; + RHS5 += f1_5 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_7 = -f2 * m_A24; + m_A27 += m_A6 * f2_7; + RHS7 += f2_7 * RHS2; + const double f3 = 1.0 / m_A7; + const double f3_6 = -f3 * m_A19; + m_A22 += m_A8 * f3_6; + RHS6 += f3_6 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_5 = -f4 * m_A15; + m_A16 += m_A12 * f4_5; + m_A17 += m_A13 * f4_5; + RHS5 += f4_5 * RHS4; + const double f4_6 = -f4 * m_A20; + m_A21 += m_A12 * f4_6; + m_A22 += m_A13 * f4_6; + RHS6 += f4_6 * RHS4; + const double f5 = 1.0 / m_A16; + const double f5_6 = -f5 * m_A21; + m_A22 += m_A17 * f5_6; + m_A23 += m_A18 * f5_6; + RHS6 += f5_6 * RHS5; + const double f5_7 = -f5 * m_A25; + m_A26 += m_A17 * f5_7; + m_A27 += m_A18 * f5_7; + RHS7 += f5_7 * RHS5; + const double f6 = 1.0 / m_A22; + const double f6_7 = -f6 * m_A26; + m_A27 += m_A23 * f6_7; + RHS7 += f6_7 * RHS6; + V[7] = RHS7 / m_A27; + double tmp6 = 0.0; + tmp6 += m_A23 * V[7]; + V[6] = (RHS6 - tmp6) / m_A22; + double tmp5 = 0.0; + tmp5 += m_A17 * V[6]; + tmp5 += m_A18 * V[7]; + V[5] = (RHS5 - tmp5) / m_A16; + double tmp4 = 0.0; + tmp4 += m_A12 * V[5]; + tmp4 += m_A13 * V[6]; + V[4] = (RHS4 - tmp4) / m_A11; + double tmp3 = 0.0; + tmp3 += m_A8 * V[6]; + V[3] = (RHS3 - tmp3) / m_A7; + double tmp2 = 0.0; + tmp2 += m_A6 * V[7]; + V[2] = (RHS2 - tmp2) / m_A5; + double tmp1 = 0.0; + tmp1 += m_A3 * V[4]; + tmp1 += m_A4 * V[5]; + V[1] = (RHS1 - tmp1) / m_A2; + double tmp0 = 0.0; + tmp0 += m_A1 * V[4]; + V[0] = (RHS0 - tmp0) / m_A0; +} + +// mario +static void nl_gcr_cc367a3c6e2f7ec9_62_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); + 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_A2 += gt[4]; + m_A3 += go[2]; + double RHS1 = Idr[2]; + RHS1 += Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[3] * *cnV[3]; + RHS1 -= go[4] * *cnV[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A5 += go[5]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A7 += go[7]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 -= go[8] * *cnV[8]; + RHS3 -= go[9] * *cnV[9]; + RHS3 -= go[10] * *cnV[10]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + RHS3 -= go[13] * *cnV[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_A9 += go[14]; + double RHS4 = Idr[14]; + RHS4 += Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 -= go[15] * *cnV[15]; + RHS4 -= go[16] * *cnV[16]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + m_A10 += gt[21]; + m_A10 += gt[22]; + m_A12 += go[21]; + m_A11 += go[22]; + double RHS5 = Idr[21]; + RHS5 += Idr[22]; + m_A13 += gt[23]; + m_A13 += gt[24]; + m_A13 += gt[25]; + m_A14 += go[23]; + double RHS6 = Idr[23]; + RHS6 += Idr[24]; + RHS6 += Idr[25]; + RHS6 -= go[24] * *cnV[24]; + RHS6 -= go[25] * *cnV[25]; + m_A15 += gt[26]; + m_A15 += gt[27]; + m_A16 += go[26]; + double RHS7 = Idr[26]; + RHS7 += Idr[27]; + RHS7 -= go[27] * *cnV[27]; + m_A17 += gt[28]; + m_A17 += gt[29]; + m_A17 += gt[30]; + m_A17 += gt[31]; + m_A18 += go[28]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + RHS8 += Idr[30]; + RHS8 += Idr[31]; + RHS8 -= go[29] * *cnV[29]; + RHS8 -= go[30] * *cnV[30]; + RHS8 -= go[31] * *cnV[31]; + m_A20 += gt[32]; + m_A20 += gt[33]; + m_A19 += go[32]; + double RHS9 = Idr[32]; + RHS9 += Idr[33]; + RHS9 -= go[33] * *cnV[33]; + m_A22 += gt[34]; + m_A22 += gt[35]; + m_A22 += gt[36]; + m_A22 += gt[37]; + m_A21 += go[34]; + m_A23 += go[35]; + double RHS10 = Idr[34]; + RHS10 += Idr[35]; + RHS10 += Idr[36]; + RHS10 += Idr[37]; + RHS10 -= go[36] * *cnV[36]; + RHS10 -= go[37] * *cnV[37]; + m_A27 += gt[38]; + m_A27 += gt[39]; + m_A27 += gt[40]; + m_A27 += gt[41]; + m_A27 += gt[42]; + m_A24 += go[38]; + m_A25 += go[39]; + m_A28 += go[40]; + double RHS11 = Idr[38]; + RHS11 += Idr[39]; + RHS11 += Idr[40]; + RHS11 += Idr[41]; + RHS11 += Idr[42]; + RHS11 -= go[41] * *cnV[41]; + RHS11 -= go[42] * *cnV[42]; + m_A32 += gt[43]; + m_A32 += gt[44]; + m_A31 += go[43]; + m_A30 += go[44]; + double RHS12 = Idr[43]; + RHS12 += Idr[44]; + m_A34 += gt[45]; + m_A34 += gt[46]; + m_A34 += gt[47]; + m_A34 += gt[48]; + m_A34 += gt[49]; + m_A34 += gt[50]; + m_A33 += go[45]; + m_A37 += go[46]; + m_A36 += go[47]; + double RHS13 = Idr[45]; + RHS13 += Idr[46]; + RHS13 += Idr[47]; + RHS13 += Idr[48]; + RHS13 += Idr[49]; + RHS13 += Idr[50]; + RHS13 -= go[48] * *cnV[48]; + RHS13 -= go[49] * *cnV[49]; + RHS13 -= go[50] * *cnV[50]; + m_A39 += gt[51]; + m_A39 += gt[52]; + m_A39 += gt[53]; + m_A39 += gt[54]; + m_A40 += go[51]; + m_A38 += go[52]; + double RHS14 = Idr[51]; + RHS14 += Idr[52]; + RHS14 += Idr[53]; + RHS14 += Idr[54]; + RHS14 -= go[53] * *cnV[53]; + RHS14 -= go[54] * *cnV[54]; + m_A46 += gt[55]; + m_A46 += gt[56]; + m_A46 += gt[57]; + m_A46 += gt[58]; + m_A46 += gt[59]; + m_A44 += go[55]; + m_A45 += go[56]; + m_A43 += go[57]; + m_A42 += go[58]; + m_A41 += go[59]; + double RHS15 = Idr[55]; + RHS15 += Idr[56]; + RHS15 += Idr[57]; + RHS15 += Idr[58]; + RHS15 += Idr[59]; + m_A53 += gt[60]; + m_A53 += gt[61]; + m_A53 += gt[62]; + m_A53 += gt[63]; + m_A50 += go[60]; + m_A54 += go[61]; + m_A48 += go[62]; + double RHS16 = Idr[60]; + RHS16 += Idr[61]; + RHS16 += Idr[62]; + RHS16 += Idr[63]; + RHS16 -= go[63] * *cnV[63]; + m_A61 += gt[64]; + m_A61 += gt[65]; + m_A61 += gt[66]; + m_A61 += gt[67]; + m_A61 += gt[68]; + m_A57 += go[64]; + m_A58 += go[65]; + m_A60 += go[66]; + m_A55 += go[67]; + m_A56 += go[68]; + double RHS17 = Idr[64]; + RHS17 += Idr[65]; + RHS17 += Idr[66]; + RHS17 += Idr[67]; + RHS17 += Idr[68]; + const double f0 = 1.0 / m_A0; + const double f0_9 = -f0 * m_A19; + m_A20 += m_A1 * f0_9; RHS9 += f0_9 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_11 = -f1 * m_A50; - m_A55 += m_A3 * f1_11; - RHS11 += f1_11 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_13 = -f2 * m_A68; - m_A75 += m_A5 * f2_13; - RHS13 += f2_13 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_12 = -f3 * m_A59; - m_A65 += m_A7 * f3_12; - RHS12 += f3_12 * RHS3; -const double f4 = 1.0 / m_A8; - const double f4_10 = -f4 * m_A41; - m_A45 += m_A9 * f4_10; - RHS10 += f4_10 * RHS4; -const double f5 = 1.0 / m_A10; - const double f5_8 = -f5 * m_A23; - m_A25 += m_A11 * f5_8; - RHS8 += f5_8 * RHS5; -const double f6 = 1.0 / m_A12; - const double f6_8 = -f6 * m_A24; - m_A25 += m_A13 * f6_8; - m_A26 += m_A14 * f6_8; - m_A27 += m_A15 * f6_8; - m_A28 += m_A16 * f6_8; - m_A29 += m_A17 * f6_8; - m_A30 += m_A18 * f6_8; - m_A31 += m_A19 * f6_8; - RHS8 += f6_8 * RHS6; - const double f6_9 = -f6 * m_A33; - m_A34 += m_A13 * f6_9; - m_A35 += m_A14 * f6_9; - m_A36 += m_A15 * f6_9; - m_A37 += m_A16 * f6_9; - m_A38 += m_A17 * f6_9; - m_A39 += m_A18 * f6_9; - m_A40 += m_A19 * f6_9; - RHS9 += f6_9 * RHS6; - const double f6_10 = -f6 * m_A42; - m_A43 += m_A13 * f6_10; - m_A44 += m_A14 * f6_10; - m_A45 += m_A15 * f6_10; - m_A46 += m_A16 * f6_10; - m_A47 += m_A17 * f6_10; - m_A48 += m_A18 * f6_10; - m_A49 += m_A19 * f6_10; - RHS10 += f6_10 * RHS6; - const double f6_11 = -f6 * m_A51; - m_A52 += m_A13 * f6_11; - m_A53 += m_A14 * f6_11; - m_A54 += m_A15 * f6_11; - m_A55 += m_A16 * f6_11; - m_A56 += m_A17 * f6_11; - m_A57 += m_A18 * f6_11; - m_A58 += m_A19 * f6_11; - RHS11 += f6_11 * RHS6; - const double f6_12 = -f6 * m_A60; - m_A61 += m_A13 * f6_12; - m_A62 += m_A14 * f6_12; - m_A63 += m_A15 * f6_12; - m_A64 += m_A16 * f6_12; - m_A65 += m_A17 * f6_12; - m_A66 += m_A18 * f6_12; - m_A67 += m_A19 * f6_12; - RHS12 += f6_12 * RHS6; - const double f6_13 = -f6 * m_A69; - m_A70 += m_A13 * f6_13; - m_A71 += m_A14 * f6_13; - m_A72 += m_A15 * f6_13; - m_A73 += m_A16 * f6_13; - m_A74 += m_A17 * f6_13; - m_A75 += m_A18 * f6_13; - m_A76 += m_A19 * f6_13; - RHS13 += f6_13 * RHS6; - const double f6_14 = -f6 * m_A77; - m_A79 += m_A13 * f6_14; - m_A80 += m_A14 * f6_14; - m_A81 += m_A15 * f6_14; - m_A82 += m_A16 * f6_14; - m_A83 += m_A17 * f6_14; - m_A84 += m_A18 * f6_14; - m_A85 += m_A19 * f6_14; + const double f0_15 = -f0 * m_A41; + m_A44 += m_A1 * f0_15; + RHS15 += f0_15 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_10 = -f1 * m_A21; + m_A23 += m_A3 * f1_10; + RHS10 += f1_10 * RHS1; + const double f1_15 = -f1 * m_A42; + m_A46 += m_A3 * f1_15; + RHS15 += f1_15 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_15 = -f2 * m_A43; + m_A46 += m_A5 * f2_15; + RHS15 += f2_15 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_11 = -f3 * m_A24; + m_A26 += m_A7 * f3_11; + RHS11 += f3_11 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_13 = -f4 * m_A33; + m_A35 += m_A9 * f4_13; + RHS13 += f4_13 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_11 = -f5 * m_A25; + m_A27 += m_A11 * f5_11; + m_A29 += m_A12 * f5_11; + RHS11 += f5_11 * RHS5; + const double f5_16 = -f5 * m_A48; + m_A49 += m_A11 * f5_16; + m_A53 += m_A12 * f5_16; + RHS16 += f5_16 * RHS5; + const double f6 = 1.0 / m_A13; + const double f6_14 = -f6 * m_A38; + m_A40 += m_A14 * f6_14; RHS14 += f6_14 * RHS6; -const double f7 = 1.0 / m_A20; - const double f7_14 = -f7 * m_A78; - m_A85 += m_A21 * f7_14; - m_A86 += m_A22 * f7_14; - RHS14 += f7_14 * RHS7; - const double f7_15 = -f7 * m_A87; - m_A88 += m_A21 * f7_15; - m_A89 += m_A22 * f7_15; - RHS15 += f7_15 * RHS7; -const double f8 = 1.0 / m_A25; - const double f8_9 = -f8 * m_A34; - m_A35 += m_A26 * f8_9; - m_A36 += m_A27 * f8_9; - m_A37 += m_A28 * f8_9; - m_A38 += m_A29 * f8_9; - m_A39 += m_A30 * f8_9; - m_A40 += m_A31 * f8_9; - RHS9 += f8_9 * RHS8; - const double f8_10 = -f8 * m_A43; - m_A44 += m_A26 * f8_10; - m_A45 += m_A27 * f8_10; - m_A46 += m_A28 * f8_10; - m_A47 += m_A29 * f8_10; - m_A48 += m_A30 * f8_10; - m_A49 += m_A31 * f8_10; - RHS10 += f8_10 * RHS8; - const double f8_11 = -f8 * m_A52; - m_A53 += m_A26 * f8_11; - m_A54 += m_A27 * f8_11; - m_A55 += m_A28 * f8_11; - m_A56 += m_A29 * f8_11; - m_A57 += m_A30 * f8_11; - m_A58 += m_A31 * f8_11; - RHS11 += f8_11 * RHS8; - const double f8_12 = -f8 * m_A61; - m_A62 += m_A26 * f8_12; - m_A63 += m_A27 * f8_12; - m_A64 += m_A28 * f8_12; - m_A65 += m_A29 * f8_12; - m_A66 += m_A30 * f8_12; - m_A67 += m_A31 * f8_12; + const double f6_17 = -f6 * m_A55; + m_A61 += m_A14 * f6_17; + RHS17 += f6_17 * RHS6; + const double f7 = 1.0 / m_A15; + const double f7_12 = -f7 * m_A30; + m_A32 += m_A16 * f7_12; + RHS12 += f7_12 * RHS7; + const double f7_17 = -f7 * m_A56; + m_A57 += m_A16 * f7_17; + RHS17 += f7_17 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_12 = -f8 * m_A31; + m_A32 += m_A18 * f8_12; RHS12 += f8_12 * RHS8; - const double f8_13 = -f8 * m_A70; - m_A71 += m_A26 * f8_13; - m_A72 += m_A27 * f8_13; - m_A73 += m_A28 * f8_13; - m_A74 += m_A29 * f8_13; - m_A75 += m_A30 * f8_13; - m_A76 += m_A31 * f8_13; - RHS13 += f8_13 * RHS8; - const double f8_14 = -f8 * m_A79; - m_A80 += m_A26 * f8_14; - m_A81 += m_A27 * f8_14; - m_A82 += m_A28 * f8_14; - m_A83 += m_A29 * f8_14; - m_A84 += m_A30 * f8_14; - m_A85 += m_A31 * f8_14; - RHS14 += f8_14 * RHS8; -const double f9 = 1.0 / m_A35; - const double f9_10 = -f9 * m_A44; - m_A45 += m_A36 * f9_10; - m_A46 += m_A37 * f9_10; - m_A47 += m_A38 * f9_10; - m_A48 += m_A39 * f9_10; - m_A49 += m_A40 * f9_10; - RHS10 += f9_10 * RHS9; - const double f9_11 = -f9 * m_A53; - m_A54 += m_A36 * f9_11; - m_A55 += m_A37 * f9_11; - m_A56 += m_A38 * f9_11; - m_A57 += m_A39 * f9_11; - m_A58 += m_A40 * f9_11; - RHS11 += f9_11 * RHS9; - const double f9_12 = -f9 * m_A62; - m_A63 += m_A36 * f9_12; - m_A64 += m_A37 * f9_12; - m_A65 += m_A38 * f9_12; - m_A66 += m_A39 * f9_12; - m_A67 += m_A40 * f9_12; - RHS12 += f9_12 * RHS9; - const double f9_13 = -f9 * m_A71; - m_A72 += m_A36 * f9_13; - m_A73 += m_A37 * f9_13; - m_A74 += m_A38 * f9_13; - m_A75 += m_A39 * f9_13; - m_A76 += m_A40 * f9_13; - RHS13 += f9_13 * RHS9; - const double f9_14 = -f9 * m_A80; - m_A81 += m_A36 * f9_14; - m_A82 += m_A37 * f9_14; - m_A83 += m_A38 * f9_14; - m_A84 += m_A39 * f9_14; - m_A85 += m_A40 * f9_14; - RHS14 += f9_14 * RHS9; -const double f10 = 1.0 / m_A45; - const double f10_11 = -f10 * m_A54; - m_A55 += m_A46 * f10_11; - m_A56 += m_A47 * f10_11; - m_A57 += m_A48 * f10_11; - m_A58 += m_A49 * f10_11; + const double f9 = 1.0 / m_A20; + const double f9_15 = -f9 * m_A44; + RHS15 += f9_15 * RHS9; + const double f10 = 1.0 / m_A22; + const double f10_11 = -f10 * m_A26; + m_A28 += m_A23 * f10_11; RHS11 += f10_11 * RHS10; - const double f10_12 = -f10 * m_A63; - m_A64 += m_A46 * f10_12; - m_A65 += m_A47 * f10_12; - m_A66 += m_A48 * f10_12; - m_A67 += m_A49 * f10_12; - RHS12 += f10_12 * RHS10; - const double f10_13 = -f10 * m_A72; - m_A73 += m_A46 * f10_13; - m_A74 += m_A47 * f10_13; - m_A75 += m_A48 * f10_13; - m_A76 += m_A49 * f10_13; - RHS13 += f10_13 * RHS10; - const double f10_14 = -f10 * m_A81; - m_A82 += m_A46 * f10_14; - m_A83 += m_A47 * f10_14; - m_A84 += m_A48 * f10_14; - m_A85 += m_A49 * f10_14; - RHS14 += f10_14 * RHS10; -const double f11 = 1.0 / m_A55; - const double f11_12 = -f11 * m_A64; - m_A65 += m_A56 * f11_12; - m_A66 += m_A57 * f11_12; - m_A67 += m_A58 * f11_12; - RHS12 += f11_12 * RHS11; - const double f11_13 = -f11 * m_A73; - m_A74 += m_A56 * f11_13; - m_A75 += m_A57 * f11_13; - m_A76 += m_A58 * f11_13; - RHS13 += f11_13 * RHS11; - const double f11_14 = -f11 * m_A82; - m_A83 += m_A56 * f11_14; - m_A84 += m_A57 * f11_14; - m_A85 += m_A58 * f11_14; - RHS14 += f11_14 * RHS11; -const double f12 = 1.0 / m_A65; - const double f12_13 = -f12 * m_A74; - m_A75 += m_A66 * f12_13; - m_A76 += m_A67 * f12_13; - RHS13 += f12_13 * RHS12; - const double f12_14 = -f12 * m_A83; - m_A84 += m_A66 * f12_14; - m_A85 += m_A67 * f12_14; - RHS14 += f12_14 * RHS12; -const double f13 = 1.0 / m_A75; - const double f13_14 = -f13 * m_A84; - m_A85 += m_A76 * f13_14; - RHS14 += f13_14 * RHS13; -const double f14 = 1.0 / m_A85; - const double f14_15 = -f14 * m_A88; - m_A89 += m_A86 * f14_15; - RHS15 += f14_15 * RHS14; - V[15] = RHS15 / m_A89; + const double f11 = 1.0 / m_A27; + const double f11_15 = -f11 * m_A45; + m_A46 += m_A28 * f11_15; + m_A47 += m_A29 * f11_15; + RHS15 += f11_15 * RHS11; + const double f11_16 = -f11 * m_A49; + m_A52 += m_A28 * f11_16; + m_A53 += m_A29 * f11_16; + RHS16 += f11_16 * RHS11; + const double f12 = 1.0 / m_A32; + const double f12_17 = -f12 * m_A57; + RHS17 += f12_17 * RHS12; + const double f13 = 1.0 / m_A34; + const double f13_16 = -f13 * m_A50; + m_A51 += m_A35 * f13_16; + m_A53 += m_A36 * f13_16; + m_A54 += m_A37 * f13_16; + RHS16 += f13_16 * RHS13; + const double f13_17 = -f13 * m_A58; + m_A59 += m_A35 * f13_17; + m_A60 += m_A36 * f13_17; + m_A61 += m_A37 * f13_17; + RHS17 += f13_17 * RHS13; + const double f14 = 1.0 / m_A39; + const double f14_16 = -f14 * m_A51; + m_A54 += m_A40 * f14_16; + RHS16 += f14_16 * RHS14; + const double f14_17 = -f14 * m_A59; + m_A61 += m_A40 * f14_17; + RHS17 += f14_17 * RHS14; + const double f15 = 1.0 / m_A46; + const double f15_16 = -f15 * m_A52; + m_A53 += m_A47 * f15_16; + RHS16 += f15_16 * RHS15; + const double f16 = 1.0 / m_A53; + const double f16_17 = -f16 * m_A60; + m_A61 += m_A54 * f16_17; + RHS17 += f16_17 * RHS16; + V[17] = RHS17 / m_A61; + double tmp16 = 0.0; + tmp16 += m_A54 * V[17]; + V[16] = (RHS16 - tmp16) / m_A53; + double tmp15 = 0.0; + tmp15 += m_A47 * V[16]; + V[15] = (RHS15 - tmp15) / m_A46; double tmp14 = 0.0; - tmp14 += m_A86 * V[15]; - V[14] = (RHS14 - tmp14) / m_A85; + tmp14 += m_A40 * V[17]; + V[14] = (RHS14 - tmp14) / m_A39; double tmp13 = 0.0; - tmp13 += m_A76 * V[14]; - V[13] = (RHS13 - tmp13) / m_A75; + tmp13 += m_A35 * V[14]; + tmp13 += m_A36 * V[16]; + tmp13 += m_A37 * V[17]; + V[13] = (RHS13 - tmp13) / m_A34; double tmp12 = 0.0; - tmp12 += m_A66 * V[13]; - tmp12 += m_A67 * V[14]; - V[12] = (RHS12 - tmp12) / m_A65; + V[12] = (RHS12 - tmp12) / m_A32; double tmp11 = 0.0; - tmp11 += m_A56 * V[12]; - tmp11 += m_A57 * V[13]; - tmp11 += m_A58 * V[14]; - V[11] = (RHS11 - tmp11) / m_A55; + tmp11 += m_A28 * V[15]; + tmp11 += m_A29 * V[16]; + V[11] = (RHS11 - tmp11) / m_A27; double tmp10 = 0.0; - tmp10 += m_A46 * V[11]; - tmp10 += m_A47 * V[12]; - tmp10 += m_A48 * V[13]; - tmp10 += m_A49 * V[14]; - V[10] = (RHS10 - tmp10) / m_A45; + tmp10 += m_A23 * V[15]; + V[10] = (RHS10 - tmp10) / m_A22; double tmp9 = 0.0; - tmp9 += m_A36 * V[10]; - tmp9 += m_A37 * V[11]; - tmp9 += m_A38 * V[12]; - tmp9 += m_A39 * V[13]; - tmp9 += m_A40 * V[14]; - V[9] = (RHS9 - tmp9) / m_A35; + V[9] = (RHS9 - tmp9) / m_A20; double tmp8 = 0.0; - tmp8 += m_A26 * V[9]; - tmp8 += m_A27 * V[10]; - tmp8 += m_A28 * V[11]; - tmp8 += m_A29 * V[12]; - tmp8 += m_A30 * V[13]; - tmp8 += m_A31 * V[14]; - V[8] = (RHS8 - tmp8) / m_A25; + tmp8 += m_A18 * V[12]; + V[8] = (RHS8 - tmp8) / m_A17; double tmp7 = 0.0; - tmp7 += m_A21 * V[14]; - tmp7 += m_A22 * V[15]; - V[7] = (RHS7 - tmp7) / m_A20; + tmp7 += m_A16 * V[12]; + V[7] = (RHS7 - tmp7) / m_A15; double tmp6 = 0.0; - tmp6 += m_A13 * V[8]; - tmp6 += m_A14 * V[9]; - tmp6 += m_A15 * V[10]; - tmp6 += m_A16 * V[11]; - tmp6 += m_A17 * V[12]; - tmp6 += m_A18 * V[13]; - tmp6 += m_A19 * V[14]; - V[6] = (RHS6 - tmp6) / m_A12; + tmp6 += m_A14 * V[17]; + V[6] = (RHS6 - tmp6) / m_A13; double tmp5 = 0.0; - tmp5 += m_A11 * V[8]; + tmp5 += m_A11 * V[11]; + tmp5 += m_A12 * V[16]; V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[10]; + tmp4 += m_A9 * V[14]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[12]; + tmp3 += m_A7 * V[10]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[13]; + tmp2 += m_A5 * V[15]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[11]; + tmp1 += m_A3 * V[15]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; tmp0 += m_A1 * V[9]; V[0] = (RHS0 - tmp0) / m_A0; } -// zac1b11142 -static void nl_gcr_a26cb0ca00cdeba6_12_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// pongf +static void nl_gcr_cd4de579d34fc1d9_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[4] + gt[5]; - m_A4 = m_A4 + go[4]; - m_A3 = m_A3 + go[5]; - double RHS1 = Idr[4] + Idr[5]; - m_A7 = gt[8] + gt[9]; - m_A6 = m_A6 + go[8]; - m_A5 = m_A5 + go[9]; - double RHS2 = Idr[8] + Idr[9]; - m_A11 = gt[12] + gt[13]; - m_A9 = m_A9 + go[12]; - double RHS3 = Idr[12] + Idr[13] - go[13] * *cnV[13]; -const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A5; - m_A7 += m_A1 * f0_2; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A6 += gt[7]; + m_A5 += go[5]; + m_A4 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + const double f0 = 1.0 / m_A0; + const double f0_2 = -f0 * m_A4; + m_A6 += m_A1 * f0_2; RHS2 += f0_2 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A6; - m_A7 += m_A3 * f1_2; - m_A8 += m_A4 * f1_2; + const double f1 = 1.0 / m_A2; + const double f1_2 = -f1 * m_A5; + m_A6 += m_A3 * f1_2; RHS2 += f1_2 * RHS1; - const double f1_3 = -f1 * m_A9; - m_A10 += m_A3 * f1_3; - m_A11 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; -const double f2 = 1.0 / m_A7; - const double f2_3 = -f2 * m_A10; - m_A11 += m_A8 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A11; - double tmp2 = 0.0; - tmp2 += m_A8 * V[3]; - V[2] = (RHS2 - tmp2) / m_A7; + V[2] = RHS2 / m_A6; double tmp1 = 0.0; tmp1 += m_A3 * V[2]; - tmp1 += m_A4 * V[3]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; tmp0 += m_A1 * V[2]; V[0] = (RHS0 - tmp0) / m_A0; } -// kidniki -static void nl_gcr_a2b9e1d13f95c2d3_34_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// dpatrol +static void nl_gcr_cffc52225ebcec8f_20_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - m_A2 = m_A2 + go[1]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[2] * *cnV[2]; - m_A3 = gt[8] + gt[9] + gt[10] + gt[11] + gt[12] + gt[13] + gt[14]; - m_A5 = m_A5 + go[8]; - m_A4 = m_A4 + go[9]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] + Idr[11] + Idr[12] + Idr[13] + Idr[14] - go[10] * *cnV[10] - go[11] * *cnV[11] - go[12] * *cnV[12] - go[13] * *cnV[13] - go[14] * *cnV[14]; - m_A7 = gt[16] + gt[17] + gt[18]; - m_A6 = m_A6 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] - go[17] * *cnV[17] - go[18] * *cnV[18]; - m_A9 = gt[24] + gt[25] + gt[26]; - m_A11 = m_A11 + go[24]; - m_A10 = m_A10 + go[25]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] - go[26] * *cnV[26]; - m_A12 = gt[32] + gt[33] + gt[34]; - m_A14 = m_A14 + go[32]; - m_A13 = m_A13 + go[33]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] - go[34] * *cnV[34]; - m_A17 = gt[40] + gt[41] + gt[42] + gt[43] + gt[44] + gt[45] + gt[46]; - m_A15 = m_A15 + go[40]; - m_A18 = m_A18 + go[41]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] + Idr[43] + Idr[44] + Idr[45] + Idr[46] - go[42] * *cnV[42] - go[43] * *cnV[43] - go[44] * *cnV[44] - go[45] * *cnV[45] - go[46] * *cnV[46]; - m_A21 = gt[48] + gt[49] + gt[50] + gt[51] + gt[52] + gt[53]; - m_A19 = m_A19 + go[48]; - m_A22 = m_A22 + go[49]; - m_A20 = m_A20 + go[50]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] + Idr[51] + Idr[52] + Idr[53] - go[51] * *cnV[51] - go[52] * *cnV[52] - go[53] * *cnV[53]; - m_A27 = gt[56] + gt[57] + gt[58] + gt[59] + gt[60]; - m_A26 = m_A26 + go[56]; - m_A25 = m_A25 + go[57]; - m_A23 = m_A23 + go[58]; - double RHS7 = Idr[56] + Idr[57] + Idr[58] + Idr[59] + Idr[60] - go[59] * *cnV[59] - go[60] * *cnV[60]; - m_A33 = gt[64] + gt[65] + gt[66]; - m_A30 = m_A30 + go[64]; - m_A31 = m_A31 + go[65]; - m_A29 = m_A29 + go[66]; - double RHS8 = Idr[64] + Idr[65] + Idr[66]; -const double f0 = 1.0 / m_A0; - 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 f0_5 = -f0 * m_A15; - m_A16 += m_A1 * f0_5; - m_A18 += m_A2 * f0_5; - RHS5 += f0_5 * RHS0; - const double f0_7 = -f0 * m_A23; - m_A24 += m_A1 * f0_7; - m_A27 += m_A2 * f0_7; - RHS7 += f0_7 * RHS0; -const double f1 = 1.0 / m_A3; - const double f1_6 = -f1 * m_A19; - m_A20 += m_A4 * f1_6; - m_A21 += m_A5 * f1_6; - RHS6 += f1_6 * RHS1; -const double f2 = 1.0 / m_A7; + 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); + 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_A3 += go[4]; + double RHS1 = Idr[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A6 += go[5]; + m_A5 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + m_A8 += gt[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_A10 += go[10]; + m_A9 += go[11]; + m_A7 += go[12]; + double RHS3 = Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + RHS3 += Idr[16]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + RHS3 -= go[15] * *cnV[15]; + RHS3 -= go[16] * *cnV[16]; + m_A14 += gt[17]; + m_A14 += gt[18]; + m_A14 += gt[19]; + m_A14 += gt[20]; + m_A11 += go[17]; + m_A12 += go[18]; + m_A13 += go[19]; + double RHS4 = Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 -= go[20] * *cnV[20]; + m_A19 += gt[21]; + m_A19 += gt[22]; + m_A19 += gt[23]; + m_A16 += go[21]; + m_A17 += go[22]; + double RHS5 = Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[23] * *cnV[23]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A7; + m_A8 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_4 = -f1 * m_A11; + m_A14 += m_A3 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_4 = -f2 * m_A12; + m_A14 += m_A5 * f2_4; + m_A15 += m_A6 * f2_4; + RHS4 += f2_4 * RHS2; const double f2_5 = -f2 * m_A16; - m_A18 += m_A8 * f2_5; + m_A18 += m_A5 * f2_5; + m_A19 += m_A6 * f2_5; RHS5 += f2_5 * RHS2; - const double f2_7 = -f2 * m_A24; - m_A27 += m_A8 * f2_7; - RHS7 += f2_7 * RHS2; -const double f3 = 1.0 / m_A9; - const double f3_6 = -f3 * m_A20; - m_A21 += m_A10 * f3_6; - m_A22 += m_A11 * f3_6; - RHS6 += f3_6 * RHS3; - const double f3_8 = -f3 * m_A29; - m_A31 += m_A10 * f3_8; - m_A33 += m_A11 * f3_8; - RHS8 += f3_8 * RHS3; -const double f4 = 1.0 / m_A12; - const double f4_7 = -f4 * m_A25; - m_A27 += m_A13 * f4_7; - m_A28 += m_A14 * f4_7; - RHS7 += f4_7 * RHS4; - const double f4_8 = -f4 * m_A30; - m_A32 += m_A13 * f4_8; - m_A33 += m_A14 * f4_8; - RHS8 += f4_8 * RHS4; -const double f5 = 1.0 / m_A17; - const double f5_7 = -f5 * m_A26; - m_A27 += m_A18 * f5_7; - RHS7 += f5_7 * RHS5; -const double f6 = 1.0 / m_A21; - const double f6_8 = -f6 * m_A31; - m_A33 += m_A22 * f6_8; - RHS8 += f6_8 * RHS6; -const double f7 = 1.0 / m_A27; - const double f7_8 = -f7 * m_A32; - m_A33 += m_A28 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A33; - double tmp7 = 0.0; - tmp7 += m_A28 * V[8]; - V[7] = (RHS7 - tmp7) / m_A27; - double tmp6 = 0.0; - tmp6 += m_A22 * V[8]; - V[6] = (RHS6 - tmp6) / m_A21; - double tmp5 = 0.0; - tmp5 += m_A18 * V[7]; - V[5] = (RHS5 - tmp5) / m_A17; - double tmp4 = 0.0; - tmp4 += m_A13 * V[7]; - tmp4 += m_A14 * V[8]; - V[4] = (RHS4 - tmp4) / m_A12; - double tmp3 = 0.0; - tmp3 += m_A10 * V[6]; - tmp3 += m_A11 * V[8]; - V[3] = (RHS3 - tmp3) / m_A9; - double tmp2 = 0.0; - tmp2 += m_A8 * V[7]; - V[2] = (RHS2 - tmp2) / m_A7; - double tmp1 = 0.0; - tmp1 += m_A4 * V[3]; - tmp1 += m_A5 * V[6]; - V[1] = (RHS1 - tmp1) / m_A3; - double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; - tmp0 += m_A2 * V[7]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// breakout -static void nl_gcr_a5e9537117c3969a_31_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3] + gt[4]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] + Idr[4] - go[1] * *cnV[1] - go[2] * *cnV[2] - go[3] * *cnV[3] - go[4] * *cnV[4]; - m_A2 = gt[8] + gt[9] + gt[10]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A4 = gt[16] + gt[17] + gt[18]; - m_A5 = m_A5 + go[16]; - m_A6 = m_A6 + go[17]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] - go[18] * *cnV[18]; - m_A7 = gt[24] + gt[25] + gt[26]; - m_A8 = m_A8 + go[24]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] - go[25] * *cnV[25] - go[26] * *cnV[26]; - m_A9 = gt[32] + gt[33] + gt[34]; - m_A10 = m_A10 + go[32]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] - go[33] * *cnV[33] - go[34] * *cnV[34]; - m_A12 = gt[40] + gt[41] + gt[42] + gt[43] + gt[44] + gt[45] + gt[46]; - m_A14 = m_A14 + go[40]; - m_A13 = m_A13 + go[41]; - m_A11 = m_A11 + go[42]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] + Idr[43] + Idr[44] + Idr[45] + Idr[46] - go[43] * *cnV[43] - go[44] * *cnV[44] - go[45] * *cnV[45] - go[46] * *cnV[46]; - m_A16 = gt[48] + gt[49] + gt[50] + gt[51] + gt[52]; - m_A18 = m_A18 + go[48]; - m_A15 = m_A15 + go[49]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] + Idr[51] + Idr[52] - go[50] * *cnV[50] - go[51] * *cnV[51] - go[52] * *cnV[52]; - m_A23 = gt[56] + gt[57] + gt[58]; - m_A19 = m_A19 + go[56]; - m_A20 = m_A20 + go[57]; - m_A21 = m_A21 + go[58]; - double RHS7 = Idr[56] + Idr[57] + Idr[58]; - m_A30 = gt[64] + gt[65] + gt[66] + gt[67] + gt[68]; - m_A26 = m_A26 + go[64]; - m_A25 = m_A25 + go[65]; - m_A28 = m_A28 + go[66]; - m_A27 = m_A27 + go[67]; - double RHS8 = Idr[64] + Idr[65] + Idr[66] + Idr[67] + Idr[68] - go[68] * *cnV[68]; -const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A11; - m_A12 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_7 = -f1 * m_A19; - m_A23 += m_A3 * f1_7; - RHS7 += f1_7 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_6 = -f2 * m_A15; - m_A16 += m_A5 * f2_6; - m_A17 += m_A6 * f2_6; - RHS6 += f2_6 * RHS2; - const double f2_7 = -f2 * m_A20; - m_A22 += m_A5 * f2_7; - m_A23 += m_A6 * f2_7; - RHS7 += f2_7 * RHS2; -const double f3 = 1.0 / m_A7; - const double f3_8 = -f3 * m_A25; - m_A30 += m_A8 * f3_8; - RHS8 += f3_8 * RHS3; -const double f4 = 1.0 / m_A9; - const double f4_8 = -f4 * m_A26; - m_A30 += m_A10 * f4_8; - RHS8 += f4_8 * RHS4; -const double f5 = 1.0 / m_A12; - const double f5_7 = -f5 * m_A21; - m_A23 += m_A13 * f5_7; - m_A24 += m_A14 * f5_7; - RHS7 += f5_7 * RHS5; - const double f5_8 = -f5 * m_A27; - m_A29 += m_A13 * f5_8; - m_A30 += m_A14 * f5_8; - RHS8 += f5_8 * RHS5; -const double f6 = 1.0 / m_A16; - const double f6_7 = -f6 * m_A22; - m_A23 += m_A17 * f6_7; - m_A24 += m_A18 * f6_7; - RHS7 += f6_7 * RHS6; - const double f6_8 = -f6 * m_A28; - m_A29 += m_A17 * f6_8; - m_A30 += m_A18 * f6_8; - RHS8 += f6_8 * RHS6; -const double f7 = 1.0 / m_A23; - const double f7_8 = -f7 * m_A29; - m_A30 += m_A24 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A30; - double tmp7 = 0.0; - tmp7 += m_A24 * V[8]; - V[7] = (RHS7 - tmp7) / m_A23; - double tmp6 = 0.0; - tmp6 += m_A17 * V[7]; - tmp6 += m_A18 * V[8]; - V[6] = (RHS6 - tmp6) / m_A16; - double tmp5 = 0.0; - tmp5 += m_A13 * V[7]; - tmp5 += m_A14 * V[8]; - V[5] = (RHS5 - tmp5) / m_A12; + const double f3 = 1.0 / m_A8; + const double f3_4 = -f3 * m_A13; + m_A14 += m_A9 * f3_4; + m_A15 += m_A10 * f3_4; + RHS4 += f3_4 * RHS3; + const double f3_5 = -f3 * m_A17; + m_A18 += m_A9 * f3_5; + m_A19 += m_A10 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A14; + const double f4_5 = -f4 * m_A18; + m_A19 += m_A15 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A19; double tmp4 = 0.0; - tmp4 += m_A10 * V[8]; - V[4] = (RHS4 - tmp4) / m_A9; + tmp4 += m_A15 * V[5]; + V[4] = (RHS4 - tmp4) / m_A14; double tmp3 = 0.0; - tmp3 += m_A8 * V[8]; - V[3] = (RHS3 - tmp3) / m_A7; + tmp3 += m_A9 * V[4]; + tmp3 += m_A10 * V[5]; + V[3] = (RHS3 - tmp3) / m_A8; double tmp2 = 0.0; - tmp2 += m_A5 * V[6]; - tmp2 += m_A6 * V[7]; + tmp2 += m_A5 * V[4]; + tmp2 += m_A6 * V[5]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[7]; + tmp1 += m_A3 * V[4]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[5]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } -// zac1b11142 -static void nl_gcr_a88b481713b08b7b_30_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// popeye +static void nl_gcr_d153cd8a3df26761_50_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3] + gt[4] + gt[5] + gt[6]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] + Idr[4] + Idr[5] + Idr[6] - go[1] * *cnV[1] - go[2] * *cnV[2] - go[3] * *cnV[3] - go[4] * *cnV[4] - go[5] * *cnV[5] - go[6] * *cnV[6]; - m_A2 = gt[8] + gt[9] + gt[10]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[9] * *cnV[9] - go[10] * *cnV[10]; - m_A4 = gt[16] + gt[17]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] - go[17] * *cnV[17]; - m_A6 = gt[24] + gt[25] + gt[26]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] - go[25] * *cnV[25] - go[26] * *cnV[26]; - m_A8 = gt[32] + gt[33] + gt[34]; - m_A9 = m_A9 + go[32]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] - go[33] * *cnV[33] - go[34] * *cnV[34]; - m_A11 = gt[40] + gt[41] + gt[42] + gt[43] + gt[44] + gt[45]; - m_A10 = m_A10 + go[40]; - m_A12 = m_A12 + go[41]; - m_A12 = m_A12 + go[42]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] + Idr[43] + Idr[44] + Idr[45] - go[43] * *cnV[43] - go[44] * *cnV[44] - go[45] * *cnV[45]; - m_A16 = gt[48] + gt[49]; - m_A15 = m_A15 + go[48]; - m_A14 = m_A14 + go[49]; - double RHS6 = Idr[48] + Idr[49]; - m_A18 = gt[56] + gt[57]; - m_A19 = m_A19 + go[56]; - m_A17 = m_A17 + go[57]; - double RHS7 = Idr[56] + Idr[57]; - m_A25 = gt[64] + gt[65] + gt[66] + gt[67] + gt[68] + gt[69]; - m_A23 = m_A23 + go[64]; - m_A22 = m_A22 + go[65]; - m_A22 = m_A22 + go[66]; - m_A24 = m_A24 + go[67]; - m_A21 = m_A21 + go[68]; - m_A20 = m_A20 + go[69]; - double RHS8 = Idr[64] + Idr[65] + Idr[66] + Idr[67] + Idr[68] + Idr[69]; - m_A29 = gt[72] + gt[73] + gt[74] + gt[75]; - m_A28 = m_A28 + go[72]; - m_A27 = m_A27 + go[73]; - double RHS9 = Idr[72] + Idr[73] + Idr[74] + Idr[75] - go[74] * *cnV[74] - go[75] * *cnV[75]; -const double f0 = 1.0 / m_A0; - const double f0_5 = -f0 * m_A10; - m_A13 += m_A1 * f0_5; - RHS5 += f0_5 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_7 = -f1 * m_A17; - m_A18 += m_A3 * f1_7; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A10 += go[9]; + m_A7 += go[10]; + m_A8 += go[11]; + m_A9 += go[12]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[14]; + m_A11 += gt[15]; + m_A11 += gt[16]; + m_A11 += gt[17]; + m_A11 += gt[18]; + m_A11 += gt[19]; + m_A13 += go[15]; + m_A13 += go[16]; + m_A12 += go[17]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= 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_A16 += go[20]; + m_A15 += go[21]; + m_A15 += go[22]; + double RHS5 = Idr[20]; + RHS5 += Idr[21]; + RHS5 += Idr[22]; + RHS5 += Idr[23]; + RHS5 += Idr[24]; + RHS5 -= go[23] * *cnV[23]; + RHS5 -= go[24] * *cnV[24]; + m_A19 += gt[25]; + m_A19 += gt[26]; + m_A19 += gt[27]; + m_A18 += go[25]; + m_A17 += go[26]; + double RHS6 = Idr[25]; + RHS6 += Idr[26]; + RHS6 += Idr[27]; + RHS6 -= go[27] * *cnV[27]; + m_A26 += gt[28]; + m_A26 += gt[29]; + m_A26 += gt[30]; + m_A24 += go[28]; + m_A23 += go[29]; + double RHS7 = Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + RHS7 -= go[30] * *cnV[30]; + m_A33 += gt[31]; + m_A33 += gt[32]; + m_A33 += gt[33]; + m_A30 += go[31]; + m_A29 += go[32]; + double RHS8 = Idr[31]; + RHS8 += Idr[32]; + RHS8 += Idr[33]; + RHS8 -= go[33] * *cnV[33]; + m_A40 += gt[34]; + m_A40 += gt[35]; + m_A40 += gt[36]; + m_A40 += gt[37]; + m_A36 += go[34]; + m_A35 += go[35]; + double RHS9 = Idr[34]; + RHS9 += Idr[35]; + RHS9 += Idr[36]; + RHS9 += Idr[37]; + RHS9 -= go[36] * *cnV[36]; + RHS9 -= go[37] * *cnV[37]; + m_A45 += gt[38]; + m_A45 += gt[39]; + m_A45 += gt[40]; + m_A45 += gt[41]; + m_A45 += gt[42]; + m_A45 += gt[43]; + m_A45 += gt[44]; + m_A45 += gt[45]; + m_A43 += go[38]; + m_A43 += go[39]; + m_A42 += go[40]; + m_A42 += go[41]; + double RHS10 = Idr[38]; + RHS10 += Idr[39]; + RHS10 += Idr[40]; + RHS10 += Idr[41]; + RHS10 += Idr[42]; + RHS10 += Idr[43]; + RHS10 += Idr[44]; + RHS10 += Idr[45]; + RHS10 -= go[42] * *cnV[42]; + RHS10 -= go[43] * *cnV[43]; + RHS10 -= go[44] * *cnV[44]; + RHS10 -= go[45] * *cnV[45]; + m_A49 += gt[46]; + m_A49 += gt[47]; + m_A47 += go[46]; + double RHS11 = Idr[46]; + RHS11 += Idr[47]; + RHS11 -= go[47] * *cnV[47]; + const double f0 = 1.0 / m_A0; + const double f0_8 = -f0 * m_A29; + m_A33 += m_A1 * f0_8; + RHS8 += f0_8 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_7 = -f1 * m_A23; + m_A26 += m_A3 * f1_7; RHS7 += f1_7 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_6 = -f2 * m_A14; - m_A16 += m_A5 * f2_6; + const double f2 = 1.0 / m_A4; + const double f2_6 = -f2 * m_A17; + m_A19 += m_A5 * f2_6; RHS6 += f2_6 * RHS2; - const double f2_8 = -f2 * m_A20; - m_A23 += m_A5 * f2_8; - RHS8 += f2_8 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_6 = -f3 * m_A15; - m_A16 += m_A7 * f3_6; + const double f3 = 1.0 / m_A6; + const double f3_6 = -f3 * m_A18; + m_A19 += m_A7 * f3_6; + m_A20 += m_A8 * f3_6; + m_A21 += m_A9 * f3_6; + m_A22 += m_A10 * f3_6; RHS6 += f3_6 * RHS3; -const double f4 = 1.0 / m_A8; - const double f4_8 = -f4 * m_A21; - m_A25 += m_A9 * f4_8; - RHS8 += f4_8 * RHS4; - const double f4_9 = -f4 * m_A27; - m_A28 += m_A9 * f4_9; + const double f3_7 = -f3 * m_A24; + m_A25 += m_A7 * f3_7; + m_A26 += m_A8 * f3_7; + m_A27 += m_A9 * f3_7; + m_A28 += m_A10 * f3_7; + RHS7 += f3_7 * RHS3; + const double f3_8 = -f3 * m_A30; + m_A31 += m_A7 * f3_8; + m_A32 += m_A8 * f3_8; + m_A33 += m_A9 * f3_8; + m_A34 += m_A10 * f3_8; + RHS8 += f3_8 * RHS3; + const double f3_9 = -f3 * m_A35; + m_A37 += m_A7 * f3_9; + m_A38 += m_A8 * f3_9; + m_A39 += m_A9 * f3_9; + m_A40 += m_A10 * f3_9; + RHS9 += f3_9 * RHS3; + const double f4 = 1.0 / m_A11; + const double f4_9 = -f4 * m_A36; + m_A40 += m_A12 * f4_9; + m_A41 += m_A13 * f4_9; RHS9 += f4_9 * RHS4; -const double f5 = 1.0 / m_A11; - const double f5_8 = -f5 * m_A22; - m_A25 += m_A12 * f5_8; - m_A26 += m_A13 * f5_8; - RHS8 += f5_8 * RHS5; -const double f6 = 1.0 / m_A16; - const double f6_8 = -f6 * m_A23; + const double f4_10 = -f4 * m_A42; + m_A44 += m_A12 * f4_10; + m_A45 += m_A13 * f4_10; + RHS10 += f4_10 * RHS4; + const double f5 = 1.0 / m_A14; + const double f5_10 = -f5 * m_A43; + m_A45 += m_A15 * f5_10; + m_A46 += m_A16 * f5_10; + RHS10 += f5_10 * RHS5; + const double f5_11 = -f5 * m_A47; + m_A48 += m_A15 * f5_11; + m_A49 += m_A16 * f5_11; + RHS11 += f5_11 * RHS5; + const double f6 = 1.0 / m_A19; + const double f6_7 = -f6 * m_A25; + m_A26 += m_A20 * f6_7; + m_A27 += m_A21 * f6_7; + m_A28 += m_A22 * f6_7; + RHS7 += f6_7 * RHS6; + const double f6_8 = -f6 * m_A31; + m_A32 += m_A20 * f6_8; + m_A33 += m_A21 * f6_8; + m_A34 += m_A22 * f6_8; RHS8 += f6_8 * RHS6; -const double f7 = 1.0 / m_A18; - const double f7_8 = -f7 * m_A24; - m_A25 += m_A19 * f7_8; + const double f6_9 = -f6 * m_A37; + m_A38 += m_A20 * f6_9; + m_A39 += m_A21 * f6_9; + m_A40 += m_A22 * f6_9; + RHS9 += f6_9 * RHS6; + const double f7 = 1.0 / m_A26; + const double f7_8 = -f7 * m_A32; + m_A33 += m_A27 * f7_8; + m_A34 += m_A28 * f7_8; RHS8 += f7_8 * RHS7; -const double f8 = 1.0 / m_A25; - const double f8_9 = -f8 * m_A28; - m_A29 += m_A26 * f8_9; + const double f7_9 = -f7 * m_A38; + m_A39 += m_A27 * f7_9; + m_A40 += m_A28 * f7_9; + RHS9 += f7_9 * RHS7; + const double f8 = 1.0 / m_A33; + const double f8_9 = -f8 * m_A39; + m_A40 += m_A34 * f8_9; RHS9 += f8_9 * RHS8; - V[9] = RHS9 / m_A29; + const double f9 = 1.0 / m_A40; + const double f9_10 = -f9 * m_A44; + m_A45 += m_A41 * f9_10; + RHS10 += f9_10 * RHS9; + const double f10 = 1.0 / m_A45; + const double f10_11 = -f10 * m_A48; + m_A49 += m_A46 * f10_11; + RHS11 += f10_11 * RHS10; + V[11] = RHS11 / m_A49; + double tmp10 = 0.0; + tmp10 += m_A46 * V[11]; + V[10] = (RHS10 - tmp10) / m_A45; + double tmp9 = 0.0; + tmp9 += m_A41 * V[10]; + V[9] = (RHS9 - tmp9) / m_A40; double tmp8 = 0.0; - tmp8 += m_A26 * V[9]; - V[8] = (RHS8 - tmp8) / m_A25; + tmp8 += m_A34 * V[9]; + V[8] = (RHS8 - tmp8) / m_A33; double tmp7 = 0.0; - tmp7 += m_A19 * V[8]; - V[7] = (RHS7 - tmp7) / m_A18; + tmp7 += m_A27 * V[8]; + tmp7 += m_A28 * V[9]; + V[7] = (RHS7 - tmp7) / m_A26; double tmp6 = 0.0; - V[6] = (RHS6 - tmp6) / m_A16; + tmp6 += m_A20 * V[7]; + tmp6 += m_A21 * V[8]; + tmp6 += m_A22 * V[9]; + V[6] = (RHS6 - tmp6) / m_A19; double tmp5 = 0.0; - tmp5 += m_A12 * V[8]; - tmp5 += m_A13 * V[9]; - V[5] = (RHS5 - tmp5) / m_A11; + tmp5 += m_A15 * V[10]; + tmp5 += m_A16 * V[11]; + V[5] = (RHS5 - tmp5) / m_A14; double tmp4 = 0.0; - tmp4 += m_A9 * V[8]; - V[4] = (RHS4 - tmp4) / m_A8; + tmp4 += m_A12 * V[9]; + tmp4 += m_A13 * V[10]; + V[4] = (RHS4 - tmp4) / m_A11; double tmp3 = 0.0; tmp3 += m_A7 * V[6]; + tmp3 += m_A8 * V[7]; + tmp3 += m_A9 * V[8]; + tmp3 += m_A10 * V[9]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; tmp2 += m_A5 * V[6]; @@ -10520,526 +14738,440 @@ const double f8 = 1.0 / m_A25; tmp1 += m_A3 * V[7]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[9]; + tmp0 += m_A1 * V[8]; V[0] = (RHS0 - tmp0) / m_A0; } -// kidniki -static void nl_gcr_b42f307001315373_21_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// dpatrol +static void nl_gcr_d229cf0026955cd3_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3] + gt[4] + gt[5] + gt[6]; - m_A1 = m_A1 + go[0]; - m_A2 = m_A2 + go[1]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] + Idr[4] + Idr[5] + Idr[6] - go[2] * *cnV[2] - go[3] * *cnV[3] - go[4] * *cnV[4] - go[5] * *cnV[5] - go[6] * *cnV[6]; - m_A3 = gt[8] + gt[9] + gt[10]; - m_A5 = m_A5 + go[8]; - m_A4 = m_A4 + go[9]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] - go[10] * *cnV[10]; - m_A6 = gt[16] + gt[17]; - m_A7 = m_A7 + go[16]; - m_A8 = m_A8 + go[17]; - double RHS2 = Idr[16] + Idr[17]; - m_A10 = gt[24] + gt[25] + gt[26]; - m_A9 = m_A9 + go[24]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] - go[25] * *cnV[25] - go[26] * *cnV[26]; - m_A14 = gt[32] + gt[33] + gt[34] + gt[35] + gt[36] + gt[37]; - m_A12 = m_A12 + go[32]; - m_A15 = m_A15 + go[33]; - m_A13 = m_A13 + go[34]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] + Idr[35] + Idr[36] + Idr[37] - go[35] * *cnV[35] - go[36] * *cnV[36] - go[37] * *cnV[37]; - m_A20 = gt[40] + gt[41] + gt[42]; - m_A17 = m_A17 + go[40]; - m_A16 = m_A16 + go[41]; - m_A19 = m_A19 + go[42]; - double RHS5 = Idr[40] + Idr[41] + Idr[42]; -const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A12; - m_A13 += m_A1 * f0_4; - m_A14 += m_A2 * f0_4; - RHS4 += f0_4 * RHS0; -const double f1 = 1.0 / m_A3; - const double f1_4 = -f1 * m_A13; - m_A14 += m_A4 * f1_4; - m_A15 += m_A5 * f1_4; - RHS4 += f1_4 * RHS1; - const double f1_5 = -f1 * m_A16; - m_A19 += m_A4 * f1_5; - m_A20 += m_A5 * f1_5; - RHS5 += f1_5 * RHS1; -const double f2 = 1.0 / m_A6; - const double f2_3 = -f2 * m_A9; - m_A10 += m_A7 * f2_3; - m_A11 += m_A8 * f2_3; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A8 += go[9]; + m_A7 += go[10]; + m_A6 += go[11]; + double RHS3 = Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 -= go[12] * *cnV[12]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A6; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A5 * f2_3; RHS3 += f2_3 * RHS2; - const double f2_5 = -f2 * m_A17; - m_A18 += m_A7 * f2_5; - m_A20 += m_A8 * f2_5; - RHS5 += f2_5 * RHS2; -const double f3 = 1.0 / m_A10; - const double f3_5 = -f3 * m_A18; - m_A20 += m_A11 * f3_5; - RHS5 += f3_5 * RHS3; -const double f4 = 1.0 / m_A14; - const double f4_5 = -f4 * m_A19; - m_A20 += m_A15 * f4_5; - RHS5 += f4_5 * RHS4; - V[5] = RHS5 / m_A20; - double tmp4 = 0.0; - tmp4 += m_A15 * V[5]; - V[4] = (RHS4 - tmp4) / m_A14; - double tmp3 = 0.0; - tmp3 += m_A11 * V[5]; - V[3] = (RHS3 - tmp3) / m_A10; + V[3] = RHS3 / m_A9; double tmp2 = 0.0; - tmp2 += m_A7 * V[3]; - tmp2 += m_A8 * V[5]; - V[2] = (RHS2 - tmp2) / m_A6; + tmp2 += m_A5 * V[3]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A4 * V[4]; - tmp1 += m_A5 * V[5]; - V[1] = (RHS1 - tmp1) / m_A3; + tmp1 += m_A3 * V[3]; + V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[1]; - tmp0 += m_A2 * V[4]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } -// pongf -static void nl_gcr_b8e1f7dd43c1da70_35_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// 280zzzap +static void nl_gcr_d5f69adb177fea36_31_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] - go[1] * *cnV[1] - go[2] * *cnV[2] - go[3] * *cnV[3]; - m_A2 = gt[8] + gt[9] + gt[10] + gt[11]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] + Idr[10] + Idr[11] - go[9] * *cnV[9] - go[10] * *cnV[10] - go[11] * *cnV[11]; - m_A4 = gt[16] + gt[17] + gt[18]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] + Idr[18] - go[17] * *cnV[17] - go[18] * *cnV[18]; - m_A6 = gt[24] + gt[25] + gt[26] + gt[27] + gt[28]; - m_A9 = m_A9 + go[24]; - m_A7 = m_A7 + go[25]; - m_A7 = m_A7 + go[26]; - m_A7 = m_A7 + go[27]; - m_A8 = m_A8 + go[28]; - double RHS3 = Idr[24] + Idr[25] + Idr[26] + Idr[27] + Idr[28]; - m_A11 = gt[32] + gt[33] + gt[34] + gt[35] + gt[36] + gt[37] + gt[38]; - m_A13 = m_A13 + go[32]; - m_A12 = m_A12 + go[33]; - m_A10 = m_A10 + go[34]; - double RHS4 = Idr[32] + Idr[33] + Idr[34] + Idr[35] + Idr[36] + Idr[37] + Idr[38] - go[35] * *cnV[35] - go[36] * *cnV[36] - go[37] * *cnV[37] - go[38] * *cnV[38]; - m_A15 = gt[40] + gt[41] + gt[42] + gt[43] + gt[44]; - m_A17 = m_A17 + go[40]; - m_A14 = m_A14 + go[41]; - m_A14 = m_A14 + go[42]; - m_A14 = m_A14 + go[43]; - double RHS5 = Idr[40] + Idr[41] + Idr[42] + Idr[43] + Idr[44] - go[44] * *cnV[44]; - m_A22 = gt[48] + gt[49] + gt[50] + gt[51]; - m_A19 = m_A19 + go[48]; - m_A20 = m_A20 + go[49]; - m_A18 = m_A18 + go[50]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] + Idr[51] - go[51] * *cnV[51]; - m_A28 = gt[56] + gt[57] + gt[58]; - m_A29 = m_A29 + go[56]; - m_A25 = m_A25 + go[57]; - m_A26 = m_A26 + go[58]; - double RHS7 = Idr[56] + Idr[57] + Idr[58]; - m_A34 = gt[64] + gt[65] + gt[66]; - m_A31 = m_A31 + go[64]; - m_A30 = m_A30 + go[65]; - m_A33 = m_A33 + go[66]; - double RHS8 = Idr[64] + Idr[65] + Idr[66]; -const double f0 = 1.0 / m_A0; - const double f0_4 = -f0 * m_A10; - m_A11 += m_A1 * f0_4; - RHS4 += f0_4 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_6 = -f1 * m_A18; - m_A22 += m_A3 * f1_6; - RHS6 += f1_6 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_7 = -f2 * m_A25; - m_A28 += m_A5 * f2_7; - RHS7 += f2_7 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_5 = -f3 * m_A14; - m_A15 += m_A7 * f3_5; - m_A16 += m_A8 * f3_5; - m_A17 += m_A9 * f3_5; - RHS5 += f3_5 * RHS3; - const double f3_6 = -f3 * m_A19; - m_A21 += m_A7 * f3_6; - m_A22 += m_A8 * f3_6; - m_A24 += m_A9 * f3_6; - RHS6 += f3_6 * RHS3; - const double f3_8 = -f3 * m_A30; - m_A31 += m_A7 * f3_8; - m_A32 += m_A8 * f3_8; - m_A34 += m_A9 * f3_8; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A2 += gt[7]; + m_A2 += gt[8]; + m_A2 += gt[9]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 += Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + RHS1 -= go[7] * *cnV[7]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A4 += gt[12]; + m_A5 += go[10]; + double RHS2 = Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A7 += go[13]; + double RHS3 = Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[14] * *cnV[14]; + m_A9 += gt[15]; + m_A9 += gt[16]; + m_A9 += gt[17]; + m_A9 += gt[18]; + m_A9 += gt[19]; + m_A9 += gt[20]; + m_A8 += go[15]; + m_A11 += go[16]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + m_A13 += gt[21]; + m_A13 += gt[22]; + m_A14 += go[21]; + m_A12 += go[22]; + double RHS5 = Idr[21]; + RHS5 += Idr[22]; + m_A16 += gt[23]; + m_A16 += gt[24]; + m_A16 += gt[25]; + m_A16 += gt[26]; + m_A15 += go[23]; + m_A17 += go[24]; + double RHS6 = Idr[23]; + RHS6 += Idr[24]; + RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 -= go[25] * *cnV[25]; + RHS6 -= go[26] * *cnV[26]; + m_A20 += gt[27]; + m_A20 += gt[28]; + m_A20 += gt[29]; + m_A20 += gt[30]; + m_A21 += go[27]; + m_A22 += go[28]; + m_A18 += go[29]; + m_A19 += go[30]; + double RHS7 = Idr[27]; + RHS7 += Idr[28]; + RHS7 += Idr[29]; + RHS7 += Idr[30]; + m_A25 += gt[31]; + m_A25 += gt[32]; + m_A24 += go[31]; + m_A23 += go[32]; + double RHS8 = Idr[31]; + RHS8 += Idr[32]; + m_A30 += gt[33]; + m_A30 += gt[34]; + m_A30 += gt[35]; + m_A26 += go[33]; + m_A28 += go[34]; + double RHS9 = Idr[33]; + RHS9 += Idr[34]; + RHS9 += Idr[35]; + RHS9 -= go[35] * *cnV[35]; + const double f0 = 1.0 / m_A0; + const double f0_6 = -f0 * m_A15; + m_A17 += m_A1 * f0_6; + RHS6 += f0_6 * RHS0; + const double f0_7 = -f0 * m_A18; + m_A20 += m_A1 * f0_7; + RHS7 += f0_7 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_4 = -f1 * m_A8; + m_A10 += m_A3 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_5 = -f2 * m_A12; + m_A13 += m_A5 * f2_5; + RHS5 += f2_5 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_7 = -f3 * m_A19; + m_A21 += m_A7 * f3_7; + RHS7 += f3_7 * RHS3; + const double f3_8 = -f3 * m_A23; + m_A25 += m_A7 * f3_8; RHS8 += f3_8 * RHS3; -const double f4 = 1.0 / m_A11; - const double f4_6 = -f4 * m_A20; - m_A22 += m_A12 * f4_6; - m_A23 += m_A13 * f4_6; - RHS6 += f4_6 * RHS4; - const double f4_7 = -f4 * m_A26; - m_A27 += m_A12 * f4_7; - m_A28 += m_A13 * f4_7; - RHS7 += f4_7 * RHS4; -const double f5 = 1.0 / m_A15; - const double f5_6 = -f5 * m_A21; - m_A22 += m_A16 * f5_6; - m_A24 += m_A17 * f5_6; - RHS6 += f5_6 * RHS5; - const double f5_8 = -f5 * m_A31; - m_A32 += m_A16 * f5_8; - m_A34 += m_A17 * f5_8; + const double f4 = 1.0 / m_A9; + const double f4_9 = -f4 * m_A26; + m_A27 += m_A10 * f4_9; + m_A30 += m_A11 * f4_9; + RHS9 += f4_9 * RHS4; + const double f5 = 1.0 / m_A13; + const double f5_8 = -f5 * m_A24; + m_A25 += m_A14 * f5_8; RHS8 += f5_8 * RHS5; -const double f6 = 1.0 / m_A22; - const double f6_7 = -f6 * m_A27; - m_A28 += m_A23 * f6_7; - m_A29 += m_A24 * f6_7; - RHS7 += f6_7 * RHS6; - const double f6_8 = -f6 * m_A32; - m_A33 += m_A23 * f6_8; - m_A34 += m_A24 * f6_8; - RHS8 += f6_8 * RHS6; -const double f7 = 1.0 / m_A28; - const double f7_8 = -f7 * m_A33; - m_A34 += m_A29 * f7_8; - RHS8 += f7_8 * RHS7; - V[8] = RHS8 / m_A34; + const double f6 = 1.0 / m_A16; + const double f6_9 = -f6 * m_A27; + m_A28 += m_A17 * f6_9; + RHS9 += f6_9 * RHS6; + const double f7 = 1.0 / m_A20; + const double f7_9 = -f7 * m_A28; + m_A29 += m_A21 * f7_9; + m_A30 += m_A22 * f7_9; + RHS9 += f7_9 * RHS7; + const double f8 = 1.0 / m_A25; + const double f8_9 = -f8 * m_A29; + RHS9 += f8_9 * RHS8; + V[9] = RHS9 / m_A30; + double tmp8 = 0.0; + V[8] = (RHS8 - tmp8) / m_A25; double tmp7 = 0.0; - tmp7 += m_A29 * V[8]; - V[7] = (RHS7 - tmp7) / m_A28; + tmp7 += m_A21 * V[8]; + tmp7 += m_A22 * V[9]; + V[7] = (RHS7 - tmp7) / m_A20; double tmp6 = 0.0; - tmp6 += m_A23 * V[7]; - tmp6 += m_A24 * V[8]; - V[6] = (RHS6 - tmp6) / m_A22; + tmp6 += m_A17 * V[7]; + V[6] = (RHS6 - tmp6) / m_A16; double tmp5 = 0.0; - tmp5 += m_A16 * V[6]; - tmp5 += m_A17 * V[8]; - V[5] = (RHS5 - tmp5) / m_A15; + tmp5 += m_A14 * V[8]; + V[5] = (RHS5 - tmp5) / m_A13; double tmp4 = 0.0; - tmp4 += m_A12 * V[6]; - tmp4 += m_A13 * V[7]; - V[4] = (RHS4 - tmp4) / m_A11; + tmp4 += m_A10 * V[6]; + tmp4 += m_A11 * V[9]; + V[4] = (RHS4 - tmp4) / m_A9; double tmp3 = 0.0; - tmp3 += m_A7 * V[5]; - tmp3 += m_A8 * V[6]; - tmp3 += m_A9 * V[8]; + tmp3 += m_A7 * V[8]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[7]; + tmp2 += m_A5 * V[5]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; tmp1 += m_A3 * V[6]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[4]; + tmp0 += m_A1 * V[7]; V[0] = (RHS0 - tmp0) / m_A0; } -// gtrak10 -static void nl_gcr_b9ccfa3d1681baf3_43_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// gamemachine +static void nl_gcr_ddffc2781d05acf_10_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[14] + gt[15] + gt[16]; - m_A3 = m_A3 + go[14]; - double RHS1 = Idr[14] + Idr[15] + Idr[16] - go[15] * *cnV[15] - go[16] * *cnV[16]; - m_A4 = gt[28] + gt[29] + gt[30]; - m_A5 = m_A5 + go[28]; - double RHS2 = Idr[28] + Idr[29] + Idr[30] - go[29] * *cnV[29] - go[30] * *cnV[30]; - m_A6 = gt[42] + gt[43] + gt[44]; - m_A7 = m_A7 + go[42]; - double RHS3 = Idr[42] + Idr[43] + Idr[44] - go[43] * *cnV[43] - go[44] * *cnV[44]; - m_A8 = gt[56] + gt[57] + gt[58]; - m_A9 = m_A9 + go[56]; - double RHS4 = Idr[56] + Idr[57] + Idr[58] - go[57] * *cnV[57] - go[58] * *cnV[58]; - m_A10 = gt[70] + gt[71] + gt[72]; - m_A11 = m_A11 + go[70]; - double RHS5 = Idr[70] + Idr[71] + Idr[72] - go[71] * *cnV[71] - go[72] * *cnV[72]; - m_A12 = gt[84] + gt[85] + gt[86]; - m_A13 = m_A13 + go[84]; - double RHS6 = Idr[84] + Idr[85] + Idr[86] - go[85] * *cnV[85] - go[86] * *cnV[86]; - m_A14 = gt[98] + gt[99] + gt[100]; - m_A15 = m_A15 + go[98]; - double RHS7 = Idr[98] + Idr[99] + Idr[100] - go[99] * *cnV[99] - go[100] * *cnV[100]; - m_A16 = gt[112] + gt[113] + gt[114]; - m_A17 = m_A17 + go[112]; - double RHS8 = Idr[112] + Idr[113] + Idr[114] - go[113] * *cnV[113] - go[114] * *cnV[114]; - m_A18 = gt[126] + gt[127] + gt[128]; - m_A19 = m_A19 + go[126]; - double RHS9 = Idr[126] + Idr[127] + Idr[128] - go[127] * *cnV[127] - go[128] * *cnV[128]; - m_A20 = gt[140] + gt[141] + gt[142]; - m_A21 = m_A21 + go[140]; - double RHS10 = Idr[140] + Idr[141] + Idr[142] - go[141] * *cnV[141] - go[142] * *cnV[142]; - m_A22 = gt[154] + gt[155] + gt[156]; - m_A23 = m_A23 + go[154]; - double RHS11 = Idr[154] + Idr[155] + Idr[156] - go[155] * *cnV[155] - go[156] * *cnV[156]; - m_A25 = gt[168] + gt[169] + gt[170]; - m_A26 = m_A26 + go[168]; - m_A24 = m_A24 + go[169]; - double RHS12 = Idr[168] + Idr[169] + Idr[170] - go[170] * *cnV[170]; - m_A30 = gt[182] + gt[183] + gt[184] + gt[185] + gt[186] + gt[187] + gt[188]; - m_A29 = m_A29 + go[182]; - m_A28 = m_A28 + go[183]; - m_A27 = m_A27 + go[184]; - m_A31 = m_A31 + go[185]; - m_A31 = m_A31 + go[186]; - double RHS13 = Idr[182] + Idr[183] + Idr[184] + Idr[185] + Idr[186] + Idr[187] + Idr[188] - go[187] * *cnV[187] - go[188] * *cnV[188]; - m_A42 = gt[196] + gt[197] + gt[198] + gt[199] + gt[200] + gt[201] + gt[202] + gt[203] + gt[204] + gt[205] + gt[206] + gt[207] + gt[208]; - m_A41 = m_A41 + go[196]; - m_A41 = m_A41 + go[197]; - m_A39 = m_A39 + go[198]; - m_A38 = m_A38 + go[199]; - m_A37 = m_A37 + go[200]; - m_A36 = m_A36 + go[201]; - m_A35 = m_A35 + go[202]; - m_A34 = m_A34 + go[203]; - m_A33 = m_A33 + go[204]; - m_A32 = m_A32 + go[205]; - m_A40 = m_A40 + go[206]; - double RHS14 = Idr[196] + Idr[197] + Idr[198] + Idr[199] + Idr[200] + Idr[201] + Idr[202] + Idr[203] + Idr[204] + Idr[205] + Idr[206] + Idr[207] + Idr[208] - go[207] * *cnV[207] - go[208] * *cnV[208]; -const double f0 = 1.0 / m_A0; - const double f0_12 = -f0 * m_A24; - m_A25 += m_A1 * f0_12; - RHS12 += f0_12 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_14 = -f1 * m_A32; - m_A42 += m_A3 * f1_14; - RHS14 += f1_14 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_14 = -f2 * m_A33; - m_A42 += m_A5 * f2_14; - RHS14 += f2_14 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_14 = -f3 * m_A34; - m_A42 += m_A7 * f3_14; - RHS14 += f3_14 * RHS3; -const double f4 = 1.0 / m_A8; - const double f4_14 = -f4 * m_A35; - m_A42 += m_A9 * f4_14; - RHS14 += f4_14 * RHS4; -const double f5 = 1.0 / m_A10; - const double f5_14 = -f5 * m_A36; - m_A42 += m_A11 * f5_14; - RHS14 += f5_14 * RHS5; -const double f6 = 1.0 / m_A12; - const double f6_14 = -f6 * m_A37; - m_A42 += m_A13 * f6_14; - RHS14 += f6_14 * RHS6; -const double f7 = 1.0 / m_A14; - const double f7_14 = -f7 * m_A38; - m_A42 += m_A15 * f7_14; - RHS14 += f7_14 * RHS7; -const double f8 = 1.0 / m_A16; - const double f8_14 = -f8 * m_A39; - m_A42 += m_A17 * f8_14; - RHS14 += f8_14 * RHS8; -const double f9 = 1.0 / m_A18; - const double f9_13 = -f9 * m_A27; - m_A30 += m_A19 * f9_13; - RHS13 += f9_13 * RHS9; -const double f10 = 1.0 / m_A20; - const double f10_13 = -f10 * m_A28; - m_A30 += m_A21 * f10_13; - RHS13 += f10_13 * RHS10; -const double f11 = 1.0 / m_A22; - const double f11_13 = -f11 * m_A29; - m_A30 += m_A23 * f11_13; - RHS13 += f11_13 * RHS11; -const double f12 = 1.0 / m_A25; - const double f12_14 = -f12 * m_A40; - m_A42 += m_A26 * f12_14; - RHS14 += f12_14 * RHS12; -const double f13 = 1.0 / m_A30; - const double f13_14 = -f13 * m_A41; - m_A42 += m_A31 * f13_14; - RHS14 += f13_14 * RHS13; - V[14] = RHS14 / m_A42; - double tmp13 = 0.0; - tmp13 += m_A31 * V[14]; - V[13] = (RHS13 - tmp13) / m_A30; - double tmp12 = 0.0; - tmp12 += m_A26 * V[14]; - V[12] = (RHS12 - tmp12) / m_A25; - double tmp11 = 0.0; - tmp11 += m_A23 * V[13]; - V[11] = (RHS11 - tmp11) / m_A22; - double tmp10 = 0.0; - tmp10 += m_A21 * V[13]; - V[10] = (RHS10 - tmp10) / m_A20; - double tmp9 = 0.0; - tmp9 += m_A19 * V[13]; - V[9] = (RHS9 - tmp9) / m_A18; - double tmp8 = 0.0; - tmp8 += m_A17 * V[14]; - V[8] = (RHS8 - tmp8) / m_A16; - double tmp7 = 0.0; - tmp7 += m_A15 * V[14]; - V[7] = (RHS7 - tmp7) / m_A14; - double tmp6 = 0.0; - tmp6 += m_A13 * V[14]; - V[6] = (RHS6 - tmp6) / m_A12; - double tmp5 = 0.0; - tmp5 += m_A11 * V[14]; - V[5] = (RHS5 - tmp5) / m_A10; - double tmp4 = 0.0; - tmp4 += m_A9 * V[14]; - V[4] = (RHS4 - tmp4) / m_A8; - double tmp3 = 0.0; - tmp3 += m_A7 * V[14]; - V[3] = (RHS3 - tmp3) / m_A6; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 -= go[4] * *cnV[4]; + RHS1 -= go[5] * *cnV[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A5 += go[6]; + double RHS2 = Idr[6]; + RHS2 += Idr[7]; + RHS2 -= go[7] * *cnV[7]; + m_A9 += gt[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A8 += go[8]; + m_A7 += go[9]; + m_A6 += go[10]; + double RHS3 = Idr[8]; + RHS3 += Idr[9]; + RHS3 += Idr[10]; + RHS3 += Idr[11]; + RHS3 += Idr[12]; + RHS3 -= go[11] * *cnV[11]; + RHS3 -= go[12] * *cnV[12]; + const double f0 = 1.0 / m_A0; + const double f0_3 = -f0 * m_A6; + m_A9 += m_A1 * f0_3; + RHS3 += f0_3 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A7; + m_A9 += m_A3 * f1_3; + RHS3 += f1_3 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_3 = -f2 * m_A8; + m_A9 += m_A5 * f2_3; + RHS3 += f2_3 * RHS2; + V[3] = RHS3 / m_A9; double tmp2 = 0.0; - tmp2 += m_A5 * V[14]; + tmp2 += m_A5 * V[3]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[14]; + tmp1 += m_A3 * V[3]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[12]; + tmp0 += m_A1 * V[3]; V[0] = (RHS0 - tmp0) / m_A0; } // gamemachine -static void nl_gcr_d028b2a263a6b4a7_7_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_df3a545642cc0a22_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - m_A1 = m_A1 + go[1]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[2] * *cnV[2]; - m_A2 = gt[6] + gt[7] + gt[8] + gt[9]; - m_A3 = m_A3 + go[6]; - m_A3 = m_A3 + go[7]; - double RHS1 = Idr[6] + Idr[7] + Idr[8] + Idr[9] - go[8] * *cnV[8] - go[9] * *cnV[9]; - m_A6 = gt[12] + gt[13] + gt[14] + gt[15] + gt[16] + gt[17]; - m_A5 = m_A5 + go[12]; - m_A5 = m_A5 + go[13]; - m_A4 = m_A4 + go[14]; - m_A4 = m_A4 + go[15]; - double RHS2 = Idr[12] + Idr[13] + Idr[14] + Idr[15] + Idr[16] + Idr[17] - go[16] * *cnV[16] - go[17] * *cnV[17]; -const double f0 = 1.0 / m_A0; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + m_A1 += go[1]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A3 += go[3]; + m_A3 += go[4]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[5] * *cnV[5]; + RHS1 -= go[6] * *cnV[6]; + m_A6 += gt[7]; + m_A6 += gt[8]; + m_A6 += gt[9]; + m_A6 += gt[10]; + m_A6 += gt[11]; + m_A6 += gt[12]; + m_A5 += go[7]; + m_A5 += go[8]; + m_A4 += go[9]; + m_A4 += go[10]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 += Idr[12]; + RHS2 -= go[11] * *cnV[11]; + RHS2 -= go[12] * *cnV[12]; + const double f0 = 1.0 / m_A0; const double f0_2 = -f0 * m_A4; m_A6 += m_A1 * f0_2; RHS2 += f0_2 * RHS0; -const double f1 = 1.0 / m_A2; + const double f1 = 1.0 / m_A2; const double f1_2 = -f1 * m_A5; m_A6 += m_A3 * f1_2; RHS2 += f1_2 * RHS1; @@ -11053,409 +15185,731 @@ const double f1 = 1.0 / m_A2; } // zac1b11142 -static void nl_gcr_dded752996a524fc_178_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_e3e057bb1961a530_178_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); -double m_A154(0.0); -double m_A155(0.0); -double m_A156(0.0); -double m_A157(0.0); -double m_A158(0.0); -double m_A159(0.0); -double m_A160(0.0); -double m_A161(0.0); -double m_A162(0.0); -double m_A163(0.0); -double m_A164(0.0); -double m_A165(0.0); -double m_A166(0.0); -double m_A167(0.0); -double m_A168(0.0); -double m_A169(0.0); -double m_A170(0.0); -double m_A171(0.0); -double m_A172(0.0); -double m_A173(0.0); -double m_A174(0.0); -double m_A175(0.0); -double m_A176(0.0); -double m_A177(0.0); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[10] + gt[11]; - m_A3 = m_A3 + go[10]; - double RHS1 = Idr[10] + Idr[11] - go[11] * *cnV[11]; - m_A4 = gt[20] + gt[21]; - m_A6 = m_A6 + go[20]; - m_A5 = m_A5 + go[21]; - double RHS2 = Idr[20] + Idr[21]; - m_A7 = gt[30] + gt[31]; - m_A8 = m_A8 + go[30]; - double RHS3 = Idr[30] + Idr[31] - go[31] * *cnV[31]; - m_A9 = gt[40] + gt[41] + gt[42] + gt[43] + gt[44] + gt[45] + gt[46]; - m_A10 = m_A10 + go[40]; - double RHS4 = Idr[40] + Idr[41] + Idr[42] + Idr[43] + Idr[44] + Idr[45] + Idr[46] - go[41] * *cnV[41] - go[42] * *cnV[42] - go[43] * *cnV[43] - go[44] * *cnV[44] - go[45] * *cnV[45] - go[46] * *cnV[46]; - m_A11 = gt[50] + gt[51]; - m_A12 = m_A12 + go[50]; - double RHS5 = Idr[50] + Idr[51] - go[51] * *cnV[51]; - m_A13 = gt[60] + gt[61]; - m_A14 = m_A14 + go[60]; - double RHS6 = Idr[60] + Idr[61] - go[61] * *cnV[61]; - m_A15 = gt[70] + gt[71]; - m_A16 = m_A16 + go[70]; - double RHS7 = Idr[70] + Idr[71] - go[71] * *cnV[71]; - m_A17 = gt[80] + gt[81]; - m_A18 = m_A18 + go[80]; - double RHS8 = Idr[80] + Idr[81] - go[81] * *cnV[81]; - m_A19 = gt[90] + gt[91]; - m_A20 = m_A20 + go[90]; - m_A21 = m_A21 + go[91]; - double RHS9 = Idr[90] + Idr[91]; - m_A22 = gt[100] + gt[101] + gt[102] + gt[103]; - m_A23 = m_A23 + go[100]; - m_A23 = m_A23 + go[101]; - double RHS10 = Idr[100] + Idr[101] + Idr[102] + Idr[103] - go[102] * *cnV[102] - go[103] * *cnV[103]; - m_A24 = gt[110] + gt[111] + gt[112] + gt[113]; - m_A25 = m_A25 + go[110]; - m_A25 = m_A25 + go[111]; - double RHS11 = Idr[110] + Idr[111] + Idr[112] + Idr[113] - go[112] * *cnV[112] - go[113] * *cnV[113]; - m_A26 = gt[120] + gt[121] + gt[122] + gt[123]; - m_A27 = m_A27 + go[120]; - m_A27 = m_A27 + go[121]; - double RHS12 = Idr[120] + Idr[121] + Idr[122] + Idr[123] - go[122] * *cnV[122] - go[123] * *cnV[123]; - m_A28 = gt[130] + gt[131]; - m_A29 = m_A29 + go[130]; - double RHS13 = Idr[130] + Idr[131] - go[131] * *cnV[131]; - m_A30 = gt[140] + gt[141] + gt[142]; - m_A31 = m_A31 + go[140]; - double RHS14 = Idr[140] + Idr[141] + Idr[142] - go[141] * *cnV[141] - go[142] * *cnV[142]; - m_A32 = gt[150] + gt[151] + gt[152]; - m_A33 = m_A33 + go[150]; - double RHS15 = Idr[150] + Idr[151] + Idr[152] - go[151] * *cnV[151] - go[152] * *cnV[152]; - m_A34 = gt[160] + gt[161] + gt[162]; - m_A35 = m_A35 + go[160]; - double RHS16 = Idr[160] + Idr[161] + Idr[162] - go[161] * *cnV[161] - go[162] * *cnV[162]; - m_A36 = gt[170] + gt[171]; - m_A37 = m_A37 + go[170]; - double RHS17 = Idr[170] + Idr[171] - go[171] * *cnV[171]; - m_A38 = gt[180] + gt[181] + gt[182] + gt[183]; - m_A39 = m_A39 + go[180]; - double RHS18 = Idr[180] + Idr[181] + Idr[182] + Idr[183] - go[181] * *cnV[181] - go[182] * *cnV[182] - go[183] * *cnV[183]; - m_A40 = gt[190] + gt[191] + gt[192] + gt[193] + gt[194]; - m_A41 = m_A41 + go[190]; - double RHS19 = Idr[190] + Idr[191] + Idr[192] + Idr[193] + Idr[194] - go[191] * *cnV[191] - go[192] * *cnV[192] - go[193] * *cnV[193] - go[194] * *cnV[194]; - m_A42 = gt[200] + gt[201] + gt[202] + gt[203] + gt[204] + gt[205] + gt[206]; - m_A43 = m_A43 + go[200]; - double RHS20 = Idr[200] + Idr[201] + Idr[202] + Idr[203] + Idr[204] + Idr[205] + Idr[206] - go[201] * *cnV[201] - go[202] * *cnV[202] - go[203] * *cnV[203] - go[204] * *cnV[204] - go[205] * *cnV[205] - go[206] * *cnV[206]; - m_A44 = gt[210] + gt[211] + gt[212]; - m_A45 = m_A45 + go[210]; - double RHS21 = Idr[210] + Idr[211] + Idr[212] - go[211] * *cnV[211] - go[212] * *cnV[212]; - m_A46 = gt[220] + gt[221]; - m_A48 = m_A48 + go[220]; - m_A47 = m_A47 + go[221]; - double RHS22 = Idr[220] + Idr[221]; - m_A49 = gt[230] + gt[231] + gt[232]; - m_A51 = m_A51 + go[230]; - m_A50 = m_A50 + go[231]; - double RHS23 = Idr[230] + Idr[231] + Idr[232] - go[232] * *cnV[232]; - m_A52 = gt[240] + gt[241] + gt[242]; - m_A53 = m_A53 + go[240]; - double RHS24 = Idr[240] + Idr[241] + Idr[242] - go[241] * *cnV[241] - go[242] * *cnV[242]; - m_A54 = gt[250] + gt[251] + gt[252] + gt[253]; - m_A55 = m_A55 + go[250]; - m_A55 = m_A55 + go[251]; - m_A56 = m_A56 + go[252]; - double RHS25 = Idr[250] + Idr[251] + Idr[252] + Idr[253] - go[253] * *cnV[253]; - m_A60 = gt[260] + gt[261] + gt[262]; - m_A59 = m_A59 + go[260]; - m_A58 = m_A58 + go[261]; - m_A57 = m_A57 + go[262]; - double RHS26 = Idr[260] + Idr[261] + Idr[262]; - m_A62 = gt[270] + gt[271]; - m_A63 = m_A63 + go[270]; - m_A64 = m_A64 + go[271]; - double RHS27 = Idr[270] + Idr[271]; - m_A65 = gt[280] + gt[281] + gt[282]; - m_A66 = m_A66 + go[280]; - double RHS28 = Idr[280] + Idr[281] + Idr[282] - go[281] * *cnV[281] - go[282] * *cnV[282]; - m_A67 = gt[290] + gt[291] + gt[292]; - m_A69 = m_A69 + go[290]; - m_A68 = m_A68 + go[291]; - double RHS29 = Idr[290] + Idr[291] + Idr[292] - go[292] * *cnV[292]; - m_A70 = gt[300] + gt[301]; - m_A72 = m_A72 + go[300]; - m_A71 = m_A71 + go[301]; - double RHS30 = Idr[300] + Idr[301]; - m_A74 = gt[310] + gt[311]; - m_A73 = m_A73 + go[310]; - double RHS31 = Idr[310] + Idr[311] - go[311] * *cnV[311]; - m_A82 = gt[320] + gt[321] + gt[322] + gt[323] + gt[324] + gt[325] + gt[326] + gt[327] + gt[328] + gt[329]; - m_A81 = m_A81 + go[320]; - m_A80 = m_A80 + go[321]; - m_A79 = m_A79 + go[322]; - m_A78 = m_A78 + go[323]; - m_A78 = m_A78 + go[324]; - m_A77 = m_A77 + go[325]; - m_A77 = m_A77 + go[326]; - m_A76 = m_A76 + go[327]; - m_A76 = m_A76 + go[328]; - m_A75 = m_A75 + go[329]; - double RHS32 = Idr[320] + Idr[321] + Idr[322] + Idr[323] + Idr[324] + Idr[325] + Idr[326] + Idr[327] + Idr[328] + Idr[329]; - m_A86 = gt[330] + gt[331] + gt[332] + gt[333] + gt[334] + gt[335] + gt[336]; - m_A85 = m_A85 + go[330]; - m_A84 = m_A84 + go[331]; - double RHS33 = Idr[330] + Idr[331] + Idr[332] + Idr[333] + Idr[334] + Idr[335] + Idr[336] - go[332] * *cnV[332] - go[333] * *cnV[333] - go[334] * *cnV[334] - go[335] * *cnV[335] - go[336] * *cnV[336]; - m_A90 = gt[340] + gt[341]; - m_A91 = m_A91 + go[340]; - m_A88 = m_A88 + go[341]; - double RHS34 = Idr[340] + Idr[341]; - m_A94 = gt[350] + gt[351] + gt[352] + gt[353] + gt[354]; - m_A92 = m_A92 + go[350]; - m_A93 = m_A93 + go[351]; - m_A93 = m_A93 + go[352]; - double RHS35 = Idr[350] + Idr[351] + Idr[352] + Idr[353] + Idr[354] - go[353] * *cnV[353] - go[354] * *cnV[354]; - m_A97 = gt[360] + gt[361]; - m_A98 = m_A98 + go[360]; - m_A96 = m_A96 + go[361]; - double RHS36 = Idr[360] + Idr[361]; - m_A100 = gt[370] + gt[371]; - m_A99 = m_A99 + go[370]; - m_A102 = m_A102 + go[371]; - double RHS37 = Idr[370] + Idr[371]; - m_A105 = gt[380] + gt[381]; - m_A107 = m_A107 + go[380]; - m_A103 = m_A103 + go[381]; - double RHS38 = Idr[380] + Idr[381]; - m_A111 = gt[390] + gt[391] + gt[392]; - m_A109 = m_A109 + go[390]; - m_A108 = m_A108 + go[391]; - double RHS39 = Idr[390] + Idr[391] + Idr[392] - go[392] * *cnV[392]; - m_A116 = gt[400] + gt[401] + gt[402]; - m_A114 = m_A114 + go[400]; - m_A113 = m_A113 + go[401]; - m_A118 = m_A118 + go[402]; - double RHS40 = Idr[400] + Idr[401] + Idr[402]; - m_A120 = gt[410] + gt[411] + gt[412] + gt[413]; - m_A121 = m_A121 + go[410]; - m_A119 = m_A119 + go[411]; - double RHS41 = Idr[410] + Idr[411] + Idr[412] + Idr[413] - go[412] * *cnV[412] - go[413] * *cnV[413]; - m_A124 = gt[420] + gt[421]; - m_A123 = m_A123 + go[420]; - m_A122 = m_A122 + go[421]; - double RHS42 = Idr[420] + Idr[421]; - m_A131 = gt[430] + gt[431] + gt[432] + gt[433] + gt[434] + gt[435]; - m_A132 = m_A132 + go[430]; - m_A132 = m_A132 + go[431]; - m_A129 = m_A129 + go[432]; - m_A128 = m_A128 + go[433]; - m_A127 = m_A127 + go[434]; - m_A126 = m_A126 + go[435]; - double RHS43 = Idr[430] + Idr[431] + Idr[432] + Idr[433] + Idr[434] + Idr[435]; - m_A141 = gt[440] + gt[441] + gt[442] + gt[443] + gt[444] + gt[445] + gt[446]; - m_A136 = m_A136 + go[440]; - m_A135 = m_A135 + go[441]; - m_A134 = m_A134 + go[442]; - m_A133 = m_A133 + go[443]; - m_A140 = m_A140 + go[444]; - m_A137 = m_A137 + go[445]; - m_A139 = m_A139 + go[446]; - double RHS44 = Idr[440] + Idr[441] + Idr[442] + Idr[443] + Idr[444] + Idr[445] + Idr[446]; - m_A143 = gt[450] + gt[451] + gt[452] + gt[453]; - m_A144 = m_A144 + go[450]; - m_A142 = m_A142 + go[451]; - double RHS45 = Idr[450] + Idr[451] + Idr[452] + Idr[453] - go[452] * *cnV[452] - go[453] * *cnV[453]; - m_A147 = gt[460] + gt[461]; - m_A145 = m_A145 + go[460]; - m_A148 = m_A148 + go[461]; - double RHS46 = Idr[460] + Idr[461]; - m_A155 = gt[470] + gt[471] + gt[472] + gt[473] + gt[474] + gt[475]; - m_A150 = m_A150 + go[470]; - m_A151 = m_A151 + go[471]; - m_A154 = m_A154 + go[472]; - m_A154 = m_A154 + go[473]; - double RHS47 = Idr[470] + Idr[471] + Idr[472] + Idr[473] + Idr[474] + Idr[475] - go[474] * *cnV[474] - go[475] * *cnV[475]; - m_A162 = gt[480] + gt[481] + gt[482] + gt[483] + gt[484]; - m_A163 = m_A163 + go[480]; - m_A159 = m_A159 + go[481]; - m_A160 = m_A160 + go[482]; - m_A158 = m_A158 + go[483]; - m_A157 = m_A157 + go[484]; - double RHS48 = Idr[480] + Idr[481] + Idr[482] + Idr[483] + Idr[484]; - m_A169 = gt[490] + gt[491] + gt[492] + gt[493]; - m_A167 = m_A167 + go[490]; - m_A164 = m_A164 + go[491]; - m_A165 = m_A165 + go[492]; - double RHS49 = Idr[490] + Idr[491] + Idr[492] + Idr[493] - go[493] * *cnV[493]; - m_A177 = gt[500] + gt[501] + gt[502] + gt[503] + gt[504]; - m_A171 = m_A171 + go[500]; - m_A172 = m_A172 + go[501]; - m_A175 = m_A175 + go[502]; - double RHS50 = Idr[500] + Idr[501] + Idr[502] + Idr[503] + Idr[504] - go[503] * *cnV[503] - go[504] * *cnV[504]; -const double f0 = 1.0 / m_A0; + 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); + double m_A154(0.0); + double m_A155(0.0); + double m_A156(0.0); + double m_A157(0.0); + double m_A158(0.0); + double m_A159(0.0); + double m_A160(0.0); + double m_A161(0.0); + double m_A162(0.0); + double m_A163(0.0); + double m_A164(0.0); + double m_A165(0.0); + double m_A166(0.0); + double m_A167(0.0); + double m_A168(0.0); + double m_A169(0.0); + double m_A170(0.0); + double m_A171(0.0); + double m_A172(0.0); + double m_A173(0.0); + double m_A174(0.0); + double m_A175(0.0); + double m_A176(0.0); + double m_A177(0.0); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A6 += go[5]; + m_A5 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + m_A7 += gt[7]; + m_A7 += gt[8]; + m_A8 += go[7]; + double RHS3 = Idr[7]; + RHS3 += Idr[8]; + RHS3 -= go[8] * *cnV[8]; + m_A9 += gt[9]; + m_A9 += gt[10]; + m_A9 += gt[11]; + m_A9 += gt[12]; + m_A9 += gt[13]; + m_A9 += gt[14]; + m_A9 += gt[15]; + m_A10 += go[9]; + double RHS4 = Idr[9]; + RHS4 += Idr[10]; + RHS4 += Idr[11]; + RHS4 += Idr[12]; + RHS4 += Idr[13]; + RHS4 += Idr[14]; + RHS4 += Idr[15]; + RHS4 -= go[10] * *cnV[10]; + RHS4 -= go[11] * *cnV[11]; + RHS4 -= go[12] * *cnV[12]; + RHS4 -= go[13] * *cnV[13]; + RHS4 -= go[14] * *cnV[14]; + RHS4 -= go[15] * *cnV[15]; + m_A11 += gt[16]; + m_A11 += gt[17]; + m_A12 += go[16]; + double RHS5 = Idr[16]; + RHS5 += Idr[17]; + RHS5 -= go[17] * *cnV[17]; + m_A13 += gt[18]; + m_A13 += gt[19]; + m_A14 += go[18]; + double RHS6 = Idr[18]; + RHS6 += Idr[19]; + RHS6 -= go[19] * *cnV[19]; + m_A15 += gt[20]; + m_A15 += gt[21]; + m_A16 += go[20]; + double RHS7 = Idr[20]; + RHS7 += Idr[21]; + RHS7 -= go[21] * *cnV[21]; + m_A17 += gt[22]; + m_A17 += gt[23]; + m_A18 += go[22]; + double RHS8 = Idr[22]; + RHS8 += Idr[23]; + RHS8 -= go[23] * *cnV[23]; + m_A19 += gt[24]; + m_A19 += gt[25]; + m_A20 += go[24]; + m_A21 += go[25]; + double RHS9 = Idr[24]; + RHS9 += Idr[25]; + m_A22 += gt[26]; + m_A22 += gt[27]; + m_A22 += gt[28]; + m_A22 += gt[29]; + m_A23 += go[26]; + m_A23 += go[27]; + double RHS10 = Idr[26]; + RHS10 += Idr[27]; + RHS10 += Idr[28]; + RHS10 += Idr[29]; + RHS10 -= go[28] * *cnV[28]; + RHS10 -= go[29] * *cnV[29]; + m_A24 += gt[30]; + m_A24 += gt[31]; + m_A24 += gt[32]; + m_A24 += gt[33]; + m_A25 += go[30]; + m_A25 += go[31]; + double RHS11 = Idr[30]; + RHS11 += Idr[31]; + RHS11 += Idr[32]; + RHS11 += Idr[33]; + RHS11 -= go[32] * *cnV[32]; + RHS11 -= go[33] * *cnV[33]; + m_A26 += gt[34]; + m_A26 += gt[35]; + m_A26 += gt[36]; + m_A26 += gt[37]; + m_A27 += go[34]; + m_A27 += go[35]; + double RHS12 = Idr[34]; + RHS12 += Idr[35]; + RHS12 += Idr[36]; + RHS12 += Idr[37]; + RHS12 -= go[36] * *cnV[36]; + RHS12 -= go[37] * *cnV[37]; + m_A28 += gt[38]; + m_A28 += gt[39]; + m_A29 += go[38]; + double RHS13 = Idr[38]; + RHS13 += Idr[39]; + RHS13 -= go[39] * *cnV[39]; + m_A30 += gt[40]; + m_A30 += gt[41]; + m_A30 += gt[42]; + m_A31 += go[40]; + double RHS14 = Idr[40]; + RHS14 += Idr[41]; + RHS14 += Idr[42]; + RHS14 -= go[41] * *cnV[41]; + RHS14 -= go[42] * *cnV[42]; + m_A32 += gt[43]; + m_A32 += gt[44]; + m_A32 += gt[45]; + m_A33 += go[43]; + double RHS15 = Idr[43]; + RHS15 += Idr[44]; + RHS15 += Idr[45]; + RHS15 -= go[44] * *cnV[44]; + RHS15 -= go[45] * *cnV[45]; + m_A34 += gt[46]; + m_A34 += gt[47]; + m_A34 += gt[48]; + m_A35 += go[46]; + double RHS16 = Idr[46]; + RHS16 += Idr[47]; + RHS16 += Idr[48]; + RHS16 -= go[47] * *cnV[47]; + RHS16 -= go[48] * *cnV[48]; + m_A36 += gt[49]; + m_A36 += gt[50]; + m_A37 += go[49]; + double RHS17 = Idr[49]; + RHS17 += Idr[50]; + RHS17 -= go[50] * *cnV[50]; + m_A38 += gt[51]; + m_A38 += gt[52]; + m_A38 += gt[53]; + m_A38 += gt[54]; + m_A39 += go[51]; + double RHS18 = Idr[51]; + RHS18 += Idr[52]; + RHS18 += Idr[53]; + RHS18 += Idr[54]; + RHS18 -= go[52] * *cnV[52]; + RHS18 -= go[53] * *cnV[53]; + RHS18 -= go[54] * *cnV[54]; + m_A40 += gt[55]; + m_A40 += gt[56]; + m_A40 += gt[57]; + m_A40 += gt[58]; + m_A40 += gt[59]; + m_A41 += go[55]; + double RHS19 = Idr[55]; + RHS19 += Idr[56]; + RHS19 += Idr[57]; + RHS19 += Idr[58]; + RHS19 += Idr[59]; + RHS19 -= go[56] * *cnV[56]; + RHS19 -= go[57] * *cnV[57]; + RHS19 -= go[58] * *cnV[58]; + RHS19 -= go[59] * *cnV[59]; + m_A42 += gt[60]; + m_A42 += gt[61]; + m_A42 += gt[62]; + m_A42 += gt[63]; + m_A42 += gt[64]; + m_A42 += gt[65]; + m_A42 += gt[66]; + m_A43 += go[60]; + double RHS20 = Idr[60]; + RHS20 += Idr[61]; + RHS20 += Idr[62]; + RHS20 += Idr[63]; + RHS20 += Idr[64]; + RHS20 += Idr[65]; + RHS20 += Idr[66]; + RHS20 -= go[61] * *cnV[61]; + RHS20 -= go[62] * *cnV[62]; + RHS20 -= go[63] * *cnV[63]; + RHS20 -= go[64] * *cnV[64]; + RHS20 -= go[65] * *cnV[65]; + RHS20 -= go[66] * *cnV[66]; + m_A44 += gt[67]; + m_A44 += gt[68]; + m_A44 += gt[69]; + m_A45 += go[67]; + double RHS21 = Idr[67]; + RHS21 += Idr[68]; + RHS21 += Idr[69]; + RHS21 -= go[68] * *cnV[68]; + RHS21 -= go[69] * *cnV[69]; + m_A46 += gt[70]; + m_A46 += gt[71]; + m_A48 += go[70]; + m_A47 += go[71]; + double RHS22 = Idr[70]; + RHS22 += Idr[71]; + m_A49 += gt[72]; + m_A49 += gt[73]; + m_A49 += gt[74]; + m_A51 += go[72]; + m_A50 += go[73]; + double RHS23 = Idr[72]; + RHS23 += Idr[73]; + RHS23 += Idr[74]; + RHS23 -= go[74] * *cnV[74]; + m_A52 += gt[75]; + m_A52 += gt[76]; + m_A52 += gt[77]; + m_A53 += go[75]; + double RHS24 = Idr[75]; + RHS24 += Idr[76]; + RHS24 += Idr[77]; + RHS24 -= go[76] * *cnV[76]; + RHS24 -= go[77] * *cnV[77]; + m_A54 += gt[78]; + m_A54 += gt[79]; + m_A54 += gt[80]; + m_A54 += gt[81]; + m_A55 += go[78]; + m_A55 += go[79]; + m_A56 += go[80]; + double RHS25 = Idr[78]; + RHS25 += Idr[79]; + RHS25 += Idr[80]; + RHS25 += Idr[81]; + RHS25 -= go[81] * *cnV[81]; + m_A60 += gt[82]; + m_A60 += gt[83]; + m_A60 += gt[84]; + m_A59 += go[82]; + m_A58 += go[83]; + m_A57 += go[84]; + double RHS26 = Idr[82]; + RHS26 += Idr[83]; + RHS26 += Idr[84]; + m_A62 += gt[85]; + m_A62 += gt[86]; + m_A63 += go[85]; + m_A64 += go[86]; + double RHS27 = Idr[85]; + RHS27 += Idr[86]; + m_A65 += gt[87]; + m_A65 += gt[88]; + m_A65 += gt[89]; + m_A66 += go[87]; + double RHS28 = Idr[87]; + RHS28 += Idr[88]; + RHS28 += Idr[89]; + RHS28 -= go[88] * *cnV[88]; + RHS28 -= go[89] * *cnV[89]; + m_A67 += gt[90]; + m_A67 += gt[91]; + m_A67 += gt[92]; + m_A69 += go[90]; + m_A68 += go[91]; + double RHS29 = Idr[90]; + RHS29 += Idr[91]; + RHS29 += Idr[92]; + RHS29 -= go[92] * *cnV[92]; + m_A70 += gt[93]; + m_A70 += gt[94]; + m_A72 += go[93]; + m_A71 += go[94]; + double RHS30 = Idr[93]; + RHS30 += Idr[94]; + m_A74 += gt[95]; + m_A74 += gt[96]; + m_A73 += go[95]; + double RHS31 = Idr[95]; + RHS31 += Idr[96]; + RHS31 -= go[96] * *cnV[96]; + m_A82 += gt[97]; + m_A82 += gt[98]; + m_A82 += gt[99]; + m_A82 += gt[100]; + m_A82 += gt[101]; + m_A82 += gt[102]; + m_A82 += gt[103]; + m_A82 += gt[104]; + m_A82 += gt[105]; + m_A82 += gt[106]; + m_A81 += go[97]; + m_A80 += go[98]; + m_A79 += go[99]; + m_A78 += go[100]; + m_A78 += go[101]; + m_A77 += go[102]; + m_A77 += go[103]; + m_A76 += go[104]; + m_A76 += go[105]; + m_A75 += go[106]; + double RHS32 = Idr[97]; + RHS32 += Idr[98]; + RHS32 += Idr[99]; + RHS32 += Idr[100]; + RHS32 += Idr[101]; + RHS32 += Idr[102]; + RHS32 += Idr[103]; + RHS32 += Idr[104]; + RHS32 += Idr[105]; + RHS32 += Idr[106]; + m_A86 += gt[107]; + m_A86 += gt[108]; + m_A86 += gt[109]; + m_A86 += gt[110]; + m_A86 += gt[111]; + m_A86 += gt[112]; + m_A86 += gt[113]; + m_A85 += go[107]; + m_A84 += go[108]; + double RHS33 = Idr[107]; + RHS33 += Idr[108]; + RHS33 += Idr[109]; + RHS33 += Idr[110]; + RHS33 += Idr[111]; + RHS33 += Idr[112]; + RHS33 += Idr[113]; + RHS33 -= go[109] * *cnV[109]; + RHS33 -= go[110] * *cnV[110]; + RHS33 -= go[111] * *cnV[111]; + RHS33 -= go[112] * *cnV[112]; + RHS33 -= go[113] * *cnV[113]; + m_A90 += gt[114]; + m_A90 += gt[115]; + m_A91 += go[114]; + m_A88 += go[115]; + double RHS34 = Idr[114]; + RHS34 += Idr[115]; + m_A94 += gt[116]; + m_A94 += gt[117]; + m_A94 += gt[118]; + m_A94 += gt[119]; + m_A94 += gt[120]; + m_A92 += go[116]; + m_A93 += go[117]; + m_A93 += go[118]; + double RHS35 = Idr[116]; + RHS35 += Idr[117]; + RHS35 += Idr[118]; + RHS35 += Idr[119]; + RHS35 += Idr[120]; + RHS35 -= go[119] * *cnV[119]; + RHS35 -= go[120] * *cnV[120]; + m_A97 += gt[121]; + m_A97 += gt[122]; + m_A98 += go[121]; + m_A96 += go[122]; + double RHS36 = Idr[121]; + RHS36 += Idr[122]; + m_A100 += gt[123]; + m_A100 += gt[124]; + m_A99 += go[123]; + m_A102 += go[124]; + double RHS37 = Idr[123]; + RHS37 += Idr[124]; + m_A105 += gt[125]; + m_A105 += gt[126]; + m_A107 += go[125]; + m_A103 += go[126]; + double RHS38 = Idr[125]; + RHS38 += Idr[126]; + m_A111 += gt[127]; + m_A111 += gt[128]; + m_A111 += gt[129]; + m_A109 += go[127]; + m_A108 += go[128]; + double RHS39 = Idr[127]; + RHS39 += Idr[128]; + RHS39 += Idr[129]; + RHS39 -= go[129] * *cnV[129]; + m_A116 += gt[130]; + m_A116 += gt[131]; + m_A116 += gt[132]; + m_A114 += go[130]; + m_A113 += go[131]; + m_A118 += go[132]; + double RHS40 = Idr[130]; + RHS40 += Idr[131]; + RHS40 += Idr[132]; + m_A120 += gt[133]; + m_A120 += gt[134]; + m_A120 += gt[135]; + m_A120 += gt[136]; + m_A121 += go[133]; + m_A119 += go[134]; + double RHS41 = Idr[133]; + RHS41 += Idr[134]; + RHS41 += Idr[135]; + RHS41 += Idr[136]; + RHS41 -= go[135] * *cnV[135]; + RHS41 -= go[136] * *cnV[136]; + m_A124 += gt[137]; + m_A124 += gt[138]; + m_A123 += go[137]; + m_A122 += go[138]; + double RHS42 = Idr[137]; + RHS42 += Idr[138]; + m_A131 += gt[139]; + m_A131 += gt[140]; + m_A131 += gt[141]; + m_A131 += gt[142]; + m_A131 += gt[143]; + m_A131 += gt[144]; + m_A132 += go[139]; + m_A132 += go[140]; + m_A129 += go[141]; + m_A128 += go[142]; + m_A127 += go[143]; + m_A126 += go[144]; + double RHS43 = Idr[139]; + RHS43 += Idr[140]; + RHS43 += Idr[141]; + RHS43 += Idr[142]; + RHS43 += Idr[143]; + RHS43 += Idr[144]; + m_A141 += gt[145]; + m_A141 += gt[146]; + m_A141 += gt[147]; + m_A141 += gt[148]; + m_A141 += gt[149]; + m_A141 += gt[150]; + m_A141 += gt[151]; + m_A136 += go[145]; + m_A135 += go[146]; + m_A134 += go[147]; + m_A133 += go[148]; + m_A140 += go[149]; + m_A137 += go[150]; + m_A139 += go[151]; + double RHS44 = Idr[145]; + RHS44 += Idr[146]; + RHS44 += Idr[147]; + RHS44 += Idr[148]; + RHS44 += Idr[149]; + RHS44 += Idr[150]; + RHS44 += Idr[151]; + m_A143 += gt[152]; + m_A143 += gt[153]; + m_A143 += gt[154]; + m_A143 += gt[155]; + m_A144 += go[152]; + m_A142 += go[153]; + double RHS45 = Idr[152]; + RHS45 += Idr[153]; + RHS45 += Idr[154]; + RHS45 += Idr[155]; + RHS45 -= go[154] * *cnV[154]; + RHS45 -= go[155] * *cnV[155]; + m_A147 += gt[156]; + m_A147 += gt[157]; + m_A145 += go[156]; + m_A148 += go[157]; + double RHS46 = Idr[156]; + RHS46 += Idr[157]; + m_A155 += gt[158]; + m_A155 += gt[159]; + m_A155 += gt[160]; + m_A155 += gt[161]; + m_A155 += gt[162]; + m_A155 += gt[163]; + m_A150 += go[158]; + m_A151 += go[159]; + m_A154 += go[160]; + m_A154 += go[161]; + double RHS47 = Idr[158]; + RHS47 += Idr[159]; + RHS47 += Idr[160]; + RHS47 += Idr[161]; + RHS47 += Idr[162]; + RHS47 += Idr[163]; + RHS47 -= go[162] * *cnV[162]; + RHS47 -= go[163] * *cnV[163]; + m_A162 += gt[164]; + m_A162 += gt[165]; + m_A162 += gt[166]; + m_A162 += gt[167]; + m_A162 += gt[168]; + m_A163 += go[164]; + m_A159 += go[165]; + m_A160 += go[166]; + m_A158 += go[167]; + m_A157 += go[168]; + double RHS48 = Idr[164]; + RHS48 += Idr[165]; + RHS48 += Idr[166]; + RHS48 += Idr[167]; + RHS48 += Idr[168]; + m_A169 += gt[169]; + m_A169 += gt[170]; + m_A169 += gt[171]; + m_A169 += gt[172]; + m_A167 += go[169]; + m_A164 += go[170]; + m_A165 += go[171]; + double RHS49 = Idr[169]; + RHS49 += Idr[170]; + RHS49 += Idr[171]; + RHS49 += Idr[172]; + RHS49 -= go[172] * *cnV[172]; + m_A177 += gt[173]; + m_A177 += gt[174]; + m_A177 += gt[175]; + m_A177 += gt[176]; + m_A177 += gt[177]; + m_A171 += go[173]; + m_A172 += go[174]; + m_A175 += go[175]; + double RHS50 = Idr[173]; + RHS50 += Idr[174]; + RHS50 += Idr[175]; + RHS50 += Idr[176]; + RHS50 += Idr[177]; + RHS50 -= go[176] * *cnV[176]; + RHS50 -= go[177] * *cnV[177]; + const double f0 = 1.0 / m_A0; const double f0_26 = -f0 * m_A57; m_A60 += m_A1 * f0_26; RHS26 += f0_26 * RHS0; -const double f1 = 1.0 / m_A2; + const double f1 = 1.0 / m_A2; const double f1_26 = -f1 * m_A58; m_A60 += m_A3 * f1_26; RHS26 += f1_26 * RHS1; -const double f2 = 1.0 / m_A4; + const double f2 = 1.0 / m_A4; const double f2_26 = -f2 * m_A59; m_A60 += m_A5 * f2_26; m_A61 += m_A6 * f2_26; @@ -11464,34 +15918,34 @@ const double f2 = 1.0 / m_A4; m_A89 += m_A5 * f2_34; m_A90 += m_A6 * f2_34; RHS34 += f2_34 * RHS2; -const double f3 = 1.0 / m_A7; + const double f3 = 1.0 / m_A7; const double f3_36 = -f3 * m_A96; m_A97 += m_A8 * f3_36; RHS36 += f3_36 * RHS3; const double f3_48 = -f3 * m_A157; m_A160 += m_A8 * f3_48; RHS48 += f3_48 * RHS3; -const double f4 = 1.0 / m_A9; + const double f4 = 1.0 / m_A9; const double f4_50 = -f4 * m_A171; m_A173 += m_A10 * f4_50; RHS50 += f4_50 * RHS4; -const double f5 = 1.0 / m_A11; + const double f5 = 1.0 / m_A11; const double f5_44 = -f5 * m_A133; m_A141 += m_A12 * f5_44; RHS44 += f5_44 * RHS5; -const double f6 = 1.0 / m_A13; + const double f6 = 1.0 / m_A13; const double f6_44 = -f6 * m_A134; m_A141 += m_A14 * f6_44; RHS44 += f6_44 * RHS6; -const double f7 = 1.0 / m_A15; + const double f7 = 1.0 / m_A15; const double f7_44 = -f7 * m_A135; m_A141 += m_A16 * f7_44; RHS44 += f7_44 * RHS7; -const double f8 = 1.0 / m_A17; + const double f8 = 1.0 / m_A17; const double f8_44 = -f8 * m_A136; m_A141 += m_A18 * f8_44; RHS44 += f8_44 * RHS8; -const double f9 = 1.0 / m_A19; + const double f9 = 1.0 / m_A19; const double f9_32 = -f9 * m_A75; m_A82 += m_A20 * f9_32; m_A83 += m_A21 * f9_32; @@ -11500,61 +15954,61 @@ const double f9 = 1.0 / m_A19; m_A138 += m_A20 * f9_44; m_A141 += m_A21 * f9_44; RHS44 += f9_44 * RHS9; -const double f10 = 1.0 / m_A22; + const double f10 = 1.0 / m_A22; const double f10_32 = -f10 * m_A76; m_A82 += m_A23 * f10_32; RHS32 += f10_32 * RHS10; -const double f11 = 1.0 / m_A24; + const double f11 = 1.0 / m_A24; const double f11_32 = -f11 * m_A77; m_A82 += m_A25 * f11_32; RHS32 += f11_32 * RHS11; -const double f12 = 1.0 / m_A26; + const double f12 = 1.0 / m_A26; const double f12_32 = -f12 * m_A78; m_A82 += m_A27 * f12_32; RHS32 += f12_32 * RHS12; -const double f13 = 1.0 / m_A28; + const double f13 = 1.0 / m_A28; const double f13_31 = -f13 * m_A73; m_A74 += m_A29 * f13_31; RHS31 += f13_31 * RHS13; const double f13_43 = -f13 * m_A126; m_A129 += m_A29 * f13_43; RHS43 += f13_43 * RHS13; -const double f14 = 1.0 / m_A30; + const double f14 = 1.0 / m_A30; const double f14_32 = -f14 * m_A79; m_A82 += m_A31 * f14_32; RHS32 += f14_32 * RHS14; -const double f15 = 1.0 / m_A32; + const double f15 = 1.0 / m_A32; const double f15_35 = -f15 * m_A92; m_A94 += m_A33 * f15_35; RHS35 += f15_35 * RHS15; -const double f16 = 1.0 / m_A34; + const double f16 = 1.0 / m_A34; const double f16_32 = -f16 * m_A80; m_A82 += m_A35 * f16_32; RHS32 += f16_32 * RHS16; -const double f17 = 1.0 / m_A36; + const double f17 = 1.0 / m_A36; const double f17_32 = -f17 * m_A81; m_A82 += m_A37 * f17_32; RHS32 += f17_32 * RHS17; -const double f18 = 1.0 / m_A38; + const double f18 = 1.0 / m_A38; const double f18_42 = -f18 * m_A122; m_A124 += m_A39 * f18_42; RHS42 += f18_42 * RHS18; -const double f19 = 1.0 / m_A40; + const double f19 = 1.0 / m_A40; const double f19_33 = -f19 * m_A84; m_A86 += m_A41 * f19_33; RHS33 += f19_33 * RHS19; -const double f20 = 1.0 / m_A42; + const double f20 = 1.0 / m_A42; const double f20_47 = -f20 * m_A150; m_A153 += m_A43 * f20_47; RHS47 += f20_47 * RHS20; -const double f21 = 1.0 / m_A44; + const double f21 = 1.0 / m_A44; const double f21_45 = -f21 * m_A142; m_A144 += m_A45 * f21_45; RHS45 += f21_45 * RHS21; const double f21_48 = -f21 * m_A158; m_A162 += m_A45 * f21_48; RHS48 += f21_48 * RHS21; -const double f22 = 1.0 / m_A46; + const double f22 = 1.0 / m_A46; const double f22_33 = -f22 * m_A85; m_A86 += m_A47 * f22_33; m_A87 += m_A48 * f22_33; @@ -11563,7 +16017,7 @@ const double f22 = 1.0 / m_A46; m_A110 += m_A47 * f22_39; m_A111 += m_A48 * f22_39; RHS39 += f22_39 * RHS22; -const double f23 = 1.0 / m_A49; + const double f23 = 1.0 / m_A49; const double f23_37 = -f23 * m_A99; m_A100 += m_A50 * f23_37; m_A101 += m_A51 * f23_37; @@ -11572,11 +16026,11 @@ const double f23 = 1.0 / m_A49; m_A104 += m_A50 * f23_38; m_A105 += m_A51 * f23_38; RHS38 += f23_38 * RHS23; -const double f24 = 1.0 / m_A52; + const double f24 = 1.0 / m_A52; const double f24_48 = -f24 * m_A159; m_A162 += m_A53 * f24_48; RHS48 += f24_48 * RHS24; -const double f25 = 1.0 / m_A54; + const double f25 = 1.0 / m_A54; const double f25_35 = -f25 * m_A93; m_A94 += m_A55 * f25_35; m_A95 += m_A56 * f25_35; @@ -11585,11 +16039,11 @@ const double f25 = 1.0 / m_A54; m_A115 += m_A55 * f25_40; m_A116 += m_A56 * f25_40; RHS40 += f25_40 * RHS25; -const double f26 = 1.0 / m_A60; + const double f26 = 1.0 / m_A60; const double f26_34 = -f26 * m_A89; m_A90 += m_A61 * f26_34; RHS34 += f26_34 * RHS26; -const double f27 = 1.0 / m_A62; + const double f27 = 1.0 / m_A62; const double f27_39 = -f27 * m_A109; m_A111 += m_A63 * f27_39; m_A112 += m_A64 * f27_39; @@ -11598,14 +16052,14 @@ const double f27 = 1.0 / m_A62; m_A166 += m_A63 * f27_49; m_A169 += m_A64 * f27_49; RHS49 += f27_49 * RHS27; -const double f28 = 1.0 / m_A65; + const double f28 = 1.0 / m_A65; const double f28_41 = -f28 * m_A119; m_A121 += m_A66 * f28_41; RHS41 += f28_41 * RHS28; const double f28_43 = -f28 * m_A127; m_A131 += m_A66 * f28_43; RHS43 += f28_43 * RHS28; -const double f29 = 1.0 / m_A67; + const double f29 = 1.0 / m_A67; const double f29_40 = -f29 * m_A114; m_A116 += m_A68 * f29_40; m_A117 += m_A69 * f29_40; @@ -11614,7 +16068,7 @@ const double f29 = 1.0 / m_A67; m_A146 += m_A68 * f29_46; m_A147 += m_A69 * f29_46; RHS46 += f29_46 * RHS29; -const double f30 = 1.0 / m_A70; + const double f30 = 1.0 / m_A70; const double f30_42 = -f30 * m_A123; m_A124 += m_A71 * f30_42; m_A125 += m_A72 * f30_42; @@ -11623,33 +16077,33 @@ const double f30 = 1.0 / m_A70; m_A130 += m_A71 * f30_43; m_A131 += m_A72 * f30_43; RHS43 += f30_43 * RHS30; -const double f31 = 1.0 / m_A74; + const double f31 = 1.0 / m_A74; const double f31_43 = -f31 * m_A129; RHS43 += f31_43 * RHS31; -const double f32 = 1.0 / m_A82; + const double f32 = 1.0 / m_A82; const double f32_44 = -f32 * m_A138; m_A141 += m_A83 * f32_44; RHS44 += f32_44 * RHS32; -const double f33 = 1.0 / m_A86; + const double f33 = 1.0 / m_A86; const double f33_39 = -f33 * m_A110; m_A111 += m_A87 * f33_39; RHS39 += f33_39 * RHS33; -const double f34 = 1.0 / m_A90; + const double f34 = 1.0 / m_A90; const double f34_44 = -f34 * m_A139; m_A141 += m_A91 * f34_44; RHS44 += f34_44 * RHS34; -const double f35 = 1.0 / m_A94; + const double f35 = 1.0 / m_A94; const double f35_40 = -f35 * m_A115; m_A116 += m_A95 * f35_40; RHS40 += f35_40 * RHS35; -const double f36 = 1.0 / m_A97; + const double f36 = 1.0 / m_A97; const double f36_44 = -f36 * m_A140; m_A141 += m_A98 * f36_44; RHS44 += f36_44 * RHS36; const double f36_48 = -f36 * m_A160; m_A161 += m_A98 * f36_48; RHS48 += f36_48 * RHS36; -const double f37 = 1.0 / m_A100; + const double f37 = 1.0 / m_A100; const double f37_38 = -f37 * m_A104; m_A105 += m_A101 * f37_38; m_A106 += m_A102 * f37_38; @@ -11658,7 +16112,7 @@ const double f37 = 1.0 / m_A100; m_A152 += m_A101 * f37_47; m_A155 += m_A102 * f37_47; RHS47 += f37_47 * RHS37; -const double f38 = 1.0 / m_A105; + const double f38 = 1.0 / m_A105; const double f38_47 = -f38 * m_A152; m_A155 += m_A106 * f38_47; m_A156 += m_A107 * f38_47; @@ -11667,11 +16121,11 @@ const double f38 = 1.0 / m_A105; m_A168 += m_A106 * f38_49; m_A169 += m_A107 * f38_49; RHS49 += f38_49 * RHS38; -const double f39 = 1.0 / m_A111; + const double f39 = 1.0 / m_A111; const double f39_49 = -f39 * m_A166; m_A169 += m_A112 * f39_49; RHS49 += f39_49 * RHS39; -const double f40 = 1.0 / m_A116; + const double f40 = 1.0 / m_A116; const double f40_46 = -f40 * m_A146; m_A147 += m_A117 * f40_46; m_A149 += m_A118 * f40_46; @@ -11680,26 +16134,26 @@ const double f40 = 1.0 / m_A116; m_A174 += m_A117 * f40_50; m_A177 += m_A118 * f40_50; RHS50 += f40_50 * RHS40; -const double f41 = 1.0 / m_A120; + const double f41 = 1.0 / m_A120; const double f41_47 = -f41 * m_A153; m_A154 += m_A121 * f41_47; RHS47 += f41_47 * RHS41; -const double f42 = 1.0 / m_A124; + const double f42 = 1.0 / m_A124; const double f42_43 = -f42 * m_A130; m_A131 += m_A125 * f42_43; RHS43 += f42_43 * RHS42; -const double f43 = 1.0 / m_A131; + const double f43 = 1.0 / m_A131; const double f43_47 = -f43 * m_A154; m_A155 += m_A132 * f43_47; RHS47 += f43_47 * RHS43; -const double f44 = 1.0 / m_A141; + const double f44 = 1.0 / m_A141; const double f44_48 = -f44 * m_A161; RHS48 += f44_48 * RHS44; -const double f45 = 1.0 / m_A143; + const double f45 = 1.0 / m_A143; const double f45_50 = -f45 * m_A173; m_A175 += m_A144 * f45_50; RHS50 += f45_50 * RHS45; -const double f46 = 1.0 / m_A147; + const double f46 = 1.0 / m_A147; const double f46_49 = -f46 * m_A167; m_A169 += m_A148 * f46_49; m_A170 += m_A149 * f46_49; @@ -11708,15 +16162,15 @@ const double f46 = 1.0 / m_A147; m_A176 += m_A148 * f46_50; m_A177 += m_A149 * f46_50; RHS50 += f46_50 * RHS46; -const double f47 = 1.0 / m_A155; + const double f47 = 1.0 / m_A155; const double f47_49 = -f47 * m_A168; m_A169 += m_A156 * f47_49; RHS49 += f47_49 * RHS47; -const double f48 = 1.0 / m_A162; + const double f48 = 1.0 / m_A162; const double f48_50 = -f48 * m_A175; m_A177 += m_A163 * f48_50; RHS50 += f48_50 * RHS48; -const double f49 = 1.0 / m_A169; + const double f49 = 1.0 / m_A169; const double f49_50 = -f49 * m_A176; m_A177 += m_A170 * f49_50; RHS50 += f49_50 * RHS49; @@ -11883,976 +16337,1608 @@ const double f49 = 1.0 / m_A169; V[0] = (RHS0 - tmp0) / m_A0; } -// cheekyms -static void nl_gcr_e67e623b6c100b4e_12_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// konami2x +static void nl_gcr_e4c54910436826d1_85_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A2 = m_A2 + go[0]; - m_A1 = m_A1 + go[1]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[2] * *cnV[2]; - m_A3 = gt[6] + gt[7]; - m_A4 = m_A4 + go[6]; - double RHS1 = Idr[6] + Idr[7] - go[7] * *cnV[7]; - m_A6 = gt[12] + gt[13]; - m_A7 = m_A7 + go[12]; - m_A5 = m_A5 + go[13]; - double RHS2 = Idr[12] + Idr[13]; - m_A11 = gt[18] + gt[19] + gt[20] + gt[21] + gt[22] + gt[23]; - m_A9 = m_A9 + go[18]; - m_A10 = m_A10 + go[19]; - m_A8 = m_A8 + go[20]; - double RHS3 = Idr[18] + Idr[19] + Idr[20] + Idr[21] + Idr[22] + Idr[23] - go[21] * *cnV[21] - go[22] * *cnV[22] - go[23] * *cnV[23]; -const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A5; - m_A6 += m_A1 * f0_2; - m_A7 += m_A2 * f0_2; - RHS2 += f0_2 * RHS0; - const double f0_3 = -f0 * m_A8; - m_A10 += m_A1 * f0_3; - m_A11 += m_A2 * f0_3; - RHS3 += f0_3 * RHS0; -const double f1 = 1.0 / m_A3; - const double f1_3 = -f1 * m_A9; - m_A11 += m_A4 * f1_3; - RHS3 += f1_3 * RHS1; -const double f2 = 1.0 / m_A6; - const double f2_3 = -f2 * m_A10; - m_A11 += m_A7 * f2_3; - RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A11; + 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); + 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]; + double RHS4 = Idr[8]; + RHS4 += Idr[9]; + RHS4 -= go[9] * *cnV[9]; + m_A10 += gt[10]; + m_A10 += gt[11]; + m_A11 += go[10]; + double RHS5 = Idr[10]; + RHS5 += Idr[11]; + RHS5 -= go[11] * *cnV[11]; + m_A12 += gt[12]; + m_A12 += gt[13]; + m_A13 += go[12]; + double RHS6 = Idr[12]; + RHS6 += Idr[13]; + RHS6 -= go[13] * *cnV[13]; + m_A14 += gt[14]; + m_A14 += gt[15]; + m_A15 += go[14]; + double RHS7 = Idr[14]; + RHS7 += Idr[15]; + RHS7 -= go[15] * *cnV[15]; + m_A16 += gt[16]; + m_A16 += gt[17]; + m_A17 += go[16]; + double RHS8 = Idr[16]; + RHS8 += Idr[17]; + RHS8 -= go[17] * *cnV[17]; + m_A18 += gt[18]; + m_A18 += gt[19]; + m_A19 += go[18]; + double RHS9 = Idr[18]; + RHS9 += Idr[19]; + RHS9 -= go[19] * *cnV[19]; + m_A20 += gt[20]; + m_A20 += gt[21]; + m_A21 += go[20]; + double RHS10 = Idr[20]; + RHS10 += Idr[21]; + RHS10 -= go[21] * *cnV[21]; + m_A22 += gt[22]; + m_A22 += gt[23]; + m_A23 += go[22]; + double RHS11 = Idr[22]; + RHS11 += Idr[23]; + RHS11 -= go[23] * *cnV[23]; + m_A24 += gt[24]; + m_A24 += gt[25]; + m_A25 += go[24]; + double RHS12 = Idr[24]; + RHS12 += Idr[25]; + RHS12 -= go[25] * *cnV[25]; + m_A26 += gt[26]; + m_A26 += gt[27]; + m_A26 += gt[28]; + m_A26 += gt[29]; + m_A26 += gt[30]; + m_A26 += gt[31]; + m_A26 += gt[32]; + m_A27 += go[26]; + double RHS13 = Idr[26]; + RHS13 += Idr[27]; + RHS13 += Idr[28]; + RHS13 += Idr[29]; + RHS13 += Idr[30]; + RHS13 += Idr[31]; + RHS13 += Idr[32]; + RHS13 -= go[27] * *cnV[27]; + RHS13 -= go[28] * *cnV[28]; + RHS13 -= go[29] * *cnV[29]; + RHS13 -= go[30] * *cnV[30]; + RHS13 -= go[31] * *cnV[31]; + RHS13 -= go[32] * *cnV[32]; + m_A28 += gt[33]; + m_A28 += gt[34]; + m_A29 += go[33]; + double RHS14 = Idr[33]; + RHS14 += Idr[34]; + RHS14 -= go[34] * *cnV[34]; + m_A30 += gt[35]; + m_A30 += gt[36]; + m_A31 += go[35]; + double RHS15 = Idr[35]; + RHS15 += Idr[36]; + RHS15 -= go[36] * *cnV[36]; + m_A35 += gt[37]; + m_A35 += gt[38]; + m_A35 += gt[39]; + m_A35 += gt[40]; + m_A36 += go[37]; + m_A34 += go[38]; + m_A33 += go[39]; + m_A32 += go[40]; + double RHS16 = Idr[37]; + RHS16 += Idr[38]; + RHS16 += Idr[39]; + RHS16 += Idr[40]; + m_A37 += gt[41]; + m_A37 += gt[42]; + m_A38 += go[41]; + double RHS17 = Idr[41]; + RHS17 += Idr[42]; + RHS17 -= go[42] * *cnV[42]; + m_A39 += gt[43]; + m_A39 += gt[44]; + m_A40 += go[43]; + double RHS18 = Idr[43]; + RHS18 += Idr[44]; + RHS18 -= go[44] * *cnV[44]; + m_A41 += gt[45]; + m_A41 += gt[46]; + m_A42 += go[45]; + double RHS19 = Idr[45]; + RHS19 += Idr[46]; + RHS19 -= go[46] * *cnV[46]; + m_A43 += gt[47]; + m_A43 += gt[48]; + m_A44 += go[47]; + double RHS20 = Idr[47]; + RHS20 += Idr[48]; + RHS20 -= go[48] * *cnV[48]; + m_A46 += gt[49]; + m_A46 += gt[50]; + m_A46 += gt[51]; + m_A45 += go[49]; + m_A47 += go[50]; + double RHS21 = Idr[49]; + RHS21 += Idr[50]; + RHS21 += Idr[51]; + RHS21 -= go[51] * *cnV[51]; + m_A51 += gt[52]; + m_A51 += gt[53]; + m_A51 += gt[54]; + m_A51 += gt[55]; + m_A52 += go[52]; + m_A50 += go[53]; + m_A49 += go[54]; + m_A48 += go[55]; + double RHS22 = Idr[52]; + RHS22 += Idr[53]; + RHS22 += Idr[54]; + RHS22 += Idr[55]; + m_A56 += gt[56]; + m_A56 += gt[57]; + m_A56 += gt[58]; + m_A56 += gt[59]; + m_A57 += go[56]; + m_A55 += go[57]; + m_A54 += go[58]; + m_A53 += go[59]; + double RHS23 = Idr[56]; + RHS23 += Idr[57]; + RHS23 += Idr[58]; + RHS23 += Idr[59]; + m_A61 += gt[60]; + m_A61 += gt[61]; + m_A61 += gt[62]; + m_A61 += gt[63]; + m_A62 += go[60]; + m_A60 += go[61]; + m_A59 += go[62]; + m_A58 += go[63]; + double RHS24 = Idr[60]; + RHS24 += Idr[61]; + RHS24 += Idr[62]; + RHS24 += Idr[63]; + m_A66 += gt[64]; + m_A66 += gt[65]; + m_A66 += gt[66]; + m_A66 += gt[67]; + m_A67 += go[64]; + m_A65 += go[65]; + m_A64 += go[66]; + m_A63 += go[67]; + double RHS25 = Idr[64]; + RHS25 += Idr[65]; + RHS25 += Idr[66]; + RHS25 += Idr[67]; + m_A71 += gt[68]; + m_A71 += gt[69]; + m_A71 += gt[70]; + m_A71 += gt[71]; + m_A72 += go[68]; + m_A70 += go[69]; + m_A69 += go[70]; + m_A68 += go[71]; + double RHS26 = Idr[68]; + RHS26 += Idr[69]; + RHS26 += Idr[70]; + RHS26 += Idr[71]; + m_A75 += gt[72]; + m_A75 += gt[73]; + m_A75 += gt[74]; + m_A75 += gt[75]; + m_A75 += gt[76]; + m_A73 += go[72]; + m_A74 += go[73]; + m_A76 += go[74]; + double RHS27 = Idr[72]; + RHS27 += Idr[73]; + RHS27 += Idr[74]; + RHS27 += Idr[75]; + RHS27 += Idr[76]; + RHS27 -= go[75] * *cnV[75]; + RHS27 -= go[76] * *cnV[76]; + m_A84 += gt[77]; + m_A84 += gt[78]; + m_A84 += gt[79]; + m_A84 += gt[80]; + m_A84 += gt[81]; + m_A84 += gt[82]; + m_A84 += gt[83]; + m_A84 += gt[84]; + m_A83 += go[77]; + m_A80 += go[78]; + m_A82 += go[79]; + m_A81 += go[80]; + m_A79 += go[81]; + m_A78 += go[82]; + m_A77 += go[83]; + double RHS28 = Idr[77]; + RHS28 += Idr[78]; + RHS28 += Idr[79]; + RHS28 += Idr[80]; + RHS28 += Idr[81]; + RHS28 += Idr[82]; + RHS28 += Idr[83]; + RHS28 += Idr[84]; + RHS28 -= go[84] * *cnV[84]; + const double f0 = 1.0 / m_A0; + const double f0_16 = -f0 * m_A32; + m_A35 += m_A1 * f0_16; + RHS16 += f0_16 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_16 = -f1 * m_A33; + m_A35 += m_A3 * f1_16; + RHS16 += f1_16 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_16 = -f2 * m_A34; + m_A35 += m_A5 * f2_16; + RHS16 += f2_16 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_22 = -f3 * m_A48; + m_A51 += m_A7 * f3_22; + RHS22 += f3_22 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_22 = -f4 * m_A49; + m_A51 += m_A9 * f4_22; + RHS22 += f4_22 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_22 = -f5 * m_A50; + m_A51 += m_A11 * f5_22; + RHS22 += f5_22 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_23 = -f6 * m_A53; + m_A56 += m_A13 * f6_23; + RHS23 += f6_23 * RHS6; + const double f7 = 1.0 / m_A14; + const double f7_23 = -f7 * m_A54; + m_A56 += m_A15 * f7_23; + RHS23 += f7_23 * RHS7; + const double f8 = 1.0 / m_A16; + const double f8_23 = -f8 * m_A55; + m_A56 += m_A17 * f8_23; + RHS23 += f8_23 * RHS8; + const double f9 = 1.0 / m_A18; + const double f9_25 = -f9 * m_A63; + m_A66 += m_A19 * f9_25; + RHS25 += f9_25 * RHS9; + const double f10 = 1.0 / m_A20; + const double f10_26 = -f10 * m_A68; + m_A71 += m_A21 * f10_26; + RHS26 += f10_26 * RHS10; + const double f11 = 1.0 / m_A22; + const double f11_24 = -f11 * m_A58; + m_A61 += m_A23 * f11_24; + RHS24 += f11_24 * RHS11; + const double f12 = 1.0 / m_A24; + const double f12_24 = -f12 * m_A59; + m_A61 += m_A25 * f12_24; + RHS24 += f12_24 * RHS12; + const double f13 = 1.0 / m_A26; + const double f13_27 = -f13 * m_A73; + m_A76 += m_A27 * f13_27; + RHS27 += f13_27 * RHS13; + const double f14 = 1.0 / m_A28; + const double f14_24 = -f14 * m_A60; + m_A61 += m_A29 * f14_24; + RHS24 += f14_24 * RHS14; + const double f15 = 1.0 / m_A30; + const double f15_21 = -f15 * m_A45; + m_A46 += m_A31 * f15_21; + RHS21 += f15_21 * RHS15; + const double f16 = 1.0 / m_A35; + const double f16_28 = -f16 * m_A77; + m_A84 += m_A36 * f16_28; + RHS28 += f16_28 * RHS16; + const double f17 = 1.0 / m_A37; + const double f17_25 = -f17 * m_A64; + m_A66 += m_A38 * f17_25; + RHS25 += f17_25 * RHS17; + const double f18 = 1.0 / m_A39; + const double f18_25 = -f18 * m_A65; + m_A66 += m_A40 * f18_25; + RHS25 += f18_25 * RHS18; + const double f19 = 1.0 / m_A41; + const double f19_26 = -f19 * m_A69; + m_A71 += m_A42 * f19_26; + RHS26 += f19_26 * RHS19; + const double f20 = 1.0 / m_A43; + const double f20_26 = -f20 * m_A70; + m_A71 += m_A44 * f20_26; + RHS26 += f20_26 * RHS20; + const double f21 = 1.0 / m_A46; + const double f21_27 = -f21 * m_A74; + m_A75 += m_A47 * f21_27; + RHS27 += f21_27 * RHS21; + const double f22 = 1.0 / m_A51; + const double f22_28 = -f22 * m_A78; + m_A84 += m_A52 * f22_28; + RHS28 += f22_28 * RHS22; + const double f23 = 1.0 / m_A56; + const double f23_28 = -f23 * m_A79; + m_A84 += m_A57 * f23_28; + RHS28 += f23_28 * RHS23; + const double f24 = 1.0 / m_A61; + const double f24_28 = -f24 * m_A80; + m_A84 += m_A62 * f24_28; + RHS28 += f24_28 * RHS24; + const double f25 = 1.0 / m_A66; + const double f25_28 = -f25 * m_A81; + m_A84 += m_A67 * f25_28; + RHS28 += f25_28 * RHS25; + const double f26 = 1.0 / m_A71; + const double f26_28 = -f26 * m_A82; + m_A84 += m_A72 * f26_28; + RHS28 += f26_28 * RHS26; + const double f27 = 1.0 / m_A75; + const double f27_28 = -f27 * m_A83; + m_A84 += m_A76 * f27_28; + RHS28 += f27_28 * RHS27; + V[28] = RHS28 / m_A84; + double tmp27 = 0.0; + tmp27 += m_A76 * V[28]; + V[27] = (RHS27 - tmp27) / m_A75; + double tmp26 = 0.0; + tmp26 += m_A72 * V[28]; + V[26] = (RHS26 - tmp26) / m_A71; + double tmp25 = 0.0; + tmp25 += m_A67 * V[28]; + V[25] = (RHS25 - tmp25) / m_A66; + double tmp24 = 0.0; + tmp24 += m_A62 * V[28]; + V[24] = (RHS24 - tmp24) / m_A61; + double tmp23 = 0.0; + tmp23 += m_A57 * V[28]; + V[23] = (RHS23 - tmp23) / m_A56; + double tmp22 = 0.0; + tmp22 += m_A52 * V[28]; + V[22] = (RHS22 - tmp22) / m_A51; + double tmp21 = 0.0; + tmp21 += m_A47 * V[27]; + V[21] = (RHS21 - tmp21) / m_A46; + double tmp20 = 0.0; + tmp20 += m_A44 * V[26]; + V[20] = (RHS20 - tmp20) / m_A43; + double tmp19 = 0.0; + tmp19 += m_A42 * V[26]; + V[19] = (RHS19 - tmp19) / m_A41; + double tmp18 = 0.0; + tmp18 += m_A40 * V[25]; + V[18] = (RHS18 - tmp18) / m_A39; + double tmp17 = 0.0; + tmp17 += m_A38 * V[25]; + V[17] = (RHS17 - tmp17) / m_A37; + double tmp16 = 0.0; + tmp16 += m_A36 * V[28]; + V[16] = (RHS16 - tmp16) / m_A35; + double tmp15 = 0.0; + tmp15 += m_A31 * V[21]; + V[15] = (RHS15 - tmp15) / m_A30; + double tmp14 = 0.0; + tmp14 += m_A29 * V[24]; + V[14] = (RHS14 - tmp14) / m_A28; + double tmp13 = 0.0; + tmp13 += m_A27 * V[28]; + V[13] = (RHS13 - tmp13) / m_A26; + double tmp12 = 0.0; + tmp12 += m_A25 * V[24]; + V[12] = (RHS12 - tmp12) / m_A24; + double tmp11 = 0.0; + tmp11 += m_A23 * V[24]; + V[11] = (RHS11 - tmp11) / m_A22; + double tmp10 = 0.0; + tmp10 += m_A21 * V[26]; + V[10] = (RHS10 - tmp10) / m_A20; + double tmp9 = 0.0; + tmp9 += m_A19 * V[25]; + V[9] = (RHS9 - tmp9) / m_A18; + double tmp8 = 0.0; + tmp8 += m_A17 * V[23]; + V[8] = (RHS8 - tmp8) / m_A16; + double tmp7 = 0.0; + tmp7 += m_A15 * V[23]; + V[7] = (RHS7 - tmp7) / m_A14; + double tmp6 = 0.0; + tmp6 += m_A13 * V[23]; + V[6] = (RHS6 - tmp6) / m_A12; + double tmp5 = 0.0; + tmp5 += m_A11 * V[22]; + V[5] = (RHS5 - tmp5) / m_A10; + double tmp4 = 0.0; + tmp4 += m_A9 * V[22]; + V[4] = (RHS4 - tmp4) / m_A8; + double tmp3 = 0.0; + tmp3 += m_A7 * V[22]; + V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A7 * V[3]; - V[2] = (RHS2 - tmp2) / m_A6; + tmp2 += m_A5 * V[16]; + V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A4 * V[3]; - V[1] = (RHS1 - tmp1) / m_A3; + tmp1 += m_A3 * V[16]; + V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; - tmp0 += m_A2 * V[3]; + tmp0 += m_A1 * V[16]; V[0] = (RHS0 - tmp0) / m_A0; } -// kidniki -static void nl_gcr_e7e5566e352b80c1_67_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// 280zzzap +static void nl_gcr_eb8f99b7d033585a_57_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] - go[1] * *cnV[1]; - m_A2 = gt[8] + gt[9]; - m_A3 = m_A3 + go[8]; - double RHS1 = Idr[8] + Idr[9] - go[9] * *cnV[9]; - m_A4 = gt[16] + gt[17]; - m_A5 = m_A5 + go[16]; - double RHS2 = Idr[16] + Idr[17] - go[17] * *cnV[17]; - m_A6 = gt[24] + gt[25]; - m_A7 = m_A7 + go[24]; - double RHS3 = Idr[24] + Idr[25] - go[25] * *cnV[25]; - m_A8 = gt[32] + gt[33]; - m_A9 = m_A9 + go[32]; - double RHS4 = Idr[32] + Idr[33] - go[33] * *cnV[33]; - m_A10 = gt[40] + gt[41]; - m_A11 = m_A11 + go[40]; - double RHS5 = Idr[40] + Idr[41] - go[41] * *cnV[41]; - m_A12 = gt[48] + gt[49] + gt[50] + gt[51] + gt[52] + gt[53] + gt[54] + gt[55]; - m_A14 = m_A14 + go[48]; - m_A15 = m_A15 + go[49]; - m_A17 = m_A17 + go[50]; - m_A18 = m_A18 + go[51]; - m_A16 = m_A16 + go[52]; - m_A13 = m_A13 + go[53]; - double RHS6 = Idr[48] + Idr[49] + Idr[50] + Idr[51] + Idr[52] + Idr[53] + Idr[54] + Idr[55] - go[54] * *cnV[54] - go[55] * *cnV[55]; - m_A21 = gt[56] + gt[57] + gt[58] + gt[59]; - m_A20 = m_A20 + go[56]; - m_A19 = m_A19 + go[57]; - double RHS7 = Idr[56] + Idr[57] + Idr[58] + Idr[59] - go[58] * *cnV[58] - go[59] * *cnV[59]; - m_A30 = gt[64] + gt[65] + gt[66] + gt[67]; - m_A28 = m_A28 + go[64]; - m_A27 = m_A27 + go[65]; - double RHS8 = Idr[64] + Idr[65] + Idr[66] + Idr[67] - go[66] * *cnV[66] - go[67] * *cnV[67]; - m_A39 = gt[72] + gt[73] + gt[74] + gt[75]; - m_A36 = m_A36 + go[72]; - m_A35 = m_A35 + go[73]; - double RHS9 = Idr[72] + Idr[73] + Idr[74] + Idr[75] - go[74] * *cnV[74] - go[75] * *cnV[75]; - m_A48 = gt[80] + gt[81] + gt[82] + gt[83]; - m_A44 = m_A44 + go[80]; - m_A43 = m_A43 + go[81]; - double RHS10 = Idr[80] + Idr[81] + Idr[82] + Idr[83] - go[82] * *cnV[82] - go[83] * *cnV[83]; - m_A57 = gt[88] + gt[89] + gt[90] + gt[91]; - m_A52 = m_A52 + go[88]; - m_A51 = m_A51 + go[89]; - double RHS11 = Idr[88] + Idr[89] + Idr[90] + Idr[91] - go[90] * *cnV[90] - go[91] * *cnV[91]; - m_A66 = gt[96] + gt[97] + gt[98] + gt[99]; - m_A60 = m_A60 + go[96]; - m_A59 = m_A59 + go[97]; - double RHS12 = Idr[96] + Idr[97] + Idr[98] + Idr[99] - go[98] * *cnV[98] - go[99] * *cnV[99]; -const double f0 = 1.0 / m_A0; - const double f0_7 = -f0 * m_A19; - m_A21 += m_A1 * f0_7; - RHS7 += f0_7 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_10 = -f1 * m_A43; - m_A48 += m_A3 * f1_10; - RHS10 += f1_10 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_12 = -f2 * m_A59; - m_A66 += m_A5 * f2_12; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A4 += gt[5]; + m_A4 += gt[6]; + m_A4 += gt[7]; + m_A4 += gt[8]; + m_A4 += gt[9]; + m_A4 += gt[10]; + m_A4 += gt[11]; + m_A5 += go[5]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + RHS2 += Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 += Idr[11]; + RHS2 -= go[6] * *cnV[6]; + RHS2 -= go[7] * *cnV[7]; + RHS2 -= go[8] * *cnV[8]; + RHS2 -= go[9] * *cnV[9]; + RHS2 -= go[10] * *cnV[10]; + RHS2 -= go[11] * *cnV[11]; + m_A6 += gt[12]; + m_A6 += gt[13]; + m_A6 += gt[14]; + m_A7 += go[12]; + double RHS3 = Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 -= go[13] * *cnV[13]; + RHS3 -= go[14] * *cnV[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[15]; + double RHS4 = Idr[15]; + RHS4 += Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + RHS4 += Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[16] * *cnV[16]; + RHS4 -= go[17] * *cnV[17]; + RHS4 -= go[18] * *cnV[18]; + RHS4 -= go[19] * *cnV[19]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + m_A10 += gt[22]; + m_A10 += gt[23]; + m_A11 += go[22]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[23] * *cnV[23]; + m_A12 += gt[24]; + m_A12 += gt[25]; + m_A14 += go[24]; + m_A13 += go[25]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + m_A15 += gt[26]; + m_A15 += gt[27]; + m_A16 += go[26]; + double RHS7 = Idr[26]; + RHS7 += Idr[27]; + RHS7 -= go[27] * *cnV[27]; + m_A17 += gt[28]; + m_A17 += gt[29]; + m_A18 += go[28]; + double RHS8 = Idr[28]; + RHS8 += Idr[29]; + RHS8 -= go[29] * *cnV[29]; + m_A20 += gt[30]; + m_A20 += gt[31]; + m_A20 += gt[32]; + m_A20 += gt[33]; + m_A19 += go[30]; + double RHS9 = Idr[30]; + RHS9 += Idr[31]; + RHS9 += Idr[32]; + RHS9 += Idr[33]; + RHS9 -= go[31] * *cnV[31]; + RHS9 -= go[32] * *cnV[32]; + RHS9 -= go[33] * *cnV[33]; + m_A24 += gt[34]; + m_A24 += gt[35]; + m_A23 += go[34]; + m_A22 += go[35]; + double RHS10 = Idr[34]; + RHS10 += Idr[35]; + m_A27 += gt[36]; + m_A27 += gt[37]; + m_A27 += gt[38]; + m_A27 += gt[39]; + m_A26 += go[36]; + m_A28 += go[37]; + double RHS11 = Idr[36]; + RHS11 += Idr[37]; + RHS11 += Idr[38]; + RHS11 += Idr[39]; + RHS11 -= go[38] * *cnV[38]; + RHS11 -= go[39] * *cnV[39]; + m_A31 += gt[40]; + m_A31 += gt[41]; + m_A31 += gt[42]; + m_A31 += gt[43]; + m_A31 += gt[44]; + m_A31 += gt[45]; + m_A29 += go[40]; + m_A33 += go[41]; + m_A32 += go[42]; + double RHS12 = Idr[40]; + RHS12 += Idr[41]; + RHS12 += Idr[42]; + RHS12 += Idr[43]; + RHS12 += Idr[44]; + RHS12 += Idr[45]; + RHS12 -= go[43] * *cnV[43]; + RHS12 -= go[44] * *cnV[44]; + RHS12 -= go[45] * *cnV[45]; + m_A36 += gt[46]; + m_A36 += gt[47]; + m_A34 += go[46]; + double RHS13 = Idr[46]; + RHS13 += Idr[47]; + RHS13 -= go[47] * *cnV[47]; + m_A39 += gt[48]; + m_A39 += gt[49]; + m_A39 += gt[50]; + m_A38 += go[48]; + m_A37 += go[49]; + double RHS14 = Idr[48]; + RHS14 += Idr[49]; + RHS14 += Idr[50]; + RHS14 -= go[50] * *cnV[50]; + m_A41 += gt[51]; + m_A41 += gt[52]; + m_A41 += gt[53]; + m_A41 += gt[54]; + m_A40 += go[51]; + m_A42 += go[52]; + double RHS15 = Idr[51]; + RHS15 += Idr[52]; + RHS15 += Idr[53]; + RHS15 += Idr[54]; + RHS15 -= go[53] * *cnV[53]; + RHS15 -= go[54] * *cnV[54]; + m_A49 += gt[55]; + m_A49 += gt[56]; + m_A49 += gt[57]; + m_A49 += gt[58]; + m_A49 += gt[59]; + m_A44 += go[55]; + m_A47 += go[56]; + m_A46 += go[57]; + m_A43 += go[58]; + m_A45 += go[59]; + double RHS16 = Idr[55]; + RHS16 += Idr[56]; + RHS16 += Idr[57]; + RHS16 += Idr[58]; + RHS16 += Idr[59]; + m_A56 += gt[60]; + m_A56 += gt[61]; + m_A56 += gt[62]; + m_A56 += gt[63]; + m_A54 += go[60]; + m_A53 += go[61]; + m_A51 += go[62]; + m_A52 += go[63]; + double RHS17 = Idr[60]; + RHS17 += Idr[61]; + RHS17 += Idr[62]; + RHS17 += Idr[63]; + const double f0 = 1.0 / m_A0; + const double f0_11 = -f0 * m_A26; + m_A28 += m_A1 * f0_11; + RHS11 += f0_11 * RHS0; + const double f0_16 = -f0 * m_A43; + m_A49 += m_A1 * f0_16; + RHS16 += f0_16 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_16 = -f1 * m_A44; + m_A49 += m_A3 * f1_16; + RHS16 += f1_16 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_12 = -f2 * m_A29; + m_A30 += m_A5 * f2_12; RHS12 += f2_12 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_11 = -f3 * m_A51; - m_A57 += m_A7 * f3_11; - RHS11 += f3_11 * RHS3; -const double f4 = 1.0 / m_A8; - const double f4_9 = -f4 * m_A35; - m_A39 += m_A9 * f4_9; + const double f3 = 1.0 / m_A6; + const double f3_15 = -f3 * m_A40; + m_A42 += m_A7 * f3_15; + RHS15 += f3_15 * RHS3; + const double f3_17 = -f3 * m_A51; + m_A56 += m_A7 * f3_17; + RHS17 += f3_17 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_9 = -f4 * m_A19; + m_A21 += m_A9 * f4_9; RHS9 += f4_9 * RHS4; -const double f5 = 1.0 / m_A10; - const double f5_8 = -f5 * m_A27; - m_A30 += m_A11 * f5_8; - RHS8 += f5_8 * RHS5; -const double f6 = 1.0 / m_A12; - const double f6_7 = -f6 * m_A20; - m_A21 += m_A13 * f6_7; - m_A22 += m_A14 * f6_7; - m_A23 += m_A15 * f6_7; - m_A24 += m_A16 * f6_7; - m_A25 += m_A17 * f6_7; - m_A26 += m_A18 * f6_7; - RHS7 += f6_7 * RHS6; - const double f6_8 = -f6 * m_A28; - m_A29 += m_A13 * f6_8; - m_A30 += m_A14 * f6_8; - m_A31 += m_A15 * f6_8; - m_A32 += m_A16 * f6_8; - m_A33 += m_A17 * f6_8; - m_A34 += m_A18 * f6_8; - RHS8 += f6_8 * RHS6; - const double f6_9 = -f6 * m_A36; - m_A37 += m_A13 * f6_9; - m_A38 += m_A14 * f6_9; - m_A39 += m_A15 * f6_9; - m_A40 += m_A16 * f6_9; - m_A41 += m_A17 * f6_9; - m_A42 += m_A18 * f6_9; - RHS9 += f6_9 * RHS6; - const double f6_10 = -f6 * m_A44; - m_A45 += m_A13 * f6_10; - m_A46 += m_A14 * f6_10; - m_A47 += m_A15 * f6_10; - m_A48 += m_A16 * f6_10; - m_A49 += m_A17 * f6_10; - m_A50 += m_A18 * f6_10; + const double f5 = 1.0 / m_A10; + const double f5_10 = -f5 * m_A22; + m_A24 += m_A11 * f5_10; + RHS10 += f5_10 * RHS5; + const double f5_16 = -f5 * m_A45; + m_A46 += m_A11 * f5_16; + RHS16 += f5_16 * RHS5; + const double f6 = 1.0 / m_A12; + const double f6_10 = -f6 * m_A23; + m_A24 += m_A13 * f6_10; + m_A25 += m_A14 * f6_10; RHS10 += f6_10 * RHS6; - const double f6_11 = -f6 * m_A52; - m_A53 += m_A13 * f6_11; - m_A54 += m_A14 * f6_11; - m_A55 += m_A15 * f6_11; - m_A56 += m_A16 * f6_11; - m_A57 += m_A17 * f6_11; - m_A58 += m_A18 * f6_11; - RHS11 += f6_11 * RHS6; - const double f6_12 = -f6 * m_A60; - m_A61 += m_A13 * f6_12; - m_A62 += m_A14 * f6_12; - m_A63 += m_A15 * f6_12; - m_A64 += m_A16 * f6_12; - m_A65 += m_A17 * f6_12; - m_A66 += m_A18 * f6_12; - RHS12 += f6_12 * RHS6; -const double f7 = 1.0 / m_A21; - const double f7_8 = -f7 * m_A29; - m_A30 += m_A22 * f7_8; - m_A31 += m_A23 * f7_8; - m_A32 += m_A24 * f7_8; - m_A33 += m_A25 * f7_8; - m_A34 += m_A26 * f7_8; - RHS8 += f7_8 * RHS7; - const double f7_9 = -f7 * m_A37; - m_A38 += m_A22 * f7_9; - m_A39 += m_A23 * f7_9; - m_A40 += m_A24 * f7_9; - m_A41 += m_A25 * f7_9; - m_A42 += m_A26 * f7_9; - RHS9 += f7_9 * RHS7; - const double f7_10 = -f7 * m_A45; - m_A46 += m_A22 * f7_10; - m_A47 += m_A23 * f7_10; - m_A48 += m_A24 * f7_10; - m_A49 += m_A25 * f7_10; - m_A50 += m_A26 * f7_10; - RHS10 += f7_10 * RHS7; - const double f7_11 = -f7 * m_A53; - m_A54 += m_A22 * f7_11; - m_A55 += m_A23 * f7_11; - m_A56 += m_A24 * f7_11; - m_A57 += m_A25 * f7_11; - m_A58 += m_A26 * f7_11; - RHS11 += f7_11 * RHS7; - const double f7_12 = -f7 * m_A61; - m_A62 += m_A22 * f7_12; - m_A63 += m_A23 * f7_12; - m_A64 += m_A24 * f7_12; - m_A65 += m_A25 * f7_12; - m_A66 += m_A26 * f7_12; - RHS12 += f7_12 * RHS7; -const double f8 = 1.0 / m_A30; - const double f8_9 = -f8 * m_A38; - m_A39 += m_A31 * f8_9; - m_A40 += m_A32 * f8_9; - m_A41 += m_A33 * f8_9; - m_A42 += m_A34 * f8_9; - RHS9 += f8_9 * RHS8; - const double f8_10 = -f8 * m_A46; - m_A47 += m_A31 * f8_10; - m_A48 += m_A32 * f8_10; - m_A49 += m_A33 * f8_10; - m_A50 += m_A34 * f8_10; - RHS10 += f8_10 * RHS8; - const double f8_11 = -f8 * m_A54; - m_A55 += m_A31 * f8_11; - m_A56 += m_A32 * f8_11; - m_A57 += m_A33 * f8_11; - m_A58 += m_A34 * f8_11; - RHS11 += f8_11 * RHS8; - const double f8_12 = -f8 * m_A62; - m_A63 += m_A31 * f8_12; - m_A64 += m_A32 * f8_12; - m_A65 += m_A33 * f8_12; - m_A66 += m_A34 * f8_12; - RHS12 += f8_12 * RHS8; -const double f9 = 1.0 / m_A39; - const double f9_10 = -f9 * m_A47; - m_A48 += m_A40 * f9_10; - m_A49 += m_A41 * f9_10; - m_A50 += m_A42 * f9_10; - RHS10 += f9_10 * RHS9; - const double f9_11 = -f9 * m_A55; - m_A56 += m_A40 * f9_11; - m_A57 += m_A41 * f9_11; - m_A58 += m_A42 * f9_11; - RHS11 += f9_11 * RHS9; - const double f9_12 = -f9 * m_A63; - m_A64 += m_A40 * f9_12; - m_A65 += m_A41 * f9_12; - m_A66 += m_A42 * f9_12; - RHS12 += f9_12 * RHS9; -const double f10 = 1.0 / m_A48; - const double f10_11 = -f10 * m_A56; - m_A57 += m_A49 * f10_11; - m_A58 += m_A50 * f10_11; - RHS11 += f10_11 * RHS10; - const double f10_12 = -f10 * m_A64; - m_A65 += m_A49 * f10_12; - m_A66 += m_A50 * f10_12; - RHS12 += f10_12 * RHS10; -const double f11 = 1.0 / m_A57; - const double f11_12 = -f11 * m_A65; - m_A66 += m_A58 * f11_12; + const double f6_13 = -f6 * m_A34; + m_A35 += m_A13 * f6_13; + m_A36 += m_A14 * f6_13; + RHS13 += f6_13 * RHS6; + const double f7 = 1.0 / m_A15; + const double f7_14 = -f7 * m_A37; + m_A39 += m_A16 * f7_14; + RHS14 += f7_14 * RHS7; + const double f7_17 = -f7 * m_A52; + m_A54 += m_A16 * f7_17; + RHS17 += f7_17 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_14 = -f8 * m_A38; + m_A39 += m_A18 * f8_14; + RHS14 += f8_14 * RHS8; + const double f10 = 1.0 / m_A24; + const double f10_13 = -f10 * m_A35; + m_A36 += m_A25 * f10_13; + RHS13 += f10_13 * RHS10; + const double f10_16 = -f10 * m_A46; + m_A48 += m_A25 * f10_16; + RHS16 += f10_16 * RHS10; + const double f11 = 1.0 / m_A27; + const double f11_12 = -f11 * m_A30; + m_A32 += m_A28 * f11_12; RHS12 += f11_12 * RHS11; - V[12] = RHS12 / m_A66; + const double f12 = 1.0 / m_A31; + const double f12_16 = -f12 * m_A47; + m_A49 += m_A32 * f12_16; + m_A50 += m_A33 * f12_16; + RHS16 += f12_16 * RHS12; + const double f12_17 = -f12 * m_A53; + m_A55 += m_A32 * f12_17; + m_A56 += m_A33 * f12_17; + RHS17 += f12_17 * RHS12; + const double f13 = 1.0 / m_A36; + const double f13_16 = -f13 * m_A48; + RHS16 += f13_16 * RHS13; + const double f14 = 1.0 / m_A39; + const double f14_17 = -f14 * m_A54; + RHS17 += f14_17 * RHS14; + const double f16 = 1.0 / m_A49; + const double f16_17 = -f16 * m_A55; + m_A56 += m_A50 * f16_17; + RHS17 += f16_17 * RHS16; + V[17] = RHS17 / m_A56; + double tmp16 = 0.0; + tmp16 += m_A50 * V[17]; + V[16] = (RHS16 - tmp16) / m_A49; + double tmp15 = 0.0; + tmp15 += m_A42 * V[17]; + V[15] = (RHS15 - tmp15) / m_A41; + double tmp14 = 0.0; + V[14] = (RHS14 - tmp14) / m_A39; + double tmp13 = 0.0; + V[13] = (RHS13 - tmp13) / m_A36; + double tmp12 = 0.0; + tmp12 += m_A32 * V[16]; + tmp12 += m_A33 * V[17]; + V[12] = (RHS12 - tmp12) / m_A31; double tmp11 = 0.0; - tmp11 += m_A58 * V[12]; - V[11] = (RHS11 - tmp11) / m_A57; + tmp11 += m_A28 * V[16]; + V[11] = (RHS11 - tmp11) / m_A27; double tmp10 = 0.0; - tmp10 += m_A49 * V[11]; - tmp10 += m_A50 * V[12]; - V[10] = (RHS10 - tmp10) / m_A48; + tmp10 += m_A25 * V[13]; + V[10] = (RHS10 - tmp10) / m_A24; double tmp9 = 0.0; - tmp9 += m_A40 * V[10]; - tmp9 += m_A41 * V[11]; - tmp9 += m_A42 * V[12]; - V[9] = (RHS9 - tmp9) / m_A39; + tmp9 += m_A21 * V[15]; + V[9] = (RHS9 - tmp9) / m_A20; double tmp8 = 0.0; - tmp8 += m_A31 * V[9]; - tmp8 += m_A32 * V[10]; - tmp8 += m_A33 * V[11]; - tmp8 += m_A34 * V[12]; - V[8] = (RHS8 - tmp8) / m_A30; + tmp8 += m_A18 * V[14]; + V[8] = (RHS8 - tmp8) / m_A17; double tmp7 = 0.0; - tmp7 += m_A22 * V[8]; - tmp7 += m_A23 * V[9]; - tmp7 += m_A24 * V[10]; - tmp7 += m_A25 * V[11]; - tmp7 += m_A26 * V[12]; - V[7] = (RHS7 - tmp7) / m_A21; + tmp7 += m_A16 * V[14]; + V[7] = (RHS7 - tmp7) / m_A15; double tmp6 = 0.0; - tmp6 += m_A13 * V[7]; - tmp6 += m_A14 * V[8]; - tmp6 += m_A15 * V[9]; - tmp6 += m_A16 * V[10]; - tmp6 += m_A17 * V[11]; - tmp6 += m_A18 * V[12]; + tmp6 += m_A13 * V[10]; + tmp6 += m_A14 * V[13]; V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A11 * V[8]; + tmp5 += m_A11 * V[10]; V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[9]; + tmp4 += m_A9 * V[15]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[11]; + tmp3 += m_A7 * V[17]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[12]; + tmp2 += m_A5 * V[11]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; - tmp1 += m_A3 * V[10]; + tmp1 += m_A3 * V[16]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[7]; + tmp0 += m_A1 * V[16]; V[0] = (RHS0 - tmp0) / m_A0; } -// gamemachine -static void nl_gcr_ec17a9dbc8cd78fd_10_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// dpatrol +static void nl_gcr_ef9b40abd2bf582c_22_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[6] + gt[7] + gt[8]; - m_A3 = m_A3 + go[6]; - double RHS1 = Idr[6] + Idr[7] + Idr[8] - go[7] * *cnV[7] - go[8] * *cnV[8]; - m_A4 = gt[12] + gt[13]; - m_A5 = m_A5 + go[12]; - double RHS2 = Idr[12] + Idr[13] - go[13] * *cnV[13]; - m_A9 = gt[18] + gt[19] + gt[20] + gt[21] + gt[22]; - m_A8 = m_A8 + go[18]; - m_A7 = m_A7 + go[19]; - m_A6 = m_A6 + go[20]; - double RHS3 = Idr[18] + Idr[19] + Idr[20] + Idr[21] + Idr[22] - go[21] * *cnV[21] - go[22] * *cnV[22]; -const double f0 = 1.0 / m_A0; - const double f0_3 = -f0 * m_A6; - m_A9 += m_A1 * f0_3; - RHS3 += f0_3 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_3 = -f1 * m_A7; - m_A9 += m_A3 * f1_3; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A2 += gt[5]; + m_A2 += gt[6]; + m_A4 += go[3]; + m_A3 += go[4]; + m_A3 += go[5]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 += Idr[5]; + RHS1 += Idr[6]; + RHS1 -= go[6] * *cnV[6]; + m_A5 += gt[7]; + m_A5 += gt[8]; + m_A5 += gt[9]; + m_A5 += gt[10]; + m_A7 += go[7]; + m_A6 += go[8]; + m_A6 += go[9]; + double RHS2 = Idr[7]; + RHS2 += Idr[8]; + RHS2 += Idr[9]; + RHS2 += Idr[10]; + RHS2 -= go[10] * *cnV[10]; + m_A10 += gt[11]; + m_A10 += gt[12]; + m_A10 += gt[13]; + m_A10 += gt[14]; + m_A10 += gt[15]; + m_A12 += go[11]; + m_A9 += go[12]; + m_A9 += go[13]; + m_A8 += go[14]; + m_A8 += go[15]; + double RHS3 = Idr[11]; + RHS3 += Idr[12]; + RHS3 += Idr[13]; + RHS3 += Idr[14]; + RHS3 += Idr[15]; + m_A16 += gt[16]; + m_A16 += gt[17]; + m_A16 += gt[18]; + m_A17 += go[16]; + m_A14 += go[17]; + m_A13 += go[18]; + double RHS4 = Idr[16]; + RHS4 += Idr[17]; + RHS4 += Idr[18]; + m_A21 += gt[19]; + m_A21 += gt[20]; + m_A21 += gt[21]; + m_A20 += go[19]; + m_A19 += go[20]; + m_A18 += go[21]; + double RHS5 = Idr[19]; + RHS5 += Idr[20]; + RHS5 += Idr[21]; + const double f0 = 1.0 / m_A0; + const double f0_5 = -f0 * m_A18; + m_A21 += m_A1 * f0_5; + RHS5 += f0_5 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_3 = -f1 * m_A8; + m_A10 += m_A3 * f1_3; + m_A11 += m_A4 * f1_3; RHS3 += f1_3 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_3 = -f2 * m_A8; - m_A9 += m_A5 * f2_3; + const double f1_4 = -f1 * m_A13; + m_A15 += m_A3 * f1_4; + m_A16 += m_A4 * f1_4; + RHS4 += f1_4 * RHS1; + const double f2 = 1.0 / m_A5; + const double f2_3 = -f2 * m_A9; + m_A10 += m_A6 * f2_3; + m_A11 += m_A7 * f2_3; RHS3 += f2_3 * RHS2; - V[3] = RHS3 / m_A9; + const double f2_4 = -f2 * m_A14; + m_A15 += m_A6 * f2_4; + m_A16 += m_A7 * f2_4; + RHS4 += f2_4 * RHS2; + const double f3 = 1.0 / m_A10; + const double f3_4 = -f3 * m_A15; + m_A16 += m_A11 * f3_4; + m_A17 += m_A12 * f3_4; + RHS4 += f3_4 * RHS3; + const double f3_5 = -f3 * m_A19; + m_A20 += m_A11 * f3_5; + m_A21 += m_A12 * f3_5; + RHS5 += f3_5 * RHS3; + const double f4 = 1.0 / m_A16; + const double f4_5 = -f4 * m_A20; + m_A21 += m_A17 * f4_5; + RHS5 += f4_5 * RHS4; + V[5] = RHS5 / m_A21; + double tmp4 = 0.0; + tmp4 += m_A17 * V[5]; + V[4] = (RHS4 - tmp4) / m_A16; + double tmp3 = 0.0; + tmp3 += m_A11 * V[4]; + tmp3 += m_A12 * V[5]; + V[3] = (RHS3 - tmp3) / m_A10; double tmp2 = 0.0; - tmp2 += m_A5 * V[3]; - V[2] = (RHS2 - tmp2) / m_A4; + tmp2 += m_A6 * V[3]; + tmp2 += m_A7 * V[4]; + V[2] = (RHS2 - tmp2) / m_A5; double tmp1 = 0.0; tmp1 += m_A3 * V[3]; + tmp1 += m_A4 * V[4]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[3]; + tmp0 += m_A1 * V[5]; V[0] = (RHS0 - tmp0) / m_A0; } -// 280zzzap -static void nl_gcr_f1804fa5ede37373_95_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +// zac1b11142 +static void nl_gcr_f0a19b84f91ff24f_71_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[12] + gt[13] + gt[14] + gt[15] + gt[16] + gt[17] + gt[18]; - m_A3 = m_A3 + go[12]; - double RHS1 = Idr[12] + Idr[13] + Idr[14] + Idr[15] + Idr[16] + Idr[17] + Idr[18] - go[13] * *cnV[13] - go[14] * *cnV[14] - go[15] * *cnV[15] - go[16] * *cnV[16] - go[17] * *cnV[17] - go[18] * *cnV[18]; - m_A4 = gt[24] + gt[25] + gt[26]; - m_A5 = m_A5 + go[24]; - double RHS2 = Idr[24] + Idr[25] + Idr[26] - go[25] * *cnV[25] - go[26] * *cnV[26]; - m_A6 = gt[36] + gt[37] + gt[38] + gt[39] + gt[40] + gt[41] + gt[42]; - m_A7 = m_A7 + go[36]; - double RHS3 = Idr[36] + Idr[37] + Idr[38] + Idr[39] + Idr[40] + Idr[41] + Idr[42] - go[37] * *cnV[37] - go[38] * *cnV[38] - go[39] * *cnV[39] - go[40] * *cnV[40] - go[41] * *cnV[41] - go[42] * *cnV[42]; - m_A8 = gt[48] + gt[49]; - m_A9 = m_A9 + go[48]; - double RHS4 = Idr[48] + Idr[49] - go[49] * *cnV[49]; - m_A10 = gt[60] + gt[61]; - m_A11 = m_A11 + go[60]; - double RHS5 = Idr[60] + Idr[61] - go[61] * *cnV[61]; - m_A12 = gt[72] + gt[73] + gt[74] + gt[75]; - m_A13 = m_A13 + go[72]; - double RHS6 = Idr[72] + Idr[73] + Idr[74] + Idr[75] - go[73] * *cnV[73] - go[74] * *cnV[74] - go[75] * *cnV[75]; - m_A14 = gt[84] + gt[85] + gt[86] + gt[87]; - m_A15 = m_A15 + go[84]; - double RHS7 = Idr[84] + Idr[85] + Idr[86] + Idr[87] - go[85] * *cnV[85] - go[86] * *cnV[86] - go[87] * *cnV[87]; - m_A16 = gt[96] + gt[97]; - m_A17 = m_A17 + go[96]; - double RHS8 = Idr[96] + Idr[97] - go[97] * *cnV[97]; - m_A18 = gt[108] + gt[109] + gt[110] + gt[111]; - m_A19 = m_A19 + go[108]; - double RHS9 = Idr[108] + Idr[109] + Idr[110] + Idr[111] - go[109] * *cnV[109] - go[110] * *cnV[110] - go[111] * *cnV[111]; - m_A20 = gt[120] + gt[121]; - m_A22 = m_A22 + go[120]; - m_A21 = m_A21 + go[121]; - double RHS10 = Idr[120] + Idr[121]; - m_A23 = gt[132] + gt[133] + gt[134] + gt[135]; - m_A24 = m_A24 + go[132]; - double RHS11 = Idr[132] + Idr[133] + Idr[134] + Idr[135] - go[133] * *cnV[133] - go[134] * *cnV[134] - go[135] * *cnV[135]; - m_A25 = gt[144] + gt[145] + gt[146]; - m_A27 = m_A27 + go[144]; - m_A28 = m_A28 + go[145]; - m_A26 = m_A26 + go[146]; - double RHS12 = Idr[144] + Idr[145] + Idr[146]; - m_A29 = gt[156] + gt[157]; - m_A31 = m_A31 + go[156]; - m_A30 = m_A30 + go[157]; - double RHS13 = Idr[156] + Idr[157]; - m_A37 = gt[168] + gt[169] + gt[170] + gt[171] + gt[172] + gt[173]; - m_A36 = m_A36 + go[168]; - m_A35 = m_A35 + go[169]; - m_A34 = m_A34 + go[170]; - m_A33 = m_A33 + go[171]; - m_A32 = m_A32 + go[172]; - double RHS14 = Idr[168] + Idr[169] + Idr[170] + Idr[171] + Idr[172] + Idr[173] - go[173] * *cnV[173]; - m_A39 = gt[180] + gt[181] + gt[182] + gt[183]; - m_A38 = m_A38 + go[180]; - m_A40 = m_A40 + go[181]; - double RHS15 = Idr[180] + Idr[181] + Idr[182] + Idr[183] - go[182] * *cnV[182] - go[183] * *cnV[183]; - m_A42 = gt[192] + gt[193] + gt[194] + gt[195]; - m_A41 = m_A41 + go[192]; - m_A43 = m_A43 + go[193]; - double RHS16 = Idr[192] + Idr[193] + Idr[194] + Idr[195] - go[194] * *cnV[194] - go[195] * *cnV[195]; - m_A45 = gt[204] + gt[205] + gt[206]; - m_A46 = m_A46 + go[204]; - m_A44 = m_A44 + go[205]; - double RHS17 = Idr[204] + Idr[205] + Idr[206] - go[206] * *cnV[206]; - m_A52 = gt[216] + gt[217] + gt[218] + gt[219] + gt[220] + gt[221]; - m_A49 = m_A49 + go[216]; - m_A50 = m_A50 + go[217]; - m_A51 = m_A51 + go[218]; - m_A47 = m_A47 + go[219]; - m_A48 = m_A48 + go[220]; - double RHS18 = Idr[216] + Idr[217] + Idr[218] + Idr[219] + Idr[220] + Idr[221] - go[221] * *cnV[221]; - m_A59 = gt[228] + gt[229]; - m_A57 = m_A57 + go[228]; - m_A62 = m_A62 + go[229]; - double RHS19 = Idr[228] + Idr[229]; - m_A66 = gt[240] + gt[241] + gt[242] + gt[243] + gt[244] + gt[245]; - m_A63 = m_A63 + go[240]; - m_A64 = m_A64 + go[241]; - m_A68 = m_A68 + go[242]; - m_A67 = m_A67 + go[243]; - double RHS20 = Idr[240] + Idr[241] + Idr[242] + Idr[243] + Idr[244] + Idr[245] - go[244] * *cnV[244] - go[245] * *cnV[245]; - m_A73 = gt[252] + gt[253] + gt[254] + gt[255]; - m_A72 = m_A72 + go[252]; - m_A71 = m_A71 + go[253]; - m_A69 = m_A69 + go[254]; - m_A70 = m_A70 + go[255]; - double RHS21 = Idr[252] + Idr[253] + Idr[254] + Idr[255]; - m_A80 = gt[264] + gt[265] + gt[266] + gt[267] + gt[268] + gt[269] + gt[270] + gt[271] + gt[272] + gt[273] + gt[274]; - m_A75 = m_A75 + go[264]; - m_A82 = m_A82 + go[265]; - m_A76 = m_A76 + go[266]; - double RHS22 = Idr[264] + Idr[265] + Idr[266] + Idr[267] + Idr[268] + Idr[269] + Idr[270] + Idr[271] + Idr[272] + Idr[273] + Idr[274] - go[267] * *cnV[267] - go[268] * *cnV[268] - go[269] * *cnV[269] - go[270] * *cnV[270] - go[271] * *cnV[271] - go[272] * *cnV[272] - go[273] * *cnV[273] - go[274] * *cnV[274]; - m_A88 = gt[276] + gt[277] + gt[278] + gt[279] + gt[280]; - m_A83 = m_A83 + go[276]; - m_A85 = m_A85 + go[277]; - m_A84 = m_A84 + go[278]; - m_A86 = m_A86 + go[279]; - double RHS23 = Idr[276] + Idr[277] + Idr[278] + Idr[279] + Idr[280] - go[280] * *cnV[280]; - m_A94 = gt[288] + gt[289] + gt[290]; - m_A91 = m_A91 + go[288]; - m_A89 = m_A89 + go[289]; - m_A92 = m_A92 + go[290]; - double RHS24 = Idr[288] + Idr[289] + Idr[290]; -const double f0 = 1.0 / m_A0; - const double f0_15 = -f0 * m_A38; - m_A40 += m_A1 * f0_15; - RHS15 += f0_15 * RHS0; - const double f0_21 = -f0 * m_A69; - m_A73 += m_A1 * f0_21; - RHS21 += f0_21 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_20 = -f1 * m_A63; - m_A65 += m_A3 * f1_20; - RHS20 += f1_20 * RHS1; -const double f2 = 1.0 / m_A4; - const double f2_16 = -f2 * m_A41; - m_A43 += m_A5 * f2_16; - RHS16 += f2_16 * RHS2; - const double f2_18 = -f2 * m_A47; - m_A52 += m_A5 * f2_18; - RHS18 += f2_18 * RHS2; -const double f3 = 1.0 / m_A6; - const double f3_22 = -f3 * m_A75; - m_A77 += m_A7 * f3_22; - RHS22 += f3_22 * RHS3; -const double f4 = 1.0 / m_A8; - const double f4_14 = -f4 * m_A32; - m_A37 += m_A9 * f4_14; - RHS14 += f4_14 * RHS4; - const double f4_21 = -f4 * m_A70; - m_A71 += m_A9 * f4_21; - RHS21 += f4_21 * RHS4; -const double f5 = 1.0 / m_A10; - const double f5_17 = -f5 * m_A44; - m_A45 += m_A11 * f5_17; - RHS17 += f5_17 * RHS5; - const double f5_18 = -f5 * m_A48; - m_A51 += m_A11 * f5_18; + 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); + 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_A2 += gt[10]; + m_A2 += gt[11]; + m_A2 += gt[12]; + m_A2 += gt[13]; + m_A3 += go[7]; + double RHS1 = Idr[7]; + RHS1 += Idr[8]; + RHS1 += Idr[9]; + RHS1 += Idr[10]; + RHS1 += Idr[11]; + RHS1 += Idr[12]; + RHS1 += Idr[13]; + RHS1 -= go[8] * *cnV[8]; + RHS1 -= go[9] * *cnV[9]; + RHS1 -= go[10] * *cnV[10]; + RHS1 -= go[11] * *cnV[11]; + RHS1 -= go[12] * *cnV[12]; + RHS1 -= go[13] * *cnV[13]; + m_A4 += gt[14]; + m_A4 += gt[15]; + m_A4 += gt[16]; + m_A5 += go[14]; + double RHS2 = Idr[14]; + RHS2 += Idr[15]; + RHS2 += Idr[16]; + RHS2 -= go[15] * *cnV[15]; + RHS2 -= go[16] * *cnV[16]; + m_A6 += gt[17]; + m_A6 += gt[18]; + m_A7 += go[17]; + double RHS3 = Idr[17]; + RHS3 += Idr[18]; + RHS3 -= go[18] * *cnV[18]; + m_A8 += gt[19]; + m_A8 += gt[20]; + m_A8 += gt[21]; + m_A9 += go[19]; + double RHS4 = Idr[19]; + RHS4 += Idr[20]; + RHS4 += Idr[21]; + RHS4 -= go[20] * *cnV[20]; + RHS4 -= go[21] * *cnV[21]; + m_A10 += gt[22]; + m_A10 += gt[23]; + m_A11 += go[22]; + double RHS5 = Idr[22]; + RHS5 += Idr[23]; + RHS5 -= go[23] * *cnV[23]; + m_A12 += gt[24]; + m_A12 += gt[25]; + m_A12 += gt[26]; + m_A13 += go[24]; + double RHS6 = Idr[24]; + RHS6 += Idr[25]; + RHS6 += Idr[26]; + RHS6 -= go[25] * *cnV[25]; + RHS6 -= go[26] * *cnV[26]; + m_A14 += gt[27]; + m_A14 += gt[28]; + m_A14 += gt[29]; + m_A15 += go[27]; + double RHS7 = Idr[27]; + RHS7 += Idr[28]; + RHS7 += Idr[29]; + RHS7 -= go[28] * *cnV[28]; + RHS7 -= go[29] * *cnV[29]; + m_A17 += gt[30]; + m_A17 += gt[31]; + m_A17 += gt[32]; + m_A17 += gt[33]; + m_A17 += gt[34]; + m_A17 += gt[35]; + m_A16 += go[30]; + m_A18 += go[31]; + m_A19 += go[32]; + m_A19 += go[33]; + double RHS8 = Idr[30]; + RHS8 += Idr[31]; + RHS8 += Idr[32]; + RHS8 += Idr[33]; + RHS8 += Idr[34]; + RHS8 += Idr[35]; + RHS8 -= go[34] * *cnV[34]; + RHS8 -= go[35] * *cnV[35]; + m_A21 += gt[36]; + m_A21 += gt[37]; + m_A21 += gt[38]; + m_A22 += go[36]; + double RHS9 = Idr[36]; + RHS9 += Idr[37]; + RHS9 += Idr[38]; + RHS9 -= go[37] * *cnV[37]; + RHS9 -= go[38] * *cnV[38]; + m_A23 += gt[39]; + m_A23 += gt[40]; + m_A23 += gt[41]; + m_A25 += go[39]; + m_A24 += go[40]; + double RHS10 = Idr[39]; + RHS10 += Idr[40]; + RHS10 += Idr[41]; + RHS10 -= go[41] * *cnV[41]; + m_A27 += gt[42]; + m_A27 += gt[43]; + m_A27 += gt[44]; + m_A27 += gt[45]; + m_A27 += gt[46]; + m_A27 += gt[47]; + m_A26 += go[42]; + m_A29 += go[43]; + m_A29 += go[44]; + double RHS11 = Idr[42]; + RHS11 += Idr[43]; + RHS11 += Idr[44]; + RHS11 += Idr[45]; + RHS11 += Idr[46]; + RHS11 += Idr[47]; + RHS11 -= go[45] * *cnV[45]; + RHS11 -= go[46] * *cnV[46]; + RHS11 -= go[47] * *cnV[47]; + m_A31 += gt[48]; + m_A31 += gt[49]; + m_A32 += go[48]; + m_A30 += go[49]; + double RHS12 = Idr[48]; + RHS12 += Idr[49]; + m_A35 += gt[50]; + m_A35 += gt[51]; + m_A34 += go[50]; + m_A33 += go[51]; + double RHS13 = Idr[50]; + RHS13 += Idr[51]; + m_A38 += gt[52]; + m_A38 += gt[53]; + m_A37 += go[52]; + m_A36 += go[53]; + double RHS14 = Idr[52]; + RHS14 += Idr[53]; + m_A40 += gt[54]; + m_A40 += gt[55]; + m_A40 += gt[56]; + m_A40 += gt[57]; + m_A41 += go[54]; + m_A39 += go[55]; + double RHS15 = Idr[54]; + RHS15 += Idr[55]; + RHS15 += Idr[56]; + RHS15 += Idr[57]; + RHS15 -= go[56] * *cnV[56]; + RHS15 -= go[57] * *cnV[57]; + m_A44 += gt[58]; + m_A44 += gt[59]; + m_A43 += go[58]; + m_A42 += go[59]; + double RHS16 = Idr[58]; + RHS16 += Idr[59]; + m_A54 += gt[60]; + m_A54 += gt[61]; + m_A54 += gt[62]; + m_A54 += gt[63]; + m_A54 += gt[64]; + m_A54 += gt[65]; + m_A52 += go[60]; + m_A50 += go[61]; + m_A50 += go[62]; + m_A51 += go[63]; + m_A49 += go[64]; + m_A48 += go[65]; + double RHS17 = Idr[60]; + RHS17 += Idr[61]; + RHS17 += Idr[62]; + RHS17 += Idr[63]; + RHS17 += Idr[64]; + RHS17 += Idr[65]; + m_A65 += gt[66]; + m_A65 += gt[67]; + m_A65 += gt[68]; + m_A65 += gt[69]; + m_A65 += gt[70]; + m_A65 += gt[71]; + m_A61 += go[66]; + m_A60 += go[67]; + m_A60 += go[68]; + m_A59 += go[69]; + m_A58 += go[70]; + m_A57 += go[71]; + double RHS18 = Idr[66]; + RHS18 += Idr[67]; + RHS18 += Idr[68]; + RHS18 += Idr[69]; + RHS18 += Idr[70]; + RHS18 += Idr[71]; + m_A70 += gt[72]; + m_A70 += gt[73]; + m_A70 += gt[74]; + m_A70 += gt[75]; + m_A68 += go[72]; + m_A67 += go[73]; + double RHS19 = Idr[72]; + RHS19 += Idr[73]; + RHS19 += Idr[74]; + RHS19 += Idr[75]; + RHS19 -= go[74] * *cnV[74]; + RHS19 -= go[75] * *cnV[75]; + const double f0 = 1.0 / m_A0; + const double f0_8 = -f0 * m_A16; + m_A20 += m_A1 * f0_8; + RHS8 += f0_8 * RHS0; + const double f1 = 1.0 / m_A2; + const double f1_11 = -f1 * m_A26; + m_A28 += m_A3 * f1_11; + RHS11 += f1_11 * RHS1; + const double f2 = 1.0 / m_A4; + const double f2_12 = -f2 * m_A30; + m_A31 += m_A5 * f2_12; + RHS12 += f2_12 * RHS2; + const double f3 = 1.0 / m_A6; + const double f3_13 = -f3 * m_A33; + m_A35 += m_A7 * f3_13; + RHS13 += f3_13 * RHS3; + const double f3_17 = -f3 * m_A48; + m_A52 += m_A7 * f3_17; + RHS17 += f3_17 * RHS3; + const double f4 = 1.0 / m_A8; + const double f4_13 = -f4 * m_A34; + m_A35 += m_A9 * f4_13; + RHS13 += f4_13 * RHS4; + const double f5 = 1.0 / m_A10; + const double f5_14 = -f5 * m_A36; + m_A38 += m_A11 * f5_14; + RHS14 += f5_14 * RHS5; + const double f5_18 = -f5 * m_A57; + m_A61 += m_A11 * f5_18; RHS18 += f5_18 * RHS5; -const double f6 = 1.0 / m_A12; - const double f6_14 = -f6 * m_A33; - m_A37 += m_A13 * f6_14; + const double f6 = 1.0 / m_A12; + const double f6_14 = -f6 * m_A37; + m_A38 += m_A13 * f6_14; RHS14 += f6_14 * RHS6; -const double f7 = 1.0 / m_A14; - const double f7_14 = -f7 * m_A34; - m_A37 += m_A15 * f7_14; - RHS14 += f7_14 * RHS7; -const double f8 = 1.0 / m_A16; - const double f8_23 = -f8 * m_A83; - m_A88 += m_A17 * f8_23; - RHS23 += f8_23 * RHS8; -const double f9 = 1.0 / m_A18; - const double f9_14 = -f9 * m_A35; - m_A37 += m_A19 * f9_14; - RHS14 += f9_14 * RHS9; -const double f10 = 1.0 / m_A20; - const double f10_20 = -f10 * m_A64; - m_A66 += m_A21 * f10_20; - m_A68 += m_A22 * f10_20; - RHS20 += f10_20 * RHS10; - const double f10_23 = -f10 * m_A84; - m_A86 += m_A21 * f10_23; - m_A88 += m_A22 * f10_23; - RHS23 += f10_23 * RHS10; -const double f11 = 1.0 / m_A23; - const double f11_14 = -f11 * m_A36; - m_A37 += m_A24 * f11_14; - RHS14 += f11_14 * RHS11; -const double f12 = 1.0 / m_A25; - const double f12_18 = -f12 * m_A49; - m_A52 += m_A26 * f12_18; - m_A53 += m_A27 * f12_18; - m_A56 += m_A28 * f12_18; - RHS18 += f12_18 * RHS12; - const double f12_19 = -f12 * m_A57; - m_A58 += m_A26 * f12_19; - m_A59 += m_A27 * f12_19; - m_A62 += m_A28 * f12_19; - RHS19 += f12_19 * RHS12; - const double f12_24 = -f12 * m_A89; - m_A90 += m_A26 * f12_24; - m_A91 += m_A27 * f12_24; - m_A94 += m_A28 * f12_24; - RHS24 += f12_24 * RHS12; -const double f13 = 1.0 / m_A29; - const double f13_18 = -f13 * m_A50; - m_A52 += m_A30 * f13_18; - m_A54 += m_A31 * f13_18; - RHS18 += f13_18 * RHS13; - const double f13_22 = -f13 * m_A76; - m_A78 += m_A30 * f13_22; - m_A80 += m_A31 * f13_22; - RHS22 += f13_22 * RHS13; -const double f14 = 1.0 / m_A37; - const double f14_21 = -f14 * m_A71; - RHS21 += f14_21 * RHS14; -const double f15 = 1.0 / m_A39; - const double f15_20 = -f15 * m_A65; - m_A67 += m_A40 * f15_20; - RHS20 += f15_20 * RHS15; -const double f16 = 1.0 / m_A42; - const double f16_22 = -f16 * m_A77; - m_A78 += m_A43 * f16_22; - RHS22 += f16_22 * RHS16; -const double f17 = 1.0 / m_A45; - const double f17_18 = -f17 * m_A51; - m_A55 += m_A46 * f17_18; + const double f7 = 1.0 / m_A14; + const double f7_17 = -f7 * m_A49; + m_A54 += m_A15 * f7_17; + RHS17 += f7_17 * RHS7; + const double f7_19 = -f7 * m_A67; + m_A68 += m_A15 * f7_19; + RHS19 += f7_19 * RHS7; + const double f8 = 1.0 / m_A17; + const double f8_16 = -f8 * m_A42; + m_A44 += m_A18 * f8_16; + m_A45 += m_A19 * f8_16; + m_A47 += m_A20 * f8_16; + RHS16 += f8_16 * RHS8; + const double f8_17 = -f8 * m_A50; + m_A53 += m_A18 * f8_17; + m_A54 += m_A19 * f8_17; + m_A56 += m_A20 * f8_17; + RHS17 += f8_17 * RHS8; + const double f9 = 1.0 / m_A21; + const double f9_15 = -f9 * m_A39; + m_A41 += m_A22 * f9_15; + RHS15 += f9_15 * RHS9; + const double f9_18 = -f9 * m_A58; + m_A65 += m_A22 * f9_18; + RHS18 += f9_18 * RHS9; + const double f10 = 1.0 / m_A23; + const double f10_16 = -f10 * m_A43; + m_A44 += m_A24 * f10_16; + m_A46 += m_A25 * f10_16; + RHS16 += f10_16 * RHS10; + const double f10_18 = -f10 * m_A59; + m_A63 += m_A24 * f10_18; + m_A65 += m_A25 * f10_18; + RHS18 += f10_18 * RHS10; + const double f11 = 1.0 / m_A27; + const double f11_18 = -f11 * m_A60; + m_A62 += m_A28 * f11_18; + m_A65 += m_A29 * f11_18; + RHS18 += f11_18 * RHS11; + const double f12 = 1.0 / m_A31; + const double f12_17 = -f12 * m_A51; + m_A54 += m_A32 * f12_17; + RHS17 += f12_17 * RHS12; + const double f13 = 1.0 / m_A35; + const double f13_17 = -f13 * m_A52; + RHS17 += f13_17 * RHS13; + const double f14 = 1.0 / m_A38; + const double f14_18 = -f14 * m_A61; + RHS18 += f14_18 * RHS14; + const double f15 = 1.0 / m_A40; + const double f15_18 = -f15 * m_A62; + m_A65 += m_A41 * f15_18; + RHS18 += f15_18 * RHS15; + const double f16 = 1.0 / m_A44; + const double f16_17 = -f16 * m_A53; + m_A54 += m_A45 * f16_17; + m_A55 += m_A46 * f16_17; + m_A56 += m_A47 * f16_17; + RHS17 += f16_17 * RHS16; + const double f16_18 = -f16 * m_A63; + m_A64 += m_A45 * f16_18; + m_A65 += m_A46 * f16_18; + m_A66 += m_A47 * f16_18; + RHS18 += f16_18 * RHS16; + const double f17 = 1.0 / m_A54; + const double f17_18 = -f17 * m_A64; + m_A65 += m_A55 * f17_18; + m_A66 += m_A56 * f17_18; RHS18 += f17_18 * RHS17; - const double f17_23 = -f17 * m_A85; - m_A88 += m_A46 * f17_23; - RHS23 += f17_23 * RHS17; -const double f18 = 1.0 / m_A52; - const double f18_19 = -f18 * m_A58; - m_A59 += m_A53 * f18_19; - m_A60 += m_A54 * f18_19; - m_A61 += m_A55 * f18_19; - m_A62 += m_A56 * f18_19; + const double f17_19 = -f17 * m_A68; + m_A69 += m_A55 * f17_19; + m_A70 += m_A56 * f17_19; + RHS19 += f17_19 * RHS17; + const double f18 = 1.0 / m_A65; + const double f18_19 = -f18 * m_A69; + m_A70 += m_A66 * f18_19; RHS19 += f18_19 * RHS18; - const double f18_22 = -f18 * m_A78; - m_A79 += m_A53 * f18_22; - m_A80 += m_A54 * f18_22; - m_A81 += m_A55 * f18_22; - m_A82 += m_A56 * f18_22; - RHS22 += f18_22 * RHS18; - const double f18_24 = -f18 * m_A90; - m_A91 += m_A53 * f18_24; - m_A92 += m_A54 * f18_24; - m_A93 += m_A55 * f18_24; - m_A94 += m_A56 * f18_24; - RHS24 += f18_24 * RHS18; -const double f19 = 1.0 / m_A59; - const double f19_22 = -f19 * m_A79; - m_A80 += m_A60 * f19_22; - m_A81 += m_A61 * f19_22; - m_A82 += m_A62 * f19_22; - RHS22 += f19_22 * RHS19; - const double f19_24 = -f19 * m_A91; - m_A92 += m_A60 * f19_24; - m_A93 += m_A61 * f19_24; - m_A94 += m_A62 * f19_24; - RHS24 += f19_24 * RHS19; -const double f20 = 1.0 / m_A66; - const double f20_21 = -f20 * m_A72; - m_A73 += m_A67 * f20_21; - m_A74 += m_A68 * f20_21; - RHS21 += f20_21 * RHS20; - const double f20_23 = -f20 * m_A86; - m_A87 += m_A67 * f20_23; - m_A88 += m_A68 * f20_23; - RHS23 += f20_23 * RHS20; -const double f21 = 1.0 / m_A73; - const double f21_23 = -f21 * m_A87; - m_A88 += m_A74 * f21_23; - RHS23 += f21_23 * RHS21; -const double f22 = 1.0 / m_A80; - const double f22_24 = -f22 * m_A92; - m_A93 += m_A81 * f22_24; - m_A94 += m_A82 * f22_24; - RHS24 += f22_24 * RHS22; -const double f23 = 1.0 / m_A88; - const double f23_24 = -f23 * m_A93; - RHS24 += f23_24 * RHS23; - V[24] = RHS24 / m_A94; - double tmp23 = 0.0; - V[23] = (RHS23 - tmp23) / m_A88; - double tmp22 = 0.0; - tmp22 += m_A81 * V[23]; - tmp22 += m_A82 * V[24]; - V[22] = (RHS22 - tmp22) / m_A80; - double tmp21 = 0.0; - tmp21 += m_A74 * V[23]; - V[21] = (RHS21 - tmp21) / m_A73; - double tmp20 = 0.0; - tmp20 += m_A67 * V[21]; - tmp20 += m_A68 * V[23]; - V[20] = (RHS20 - tmp20) / m_A66; - double tmp19 = 0.0; - tmp19 += m_A60 * V[22]; - tmp19 += m_A61 * V[23]; - tmp19 += m_A62 * V[24]; - V[19] = (RHS19 - tmp19) / m_A59; + V[19] = RHS19 / m_A70; double tmp18 = 0.0; - tmp18 += m_A53 * V[19]; - tmp18 += m_A54 * V[22]; - tmp18 += m_A55 * V[23]; - tmp18 += m_A56 * V[24]; - V[18] = (RHS18 - tmp18) / m_A52; + tmp18 += m_A66 * V[19]; + V[18] = (RHS18 - tmp18) / m_A65; double tmp17 = 0.0; - tmp17 += m_A46 * V[23]; - V[17] = (RHS17 - tmp17) / m_A45; + tmp17 += m_A55 * V[18]; + tmp17 += m_A56 * V[19]; + V[17] = (RHS17 - tmp17) / m_A54; double tmp16 = 0.0; - tmp16 += m_A43 * V[18]; - V[16] = (RHS16 - tmp16) / m_A42; + tmp16 += m_A45 * V[17]; + tmp16 += m_A46 * V[18]; + tmp16 += m_A47 * V[19]; + V[16] = (RHS16 - tmp16) / m_A44; double tmp15 = 0.0; - tmp15 += m_A40 * V[21]; - V[15] = (RHS15 - tmp15) / m_A39; + tmp15 += m_A41 * V[18]; + V[15] = (RHS15 - tmp15) / m_A40; double tmp14 = 0.0; - V[14] = (RHS14 - tmp14) / m_A37; + V[14] = (RHS14 - tmp14) / m_A38; double tmp13 = 0.0; - tmp13 += m_A30 * V[18]; - tmp13 += m_A31 * V[22]; - V[13] = (RHS13 - tmp13) / m_A29; + V[13] = (RHS13 - tmp13) / m_A35; double tmp12 = 0.0; - tmp12 += m_A26 * V[18]; - tmp12 += m_A27 * V[19]; - tmp12 += m_A28 * V[24]; - V[12] = (RHS12 - tmp12) / m_A25; + tmp12 += m_A32 * V[17]; + V[12] = (RHS12 - tmp12) / m_A31; double tmp11 = 0.0; - tmp11 += m_A24 * V[14]; - V[11] = (RHS11 - tmp11) / m_A23; + tmp11 += m_A28 * V[15]; + tmp11 += m_A29 * V[18]; + V[11] = (RHS11 - tmp11) / m_A27; double tmp10 = 0.0; - tmp10 += m_A21 * V[20]; - tmp10 += m_A22 * V[23]; - V[10] = (RHS10 - tmp10) / m_A20; + tmp10 += m_A24 * V[16]; + tmp10 += m_A25 * V[18]; + V[10] = (RHS10 - tmp10) / m_A23; double tmp9 = 0.0; - tmp9 += m_A19 * V[14]; - V[9] = (RHS9 - tmp9) / m_A18; + tmp9 += m_A22 * V[18]; + V[9] = (RHS9 - tmp9) / m_A21; double tmp8 = 0.0; - tmp8 += m_A17 * V[23]; - V[8] = (RHS8 - tmp8) / m_A16; + tmp8 += m_A18 * V[16]; + tmp8 += m_A19 * V[17]; + tmp8 += m_A20 * V[19]; + V[8] = (RHS8 - tmp8) / m_A17; double tmp7 = 0.0; - tmp7 += m_A15 * V[14]; + tmp7 += m_A15 * V[17]; V[7] = (RHS7 - tmp7) / m_A14; double tmp6 = 0.0; tmp6 += m_A13 * V[14]; V[6] = (RHS6 - tmp6) / m_A12; double tmp5 = 0.0; - tmp5 += m_A11 * V[17]; + tmp5 += m_A11 * V[14]; V[5] = (RHS5 - tmp5) / m_A10; double tmp4 = 0.0; - tmp4 += m_A9 * V[14]; + tmp4 += m_A9 * V[13]; V[4] = (RHS4 - tmp4) / m_A8; double tmp3 = 0.0; - tmp3 += m_A7 * V[16]; + tmp3 += m_A7 * V[13]; V[3] = (RHS3 - tmp3) / m_A6; double tmp2 = 0.0; - tmp2 += m_A5 * V[18]; + tmp2 += m_A5 * V[12]; V[2] = (RHS2 - tmp2) / m_A4; double tmp1 = 0.0; tmp1 += m_A3 * V[15]; V[1] = (RHS1 - tmp1) / m_A2; double tmp0 = 0.0; - tmp0 += m_A1 * V[21]; + tmp0 += m_A1 * V[19]; V[0] = (RHS0 - tmp0) / m_A0; } // breakout -static void nl_gcr_fbbf6eebb7621abc_7_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict cnV) +static void nl_gcr_f6a620d52ca4719f_7_double_double(double * __restrict V, const double * __restrict go, const double * __restrict gt, const double * __restrict Idr, const double * const * __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2]; - m_A1 = m_A1 + go[0]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] - go[1] * *cnV[1] - go[2] * *cnV[2]; - m_A2 = gt[4] + gt[5]; - m_A3 = m_A3 + go[4]; - double RHS1 = Idr[4] + Idr[5] - go[5] * *cnV[5]; - m_A6 = gt[8] + gt[9]; - m_A5 = m_A5 + go[8]; - m_A4 = m_A4 + go[9]; - double RHS2 = Idr[8] + Idr[9]; -const double f0 = 1.0 / m_A0; + 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); + m_A0 += gt[0]; + m_A0 += gt[1]; + m_A0 += gt[2]; + m_A1 += go[0]; + double RHS0 = Idr[0]; + RHS0 += Idr[1]; + RHS0 += Idr[2]; + RHS0 -= go[1] * *cnV[1]; + RHS0 -= go[2] * *cnV[2]; + m_A2 += gt[3]; + m_A2 += gt[4]; + m_A3 += go[3]; + double RHS1 = Idr[3]; + RHS1 += Idr[4]; + RHS1 -= go[4] * *cnV[4]; + m_A6 += gt[5]; + m_A6 += gt[6]; + m_A5 += go[5]; + m_A4 += go[6]; + double RHS2 = Idr[5]; + RHS2 += Idr[6]; + const double f0 = 1.0 / m_A0; const double f0_2 = -f0 * m_A4; m_A6 += m_A1 * f0_2; RHS2 += f0_2 * RHS0; -const double f1 = 1.0 / m_A2; - const double f1_2 = -f1 * m_A5; - m_A6 += m_A3 * f1_2; - RHS2 += f1_2 * RHS1; - V[2] = RHS2 / m_A6; - double tmp1 = 0.0; - tmp1 += m_A3 * V[2]; - V[1] = (RHS1 - tmp1) / m_A2; - double tmp0 = 0.0; - tmp0 += m_A1 * V[2]; - V[0] = (RHS0 - tmp0) / m_A0; -} - -// cheekyms -static void nl_gcr_feb42362d28845e7_7_double_double(double * __restrict V, double * __restrict go, double * __restrict gt, double * __restrict Idr, double ** __restrict 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); - m_A0 = gt[0] + gt[1] + gt[2] + gt[3]; - m_A1 = m_A1 + go[0]; - m_A1 = m_A1 + go[1]; - double RHS0 = Idr[0] + Idr[1] + Idr[2] + Idr[3] - go[2] * *cnV[2] - go[3] * *cnV[3]; - m_A2 = gt[6] + gt[7]; - m_A3 = m_A3 + go[6]; - double RHS1 = Idr[6] + Idr[7] - go[7] * *cnV[7]; - m_A6 = gt[12] + gt[13] + gt[14] + gt[15] + gt[16]; - m_A5 = m_A5 + go[12]; - m_A4 = m_A4 + go[13]; - m_A4 = m_A4 + go[14]; - double RHS2 = Idr[12] + Idr[13] + Idr[14] + Idr[15] + Idr[16] - go[15] * *cnV[15] - go[16] * *cnV[16]; -const double f0 = 1.0 / m_A0; - const double f0_2 = -f0 * m_A4; - m_A6 += m_A1 * f0_2; - RHS2 += f0_2 * RHS0; -const double f1 = 1.0 / m_A2; + const double f1 = 1.0 / m_A2; const double f1_2 = -f1 * m_A5; m_A6 += m_A3 * f1_2; RHS2 += f1_2 * RHS1; @@ -12865,124 +17951,125 @@ const double f1 = 1.0 / m_A2; V[0] = (RHS0 - tmp0) / m_A0; } +extern plib::dynlib_static_sym nl_static_solver_syms[]; plib::dynlib_static_sym nl_static_solver_syms[] = { -// gamemachine - {"nl_gcr_111d6ad4781c136_19_double_double", reinterpret_cast<void *>(&nl_gcr_111d6ad4781c136_19_double_double)}, -// cheekyms - {"nl_gcr_11995a0d28843023_150_double_double", reinterpret_cast<void *>(&nl_gcr_11995a0d28843023_150_double_double)}, -// mario - {"nl_gcr_15fa1a3cf923c9fd_29_double_double", reinterpret_cast<void *>(&nl_gcr_15fa1a3cf923c9fd_29_double_double)}, +// konami1x + {"nl_gcr_105d3ecb773843b6_49_double_double", reinterpret_cast<void *>(&nl_gcr_105d3ecb773843b6_49_double_double)}, +// breakout + {"nl_gcr_15a4e7fbe5facb3a_7_double_double", reinterpret_cast<void *>(&nl_gcr_15a4e7fbe5facb3a_7_double_double)}, +// breakout + {"nl_gcr_1993cb957e80c097_10_double_double", reinterpret_cast<void *>(&nl_gcr_1993cb957e80c097_10_double_double)}, // kidniki - {"nl_gcr_169c14d438ffb621_198_double_double", reinterpret_cast<void *>(&nl_gcr_169c14d438ffb621_198_double_double)}, + {"nl_gcr_1cbd5d704f6e93c1_67_double_double", reinterpret_cast<void *>(&nl_gcr_1cbd5d704f6e93c1_67_double_double)}, +// 280zzzap + {"nl_gcr_20d478ed5597161_123_double_double", reinterpret_cast<void *>(&nl_gcr_20d478ed5597161_123_double_double)}, +// stuntcyc + {"nl_gcr_251e2a2e2c8d5b33_20_double_double", reinterpret_cast<void *>(&nl_gcr_251e2a2e2c8d5b33_20_double_double)}, // cheekyms - {"nl_gcr_19f6e9708f37ad65_7_double_double", reinterpret_cast<void *>(&nl_gcr_19f6e9708f37ad65_7_double_double)}, + {"nl_gcr_278f0b40e27b21fc_150_double_double", reinterpret_cast<void *>(&nl_gcr_278f0b40e27b21fc_150_double_double)}, // zac1b11142 - {"nl_gcr_1dd100c8f34cf889_96_double_double", reinterpret_cast<void *>(&nl_gcr_1dd100c8f34cf889_96_double_double)}, + {"nl_gcr_2b5c86f8653bcde7_12_double_double", reinterpret_cast<void *>(&nl_gcr_2b5c86f8653bcde7_12_double_double)}, // rebound - {"nl_gcr_1faccd91c85d3ab3_28_double_double", reinterpret_cast<void *>(&nl_gcr_1faccd91c85d3ab3_28_double_double)}, + {"nl_gcr_33a561080717d469_7_double_double", reinterpret_cast<void *>(&nl_gcr_33a561080717d469_7_double_double)}, +// dpatrol + {"nl_gcr_390fe6bd5468155d_7_double_double", reinterpret_cast<void *>(&nl_gcr_390fe6bd5468155d_7_double_double)}, +// kidniki + {"nl_gcr_445192d0ef3f62c6_21_double_double", reinterpret_cast<void *>(&nl_gcr_445192d0ef3f62c6_21_double_double)}, +// kidniki + {"nl_gcr_4a06f16ac700a832_198_double_double", reinterpret_cast<void *>(&nl_gcr_4a06f16ac700a832_198_double_double)}, +// gtrak10 + {"nl_gcr_4e48e9f6ef4bfdc4_43_double_double", reinterpret_cast<void *>(&nl_gcr_4e48e9f6ef4bfdc4_43_double_double)}, +// kidniki + {"nl_gcr_580e08d22698f60a_37_double_double", reinterpret_cast<void *>(&nl_gcr_580e08d22698f60a_37_double_double)}, +// kidniki + {"nl_gcr_58f8065842de37d4_34_double_double", reinterpret_cast<void *>(&nl_gcr_58f8065842de37d4_34_double_double)}, // breakout - {"nl_gcr_1fffb23aa506432d_13_double_double", reinterpret_cast<void *>(&nl_gcr_1fffb23aa506432d_13_double_double)}, -// pongf - {"nl_gcr_20615d28f46254cb_10_double_double", reinterpret_cast<void *>(&nl_gcr_20615d28f46254cb_10_double_double)}, + {"nl_gcr_59095cbc65117534_13_double_double", reinterpret_cast<void *>(&nl_gcr_59095cbc65117534_13_double_double)}, +// breakout + {"nl_gcr_593686d4c01bf991_31_double_double", reinterpret_cast<void *>(&nl_gcr_593686d4c01bf991_31_double_double)}, // zac1b11142 - {"nl_gcr_21d92b630d2e9a99_30_double_double", reinterpret_cast<void *>(&nl_gcr_21d92b630d2e9a99_30_double_double)}, -// dpatrol - {"nl_gcr_27a78682a9b70f8c_10_double_double", reinterpret_cast<void *>(&nl_gcr_27a78682a9b70f8c_10_double_double)}, + {"nl_gcr_5a632d4741241573_96_double_double", reinterpret_cast<void *>(&nl_gcr_5a632d4741241573_96_double_double)}, // 280zzzap - {"nl_gcr_2e7df52e4934b257_31_double_double", reinterpret_cast<void *>(&nl_gcr_2e7df52e4934b257_31_double_double)}, -// mario - {"nl_gcr_2eb3d95f720484d_62_double_double", reinterpret_cast<void *>(&nl_gcr_2eb3d95f720484d_62_double_double)}, -// segas16b_audio - {"nl_gcr_35947d349693c22_111_double_double", reinterpret_cast<void *>(&nl_gcr_35947d349693c22_111_double_double)}, -// cocoloco - {"nl_gcr_3641ac25e244c362_16_double_double", reinterpret_cast<void *>(&nl_gcr_3641ac25e244c362_16_double_double)}, + {"nl_gcr_5af09c93b5cf0788_95_double_double", reinterpret_cast<void *>(&nl_gcr_5af09c93b5cf0788_95_double_double)}, // zac1b11142 - {"nl_gcr_38a3ac18f52bf78a_7_double_double", reinterpret_cast<void *>(&nl_gcr_38a3ac18f52bf78a_7_double_double)}, -// dpatrol - {"nl_gcr_38f1806722626d7e_7_double_double", reinterpret_cast<void *>(&nl_gcr_38f1806722626d7e_7_double_double)}, -// kidniki - {"nl_gcr_3e4821cabc0aeb96_24_double_double", reinterpret_cast<void *>(&nl_gcr_3e4821cabc0aeb96_24_double_double)}, -// dpatrol - {"nl_gcr_57a832104e53c9a8_20_double_double", reinterpret_cast<void *>(&nl_gcr_57a832104e53c9a8_20_double_double)}, + {"nl_gcr_60352d234249ea57_30_double_double", reinterpret_cast<void *>(&nl_gcr_60352d234249ea57_30_double_double)}, +// breakout + {"nl_gcr_655da76624809228_13_double_double", reinterpret_cast<void *>(&nl_gcr_655da76624809228_13_double_double)}, +// cheekyms + {"nl_gcr_6d03e64d09c956c3_7_double_double", reinterpret_cast<void *>(&nl_gcr_6d03e64d09c956c3_7_double_double)}, // rebound - {"nl_gcr_5985dfb549280eeb_13_double_double", reinterpret_cast<void *>(&nl_gcr_5985dfb549280eeb_13_double_double)}, + {"nl_gcr_6e17dfd7d26d8933_13_double_double", reinterpret_cast<void *>(&nl_gcr_6e17dfd7d26d8933_13_double_double)}, +// gamemachine + {"nl_gcr_70c1124c705dd998_19_double_double", reinterpret_cast<void *>(&nl_gcr_70c1124c705dd998_19_double_double)}, +// cheekyms + {"nl_gcr_70f289d5486b9767_7_double_double", reinterpret_cast<void *>(&nl_gcr_70f289d5486b9767_7_double_double)}, +// zac1b11142 + {"nl_gcr_752680f8e0bc6a4a_7_double_double", reinterpret_cast<void *>(&nl_gcr_752680f8e0bc6a4a_7_double_double)}, +// mario + {"nl_gcr_7b9186d9ff77f7a1_29_double_double", reinterpret_cast<void *>(&nl_gcr_7b9186d9ff77f7a1_29_double_double)}, +// cheekyms + {"nl_gcr_7e9498276980e5d1_12_double_double", reinterpret_cast<void *>(&nl_gcr_7e9498276980e5d1_12_double_double)}, +// kidniki + {"nl_gcr_80d7c219807268a_24_double_double", reinterpret_cast<void *>(&nl_gcr_80d7c219807268a_24_double_double)}, +// pongf + {"nl_gcr_81ae080c83dcf6a4_35_double_double", reinterpret_cast<void *>(&nl_gcr_81ae080c83dcf6a4_35_double_double)}, // tp1985 - {"nl_gcr_5ca1779d1825c4c9_26_double_double", reinterpret_cast<void *>(&nl_gcr_5ca1779d1825c4c9_26_double_double)}, + {"nl_gcr_83fbe835263b28d3_7_double_double", reinterpret_cast<void *>(&nl_gcr_83fbe835263b28d3_7_double_double)}, +// pongf + {"nl_gcr_930be1d2f1a52598_10_double_double", reinterpret_cast<void *>(&nl_gcr_930be1d2f1a52598_10_double_double)}, +// kidniki + {"nl_gcr_9701e2657a7f4ca3_37_double_double", reinterpret_cast<void *>(&nl_gcr_9701e2657a7f4ca3_37_double_double)}, +// cocoloco + {"nl_gcr_97d556b480d72ab7_16_double_double", reinterpret_cast<void *>(&nl_gcr_97d556b480d72ab7_16_double_double)}, +// zac1b11142 + {"nl_gcr_988a81edfbe45655_30_double_double", reinterpret_cast<void *>(&nl_gcr_988a81edfbe45655_30_double_double)}, // tp1985 - {"nl_gcr_6148fa421800febb_10_double_double", reinterpret_cast<void *>(&nl_gcr_6148fa421800febb_10_double_double)}, + {"nl_gcr_99e69c1880e516a7_10_double_double", reinterpret_cast<void *>(&nl_gcr_99e69c1880e516a7_10_double_double)}, // tp1985 - {"nl_gcr_6480c7a1d69e9131_7_double_double", reinterpret_cast<void *>(&nl_gcr_6480c7a1d69e9131_7_double_double)}, -// 280zzzap - {"nl_gcr_66a07f8f9d33245b_57_double_double", reinterpret_cast<void *>(&nl_gcr_66a07f8f9d33245b_57_double_double)}, -// stuntcyc - {"nl_gcr_6c599fc01f5b084c_20_double_double", reinterpret_cast<void *>(&nl_gcr_6c599fc01f5b084c_20_double_double)}, -// breakout - {"nl_gcr_6d40bbc695987ef5_13_double_double", reinterpret_cast<void *>(&nl_gcr_6d40bbc695987ef5_13_double_double)}, -// pongf - {"nl_gcr_70e1061a9deb37a4_7_double_double", reinterpret_cast<void *>(&nl_gcr_70e1061a9deb37a4_7_double_double)}, + {"nl_gcr_a1806410e32baeb_26_double_double", reinterpret_cast<void *>(&nl_gcr_a1806410e32baeb_26_double_double)}, +// gunfight + {"nl_gcr_a479712c277f2ba4_108_double_double", reinterpret_cast<void *>(&nl_gcr_a479712c277f2ba4_108_double_double)}, // breakout - {"nl_gcr_7421995adbfda1ad_10_double_double", reinterpret_cast<void *>(&nl_gcr_7421995adbfda1ad_10_double_double)}, -// zac1b11142 - {"nl_gcr_7572db25f250cf5a_71_double_double", reinterpret_cast<void *>(&nl_gcr_7572db25f250cf5a_71_double_double)}, + {"nl_gcr_a59b19805d7e4461_7_double_double", reinterpret_cast<void *>(&nl_gcr_a59b19805d7e4461_7_double_double)}, // 280zzzap - {"nl_gcr_766cc932eebf25ec_104_double_double", reinterpret_cast<void *>(&nl_gcr_766cc932eebf25ec_104_double_double)}, -// popeye - {"nl_gcr_794f14a13bda75f0_50_double_double", reinterpret_cast<void *>(&nl_gcr_794f14a13bda75f0_50_double_double)}, -// breakout - {"nl_gcr_7a4e8b4f388d66d7_7_double_double", reinterpret_cast<void *>(&nl_gcr_7a4e8b4f388d66d7_7_double_double)}, + {"nl_gcr_a716c0b150a52aeb_135_double_double", reinterpret_cast<void *>(&nl_gcr_a716c0b150a52aeb_135_double_double)}, +// 1942 + {"nl_gcr_b20cee3516465509_90_double_double", reinterpret_cast<void *>(&nl_gcr_b20cee3516465509_90_double_double)}, +// segas16b_audio + {"nl_gcr_b71f53c9e7a6b4a9_111_double_double", reinterpret_cast<void *>(&nl_gcr_b71f53c9e7a6b4a9_111_double_double)}, // 280zzzap - {"nl_gcr_7af598c34aca424d_135_double_double", reinterpret_cast<void *>(&nl_gcr_7af598c34aca424d_135_double_double)}, -// kidniki - {"nl_gcr_7b1592d23e41ce56_37_double_double", reinterpret_cast<void *>(&nl_gcr_7b1592d23e41ce56_37_double_double)}, + {"nl_gcr_bcf0e3af19330ca7_116_double_double", reinterpret_cast<void *>(&nl_gcr_bcf0e3af19330ca7_116_double_double)}, +// 280zzzap + {"nl_gcr_caa814c0740131f2_104_double_double", reinterpret_cast<void *>(&nl_gcr_caa814c0740131f2_104_double_double)}, // rebound - {"nl_gcr_7c58698d6a68f4a0_7_double_double", reinterpret_cast<void *>(&nl_gcr_7c58698d6a68f4a0_7_double_double)}, -// gunfight - {"nl_gcr_7dbbdf7feecfa9bd_108_double_double", reinterpret_cast<void *>(&nl_gcr_7dbbdf7feecfa9bd_108_double_double)}, -// konami1x - {"nl_gcr_7f2f6447ea71d31e_49_double_double", reinterpret_cast<void *>(&nl_gcr_7f2f6447ea71d31e_49_double_double)}, + {"nl_gcr_cb1d3c28ba315ca6_28_double_double", reinterpret_cast<void *>(&nl_gcr_cb1d3c28ba315ca6_28_double_double)}, +// mario + {"nl_gcr_cc367a3c6e2f7ec9_62_double_double", reinterpret_cast<void *>(&nl_gcr_cc367a3c6e2f7ec9_62_double_double)}, +// pongf + {"nl_gcr_cd4de579d34fc1d9_7_double_double", reinterpret_cast<void *>(&nl_gcr_cd4de579d34fc1d9_7_double_double)}, // dpatrol - {"nl_gcr_81bfac76b696d9f3_22_double_double", reinterpret_cast<void *>(&nl_gcr_81bfac76b696d9f3_22_double_double)}, -// breakout - {"nl_gcr_876240e48d904d1f_7_double_double", reinterpret_cast<void *>(&nl_gcr_876240e48d904d1f_7_double_double)}, -// konami2x - {"nl_gcr_8e55e5f9e065890e_85_double_double", reinterpret_cast<void *>(&nl_gcr_8e55e5f9e065890e_85_double_double)}, -// kidniki - {"nl_gcr_933b3efec18faab_37_double_double", reinterpret_cast<void *>(&nl_gcr_933b3efec18faab_37_double_double)}, -// 280zzzap - {"nl_gcr_9de29bb0cfe2c4b4_116_double_double", reinterpret_cast<void *>(&nl_gcr_9de29bb0cfe2c4b4_116_double_double)}, + {"nl_gcr_cffc52225ebcec8f_20_double_double", reinterpret_cast<void *>(&nl_gcr_cffc52225ebcec8f_20_double_double)}, +// popeye + {"nl_gcr_d153cd8a3df26761_50_double_double", reinterpret_cast<void *>(&nl_gcr_d153cd8a3df26761_50_double_double)}, +// dpatrol + {"nl_gcr_d229cf0026955cd3_10_double_double", reinterpret_cast<void *>(&nl_gcr_d229cf0026955cd3_10_double_double)}, // 280zzzap - {"nl_gcr_9e7791458f751e0c_123_double_double", reinterpret_cast<void *>(&nl_gcr_9e7791458f751e0c_123_double_double)}, -// 1942 - {"nl_gcr_a1b753ac9c408940_90_double_double", reinterpret_cast<void *>(&nl_gcr_a1b753ac9c408940_90_double_double)}, -// zac1b11142 - {"nl_gcr_a26cb0ca00cdeba6_12_double_double", reinterpret_cast<void *>(&nl_gcr_a26cb0ca00cdeba6_12_double_double)}, -// kidniki - {"nl_gcr_a2b9e1d13f95c2d3_34_double_double", reinterpret_cast<void *>(&nl_gcr_a2b9e1d13f95c2d3_34_double_double)}, -// breakout - {"nl_gcr_a5e9537117c3969a_31_double_double", reinterpret_cast<void *>(&nl_gcr_a5e9537117c3969a_31_double_double)}, -// zac1b11142 - {"nl_gcr_a88b481713b08b7b_30_double_double", reinterpret_cast<void *>(&nl_gcr_a88b481713b08b7b_30_double_double)}, -// kidniki - {"nl_gcr_b42f307001315373_21_double_double", reinterpret_cast<void *>(&nl_gcr_b42f307001315373_21_double_double)}, -// pongf - {"nl_gcr_b8e1f7dd43c1da70_35_double_double", reinterpret_cast<void *>(&nl_gcr_b8e1f7dd43c1da70_35_double_double)}, -// gtrak10 - {"nl_gcr_b9ccfa3d1681baf3_43_double_double", reinterpret_cast<void *>(&nl_gcr_b9ccfa3d1681baf3_43_double_double)}, + {"nl_gcr_d5f69adb177fea36_31_double_double", reinterpret_cast<void *>(&nl_gcr_d5f69adb177fea36_31_double_double)}, // gamemachine - {"nl_gcr_d028b2a263a6b4a7_7_double_double", reinterpret_cast<void *>(&nl_gcr_d028b2a263a6b4a7_7_double_double)}, -// zac1b11142 - {"nl_gcr_dded752996a524fc_178_double_double", reinterpret_cast<void *>(&nl_gcr_dded752996a524fc_178_double_double)}, -// cheekyms - {"nl_gcr_e67e623b6c100b4e_12_double_double", reinterpret_cast<void *>(&nl_gcr_e67e623b6c100b4e_12_double_double)}, -// kidniki - {"nl_gcr_e7e5566e352b80c1_67_double_double", reinterpret_cast<void *>(&nl_gcr_e7e5566e352b80c1_67_double_double)}, + {"nl_gcr_ddffc2781d05acf_10_double_double", reinterpret_cast<void *>(&nl_gcr_ddffc2781d05acf_10_double_double)}, // gamemachine - {"nl_gcr_ec17a9dbc8cd78fd_10_double_double", reinterpret_cast<void *>(&nl_gcr_ec17a9dbc8cd78fd_10_double_double)}, + {"nl_gcr_df3a545642cc0a22_7_double_double", reinterpret_cast<void *>(&nl_gcr_df3a545642cc0a22_7_double_double)}, +// zac1b11142 + {"nl_gcr_e3e057bb1961a530_178_double_double", reinterpret_cast<void *>(&nl_gcr_e3e057bb1961a530_178_double_double)}, +// konami2x + {"nl_gcr_e4c54910436826d1_85_double_double", reinterpret_cast<void *>(&nl_gcr_e4c54910436826d1_85_double_double)}, // 280zzzap - {"nl_gcr_f1804fa5ede37373_95_double_double", reinterpret_cast<void *>(&nl_gcr_f1804fa5ede37373_95_double_double)}, + {"nl_gcr_eb8f99b7d033585a_57_double_double", reinterpret_cast<void *>(&nl_gcr_eb8f99b7d033585a_57_double_double)}, +// dpatrol + {"nl_gcr_ef9b40abd2bf582c_22_double_double", reinterpret_cast<void *>(&nl_gcr_ef9b40abd2bf582c_22_double_double)}, +// zac1b11142 + {"nl_gcr_f0a19b84f91ff24f_71_double_double", reinterpret_cast<void *>(&nl_gcr_f0a19b84f91ff24f_71_double_double)}, // breakout - {"nl_gcr_fbbf6eebb7621abc_7_double_double", reinterpret_cast<void *>(&nl_gcr_fbbf6eebb7621abc_7_double_double)}, -// cheekyms - {"nl_gcr_feb42362d28845e7_7_double_double", reinterpret_cast<void *>(&nl_gcr_feb42362d28845e7_7_double_double)}, + {"nl_gcr_f6a620d52ca4719f_7_double_double", reinterpret_cast<void *>(&nl_gcr_f6a620d52ca4719f_7_double_double)}, {"", nullptr} }; diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp index b09c60b901a..a9ac57f620d 100644 --- a/src/lib/netlist/nl_base.cpp +++ b/src/lib/netlist/nl_base.cpp @@ -27,7 +27,7 @@ namespace netlist host_arena::unique_ptr<plib::dynlib_base> callbacks_t:: static_solver_lib() const { - return host_arena::make_unique<plib::dynlib_static>(nullptr); + return plib::make_unique<plib::dynlib_static, host_arena>(nullptr); } // ---------------------------------------------------------------------------------------- @@ -129,9 +129,9 @@ namespace netlist m_lib = m_callbacks->static_solver_lib(); - m_setup = host_arena::make_unique<setup_t>(*this); + m_setup = plib::make_unique<setup_t, host_arena>(*this); // create the run interface - m_netlist = m_pool.make_unique<netlist_t>(*this, name); + m_netlist = plib::make_unique<netlist_t>(m_pool, *this, name); // Make sure save states are invalidated when a new version is deployed @@ -313,7 +313,7 @@ namespace netlist case 0: { std::vector<core_device_t *> d; - std::vector<nldelegate *> t; + std::vector<const nldelegate *> t; log().verbose("Using default startup strategy"); for (auto &n : m_nets) for (auto & term : n->core_terms()) @@ -402,7 +402,7 @@ namespace netlist } log().verbose("Total calls : {1:12} {2:12} {3:12}", total_count, - total_time, total_time / static_cast<decltype(total_time)>((total_count > 0) ? total_count : 1)); + total_time, total_time / gsl::narrow<decltype(total_time)>((total_count > 0) ? total_count : 1)); log().verbose("Total loop {1:15}", si.m_stat_mainloop()); log().verbose("Total time {1:15}", total_time); @@ -424,8 +424,8 @@ namespace netlist } plib::pperftime_t<true>::type total_overhead = overhead() - * static_cast<plib::pperftime_t<true>::type>(total_count) - / static_cast<plib::pperftime_t<true>::type>(200000); + * gsl::narrow<plib::pperftime_t<true>::type>(total_count) + / gsl::narrow<plib::pperftime_t<true>::type>(200000); log().verbose("Queue Pushes {1:15}", si.m_queue.m_prof_call()); log().verbose("Queue Moves {1:15}", si.m_queue.m_prof_sortmove()); @@ -436,7 +436,7 @@ namespace netlist log().verbose("Take the next lines with a grain of salt. They depend on the measurement implementation."); log().verbose("Total overhead {1:15}", total_overhead); plib::pperftime_t<true>::type overhead_per_pop = (si.m_stat_mainloop()-2*total_overhead - (total_time - total_overhead)) - / static_cast<plib::pperftime_t<true>::type>(si.m_queue.m_prof_call()); + / gsl::narrow<plib::pperftime_t<true>::type>(si.m_queue.m_prof_call()); log().verbose("Overhead per pop {1:11}", overhead_per_pop ); log().verbose(""); } @@ -450,7 +450,7 @@ namespace netlist if (stats->m_stat_inc_active() > 3 * stats->m_stat_total_time.count() && stats->m_stat_inc_active() > trigger) log().verbose("HINT({}, NO_DEACTIVATE) // {} {} {}", ep->name(), - static_cast<nl_fptype>(stats->m_stat_inc_active()) / static_cast<nl_fptype>(stats->m_stat_total_time.count()), + gsl::narrow<nl_fptype>(stats->m_stat_inc_active()) / gsl::narrow<nl_fptype>(stats->m_stat_total_time.count()), stats->m_stat_inc_active(), stats->m_stat_total_time.count()); } log().verbose(""); @@ -831,10 +831,8 @@ namespace netlist device.state().setup().register_param_t(*this); } - param_t::~param_t() noexcept - { - // placed here to avoid weak vtable warnings - } + // placed here to avoid weak vtable warnings + param_t::~param_t() noexcept = default; param_t::param_type_t param_t::param_type() const noexcept(false) { @@ -858,14 +856,14 @@ namespace netlist pstring param_t::get_initial(const core_device_t *dev, bool *found) const { pstring res = dev->state().setup().get_initial_param_val(this->name(), ""); - *found = (res != ""); + *found = (!res.empty()); return res; } param_str_t::param_str_t(core_device_t &device, const pstring &name, const pstring &val) : param_t(device, name) { - m_param = host_arena::make_unique<pstring>(val); + m_param = plib::make_unique<pstring, host_arena>(val); *m_param = device.state().setup().get_initial_param_val(this->name(),val); } @@ -873,7 +871,7 @@ namespace netlist : param_t(name) { // deviceless parameter, no registration, owner is responsible - m_param = host_arena::make_unique<pstring>(val); + m_param = plib::make_unique<pstring, host_arena>(val); *m_param = state.setup().get_initial_param_val(this->name(),val); } diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h index 7597989d71b..97e3f404a36 100644 --- a/src/lib/netlist/nl_base.h +++ b/src/lib/netlist/nl_base.h @@ -708,9 +708,8 @@ namespace netlist #endif void set_delegate(const nldelegate &delegate) noexcept { m_delegate = delegate; } - nldelegate &delegate() noexcept { return m_delegate; } const nldelegate &delegate() const noexcept { return m_delegate; } - inline void run_delegate() noexcept { m_delegate(); } + inline void run_delegate() noexcept { return m_delegate(); } private: nldelegate m_delegate; net_t * m_net; @@ -997,7 +996,7 @@ namespace netlist { public: - using list_t = std::vector<analog_net_t *>; + using list_t = plib::aligned_vector<analog_net_t *>; analog_net_t(netlist_state_t &nl, const pstring &aname, detail::core_terminal_t *railterminal = nullptr); @@ -1209,7 +1208,7 @@ namespace netlist pstring valstr() const override { - return plib::pfmt("{}").e(static_cast<nl_fptype>(m_param)); + return plib::pfmt("{}").e(gsl::narrow<nl_fptype>(m_param)); } private: @@ -1309,7 +1308,7 @@ namespace netlist public: template <typename P, typename Y=T, typename DUMMY = std::enable_if_t<plib::is_arithmetic<Y>::value>> value_base_t(P ¶m, const pstring &name) - : m_value(static_cast<T>(param.value(name))) + : m_value(gsl::narrow<T>(param.value(name))) { } template <typename P, typename Y=T, std::enable_if_t<!plib::is_arithmetic<Y>::value, int> = 0> @@ -1513,7 +1512,8 @@ namespace netlist ~device_t() noexcept override = default; - nldelegate default_delegate() { return nldelegate(&device_t::update, this); } + //nldelegate default_delegate() { return nldelegate(&device_t::update, this); } + nldelegate default_delegate() { return { &device_t::update, this }; } protected: NETLIB_UPDATEI() { } @@ -1757,7 +1757,7 @@ namespace netlist template<typename T, typename... Args> device_arena::unique_ptr<T> make_pool_object(Args&&... args) { - return m_pool.make_unique<T>(std::forward<Args>(args)...); + return plib::make_unique<T>(m_pool, std::forward<Args>(args)...); } // memory pool - still needed in some places device_arena &pool() noexcept { return m_pool; } @@ -2302,6 +2302,7 @@ namespace netlist inline void detail::net_t::remove_from_active_list(core_terminal_t &term) noexcept { + gsl_Expects(!m_list_active.empty()); m_list_active.remove(&term); if (m_list_active.empty()) railterminal().device().do_dec_active(); @@ -2309,24 +2310,24 @@ namespace netlist inline const analog_net_t & analog_t::net() const noexcept { - return static_cast<const analog_net_t &>(core_terminal_t::net()); + return plib::downcast<const analog_net_t &>(core_terminal_t::net()); } inline analog_net_t & analog_t::net() noexcept { - return static_cast<analog_net_t &>(core_terminal_t::net()); + return plib::downcast<analog_net_t &>(core_terminal_t::net()); } inline nl_fptype terminal_t::operator ()() const noexcept { return net().Q_Analog(); } inline logic_net_t & logic_t::net() noexcept { - return static_cast<logic_net_t &>(core_terminal_t::net()); + return plib::downcast<logic_net_t &>(core_terminal_t::net()); } inline const logic_net_t & logic_t::net() const noexcept { - return static_cast<const logic_net_t &>(core_terminal_t::net()); + return plib::downcast<const logic_net_t &>(core_terminal_t::net()); } inline netlist_sig_t logic_input_t::operator()() const noexcept @@ -2516,7 +2517,7 @@ namespace netlist if (plib::is_integral<T>::value) if (plib::abs(valx - plib::trunc(valx)) > nlconst::magic(1e-6)) throw nl_exception(MF_INVALID_NUMBER_CONVERSION_1_2(device.name() + "." + name, p)); - m_param = static_cast<T>(valx); + m_param = plib::narrow_cast<T>(valx); } device.state().save(*this, m_param, this->name(), "m_param"); @@ -2599,7 +2600,7 @@ namespace netlist state_container<C>::state_container(O &owner, const pstring &name, const state_container<C>::value_type & value) { - owner.state().save(owner, *static_cast<C *>(this), owner.name(), name); + owner.state().save(owner, static_cast<C &>(*this), owner.name(), name); for (std::size_t i=0; i < this->size(); i++) (*this)[i] = value; } @@ -2610,7 +2611,7 @@ namespace netlist std::size_t n, const state_container<C>::value_type & value) : C(n, value) { - owner.state().save(owner, *static_cast<C *>(this), owner.name(), name); + owner.state().save(owner, static_cast<C &>(*this), owner.name(), name); } extern template struct state_var<std::uint8_t>; diff --git a/src/lib/netlist/nl_config.h b/src/lib/netlist/nl_config.h index 8740b5ddbd9..81e0c860aa9 100644 --- a/src/lib/netlist/nl_config.h +++ b/src/lib/netlist/nl_config.h @@ -200,6 +200,12 @@ namespace netlist /// using MAX_QUEUE_SIZE = std::integral_constant<std::size_t, 512>; // NOLINT + using use_float_matrix = std::integral_constant<bool, NL_USE_FLOAT_MATRIX>; + using use_long_double_matrix = std::integral_constant<bool, NL_USE_LONG_DOUBLE_MATRIX>; + using use_float128_matrix = std::integral_constant<bool, NL_USE_FLOAT128>; + + using use_mempool = std::integral_constant<bool, NL_USE_MEMPOOL>; + /// \brief Floating point types used /// /// nl_fptype is the floating point type used throughout the diff --git a/src/lib/netlist/nl_factory.cpp b/src/lib/netlist/nl_factory.cpp index 8ef9799101a..519c4ea029c 100644 --- a/src/lib/netlist/nl_factory.cpp +++ b/src/lib/netlist/nl_factory.cpp @@ -76,7 +76,7 @@ namespace factory { device_arena::unique_ptr<core_device_t> library_element_t::make_device(device_arena &pool, netlist_state_t &anetlist, const pstring &name) { - return pool.make_unique<NETLIB_NAME(wrapper)>(anetlist, name); + return plib::make_unique<NETLIB_NAME(wrapper)>(pool, anetlist, name); } diff --git a/src/lib/netlist/nl_factory.h b/src/lib/netlist/nl_factory.h index 4c9a47cc749..5b3ee4bb3a6 100644 --- a/src/lib/netlist/nl_factory.h +++ b/src/lib/netlist/nl_factory.h @@ -129,7 +129,7 @@ namespace factory { netlist_state_t &anetlist, const pstring &name, std::tuple<Args...>& args, std::index_sequence<Is...>) { - return pool.make_unique<C>(anetlist, name, std::forward<Args>(std::get<Is>(args))...); + return plib::make_unique<C>(pool, anetlist, name, std::forward<Args>(std::get<Is>(args))...); } dev_uptr make_device(device_arena &pool, @@ -149,7 +149,7 @@ namespace factory { static uptr create(const pstring &name, properties &&props, Args&&... args) { - return host_arena::make_unique<device_element_t<C, Args...>>(name, + return plib::make_unique<device_element_t<C, Args...>, host_arena>(name, std::move(props), std::forward<Args>(args)...); } private: @@ -194,7 +194,7 @@ namespace factory { template <typename T> element_t::uptr constructor_t(const pstring &name, properties &&props) { - return host_arena::make_unique<device_element_t<T>>(name, std::move(props)); + return plib::make_unique<device_element_t<T>, host_arena>(name, std::move(props)); } // ----------------------------------------------------------------------------- diff --git a/src/lib/netlist/nl_parser.cpp b/src/lib/netlist/nl_parser.cpp index 8e76538632a..e34683d5261 100644 --- a/src/lib/netlist/nl_parser.cpp +++ b/src/lib/netlist/nl_parser.cpp @@ -83,7 +83,7 @@ bool parser_t::parse(const pstring &nlname) require_token(m_tok_paren_left); token_t name = get_token(); require_token(m_tok_paren_right); - if (name.str() == nlname || nlname == "") + if (name.str() == nlname || nlname.empty()) { parse_netlist(name.str()); return true; @@ -164,8 +164,8 @@ void parser_t::net_truthtable_start(const pstring &nlname) netlist::tt_desc desc; desc.name = name; - desc.ni = static_cast<unsigned long>(ni); - desc.no = static_cast<unsigned long>(no); + desc.ni = gsl::narrow<unsigned long>(ni); + desc.no = gsl::narrow<unsigned long>(no); desc.family = ""; while (true) diff --git a/src/lib/netlist/nl_setup.cpp b/src/lib/netlist/nl_setup.cpp index 1b63b002492..b6c466be6e7 100644 --- a/src/lib/netlist/nl_setup.cpp +++ b/src/lib/netlist/nl_setup.cpp @@ -200,7 +200,7 @@ namespace netlist || plib::abs(value) > nlconst::magic(1e9)) register_param(param, plib::pfmt("{1:.9}").e(value)); else - register_param(param, plib::pfmt("{1}")(static_cast<long>(value))); + register_param(param, plib::pfmt("{1}")(gsl::narrow<long>(value))); } void nlparse_t::register_param(const pstring ¶m, const pstring &value) @@ -248,7 +248,7 @@ namespace netlist void nlparse_t::register_lib_entry(const pstring &name, factory::properties &&props) { - m_factory.add(host_arena::make_unique<factory::library_element_t>(name, std::move(props))); + m_factory.add(plib::make_unique<factory::library_element_t, host_arena>(name, std::move(props))); } void nlparse_t::register_frontier(const pstring &attach, const pstring &r_IN, @@ -508,7 +508,7 @@ pstring setup_t::resolve_alias(const pstring &name) const ret = temp; auto p = m_abstract.m_alias.find(ret); temp = (p != m_abstract.m_alias.end() ? p->second : ""); - } while (temp != "" && temp != ret); + } while (!temp.empty() && temp != ret); log().debug("{1}==>{2}\n", name, ret); return ret; @@ -532,7 +532,7 @@ pstring setup_t::de_alias(const pstring &alias) const break; } } - } while (temp != "" && temp != ret); + } while (!temp.empty() && temp != ret); log().debug("{1}==>{2}\n", alias, ret); return ret; @@ -650,7 +650,7 @@ devices::nld_base_proxy *setup_t::get_d_a_proxy(const detail::core_terminal_t &o { nl_assert(out.is_logic()); - const auto &out_cast = static_cast<const logic_output_t &>(out); + const auto &out_cast = dynamic_cast<const logic_output_t &>(out); auto iter_proxy(m_proxies.find(&out)); if (iter_proxy != m_proxies.end()) @@ -878,7 +878,7 @@ void setup_t::connect_terminals(detail::core_terminal_t &t1,detail::core_termina { log().debug("adding analog net ...\n"); // FIXME: Nets should have a unique name - auto anet = nlstate().pool().make_owned<analog_net_t>(m_nlstate,"net." + t1.name()); + auto anet = plib::make_owned<analog_net_t>(nlstate().pool(), m_nlstate,"net." + t1.name()); auto *anetp = anet.get(); m_nlstate.register_net(std::move(anet)); t1.set_net(anetp); @@ -1043,7 +1043,7 @@ void setup_t::resolve_inputs() detail::core_terminal_t *t1 = find_terminal(t1s); detail::core_terminal_t *t2 = find_terminal(t2s); if (connect(*t1, *t2)) - m_abstract.m_links.erase(m_abstract.m_links.begin() + static_cast<std::ptrdiff_t>(i)); + m_abstract.m_links.erase(m_abstract.m_links.begin() + plib::narrow_cast<std::ptrdiff_t>(i)); else i++; } @@ -1104,16 +1104,16 @@ void setup_t::resolve_inputs() detail::core_terminal_t *term = i.second; if (term->is_tristate_output()) { - const auto *tri(static_cast<tristate_output_t *>(term)); + const auto &tri(dynamic_cast<tristate_output_t &>(*term)); // check if we are connected to a proxy - const auto iter_proxy(m_proxies.find(tri)); + const auto iter_proxy(m_proxies.find(&tri)); - if (iter_proxy == m_proxies.end() && !tri->is_force_logic()) + if (iter_proxy == m_proxies.end() && !tri.is_force_logic()) { log().error(ME_TRISTATE_NO_PROXY_FOUND_2(term->name(), term->device().name())); err = true; } - else if (iter_proxy != m_proxies.end() && tri->is_force_logic()) + else if (iter_proxy != m_proxies.end() && tri.is_force_logic()) { log().error(ME_TRISTATE_PROXY_FOUND_2(term->name(), term->device().name())); err = true; @@ -1256,7 +1256,7 @@ nl_fptype models_t::model_t::value(const pstring &entity) const pstring tmp = value_str(entity); nl_fptype factor = nlconst::one(); - auto p = std::next(tmp.begin(), static_cast<pstring::difference_type>(tmp.size() - 1)); + auto p = std::next(tmp.begin(), plib::narrow_cast<pstring::difference_type>(tmp.size() - 1)); switch (*p) { case 'M': factor = nlconst::magic(1e6); break; // NOLINT @@ -1390,7 +1390,7 @@ const logic_family_desc_t *setup_t::family_from_model(const pstring &model) if (it != m_nlstate.family_cache().end()) return it->second.get(); - auto ret = host_arena::make_unique<logic_family_std_proxy_t>(ft); + auto ret = plib::make_unique<logic_family_std_proxy_t, host_arena>(ft); ret->m_low_thresh_PCNT = modv.m_IVL(); ret->m_high_thresh_PCNT = modv.m_IVH(); @@ -1434,7 +1434,7 @@ void setup_t::prepare_to_run() { pstring envlog = plib::util::environment("NL_LOGS", ""); - if (envlog != "") + if (!envlog.empty()) { std::vector<pstring> loglist(plib::psplit(envlog, ":")); m_parser.register_dynamic_log_devices(loglist); @@ -1444,7 +1444,7 @@ void setup_t::prepare_to_run() for (auto & e : m_abstract.m_defparams) { - auto param(host_arena::make_unique<param_str_t>(nlstate(), e.first, e.second)); + auto param(plib::make_unique<param_str_t, host_arena>(nlstate(), e.first, e.second)); register_param_t(*param); m_defparam_lifetime.push_back(std::move(param)); } @@ -1597,7 +1597,7 @@ source_string_t::stream_ptr source_string_t::stream(const pstring &name) plib::unused_var(name); auto ret(std::make_unique<std::istringstream>(m_str)); ret->imbue(std::locale::classic()); - return std::move(ret); // FIXME: for c++11 clang builds + return ret; } source_mem_t::stream_ptr source_mem_t::stream(const pstring &name) @@ -1605,7 +1605,7 @@ source_mem_t::stream_ptr source_mem_t::stream(const pstring &name) plib::unused_var(name); auto ret(std::make_unique<std::istringstream>(m_str, std::ios_base::binary)); ret->imbue(std::locale::classic()); - return std::move(ret); // FIXME: for c++11 clang builds + return ret; } source_file_t::stream_ptr source_file_t::stream(const pstring &name) diff --git a/src/lib/netlist/nl_setup.h b/src/lib/netlist/nl_setup.h index 9e6714007f0..6d99f1ca183 100644 --- a/src/lib/netlist/nl_setup.h +++ b/src/lib/netlist/nl_setup.h @@ -307,10 +307,10 @@ namespace netlist void register_param(const pstring ¶m, nl_fptype value); template <typename T> - std::enable_if_t<plib::is_floating_point<T>::value || plib::is_integral<T>::value> + std::enable_if_t<plib::is_arithmetic<T>::value> register_param_val(const pstring ¶m, T value) { - register_param(param, static_cast<nl_fptype>(value)); + register_param(param, plib::narrow_cast<nl_fptype>(value)); } void register_lib_entry(const pstring &name, factory::properties &&props); diff --git a/src/lib/netlist/nltypes.h b/src/lib/netlist/nltypes.h index 8ee9da300b2..98bfbb49a92 100644 --- a/src/lib/netlist/nltypes.h +++ b/src/lib/netlist/nltypes.h @@ -78,9 +78,9 @@ namespace netlist /// \note This is not the right location yet. /// - using device_arena = std::conditional<NL_USE_MEMPOOL, + using device_arena = std::conditional_t<config::use_mempool::value, plib::mempool_arena<plib::aligned_arena>, - plib::aligned_arena>::type; + plib::aligned_arena>; using host_arena = plib::aligned_arena; /// \brief Interface definition for netlist callbacks into calling code @@ -187,7 +187,7 @@ namespace netlist } }; - /// \brief: used define a constant in device description struct + /// \brief: used to define a constant in device description struct /// /// See the 74125 implementation /// diff --git a/src/lib/netlist/plib/gmres.h b/src/lib/netlist/plib/gmres.h index c8ea1cad2f8..df0fc787c52 100644 --- a/src/lib/netlist/plib/gmres.h +++ b/src/lib/netlist/plib/gmres.h @@ -38,9 +38,9 @@ namespace plib mat_precondition_ILU(std::size_t size, std::size_t ilu_scale = 4 , std::size_t bw = plib::pmatrix_cr_t<FT, SIZE>::FILL_INFINITY) - : m_mat(static_cast<typename mat_type::index_type>(size)) - , m_LU(static_cast<typename mat_type::index_type>(size)) - , m_ILU_scale(static_cast<std::size_t>(ilu_scale)) + : m_mat(narrow_cast<typename mat_type::index_type>(size)) + , m_LU(narrow_cast<typename mat_type::index_type>(size)) + , m_ILU_scale(narrow_cast<std::size_t>(ilu_scale)) , m_band_width(bw) { } @@ -103,7 +103,7 @@ namespace plib if (m_mat.col_idx[k] == i && k < m_mat.row_idx[j+1]) nzcol[i].push_back(k); } - nzcol[i].push_back(static_cast<std::size_t>(-1)); + nzcol[i].push_back(narrow_cast<std::size_t>(-1)); } } @@ -139,7 +139,7 @@ namespace plib const auto &nz = nzcol[i]; std::size_t j; - while ((j = nz[nzcolp++])!=static_cast<std::size_t>(-1)) // NOLINT(bugprone-infinite-loop) + while ((j = nz[nzcolp++])!=narrow_cast<std::size_t>(-1)) // NOLINT(bugprone-infinite-loop) { v += m_mat.A[j] * m_mat.A[j]; } @@ -209,14 +209,12 @@ namespace plib // FIXME: hardcoding RESTART to 20 becomes an issue on very large // systems. - template <typename FT, int SIZE, int RESTART = 80> + template <typename FT, int SIZE, int RESTART = 16> struct gmres_t { public: using float_type = FT; - // FIXME: dirty hack to make this compile - static constexpr const std::size_t storage_N = plib::sizeabs<FT, SIZE>::ABS(); explicit gmres_t(std::size_t size) : residual(size) @@ -236,7 +234,7 @@ namespace plib g1 = s * g0_last + c * g1; } - std::size_t size() const { return (SIZE<=0) ? m_size : static_cast<std::size_t>(SIZE); } + std::size_t size() const { return (SIZE<=0) ? m_size : narrow_cast<std::size_t>(SIZE); } template <int k, typename OPS, typename VT> bool do_k(OPS &ops, VT &x, std::size_t &itr_used, FT rho_delta, bool dummy) @@ -360,7 +358,7 @@ namespace plib rho_delta = accuracy * rho_to_accuracy; } else - rho_delta = accuracy * plib::sqrt(static_cast<FT>(n)); + rho_delta = accuracy * plib::sqrt(narrow_cast<FT>(n)); // // Using @@ -407,8 +405,6 @@ namespace plib private: - //typedef typename plib::mat_cr_t<FT, SIZE>::index_type mattype; - plib::parray<float_type, SIZE> residual; plib::parray<float_type, SIZE> Ax; @@ -423,8 +419,6 @@ namespace plib std::size_t m_size; bool m_use_more_precise_stop_condition; - - }; @@ -454,7 +448,7 @@ namespace plib { } - std::size_t size() const { return (SIZE<=0) ? m_size : static_cast<std::size_t>(SIZE); } + std::size_t size() const { return (SIZE<=0) ? m_size : narrow_cast<std::size_t>(SIZE); } template <typename OPS, typename VT, typename VRHS> std::size_t solve(OPS &ops, VT &x0, const VRHS & rhs, const std::size_t iter_max, float_type accuracy) @@ -478,7 +472,7 @@ namespace plib ops.calc_rhs(Ax, x); vec_sub(size(), rhs, Ax, residual); - FT rho_delta = accuracy * std::sqrt(static_cast<FT>(size())); + FT rho_delta = accuracy * std::sqrt(narrow_cast<FT>(size())); rho_delta = 1e-9; diff --git a/src/lib/netlist/plib/mat_cr.h b/src/lib/netlist/plib/mat_cr.h index 061e186d37f..2da661d39d7 100644 --- a/src/lib/netlist/plib/mat_cr.h +++ b/src/lib/netlist/plib/mat_cr.h @@ -73,7 +73,7 @@ namespace plib ~pmatrix_cr_t() = default; - constexpr std::size_t size() const noexcept { return (N>0) ? static_cast<std::size_t>(N) : m_size; } + constexpr std::size_t size() const noexcept { return (N>0) ? narrow_cast<std::size_t>(N) : m_size; } void clear() noexcept { @@ -132,9 +132,9 @@ namespace plib row_idx[k] = nz; for (std::size_t j=0; j < size(); j++) - if (f[k][j] <= max_fill && plib::abs(static_cast<int>(k)-static_cast<int>(j)) <= static_cast<int>(band_width)) + if (f[k][j] <= max_fill && plib::abs(narrow_cast<int>(k)-narrow_cast<int>(j)) <= narrow_cast<int>(band_width)) { - col_idx[nz] = static_cast<C>(j); + col_idx[nz] = narrow_cast<C>(j); if (j == k) diag[k] = nz; nz++; @@ -150,7 +150,7 @@ namespace plib { for (std::size_t j=k + 1; j < size(); j++) if (f[j][k] < FILL_INFINITY) - nzbd[k].push_back(static_cast<C>(j)); + nzbd[k].push_back(narrow_cast<C>(j)); nzbd[k].push_back(0); // end of sequence } @@ -343,7 +343,7 @@ namespace plib { for (std::size_t i = 0; i < m_ge_par.size(); i++) if (plib::container::contains( m_ge_par[i], k)) - return static_cast<int>(i); + return narrow_cast<int>(i); return -1; } @@ -525,7 +525,7 @@ namespace plib } } if (found) - ilu_rows[p++] = static_cast<index_type>(i); + ilu_rows[p++] = narrow_cast<index_type>(i); } ilu_rows[p] = 0; // end of array this->build_from_fill_mat(fill, ilup); //, m_band_width); // ILU(2) diff --git a/src/lib/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h index 045461c8418..b3ebcbc52e5 100644 --- a/src/lib/netlist/plib/palloc.h +++ b/src/lib/netlist/plib/palloc.h @@ -9,6 +9,7 @@ /// #include "pconfig.h" +#include "pgsl.h" #include "pmath.h" #include "pstring.h" #include "ptypes.h" @@ -27,27 +28,51 @@ namespace plib { //============================================================ + // aligned types + //============================================================ + +#if 0 +#if (PUSE_ALIGNED_HINTS) + template <typename T, std::size_t A> + using aligned_type __attribute__((aligned(A))) = T; +#else + template <typename T, std::size_t A> + using aligned_type = T; +#endif + + template <typename T, std::size_t A> + using aligned_pointer = aligned_type<T, A> *; + + template <typename T, std::size_t A> + using const_aligned_pointer = const aligned_type<T, A> *; + + template <typename T, std::size_t A> + using aligned_reference = aligned_type<T, A> &; + + template <typename T, std::size_t A> + using const_aligned_reference = const aligned_type<T, A> &; +#endif + //============================================================ // Standard arena_deleter //============================================================ - template <typename P, typename T, typename A = void> - struct arena_deleter + template <typename P, typename T, bool X> + struct arena_deleter_base { - }; template <typename P, typename T> - struct arena_deleter<P, T, std::enable_if_t<!P::has_static_deallocator>> + struct arena_deleter_base<P, T, false> { using arena_storage_type = P; - constexpr arena_deleter(arena_storage_type *a = nullptr) noexcept + constexpr arena_deleter_base(arena_storage_type *a = nullptr) noexcept : m_a(a) { } template<typename U, typename = std::enable_if_t<std::is_convertible< U*, T*>::value>> - arena_deleter(const arena_deleter<P, U> &rhs) noexcept + arena_deleter_base(const arena_deleter_base<P, U, false> &rhs) noexcept : m_a(rhs.m_a) { } void operator()(T *p) noexcept @@ -61,18 +86,18 @@ namespace plib { }; template <typename P, typename T> - struct arena_deleter<P, T, std::enable_if_t<P::has_static_deallocator>> + struct arena_deleter_base<P, T, true> { using arena_storage_type = P; - constexpr arena_deleter(arena_storage_type *a = nullptr) noexcept + constexpr arena_deleter_base(arena_storage_type *a = nullptr) noexcept { plib::unused_var(a); } template<typename U, typename = typename std::enable_if<std::is_convertible< U*, T*>::value>::type> - arena_deleter(const arena_deleter<P, U> &rhs) noexcept + arena_deleter_base(const arena_deleter_base<P, U, true> &rhs) noexcept { plib::unused_var(rhs); } @@ -85,6 +110,13 @@ namespace plib { } }; + template <typename P, typename T> + struct arena_deleter : public arena_deleter_base<P, T, P::has_static_deallocator> + { + using base_type = arena_deleter_base<P, T, P::has_static_deallocator>; + using base_type::base_type; + }; + //============================================================ // owned_ptr: smart pointer with ownership information //============================================================ @@ -209,7 +241,8 @@ namespace plib { { public: using value_type = T; - static constexpr const std::size_t align_size = ALIGN; + using pointer = T *; + static /*constexpr*/ const std::size_t align_size = ALIGN; using arena_type = ARENA; static_assert(align_size >= alignof(T) && (align_size % alignof(T)) == 0, @@ -237,14 +270,14 @@ namespace plib { using other = arena_allocator<ARENA, U, ALIGN>; }; - T* allocate(std::size_t n) + pointer allocate(std::size_t n) { return reinterpret_cast<T *>(m_a.allocate(ALIGN, sizeof(T) * n)); //NOLINT } - void deallocate(T* p, std::size_t n) noexcept + void deallocate(pointer p, std::size_t n) noexcept { - m_a.deallocate(p, n); + m_a.deallocate(p, sizeof(T) * n); } template<typename U, typename... Args> @@ -296,171 +329,88 @@ namespace plib { // The previous code compiled with gcc and clang on all platforms and // compilers apart from MSVC. - template <typename P, bool HSD> + template <typename P, bool HSD, bool HSA> + struct arena_base; + + template <typename P, bool HSD, bool HSA> struct arena_core { static constexpr const bool has_static_deallocator = HSD; + static constexpr const bool has_static_allocator = HSA; using size_type = std::size_t; template <class T, size_type ALIGN = alignof(T)> using allocator_type = arena_allocator<P, T, ALIGN>; + template <class T> + using deleter_type = arena_deleter<P, T>; + + template <typename T> + using unique_ptr = std::unique_ptr<T, deleter_type<T>>; + + template <typename T> + using owned_ptr = plib::owned_ptr<T, deleter_type<T>>; + static inline P &instance() noexcept { static P s_arena; return s_arena; } - size_type cur_alloc() const noexcept { return m_stat_cur_alloc(); } // NOLINT(readability-convert-member-functions-to-static) - size_type max_alloc() const noexcept { return m_stat_max_alloc(); } // NOLINT(readability-convert-member-functions-to-static) - protected: - static size_t &m_stat_cur_alloc() noexcept { static size_t val = 0; return val; } - static size_t &m_stat_max_alloc() noexcept { static size_t val = 0; return val; } - - }; - - template <typename P, bool HSD> - struct arena_hsd : public arena_core<P, HSD> - { - template<typename T> - inline void free(T *ptr) noexcept - { - ptr->~T(); - static_cast<P *>(this)->deallocate(ptr, sizeof(T)); - } - }; + friend struct arena_base<P, HSD, HSA>; + private: + size_t m_stat_cur_alloc = 0; + size_t m_stat_max_alloc = 0; - template <typename P> - struct arena_hsd<P, true> : public arena_core<P, true> - { - template<typename T> - static inline void free(T *ptr) noexcept - { - ptr->~T(); - P::deallocate(ptr, sizeof(T)); - } }; - template <typename P, bool HSD, bool HSA> - struct arena_base : public arena_hsd<P, HSD> + struct arena_base : public arena_core<P, HSD, HSA> { - template <class T> - using deleter_type = arena_deleter<P, T>; + using base_type = arena_core<P, HSD, HSA>; + using size_type = typename base_type::size_type; - template <typename T> - using unique_ptr = std::unique_ptr<T, deleter_type<T>>; - - template <typename T> - using owned_ptr = plib::owned_ptr<T, deleter_type<T>>; + static size_type cur_alloc() noexcept { return base_type::instance().m_stat_cur_alloc; } + static size_type max_alloc() noexcept { return base_type::instance().m_stat_max_alloc; } - template<typename T, typename... Args> - inline unique_ptr<T> make_unique(Args&&... args) + static inline void inc_alloc_stat(size_type size) { - auto *mem = static_cast<P *>(this)->allocate(alignof(T), sizeof(T)); - try - { - // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) - auto *mema = new (mem) T(std::forward<Args>(args)...); - return unique_ptr<T>(mema, deleter_type<T>()); - } - catch (...) - { - static_cast<P *>(this)->deallocate(mem, sizeof(T)); - throw; - } + auto &i = base_type::instance(); + i.m_stat_cur_alloc += size; + if (i.m_stat_max_alloc <i.m_stat_cur_alloc) + i.m_stat_max_alloc = i.m_stat_cur_alloc; } - - template<typename T, typename... Args> - inline owned_ptr<T> make_owned(Args&&... args) + static inline void dec_alloc_stat(size_type size) { - auto *mem = static_cast<P *>(this)->allocate(alignof(T), sizeof(T)); - try - { - // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) - auto *mema = new (mem) T(std::forward<Args>(args)...); - return owned_ptr<T>(mema, true, deleter_type<T>()); - } - catch (...) - { - static_cast<P *>(this)->deallocate(mem, sizeof(T)); - throw; - } + base_type::instance().m_stat_cur_alloc -= size; } - - template<typename T, typename... Args> - inline T * alloc(Args&&... args) - { - auto *p = static_cast<P *>(this)->allocate(alignof(T), sizeof(T)); - // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) - return new(p) T(std::forward<Args>(args)...); - } - }; - template <typename P, bool HSD> - struct arena_base<P, HSD, true> : public arena_hsd<P, HSD> + template <typename P> + struct arena_base<P, false, false> : public arena_core<P, false, false> { - template <class T> - using deleter_type = arena_deleter<P, T>; + using size_type = typename arena_core<P, false, false>::size_type; - template <typename T> - using unique_ptr = std::unique_ptr<T, deleter_type<T>>; - - template <typename T> - using owned_ptr = plib::owned_ptr<T, deleter_type<T>>; + size_type cur_alloc() const noexcept { return this->m_stat_cur_alloc; } + size_type max_alloc() const noexcept { return this->m_stat_max_alloc; } - template<typename T, typename... Args> - static inline unique_ptr<T> make_unique(Args&&... args) + inline void inc_alloc_stat(size_type size) { - auto *mem = P::allocate(alignof(T), sizeof(T)); - try - { - // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) - auto *mema = new (mem) T(std::forward<Args>(args)...); - return unique_ptr<T>(mema, deleter_type<T>()); - } - catch (...) - { - P::deallocate(mem, sizeof(T)); - throw; - } + this->m_stat_cur_alloc += size; + if (this->m_stat_max_alloc < this->m_stat_cur_alloc) + this->m_stat_max_alloc = this->m_stat_cur_alloc; } - - template<typename T, typename... Args> - static inline owned_ptr<T> make_owned(Args&&... args) + inline void dec_alloc_stat(size_type size) { - auto *mem = P::allocate(alignof(T), sizeof(T)); - try - { - // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) - auto *mema = new (mem) T(std::forward<Args>(args)...); - return owned_ptr<T>(mema, true, deleter_type<T>()); - } - catch (...) - { - P::deallocate(mem, sizeof(T)); - throw; - } - } - - template<typename T, typename... Args> - static inline T * alloc(Args&&... args) - { - auto *p = P::allocate(alignof(T), sizeof(T)); - // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) - return new(p) T(std::forward<Args>(args)...); + this->m_stat_cur_alloc -= size; } }; - struct aligned_arena : public arena_base<aligned_arena, true, true> { - static inline void *allocate( size_t alignment, size_t size ) + static inline gsl::owner<void *> allocate( size_t alignment, size_t size ) { - m_stat_cur_alloc() += size; - if (m_stat_max_alloc() < m_stat_cur_alloc()) - m_stat_max_alloc() = m_stat_cur_alloc(); + inc_alloc_stat(size); #if (PUSE_ALIGNED_ALLOCATION) #if defined(_WIN32) || defined(_WIN64) || defined(_MSC_VER) @@ -472,7 +422,7 @@ namespace plib { } return p; #else - return aligned_alloc(alignment, size); + return static_cast<gsl::owner<void *>>(aligned_alloc(alignment, size)); #endif #else unused_var(alignment); @@ -480,10 +430,10 @@ namespace plib { #endif } - static inline void deallocate( void *ptr, size_t size ) noexcept + static inline void deallocate(gsl::owner<void *> ptr, size_t size ) noexcept { //unused_var(size); - m_stat_cur_alloc() -= size; + dec_alloc_stat(size); #if (PUSE_ALIGNED_ALLOCATION) // NOLINTNEXTLINE(cppcoreguidelines-no-malloc) ::free(ptr); @@ -504,14 +454,14 @@ namespace plib { { static inline void *allocate( size_t alignment, size_t size ) { - m_stat_cur_alloc() += size; + inc_alloc_stat(size); unused_var(alignment); return ::operator new(size); } static inline void deallocate( void *ptr, size_t size ) noexcept { - m_stat_cur_alloc() -= size; + dec_alloc_stat(size); ::operator delete(ptr); } @@ -522,31 +472,116 @@ namespace plib { } }; - template <typename T, std::size_t ALIGN> - constexpr T *assume_aligned_ptr(T *p) noexcept + namespace detail { - static_assert(ALIGN >= alignof(T), "Alignment must be greater or equal to alignof(T)"); - static_assert(is_pow2(ALIGN), "Alignment must be a power of 2"); + template<typename T, typename ARENA, typename... Args> + static inline T * alloc(Args&&... args) + { + auto *mem = ARENA::allocate(alignof(T), sizeof(T)); + try + { + // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) + return new (mem) T(std::forward<Args>(args)...); + } + catch (...) + { + ARENA::deallocate(mem, sizeof(T)); + throw; + } + } -#if (PUSE_ALIGNED_HINTS) - return reinterpret_cast<T *>(__builtin_assume_aligned(p, ALIGN)); -#else - return p; -#endif + template<typename ARENA, typename T> + static inline void free(T *ptr) noexcept + { + ptr->~T(); + ARENA::deallocate(ptr, sizeof(T)); + } + + template<typename T, typename ARENA, typename... Args> + static inline T * alloc(ARENA &arena, Args&&... args) + { + auto *mem = arena.allocate(alignof(T), sizeof(T)); + try + { + // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) + return new (mem) T(std::forward<Args>(args)...); + } + catch (...) + { + arena.deallocate(mem, sizeof(T)); + throw; + } + } + + template<typename ARENA, typename T> + static inline void free(ARENA &arena, T *ptr) noexcept + { + ptr->~T(); + arena.deallocate(ptr, sizeof(T)); + } + } // namespace detail + + + + template<typename T, typename ARENA, typename... Args> + static inline + std::enable_if_t<ARENA::has_static_allocator, typename ARENA::template unique_ptr<T>> + make_unique(Args&&... args) + { + using up_type = typename ARENA::template unique_ptr<T>; + using deleter_type = typename ARENA::template deleter_type<T>; + auto *mem = detail::alloc<T, ARENA>(std::forward<Args>(args)...); + return up_type(mem, deleter_type()); } - template <typename T, std::size_t ALIGN> - constexpr const T *assume_aligned_ptr(const T *p) noexcept + template<typename T, typename ARENA, typename... Args> + static inline + std::enable_if_t<!ARENA::has_static_allocator, typename ARENA::template unique_ptr<T>> + make_unique(Args&&... args) { - static_assert(ALIGN >= alignof(T), "Alignment must be greater or equal to alignof(T)"); - static_assert(is_pow2(ALIGN), "Alignment must be a power of 2"); -#if (PUSE_ALIGNED_HINTS) - return reinterpret_cast<const T *>(__builtin_assume_aligned(p, ALIGN)); -#else - return p; -#endif + return make_unique<T>(ARENA::instance(), std::forward<Args>(args)...); } + template<typename T, typename ARENA, typename... Args> + static inline + typename ARENA::template unique_ptr<T> + make_unique(ARENA &arena, Args&&... args) + { + using up_type = typename ARENA::template unique_ptr<T>; + using deleter_type = typename ARENA::template deleter_type<T>; + auto *mem = detail::alloc<T>(arena, std::forward<Args>(args)...); + return up_type(mem, deleter_type(&arena)); + } + + template<typename T, typename ARENA, typename... Args> + static inline + std::enable_if_t<ARENA::has_static_allocator, typename ARENA::template owned_ptr<T>> + make_owned(Args&&... args) + { + using op_type = typename ARENA::template owned_ptr<T>; + using deleter_type = typename ARENA::template deleter_type<T>; + auto *mem = detail::alloc<T, ARENA>(std::forward<Args>(args)...); + return op_type(mem, true, deleter_type()); + } + + template<typename T, typename ARENA, typename... Args> + static inline + std::enable_if_t<!ARENA::has_static_allocator, typename ARENA::template owned_ptr<T>> + make_owned(Args&&... args) + { + return make_owned<T>(ARENA::instance(), std::forward<Args>(args)...); + } + + template<typename T, typename ARENA, typename... Args> + static inline typename ARENA::template owned_ptr<T> make_owned(ARENA &arena, Args&&... args) + { + using op_type = typename ARENA::template owned_ptr<T>; + using deleter_type = typename ARENA::template deleter_type<T>; + auto *mem = detail::alloc<T>(arena, std::forward<Args>(args)...); + return op_type(mem, true, deleter_type(&arena)); + } + + template <class T, std::size_t ALIGN = alignof(T)> using aligned_allocator = aligned_arena::allocator_type<T, ALIGN>; @@ -557,56 +592,71 @@ namespace plib { PDEFINE_HAS_MEMBER(has_align, align_size); - template <typename T, typename X = void> - struct align_traits + template <typename T, bool X> + struct align_traits_base { + static_assert(!has_align<T>::value, "no align"); static constexpr const std::size_t align_size = alignof(std::max_align_t); static constexpr const std::size_t value_size = sizeof(typename T::value_type); static constexpr const std::size_t stride_size = lcm(align_size, value_size) / value_size; }; template <typename T> - struct align_traits<T, std::enable_if_t<has_align<T>::value, void>> + struct align_traits_base<T, true> { + static_assert(has_align<T>::value, "no align"); static constexpr const std::size_t align_size = T::align_size; static constexpr const std::size_t value_size = sizeof(typename T::value_type); static constexpr const std::size_t stride_size = lcm(align_size, value_size) / value_size; }; - //============================================================ - // Aligned vector - //============================================================ + template <typename T> + struct align_traits : public align_traits_base<T, has_align<T>::value> + {}; - // FIXME: needs a separate file - template <typename T, std::size_t ALIGN = PALIGN_VECTOROPT, typename A = aligned_allocator<T, ALIGN>> - class aligned_vector : public std::vector<T, A> + template <typename BASEARENA = aligned_arena, std::size_t PAGESIZE = 1024> + class paged_arena : public arena_base<paged_arena<BASEARENA, PAGESIZE>, true, true> { public: - using base = std::vector<T, A>; - - using reference = typename base::reference; - using const_reference = typename base::const_reference; - using pointer = typename base::pointer; - using const_pointer = typename base::const_pointer; - using size_type = typename base::size_type; + paged_arena() + { + } - using base::base; + PCOPYASSIGNMOVE(paged_arena, delete) - base & as_base() noexcept { return *this; } - const base & as_base() const noexcept { return *this; } + ~paged_arena() = default; - constexpr reference operator[](size_type i) noexcept + static void *allocate(size_t align, size_t size) { - return assume_aligned_ptr<T, ALIGN>(&(base::operator[](0)))[i]; + plib::unused_var(align); + //size = ((size + PAGESIZE - 1) / PAGESIZE) * PAGESIZE; + return arena().allocate(PAGESIZE, size); } - constexpr const_reference operator[](size_type i) const noexcept + static void deallocate(void *ptr, size_t size) noexcept { - return assume_aligned_ptr<T, ALIGN>(&(base::operator[](0)))[i]; + //size = ((size + PAGESIZE - 1) / PAGESIZE) * PAGESIZE; + arena().deallocate(ptr, size); } - pointer data() noexcept { return assume_aligned_ptr<T, ALIGN>(base::data()); } - const_pointer data() const noexcept { return assume_aligned_ptr<T, ALIGN>(base::data()); } + bool operator ==(const paged_arena &rhs) const noexcept { return this == &rhs; } + + static BASEARENA &arena() noexcept { static BASEARENA m_arena; return m_arena; } + private: + }; + + //============================================================ + // Aligned vector + //============================================================ + + // FIXME: needs a separate file + template <typename T, std::size_t ALIGN = PALIGN_VECTOROPT, typename A = paged_arena<>>//aligned_arena> + class aligned_vector : public std::vector<T, typename A::template allocator_type<T, ALIGN>> + { + public: + using base = std::vector<T, typename A::template allocator_type<T, ALIGN>>; + + using base::base; }; diff --git a/src/lib/netlist/plib/parray.h b/src/lib/netlist/plib/parray.h index 0d89a56195c..2c2b0fc4270 100644 --- a/src/lib/netlist/plib/parray.h +++ b/src/lib/netlist/plib/parray.h @@ -21,19 +21,20 @@ namespace plib { - template <typename FT, int SIZE> + template <typename FT, int SIZE, typename ARENA> struct sizeabs { - static constexpr std::size_t ABS() noexcept { return (SIZE < 0) ? static_cast<std::size_t>(0 - SIZE) : static_cast<std::size_t>(SIZE); } + static constexpr std::size_t ABS() noexcept { return (SIZE < 0) ? narrow_cast<std::size_t>(0 - SIZE) : narrow_cast<std::size_t>(SIZE); } using container = typename std::array<FT, ABS()> ; }; - template <typename FT> - struct sizeabs<FT, 0> + template <typename FT, typename ARENA> + struct sizeabs<FT, 0, ARENA> { static constexpr std::size_t ABS() noexcept { return 0; } + using allocator_type = typename ARENA::template allocator_type<FT, PALIGN_VECTOROPT>; //using container = typename std::vector<FT, arena_allocator<mempool, FT, 64>>; - using container = typename std::vector<FT, aligned_allocator<FT, PALIGN_VECTOROPT>>; + using container = typename std::vector<FT, allocator_type>; }; /// \brief Array with preallocated or dynamic allocation. @@ -51,17 +52,20 @@ namespace plib { /// I consider > 10% performance difference to be a use case. /// - template <typename FT, int SIZE> + template <typename FT, int SIZE, typename ARENA = aligned_arena> struct parray { public: - static constexpr std::size_t SIZEABS() noexcept { return sizeabs<FT, SIZE>::ABS(); } + static constexpr std::size_t SIZEABS() noexcept { return sizeabs<FT, SIZE, ARENA>::ABS(); } - using base_type = typename sizeabs<FT, SIZE>::container; + using base_type = typename sizeabs<FT, SIZE, ARENA>::container; using size_type = typename base_type::size_type; - using reference = typename base_type::reference; - using const_reference = typename base_type::const_reference; - using value_type = typename base_type::value_type; + using value_type = FT; + using reference = FT &; + using const_reference = const FT &; + + using pointer = FT *; + using const_pointer = const FT *; template <int X = SIZE > parray(size_type size, std::enable_if_t<(X==0), int> = 0) @@ -70,7 +74,7 @@ namespace plib { } template <int X = SIZE > - parray(size_type size, FT val, std::enable_if_t<(X==0), int> = 0) + parray(size_type size, const FT &val, std::enable_if_t<(X==0), int> = 0) : m_a(size, val), m_size(size) { } @@ -85,7 +89,7 @@ namespace plib { } template <int X = SIZE > - parray(size_type size, FT val, std::enable_if_t<(X != 0), int> = 0) noexcept(false) + parray(size_type size, const FT &val, std::enable_if_t<(X != 0), int> = 0) noexcept(false) : m_size(size) { if ((SIZE < 0 && size > SIZEABS()) @@ -131,20 +135,19 @@ namespace plib { constexpr reference operator[](size_type i) noexcept { - return assume_aligned_ptr<FT, PALIGN_VECTOROPT>(&m_a[0])[i]; + return data()[i]; } constexpr const_reference operator[](size_type i) const noexcept { - return assume_aligned_ptr<FT, PALIGN_VECTOROPT>(&m_a[0])[i]; + return data()[i]; } - FT * data() noexcept { return assume_aligned_ptr<FT, PALIGN_VECTOROPT>(m_a.data()); } - const FT * data() const noexcept { return assume_aligned_ptr<FT, PALIGN_VECTOROPT>(m_a.data()); } + pointer data() noexcept { return m_a.data(); } + const_pointer data() const noexcept { return m_a.data(); } private: PALIGNAS_VECTOROPT() base_type m_a; - PALIGNAS_CACHELINE() size_type m_size; }; diff --git a/src/lib/netlist/plib/pchrono.h b/src/lib/netlist/plib/pchrono.h index feee8a30c3e..4a5e77d9ca2 100644 --- a/src/lib/netlist/plib/pchrono.h +++ b/src/lib/netlist/plib/pchrono.h @@ -9,6 +9,7 @@ /// #include "pconfig.h" +#include "pgsl.h" #include "ptypes.h" #include <chrono> @@ -212,8 +213,8 @@ namespace plib { ctype count() const noexcept { return m_count; } template <typename S> - S as_seconds() const noexcept { return static_cast<S>(total()) - / static_cast<S>(T::per_second()); } + S as_seconds() const noexcept { return narrow_cast<S>(total()) + / narrow_cast<S>(T::per_second()); } guard_t guard() noexcept { return guard_t(*this); } private: @@ -244,7 +245,7 @@ namespace plib { constexpr type total() const noexcept { return 0; } constexpr ctype count() const noexcept { return 0; } template <typename S> - S as_seconds() const noexcept { return static_cast<S>(0.0); } + S as_seconds() const noexcept { return narrow_cast<S>(0); } constexpr static bool enabled = false; guard_t guard() { return guard_t(); } }; diff --git a/src/lib/netlist/plib/pconfig.h b/src/lib/netlist/plib/pconfig.h index b719139d73f..984ed944acb 100644 --- a/src/lib/netlist/plib/pconfig.h +++ b/src/lib/netlist/plib/pconfig.h @@ -72,10 +72,11 @@ #define PALIGNAS_CACHELINE() PALIGNAS(PALIGN_CACHELINE) #define PALIGNAS_VECTOROPT() PALIGNAS(PALIGN_VECTOROPT) -// FIXME: Breaks mame build on windows due to -Wattribute +// FIXME: Breaks mame build on windows mingw due to -Wattribute // also triggers -Wattribute on ARM +// This is fixed on mingw version 10 // FIXME: no error on cross-compile - need further checks -#if defined(__GNUC__) && (defined(_WIN32) || defined(__arm__) || defined(__ARMEL__)) +#if defined(__GNUC__) && ((defined(_WIN32) && __GNUC__ < 10) || defined(__arm__) || defined(__ARMEL__)) #define PALIGNAS(x) #else #define PALIGNAS(x) alignas(x) @@ -83,7 +84,7 @@ /// \brief nvcc build flag. /// -/// Set this to 1 if you are building with NVIDIA nvcc +/// Set this to 101 if you are building with NVIDIA nvcc 10.1 /// #ifndef NVCCBUILD #define NVCCBUILD (0) @@ -166,5 +167,15 @@ typedef __float128 FLOAT128; #endif #endif +#if (PUSE_FLOAT128) +#if defined(__has_include) +#if !__has_include(<quadmath.h>) +//#pragma message "disabling PUSE_FLOAT128 due to missing quadmath.h" +#undef PUSE_FLOAT128 +#define PUSE_FLOAT128 (0) +#endif +#endif +#endif + #endif // PCONFIG_H_ diff --git a/src/lib/netlist/plib/pdynlib.h b/src/lib/netlist/plib/pdynlib.h index ffb3ae03b99..6fe91953529 100644 --- a/src/lib/netlist/plib/pdynlib.h +++ b/src/lib/netlist/plib/pdynlib.h @@ -31,6 +31,7 @@ namespace plib { template <typename T> T getsym(const pstring &name) const noexcept { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) return reinterpret_cast<T>(getsym_p(name)); } diff --git a/src/lib/netlist/plib/penum.h b/src/lib/netlist/plib/penum.h index ff15c9252c0..f965411d546 100644 --- a/src/lib/netlist/plib/penum.h +++ b/src/lib/netlist/plib/penum.h @@ -24,7 +24,7 @@ namespace plib // Implementation in putil.cpp. // Putting the code here leads to a performance decrease. static int from_string_int(const pstring &str, const pstring &x); - static pstring nthstr(int n, const pstring &str); + static pstring nthstr(std::size_t n, const pstring &str); }; } // namespace plib @@ -34,7 +34,6 @@ namespace plib enum E { __VA_ARGS__ }; \ constexpr ename (const E &v) : m_v(v) { } \ template <typename T> explicit constexpr ename(const T &val) { m_v = static_cast<E>(val); } \ - template <typename T> explicit constexpr ename(T && val) { m_v = static_cast<E>(val); } \ bool set_from_string (const pstring &s) { \ int f = from_string_int(strings(), s); \ if (f>=0) { m_v = static_cast<E>(f); return true; } \ @@ -44,7 +43,7 @@ namespace plib constexpr bool operator==(const ename &rhs) const noexcept {return m_v == rhs.m_v;} \ constexpr bool operator==(const E &rhs) const noexcept {return m_v == rhs;} \ pstring name() const { \ - return nthstr(static_cast<int>(m_v), strings()); \ + return nthstr(m_v, strings()); \ } \ private: E m_v; \ static pstring strings() {\ diff --git a/src/lib/netlist/plib/pexception.cpp b/src/lib/netlist/plib/pexception.cpp index d332f989321..56ef7f93efb 100644 --- a/src/lib/netlist/plib/pexception.cpp +++ b/src/lib/netlist/plib/pexception.cpp @@ -5,8 +5,8 @@ #include "pfmtlog.h" #include <cfenv> -#include <iostream> #include <cfloat> +#include <iostream> #if (defined(__x86_64__) || defined(__i386__)) && defined(__linux__) #define HAS_FEENABLE_EXCEPT (1) diff --git a/src/lib/netlist/plib/pfmtlog.cpp b/src/lib/netlist/plib/pfmtlog.cpp index d776e0133da..ddb9b5dd2e5 100644 --- a/src/lib/netlist/plib/pfmtlog.cpp +++ b/src/lib/netlist/plib/pfmtlog.cpp @@ -92,7 +92,7 @@ pfmt::rtype pfmt::setfmt(std::stringstream &strm, char32_t cfmt_spec) // a.b format here ... char32_t pend(0); int width(0); - if (fmt != "" && pstring("duxofge").find(static_cast<pstring::value_type>(cfmt_spec)) != pstring::npos) + if (!fmt.empty() && pstring("duxofge").find(static_cast<pstring::value_type>(cfmt_spec)) != pstring::npos) { pend = static_cast<char32_t>(fmt.at(fmt.size() - 1)); if (pstring("duxofge").find(static_cast<pstring::value_type>(pend)) == pstring::npos) @@ -113,7 +113,7 @@ pfmt::rtype pfmt::setfmt(std::stringstream &strm, char32_t cfmt_spec) strm << std::setprecision(pstonum_ne_def<int>(fmt.substr(pdot + 1), 6)); width = pstonum_ne_def<int>(left(fmt,pdot), 0); } - else if (fmt != "") + else if (!fmt.empty()) width = pstonum_ne_def<int>(fmt, 0); auto aw(plib::abs(width)); diff --git a/src/lib/netlist/plib/pfmtlog.h b/src/lib/netlist/plib/pfmtlog.h index 793c59bf954..ac2a5e9a747 100644 --- a/src/lib/netlist/plib/pfmtlog.h +++ b/src/lib/netlist/plib/pfmtlog.h @@ -55,7 +55,7 @@ namespace plib { static char32_t fmt_spec() { return 'f'; } static inline void streamify(std::ostream &s, const FLOAT128 &v) { - s << static_cast<long double>(v); + s << narrow_cast<long double>(v); } }; #endif @@ -322,7 +322,7 @@ namespace plib { if (build_enabled && enabled && m_enabled) { pfmt pf(fmt); - static_cast<T *>(this)->vdowrite(xlog(pf, std::forward<Args>(args)...)); + dynamic_cast<T &>(*this).vdowrite(xlog(pf, std::forward<Args>(args)...)); } } @@ -332,7 +332,7 @@ namespace plib { if (build_enabled && m_enabled) { pfmt pf(fmt); - static_cast<const T *>(this)->vdowrite(xlog(pf, std::forward<Args>(args)...)); + static_cast<const T &>(*this).vdowrite(xlog(pf, std::forward<Args>(args)...)); } } diff --git a/src/lib/netlist/plib/pfunction.cpp b/src/lib/netlist/plib/pfunction.cpp index c5e011dfbb9..3a360c7a33f 100644 --- a/src/lib/netlist/plib/pfunction.cpp +++ b/src/lib/netlist/plib/pfunction.cpp @@ -25,26 +25,26 @@ namespace plib { { static std::map<pstring, F> units_si_stat = { - //{ "Y", static_cast<F>(1e24) }, // NOLINT: Yotta - //{ "Z", static_cast<F>(1e21) }, // NOLINT: Zetta - //{ "E", static_cast<F>(1e18) }, // NOLINT: Exa - { "P", static_cast<F>(1e15) }, // NOLINT: Peta - { "T", static_cast<F>(1e12) }, // NOLINT: Tera - { "G", static_cast<F>( 1e9) }, // NOLINT: Giga - { "M", static_cast<F>( 1e6) }, // NOLINT: Mega - { "k", static_cast<F>( 1e3) }, // NOLINT: Kilo - { "h", static_cast<F>( 1e2) }, // NOLINT: Hekto - //{ "da", static_cast<F>(1e1) }, // NOLINT: Deka - { "d", static_cast<F>(1e-1) }, // NOLINT: Dezi - { "c", static_cast<F>(1e-2) }, // NOLINT: Zenti - { "m", static_cast<F>(1e-3) }, // NOLINT: Milli - { "μ", static_cast<F>(1e-6) }, // NOLINT: Mikro - { "n", static_cast<F>(1e-9) }, // NOLINT: Nano - { "p", static_cast<F>(1e-12) }, // NOLINT: Piko - { "f", static_cast<F>(1e-15) }, // NOLINT: Femto - { "a", static_cast<F>(1e-18) }, // NOLINT: Atto - { "z", static_cast<F>(1e-21) }, // NOLINT: Zepto - { "y", static_cast<F>(1e-24) }, // NOLINT: Yokto + //{ "Y", narrow_cast<F>(1e24) }, // NOLINT: Yotta + //{ "Z", narrow_cast<F>(1e21) }, // NOLINT: Zetta + //{ "E", narrow_cast<F>(1e18) }, // NOLINT: Exa + { "P", narrow_cast<F>(1e15) }, // NOLINT: Peta + { "T", narrow_cast<F>(1e12) }, // NOLINT: Tera + { "G", narrow_cast<F>( 1e9) }, // NOLINT: Giga + { "M", narrow_cast<F>( 1e6) }, // NOLINT: Mega + { "k", narrow_cast<F>( 1e3) }, // NOLINT: Kilo + { "h", narrow_cast<F>( 1e2) }, // NOLINT: Hekto + //{ "da", narrow_cast<F>(1e1) }, // NOLINT: Deka + { "d", narrow_cast<F>(1e-1) }, // NOLINT: Dezi + { "c", narrow_cast<F>(1e-2) }, // NOLINT: Zenti + { "m", narrow_cast<F>(1e-3) }, // NOLINT: Milli + { "μ", narrow_cast<F>(1e-6) }, // NOLINT: Mikro + { "n", narrow_cast<F>(1e-9) }, // NOLINT: Nano + { "p", narrow_cast<F>(1e-12) }, // NOLINT: Piko + { "f", narrow_cast<F>(1e-15) }, // NOLINT: Femto + { "a", narrow_cast<F>(1e-18) }, // NOLINT: Atto + { "z", narrow_cast<F>(1e-21) }, // NOLINT: Zepto + { "y", narrow_cast<F>(1e-24) }, // NOLINT: Yokto }; return units_si_stat; } @@ -105,7 +105,7 @@ namespace plib { if (inputs[i] == cmd) { rc.m_cmd = PUSH_INPUT; - rc.m_param = static_cast<NT>(i); + rc.m_param = narrow_cast<NT>(i); stk += 1; break; } @@ -128,7 +128,7 @@ namespace plib { } if (stk < 1) throw pexception(plib::pfmt("pfunction: stack underflow on token <{1}> in <{2}>")(cmd)(expr)); - if (stk >= static_cast<int>(MAX_STACK)) + if (stk >= narrow_cast<int>(MAX_STACK)) throw pexception(plib::pfmt("pfunction: stack overflow on token <{1}> in <{2}>")(cmd)(expr)); m_precompiled.push_back(rc); } @@ -286,7 +286,7 @@ namespace plib { lfsr >>= 1; if (lsb) lfsr ^= 0xB400U; // NOLINT: taps 15, 13, 12, 10 - return static_cast<NT>(lfsr) / static_cast<NT>(0xffffU); // NOLINT + return narrow_cast<NT>(lfsr) / narrow_cast<NT>(0xffffU); // NOLINT } template <typename NT> @@ -297,7 +297,7 @@ namespace plib { lfsr >>= 1; if (lsb) lfsr ^= 0xB400U; // NOLINT: taps 15, 13, 12, 10 - return static_cast<NT>(lfsr); + return narrow_cast<NT>(lfsr); } #define ST1 stack[ptr] @@ -333,7 +333,7 @@ namespace plib { stack[ptr++] = lfsr_random<value_type>(m_lfsr); break; case PUSH_INPUT: - stack[ptr++] = values[static_cast<unsigned>(rc.m_param)]; + stack[ptr++] = values[narrow_cast<unsigned>(rc.m_param)]; break; case PUSH_CONST: stack[ptr++] = rc.m_param; diff --git a/src/lib/netlist/plib/pgsl.h b/src/lib/netlist/plib/pgsl.h new file mode 100644 index 00000000000..ab7798071a5 --- /dev/null +++ b/src/lib/netlist/plib/pgsl.h @@ -0,0 +1,105 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud + +#ifndef PGSL_H_ +#define PGSL_H_ + +/// +/// \file pgsl.h +/// +/// This core guidelines gsl implementation currently provides only enough +/// functionality to syntactically support a very limited number of the +/// gsl specification. +/// +/// Going forward this approach may be extended. +/// + +#include "pconfig.h" +#include "pexception.h" +#include "ptypes.h" + +#include <exception> +#include <type_traits> +#include <utility> + +#if defined(__has_builtin) // clang and gcc 10 + #if __has_builtin(__builtin_unreachable) + #define gsl_Expects(e) ((e) ? static_cast<void>(0) : __builtin_unreachable()) + #endif +#elif defined(__GNUC__) && !(defined( __CUDACC__ ) && defined( __CUDA_ARCH__ )) + #define gsl_Expects(e) ((e) ? static_cast<void>(0) : __builtin_unreachable()) +#elif defined(_MSC_VER) + #define gsl_Expects(e) __assume(e) +#else + #define gsl_Expects(e) ((e) ? static_cast<void>(0) : static_cast<void>(0)) +#endif + +#undef gsl_Expects +#define gsl_Expects(e) do {} while (0) +#define gsl_Ensures(e) gsl_Expects(e) + +namespace plib { + namespace pgsl { + + struct narrowing_error : public std::exception {}; + + template <typename T> + using owner = T; + + template <typename T> + using not_null = T; + + /// \brief perform a narrowing cast without checks + /// + template <typename T, typename O> + inline constexpr T narrow_cast(O && v) noexcept + { + static_assert(plib::is_arithmetic<T>::value && std::is_convertible<std::remove_reference_t<O>, T>::value, "narrow cast expects conversion between arithmetic types"); + return static_cast<T>(std::forward<O>(v)); + } + + /// \brief perform a narrowing cast terminating if loss of precision + /// + /// The c++ core guidelines require the narrow function to raise an error + /// This will make narrow noexcept(false). This has shown to have a + /// measurable impact on performance and thus we deviate we deviate from + /// the standard here. + /// + template <typename T, typename O> + inline T narrow(O && v) noexcept + { + static_assert(plib::is_arithmetic<T>::value && std::is_convertible<std::remove_reference_t<O>, T>::value, "narrow cast expects conversion between arithmetic types"); + + const auto val = static_cast<T>(std::forward<O>(v)); + if( v == static_cast<std::remove_reference_t<O>>(val)) + { + return val; + } + + plib::terminate("narrowing_error"); + // throw narrowing_error(); + } + + } // namespace pgsl + + /// \brief downcast from base tpye to derived type + /// + /// The cpp core guidelines require a very careful use of static cast + /// for downcast operations. This template is used to identify these uses + /// and later for debug builds use dynamic_cast. + /// + template <typename D, typename B> + inline constexpr D downcast(B && b) noexcept + { + static_assert(std::is_pointer<D>::value || std::is_reference<D>::value, "downcast only supports pointers or reference for derived"); + static_assert(std::is_pointer<B>::value || std::is_reference<B>::value, "downcast only supports pointers or reference for base"); + return static_cast<D>(std::forward<B>(b)); + } + + using pgsl::narrow_cast; +} // namespace plib + +//FIXME: This is the place to use more complete implementations +namespace gsl = plib::pgsl; + +#endif // PGSL_H_ diff --git a/src/lib/netlist/plib/plists.h b/src/lib/netlist/plib/plists.h index f5151b95011..4e3ddace57e 100644 --- a/src/lib/netlist/plib/plists.h +++ b/src/lib/netlist/plib/plists.h @@ -62,11 +62,13 @@ namespace plib { reference operator[](size_type index) noexcept { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) return reinterpret_cast<reference>(m_buf[index]); } constexpr const_reference operator[](size_type index) const noexcept { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) return reinterpret_cast<const_reference>(m_buf[index]); } @@ -78,13 +80,19 @@ namespace plib { new (&m_buf[index]) C(std::forward<Args>(args)...); } + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) iterator begin() const noexcept { return reinterpret_cast<iterator>(&m_buf[0]); } + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) iterator end() const noexcept { return reinterpret_cast<iterator>(&m_buf[N]); } + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) iterator begin() noexcept { return reinterpret_cast<iterator>(&m_buf[0]); } + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) iterator end() noexcept { return reinterpret_cast<iterator>(&m_buf[N]); } + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) const_iterator cbegin() const noexcept { return reinterpret_cast<const_iterator>(&m_buf[0]); } + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) const_iterator cend() const noexcept { return reinterpret_cast<const_iterator>(&m_buf[N]); } protected: diff --git a/src/lib/netlist/plib/pmain.cpp b/src/lib/netlist/plib/pmain.cpp index 1e4791adea8..fb428a179fa 100644 --- a/src/lib/netlist/plib/pmain.cpp +++ b/src/lib/netlist/plib/pmain.cpp @@ -29,8 +29,8 @@ namespace plib { int app::main_utfX(int argc, char *argv[]) { std::vector<putf8string> arg; - for (std::size_t i = 0; i < static_cast<std::size_t>(argc); i++) - arg.push_back(putf8string(argv[i])); + for (std::size_t i = 0; i < narrow_cast<std::size_t>(argc); i++) + arg.emplace_back(putf8string(argv[i])); return main_utfX(arg); } @@ -38,8 +38,8 @@ namespace plib { int app::main_utfX(int argc, wchar_t *argv[]) { std::vector<putf8string> arg; - for (std::size_t i = 0; i < static_cast<std::size_t>(argc); i++) - arg.push_back(putf8string(pwstring(argv[i]))); + for (std::size_t i = 0; i < narrow_cast<std::size_t>(argc); i++) + arg.emplace_back(putf8string(pwstring(argv[i]))); return main_utfX(arg); } diff --git a/src/lib/netlist/plib/pmath.h b/src/lib/netlist/plib/pmath.h index 652cff059d2..e70c8f7fd55 100644 --- a/src/lib/netlist/plib/pmath.h +++ b/src/lib/netlist/plib/pmath.h @@ -15,9 +15,7 @@ #include <cmath> #include <type_traits> -#if (PUSE_FLOAT128) -#include <quadmath.h> -#endif +// quadmath.h included by ptypes.h namespace plib { diff --git a/src/lib/netlist/plib/pmatrix2d.h b/src/lib/netlist/plib/pmatrix2d.h index b48c531a921..b9a2ebee116 100644..100755 --- a/src/lib/netlist/plib/pmatrix2d.h +++ b/src/lib/netlist/plib/pmatrix2d.h @@ -17,51 +17,182 @@ namespace plib { - template<typename T, typename A = aligned_allocator<T>> + template<typename T, typename A = aligned_arena> class pmatrix2d { public: using size_type = std::size_t; + using arena_type = A; + using allocator_type = typename A::template allocator_type<T>; + + static constexpr const size_type align_size = align_traits<allocator_type>::align_size; + static constexpr const size_type stride_size = align_traits<allocator_type>::stride_size; + using value_type = T; - using allocator_type = A; + using reference = T &; + using const_reference = const T &; + + using pointer = T *; + using const_pointer = const T *; - static constexpr const size_type align_size = align_traits<A>::align_size; - static constexpr const size_type stride_size = align_traits<A>::stride_size; pmatrix2d() noexcept - : m_N(0), m_M(0), m_stride(8), m_v() + : m_N(0), m_M(0), m_stride(8), m_v(nullptr) { } pmatrix2d(size_type N, size_type M) : m_N(N), m_M(M), m_v() { + gsl_Expects(N>0); + gsl_Expects(M>0); m_stride = ((M + stride_size-1) / stride_size) * stride_size; - m_v.resize(N * m_stride); + m_v = m_a.allocate(N * m_stride); + for (std::size_t i = 0; i < N * m_stride; i++) + ::new(&m_v[i]) T(); + } + + ~pmatrix2d() + { + if (m_v != nullptr) + { + for (std::size_t i = 0; i < m_N * m_stride; i++) + (&m_v[i])->~T(); + m_a.deallocate(m_v, m_N * m_stride); + } } void resize(size_type N, size_type M) { + gsl_Expects(N>0); + gsl_Expects(M>0); + if (m_v != nullptr) + { + for (std::size_t i = 0; i < N * m_stride; i++) + (&m_v[i])->~T(); + m_a.deallocate(m_v, N * m_stride); + } m_N = N; m_M = M; m_stride = ((M + stride_size-1) / stride_size) * stride_size; - m_v.resize(N * m_stride); + m_v = m_a.allocate(N * m_stride); + for (std::size_t i = 0; i < N * m_stride; i++) + ::new(&m_v[i]) T(); + } + + constexpr pointer operator[] (size_type row) noexcept + { + return &m_v[m_stride * row]; + } + + constexpr const_pointer operator[] (size_type row) const noexcept + { + return &m_v[m_stride * row]; + } + + reference operator()(size_type r, size_type c) noexcept + { + return (*this)[r][c]; + } + + const_reference operator()(size_type r, size_type c) const noexcept + { + return (*this)[r][c]; + } + + // for compatibility with vrl variant + void set(size_type r, size_type c, const value_type &v) noexcept + { + (*this)[r][c] = v; + } + + pointer data() noexcept + { + return m_v; + } + + const_pointer data() const noexcept + { + return m_v; + } + + size_type didx(size_type r, size_type c) const noexcept + { + return m_stride * r + c; + } + private: + + size_type m_N; + size_type m_M; + size_type m_stride; + + T * __restrict m_v; + + allocator_type m_a; + }; + + // variable row length matrix + template<typename T, typename A = aligned_arena> + class pmatrix2d_vrl + { + public: + using size_type = std::size_t; + using value_type = T; + using arena_type = A; + using allocator_type = typename A::template allocator_type<T>; + + static constexpr const size_type align_size = align_traits<allocator_type>::align_size; + static constexpr const size_type stride_size = align_traits<allocator_type>::stride_size; + pmatrix2d_vrl() noexcept + : m_N(0), m_M(0), m_v() + { + } + + pmatrix2d_vrl(size_type N, size_type M) + : m_N(N), m_M(M), m_v() + { + m_row.resize(N + 1, 0); + m_v.resize(N); //FIXME + } + + void resize(size_type N, size_type M) + { + m_N = N; + m_M = M; + m_row.resize(N + 1); + for (std::size_t i = 0; i < m_N; i++) + m_row[i] = 0; + m_v.resize(N); //FIXME } constexpr T * operator[] (size_type row) noexcept { - return assume_aligned_ptr<T, align_size>(&m_v[m_stride * row]); + return &(m_v[m_row[row]]); } constexpr const T * operator[] (size_type row) const noexcept { - return assume_aligned_ptr<T, align_size>(&m_v[m_stride * row]); + return &(m_v[m_row[row]]); } + //FIXME: no check! T & operator()(size_type r, size_type c) noexcept { return (*this)[r][c]; } + void set(size_type r, size_type c, const T &v) noexcept + { + if (c + m_row[r] >= m_row[r + 1]) + { + m_v.insert(m_v.begin() + narrow_cast<std::ptrdiff_t>(m_row[r+1]), v); + for (size_type i = r + 1; i <= m_N; i++) + m_row[i] = m_row[i] + 1; + } + else + (*this)[r][c] = v; + } + + //FIXME: no check! const T & operator()(size_type r, size_type c) const noexcept { return (*this)[r][c]; @@ -77,19 +208,22 @@ namespace plib return m_v.data(); } + //FIXME: no check! size_type didx(size_type r, size_type c) const noexcept { - return m_stride * r + c; + return m_row[r] + c; } + + std::size_t tx() const { return m_v.size(); } private: size_type m_N; size_type m_M; - size_type m_stride; - - std::vector<T, A> m_v; + std::vector<size_type, typename A::template allocator_type<size_type>> m_row; + std::vector<T, allocator_type> m_v; }; + } // namespace plib #endif // PMATRIX2D_H_ diff --git a/src/lib/netlist/plib/pmempool.h b/src/lib/netlist/plib/pmempool.h index 441595d9e58..ece0f117a8d 100644 --- a/src/lib/netlist/plib/pmempool.h +++ b/src/lib/netlist/plib/pmempool.h @@ -40,31 +40,26 @@ namespace plib { mempool_arena(size_t min_alloc = (1<<21), size_t min_align = PALIGN_CACHELINE) : m_min_alloc(min_alloc) , m_min_align(min_align) + , m_block_align(1024) , m_blocks(base_allocator_type<block *>(m_arena)) { - icount()++; } PCOPYASSIGNMOVE(mempool_arena, delete) ~mempool_arena() { - for (auto & b : m_blocks) { if (b->m_num_alloc != 0) { - plib::perrlogger("Found {} info blocks\n", sinfo().size()); + plib::perrlogger("Found {} info blocks\n", m_info.size()); plib::perrlogger("Found block with {} dangling allocations\n", b->m_num_alloc); } - m_arena.free(b); - //::operator delete(b->m_data); - } - if (icount()-- == 1) - { - if (!sinfo().empty()) - plib::perrlogger("Still found {} info blocks after last mempool deleted\n", sinfo().size()); + detail::free(m_arena, b); } + if (!m_info.empty()) + plib::perrlogger("Still found {} info blocks after mempool deleted\n", m_info.size()); } void *allocate(size_t align, size_t size) @@ -92,21 +87,18 @@ namespace plib { void *ret = reinterpret_cast<void *>(b->m_data + b->m_cur); auto capacity(rs); ret = std::align(align, size, ret, capacity); - sinfo().insert({ ret, info(b, b->m_cur)}); + m_info.insert({ ret, info(b, b->m_cur)}); rs -= (capacity - size); b->m_cur += rs; - base_type::m_stat_cur_alloc() += size; - if (base_type::m_stat_max_alloc() < base_type::m_stat_cur_alloc()) - base_type::m_stat_max_alloc() = base_type::m_stat_cur_alloc(); + this->inc_alloc_stat(size); return ret; } - /*static */ void deallocate(void *ptr, size_t size) noexcept + void deallocate(void *ptr, size_t size) noexcept { - - auto it = sinfo().find(ptr); - if (it == sinfo().end()) + auto it = m_info.find(ptr); + if (it == m_info.end()) plib::terminate("mempool::free - pointer not found"); block *b = it->second.m_block; if (b->m_num_alloc == 0) @@ -115,7 +107,7 @@ namespace plib { { mempool_arena &mp = b->m_mempool; b->m_num_alloc--; - mp.m_stat_cur_alloc() -= size; + mp.dec_alloc_stat(size); if (b->m_num_alloc == 0) { auto itb = std::find(mp.m_blocks.begin(), mp.m_blocks.end(), b); @@ -123,14 +115,15 @@ namespace plib { plib::terminate("mempool::free - block not found"); mp.m_blocks.erase(itb); - m_arena.free(b); + detail::free(mp.base_arena(), b); } - sinfo().erase(it); + m_info.erase(it); } } bool operator ==(const mempool_arena &rhs) const noexcept { return this == &rhs; } + BASEARENA &base_arena() noexcept { return m_arena; } private: struct block { @@ -142,17 +135,19 @@ namespace plib { { min_bytes = std::max(mp.m_min_alloc, min_bytes); m_free = min_bytes; - size_type alloc_bytes = (min_bytes + mp.m_min_align); // - 1); // & ~(mp.m_min_align - 1); + m_bytes_allocated = (min_bytes + mp.m_block_align); // - 1); // & ~(mp.m_min_align - 1); // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) - m_data_allocated = new std::uint8_t[alloc_bytes]; + //m_data_allocated = new std::uint8_t[alloc_bytes]; + m_data_allocated = static_cast<std::uint8_t *>(mp.base_arena().allocate(mp.m_block_align, m_bytes_allocated)); void *r = m_data_allocated; - std::align(mp.m_min_align, min_bytes, r, alloc_bytes); + std::align(mp.m_block_align, min_bytes, r, m_bytes_allocated); m_data = reinterpret_cast<std::uint8_t *>(r); } ~block() { //::operator delete(m_data_allocated); - delete [] m_data_allocated; + //delete [] m_data_allocated; + m_mempool.base_arena().deallocate(m_data_allocated, m_bytes_allocated); } block(const block &) = delete; @@ -163,6 +158,7 @@ namespace plib { size_type m_num_alloc; size_type m_free; size_type m_cur; + size_type m_bytes_allocated; std::uint8_t *m_data; std::uint8_t *m_data_allocated; mempool_arena &m_mempool; @@ -180,27 +176,20 @@ namespace plib { block * new_block(size_type min_bytes) { - auto *b = m_arena.template alloc<block>(*this, min_bytes); + auto *b = detail::alloc<block>(m_arena, *this, min_bytes); m_blocks.push_back(b); return b; } - static std::unordered_map<void *, info> &sinfo() - { - static std::unordered_map<void *, info> spinfo; - return spinfo; - } - - static std::size_t &icount() - { - static std::size_t count = 0; - return count; - } - size_t m_min_alloc; size_t m_min_align; + size_t m_block_align; BASEARENA m_arena; + using base_allocator_typex = typename BASEARENA::template allocator_type<std::pair<void * const, info>>; + std::unordered_map<void *, info, std::hash<void *>, std::equal_to<void *>, + base_allocator_typex> m_info; +// std::unordered_map<void *, info> m_info; std::vector<block *, typename BASEARENA::template allocator_type<block *>> m_blocks; }; diff --git a/src/lib/netlist/plib/poptions.cpp b/src/lib/netlist/plib/poptions.cpp index 690feb38c61..c22076f6d0c 100644 --- a/src/lib/netlist/plib/poptions.cpp +++ b/src/lib/netlist/plib/poptions.cpp @@ -68,7 +68,7 @@ namespace plib { auto *o = dynamic_cast<option *>(opt); if (o != nullptr) { - if (o->short_opt() == "" && o->long_opt() == "") + if (o->short_opt().empty() && o->long_opt().empty()) { auto *ov = dynamic_cast<option_args *>(o); if (ov != nullptr) @@ -103,7 +103,7 @@ namespace plib { if (!seen_other_args && plib::startsWith(arg, "--")) { auto v = psplit(arg.substr(2),"="); - if (!v.empty() && v[0] != "") + if (!v.empty() && !v[0].empty()) { opt = getopt_long(v[0]); has_equal_arg = (v.size() > 1); @@ -210,11 +210,11 @@ namespace plib { if (auto * const opt = dynamic_cast<option *>(optbase)) { pstring line = ""; - if (opt->short_opt() != "") + if (!opt->short_opt().empty()) line += " -" + opt->short_opt(); - if (opt->long_opt() != "") + if (!opt->long_opt().empty()) { - if (line != "") + if (!line.empty()) line += ", "; else line = " "; @@ -248,7 +248,8 @@ namespace plib { else if (auto *grp = dynamic_cast<option_group *>(optbase)) { ret += "\n" + grp->group() + ":\n"; - if (grp->help() != "") ret += split_paragraphs(grp->help(), width, 4, 4) + "\n\n"; + if (!grp->help().empty()) + ret += split_paragraphs(grp->help(), width, 4, 4) + "\n\n"; } } // FIXME: other help ... @@ -274,7 +275,7 @@ namespace plib { for (const auto & optbase : m_opts) { auto *opt = dynamic_cast<option *>(optbase); - if (opt != nullptr && arg != "" && opt->short_opt() == arg) + if (opt != nullptr && !arg.empty() && opt->short_opt() == arg) return opt; } return nullptr; @@ -284,7 +285,7 @@ namespace plib { for (const auto & optbase : m_opts) { auto *opt = dynamic_cast<option *>(optbase); - if (opt != nullptr && arg !="" && opt->long_opt() == arg) + if (opt != nullptr && !arg.empty() && opt->long_opt() == arg) return opt; } return nullptr; diff --git a/src/lib/netlist/plib/poptions.h b/src/lib/netlist/plib/poptions.h index ba39ba24050..714a357da86 100644 --- a/src/lib/netlist/plib/poptions.h +++ b/src/lib/netlist/plib/poptions.h @@ -136,7 +136,7 @@ namespace plib { if (raw != plib::container::npos) { - m_val = static_cast<T>(raw); + m_val = narrow_cast<T>(raw); return 0; } diff --git a/src/lib/netlist/plib/ppmf.h b/src/lib/netlist/plib/ppmf.h index 622a295d3dd..8e20ddcf2f1 100644 --- a/src/lib/netlist/plib/ppmf.h +++ b/src/lib/netlist/plib/ppmf.h @@ -159,32 +159,43 @@ namespace plib { if (PMFINTERNAL == 1) { // apply the "this" delta to the object first - // NOLINTNEXTLINE(clang-analyzer-core.UndefinedBinaryOperatorResult) + // NOLINTNEXTLINE(clang-analyzer-core.UndefinedBinaryOperatorResult,cppcoreguidelines-pro-type-reinterpret-cast) generic_class *o_p_delta = reinterpret_cast<generic_class *>(reinterpret_cast<std::uint8_t *>(object) + m_this_delta); // if the low bit of the vtable index is clear, then it is just a raw function pointer if ((m_function & 1) == 0) + { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) func = reinterpret_cast<generic_function>(m_function); + } else { // otherwise, it is the byte index into the vtable where the actual function lives + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) std::uint8_t *vtable_base = *reinterpret_cast<std::uint8_t **>(o_p_delta); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) func = *reinterpret_cast<generic_function *>(vtable_base + m_function - 1); } object = o_p_delta; } else if (PMFINTERNAL == 2) { - if ((m_this_delta & 1) == 0) { + if ((m_this_delta & 1) == 0) + { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) object = reinterpret_cast<generic_class *>(reinterpret_cast<std::uint8_t *>(object) + m_this_delta); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) func = reinterpret_cast<generic_function>(m_function); } else { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) object = reinterpret_cast<generic_class *>(reinterpret_cast<std::uint8_t *>(object)); // otherwise, it is the byte index into the vtable where the actual function lives + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) std::uint8_t *vtable_base = *reinterpret_cast<std::uint8_t **>(object); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) func = *reinterpret_cast<generic_function *>(vtable_base + m_function + m_this_delta - 1); } } @@ -192,8 +203,10 @@ namespace plib { { const int SINGLE_MEMFUNCPTR_SIZE = sizeof(void (generic_class::*)()); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) func = reinterpret_cast<generic_function>(m_function); if (m_size == SINGLE_MEMFUNCPTR_SIZE + sizeof(int)) + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) object = reinterpret_cast<generic_class *>(reinterpret_cast<std::uint8_t *>(object) + m_this_delta); } } @@ -231,8 +244,10 @@ namespace plib { { raw_type mfpo(mftp); generic_function_storage rfunc(nullptr); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) auto *robject = reinterpret_cast<generic_class *>(object); mfpo.convert_to_generic(rfunc, robject); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) return std::make_pair(reinterpret_cast<FunctionType>(rfunc), reinterpret_cast<ObjectType *>(robject)); } template<typename O> @@ -259,6 +274,7 @@ namespace plib { template<typename FunctionType, typename MemberFunctionType, typename ObjectType> static std::pair<FunctionType, ObjectType *> get(MemberFunctionType mftp, ObjectType *object) { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) return std::make_pair(reinterpret_cast<FunctionType>(mftp), reinterpret_cast<ObjectType *>(object)); } @@ -286,6 +302,7 @@ namespace plib { template<typename FunctionType, typename MemberFunctionType, typename ObjectType> static std::pair<FunctionType, ObjectType *> get(MemberFunctionType mftp, ObjectType *object) { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) return std::make_pair(reinterpret_cast<FunctionType>(object->*mftp), reinterpret_cast<ObjectType *>(object)); } template<typename O> @@ -315,6 +332,7 @@ namespace plib { pmfp_base() : m_obj(nullptr) { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) auto *s = reinterpret_cast<std::uint8_t *>(&m_resolved); std::fill(s, s + sizeof(m_resolved), 0); } @@ -323,6 +341,7 @@ namespace plib { pmfp_base(specific_member_function<O> mftp, O *object) : m_obj(nullptr) { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) auto *s = reinterpret_cast<std::uint8_t *>(&m_resolved); std::fill(s, s + sizeof(m_resolved), 0); bind(object, &mftp); @@ -351,6 +370,7 @@ namespace plib { //auto pFunc = *reinterpret_cast<specific_member_function<O> *>(fraw); // mftp; specific_member_function<O> pFunc; static_assert(sizeof(pFunc) >= sizeof(MF), "size error"); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) *reinterpret_cast<MF *>(&pFunc) = *fraw; auto r = helper::template get<member_abi_function<O>>(pFunc, object); @@ -360,18 +380,21 @@ namespace plib { //*reinterpret_cast<member_abi_function<O> *>(&m_resolved) = r.first; reinterpret_copy(r.first, m_resolved); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) m_obj = reinterpret_cast<generic_class *>(r.second); } template<typename O> R call(O *obj, Targs&&... args) const noexcept(true) { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) return helper::call(reinterpret_cast<member_abi_function<O> *>(&m_resolved), obj, std::forward<Targs>(args)...); } R call(Targs&&... args) const noexcept(true) { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) return helper::call(reinterpret_cast<const member_abi_function<generic_class> *>(&m_resolved), m_obj, std::forward<Targs>(args)...); } @@ -414,12 +437,13 @@ namespace plib { using static_creator = return_type (*)(const generic_member_function *, generic_class *); - late_pmfp() {} + late_pmfp() = default; template<typename O> late_pmfp(specific_member_function<O> mftp) { static_assert(sizeof(m_raw) >= sizeof(specific_member_function<O>), "size issue"); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) *reinterpret_cast<specific_member_function<O> *>(&m_raw) = mftp; m_creator = creator<O>; } @@ -427,6 +451,7 @@ namespace plib { template<typename O> return_type operator()(O *object) const { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) return m_creator(&m_raw, reinterpret_cast<generic_class *>(object)); } @@ -435,7 +460,9 @@ namespace plib { template <typename O> static return_type creator(const generic_member_function *raw, generic_class *obj) { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) auto p = reinterpret_cast<const specific_member_function<O> *>(raw); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) auto o = reinterpret_cast<O *>(obj); return return_type(*p, o); } diff --git a/src/lib/netlist/plib/ppreprocessor.cpp b/src/lib/netlist/plib/ppreprocessor.cpp index f13d3aeef43..b563576c6a8 100644 --- a/src/lib/netlist/plib/ppreprocessor.cpp +++ b/src/lib/netlist/plib/ppreprocessor.cpp @@ -461,7 +461,7 @@ namespace plib { m_if_level++; lt = replace_macros(lt); simple_iter<ppreprocessor> t(this, tokenize(lt.substr(3), m_expr_sep, true, true)); - auto val = static_cast<int>(prepro_expr(t, 255)); + auto val = narrow_cast<int>(prepro_expr(t, 255)); t.skip_ws(); if (!t.eod()) error("found unprocessed content at end of line"); @@ -489,7 +489,7 @@ namespace plib { m_if_flag ^= (1 << m_if_level); lt = replace_macros(lt); simple_iter<ppreprocessor> t(this, tokenize(lt.substr(5), m_expr_sep, true, true)); - auto val = static_cast<int>(prepro_expr(t, 255)); + auto val = narrow_cast<int>(prepro_expr(t, 255)); t.skip_ws(); if (!t.eod()) error("found unprocessed content at end of line"); @@ -559,7 +559,7 @@ namespace plib { auto *prevdef = get_define(n); if (lti.size() == 2) { - if (prevdef != nullptr && prevdef->m_replace != "") + if (prevdef != nullptr && !prevdef->m_replace.empty()) error("redefinition of " + n); m_defines.insert({n, define_t(n, "")}); } diff --git a/src/lib/netlist/plib/ppreprocessor.h b/src/lib/netlist/plib/ppreprocessor.h index 115f344cc69..467db358264 100644 --- a/src/lib/netlist/plib/ppreprocessor.h +++ b/src/lib/netlist/plib/ppreprocessor.h @@ -95,14 +95,14 @@ namespace plib { if (this->gptr() == this->egptr()) { // clang reports sign error - weird - std::size_t bytes = m_strm->m_outbuf.size() - static_cast<std::size_t>(m_strm->m_pos); + std::size_t bytes = m_strm->m_outbuf.size() - narrow_cast<std::size_t>(m_strm->m_pos); if (bytes > m_buf.size()) bytes = m_buf.size(); std::copy(m_strm->m_outbuf.c_str() + m_strm->m_pos, m_strm->m_outbuf.c_str() + m_strm->m_pos + bytes, m_buf.data()); this->setg(m_buf.data(), m_buf.data(), m_buf.data() + bytes); - m_strm->m_pos += static_cast<long>(bytes); + m_strm->m_pos += narrow_cast<long>(bytes); } return this->gptr() == this->egptr() diff --git a/src/lib/netlist/plib/prandom.h b/src/lib/netlist/plib/prandom.h index 65cdb3e1cf2..b2f9c89a9cf 100644 --- a/src/lib/netlist/plib/prandom.h +++ b/src/lib/netlist/plib/prandom.h @@ -9,6 +9,7 @@ /// #include "pconfig.h" +#include "pgsl.h" #include "pmath.h" #include "ptypes.h" @@ -50,7 +51,7 @@ namespace plib seed(5489); } - static constexpr T min() noexcept { return static_cast<T>(0); } + static constexpr T min() noexcept { return T(0); } static constexpr T max() noexcept { return ~T(0) >> (sizeof(T)*8 - w); } template <typename ST> @@ -103,7 +104,7 @@ namespace plib void twist() { const T lowest_w(~T(0) >> (sizeof(T)*8 - w)); - const T lower_mask((static_cast<T>(1) << r) - 1); // That is, the binary number of r 1's + const T lower_mask((T(1) << r) - 1); // That is, the binary number of r 1's const T upper_mask((~lower_mask) & lowest_w); for (std::size_t i=0; i<N; i++) @@ -122,10 +123,10 @@ namespace plib template <typename FT, typename T> FT normalize_uniform(T &p, FT m = constants<FT>::one(), FT b = constants<FT>::zero()) { - const auto mmin(static_cast<FT>(p.min())); - const auto mmax(static_cast<FT>(p.max())); + const auto mmin(narrow_cast<FT>(p.min())); + const auto mmax(narrow_cast<FT>(p.max())); // -> 0 to a - return (static_cast<FT>(p())- mmin) / (mmax - mmin) * m - b; + return (narrow_cast<FT>(p())- mmin) / (mmax - mmin) * m - b; } template<typename FT> diff --git a/src/lib/netlist/plib/pstonum.h b/src/lib/netlist/plib/pstonum.h index 630dee68422..c4bf692d177 100644 --- a/src/lib/netlist/plib/pstonum.h +++ b/src/lib/netlist/plib/pstonum.h @@ -10,6 +10,7 @@ #include "pconfig.h" #include "pexception.h" +#include "pgsl.h" #include "pmath.h" // for pstonum #include "pstring.h" @@ -36,9 +37,9 @@ namespace plib if (ss >> x) { auto pos(ss.tellg()); - if (pos == static_cast<decltype(pos)>(-1)) + if (pos == decltype(pos)(-1)) pos = len; - *idx = static_cast<std::size_t>(pos); + *idx = narrow_cast<std::size_t>(pos); } else *idx = constants<std::size_t>::zero(); @@ -88,7 +89,7 @@ namespace plib template <typename S> FLOAT128 operator()(std::locale loc, const S &arg, std::size_t *idx) { - return static_cast<FLOAT128>(pstonum_locale<long double>(loc, arg, idx)); + return narrow_cast<FLOAT128>(pstonum_locale<long double>(loc, arg, idx)); } }; #endif @@ -100,8 +101,8 @@ namespace plib std::size_t idx(0); auto ret = pstonum_helper<T>()(loc, cstr, &idx); using ret_type = decltype(ret); - if (ret >= static_cast<ret_type>(plib::numeric_limits<T>::lowest()) - && ret <= static_cast<ret_type>(plib::numeric_limits<T>::max())) + if (ret >= narrow_cast<ret_type>(plib::numeric_limits<T>::lowest()) + && ret <= narrow_cast<ret_type>(plib::numeric_limits<T>::max())) { if (cstr[idx] != 0) throw pexception(pstring("Continuation after numeric value ends: ") + pstring(cstr)); @@ -110,7 +111,7 @@ namespace plib { throw pexception(pstring("Out of range: ") + pstring(cstr)); } - return static_cast<T>(ret); + return narrow_cast<T>(ret); } template<typename R, typename T> diff --git a/src/lib/netlist/plib/pstream.h b/src/lib/netlist/plib/pstream.h index 87bb9240b64..b96c1f91a3b 100644 --- a/src/lib/netlist/plib/pstream.h +++ b/src/lib/netlist/plib/pstream.h @@ -18,10 +18,10 @@ #include <array> #include <fstream> +#include <fstream> #include <ios> #include <iostream> #include <sstream> -#include <fstream> #include <type_traits> #include <vector> @@ -204,7 +204,7 @@ public: { const auto sz(static_cast<std::streamsize>(val.size())); write(sz); - m_strm.write(reinterpret_cast<const std::ostream::char_type *>(val.data()), sz * static_cast<std::streamsize>(sizeof(T))); + m_strm.write(reinterpret_cast<const std::ostream::char_type *>(val.data()), sz * gsl::narrow<std::streamsize>(sizeof(T))); } private: @@ -225,7 +225,7 @@ public: template <typename T> void read(T &val) { - m_strm.read(reinterpret_cast<std::istream::char_type *>(&val), sizeof(T)); + m_strm.read(reinterpret_cast<std::istream::char_type *>(&val), gsl::narrow<std::streamsize>(sizeof(T))); } void read( pstring &s) @@ -244,7 +244,7 @@ public: std::size_t sz = 0; read(sz); val.resize(sz); - m_strm.read(reinterpret_cast<std::istream::char_type *>(val.data()), static_cast<std::streamsize>(sizeof(T) * sz)); + m_strm.read(reinterpret_cast<std::istream::char_type *>(val.data()), gsl::narrow<std::streamsize>(sizeof(T) * sz)); } private: @@ -289,7 +289,7 @@ public: pstring_t<pwchar_traits>, pstring_t<putf8_traits>>::type; template <typename T> - explicit ofstream(const pstring_t<T> name, ios_base::openmode mode = ios_base::in) + explicit ofstream(const pstring_t<T> name, ios_base::openmode mode = ios_base::out | ios_base::trunc) : std::ofstream(filename_type(name).c_str(), mode) { } diff --git a/src/lib/netlist/plib/pstring.cpp b/src/lib/netlist/plib/pstring.cpp index 5d26ed984aa..b0dc3d313c6 100644 --- a/src/lib/netlist/plib/pstring.cpp +++ b/src/lib/netlist/plib/pstring.cpp @@ -27,7 +27,7 @@ int pstring_t<F>::compare(const pstring_t &right) const noexcept } if (si != this->end() && ri != right.end()) - return static_cast<int>(*si) - static_cast<int>(*ri); + return plib::narrow_cast<int>(*si) - plib::narrow_cast<int>(*ri); if (this->mem_t_size() > right.mem_t_size()) return 1; if (this->mem_t_size() < right.mem_t_size()) @@ -45,8 +45,8 @@ pstring_t<F> pstring_t<F>::substr(size_type start, size_type nlen) const { if (nlen == npos || start + nlen > l) nlen = l - start; - auto ps = std::next(begin(), static_cast<difference_type>(start)); - auto pe = std::next(ps, static_cast<difference_type>(nlen)); + auto ps = std::next(begin(), plib::narrow_cast<difference_type>(start)); + auto pe = std::next(ps, plib::narrow_cast<difference_type>(nlen)); ret.m_str.assign(ps.p, pe.p); } return ret; diff --git a/src/lib/netlist/plib/pstrutil.h b/src/lib/netlist/plib/pstrutil.h index 651e5bfd558..2b79935dc3a 100644 --- a/src/lib/netlist/plib/pstrutil.h +++ b/src/lib/netlist/plib/pstrutil.h @@ -8,6 +8,7 @@ /// \file pstrutil.h /// +#include "pgsl.h" #include "pstring.h" #include "ptypes.h" @@ -157,13 +158,13 @@ namespace plib template<typename T, typename TA> bool startsWith(const T &str, const TA &arg) { - return startsWith(str, static_cast<pstring>(arg)); + return startsWith(str, static_cast<T>(arg)); } template<typename T, typename TA> bool endsWith(const T &str, const TA &arg) { - return endsWith(str, static_cast<pstring>(arg)); + return endsWith(str, static_cast<T>(arg)); } template<typename T> @@ -172,7 +173,7 @@ namespace plib const T *p = str; while (*p != 0) p++; - return static_cast<std::size_t>(p - str); + return narrow_cast<std::size_t>(p - str); } template<typename T> diff --git a/src/lib/netlist/plib/ptimed_queue.h b/src/lib/netlist/plib/ptimed_queue.h index 191657b60c0..f257580c726 100644 --- a/src/lib/netlist/plib/ptimed_queue.h +++ b/src/lib/netlist/plib/ptimed_queue.h @@ -210,7 +210,7 @@ namespace plib { // save state support & mame disasm const T *listptr() const noexcept { return &m_list[1]; } - std::size_t size() const noexcept { return static_cast<std::size_t>(m_end - &m_list[1]); } + std::size_t size() const noexcept { return narrow_cast<std::size_t>(m_end - &m_list[1]); } const T & operator[](std::size_t index) const noexcept { return m_list[ 1 + index]; } private: using mutex_type = pspin_mutex<TS>; diff --git a/src/lib/netlist/plib/ptypes.h b/src/lib/netlist/plib/ptypes.h index ef3dd724388..fdeeb69eca4 100644 --- a/src/lib/netlist/plib/ptypes.h +++ b/src/lib/netlist/plib/ptypes.h @@ -15,8 +15,12 @@ #include <type_traits> #if (PUSE_FLOAT128) +#if defined(__has_include) +#if __has_include(<quadmath.h>) #include <quadmath.h> #endif +#endif +#endif // noexcept on move operator -> issue with macosx clang #define PCOPYASSIGNMOVE(name, def) \ @@ -273,7 +277,7 @@ namespace plib template <typename T> class name \ { \ template <typename U> static long test(decltype(&U:: member)); \ - template <typename U> static char test(...); \ + template <typename U> static char test(...); \ public: \ static constexpr const bool value = sizeof(test<T>(nullptr)) == sizeof(long); \ } diff --git a/src/lib/netlist/plib/putil.cpp b/src/lib/netlist/plib/putil.cpp index 9cc6e5ec9ae..60eab248c9d 100644 --- a/src/lib/netlist/plib/putil.cpp +++ b/src/lib/netlist/plib/putil.cpp @@ -3,9 +3,9 @@ #include "putil.h" #include "penum.h" +#include "pstream.h" #include "pstrutil.h" #include "ptypes.h" -#include "pstream.h" #include <algorithm> #include <cstdlib> // needed for getenv ... @@ -22,7 +22,7 @@ namespace plib { auto p=find_last_of(filename, pstring(PATH_SEPS)); pstring ret = (p == pstring::npos) ? filename : filename.substr(p+1); - if (suffix != "" && endsWith(ret, suffix)) + if (!suffix.empty() && endsWith(ret, suffix)) return ret.substr(0, ret.length() - suffix.length()); return ret; } @@ -49,7 +49,7 @@ namespace plib pstring ret = ""; for( const auto &elem : list ) { - if (ret == "") + if (ret.empty()) ret = elem; else ret += (PATH_SEP + elem); @@ -126,7 +126,7 @@ namespace plib auto i = str.begin(); while (i != str.end()) { - auto p = static_cast<std::size_t>(-1); + auto p = pstring::npos; for (std::size_t j=0; j < onstrl.size(); j++) { if (std::equal(onstrl[j].begin(), onstrl[j].end(), i)) @@ -135,14 +135,14 @@ namespace plib break; } } - if (p != static_cast<std::size_t>(-1)) + if (p != pstring::npos) { - if (col != "") + if (!col.empty()) ret.push_back(col); col = ""; ret.push_back(onstrl[p]); - i = std::next(i, static_cast<pstring::difference_type>(onstrl[p].length())); + i = std::next(i, narrow_cast<pstring::difference_type>(onstrl[p].length())); } else { @@ -151,7 +151,7 @@ namespace plib i++; } } - if (col != "") + if (!col.empty()) ret.push_back(col); return ret; @@ -170,8 +170,8 @@ namespace plib return -1; } - pstring penum_base::nthstr(int n, const pstring &str) + pstring penum_base::nthstr(std::size_t n, const pstring &str) { - return psplit(str, ",", false)[static_cast<std::size_t>(n)]; + return psplit(str, ",", false)[n]; } } // namespace plib diff --git a/src/lib/netlist/plib/putil.h b/src/lib/netlist/plib/putil.h index 8ceec3d7151..dde1918ebaf 100644 --- a/src/lib/netlist/plib/putil.h +++ b/src/lib/netlist/plib/putil.h @@ -14,8 +14,8 @@ #include <algorithm> #include <initializer_list> -#include <vector> #include <sstream> +#include <vector> #define PSTRINGIFY_HELP(y) # y #define PSTRINGIFY(x) PSTRINGIFY_HELP(x) @@ -262,7 +262,9 @@ namespace plib void reinterpret_copy(S &s, D &d) { static_assert(sizeof(D) >= sizeof(S), "size mismatch"); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) auto *dp = reinterpret_cast<std::uint8_t *>(&d); + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) const auto *sp = reinterpret_cast<std::uint8_t *>(&s); std::copy(sp, sp + sizeof(S), dp); } @@ -290,14 +292,14 @@ namespace plib { auto it = std::find(con.begin(), con.end(), elem); if (it != con.end()) - return static_cast<std::size_t>(it - con.begin()); + return narrow_cast<std::size_t>(it - con.begin()); return npos; } template <class C> void insert_at(C &con, const std::size_t index, const typename C::value_type &elem) { - con.insert(con.begin() + static_cast<std::ptrdiff_t>(index), elem); + con.insert(con.begin() + narrow_cast<std::ptrdiff_t>(index), elem); } template <class C> @@ -336,7 +338,7 @@ namespace plib { std::size_t result = 5381; // NOLINT for (const T* p = buf; p != buf + size; p++) - result = ((result << 5) + result ) ^ (result >> (32 - 5)) ^ static_cast<std::size_t>(*p); // NOLINT + result = ((result << 5) + result ) ^ (result >> (32 - 5)) ^ narrow_cast<std::size_t>(*p); // NOLINT return result; } diff --git a/src/lib/netlist/prg/nltool.cpp b/src/lib/netlist/prg/nltool.cpp index e267a19c60d..a7eaa6927a9 100644 --- a/src/lib/netlist/prg/nltool.cpp +++ b/src/lib/netlist/prg/nltool.cpp @@ -206,7 +206,7 @@ public: return stream_ptr(nullptr); strm->imbue(std::locale::classic()); - return std::move(strm); // FIXME: for c++11 clang builds; + return strm; } private: @@ -225,14 +225,14 @@ public: netlist::host_arena::unique_ptr<plib::dynlib_base> static_solver_lib() const override { if (m_boostlib == "builtin") - return netlist::host_arena::make_unique<plib::dynlib_static>(nl_static_solver_syms); + return plib::make_unique<plib::dynlib_static, netlist::host_arena>(nl_static_solver_syms); if (m_boostlib == "generic") - return netlist::host_arena::make_unique<plib::dynlib_static>(nullptr); + return plib::make_unique<plib::dynlib_static, netlist::host_arena>(nullptr); if (NL_DISABLE_DYNAMIC_LOAD) throw netlist::nl_exception("Dynamic library loading not supported due to project security concerns."); //pstring libpath = plib::util::environment("NL_BOOSTLIB", plib::util::buildpath({".", "nlboost.so"})); - return netlist::host_arena::make_unique<plib::dynlib>(m_boostlib); + return plib::make_unique<plib::dynlib, netlist::host_arena>(m_boostlib); } private: @@ -245,7 +245,7 @@ class netlist_tool_t : public netlist::netlist_state_t public: netlist_tool_t(tool_app_t &app, const pstring &name, const pstring &boostlib) - : netlist::netlist_state_t(name, netlist::host_arena::make_unique<netlist_tool_callbacks_t>(app, boostlib)) + : netlist::netlist_state_t(name, plib::make_unique<netlist_tool_callbacks_t, netlist::host_arena>(app, boostlib)) { } @@ -364,13 +364,13 @@ struct input_t case netlist::param_t::POINTER: throw netlist::nl_exception(plib::pfmt("param {1} is not numeric\n")(m_param.param().name())); case netlist::param_t::DOUBLE: - static_cast<netlist::param_fp_t*>(&m_param.param())->set(m_value); + plib::downcast<netlist::param_fp_t &>(m_param.param()).set(m_value); break; case netlist::param_t::INTEGER: - static_cast<netlist::param_int_t*>(&m_param.param())->set(static_cast<int>(m_value)); + plib::downcast<netlist::param_int_t &>(m_param.param()).set(static_cast<int>(m_value)); break; case netlist::param_t::LOGIC: - static_cast<netlist::param_logic_t*>(&m_param.param())->set(static_cast<bool>(m_value)); + plib::downcast<netlist::param_logic_t &>(m_param.param()).set(static_cast<bool>(m_value)); break; } } @@ -383,7 +383,7 @@ struct input_t static std::vector<input_t> read_input(const netlist::setup_t &setup, const pstring &fname) { std::vector<input_t> ret; - if (fname != "") + if (!fname.empty()) { plib::putf8_reader r = plib::putf8_reader(std::make_unique<plib::ifstream>(plib::filesystem::u8path(fname))); if (r.stream().fail()) @@ -392,7 +392,7 @@ static std::vector<input_t> read_input(const netlist::setup_t &setup, const pstr pstring l; while (r.readline(l)) { - if (l != "") + if (!l.empty()) { input_t inp(setup, l); ret.push_back(inp); @@ -659,6 +659,8 @@ void tool_app_t::static_compile() } } plib::ofstream sout(opt_out()); + if (sout.fail()) + throw netlist::nl_exception(netlist::MF_FILE_OPEN_ERROR(opt_out())); sout << "#include \"plib/pdynlib.h\"\n\n"; for (auto &e : map) @@ -666,6 +668,7 @@ void tool_app_t::static_compile() sout << "// " << e.second.m_module << "\n"; sout << e.second.m_code; } + sout << "extern plib::dynlib_static_sym nl_static_solver_syms[];\n"; sout << "plib::dynlib_static_sym nl_static_solver_syms[] = {\n"; for (auto &e : map) { @@ -721,7 +724,7 @@ static doc_ext read_docsrc(const pstring &fname, const pstring &id) if (plib::startsWith(l, "//-")) { l = plib::trim(l.substr(3)); - if (l != "") + if (!l.empty()) { auto a(plib::psplit(l, ":", true)); if (a.empty() || (a.size() > 2)) @@ -761,7 +764,7 @@ static doc_ext read_docsrc(const pstring &fname, const pstring &id) else if (n == "FunctionTable") ret.functiontable = v; else if (n == "Param") - ret.params.push_back(std::pair<pstring, pstring>(v2, plib::trim(v.substr(v2.length())))); + ret.params.emplace_back(v2, plib::trim(v.substr(v2.length()))); else if (n == "Example") { ret.example = plib::psplit(plib::trim(v),",",true); @@ -818,7 +821,7 @@ void tool_app_t::header_entry(const netlist::factory::element_t *e) avs += ", " + s.substr(1); mac_out("// usage : " + e->name() + "(name" + vs + ")", false); - if (avs != "") + if (!avs.empty()) mac_out("// auto connect: " + avs.substr(2), false); mac_out("#define " + e->name() + "(...)"); @@ -942,7 +945,7 @@ void tool_app_t::create_docheader() { auto d(read_docsrc(e->source().file_name(), e->name())); - if (d.id != "") + if (!d.id.empty()) { pout("//! [{1} csynopsis]\n", e->name()); header_entry(e.get()); @@ -964,7 +967,7 @@ void tool_app_t::create_docheader() { //auto d(read_docsrc(e->source().file_name(), e->name())); - if (d.id != "") + if (!d.id.empty()) { poutprefix("///", ""); @@ -1017,7 +1020,7 @@ void tool_app_t::create_docheader() poutprefix("///", ""); poutprefix("///", " @section {}_4 Function Table", d.id); poutprefix("///", ""); - if (d.functiontable == "") + if (!d.functiontable.empty()) poutprefix("///", " Please refer to the datasheet."); else poutprefix("///", " {}", d.functiontable); diff --git a/src/lib/netlist/prg/nlwav.cpp b/src/lib/netlist/prg/nlwav.cpp index 9e3ba795554..2317495c677 100755 --- a/src/lib/netlist/prg/nlwav.cpp +++ b/src/lib/netlist/prg/nlwav.cpp @@ -655,10 +655,10 @@ void nlwav_app::convert_wav(std::ostream &ostrm, wav_t::format fmt) double dt = plib::reciprocal(static_cast<double>(opt_rate())); auto nchan = m_instrms.size(); - auto wo = arena::make_unique<wavwriter>(ostrm, opt_out() != "-", fmt, nchan, opt_rate(), opt_amp()); - auto ago = arena::make_unique<aggregator>(nchan, dt, aggregator::callback_type(&wavwriter::process, wo.get())); - auto fgo_hp = arena::make_unique<filter_hp>(opt_highpass(), opt_hpboost(), nchan, filter_hp::callback_type(&aggregator::process, ago.get())); - auto fgo_lp = arena::make_unique<filter_lp>(opt_lowpass(), nchan, filter_lp::callback_type(&filter_hp::process, fgo_hp.get())); + auto wo = plib::make_unique<wavwriter, arena>(ostrm, opt_out() != "-", fmt, nchan, opt_rate(), opt_amp()); + auto ago = plib::make_unique<aggregator, arena>(nchan, dt, aggregator::callback_type(&wavwriter::process, wo.get())); + auto fgo_hp = plib::make_unique<filter_hp, arena>(opt_highpass(), opt_hpboost(), nchan, filter_hp::callback_type(&aggregator::process, ago.get())); + auto fgo_lp = plib::make_unique<filter_lp, arena>(opt_lowpass(), nchan, filter_lp::callback_type(&filter_hp::process, fgo_hp.get())); auto topcb = log_processor::callback_type(&filter_lp::process, fgo_lp.get()); @@ -680,7 +680,7 @@ void nlwav_app::convert_wav(std::ostream &ostrm, wav_t::format fmt) void nlwav_app::convert_vcd(std::ostream &ostrm, vcdwriter::format_e format) { - arena::unique_ptr<vcdwriter> wo = arena::make_unique<vcdwriter>(ostrm, opt_args(), + arena::unique_ptr<vcdwriter> wo = plib::make_unique<vcdwriter, arena>(ostrm, opt_args(), format, opt_high(), opt_low()); log_processor::callback_type agcb = log_processor::callback_type(&vcdwriter::process, wo.get()); @@ -702,7 +702,7 @@ void nlwav_app::convert_vcd(std::ostream &ostrm, vcdwriter::format_e format) void nlwav_app::convert_tab(std::ostream &ostrm) { - auto wo = arena::make_unique<tabwriter>(ostrm, opt_args(), + auto wo = plib::make_unique<tabwriter, arena>(ostrm, opt_args(), opt_start(), opt_inc(), opt_samples()); log_processor::callback_type agcb = log_processor::callback_type(&tabwriter::process, wo.get()); diff --git a/src/lib/netlist/solver/nld_matrix_solver.cpp b/src/lib/netlist/solver/nld_matrix_solver.cpp index b5b2adf2245..87ae2de71d7 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.cpp +++ b/src/lib/netlist/solver/nld_matrix_solver.cpp @@ -121,7 +121,7 @@ namespace solver { pstring nname(this->name() + "." + pstring(plib::pfmt("m{1}")(m_inps.size()))); nl_assert(p->net().is_analog()); - auto net_proxy_output_u = state().make_pool_object<proxied_analog_output_t>(*this, nname, static_cast<analog_net_t *>(&p->net())); + auto net_proxy_output_u = state().make_pool_object<proxied_analog_output_t>(*this, nname, &dynamic_cast<analog_net_t &>(p->net())); net_proxy_output = net_proxy_output_u.get(); m_inps.emplace_back(std::move(net_proxy_output_u)); } @@ -375,6 +375,17 @@ namespace solver m_Idrn.resize(iN, max_count); m_connected_net_Vn.resize(iN, max_count); + // Initialize arrays to 0 (in case the vrl one is used + for (std::size_t k = 0; k < iN; k++) + for (std::size_t j = 0; j < m_terms[k].count(); j++) + { + m_gtn.set(k,j, nlconst::zero()); + m_gonn.set(k,j, nlconst::zero()); + m_Idrn.set(k,j, nlconst::zero()); + m_connected_net_Vn.set(k, j, nullptr); + } + + for (std::size_t k = 0; k < iN; k++) { auto count = m_terms[k].count(); @@ -421,7 +432,7 @@ namespace solver void matrix_solver_t::step(netlist_time delta) noexcept { - const auto dd(delta.as_fp<nl_fptype>()); + const auto dd(delta.as_fp<fptype>()); for (auto &d : m_step_funcs) d(dd); } @@ -478,7 +489,7 @@ namespace solver if (m_params.m_dynamic_ts) - return compute_next_timestep(delta.as_fp<nl_fptype>(), m_params.m_max_timestep); + return compute_next_timestep(delta.as_fp<fptype>(), m_params.m_max_timestep); return netlist_time::from_fp(m_params.m_max_timestep); } @@ -523,7 +534,7 @@ namespace solver return {colmax, colmin}; } - nl_fptype matrix_solver_t::get_weight_around_diag(std::size_t row, std::size_t diag) + matrix_solver_t::fptype matrix_solver_t::get_weight_around_diag(std::size_t row, std::size_t diag) { { // @@ -532,7 +543,7 @@ namespace solver std::vector<bool> touched(1024, false); // FIXME! - nl_fptype weight = nlconst::zero(); + fptype weight = nlconst::zero(); auto &term = m_terms[row]; for (std::size_t i = 0; i < term.count(); i++) { @@ -545,7 +556,7 @@ namespace solver if (colu==row) colu = static_cast<unsigned>(diag); else if (colu==diag) colu = static_cast<unsigned>(row); - weight = weight + plib::abs(static_cast<nl_fptype>(colu) - static_cast<nl_fptype>(diag)); + weight = weight + plib::abs(static_cast<fptype>(colu) - static_cast<fptype>(diag)); touched[colu] = true; } } @@ -585,14 +596,14 @@ namespace solver log().verbose(" has {1} dynamic elements", this->dynamic_device_count()); log().verbose(" has {1} timestep elements", this->timestep_device_count()); log().verbose(" {1:6.3} average newton raphson loops", - static_cast<nl_fptype>(this->m_stat_newton_raphson) / static_cast<nl_fptype>(this->m_stat_vsolver_calls)); + static_cast<fptype>(this->m_stat_newton_raphson) / static_cast<fptype>(this->m_stat_vsolver_calls)); log().verbose(" {1:10} invocations ({2:6.0} Hz) {3:10} gs fails ({4:6.2} %) {5:6.3} average", this->m_stat_calculations, - static_cast<nl_fptype>(this->m_stat_calculations) / this->exec().time().as_fp<nl_fptype>(), + static_cast<fptype>(this->m_stat_calculations) / this->exec().time().as_fp<fptype>(), this->m_iterative_fail, - nlconst::hundred() * static_cast<nl_fptype>(this->m_iterative_fail) - / static_cast<nl_fptype>(this->m_stat_calculations), - static_cast<nl_fptype>(this->m_iterative_total) / static_cast<nl_fptype>(this->m_stat_calculations)); + nlconst::hundred() * static_cast<fptype>(this->m_iterative_fail) + / static_cast<fptype>(this->m_stat_calculations), + static_cast<fptype>(this->m_iterative_total) / static_cast<fptype>(this->m_stat_calculations)); } } diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h index fef3ec4a29b..6a769775248 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.h +++ b/src/lib/netlist/solver/nld_matrix_solver.h @@ -14,6 +14,7 @@ #include "netlist/plib/palloc.h" #include "netlist/plib/penum.h" #include "netlist/plib/pmatrix2d.h" +#include "netlist/plib/pmempool.h" #include "netlist/plib/putil.h" #include "netlist/plib/vector_ops.h" @@ -183,6 +184,8 @@ namespace solver { public: using list_t = std::vector<matrix_solver_t *>; + using fptype = nl_fptype; + using arena_type = plib::mempool_arena<plib::aligned_arena>; // after every call to solve, update inputs must be called. // this can be done as well as a batch to ease parallel processing. @@ -259,50 +262,31 @@ namespace solver } // return number of floating point operations for solve - std::size_t ops() const { return m_ops; } + constexpr std::size_t ops() const { return m_ops; } protected: - template <typename T> - using aligned_alloc = plib::aligned_allocator<T, PALIGN_VECTOROPT>; - matrix_solver_t(netlist_state_t &anetlist, const pstring &name, const analog_net_t::list_t &nets, const solver_parameters_t *params); virtual void vsolve_non_dynamic() = 0; - virtual netlist_time compute_next_timestep(nl_fptype cur_ts, nl_fptype max_ts) = 0; - virtual bool check_err() = 0; + virtual netlist_time compute_next_timestep(fptype cur_ts, fptype max_ts) = 0; + virtual bool check_err() const = 0; virtual void store() = 0; - plib::pmatrix2d<nl_fptype, aligned_alloc<nl_fptype>> m_gonn; - plib::pmatrix2d<nl_fptype, aligned_alloc<nl_fptype>> m_gtn; - plib::pmatrix2d<nl_fptype, aligned_alloc<nl_fptype>> m_Idrn; - plib::pmatrix2d<nl_fptype *, aligned_alloc<nl_fptype *>> m_connected_net_Vn; - - plib::aligned_vector<terms_for_net_t> m_terms; + plib::pmatrix2d_vrl<fptype, arena_type> m_gonn; + plib::pmatrix2d_vrl<fptype, arena_type> m_gtn; + plib::pmatrix2d_vrl<fptype, arena_type> m_Idrn; + plib::pmatrix2d_vrl<fptype *, arena_type> m_connected_net_Vn; const solver_parameters_t &m_params; state_var<std::size_t> m_iterative_fail; state_var<std::size_t> m_iterative_total; - private: - - plib::aligned_vector<terms_for_net_t> m_rails_temp; - std::vector<device_arena::unique_ptr<proxied_analog_output_t>> m_inps; - - state_var<std::size_t> m_stat_calculations; - state_var<std::size_t> m_stat_newton_raphson; - state_var<std::size_t> m_stat_vsolver_calls; - - state_var<netlist_time_ext> m_last_step; - plib::aligned_vector<nldelegate_ts> m_step_funcs; - plib::aligned_vector<nldelegate_dyn> m_dynamic_funcs; + plib::aligned_vector<terms_for_net_t> m_terms; // setup only - logic_input_t m_fb_sync; - logic_output_t m_Q_sync; - - std::size_t m_ops; + private: // base setup - called from constructor void setup_base(setup_t &setup, const analog_net_t::list_t &nets) noexcept(false); @@ -314,7 +298,7 @@ namespace solver int get_net_idx(const analog_net_t *net) const noexcept; std::pair<int, int> get_left_right_of_diag(std::size_t irow, std::size_t idiag); - nl_fptype get_weight_around_diag(std::size_t row, std::size_t diag); + fptype get_weight_around_diag(std::size_t row, std::size_t diag); void add_term(std::size_t net_idx, terminal_t *term) noexcept(false); @@ -325,272 +309,21 @@ namespace solver analog_net_t *get_connected_net(terminal_t *term); - }; - - template <typename FT, int SIZE> - class matrix_solver_ext_t: public matrix_solver_t - { - public: - - using float_type = FT; - - matrix_solver_ext_t(netlist_state_t &anetlist, const pstring &name, - const analog_net_t::list_t &nets, - const solver_parameters_t *params, const std::size_t size) - : matrix_solver_t(anetlist, name, nets, params) - , m_dim(size) - , m_new_V(size) - , m_RHS(size) - , m_mat_ptr(size, this->max_railstart() + 1) - , m_last_V(size, nlconst::zero()) - , m_DD_n_m_1(size, nlconst::zero()) - , m_h_n_m_1(size, nlconst::magic(1e-6)) // we need a non zero value here - { - // - // save states - // - state().save(*this, m_last_V.as_base(), this->name(), "m_last_V"); - state().save(*this, m_DD_n_m_1.as_base(), this->name(), "m_DD_n_m_1"); - state().save(*this, m_h_n_m_1.as_base(), this->name(), "m_h_n_m_1"); - } - - - private: - const std::size_t m_dim; - - protected: - static constexpr const std::size_t SIZEABS = plib::parray<FT, SIZE>::SIZEABS(); - static constexpr const std::size_t m_pitch_ABS = (((SIZEABS + 0) + 7) / 8) * 8; - - PALIGNAS_VECTOROPT() - plib::parray<float_type, SIZE> m_new_V; - PALIGNAS_VECTOROPT() - plib::parray<float_type, SIZE> m_RHS; - - PALIGNAS_VECTOROPT() - plib::pmatrix2d<float_type *> m_mat_ptr; - - // FIXME: below should be private - // state - variable time_stepping - PALIGNAS_VECTOROPT() - plib::parray<nl_fptype, SIZE> m_last_V; - PALIGNAS_VECTOROPT() - plib::parray<nl_fptype, SIZE> m_DD_n_m_1; - PALIGNAS_VECTOROPT() - plib::parray<nl_fptype, SIZE> m_h_n_m_1; - - std::size_t max_railstart() const noexcept - { - std::size_t max_rail = 0; - for (std::size_t k = 0; k < m_terms.size(); k++) - max_rail = std::max(max_rail, m_terms[k].railstart()); - return max_rail; - } - - - template <typename T, typename M> - void log_fill(const T &fill, M &mat) - { - const std::size_t iN = fill.size(); - - // FIXME: Not yet working, mat_cr.h needs some more work -#if 0 - auto mat_GE = dynamic_cast<plib::pGEmatrix_cr_t<typename M::base> *>(&mat); -#else - plib::unused_var(mat); -#endif - std::vector<unsigned> levL(iN, 0); - std::vector<unsigned> levU(iN, 0); - - // parallel scheme for L x = y - for (std::size_t k = 0; k < iN; k++) - { - unsigned lm=0; - for (std::size_t j = 0; j<k; j++) - if (fill[k][j] < M::FILL_INFINITY) - lm = std::max(lm, levL[j]); - levL[k] = 1+lm; - } - - // parallel scheme for U x = y - for (std::size_t k = iN; k-- > 0; ) - { - unsigned lm=0; - for (std::size_t j = iN; --j > k; ) - if (fill[k][j] < M::FILL_INFINITY) - lm = std::max(lm, levU[j]); - levU[k] = 1+lm; - } - for (std::size_t k = 0; k < iN; k++) - { - unsigned fm = 0; - pstring ml = ""; - for (std::size_t j = 0; j < iN; j++) - { - ml += fill[k][j] == 0 ? 'X' : fill[k][j] < M::FILL_INFINITY ? '+' : '.'; - if (fill[k][j] < M::FILL_INFINITY) - if (fill[k][j] > fm) - fm = fill[k][j]; - } -#if 0 - this->log().verbose("{1:4} {2} {3:4} {4:4} {5:4} {6:4}", k, ml, - levL[k], levU[k], mat_GE ? mat_GE->get_parallel_level(k) : 0, fm); -#else - this->log().verbose("{1:4} {2} {3:4} {4:4} {5:4} {6:4}", k, ml, - levL[k], levU[k], 0, fm); -#endif - } - } - - constexpr std::size_t size() const noexcept - { - return (SIZE > 0) ? static_cast<std::size_t>(SIZE) : m_dim; - } - -#if 1 - void store() override - { - const std::size_t iN = size(); - for (std::size_t i = 0; i < iN; i++) - this->m_terms[i].setV(static_cast<nl_fptype>(m_new_V[i])); - } -#else - // global tanh damping (4.197) - // partially cures the symptoms but not the cause - void store() override - { - const std::size_t iN = size(); - for (std::size_t i = 0; i < iN; i++) - { - auto oldV = this->m_terms[i].template getV<nl_fptype>(); - this->m_terms[i].setV(oldV + 0.02 * plib::tanh((m_new_V[i]-oldV)*50.0)); - } - } -#endif - bool check_err() override - { - // NOTE: Ideally we should also include currents (RHS) here. This would - // need a reevaluation of the right hand side after voltages have been updated - // and thus belong into a different calculation. This applies to all solvers. - - const std::size_t iN = size(); - const auto reltol(static_cast<float_type>(m_params.m_reltol)); - const auto vntol(static_cast<float_type>(m_params.m_vntol)); - for (std::size_t i = 0; i < iN; i++) - { - const auto vold(static_cast<float_type>(this->m_terms[i].getV())); - const auto vnew(m_new_V[i]); - const auto tol(vntol + reltol * std::max(plib::abs(vnew),plib::abs(vold))); - if (plib::abs(vnew - vold) > tol) - return true; - } - return false; - } - - netlist_time compute_next_timestep(nl_fptype cur_ts, nl_fptype max_ts) override - { - nl_fptype new_solver_timestep(max_ts); - - for (std::size_t k = 0; k < size(); k++) - { - const auto &t = m_terms[k]; - const auto v(static_cast<nl_fptype>(t.getV())); - // avoid floating point exceptions - const nl_fptype DD_n = std::max(-fp_constants<nl_fptype>::TIMESTEP_MAXDIFF(), - std::min(+fp_constants<nl_fptype>::TIMESTEP_MAXDIFF(),(v - m_last_V[k]))); - - m_last_V[k] = v; - const nl_fptype hn = cur_ts; - - nl_fptype DD2 = (DD_n / hn - m_DD_n_m_1[k] / m_h_n_m_1[k]) / (hn + m_h_n_m_1[k]); - nl_fptype new_net_timestep(0); - - m_h_n_m_1[k] = hn; - m_DD_n_m_1[k] = DD_n; - if (plib::abs(DD2) > fp_constants<nl_fptype>::TIMESTEP_MINDIV()) // avoid div-by-zero - new_net_timestep = plib::sqrt(m_params.m_dynamic_lte / plib::abs(nlconst::half()*DD2)); - else - new_net_timestep = m_params.m_max_timestep; - - new_solver_timestep = std::min(new_net_timestep, new_solver_timestep); - } - new_solver_timestep = std::max(new_solver_timestep, m_params.m_min_timestep); - - // FIXME: Factor 2 below is important. Without, we get timing issues. This must be a bug elsewhere. - return std::max(netlist_time::from_fp(new_solver_timestep), netlist_time::quantum() * 2); - } - - template <typename M> - void build_mat_ptr(M &mat) - { - const std::size_t iN = size(); - - for (std::size_t k=0; k<iN; k++) - { - std::size_t cnt(0); - // build pointers into the compressed row format matrix for each terminal - for (std::size_t j=0; j< this->m_terms[k].railstart();j++) - { - int other = this->m_terms[k].m_connected_net_idx[j]; - if (other >= 0) - { - m_mat_ptr[k][j] = &(mat[k][static_cast<std::size_t>(other)]); - cnt++; - } - } - nl_assert_always(cnt == this->m_terms[k].railstart(), "Count and railstart mismatch"); - m_mat_ptr[k][this->m_terms[k].railstart()] = &(mat[k][k]); - } - } - - template <typename M> - void clear_square_mat(M &m) - { - const std::size_t n = size(); - for (std::size_t k=0; k < n; k++) - { - auto *p = &(m[k][0]); - using mat_elem_type = typename std::decay<decltype(*p)>::type; - for (std::size_t i=0; i < n; i++) - p[i] = plib::constants<mat_elem_type>::zero(); - } - } - - void fill_matrix_and_rhs() - { - const std::size_t N = size(); - - for (std::size_t k = 0; k < N; k++) - { - auto &net = m_terms[k]; - auto **tcr_r = &(m_mat_ptr[k][0]); - - using source_type = typename decltype(m_gtn)::value_type; - const std::size_t term_count = net.count(); - const std::size_t railstart = net.railstart(); - const auto &go = m_gonn[k]; - const auto > = m_gtn[k]; - const auto &Idr = m_Idrn[k]; - const auto &cnV = m_connected_net_Vn[k]; - - // FIXME: gonn, gtn and Idr - which float types should they have? - - auto gtot_t = std::accumulate(gt, gt + term_count, plib::constants<source_type>::zero()); - - // update diagonal element ... - *tcr_r[railstart] = static_cast<FT>(gtot_t); //mat.A[mat.diag[k]] += gtot_t; + state_var<std::size_t> m_stat_calculations; + state_var<std::size_t> m_stat_newton_raphson; + state_var<std::size_t> m_stat_vsolver_calls; - for (std::size_t i = 0; i < railstart; i++) - *tcr_r[i] += static_cast<FT>(go[i]); + state_var<netlist_time_ext> m_last_step; + plib::aligned_vector<nldelegate_ts> m_step_funcs; + plib::aligned_vector<nldelegate_dyn> m_dynamic_funcs; + plib::aligned_vector<device_arena::unique_ptr<proxied_analog_output_t>> m_inps; - auto RHS_t(std::accumulate(Idr, Idr + term_count, plib::constants<source_type>::zero())); + logic_input_t m_fb_sync; + logic_output_t m_Q_sync; - for (std::size_t i = railstart; i < term_count; i++) - RHS_t += (- go[i]) * *cnV[i]; + std::size_t m_ops; - m_RHS[k] = static_cast<FT>(RHS_t); - } - } + plib::aligned_vector<terms_for_net_t> m_rails_temp; // setup only }; diff --git a/src/lib/netlist/solver/nld_matrix_solver_ext.h b/src/lib/netlist/solver/nld_matrix_solver_ext.h new file mode 100644 index 00000000000..275ef135c69 --- /dev/null +++ b/src/lib/netlist/solver/nld_matrix_solver_ext.h @@ -0,0 +1,288 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud + +#ifndef NLD_MATRIX_SOLVER_EXT_H_ +#define NLD_MATRIX_SOLVER_EXT_H_ + +/// +/// \file nld_matrix_solver.h +/// + +#include "nld_matrix_solver.h" + +#include <numeric> + +namespace netlist +{ +namespace solver +{ + + template <typename FT, int SIZE> + class matrix_solver_ext_t: public matrix_solver_t + { + public: + + using float_type = FT; + + matrix_solver_ext_t(netlist_state_t &anetlist, const pstring &name, + const analog_net_t::list_t &nets, + const solver_parameters_t *params, const std::size_t size) + : matrix_solver_t(anetlist, name, nets, params) + , m_new_V(size) + , m_RHS(size) + , m_mat_ptr(size, this->max_railstart() + 1) + , m_last_V(size, nlconst::zero()) + , m_DD_n_m_1(size, nlconst::zero()) + , m_h_n_m_1(size, nlconst::magic(1e-6)) // we need a non zero value here + , m_dim(size) + { + // + // save states + // + state().save(*this, m_last_V.as_base(), this->name(), "m_last_V"); + state().save(*this, m_DD_n_m_1.as_base(), this->name(), "m_DD_n_m_1"); + state().save(*this, m_h_n_m_1.as_base(), this->name(), "m_h_n_m_1"); + } + + protected: + static constexpr const std::size_t SIZEABS = plib::parray<FT, SIZE>::SIZEABS(); + static constexpr const std::size_t m_pitch_ABS = (((SIZEABS + 0) + 7) / 8) * 8; + + //PALIGNAS_VECTOROPT() parrays define alignment already + plib::parray<float_type, SIZE> m_new_V; + //PALIGNAS_VECTOROPT() parrays define alignment already + plib::parray<float_type, SIZE> m_RHS; + + //PALIGNAS_VECTOROPT() parrays define alignment already + plib::pmatrix2d<float_type *> m_mat_ptr; + + std::size_t max_railstart() const noexcept + { + std::size_t max_rail = 0; + for (std::size_t k = 0; k < m_terms.size(); k++) + max_rail = std::max(max_rail, m_terms[k].railstart()); + return max_rail; + } + + + template <typename T, typename M> + void log_fill(const T &fill, M &mat) + { + const std::size_t iN = fill.size(); + + // FIXME: Not yet working, mat_cr.h needs some more work +#if 0 + auto mat_GE = dynamic_cast<plib::pGEmatrix_cr_t<typename M::base> *>(&mat); +#else + plib::unused_var(mat); +#endif + std::vector<unsigned> levL(iN, 0); + std::vector<unsigned> levU(iN, 0); + + // parallel scheme for L x = y + for (std::size_t k = 0; k < iN; k++) + { + unsigned lm=0; + for (std::size_t j = 0; j<k; j++) + if (fill[k][j] < M::FILL_INFINITY) + lm = std::max(lm, levL[j]); + levL[k] = 1+lm; + } + + // parallel scheme for U x = y + for (std::size_t k = iN; k-- > 0; ) + { + unsigned lm=0; + for (std::size_t j = iN; --j > k; ) + if (fill[k][j] < M::FILL_INFINITY) + lm = std::max(lm, levU[j]); + levU[k] = 1+lm; + } + for (std::size_t k = 0; k < iN; k++) + { + unsigned fm = 0; + pstring ml = ""; + for (std::size_t j = 0; j < iN; j++) + { + ml += fill[k][j] == 0 ? 'X' : fill[k][j] < M::FILL_INFINITY ? '+' : '.'; + if (fill[k][j] < M::FILL_INFINITY) + if (fill[k][j] > fm) + fm = fill[k][j]; + } +#if 0 + this->log().verbose("{1:4} {2} {3:4} {4:4} {5:4} {6:4}", k, ml, + levL[k], levU[k], mat_GE ? mat_GE->get_parallel_level(k) : 0, fm); +#else + this->log().verbose("{1:4} {2} {3:4} {4:4} {5:4} {6:4}", k, ml, + levL[k], levU[k], 0, fm); +#endif + } + } + + constexpr std::size_t size() const noexcept + { + return (SIZE > 0) ? static_cast<std::size_t>(SIZE) : m_dim; + } + +#if 1 + void store() override + { + const std::size_t iN = size(); + for (std::size_t i = 0; i < iN; i++) + this->m_terms[i].setV(static_cast<fptype>(m_new_V[i])); + } +#else + // global tanh damping (4.197) + // partially cures the symptoms but not the cause + void store() override + { + const std::size_t iN = size(); + for (std::size_t i = 0; i < iN; i++) + { + auto oldV = this->m_terms[i].template getV<fptype>(); + this->m_terms[i].setV(oldV + 0.02 * plib::tanh((m_new_V[i]-oldV)*50.0)); + } + } +#endif + bool check_err() const override + { + // NOTE: Ideally we should also include currents (RHS) here. This would + // need a reevaluation of the right hand side after voltages have been updated + // and thus belong into a different calculation. This applies to all solvers. + + const std::size_t iN = size(); + const auto reltol(static_cast<float_type>(m_params.m_reltol)); + const auto vntol(static_cast<float_type>(m_params.m_vntol)); + for (std::size_t i = 0; i < iN; i++) + { + const auto vold(static_cast<float_type>(this->m_terms[i].getV())); + const auto vnew(m_new_V[i]); + const auto tol(vntol + reltol * std::max(plib::abs(vnew),plib::abs(vold))); + if (plib::abs(vnew - vold) > tol) + return true; + } + return false; + } + + netlist_time compute_next_timestep(fptype cur_ts, fptype max_ts) override + { + fptype new_solver_timestep(max_ts); + + for (std::size_t k = 0; k < size(); k++) + { + const auto &t = m_terms[k]; + const auto v(static_cast<fptype>(t.getV())); + // avoid floating point exceptions + const fptype DD_n = std::max(-fp_constants<fptype>::TIMESTEP_MAXDIFF(), + std::min(+fp_constants<fptype>::TIMESTEP_MAXDIFF(),(v - m_last_V[k]))); + + m_last_V[k] = v; + const fptype hn = cur_ts; + + fptype DD2 = (DD_n / hn - m_DD_n_m_1[k] / m_h_n_m_1[k]) / (hn + m_h_n_m_1[k]); + fptype new_net_timestep(0); + + m_h_n_m_1[k] = hn; + m_DD_n_m_1[k] = DD_n; + if (plib::abs(DD2) > fp_constants<fptype>::TIMESTEP_MINDIV()) // avoid div-by-zero + new_net_timestep = plib::sqrt(m_params.m_dynamic_lte / plib::abs(nlconst::half()*DD2)); + else + new_net_timestep = m_params.m_max_timestep; + + new_solver_timestep = std::min(new_net_timestep, new_solver_timestep); + } + new_solver_timestep = std::max(new_solver_timestep, m_params.m_min_timestep); + + // FIXME: Factor 2 below is important. Without, we get timing issues. This must be a bug elsewhere. + return std::max(netlist_time::from_fp(new_solver_timestep), netlist_time::quantum() * 2); + } + + template <typename M> + void build_mat_ptr(M &mat) + { + const std::size_t iN = size(); + + for (std::size_t k=0; k<iN; k++) + { + std::size_t cnt(0); + // build pointers into the compressed row format matrix for each terminal + for (std::size_t j=0; j< this->m_terms[k].railstart();j++) + { + int other = this->m_terms[k].m_connected_net_idx[j]; + if (other >= 0) + { + m_mat_ptr[k][j] = &(mat[k][static_cast<std::size_t>(other)]); + cnt++; + } + } + nl_assert_always(cnt == this->m_terms[k].railstart(), "Count and railstart mismatch"); + m_mat_ptr[k][this->m_terms[k].railstart()] = &(mat[k][k]); + } + } + + template <typename M> + void clear_square_mat(M &m) + { + const std::size_t n = size(); + for (std::size_t k=0; k < n; k++) + { + auto *p = &(m[k][0]); + using mat_elem_type = typename std::decay<decltype(*p)>::type; + for (std::size_t i=0; i < n; i++) + p[i] = plib::constants<mat_elem_type>::zero(); + } + } + + void fill_matrix_and_rhs() + { + const std::size_t N = size(); + + for (std::size_t k = 0; k < N; k++) + { + auto &net = m_terms[k]; + auto **tcr_r = &(m_mat_ptr[k][0]); + + using source_type = typename decltype(m_gtn)::value_type; + const std::size_t term_count = net.count(); + const std::size_t railstart = net.railstart(); + const auto &go = m_gonn[k]; + const auto > = m_gtn[k]; + const auto &Idr = m_Idrn[k]; + const auto &cnV = m_connected_net_Vn[k]; + + // FIXME: gonn, gtn and Idr - which float types should they have? + + auto gtot_t = std::accumulate(gt, gt + term_count, plib::constants<source_type>::zero()); + + // update diagonal element ... + *tcr_r[railstart] = static_cast<FT>(gtot_t); //mat.A[mat.diag[k]] += gtot_t; + + for (std::size_t i = 0; i < railstart; i++) + *tcr_r[i] += static_cast<FT>(go[i]); + + auto RHS_t(std::accumulate(Idr, Idr + term_count, plib::constants<source_type>::zero())); + + for (std::size_t i = railstart; i < term_count; i++) + RHS_t += (- go[i]) * *cnV[i]; + + m_RHS[k] = static_cast<FT>(RHS_t); + } + } + + private: + // state - variable time_stepping + //PALIGNAS_VECTOROPT() parrays define alignment already + plib::parray<fptype, SIZE> m_last_V; + // PALIGNAS_VECTOROPT() parrays define alignment already + plib::parray<fptype, SIZE> m_DD_n_m_1; + // PALIGNAS_VECTOROPT() parrays define alignment already + plib::parray<fptype, SIZE> m_h_n_m_1; + + const std::size_t m_dim; + + }; + +} // namespace solver +} // namespace netlist + +#endif // NLD_MATRIX_SOLVER_EXT_H_ diff --git a/src/lib/netlist/solver/nld_ms_direct.h b/src/lib/netlist/solver/nld_ms_direct.h index ab4df0758e1..b32e4d2172b 100644 --- a/src/lib/netlist/solver/nld_ms_direct.h +++ b/src/lib/netlist/solver/nld_ms_direct.h @@ -13,6 +13,8 @@ #include "plib/parray.h" #include "plib/vector_ops.h" +#include "nld_matrix_solver_ext.h" + #include <algorithm> namespace netlist @@ -49,7 +51,7 @@ namespace solver template <typename T> void LE_back_subst(T & x); - PALIGNAS_VECTOROPT() + // PALIGNAS_VECTOROPT() parrays define alignment already plib::parray2D<FT, SIZE, m_pitch_ABS> m_A; }; diff --git a/src/lib/netlist/solver/nld_ms_direct1.h b/src/lib/netlist/solver/nld_ms_direct1.h index 095d35a30c0..e33846ad403 100644 --- a/src/lib/netlist/solver/nld_ms_direct1.h +++ b/src/lib/netlist/solver/nld_ms_direct1.h @@ -8,6 +8,7 @@ /// \file nld_ms_direct1.h /// +#include "nld_matrix_solver_ext.h" #include "nld_ms_direct.h" #include "nld_solver.h" diff --git a/src/lib/netlist/solver/nld_ms_direct2.h b/src/lib/netlist/solver/nld_ms_direct2.h index 744737b3892..365c1cac33e 100644 --- a/src/lib/netlist/solver/nld_ms_direct2.h +++ b/src/lib/netlist/solver/nld_ms_direct2.h @@ -8,6 +8,7 @@ /// \file nld_ms_direct2.h /// +#include "nld_matrix_solver_ext.h" #include "nld_ms_direct.h" #include "nld_solver.h" diff --git a/src/lib/netlist/solver/nld_ms_gcr.h b/src/lib/netlist/solver/nld_ms_gcr.h index 72e5c45f525..3de955627ee 100644 --- a/src/lib/netlist/solver/nld_ms_gcr.h +++ b/src/lib/netlist/solver/nld_ms_gcr.h @@ -12,7 +12,8 @@ #include "plib/mat_cr.h" -#include "nld_ms_direct.h" +//#include "nld_ms_direct.h" +#include "nld_matrix_solver_ext.h" #include "nld_solver.h" #include "plib/pdynlib.h" #include "plib/pstream.h" @@ -31,6 +32,8 @@ namespace solver public: using mat_type = plib::pGEmatrix_cr_t<plib::pmatrix_cr_t<FT, SIZE>>; + using base_type = matrix_solver_ext_t<FT, SIZE>; + using fptype = typename base_type::fptype; matrix_solver_GCR_t(netlist_state_t &anetlist, const pstring &name, const analog_net_t::list_t &nets, @@ -85,9 +88,9 @@ namespace solver anetlist.log().verbose("maximum fill: {1}", gr.first); anetlist.log().verbose("Post elimination occupancy ratio: {2} Ops: {1}", gr.second, - static_cast<nl_fptype>(mat.nz_num) / static_cast<nl_fptype>(iN * iN)); + static_cast<fptype>(mat.nz_num) / static_cast<fptype>(iN * iN)); anetlist.log().verbose(" Pre elimination occupancy ratio: {2}", - static_cast<nl_fptype>(raw_elements) / static_cast<nl_fptype>(iN * iN)); + static_cast<fptype>(raw_elements) / static_cast<fptype>(iN * iN)); // FIXME: Move me // @@ -123,7 +126,7 @@ namespace solver pstring static_compile_name(); mat_type mat; - plib::dynproc<void, FT *, nl_fptype *, nl_fptype *, nl_fptype *, nl_fptype ** > m_proc; + plib::dynproc<void, FT *, fptype *, fptype *, fptype *, fptype ** > m_proc; }; @@ -139,7 +142,7 @@ namespace solver pstring fpsuffix(fp_constants<FT>::suffix()); for (std::size_t i = 0; i < mat.nz_num; i++) - strm("{1} m_A{2}(0.0);\n", fptype, i, i); + strm("\t{1} m_A{2}(0.0);\n", fptype, i, i); for (std::size_t k = 0; k < iN; k++) { @@ -150,23 +153,27 @@ namespace solver //auto gtot_t = std::accumulate(gt, gt + term_count, plib::constants<FT>::zero()); //*tcr_r[railstart] = static_cast<FT>(gtot_t); //mat.A[mat.diag[k]] += gtot_t; auto pd = this->m_mat_ptr[k][net.railstart()] - &this->mat.A[0]; +#if 0 pstring terms = plib::pfmt("m_A{1} = gt[{2}]")(pd, this->m_gtn.didx(k,0)); for (std::size_t i=1; i < net.count(); i++) terms += plib::pfmt(" + gt[{1}]")(this->m_gtn.didx(k,i)); strm("\t{1};\n", terms); - +#else + for (std::size_t i=0; i < net.count(); i++) + strm("\tm_A{1} += gt[{2}];\n", pd, this->m_gtn.didx(k,i)); +#endif //for (std::size_t i = 0; i < railstart; i++) // *tcr_r[i] += static_cast<FT>(go[i]); for (std::size_t i = 0; i < net.railstart(); i++) { auto p = this->m_mat_ptr[k][i] - &this->mat.A[0]; - strm("\tm_A{1} = m_A{1} + go[{2}];\n", p, this->m_gonn.didx(k,i)); + strm("\tm_A{1} += go[{2}];\n", p, this->m_gonn.didx(k,i)); } +#if 0 //auto RHS_t(std::accumulate(Idr, Idr + term_count, plib::constants<FT>::zero())); - terms = plib::pfmt("{1} RHS{2} = Idr[{3}]")(fptype, k, this->m_Idrn.didx(k,0)); for (std::size_t i=1; i < net.count(); i++) terms += plib::pfmt(" + Idr[{1}]")(this->m_Idrn.didx(k,i)); @@ -174,9 +181,21 @@ namespace solver // RHS_t += (- go[i]) * *cnV[i]; for (std::size_t i = net.railstart(); i < net.count(); i++) - terms += plib::pfmt(" - go[{1}] * *cnV[{1}]")(this->m_gonn.didx(k,i), this->m_connected_net_Vn.didx(k,i)); + terms += plib::pfmt(" - go[{1}] * *cnV[{2}]")(this->m_gonn.didx(k,i), this->m_connected_net_Vn.didx(k,i)); strm("\t{1};\n", terms); +#else + //auto RHS_t(std::accumulate(Idr, Idr + term_count, plib::constants<FT>::zero())); + strm("\t{1} RHS{2} = Idr[{3}];\n", fptype, k, this->m_Idrn.didx(k,0)); + for (std::size_t i=1; i < net.count(); i++) + strm("\tRHS{1} += Idr[{2}];\n", k, this->m_Idrn.didx(k,i)); + //for (std::size_t i = railstart; i < term_count; i++) + // RHS_t += (- go[i]) * *cnV[i]; + + for (std::size_t i = net.railstart(); i < net.count(); i++) + strm("\tRHS{1} -= go[{2}] * *cnV[{3}];\n", k, this->m_gonn.didx(k,i), this->m_connected_net_Vn.didx(k,i)); + +#endif } for (std::size_t i = 0; i < iN - 1; i++) @@ -188,7 +207,7 @@ namespace solver std::size_t pi = mat.diag[i]; //const FT f = 1.0 / m_A[pi++]; - strm("const {1} f{2} = 1.0{3} / m_A{4};\n", fptype, i, fpsuffix, pi); + strm("\tconst {1} f{2} = 1.0{3} / m_A{4};\n", fptype, i, fpsuffix, pi); pi++; const std::size_t piie = mat.row_idx[i+1]; @@ -224,6 +243,7 @@ namespace solver strm("\tV[{1}] = RHS{2} / m_A{3};\n", iN - 1, iN - 1, mat.diag[iN - 1]); for (std::size_t j = iN - 1; j-- > 0;) { +#if 1 strm("\t{1} tmp{2} = 0.0{3};\n", fptype, j, fpsuffix); const std::size_t e = mat.row_idx[j+1]; for (std::size_t pk = mat.diag[j] + 1; pk < e; pk++) @@ -231,6 +251,24 @@ namespace solver strm("\ttmp{1} += m_A{2} * V[{3}];\n", j, pk, mat.col_idx[pk]); } strm("\tV[{1}] = (RHS{1} - tmp{1}) / m_A{4};\n", j, j, j, mat.diag[j]); +#else + pstring tmp; + const std::size_t e = mat.row_idx[j+1]; + for (std::size_t pk = mat.diag[j] + 1; pk < e; pk++) + { + tmp = tmp + plib::pfmt(" + m_A{2} * V[{3}]")(j, pk, mat.col_idx[pk]); + } + if (tmp.empty()) + { + strm("\tV[{1}] = RHS{1} / m_A{2};\n", j, mat.diag[j]); + } + else + { + //strm("\tconst {1} tmp{2} = {3};\n", fptype, j, tmp.substr(3)); + //strm("\tV[{1}] = (RHS{1} - tmp{1}) / m_A{2};\n", j, mat.diag[j]); + strm("\tV[{1}] = (RHS{1} - ({2})) / m_A{3};\n", j, tmp.substr(3), mat.diag[j]); + } +#endif } } @@ -238,7 +276,7 @@ namespace solver pstring matrix_solver_GCR_t<FT, SIZE>::static_compile_name() { pstring str_floattype(fp_constants<FT>::name()); - pstring str_fptype(fp_constants<nl_fptype>::name()); + pstring str_fptype(fp_constants<fptype>::name()); std::stringstream t; t.imbue(std::locale::classic()); plib::putf8_fmt_writer w(&t); @@ -255,7 +293,7 @@ namespace solver plib::putf8_fmt_writer strm(&t); pstring name = static_compile_name(); pstring str_floattype(fp_constants<FT>::name()); - pstring str_fptype(fp_constants<nl_fptype>::name()); + pstring str_fptype(fp_constants<fptype>::name()); pstring extqual; if (target == CXX_EXTERNAL_C) @@ -263,8 +301,8 @@ namespace solver else if (target == CXX_STATIC) extqual = "static"; strm.writeline(plib::pfmt("{1} void {2}({3} * __restrict V, " - "{4} * __restrict go, {4} * __restrict gt, " - "{4} * __restrict Idr, {4} ** __restrict cnV)\n")(extqual, name, str_floattype, str_fptype)); + "const {4} * __restrict go, const {4} * __restrict gt, " + "const {4} * __restrict Idr, const {4} * const * __restrict cnV)\n")(extqual, name, str_floattype, str_fptype)); strm.writeline("{\n"); generate_code(strm); strm.writeline("}\n"); diff --git a/src/lib/netlist/solver/nld_ms_gmres.h b/src/lib/netlist/solver/nld_ms_gmres.h index add885c2bfb..837c0bc780e 100644 --- a/src/lib/netlist/solver/nld_ms_gmres.h +++ b/src/lib/netlist/solver/nld_ms_gmres.h @@ -8,6 +8,7 @@ /// \file nld_ms_gmres.h /// +#include "nld_matrix_solver_ext.h" #include "nld_ms_direct.h" #include "nld_solver.h" #include "plib/gmres.h" diff --git a/src/lib/netlist/solver/nld_ms_sm.h b/src/lib/netlist/solver/nld_ms_sm.h index 599252adf6a..fd11a32a102 100644 --- a/src/lib/netlist/solver/nld_ms_sm.h +++ b/src/lib/netlist/solver/nld_ms_sm.h @@ -33,6 +33,7 @@ /// #include "nld_matrix_solver.h" +#include "nld_matrix_solver_ext.h" #include "nld_solver.h" #include "plib/vector_ops.h" diff --git a/src/lib/netlist/solver/nld_ms_sor.h b/src/lib/netlist/solver/nld_ms_sor.h index a253f160c4a..6b1a21afd39 100644 --- a/src/lib/netlist/solver/nld_ms_sor.h +++ b/src/lib/netlist/solver/nld_ms_sor.h @@ -12,8 +12,8 @@ /// Fow w==1 we will do the classic Gauss-Seidel approach. /// +#include "nld_matrix_solver_ext.h" #include "nld_ms_direct.h" -#include "nld_solver.h" #include <algorithm> @@ -70,16 +70,19 @@ namespace solver for (std::size_t k = 0; k < iN; k++) { - nl_fptype gtot_t = nlconst::zero(); - nl_fptype gabs_t = nlconst::zero(); - nl_fptype RHS_t = nlconst::zero(); const std::size_t term_count = this->m_terms[k].count(); - const nl_fptype * const gt = this->m_gtn[k]; - const nl_fptype * const go = this->m_gonn[k]; - const nl_fptype * const Idr = this->m_Idrn[k]; + const auto * const gt = this->m_gtn[k]; + const auto * const go = this->m_gonn[k]; + const auto * const Idr = this->m_Idrn[k]; auto other_cur_analog = this->m_connected_net_Vn[k]; + using fpaggtype = std::remove_reference_t<std::remove_cv_t<decltype(this->m_gtn[0][0])>>; + + fpaggtype gtot_t = nlconst_base<fpaggtype>::zero(); + fpaggtype gabs_t = nlconst_base<fpaggtype>::zero(); + fpaggtype RHS_t = nlconst_base<fpaggtype>::zero(); + this->m_new_V[k] = static_cast<float_type>(this->m_terms[k].getV()); for (std::size_t i = 0; i < term_count; i++) @@ -126,7 +129,7 @@ namespace solver { const int * net_other = this->m_terms[k].m_connected_net_idx.data(); const std::size_t railstart = this->m_terms[k].railstart(); - const nl_fptype * go = this->m_gonn[k]; + const auto * go = this->m_gonn[k]; float_type Idrive = plib::constants<float_type>::zero(); for (std::size_t i = 0; i < railstart; i++) diff --git a/src/lib/netlist/solver/nld_ms_sor_mat.h b/src/lib/netlist/solver/nld_ms_sor_mat.h index d575cbb1f37..2d29d0f01cd 100644 --- a/src/lib/netlist/solver/nld_ms_sor_mat.h +++ b/src/lib/netlist/solver/nld_ms_sor_mat.h @@ -12,9 +12,8 @@ /// For w==1 we will do the classic Gauss-Seidel approach /// -#include "nld_matrix_solver.h" +#include "nld_matrix_solver_ext.h" #include "nld_ms_direct.h" -#include "nld_solver.h" #include <algorithm> diff --git a/src/lib/netlist/solver/nld_ms_w.h b/src/lib/netlist/solver/nld_ms_w.h index 8571d459ad8..598a4b9e516 100644 --- a/src/lib/netlist/solver/nld_ms_w.h +++ b/src/lib/netlist/solver/nld_ms_w.h @@ -40,8 +40,7 @@ /// introduces numerical instability. /// -#include "nld_matrix_solver.h" -#include "nld_solver.h" +#include "nld_matrix_solver_ext.h" #include "plib/vector_ops.h" #include <algorithm> diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp index 8787247e505..4e0d8f4c4b3 100644 --- a/src/lib/netlist/solver/nld_solver.cpp +++ b/src/lib/netlist/solver/nld_solver.cpp @@ -87,7 +87,7 @@ namespace devices analog_net_t::list_t &nets, solver::solver_parameters_t ¶ms, std::size_t size) { - return host_arena::make_unique<C>(nl, name, nets, ¶ms, size); + return plib::make_unique<C, host_arena>(nl, name, nets, ¶ms, size); } template <typename FT, int SIZE> @@ -136,29 +136,21 @@ namespace devices switch (net_count) { case 1: - return host_arena::make_unique<solver::matrix_solver_direct1_t<FT>>(state(), sname, nets, &m_params); - break; + return plib::make_unique<solver::matrix_solver_direct1_t<FT>, host_arena>(state(), sname, nets, &m_params); case 2: - return host_arena::make_unique<solver::matrix_solver_direct2_t<FT>>(state(), sname, nets, &m_params); - break; + return plib::make_unique<solver::matrix_solver_direct2_t<FT>, host_arena>(state(), sname, nets, &m_params); case 3: return create_solver<FT, 3>(3, sname, nets); - break; case 4: return create_solver<FT, 4>(4, sname, nets); - break; case 5: return create_solver<FT, 5>(5, sname, nets); - break; case 6: return create_solver<FT, 6>(6, sname, nets); - break; case 7: return create_solver<FT, 7>(7, sname, nets); - break; case 8: return create_solver<FT, 8>(8, sname, nets); - break; default: log().info(MI_NO_SPECIFIC_SOLVER(net_count)); if (net_count <= 16) @@ -186,7 +178,6 @@ namespace devices return create_solver<FT, -512>(net_count, sname, nets); } return create_solver<FT, 0>(net_count, sname, nets); - break; } } @@ -201,7 +192,7 @@ namespace devices { netlist.log().verbose(" ==> not a rail net"); // Must be an analog net - auto &n = *static_cast<analog_net_t *>(net.get()); + auto &n = dynamic_cast<analog_net_t &>(*net); if (!already_processed(n)) { groupspre.emplace_back(analog_net_t::list_t()); @@ -273,9 +264,9 @@ namespace devices // only process analog terminals if (term->is_type(detail::terminal_type::TERMINAL)) { - auto *pt = static_cast<terminal_t *>(term); + auto &pt = dynamic_cast<terminal_t &>(*term); // check the connected terminal - analog_net_t &connected_net = netlist.setup().get_connected_terminal(*pt)->net(); + analog_net_t &connected_net = netlist.setup().get_connected_terminal(pt)->net(); netlist.log().verbose(" Connected net {}", connected_net.name()); if (!check_if_processed_and_join(connected_net)) process_net(netlist, connected_net); @@ -306,17 +297,17 @@ namespace devices switch (m_params.m_fp_type()) { case solver::matrix_fp_type_e::FLOAT: - if (!NL_USE_FLOAT_MATRIX) + if (!config::use_float_matrix()) log().info("FPTYPE {1} not supported. Using DOUBLE", m_params.m_fp_type().name()); - ms = create_solvers<std::conditional_t<NL_USE_FLOAT_MATRIX,float, double>>(sname, grp); + ms = create_solvers<std::conditional_t<config::use_float_matrix::value, float, double>>(sname, grp); break; case solver::matrix_fp_type_e::DOUBLE: ms = create_solvers<double>(sname, grp); break; case solver::matrix_fp_type_e::LONGDOUBLE: - if (!NL_USE_LONG_DOUBLE_MATRIX) + if (!config::use_long_double_matrix()) log().info("FPTYPE {1} not supported. Using DOUBLE", m_params.m_fp_type().name()); - ms = create_solvers<std::conditional_t<NL_USE_LONG_DOUBLE_MATRIX, long double, double>>(sname, grp); + ms = create_solvers<std::conditional_t<config::use_long_double_matrix::value, long double, double>>(sname, grp); break; case solver::matrix_fp_type_e::FLOATQ128: #if (NL_USE_FLOAT128) @@ -355,7 +346,7 @@ namespace devices for (auto & s : m_mat_solvers) { auto r = s->create_solver_code(target); - if (r.first != "") // ignore solvers not supporting static compile + if (!r.first.empty()) // ignore solvers not supporting static compile mp.push_back(r); } return mp; diff --git a/src/lib/netlist/solver/nld_solver.h b/src/lib/netlist/solver/nld_solver.h index a0c28e6b302..e9734af1520 100644 --- a/src/lib/netlist/solver/nld_solver.h +++ b/src/lib/netlist/solver/nld_solver.h @@ -39,7 +39,7 @@ namespace devices void post_start(); void stop(); - nl_fptype gmin() const { return m_params.m_gmin(); } + auto gmin() const -> decltype(solver::solver_parameters_t::m_gmin()) { return m_params.m_gmin(); } solver::static_compile_container create_solver_code(solver::static_compile_target target); diff --git a/src/lib/netlist/tools/nl_convert.cpp b/src/lib/netlist/tools/nl_convert.cpp index 393456a67f2..ee6a9827eb3 100644 --- a/src/lib/netlist/tools/nl_convert.cpp +++ b/src/lib/netlist/tools/nl_convert.cpp @@ -112,7 +112,7 @@ nl_convert_base_t::~nl_convert_base_t() void nl_convert_base_t::add_pin_alias(const pstring &devname, const pstring &name, const pstring &alias) { pstring pname = devname + "." + name; - m_pins.emplace(pname, arena::make_unique<pin_alias_t>(pname, devname + "." + alias)); + m_pins.emplace(pname, plib::make_unique<pin_alias_t, arena>(pname, devname + "." + alias)); } void nl_convert_base_t::add_ext_alias(const pstring &alias) @@ -138,15 +138,15 @@ void nl_convert_base_t::add_device(arena::unique_ptr<dev_t> dev) void nl_convert_base_t::add_device(const pstring &atype, const pstring &aname, const pstring &amodel) { - add_device(arena::make_unique<dev_t>(atype, aname, amodel)); + add_device(plib::make_unique<dev_t, arena>(atype, aname, amodel)); } void nl_convert_base_t::add_device(const pstring &atype, const pstring &aname, double aval) { - add_device(arena::make_unique<dev_t>(atype, aname, aval)); + add_device(plib::make_unique<dev_t, arena>(atype, aname, aval)); } void nl_convert_base_t::add_device(const pstring &atype, const pstring &aname) { - add_device(arena::make_unique<dev_t>(atype, aname)); + add_device(plib::make_unique<dev_t, arena>(atype, aname)); } void nl_convert_base_t::add_term(const pstring &netname, const pstring &termname) @@ -161,7 +161,7 @@ void nl_convert_base_t::add_term(const pstring &netname, const pstring &termname net = m_nets[netname].get(); else { - auto nets = arena::make_unique<net_t>(netname); + auto nets = plib::make_unique<net_t, arena>(netname); net = nets.get(); m_nets.emplace(netname, std::move(nets)); } @@ -245,6 +245,7 @@ void nl_convert_base_t::dump_nl() } std::vector<size_t> sorted; + sorted.reserve(m_devs.size()); for (size_t i=0; i < m_devs.size(); i++) sorted.push_back(i); std::sort(sorted.begin(), sorted.end(), @@ -436,7 +437,7 @@ static int npoly(const pstring &s) void nl_convert_spice_t::process_line(const pstring &line) { - if (line != "") + if (!line.empty()) { //printf("// %s\n", line.c_str()); std::vector<pstring> tt(plib::psplit(line, " ", true)); @@ -976,7 +977,7 @@ void nl_convert_rinf_t::convert(const pstring &contents) pstring sim = attr["Simulation"]; pstring val = attr["Value"]; pstring com = attr["Comment"]; - if (val == "") + if (val.empty()) val = com; if (sim == "CAP") |