-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathintegrate.cpp
More file actions
276 lines (244 loc) · 45 KB
/
Copy pathintegrate.cpp
File metadata and controls
276 lines (244 loc) · 45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
#include "integrate.hpp"
using namespace boost::numeric::odeint;
using std::endl;
using std::cout;
namespace shared{
template<class T>
struct VecToList
{
static PyObject* convert(const std::vector<T>& vec)
{
boost::python::list* l = new boost::python::list();
for(size_t i = 0; i < vec.size(); i++)
(*l).append(vec[i]);
return l->ptr();
}
};
Integrate::Integrate() {
setupSteadyStates();
}
double Integrate::factorial_(int num) const {
double factor = 1;
for (int i = 1; i < num + 1; i++) {
factor = factor * i;
}
return factor;
}
MatrixXd Integrate::power_series_(MatrixXd &m, double t, int depth) const {
MatrixXd A_t = -m * t;
MatrixXd A_i = -m * t;
MatrixXd term = MatrixXd::Identity(m.rows(), m.cols());
for (size_t i = 1; i < depth + 1; i++) {
term = term + A_i / factorial_(i + 1);
A_i = A_i * A_t;
}
return t * term;
}
std::vector<double> Integrate::getResult() {
return result_;
}
std::vector<double> Integrate::getProcessMatrices(std::vector<double> &x) const {
double t = 0.3;
std::pair<int, std::vector<double>> closest_steady_state = getClosestSteadyState(x);
for (size_t i = 0; i < closest_steady_state.second.size(); i++) {
if (closest_steady_state.second[i] == -1) {
closest_steady_state.second[i] = x[i];
}
}
std::pair<AB_funct, std::pair<AB_funct, AB_funct>> ab_functions = getClosestSteadyStateFunctions(closest_steady_state_.first);
auto A = ab_functions.first;
auto B = ab_functions.second.first;
auto V = ab_functions.second.second;
MatrixXd AMatrix = (this->*A)(closest_steady_state.second);
MatrixXd BMatrix = (this->*B)(closest_steady_state.second);
MatrixXd VMatrix = (this->*V)(closest_steady_state.second);
MatrixXd A_matrx1 = (t * AMatrix).exp();
MatrixXd integral = power_series_(AMatrix, t, 20);
MatrixXd B_matrx = A_matrx1 * integral * BMatrix;
std::vector<double> res;
for (size_t i = 0; i < A_matrx1.size(); i++) {
res.push_back(A_matrx1(i));
}
for (size_t i = 0; i < B_matrx.size(); i++) {
res.push_back(B_matrx(i));
}
for (size_t i = 0; i < VMatrix.size(); i++) {
res.push_back(VMatrix(i));
}
return res;
}
void Integrate::do_integration(std::vector<double> &x,
std::vector<double> &control,
std::vector<double> &int_times) const {
double t0 = int_times[0];
double te = int_times[1];
double step_size = int_times[2];
rho.clear();
for (size_t i = 0; i < control.size(); i++) {
rho.push_back(control[i]);
}
closest_steady_state_ = getClosestSteadyState(x);
for (size_t i = 0; i < closest_steady_state_.second.size(); i++) {
if (closest_steady_state_.second[i] == -1) {
closest_steady_state_.second[i] = x[i];
}
}
ab_functions_ = getClosestSteadyStateFunctions(closest_steady_state_.first);
size_t k = integrate_const(runge_kutta4<state_type>() ,
std::bind(&Integrate::ode , this , pl::_1 , pl::_2 , pl::_3),
x , t0 , te , step_size);
for (size_t i = 0; i < x.size(); i++) {
result_.push_back(x[i]);
}
}
void Integrate::setupSteadyStates() const {
std::vector<double> steady_state_0({-1, -1, -1, 0.0, 0.0, 0.0});
steady_states_.push_back(steady_state_0);
a_map_.insert(std::make_pair(0, &Integrate::getA0));
b_map_.insert(std::make_pair(0, &Integrate::getB0));
v_map_.insert(std::make_pair(0, &Integrate::getV0));
}
std::pair<Integrate::AB_funct, std::pair<Integrate::AB_funct, Integrate::AB_funct>> Integrate::getClosestSteadyStateFunctions(int &idx) const {
return std::make_pair(a_map_.find(idx)->second, std::make_pair(b_map_.find(idx)->second, v_map_.find(idx)->second));
}
std::pair<int, std::vector<double>> Integrate::getClosestSteadyState(const state_type &x) const {
int min_idx = 0;
double dist = 0.0;
double min_dist = 10000000.0;
double steady_state_val = 0.0;
for (size_t i = 0; i < steady_states_.size(); i++) {
dist = 0.0;
for (size_t j = 0; j < steady_states_[i].size(); j++) {
if (steady_states_[i][j] == -1) {
steady_state_val = x[j];
}
else {
steady_state_val = steady_states_[i][j];
}
dist += std::pow(x[j] - steady_state_val, 2);
}
dist = std::sqrt(dist);
if (dist < min_dist) {
min_dist = dist;
min_idx = i;
}
}
return std::make_pair(min_idx, steady_states_[min_idx]);
}
void Integrate::ode(const state_type &x , state_type &dxdt , double t) const {
VectorXd res(x.size());
VectorXd state(x.size());
VectorXd control_state(x.size() / 2);
VectorXd input_noise(x.size() / 2);
for (size_t i = 0; i < x.size() / 2; i++) {
state[i] = x[i] - closest_steady_state_.second[i];
state[i + x.size() / 2] = x[i + x.size() / 2] - closest_steady_state_.second[i + x.size() / 2];
control_state[i] = rho[i];
input_noise[i] = 0.0;
}
auto A = ab_functions_.first;
auto B = ab_functions_.second.first;
auto V = ab_functions_.second.second;
res = (this->*A)(closest_steady_state_.second) * state +
(this->*B)(closest_steady_state_.second) * control_state;
(this->*V)(closest_steady_state_.second) * input_noise;
dxdt.clear();
for (size_t i = 0; i < x.size(); i++) {
dxdt.push_back(res(i));
}
}
BOOST_PYTHON_MODULE(libintegrate) {
using namespace boost::python;
class_<std::vector<double> > ("v_double")
.def(vector_indexing_suite<std::vector<double> >());
class_<Integrate>("Integrate", init<>())
.def("doIntegration", &Integrate::do_integration)
.def("getResult", &Integrate::getResult)
.def("getProcessMatrices", &Integrate::getProcessMatrices)
;
}
MatrixXd Integrate::getA0(const state_type &x) const{
MatrixXd m(6, 6);
m(0, 0) = 0;
m(0, 1) = 0;
m(0, 2) = 0;
m(0, 3) = 1;
m(0, 4) = 0;
m(0, 5) = 0;
m(1, 0) = 0;
m(1, 1) = 0;
m(1, 2) = 0;
m(1, 3) = 0;
m(1, 4) = 1;
m(1, 5) = 0;
m(2, 0) = 0;
m(2, 1) = 0;
m(2, 2) = 0;
m(2, 3) = 0;
m(2, 4) = 0;
m(2, 5) = 1;
m(3, 0) = 0;
m(3, 1) = 0;
m(3, 2) = 0;
m(3, 3) = 100.0*(-(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) - ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*((-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) + ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2)) + 1.0*pow((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L, 2)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L, 2)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) - 1.0/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L);
m(3, 4) = 100.0*((-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) + ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2)) - 1.0*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734));
m(3, 5) = 100.0*((-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) + ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
m(4, 0) = 0;
m(4, 1) = 0;
m(4, 2) = 0;
m(4, 3) = -100.0*(-(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) - ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2)) - 1.0*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734));
m(4, 4) = 1.0*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) - 100.0*pow(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L, 2)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*pow(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200, 2)/((pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2))*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734));
m(4, 5) = -100.0*(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
m(5, 0) = 0;
m(5, 1) = 0;
m(5, 2) = 0;
m(5, 3) = -100.0*(-(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) - ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
m(5, 4) = -100.0*(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
m(5, 5) = -100.0*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
return m;
}
MatrixXd Integrate::getB0(const state_type &x) const{
MatrixXd m(6, 3);
m(0, 0) = 0;
m(0, 1) = 0;
m(0, 2) = 0;
m(1, 0) = 0;
m(1, 1) = 0;
m(1, 2) = 0;
m(2, 0) = 0;
m(2, 1) = 0;
m(2, 2) = 0;
m(3, 0) = -100*(-(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) - ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*((-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) + ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2)) - pow((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L, 2)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L, 2)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) + 1.0/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L);
m(3, 1) = -100*((-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) + ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2)) + ((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734));
m(3, 2) = -100*((-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) + ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
m(4, 0) = 100*(-(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) - ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2)) + ((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734));
m(4, 1) = -(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + 100*pow(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L, 2)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*pow(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200, 2)/((pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2))*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734));
m(4, 2) = 100*(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
m(5, 0) = 100*(-(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) - ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
m(5, 1) = 100*(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
m(5, 2) = 100*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
return m;
}
MatrixXd Integrate::getV0(const state_type &x) const{
MatrixXd m(6, 3);
m(0, 0) = 0;
m(0, 1) = 0;
m(0, 2) = 0;
m(1, 0) = 0;
m(1, 1) = 0;
m(1, 2) = 0;
m(2, 0) = 0;
m(2, 1) = 0;
m(2, 2) = 0;
m(3, 0) = -100*(-(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) - ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*((-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) + ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2)) - pow((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L, 2)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L, 2)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) + 1.0/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L);
m(3, 1) = -100*((-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) + ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2)) + ((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734));
m(3, 2) = -100*((-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) + ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
m(4, 0) = 100*(-(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) - ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2)) + ((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734));
m(4, 1) = -(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + 100*pow(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L, 2)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*pow(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200, 2)/((pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2))*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734));
m(4, 2) = 100*(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
m(5, 0) = 100*(-(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/((11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)) - ((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L))*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
m(5, 1) = 100*(-((5.0L/2.0L)*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 32.0L/25.0L)*((11.0L/2.0L)*cos(x[1]) + 5*cos(x[2]) + (5.0L/2.0L)*cos(x[1] + x[2]) + 164.0L/25.0L)/(11*cos(x[1]) + 5*cos(x[2]) + 5*cos(x[1] + x[2]) + 321.0L/25.0L) + (5.0L/2.0L)*cos(x[2]) + 32.0L/25.0L)*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(55000*cos(x[1]) + 25000*cos(x[2]) + 25000*cos(x[1] + x[2]) + 64200)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
m(5, 2) = 100*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734)/(pow(125*cos(x[2]) + 125*cos(x[1] + x[2]) + 64, 2)*(-75625*cos(2*x[1]) + 88250*cos(x[2]) - 68750*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 114734) + 128*(275*cos(x[1]) + 125*cos(x[2]) + 125*cos(x[1] + x[2]) + 321)*(75625*cos(2*x[1]) - 88250*cos(x[2]) + 68750*cos(2*x[1] + x[2]) + 15625*cos(2*x[1] + 2*x[2]) - 114734) + (1.0L/2.0L)*pow(19575*cos(x[1]) + 44125*cos(x[2]) + 34375*cos(x[1] - x[2]) - 31625*cos(x[1] + x[2]) - 15625*cos(x[1] + 2*x[2]) - 34375*cos(2*x[1] + x[2]) - 15625*cos(2*x[1] + 2*x[2]) + 24567, 2));
return m;
}
}