2023-07-26 22:14:57 +08:00
|
|
|
#include "live.h"
|
|
|
|
|
|
|
|
|
|
namespace {
|
|
|
|
|
#define DIM 22
|
|
|
|
|
#define EDIM 21
|
|
|
|
|
#define MEDIM 21
|
|
|
|
|
typedef void (*Hfun)(double *, double *, double *);
|
|
|
|
|
const static double MAHA_THRESH_4 = 7.814727903251177;
|
|
|
|
|
const static double MAHA_THRESH_9 = 7.814727903251177;
|
|
|
|
|
const static double MAHA_THRESH_10 = 7.814727903251177;
|
|
|
|
|
const static double MAHA_THRESH_12 = 7.814727903251177;
|
|
|
|
|
const static double MAHA_THRESH_35 = 7.814727903251177;
|
|
|
|
|
const static double MAHA_THRESH_32 = 9.487729036781154;
|
|
|
|
|
const static double MAHA_THRESH_13 = 7.814727903251177;
|
|
|
|
|
const static double MAHA_THRESH_14 = 7.814727903251177;
|
|
|
|
|
const static double MAHA_THRESH_33 = 7.814727903251177;
|
|
|
|
|
|
|
|
|
|
/******************************************************************************
|
|
|
|
|
* Code generated with SymPy 1.12 *
|
|
|
|
|
* *
|
|
|
|
|
* See http://www.sympy.org/ for more information. *
|
|
|
|
|
* *
|
|
|
|
|
* This file is part of 'ekf' *
|
|
|
|
|
******************************************************************************/
|
2023-08-22 14:20:25 -07:00
|
|
|
void H(double *in_vec, double *out_5027207160750161004) {
|
|
|
|
|
out_5027207160750161004[0] = 0;
|
|
|
|
|
out_5027207160750161004[1] = -sin(in_vec[1])*sin(in_vec[2])*in_vec[4] - sin(in_vec[1])*cos(in_vec[2])*in_vec[3] - cos(in_vec[1])*in_vec[5];
|
|
|
|
|
out_5027207160750161004[2] = -sin(in_vec[2])*cos(in_vec[1])*in_vec[3] + cos(in_vec[1])*cos(in_vec[2])*in_vec[4];
|
|
|
|
|
out_5027207160750161004[3] = cos(in_vec[1])*cos(in_vec[2]);
|
|
|
|
|
out_5027207160750161004[4] = sin(in_vec[2])*cos(in_vec[1]);
|
|
|
|
|
out_5027207160750161004[5] = -sin(in_vec[1]);
|
|
|
|
|
out_5027207160750161004[6] = (sin(in_vec[0])*sin(in_vec[2]) + sin(in_vec[1])*cos(in_vec[0])*cos(in_vec[2]))*in_vec[3] + (-sin(in_vec[0])*cos(in_vec[2]) + sin(in_vec[1])*sin(in_vec[2])*cos(in_vec[0]))*in_vec[4] + cos(in_vec[0])*cos(in_vec[1])*in_vec[5];
|
|
|
|
|
out_5027207160750161004[7] = -sin(in_vec[0])*sin(in_vec[1])*in_vec[5] + sin(in_vec[0])*sin(in_vec[2])*cos(in_vec[1])*in_vec[4] + sin(in_vec[0])*cos(in_vec[1])*cos(in_vec[2])*in_vec[3];
|
|
|
|
|
out_5027207160750161004[8] = (-sin(in_vec[0])*sin(in_vec[1])*sin(in_vec[2]) - cos(in_vec[0])*cos(in_vec[2]))*in_vec[3] + (sin(in_vec[0])*sin(in_vec[1])*cos(in_vec[2]) - sin(in_vec[2])*cos(in_vec[0]))*in_vec[4];
|
|
|
|
|
out_5027207160750161004[9] = sin(in_vec[0])*sin(in_vec[1])*cos(in_vec[2]) - sin(in_vec[2])*cos(in_vec[0]);
|
|
|
|
|
out_5027207160750161004[10] = sin(in_vec[0])*sin(in_vec[1])*sin(in_vec[2]) + cos(in_vec[0])*cos(in_vec[2]);
|
|
|
|
|
out_5027207160750161004[11] = sin(in_vec[0])*cos(in_vec[1]);
|
|
|
|
|
out_5027207160750161004[12] = (-sin(in_vec[0])*sin(in_vec[1])*sin(in_vec[2]) - cos(in_vec[0])*cos(in_vec[2]))*in_vec[4] + (-sin(in_vec[0])*sin(in_vec[1])*cos(in_vec[2]) + sin(in_vec[2])*cos(in_vec[0]))*in_vec[3] - sin(in_vec[0])*cos(in_vec[1])*in_vec[5];
|
|
|
|
|
out_5027207160750161004[13] = -sin(in_vec[1])*cos(in_vec[0])*in_vec[5] + sin(in_vec[2])*cos(in_vec[0])*cos(in_vec[1])*in_vec[4] + cos(in_vec[0])*cos(in_vec[1])*cos(in_vec[2])*in_vec[3];
|
|
|
|
|
out_5027207160750161004[14] = (sin(in_vec[0])*sin(in_vec[2]) + sin(in_vec[1])*cos(in_vec[0])*cos(in_vec[2]))*in_vec[4] + (sin(in_vec[0])*cos(in_vec[2]) - sin(in_vec[1])*sin(in_vec[2])*cos(in_vec[0]))*in_vec[3];
|
|
|
|
|
out_5027207160750161004[15] = sin(in_vec[0])*sin(in_vec[2]) + sin(in_vec[1])*cos(in_vec[0])*cos(in_vec[2]);
|
|
|
|
|
out_5027207160750161004[16] = -sin(in_vec[0])*cos(in_vec[2]) + sin(in_vec[1])*sin(in_vec[2])*cos(in_vec[0]);
|
|
|
|
|
out_5027207160750161004[17] = cos(in_vec[0])*cos(in_vec[1]);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void err_fun(double *nom_x, double *delta_x, double *out_812293829444590878) {
|
|
|
|
|
out_812293829444590878[0] = delta_x[0] + nom_x[0];
|
|
|
|
|
out_812293829444590878[1] = delta_x[1] + nom_x[1];
|
|
|
|
|
out_812293829444590878[2] = delta_x[2] + nom_x[2];
|
|
|
|
|
out_812293829444590878[3] = -0.5*delta_x[3]*nom_x[4] - 0.5*delta_x[4]*nom_x[5] - 0.5*delta_x[5]*nom_x[6] + 1.0*nom_x[3];
|
|
|
|
|
out_812293829444590878[4] = 0.5*delta_x[3]*nom_x[3] + 0.5*delta_x[4]*nom_x[6] - 0.5*delta_x[5]*nom_x[5] + 1.0*nom_x[4];
|
|
|
|
|
out_812293829444590878[5] = -0.5*delta_x[3]*nom_x[6] + 0.5*delta_x[4]*nom_x[3] + 0.5*delta_x[5]*nom_x[4] + 1.0*nom_x[5];
|
|
|
|
|
out_812293829444590878[6] = 0.5*delta_x[3]*nom_x[5] - 0.5*delta_x[4]*nom_x[4] + 0.5*delta_x[5]*nom_x[3] + 1.0*nom_x[6];
|
|
|
|
|
out_812293829444590878[7] = delta_x[6] + nom_x[7];
|
|
|
|
|
out_812293829444590878[8] = delta_x[7] + nom_x[8];
|
|
|
|
|
out_812293829444590878[9] = delta_x[8] + nom_x[9];
|
|
|
|
|
out_812293829444590878[10] = delta_x[9] + nom_x[10];
|
|
|
|
|
out_812293829444590878[11] = delta_x[10] + nom_x[11];
|
|
|
|
|
out_812293829444590878[12] = delta_x[11] + nom_x[12];
|
|
|
|
|
out_812293829444590878[13] = delta_x[12] + nom_x[13];
|
|
|
|
|
out_812293829444590878[14] = delta_x[13] + nom_x[14];
|
|
|
|
|
out_812293829444590878[15] = delta_x[14] + nom_x[15];
|
|
|
|
|
out_812293829444590878[16] = delta_x[15] + nom_x[16];
|
|
|
|
|
out_812293829444590878[17] = delta_x[16] + nom_x[17];
|
|
|
|
|
out_812293829444590878[18] = delta_x[17] + nom_x[18];
|
|
|
|
|
out_812293829444590878[19] = delta_x[18] + nom_x[19];
|
|
|
|
|
out_812293829444590878[20] = delta_x[19] + nom_x[20];
|
|
|
|
|
out_812293829444590878[21] = delta_x[20] + nom_x[21];
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void inv_err_fun(double *nom_x, double *true_x, double *out_2331899367078236024) {
|
|
|
|
|
out_2331899367078236024[0] = -nom_x[0] + true_x[0];
|
|
|
|
|
out_2331899367078236024[1] = -nom_x[1] + true_x[1];
|
|
|
|
|
out_2331899367078236024[2] = -nom_x[2] + true_x[2];
|
|
|
|
|
out_2331899367078236024[3] = 2*nom_x[3]*true_x[4] - 2*nom_x[4]*true_x[3] + 2*nom_x[5]*true_x[6] - 2*nom_x[6]*true_x[5];
|
|
|
|
|
out_2331899367078236024[4] = 2*nom_x[3]*true_x[5] - 2*nom_x[4]*true_x[6] - 2*nom_x[5]*true_x[3] + 2*nom_x[6]*true_x[4];
|
|
|
|
|
out_2331899367078236024[5] = 2*nom_x[3]*true_x[6] + 2*nom_x[4]*true_x[5] - 2*nom_x[5]*true_x[4] - 2*nom_x[6]*true_x[3];
|
|
|
|
|
out_2331899367078236024[6] = -nom_x[7] + true_x[7];
|
|
|
|
|
out_2331899367078236024[7] = -nom_x[8] + true_x[8];
|
|
|
|
|
out_2331899367078236024[8] = -nom_x[9] + true_x[9];
|
|
|
|
|
out_2331899367078236024[9] = -nom_x[10] + true_x[10];
|
|
|
|
|
out_2331899367078236024[10] = -nom_x[11] + true_x[11];
|
|
|
|
|
out_2331899367078236024[11] = -nom_x[12] + true_x[12];
|
|
|
|
|
out_2331899367078236024[12] = -nom_x[13] + true_x[13];
|
|
|
|
|
out_2331899367078236024[13] = -nom_x[14] + true_x[14];
|
|
|
|
|
out_2331899367078236024[14] = -nom_x[15] + true_x[15];
|
|
|
|
|
out_2331899367078236024[15] = -nom_x[16] + true_x[16];
|
|
|
|
|
out_2331899367078236024[16] = -nom_x[17] + true_x[17];
|
|
|
|
|
out_2331899367078236024[17] = -nom_x[18] + true_x[18];
|
|
|
|
|
out_2331899367078236024[18] = -nom_x[19] + true_x[19];
|
|
|
|
|
out_2331899367078236024[19] = -nom_x[20] + true_x[20];
|
|
|
|
|
out_2331899367078236024[20] = -nom_x[21] + true_x[21];
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void H_mod_fun(double *state, double *out_3350621260021879835) {
|
|
|
|
|
out_3350621260021879835[0] = 1.0;
|
|
|
|
|
out_3350621260021879835[1] = 0;
|
|
|
|
|
out_3350621260021879835[2] = 0;
|
|
|
|
|
out_3350621260021879835[3] = 0;
|
|
|
|
|
out_3350621260021879835[4] = 0;
|
|
|
|
|
out_3350621260021879835[5] = 0;
|
|
|
|
|
out_3350621260021879835[6] = 0;
|
|
|
|
|
out_3350621260021879835[7] = 0;
|
|
|
|
|
out_3350621260021879835[8] = 0;
|
|
|
|
|
out_3350621260021879835[9] = 0;
|
|
|
|
|
out_3350621260021879835[10] = 0;
|
|
|
|
|
out_3350621260021879835[11] = 0;
|
|
|
|
|
out_3350621260021879835[12] = 0;
|
|
|
|
|
out_3350621260021879835[13] = 0;
|
|
|
|
|
out_3350621260021879835[14] = 0;
|
|
|
|
|
out_3350621260021879835[15] = 0;
|
|
|
|
|
out_3350621260021879835[16] = 0;
|
|
|
|
|
out_3350621260021879835[17] = 0;
|
|
|
|
|
out_3350621260021879835[18] = 0;
|
|
|
|
|
out_3350621260021879835[19] = 0;
|
|
|
|
|
out_3350621260021879835[20] = 0;
|
|
|
|
|
out_3350621260021879835[21] = 0;
|
|
|
|
|
out_3350621260021879835[22] = 1.0;
|
|
|
|
|
out_3350621260021879835[23] = 0;
|
|
|
|
|
out_3350621260021879835[24] = 0;
|
|
|
|
|
out_3350621260021879835[25] = 0;
|
|
|
|
|
out_3350621260021879835[26] = 0;
|
|
|
|
|
out_3350621260021879835[27] = 0;
|
|
|
|
|
out_3350621260021879835[28] = 0;
|
|
|
|
|
out_3350621260021879835[29] = 0;
|
|
|
|
|
out_3350621260021879835[30] = 0;
|
|
|
|
|
out_3350621260021879835[31] = 0;
|
|
|
|
|
out_3350621260021879835[32] = 0;
|
|
|
|
|
out_3350621260021879835[33] = 0;
|
|
|
|
|
out_3350621260021879835[34] = 0;
|
|
|
|
|
out_3350621260021879835[35] = 0;
|
|
|
|
|
out_3350621260021879835[36] = 0;
|
|
|
|
|
out_3350621260021879835[37] = 0;
|
|
|
|
|
out_3350621260021879835[38] = 0;
|
|
|
|
|
out_3350621260021879835[39] = 0;
|
|
|
|
|
out_3350621260021879835[40] = 0;
|
|
|
|
|
out_3350621260021879835[41] = 0;
|
|
|
|
|
out_3350621260021879835[42] = 0;
|
|
|
|
|
out_3350621260021879835[43] = 0;
|
|
|
|
|
out_3350621260021879835[44] = 1.0;
|
|
|
|
|
out_3350621260021879835[45] = 0;
|
|
|
|
|
out_3350621260021879835[46] = 0;
|
|
|
|
|
out_3350621260021879835[47] = 0;
|
|
|
|
|
out_3350621260021879835[48] = 0;
|
|
|
|
|
out_3350621260021879835[49] = 0;
|
|
|
|
|
out_3350621260021879835[50] = 0;
|
|
|
|
|
out_3350621260021879835[51] = 0;
|
|
|
|
|
out_3350621260021879835[52] = 0;
|
|
|
|
|
out_3350621260021879835[53] = 0;
|
|
|
|
|
out_3350621260021879835[54] = 0;
|
|
|
|
|
out_3350621260021879835[55] = 0;
|
|
|
|
|
out_3350621260021879835[56] = 0;
|
|
|
|
|
out_3350621260021879835[57] = 0;
|
|
|
|
|
out_3350621260021879835[58] = 0;
|
|
|
|
|
out_3350621260021879835[59] = 0;
|
|
|
|
|
out_3350621260021879835[60] = 0;
|
|
|
|
|
out_3350621260021879835[61] = 0;
|
|
|
|
|
out_3350621260021879835[62] = 0;
|
|
|
|
|
out_3350621260021879835[63] = 0;
|
|
|
|
|
out_3350621260021879835[64] = 0;
|
|
|
|
|
out_3350621260021879835[65] = 0;
|
|
|
|
|
out_3350621260021879835[66] = -0.5*state[4];
|
|
|
|
|
out_3350621260021879835[67] = -0.5*state[5];
|
|
|
|
|
out_3350621260021879835[68] = -0.5*state[6];
|
|
|
|
|
out_3350621260021879835[69] = 0;
|
|
|
|
|
out_3350621260021879835[70] = 0;
|
|
|
|
|
out_3350621260021879835[71] = 0;
|
|
|
|
|
out_3350621260021879835[72] = 0;
|
|
|
|
|
out_3350621260021879835[73] = 0;
|
|
|
|
|
out_3350621260021879835[74] = 0;
|
|
|
|
|
out_3350621260021879835[75] = 0;
|
|
|
|
|
out_3350621260021879835[76] = 0;
|
|
|
|
|
out_3350621260021879835[77] = 0;
|
|
|
|
|
out_3350621260021879835[78] = 0;
|
|
|
|
|
out_3350621260021879835[79] = 0;
|
|
|
|
|
out_3350621260021879835[80] = 0;
|
|
|
|
|
out_3350621260021879835[81] = 0;
|
|
|
|
|
out_3350621260021879835[82] = 0;
|
|
|
|
|
out_3350621260021879835[83] = 0;
|
|
|
|
|
out_3350621260021879835[84] = 0;
|
|
|
|
|
out_3350621260021879835[85] = 0;
|
|
|
|
|
out_3350621260021879835[86] = 0;
|
|
|
|
|
out_3350621260021879835[87] = 0.5*state[3];
|
|
|
|
|
out_3350621260021879835[88] = 0.5*state[6];
|
|
|
|
|
out_3350621260021879835[89] = -0.5*state[5];
|
|
|
|
|
out_3350621260021879835[90] = 0;
|
|
|
|
|
out_3350621260021879835[91] = 0;
|
|
|
|
|
out_3350621260021879835[92] = 0;
|
|
|
|
|
out_3350621260021879835[93] = 0;
|
|
|
|
|
out_3350621260021879835[94] = 0;
|
|
|
|
|
out_3350621260021879835[95] = 0;
|
|
|
|
|
out_3350621260021879835[96] = 0;
|
|
|
|
|
out_3350621260021879835[97] = 0;
|
|
|
|
|
out_3350621260021879835[98] = 0;
|
|
|
|
|
out_3350621260021879835[99] = 0;
|
|
|
|
|
out_3350621260021879835[100] = 0;
|
|
|
|
|
out_3350621260021879835[101] = 0;
|
|
|
|
|
out_3350621260021879835[102] = 0;
|
|
|
|
|
out_3350621260021879835[103] = 0;
|
|
|
|
|
out_3350621260021879835[104] = 0;
|
|
|
|
|
out_3350621260021879835[105] = 0;
|
|
|
|
|
out_3350621260021879835[106] = 0;
|
|
|
|
|
out_3350621260021879835[107] = 0;
|
|
|
|
|
out_3350621260021879835[108] = -0.5*state[6];
|
|
|
|
|
out_3350621260021879835[109] = 0.5*state[3];
|
|
|
|
|
out_3350621260021879835[110] = 0.5*state[4];
|
|
|
|
|
out_3350621260021879835[111] = 0;
|
|
|
|
|
out_3350621260021879835[112] = 0;
|
|
|
|
|
out_3350621260021879835[113] = 0;
|
|
|
|
|
out_3350621260021879835[114] = 0;
|
|
|
|
|
out_3350621260021879835[115] = 0;
|
|
|
|
|
out_3350621260021879835[116] = 0;
|
|
|
|
|
out_3350621260021879835[117] = 0;
|
|
|
|
|
out_3350621260021879835[118] = 0;
|
|
|
|
|
out_3350621260021879835[119] = 0;
|
|
|
|
|
out_3350621260021879835[120] = 0;
|
|
|
|
|
out_3350621260021879835[121] = 0;
|
|
|
|
|
out_3350621260021879835[122] = 0;
|
|
|
|
|
out_3350621260021879835[123] = 0;
|
|
|
|
|
out_3350621260021879835[124] = 0;
|
|
|
|
|
out_3350621260021879835[125] = 0;
|
|
|
|
|
out_3350621260021879835[126] = 0;
|
|
|
|
|
out_3350621260021879835[127] = 0;
|
|
|
|
|
out_3350621260021879835[128] = 0;
|
|
|
|
|
out_3350621260021879835[129] = 0.5*state[5];
|
|
|
|
|
out_3350621260021879835[130] = -0.5*state[4];
|
|
|
|
|
out_3350621260021879835[131] = 0.5*state[3];
|
|
|
|
|
out_3350621260021879835[132] = 0;
|
|
|
|
|
out_3350621260021879835[133] = 0;
|
|
|
|
|
out_3350621260021879835[134] = 0;
|
|
|
|
|
out_3350621260021879835[135] = 0;
|
|
|
|
|
out_3350621260021879835[136] = 0;
|
|
|
|
|
out_3350621260021879835[137] = 0;
|
|
|
|
|
out_3350621260021879835[138] = 0;
|
|
|
|
|
out_3350621260021879835[139] = 0;
|
|
|
|
|
out_3350621260021879835[140] = 0;
|
|
|
|
|
out_3350621260021879835[141] = 0;
|
|
|
|
|
out_3350621260021879835[142] = 0;
|
|
|
|
|
out_3350621260021879835[143] = 0;
|
|
|
|
|
out_3350621260021879835[144] = 0;
|
|
|
|
|
out_3350621260021879835[145] = 0;
|
|
|
|
|
out_3350621260021879835[146] = 0;
|
|
|
|
|
out_3350621260021879835[147] = 0;
|
|
|
|
|
out_3350621260021879835[148] = 0;
|
|
|
|
|
out_3350621260021879835[149] = 0;
|
|
|
|
|
out_3350621260021879835[150] = 0;
|
|
|
|
|
out_3350621260021879835[151] = 0;
|
|
|
|
|
out_3350621260021879835[152] = 0;
|
|
|
|
|
out_3350621260021879835[153] = 1.0;
|
|
|
|
|
out_3350621260021879835[154] = 0;
|
|
|
|
|
out_3350621260021879835[155] = 0;
|
|
|
|
|
out_3350621260021879835[156] = 0;
|
|
|
|
|
out_3350621260021879835[157] = 0;
|
|
|
|
|
out_3350621260021879835[158] = 0;
|
|
|
|
|
out_3350621260021879835[159] = 0;
|
|
|
|
|
out_3350621260021879835[160] = 0;
|
|
|
|
|
out_3350621260021879835[161] = 0;
|
|
|
|
|
out_3350621260021879835[162] = 0;
|
|
|
|
|
out_3350621260021879835[163] = 0;
|
|
|
|
|
out_3350621260021879835[164] = 0;
|
|
|
|
|
out_3350621260021879835[165] = 0;
|
|
|
|
|
out_3350621260021879835[166] = 0;
|
|
|
|
|
out_3350621260021879835[167] = 0;
|
|
|
|
|
out_3350621260021879835[168] = 0;
|
|
|
|
|
out_3350621260021879835[169] = 0;
|
|
|
|
|
out_3350621260021879835[170] = 0;
|
|
|
|
|
out_3350621260021879835[171] = 0;
|
|
|
|
|
out_3350621260021879835[172] = 0;
|
|
|
|
|
out_3350621260021879835[173] = 0;
|
|
|
|
|
out_3350621260021879835[174] = 0;
|
|
|
|
|
out_3350621260021879835[175] = 1.0;
|
|
|
|
|
out_3350621260021879835[176] = 0;
|
|
|
|
|
out_3350621260021879835[177] = 0;
|
|
|
|
|
out_3350621260021879835[178] = 0;
|
|
|
|
|
out_3350621260021879835[179] = 0;
|
|
|
|
|
out_3350621260021879835[180] = 0;
|
|
|
|
|
out_3350621260021879835[181] = 0;
|
|
|
|
|
out_3350621260021879835[182] = 0;
|
|
|
|
|
out_3350621260021879835[183] = 0;
|
|
|
|
|
out_3350621260021879835[184] = 0;
|
|
|
|
|
out_3350621260021879835[185] = 0;
|
|
|
|
|
out_3350621260021879835[186] = 0;
|
|
|
|
|
out_3350621260021879835[187] = 0;
|
|
|
|
|
out_3350621260021879835[188] = 0;
|
|
|
|
|
out_3350621260021879835[189] = 0;
|
|
|
|
|
out_3350621260021879835[190] = 0;
|
|
|
|
|
out_3350621260021879835[191] = 0;
|
|
|
|
|
out_3350621260021879835[192] = 0;
|
|
|
|
|
out_3350621260021879835[193] = 0;
|
|
|
|
|
out_3350621260021879835[194] = 0;
|
|
|
|
|
out_3350621260021879835[195] = 0;
|
|
|
|
|
out_3350621260021879835[196] = 0;
|
|
|
|
|
out_3350621260021879835[197] = 1.0;
|
|
|
|
|
out_3350621260021879835[198] = 0;
|
|
|
|
|
out_3350621260021879835[199] = 0;
|
|
|
|
|
out_3350621260021879835[200] = 0;
|
|
|
|
|
out_3350621260021879835[201] = 0;
|
|
|
|
|
out_3350621260021879835[202] = 0;
|
|
|
|
|
out_3350621260021879835[203] = 0;
|
|
|
|
|
out_3350621260021879835[204] = 0;
|
|
|
|
|
out_3350621260021879835[205] = 0;
|
|
|
|
|
out_3350621260021879835[206] = 0;
|
|
|
|
|
out_3350621260021879835[207] = 0;
|
|
|
|
|
out_3350621260021879835[208] = 0;
|
|
|
|
|
out_3350621260021879835[209] = 0;
|
|
|
|
|
out_3350621260021879835[210] = 0;
|
|
|
|
|
out_3350621260021879835[211] = 0;
|
|
|
|
|
out_3350621260021879835[212] = 0;
|
|
|
|
|
out_3350621260021879835[213] = 0;
|
|
|
|
|
out_3350621260021879835[214] = 0;
|
|
|
|
|
out_3350621260021879835[215] = 0;
|
|
|
|
|
out_3350621260021879835[216] = 0;
|
|
|
|
|
out_3350621260021879835[217] = 0;
|
|
|
|
|
out_3350621260021879835[218] = 0;
|
|
|
|
|
out_3350621260021879835[219] = 1.0;
|
|
|
|
|
out_3350621260021879835[220] = 0;
|
|
|
|
|
out_3350621260021879835[221] = 0;
|
|
|
|
|
out_3350621260021879835[222] = 0;
|
|
|
|
|
out_3350621260021879835[223] = 0;
|
|
|
|
|
out_3350621260021879835[224] = 0;
|
|
|
|
|
out_3350621260021879835[225] = 0;
|
|
|
|
|
out_3350621260021879835[226] = 0;
|
|
|
|
|
out_3350621260021879835[227] = 0;
|
|
|
|
|
out_3350621260021879835[228] = 0;
|
|
|
|
|
out_3350621260021879835[229] = 0;
|
|
|
|
|
out_3350621260021879835[230] = 0;
|
|
|
|
|
out_3350621260021879835[231] = 0;
|
|
|
|
|
out_3350621260021879835[232] = 0;
|
|
|
|
|
out_3350621260021879835[233] = 0;
|
|
|
|
|
out_3350621260021879835[234] = 0;
|
|
|
|
|
out_3350621260021879835[235] = 0;
|
|
|
|
|
out_3350621260021879835[236] = 0;
|
|
|
|
|
out_3350621260021879835[237] = 0;
|
|
|
|
|
out_3350621260021879835[238] = 0;
|
|
|
|
|
out_3350621260021879835[239] = 0;
|
|
|
|
|
out_3350621260021879835[240] = 0;
|
|
|
|
|
out_3350621260021879835[241] = 1.0;
|
|
|
|
|
out_3350621260021879835[242] = 0;
|
|
|
|
|
out_3350621260021879835[243] = 0;
|
|
|
|
|
out_3350621260021879835[244] = 0;
|
|
|
|
|
out_3350621260021879835[245] = 0;
|
|
|
|
|
out_3350621260021879835[246] = 0;
|
|
|
|
|
out_3350621260021879835[247] = 0;
|
|
|
|
|
out_3350621260021879835[248] = 0;
|
|
|
|
|
out_3350621260021879835[249] = 0;
|
|
|
|
|
out_3350621260021879835[250] = 0;
|
|
|
|
|
out_3350621260021879835[251] = 0;
|
|
|
|
|
out_3350621260021879835[252] = 0;
|
|
|
|
|
out_3350621260021879835[253] = 0;
|
|
|
|
|
out_3350621260021879835[254] = 0;
|
|
|
|
|
out_3350621260021879835[255] = 0;
|
|
|
|
|
out_3350621260021879835[256] = 0;
|
|
|
|
|
out_3350621260021879835[257] = 0;
|
|
|
|
|
out_3350621260021879835[258] = 0;
|
|
|
|
|
out_3350621260021879835[259] = 0;
|
|
|
|
|
out_3350621260021879835[260] = 0;
|
|
|
|
|
out_3350621260021879835[261] = 0;
|
|
|
|
|
out_3350621260021879835[262] = 0;
|
|
|
|
|
out_3350621260021879835[263] = 1.0;
|
|
|
|
|
out_3350621260021879835[264] = 0;
|
|
|
|
|
out_3350621260021879835[265] = 0;
|
|
|
|
|
out_3350621260021879835[266] = 0;
|
|
|
|
|
out_3350621260021879835[267] = 0;
|
|
|
|
|
out_3350621260021879835[268] = 0;
|
|
|
|
|
out_3350621260021879835[269] = 0;
|
|
|
|
|
out_3350621260021879835[270] = 0;
|
|
|
|
|
out_3350621260021879835[271] = 0;
|
|
|
|
|
out_3350621260021879835[272] = 0;
|
|
|
|
|
out_3350621260021879835[273] = 0;
|
|
|
|
|
out_3350621260021879835[274] = 0;
|
|
|
|
|
out_3350621260021879835[275] = 0;
|
|
|
|
|
out_3350621260021879835[276] = 0;
|
|
|
|
|
out_3350621260021879835[277] = 0;
|
|
|
|
|
out_3350621260021879835[278] = 0;
|
|
|
|
|
out_3350621260021879835[279] = 0;
|
|
|
|
|
out_3350621260021879835[280] = 0;
|
|
|
|
|
out_3350621260021879835[281] = 0;
|
|
|
|
|
out_3350621260021879835[282] = 0;
|
|
|
|
|
out_3350621260021879835[283] = 0;
|
|
|
|
|
out_3350621260021879835[284] = 0;
|
|
|
|
|
out_3350621260021879835[285] = 1.0;
|
|
|
|
|
out_3350621260021879835[286] = 0;
|
|
|
|
|
out_3350621260021879835[287] = 0;
|
|
|
|
|
out_3350621260021879835[288] = 0;
|
|
|
|
|
out_3350621260021879835[289] = 0;
|
|
|
|
|
out_3350621260021879835[290] = 0;
|
|
|
|
|
out_3350621260021879835[291] = 0;
|
|
|
|
|
out_3350621260021879835[292] = 0;
|
|
|
|
|
out_3350621260021879835[293] = 0;
|
|
|
|
|
out_3350621260021879835[294] = 0;
|
|
|
|
|
out_3350621260021879835[295] = 0;
|
|
|
|
|
out_3350621260021879835[296] = 0;
|
|
|
|
|
out_3350621260021879835[297] = 0;
|
|
|
|
|
out_3350621260021879835[298] = 0;
|
|
|
|
|
out_3350621260021879835[299] = 0;
|
|
|
|
|
out_3350621260021879835[300] = 0;
|
|
|
|
|
out_3350621260021879835[301] = 0;
|
|
|
|
|
out_3350621260021879835[302] = 0;
|
|
|
|
|
out_3350621260021879835[303] = 0;
|
|
|
|
|
out_3350621260021879835[304] = 0;
|
|
|
|
|
out_3350621260021879835[305] = 0;
|
|
|
|
|
out_3350621260021879835[306] = 0;
|
|
|
|
|
out_3350621260021879835[307] = 1.0;
|
|
|
|
|
out_3350621260021879835[308] = 0;
|
|
|
|
|
out_3350621260021879835[309] = 0;
|
|
|
|
|
out_3350621260021879835[310] = 0;
|
|
|
|
|
out_3350621260021879835[311] = 0;
|
|
|
|
|
out_3350621260021879835[312] = 0;
|
|
|
|
|
out_3350621260021879835[313] = 0;
|
|
|
|
|
out_3350621260021879835[314] = 0;
|
|
|
|
|
out_3350621260021879835[315] = 0;
|
|
|
|
|
out_3350621260021879835[316] = 0;
|
|
|
|
|
out_3350621260021879835[317] = 0;
|
|
|
|
|
out_3350621260021879835[318] = 0;
|
|
|
|
|
out_3350621260021879835[319] = 0;
|
|
|
|
|
out_3350621260021879835[320] = 0;
|
|
|
|
|
out_3350621260021879835[321] = 0;
|
|
|
|
|
out_3350621260021879835[322] = 0;
|
|
|
|
|
out_3350621260021879835[323] = 0;
|
|
|
|
|
out_3350621260021879835[324] = 0;
|
|
|
|
|
out_3350621260021879835[325] = 0;
|
|
|
|
|
out_3350621260021879835[326] = 0;
|
|
|
|
|
out_3350621260021879835[327] = 0;
|
|
|
|
|
out_3350621260021879835[328] = 0;
|
|
|
|
|
out_3350621260021879835[329] = 1.0;
|
|
|
|
|
out_3350621260021879835[330] = 0;
|
|
|
|
|
out_3350621260021879835[331] = 0;
|
|
|
|
|
out_3350621260021879835[332] = 0;
|
|
|
|
|
out_3350621260021879835[333] = 0;
|
|
|
|
|
out_3350621260021879835[334] = 0;
|
|
|
|
|
out_3350621260021879835[335] = 0;
|
|
|
|
|
out_3350621260021879835[336] = 0;
|
|
|
|
|
out_3350621260021879835[337] = 0;
|
|
|
|
|
out_3350621260021879835[338] = 0;
|
|
|
|
|
out_3350621260021879835[339] = 0;
|
|
|
|
|
out_3350621260021879835[340] = 0;
|
|
|
|
|
out_3350621260021879835[341] = 0;
|
|
|
|
|
out_3350621260021879835[342] = 0;
|
|
|
|
|
out_3350621260021879835[343] = 0;
|
|
|
|
|
out_3350621260021879835[344] = 0;
|
|
|
|
|
out_3350621260021879835[345] = 0;
|
|
|
|
|
out_3350621260021879835[346] = 0;
|
|
|
|
|
out_3350621260021879835[347] = 0;
|
|
|
|
|
out_3350621260021879835[348] = 0;
|
|
|
|
|
out_3350621260021879835[349] = 0;
|
|
|
|
|
out_3350621260021879835[350] = 0;
|
|
|
|
|
out_3350621260021879835[351] = 1.0;
|
|
|
|
|
out_3350621260021879835[352] = 0;
|
|
|
|
|
out_3350621260021879835[353] = 0;
|
|
|
|
|
out_3350621260021879835[354] = 0;
|
|
|
|
|
out_3350621260021879835[355] = 0;
|
|
|
|
|
out_3350621260021879835[356] = 0;
|
|
|
|
|
out_3350621260021879835[357] = 0;
|
|
|
|
|
out_3350621260021879835[358] = 0;
|
|
|
|
|
out_3350621260021879835[359] = 0;
|
|
|
|
|
out_3350621260021879835[360] = 0;
|
|
|
|
|
out_3350621260021879835[361] = 0;
|
|
|
|
|
out_3350621260021879835[362] = 0;
|
|
|
|
|
out_3350621260021879835[363] = 0;
|
|
|
|
|
out_3350621260021879835[364] = 0;
|
|
|
|
|
out_3350621260021879835[365] = 0;
|
|
|
|
|
out_3350621260021879835[366] = 0;
|
|
|
|
|
out_3350621260021879835[367] = 0;
|
|
|
|
|
out_3350621260021879835[368] = 0;
|
|
|
|
|
out_3350621260021879835[369] = 0;
|
|
|
|
|
out_3350621260021879835[370] = 0;
|
|
|
|
|
out_3350621260021879835[371] = 0;
|
|
|
|
|
out_3350621260021879835[372] = 0;
|
|
|
|
|
out_3350621260021879835[373] = 1.0;
|
|
|
|
|
out_3350621260021879835[374] = 0;
|
|
|
|
|
out_3350621260021879835[375] = 0;
|
|
|
|
|
out_3350621260021879835[376] = 0;
|
|
|
|
|
out_3350621260021879835[377] = 0;
|
|
|
|
|
out_3350621260021879835[378] = 0;
|
|
|
|
|
out_3350621260021879835[379] = 0;
|
|
|
|
|
out_3350621260021879835[380] = 0;
|
|
|
|
|
out_3350621260021879835[381] = 0;
|
|
|
|
|
out_3350621260021879835[382] = 0;
|
|
|
|
|
out_3350621260021879835[383] = 0;
|
|
|
|
|
out_3350621260021879835[384] = 0;
|
|
|
|
|
out_3350621260021879835[385] = 0;
|
|
|
|
|
out_3350621260021879835[386] = 0;
|
|
|
|
|
out_3350621260021879835[387] = 0;
|
|
|
|
|
out_3350621260021879835[388] = 0;
|
|
|
|
|
out_3350621260021879835[389] = 0;
|
|
|
|
|
out_3350621260021879835[390] = 0;
|
|
|
|
|
out_3350621260021879835[391] = 0;
|
|
|
|
|
out_3350621260021879835[392] = 0;
|
|
|
|
|
out_3350621260021879835[393] = 0;
|
|
|
|
|
out_3350621260021879835[394] = 0;
|
|
|
|
|
out_3350621260021879835[395] = 1.0;
|
|
|
|
|
out_3350621260021879835[396] = 0;
|
|
|
|
|
out_3350621260021879835[397] = 0;
|
|
|
|
|
out_3350621260021879835[398] = 0;
|
|
|
|
|
out_3350621260021879835[399] = 0;
|
|
|
|
|
out_3350621260021879835[400] = 0;
|
|
|
|
|
out_3350621260021879835[401] = 0;
|
|
|
|
|
out_3350621260021879835[402] = 0;
|
|
|
|
|
out_3350621260021879835[403] = 0;
|
|
|
|
|
out_3350621260021879835[404] = 0;
|
|
|
|
|
out_3350621260021879835[405] = 0;
|
|
|
|
|
out_3350621260021879835[406] = 0;
|
|
|
|
|
out_3350621260021879835[407] = 0;
|
|
|
|
|
out_3350621260021879835[408] = 0;
|
|
|
|
|
out_3350621260021879835[409] = 0;
|
|
|
|
|
out_3350621260021879835[410] = 0;
|
|
|
|
|
out_3350621260021879835[411] = 0;
|
|
|
|
|
out_3350621260021879835[412] = 0;
|
|
|
|
|
out_3350621260021879835[413] = 0;
|
|
|
|
|
out_3350621260021879835[414] = 0;
|
|
|
|
|
out_3350621260021879835[415] = 0;
|
|
|
|
|
out_3350621260021879835[416] = 0;
|
|
|
|
|
out_3350621260021879835[417] = 1.0;
|
|
|
|
|
out_3350621260021879835[418] = 0;
|
|
|
|
|
out_3350621260021879835[419] = 0;
|
|
|
|
|
out_3350621260021879835[420] = 0;
|
|
|
|
|
out_3350621260021879835[421] = 0;
|
|
|
|
|
out_3350621260021879835[422] = 0;
|
|
|
|
|
out_3350621260021879835[423] = 0;
|
|
|
|
|
out_3350621260021879835[424] = 0;
|
|
|
|
|
out_3350621260021879835[425] = 0;
|
|
|
|
|
out_3350621260021879835[426] = 0;
|
|
|
|
|
out_3350621260021879835[427] = 0;
|
|
|
|
|
out_3350621260021879835[428] = 0;
|
|
|
|
|
out_3350621260021879835[429] = 0;
|
|
|
|
|
out_3350621260021879835[430] = 0;
|
|
|
|
|
out_3350621260021879835[431] = 0;
|
|
|
|
|
out_3350621260021879835[432] = 0;
|
|
|
|
|
out_3350621260021879835[433] = 0;
|
|
|
|
|
out_3350621260021879835[434] = 0;
|
|
|
|
|
out_3350621260021879835[435] = 0;
|
|
|
|
|
out_3350621260021879835[436] = 0;
|
|
|
|
|
out_3350621260021879835[437] = 0;
|
|
|
|
|
out_3350621260021879835[438] = 0;
|
|
|
|
|
out_3350621260021879835[439] = 1.0;
|
|
|
|
|
out_3350621260021879835[440] = 0;
|
|
|
|
|
out_3350621260021879835[441] = 0;
|
|
|
|
|
out_3350621260021879835[442] = 0;
|
|
|
|
|
out_3350621260021879835[443] = 0;
|
|
|
|
|
out_3350621260021879835[444] = 0;
|
|
|
|
|
out_3350621260021879835[445] = 0;
|
|
|
|
|
out_3350621260021879835[446] = 0;
|
|
|
|
|
out_3350621260021879835[447] = 0;
|
|
|
|
|
out_3350621260021879835[448] = 0;
|
|
|
|
|
out_3350621260021879835[449] = 0;
|
|
|
|
|
out_3350621260021879835[450] = 0;
|
|
|
|
|
out_3350621260021879835[451] = 0;
|
|
|
|
|
out_3350621260021879835[452] = 0;
|
|
|
|
|
out_3350621260021879835[453] = 0;
|
|
|
|
|
out_3350621260021879835[454] = 0;
|
|
|
|
|
out_3350621260021879835[455] = 0;
|
|
|
|
|
out_3350621260021879835[456] = 0;
|
|
|
|
|
out_3350621260021879835[457] = 0;
|
|
|
|
|
out_3350621260021879835[458] = 0;
|
|
|
|
|
out_3350621260021879835[459] = 0;
|
|
|
|
|
out_3350621260021879835[460] = 0;
|
|
|
|
|
out_3350621260021879835[461] = 1.0;
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void f_fun(double *state, double dt, double *out_9110479569516509106) {
|
|
|
|
|
out_9110479569516509106[0] = dt*state[7] + state[0];
|
|
|
|
|
out_9110479569516509106[1] = dt*state[8] + state[1];
|
|
|
|
|
out_9110479569516509106[2] = dt*state[9] + state[2];
|
|
|
|
|
out_9110479569516509106[3] = dt*(-0.5*state[4]*state[10] - 0.5*state[5]*state[11] - 0.5*state[6]*state[12]) + state[3];
|
|
|
|
|
out_9110479569516509106[4] = dt*(0.5*state[3]*state[10] + 0.5*state[5]*state[12] - 0.5*state[6]*state[11]) + state[4];
|
|
|
|
|
out_9110479569516509106[5] = dt*(0.5*state[3]*state[11] - 0.5*state[4]*state[12] + 0.5*state[6]*state[10]) + state[5];
|
|
|
|
|
out_9110479569516509106[6] = dt*(0.5*state[3]*state[12] + 0.5*state[4]*state[11] - 0.5*state[5]*state[10]) + state[6];
|
|
|
|
|
out_9110479569516509106[7] = dt*((2*state[3]*state[5] + 2*state[4]*state[6])*state[18] + (-2*state[3]*state[6] + 2*state[4]*state[5])*state[17] + (pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2))*state[16]) + state[7];
|
|
|
|
|
out_9110479569516509106[8] = dt*((-2*state[3]*state[4] + 2*state[5]*state[6])*state[18] + (2*state[3]*state[6] + 2*state[4]*state[5])*state[16] + (pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2))*state[17]) + state[8];
|
|
|
|
|
out_9110479569516509106[9] = dt*((2*state[3]*state[4] + 2*state[5]*state[6])*state[17] + (-2*state[3]*state[5] + 2*state[4]*state[6])*state[16] + (pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2))*state[18]) + state[9];
|
|
|
|
|
out_9110479569516509106[10] = state[10];
|
|
|
|
|
out_9110479569516509106[11] = state[11];
|
|
|
|
|
out_9110479569516509106[12] = state[12];
|
|
|
|
|
out_9110479569516509106[13] = state[13];
|
|
|
|
|
out_9110479569516509106[14] = state[14];
|
|
|
|
|
out_9110479569516509106[15] = state[15];
|
|
|
|
|
out_9110479569516509106[16] = state[16];
|
|
|
|
|
out_9110479569516509106[17] = state[17];
|
|
|
|
|
out_9110479569516509106[18] = state[18];
|
|
|
|
|
out_9110479569516509106[19] = state[19];
|
|
|
|
|
out_9110479569516509106[20] = state[20];
|
|
|
|
|
out_9110479569516509106[21] = state[21];
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void F_fun(double *state, double dt, double *out_956757865849250644) {
|
|
|
|
|
out_956757865849250644[0] = 1;
|
|
|
|
|
out_956757865849250644[1] = 0;
|
|
|
|
|
out_956757865849250644[2] = 0;
|
|
|
|
|
out_956757865849250644[3] = 0;
|
|
|
|
|
out_956757865849250644[4] = 0;
|
|
|
|
|
out_956757865849250644[5] = 0;
|
|
|
|
|
out_956757865849250644[6] = dt;
|
|
|
|
|
out_956757865849250644[7] = 0;
|
|
|
|
|
out_956757865849250644[8] = 0;
|
|
|
|
|
out_956757865849250644[9] = 0;
|
|
|
|
|
out_956757865849250644[10] = 0;
|
|
|
|
|
out_956757865849250644[11] = 0;
|
|
|
|
|
out_956757865849250644[12] = 0;
|
|
|
|
|
out_956757865849250644[13] = 0;
|
|
|
|
|
out_956757865849250644[14] = 0;
|
|
|
|
|
out_956757865849250644[15] = 0;
|
|
|
|
|
out_956757865849250644[16] = 0;
|
|
|
|
|
out_956757865849250644[17] = 0;
|
|
|
|
|
out_956757865849250644[18] = 0;
|
|
|
|
|
out_956757865849250644[19] = 0;
|
|
|
|
|
out_956757865849250644[20] = 0;
|
|
|
|
|
out_956757865849250644[21] = 0;
|
|
|
|
|
out_956757865849250644[22] = 1;
|
|
|
|
|
out_956757865849250644[23] = 0;
|
|
|
|
|
out_956757865849250644[24] = 0;
|
|
|
|
|
out_956757865849250644[25] = 0;
|
|
|
|
|
out_956757865849250644[26] = 0;
|
|
|
|
|
out_956757865849250644[27] = 0;
|
|
|
|
|
out_956757865849250644[28] = dt;
|
|
|
|
|
out_956757865849250644[29] = 0;
|
|
|
|
|
out_956757865849250644[30] = 0;
|
|
|
|
|
out_956757865849250644[31] = 0;
|
|
|
|
|
out_956757865849250644[32] = 0;
|
|
|
|
|
out_956757865849250644[33] = 0;
|
|
|
|
|
out_956757865849250644[34] = 0;
|
|
|
|
|
out_956757865849250644[35] = 0;
|
|
|
|
|
out_956757865849250644[36] = 0;
|
|
|
|
|
out_956757865849250644[37] = 0;
|
|
|
|
|
out_956757865849250644[38] = 0;
|
|
|
|
|
out_956757865849250644[39] = 0;
|
|
|
|
|
out_956757865849250644[40] = 0;
|
|
|
|
|
out_956757865849250644[41] = 0;
|
|
|
|
|
out_956757865849250644[42] = 0;
|
|
|
|
|
out_956757865849250644[43] = 0;
|
|
|
|
|
out_956757865849250644[44] = 1;
|
|
|
|
|
out_956757865849250644[45] = 0;
|
|
|
|
|
out_956757865849250644[46] = 0;
|
|
|
|
|
out_956757865849250644[47] = 0;
|
|
|
|
|
out_956757865849250644[48] = 0;
|
|
|
|
|
out_956757865849250644[49] = 0;
|
|
|
|
|
out_956757865849250644[50] = dt;
|
|
|
|
|
out_956757865849250644[51] = 0;
|
|
|
|
|
out_956757865849250644[52] = 0;
|
|
|
|
|
out_956757865849250644[53] = 0;
|
|
|
|
|
out_956757865849250644[54] = 0;
|
|
|
|
|
out_956757865849250644[55] = 0;
|
|
|
|
|
out_956757865849250644[56] = 0;
|
|
|
|
|
out_956757865849250644[57] = 0;
|
|
|
|
|
out_956757865849250644[58] = 0;
|
|
|
|
|
out_956757865849250644[59] = 0;
|
|
|
|
|
out_956757865849250644[60] = 0;
|
|
|
|
|
out_956757865849250644[61] = 0;
|
|
|
|
|
out_956757865849250644[62] = 0;
|
|
|
|
|
out_956757865849250644[63] = 0;
|
|
|
|
|
out_956757865849250644[64] = 0;
|
|
|
|
|
out_956757865849250644[65] = 0;
|
|
|
|
|
out_956757865849250644[66] = 1;
|
|
|
|
|
out_956757865849250644[67] = dt*((2*state[3]*state[4] + 2*state[5]*state[6])*state[11] + (-2*state[3]*state[5] + 2*state[4]*state[6])*state[10] + (pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2))*state[12]);
|
|
|
|
|
out_956757865849250644[68] = dt*((2*state[3]*state[4] - 2*state[5]*state[6])*state[12] + (-2*state[3]*state[6] - 2*state[4]*state[5])*state[10] + (-pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2))*state[11]);
|
|
|
|
|
out_956757865849250644[69] = 0;
|
|
|
|
|
out_956757865849250644[70] = 0;
|
|
|
|
|
out_956757865849250644[71] = 0;
|
|
|
|
|
out_956757865849250644[72] = dt*(pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2));
|
|
|
|
|
out_956757865849250644[73] = dt*(-2*state[3]*state[6] + 2*state[4]*state[5]);
|
|
|
|
|
out_956757865849250644[74] = dt*(2*state[3]*state[5] + 2*state[4]*state[6]);
|
|
|
|
|
out_956757865849250644[75] = 0;
|
|
|
|
|
out_956757865849250644[76] = 0;
|
|
|
|
|
out_956757865849250644[77] = 0;
|
|
|
|
|
out_956757865849250644[78] = 0;
|
|
|
|
|
out_956757865849250644[79] = 0;
|
|
|
|
|
out_956757865849250644[80] = 0;
|
|
|
|
|
out_956757865849250644[81] = 0;
|
|
|
|
|
out_956757865849250644[82] = 0;
|
|
|
|
|
out_956757865849250644[83] = 0;
|
|
|
|
|
out_956757865849250644[84] = 0;
|
|
|
|
|
out_956757865849250644[85] = 0;
|
|
|
|
|
out_956757865849250644[86] = 0;
|
|
|
|
|
out_956757865849250644[87] = dt*(-(2*state[3]*state[4] + 2*state[5]*state[6])*state[11] - (-2*state[3]*state[5] + 2*state[4]*state[6])*state[10] - (pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2))*state[12]);
|
|
|
|
|
out_956757865849250644[88] = 1;
|
|
|
|
|
out_956757865849250644[89] = dt*((2*state[3]*state[5] + 2*state[4]*state[6])*state[12] + (-2*state[3]*state[6] + 2*state[4]*state[5])*state[11] + (pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2))*state[10]);
|
|
|
|
|
out_956757865849250644[90] = 0;
|
|
|
|
|
out_956757865849250644[91] = 0;
|
|
|
|
|
out_956757865849250644[92] = 0;
|
|
|
|
|
out_956757865849250644[93] = dt*(2*state[3]*state[6] + 2*state[4]*state[5]);
|
|
|
|
|
out_956757865849250644[94] = dt*(pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2));
|
|
|
|
|
out_956757865849250644[95] = dt*(-2*state[3]*state[4] + 2*state[5]*state[6]);
|
|
|
|
|
out_956757865849250644[96] = 0;
|
|
|
|
|
out_956757865849250644[97] = 0;
|
|
|
|
|
out_956757865849250644[98] = 0;
|
|
|
|
|
out_956757865849250644[99] = 0;
|
|
|
|
|
out_956757865849250644[100] = 0;
|
|
|
|
|
out_956757865849250644[101] = 0;
|
|
|
|
|
out_956757865849250644[102] = 0;
|
|
|
|
|
out_956757865849250644[103] = 0;
|
|
|
|
|
out_956757865849250644[104] = 0;
|
|
|
|
|
out_956757865849250644[105] = 0;
|
|
|
|
|
out_956757865849250644[106] = 0;
|
|
|
|
|
out_956757865849250644[107] = 0;
|
|
|
|
|
out_956757865849250644[108] = dt*((-2*state[3]*state[4] + 2*state[5]*state[6])*state[12] + (2*state[3]*state[6] + 2*state[4]*state[5])*state[10] + (pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2))*state[11]);
|
|
|
|
|
out_956757865849250644[109] = dt*((-2*state[3]*state[5] - 2*state[4]*state[6])*state[12] + (2*state[3]*state[6] - 2*state[4]*state[5])*state[11] + (-pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) + pow(state[6], 2))*state[10]);
|
|
|
|
|
out_956757865849250644[110] = 1;
|
|
|
|
|
out_956757865849250644[111] = 0;
|
|
|
|
|
out_956757865849250644[112] = 0;
|
|
|
|
|
out_956757865849250644[113] = 0;
|
|
|
|
|
out_956757865849250644[114] = dt*(-2*state[3]*state[5] + 2*state[4]*state[6]);
|
|
|
|
|
out_956757865849250644[115] = dt*(2*state[3]*state[4] + 2*state[5]*state[6]);
|
|
|
|
|
out_956757865849250644[116] = dt*(pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2));
|
|
|
|
|
out_956757865849250644[117] = 0;
|
|
|
|
|
out_956757865849250644[118] = 0;
|
|
|
|
|
out_956757865849250644[119] = 0;
|
|
|
|
|
out_956757865849250644[120] = 0;
|
|
|
|
|
out_956757865849250644[121] = 0;
|
|
|
|
|
out_956757865849250644[122] = 0;
|
|
|
|
|
out_956757865849250644[123] = 0;
|
|
|
|
|
out_956757865849250644[124] = 0;
|
|
|
|
|
out_956757865849250644[125] = 0;
|
|
|
|
|
out_956757865849250644[126] = 0;
|
|
|
|
|
out_956757865849250644[127] = 0;
|
|
|
|
|
out_956757865849250644[128] = 0;
|
|
|
|
|
out_956757865849250644[129] = 0;
|
|
|
|
|
out_956757865849250644[130] = dt*((2*state[3]*state[4] + 2*state[5]*state[6])*state[17] + (-2*state[3]*state[5] + 2*state[4]*state[6])*state[16] + (pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2))*state[18]);
|
|
|
|
|
out_956757865849250644[131] = dt*((2*state[3]*state[4] - 2*state[5]*state[6])*state[18] + (-2*state[3]*state[6] - 2*state[4]*state[5])*state[16] + (-pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2))*state[17]);
|
|
|
|
|
out_956757865849250644[132] = 1;
|
|
|
|
|
out_956757865849250644[133] = 0;
|
|
|
|
|
out_956757865849250644[134] = 0;
|
|
|
|
|
out_956757865849250644[135] = 0;
|
|
|
|
|
out_956757865849250644[136] = 0;
|
|
|
|
|
out_956757865849250644[137] = 0;
|
|
|
|
|
out_956757865849250644[138] = 0;
|
|
|
|
|
out_956757865849250644[139] = 0;
|
|
|
|
|
out_956757865849250644[140] = 0;
|
|
|
|
|
out_956757865849250644[141] = dt*(pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2));
|
|
|
|
|
out_956757865849250644[142] = dt*(-2*state[3]*state[6] + 2*state[4]*state[5]);
|
|
|
|
|
out_956757865849250644[143] = dt*(2*state[3]*state[5] + 2*state[4]*state[6]);
|
|
|
|
|
out_956757865849250644[144] = 0;
|
|
|
|
|
out_956757865849250644[145] = 0;
|
|
|
|
|
out_956757865849250644[146] = 0;
|
|
|
|
|
out_956757865849250644[147] = 0;
|
|
|
|
|
out_956757865849250644[148] = 0;
|
|
|
|
|
out_956757865849250644[149] = 0;
|
|
|
|
|
out_956757865849250644[150] = dt*(-(2*state[3]*state[4] + 2*state[5]*state[6])*state[17] - (-2*state[3]*state[5] + 2*state[4]*state[6])*state[16] - (pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2))*state[18]);
|
|
|
|
|
out_956757865849250644[151] = 0;
|
|
|
|
|
out_956757865849250644[152] = dt*((2*state[3]*state[5] + 2*state[4]*state[6])*state[18] + (-2*state[3]*state[6] + 2*state[4]*state[5])*state[17] + (pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2))*state[16]);
|
|
|
|
|
out_956757865849250644[153] = 0;
|
|
|
|
|
out_956757865849250644[154] = 1;
|
|
|
|
|
out_956757865849250644[155] = 0;
|
|
|
|
|
out_956757865849250644[156] = 0;
|
|
|
|
|
out_956757865849250644[157] = 0;
|
|
|
|
|
out_956757865849250644[158] = 0;
|
|
|
|
|
out_956757865849250644[159] = 0;
|
|
|
|
|
out_956757865849250644[160] = 0;
|
|
|
|
|
out_956757865849250644[161] = 0;
|
|
|
|
|
out_956757865849250644[162] = dt*(2*state[3]*state[6] + 2*state[4]*state[5]);
|
|
|
|
|
out_956757865849250644[163] = dt*(pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2));
|
|
|
|
|
out_956757865849250644[164] = dt*(-2*state[3]*state[4] + 2*state[5]*state[6]);
|
|
|
|
|
out_956757865849250644[165] = 0;
|
|
|
|
|
out_956757865849250644[166] = 0;
|
|
|
|
|
out_956757865849250644[167] = 0;
|
|
|
|
|
out_956757865849250644[168] = 0;
|
|
|
|
|
out_956757865849250644[169] = 0;
|
|
|
|
|
out_956757865849250644[170] = 0;
|
|
|
|
|
out_956757865849250644[171] = dt*((-2*state[3]*state[4] + 2*state[5]*state[6])*state[18] + (2*state[3]*state[6] + 2*state[4]*state[5])*state[16] + (pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2))*state[17]);
|
|
|
|
|
out_956757865849250644[172] = dt*((-2*state[3]*state[5] - 2*state[4]*state[6])*state[18] + (2*state[3]*state[6] - 2*state[4]*state[5])*state[17] + (-pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) + pow(state[6], 2))*state[16]);
|
|
|
|
|
out_956757865849250644[173] = 0;
|
|
|
|
|
out_956757865849250644[174] = 0;
|
|
|
|
|
out_956757865849250644[175] = 0;
|
|
|
|
|
out_956757865849250644[176] = 1;
|
|
|
|
|
out_956757865849250644[177] = 0;
|
|
|
|
|
out_956757865849250644[178] = 0;
|
|
|
|
|
out_956757865849250644[179] = 0;
|
|
|
|
|
out_956757865849250644[180] = 0;
|
|
|
|
|
out_956757865849250644[181] = 0;
|
|
|
|
|
out_956757865849250644[182] = 0;
|
|
|
|
|
out_956757865849250644[183] = dt*(-2*state[3]*state[5] + 2*state[4]*state[6]);
|
|
|
|
|
out_956757865849250644[184] = dt*(2*state[3]*state[4] + 2*state[5]*state[6]);
|
|
|
|
|
out_956757865849250644[185] = dt*(pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2));
|
|
|
|
|
out_956757865849250644[186] = 0;
|
|
|
|
|
out_956757865849250644[187] = 0;
|
|
|
|
|
out_956757865849250644[188] = 0;
|
|
|
|
|
out_956757865849250644[189] = 0;
|
|
|
|
|
out_956757865849250644[190] = 0;
|
|
|
|
|
out_956757865849250644[191] = 0;
|
|
|
|
|
out_956757865849250644[192] = 0;
|
|
|
|
|
out_956757865849250644[193] = 0;
|
|
|
|
|
out_956757865849250644[194] = 0;
|
|
|
|
|
out_956757865849250644[195] = 0;
|
|
|
|
|
out_956757865849250644[196] = 0;
|
|
|
|
|
out_956757865849250644[197] = 0;
|
|
|
|
|
out_956757865849250644[198] = 1;
|
|
|
|
|
out_956757865849250644[199] = 0;
|
|
|
|
|
out_956757865849250644[200] = 0;
|
|
|
|
|
out_956757865849250644[201] = 0;
|
|
|
|
|
out_956757865849250644[202] = 0;
|
|
|
|
|
out_956757865849250644[203] = 0;
|
|
|
|
|
out_956757865849250644[204] = 0;
|
|
|
|
|
out_956757865849250644[205] = 0;
|
|
|
|
|
out_956757865849250644[206] = 0;
|
|
|
|
|
out_956757865849250644[207] = 0;
|
|
|
|
|
out_956757865849250644[208] = 0;
|
|
|
|
|
out_956757865849250644[209] = 0;
|
|
|
|
|
out_956757865849250644[210] = 0;
|
|
|
|
|
out_956757865849250644[211] = 0;
|
|
|
|
|
out_956757865849250644[212] = 0;
|
|
|
|
|
out_956757865849250644[213] = 0;
|
|
|
|
|
out_956757865849250644[214] = 0;
|
|
|
|
|
out_956757865849250644[215] = 0;
|
|
|
|
|
out_956757865849250644[216] = 0;
|
|
|
|
|
out_956757865849250644[217] = 0;
|
|
|
|
|
out_956757865849250644[218] = 0;
|
|
|
|
|
out_956757865849250644[219] = 0;
|
|
|
|
|
out_956757865849250644[220] = 1;
|
|
|
|
|
out_956757865849250644[221] = 0;
|
|
|
|
|
out_956757865849250644[222] = 0;
|
|
|
|
|
out_956757865849250644[223] = 0;
|
|
|
|
|
out_956757865849250644[224] = 0;
|
|
|
|
|
out_956757865849250644[225] = 0;
|
|
|
|
|
out_956757865849250644[226] = 0;
|
|
|
|
|
out_956757865849250644[227] = 0;
|
|
|
|
|
out_956757865849250644[228] = 0;
|
|
|
|
|
out_956757865849250644[229] = 0;
|
|
|
|
|
out_956757865849250644[230] = 0;
|
|
|
|
|
out_956757865849250644[231] = 0;
|
|
|
|
|
out_956757865849250644[232] = 0;
|
|
|
|
|
out_956757865849250644[233] = 0;
|
|
|
|
|
out_956757865849250644[234] = 0;
|
|
|
|
|
out_956757865849250644[235] = 0;
|
|
|
|
|
out_956757865849250644[236] = 0;
|
|
|
|
|
out_956757865849250644[237] = 0;
|
|
|
|
|
out_956757865849250644[238] = 0;
|
|
|
|
|
out_956757865849250644[239] = 0;
|
|
|
|
|
out_956757865849250644[240] = 0;
|
|
|
|
|
out_956757865849250644[241] = 0;
|
|
|
|
|
out_956757865849250644[242] = 1;
|
|
|
|
|
out_956757865849250644[243] = 0;
|
|
|
|
|
out_956757865849250644[244] = 0;
|
|
|
|
|
out_956757865849250644[245] = 0;
|
|
|
|
|
out_956757865849250644[246] = 0;
|
|
|
|
|
out_956757865849250644[247] = 0;
|
|
|
|
|
out_956757865849250644[248] = 0;
|
|
|
|
|
out_956757865849250644[249] = 0;
|
|
|
|
|
out_956757865849250644[250] = 0;
|
|
|
|
|
out_956757865849250644[251] = 0;
|
|
|
|
|
out_956757865849250644[252] = 0;
|
|
|
|
|
out_956757865849250644[253] = 0;
|
|
|
|
|
out_956757865849250644[254] = 0;
|
|
|
|
|
out_956757865849250644[255] = 0;
|
|
|
|
|
out_956757865849250644[256] = 0;
|
|
|
|
|
out_956757865849250644[257] = 0;
|
|
|
|
|
out_956757865849250644[258] = 0;
|
|
|
|
|
out_956757865849250644[259] = 0;
|
|
|
|
|
out_956757865849250644[260] = 0;
|
|
|
|
|
out_956757865849250644[261] = 0;
|
|
|
|
|
out_956757865849250644[262] = 0;
|
|
|
|
|
out_956757865849250644[263] = 0;
|
|
|
|
|
out_956757865849250644[264] = 1;
|
|
|
|
|
out_956757865849250644[265] = 0;
|
|
|
|
|
out_956757865849250644[266] = 0;
|
|
|
|
|
out_956757865849250644[267] = 0;
|
|
|
|
|
out_956757865849250644[268] = 0;
|
|
|
|
|
out_956757865849250644[269] = 0;
|
|
|
|
|
out_956757865849250644[270] = 0;
|
|
|
|
|
out_956757865849250644[271] = 0;
|
|
|
|
|
out_956757865849250644[272] = 0;
|
|
|
|
|
out_956757865849250644[273] = 0;
|
|
|
|
|
out_956757865849250644[274] = 0;
|
|
|
|
|
out_956757865849250644[275] = 0;
|
|
|
|
|
out_956757865849250644[276] = 0;
|
|
|
|
|
out_956757865849250644[277] = 0;
|
|
|
|
|
out_956757865849250644[278] = 0;
|
|
|
|
|
out_956757865849250644[279] = 0;
|
|
|
|
|
out_956757865849250644[280] = 0;
|
|
|
|
|
out_956757865849250644[281] = 0;
|
|
|
|
|
out_956757865849250644[282] = 0;
|
|
|
|
|
out_956757865849250644[283] = 0;
|
|
|
|
|
out_956757865849250644[284] = 0;
|
|
|
|
|
out_956757865849250644[285] = 0;
|
|
|
|
|
out_956757865849250644[286] = 1;
|
|
|
|
|
out_956757865849250644[287] = 0;
|
|
|
|
|
out_956757865849250644[288] = 0;
|
|
|
|
|
out_956757865849250644[289] = 0;
|
|
|
|
|
out_956757865849250644[290] = 0;
|
|
|
|
|
out_956757865849250644[291] = 0;
|
|
|
|
|
out_956757865849250644[292] = 0;
|
|
|
|
|
out_956757865849250644[293] = 0;
|
|
|
|
|
out_956757865849250644[294] = 0;
|
|
|
|
|
out_956757865849250644[295] = 0;
|
|
|
|
|
out_956757865849250644[296] = 0;
|
|
|
|
|
out_956757865849250644[297] = 0;
|
|
|
|
|
out_956757865849250644[298] = 0;
|
|
|
|
|
out_956757865849250644[299] = 0;
|
|
|
|
|
out_956757865849250644[300] = 0;
|
|
|
|
|
out_956757865849250644[301] = 0;
|
|
|
|
|
out_956757865849250644[302] = 0;
|
|
|
|
|
out_956757865849250644[303] = 0;
|
|
|
|
|
out_956757865849250644[304] = 0;
|
|
|
|
|
out_956757865849250644[305] = 0;
|
|
|
|
|
out_956757865849250644[306] = 0;
|
|
|
|
|
out_956757865849250644[307] = 0;
|
|
|
|
|
out_956757865849250644[308] = 1;
|
|
|
|
|
out_956757865849250644[309] = 0;
|
|
|
|
|
out_956757865849250644[310] = 0;
|
|
|
|
|
out_956757865849250644[311] = 0;
|
|
|
|
|
out_956757865849250644[312] = 0;
|
|
|
|
|
out_956757865849250644[313] = 0;
|
|
|
|
|
out_956757865849250644[314] = 0;
|
|
|
|
|
out_956757865849250644[315] = 0;
|
|
|
|
|
out_956757865849250644[316] = 0;
|
|
|
|
|
out_956757865849250644[317] = 0;
|
|
|
|
|
out_956757865849250644[318] = 0;
|
|
|
|
|
out_956757865849250644[319] = 0;
|
|
|
|
|
out_956757865849250644[320] = 0;
|
|
|
|
|
out_956757865849250644[321] = 0;
|
|
|
|
|
out_956757865849250644[322] = 0;
|
|
|
|
|
out_956757865849250644[323] = 0;
|
|
|
|
|
out_956757865849250644[324] = 0;
|
|
|
|
|
out_956757865849250644[325] = 0;
|
|
|
|
|
out_956757865849250644[326] = 0;
|
|
|
|
|
out_956757865849250644[327] = 0;
|
|
|
|
|
out_956757865849250644[328] = 0;
|
|
|
|
|
out_956757865849250644[329] = 0;
|
|
|
|
|
out_956757865849250644[330] = 1;
|
|
|
|
|
out_956757865849250644[331] = 0;
|
|
|
|
|
out_956757865849250644[332] = 0;
|
|
|
|
|
out_956757865849250644[333] = 0;
|
|
|
|
|
out_956757865849250644[334] = 0;
|
|
|
|
|
out_956757865849250644[335] = 0;
|
|
|
|
|
out_956757865849250644[336] = 0;
|
|
|
|
|
out_956757865849250644[337] = 0;
|
|
|
|
|
out_956757865849250644[338] = 0;
|
|
|
|
|
out_956757865849250644[339] = 0;
|
|
|
|
|
out_956757865849250644[340] = 0;
|
|
|
|
|
out_956757865849250644[341] = 0;
|
|
|
|
|
out_956757865849250644[342] = 0;
|
|
|
|
|
out_956757865849250644[343] = 0;
|
|
|
|
|
out_956757865849250644[344] = 0;
|
|
|
|
|
out_956757865849250644[345] = 0;
|
|
|
|
|
out_956757865849250644[346] = 0;
|
|
|
|
|
out_956757865849250644[347] = 0;
|
|
|
|
|
out_956757865849250644[348] = 0;
|
|
|
|
|
out_956757865849250644[349] = 0;
|
|
|
|
|
out_956757865849250644[350] = 0;
|
|
|
|
|
out_956757865849250644[351] = 0;
|
|
|
|
|
out_956757865849250644[352] = 1;
|
|
|
|
|
out_956757865849250644[353] = 0;
|
|
|
|
|
out_956757865849250644[354] = 0;
|
|
|
|
|
out_956757865849250644[355] = 0;
|
|
|
|
|
out_956757865849250644[356] = 0;
|
|
|
|
|
out_956757865849250644[357] = 0;
|
|
|
|
|
out_956757865849250644[358] = 0;
|
|
|
|
|
out_956757865849250644[359] = 0;
|
|
|
|
|
out_956757865849250644[360] = 0;
|
|
|
|
|
out_956757865849250644[361] = 0;
|
|
|
|
|
out_956757865849250644[362] = 0;
|
|
|
|
|
out_956757865849250644[363] = 0;
|
|
|
|
|
out_956757865849250644[364] = 0;
|
|
|
|
|
out_956757865849250644[365] = 0;
|
|
|
|
|
out_956757865849250644[366] = 0;
|
|
|
|
|
out_956757865849250644[367] = 0;
|
|
|
|
|
out_956757865849250644[368] = 0;
|
|
|
|
|
out_956757865849250644[369] = 0;
|
|
|
|
|
out_956757865849250644[370] = 0;
|
|
|
|
|
out_956757865849250644[371] = 0;
|
|
|
|
|
out_956757865849250644[372] = 0;
|
|
|
|
|
out_956757865849250644[373] = 0;
|
|
|
|
|
out_956757865849250644[374] = 1;
|
|
|
|
|
out_956757865849250644[375] = 0;
|
|
|
|
|
out_956757865849250644[376] = 0;
|
|
|
|
|
out_956757865849250644[377] = 0;
|
|
|
|
|
out_956757865849250644[378] = 0;
|
|
|
|
|
out_956757865849250644[379] = 0;
|
|
|
|
|
out_956757865849250644[380] = 0;
|
|
|
|
|
out_956757865849250644[381] = 0;
|
|
|
|
|
out_956757865849250644[382] = 0;
|
|
|
|
|
out_956757865849250644[383] = 0;
|
|
|
|
|
out_956757865849250644[384] = 0;
|
|
|
|
|
out_956757865849250644[385] = 0;
|
|
|
|
|
out_956757865849250644[386] = 0;
|
|
|
|
|
out_956757865849250644[387] = 0;
|
|
|
|
|
out_956757865849250644[388] = 0;
|
|
|
|
|
out_956757865849250644[389] = 0;
|
|
|
|
|
out_956757865849250644[390] = 0;
|
|
|
|
|
out_956757865849250644[391] = 0;
|
|
|
|
|
out_956757865849250644[392] = 0;
|
|
|
|
|
out_956757865849250644[393] = 0;
|
|
|
|
|
out_956757865849250644[394] = 0;
|
|
|
|
|
out_956757865849250644[395] = 0;
|
|
|
|
|
out_956757865849250644[396] = 1;
|
|
|
|
|
out_956757865849250644[397] = 0;
|
|
|
|
|
out_956757865849250644[398] = 0;
|
|
|
|
|
out_956757865849250644[399] = 0;
|
|
|
|
|
out_956757865849250644[400] = 0;
|
|
|
|
|
out_956757865849250644[401] = 0;
|
|
|
|
|
out_956757865849250644[402] = 0;
|
|
|
|
|
out_956757865849250644[403] = 0;
|
|
|
|
|
out_956757865849250644[404] = 0;
|
|
|
|
|
out_956757865849250644[405] = 0;
|
|
|
|
|
out_956757865849250644[406] = 0;
|
|
|
|
|
out_956757865849250644[407] = 0;
|
|
|
|
|
out_956757865849250644[408] = 0;
|
|
|
|
|
out_956757865849250644[409] = 0;
|
|
|
|
|
out_956757865849250644[410] = 0;
|
|
|
|
|
out_956757865849250644[411] = 0;
|
|
|
|
|
out_956757865849250644[412] = 0;
|
|
|
|
|
out_956757865849250644[413] = 0;
|
|
|
|
|
out_956757865849250644[414] = 0;
|
|
|
|
|
out_956757865849250644[415] = 0;
|
|
|
|
|
out_956757865849250644[416] = 0;
|
|
|
|
|
out_956757865849250644[417] = 0;
|
|
|
|
|
out_956757865849250644[418] = 1;
|
|
|
|
|
out_956757865849250644[419] = 0;
|
|
|
|
|
out_956757865849250644[420] = 0;
|
|
|
|
|
out_956757865849250644[421] = 0;
|
|
|
|
|
out_956757865849250644[422] = 0;
|
|
|
|
|
out_956757865849250644[423] = 0;
|
|
|
|
|
out_956757865849250644[424] = 0;
|
|
|
|
|
out_956757865849250644[425] = 0;
|
|
|
|
|
out_956757865849250644[426] = 0;
|
|
|
|
|
out_956757865849250644[427] = 0;
|
|
|
|
|
out_956757865849250644[428] = 0;
|
|
|
|
|
out_956757865849250644[429] = 0;
|
|
|
|
|
out_956757865849250644[430] = 0;
|
|
|
|
|
out_956757865849250644[431] = 0;
|
|
|
|
|
out_956757865849250644[432] = 0;
|
|
|
|
|
out_956757865849250644[433] = 0;
|
|
|
|
|
out_956757865849250644[434] = 0;
|
|
|
|
|
out_956757865849250644[435] = 0;
|
|
|
|
|
out_956757865849250644[436] = 0;
|
|
|
|
|
out_956757865849250644[437] = 0;
|
|
|
|
|
out_956757865849250644[438] = 0;
|
|
|
|
|
out_956757865849250644[439] = 0;
|
|
|
|
|
out_956757865849250644[440] = 1;
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void h_4(double *state, double *unused, double *out_396243034408503816) {
|
|
|
|
|
out_396243034408503816[0] = state[10] + state[13];
|
|
|
|
|
out_396243034408503816[1] = state[11] + state[14];
|
|
|
|
|
out_396243034408503816[2] = state[12] + state[15];
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void H_4(double *state, double *unused, double *out_7955964066782090966) {
|
|
|
|
|
out_7955964066782090966[0] = 0;
|
|
|
|
|
out_7955964066782090966[1] = 0;
|
|
|
|
|
out_7955964066782090966[2] = 0;
|
|
|
|
|
out_7955964066782090966[3] = 0;
|
|
|
|
|
out_7955964066782090966[4] = 0;
|
|
|
|
|
out_7955964066782090966[5] = 0;
|
|
|
|
|
out_7955964066782090966[6] = 0;
|
|
|
|
|
out_7955964066782090966[7] = 0;
|
|
|
|
|
out_7955964066782090966[8] = 0;
|
|
|
|
|
out_7955964066782090966[9] = 0;
|
|
|
|
|
out_7955964066782090966[10] = 1;
|
|
|
|
|
out_7955964066782090966[11] = 0;
|
|
|
|
|
out_7955964066782090966[12] = 0;
|
|
|
|
|
out_7955964066782090966[13] = 1;
|
|
|
|
|
out_7955964066782090966[14] = 0;
|
|
|
|
|
out_7955964066782090966[15] = 0;
|
|
|
|
|
out_7955964066782090966[16] = 0;
|
|
|
|
|
out_7955964066782090966[17] = 0;
|
|
|
|
|
out_7955964066782090966[18] = 0;
|
|
|
|
|
out_7955964066782090966[19] = 0;
|
|
|
|
|
out_7955964066782090966[20] = 0;
|
|
|
|
|
out_7955964066782090966[21] = 0;
|
|
|
|
|
out_7955964066782090966[22] = 0;
|
|
|
|
|
out_7955964066782090966[23] = 0;
|
|
|
|
|
out_7955964066782090966[24] = 0;
|
|
|
|
|
out_7955964066782090966[25] = 0;
|
|
|
|
|
out_7955964066782090966[26] = 0;
|
|
|
|
|
out_7955964066782090966[27] = 0;
|
|
|
|
|
out_7955964066782090966[28] = 0;
|
|
|
|
|
out_7955964066782090966[29] = 0;
|
|
|
|
|
out_7955964066782090966[30] = 0;
|
|
|
|
|
out_7955964066782090966[31] = 0;
|
|
|
|
|
out_7955964066782090966[32] = 0;
|
|
|
|
|
out_7955964066782090966[33] = 1;
|
|
|
|
|
out_7955964066782090966[34] = 0;
|
|
|
|
|
out_7955964066782090966[35] = 0;
|
|
|
|
|
out_7955964066782090966[36] = 1;
|
|
|
|
|
out_7955964066782090966[37] = 0;
|
|
|
|
|
out_7955964066782090966[38] = 0;
|
|
|
|
|
out_7955964066782090966[39] = 0;
|
|
|
|
|
out_7955964066782090966[40] = 0;
|
|
|
|
|
out_7955964066782090966[41] = 0;
|
|
|
|
|
out_7955964066782090966[42] = 0;
|
|
|
|
|
out_7955964066782090966[43] = 0;
|
|
|
|
|
out_7955964066782090966[44] = 0;
|
|
|
|
|
out_7955964066782090966[45] = 0;
|
|
|
|
|
out_7955964066782090966[46] = 0;
|
|
|
|
|
out_7955964066782090966[47] = 0;
|
|
|
|
|
out_7955964066782090966[48] = 0;
|
|
|
|
|
out_7955964066782090966[49] = 0;
|
|
|
|
|
out_7955964066782090966[50] = 0;
|
|
|
|
|
out_7955964066782090966[51] = 0;
|
|
|
|
|
out_7955964066782090966[52] = 0;
|
|
|
|
|
out_7955964066782090966[53] = 0;
|
|
|
|
|
out_7955964066782090966[54] = 0;
|
|
|
|
|
out_7955964066782090966[55] = 0;
|
|
|
|
|
out_7955964066782090966[56] = 1;
|
|
|
|
|
out_7955964066782090966[57] = 0;
|
|
|
|
|
out_7955964066782090966[58] = 0;
|
|
|
|
|
out_7955964066782090966[59] = 1;
|
|
|
|
|
out_7955964066782090966[60] = 0;
|
|
|
|
|
out_7955964066782090966[61] = 0;
|
|
|
|
|
out_7955964066782090966[62] = 0;
|
|
|
|
|
out_7955964066782090966[63] = 0;
|
|
|
|
|
out_7955964066782090966[64] = 0;
|
|
|
|
|
out_7955964066782090966[65] = 0;
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void h_9(double *state, double *unused, double *out_3280179861815054133) {
|
|
|
|
|
out_3280179861815054133[0] = state[10];
|
|
|
|
|
out_3280179861815054133[1] = state[11];
|
|
|
|
|
out_3280179861815054133[2] = state[12];
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void H_9(double *state, double *unused, double *out_8197153713411681611) {
|
|
|
|
|
out_8197153713411681611[0] = 0;
|
|
|
|
|
out_8197153713411681611[1] = 0;
|
|
|
|
|
out_8197153713411681611[2] = 0;
|
|
|
|
|
out_8197153713411681611[3] = 0;
|
|
|
|
|
out_8197153713411681611[4] = 0;
|
|
|
|
|
out_8197153713411681611[5] = 0;
|
|
|
|
|
out_8197153713411681611[6] = 0;
|
|
|
|
|
out_8197153713411681611[7] = 0;
|
|
|
|
|
out_8197153713411681611[8] = 0;
|
|
|
|
|
out_8197153713411681611[9] = 0;
|
|
|
|
|
out_8197153713411681611[10] = 1;
|
|
|
|
|
out_8197153713411681611[11] = 0;
|
|
|
|
|
out_8197153713411681611[12] = 0;
|
|
|
|
|
out_8197153713411681611[13] = 0;
|
|
|
|
|
out_8197153713411681611[14] = 0;
|
|
|
|
|
out_8197153713411681611[15] = 0;
|
|
|
|
|
out_8197153713411681611[16] = 0;
|
|
|
|
|
out_8197153713411681611[17] = 0;
|
|
|
|
|
out_8197153713411681611[18] = 0;
|
|
|
|
|
out_8197153713411681611[19] = 0;
|
|
|
|
|
out_8197153713411681611[20] = 0;
|
|
|
|
|
out_8197153713411681611[21] = 0;
|
|
|
|
|
out_8197153713411681611[22] = 0;
|
|
|
|
|
out_8197153713411681611[23] = 0;
|
|
|
|
|
out_8197153713411681611[24] = 0;
|
|
|
|
|
out_8197153713411681611[25] = 0;
|
|
|
|
|
out_8197153713411681611[26] = 0;
|
|
|
|
|
out_8197153713411681611[27] = 0;
|
|
|
|
|
out_8197153713411681611[28] = 0;
|
|
|
|
|
out_8197153713411681611[29] = 0;
|
|
|
|
|
out_8197153713411681611[30] = 0;
|
|
|
|
|
out_8197153713411681611[31] = 0;
|
|
|
|
|
out_8197153713411681611[32] = 0;
|
|
|
|
|
out_8197153713411681611[33] = 1;
|
|
|
|
|
out_8197153713411681611[34] = 0;
|
|
|
|
|
out_8197153713411681611[35] = 0;
|
|
|
|
|
out_8197153713411681611[36] = 0;
|
|
|
|
|
out_8197153713411681611[37] = 0;
|
|
|
|
|
out_8197153713411681611[38] = 0;
|
|
|
|
|
out_8197153713411681611[39] = 0;
|
|
|
|
|
out_8197153713411681611[40] = 0;
|
|
|
|
|
out_8197153713411681611[41] = 0;
|
|
|
|
|
out_8197153713411681611[42] = 0;
|
|
|
|
|
out_8197153713411681611[43] = 0;
|
|
|
|
|
out_8197153713411681611[44] = 0;
|
|
|
|
|
out_8197153713411681611[45] = 0;
|
|
|
|
|
out_8197153713411681611[46] = 0;
|
|
|
|
|
out_8197153713411681611[47] = 0;
|
|
|
|
|
out_8197153713411681611[48] = 0;
|
|
|
|
|
out_8197153713411681611[49] = 0;
|
|
|
|
|
out_8197153713411681611[50] = 0;
|
|
|
|
|
out_8197153713411681611[51] = 0;
|
|
|
|
|
out_8197153713411681611[52] = 0;
|
|
|
|
|
out_8197153713411681611[53] = 0;
|
|
|
|
|
out_8197153713411681611[54] = 0;
|
|
|
|
|
out_8197153713411681611[55] = 0;
|
|
|
|
|
out_8197153713411681611[56] = 1;
|
|
|
|
|
out_8197153713411681611[57] = 0;
|
|
|
|
|
out_8197153713411681611[58] = 0;
|
|
|
|
|
out_8197153713411681611[59] = 0;
|
|
|
|
|
out_8197153713411681611[60] = 0;
|
|
|
|
|
out_8197153713411681611[61] = 0;
|
|
|
|
|
out_8197153713411681611[62] = 0;
|
|
|
|
|
out_8197153713411681611[63] = 0;
|
|
|
|
|
out_8197153713411681611[64] = 0;
|
|
|
|
|
out_8197153713411681611[65] = 0;
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void h_10(double *state, double *unused, double *out_7028739412274946671) {
|
|
|
|
|
out_7028739412274946671[0] = 398600500000000.0*(-2*state[3]*state[5] + 2*state[4]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2] + 398600500000000.0*(2*state[3]*state[6] + 2*state[4]*state[5])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1] + 398600500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*(pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2))*state[0] + state[16] + state[19];
|
|
|
|
|
out_7028739412274946671[1] = 398600500000000.0*(2*state[3]*state[4] + 2*state[5]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2] + 398600500000000.0*(-2*state[3]*state[6] + 2*state[4]*state[5])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0] + 398600500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*(pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2))*state[1] + state[17] + state[20];
|
|
|
|
|
out_7028739412274946671[2] = 398600500000000.0*(-2*state[3]*state[4] + 2*state[5]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1] + 398600500000000.0*(2*state[3]*state[5] + 2*state[4]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0] + 398600500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*(pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2))*state[2] + state[18] + state[21];
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void H_10(double *state, double *unused, double *out_5406505055183973833) {
|
|
|
|
|
out_5406505055183973833[0] = -1195801500000000.0*(-2*state[3]*state[5] + 2*state[4]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*state[0]*state[2] - 1195801500000000.0*(2*state[3]*state[6] + 2*state[4]*state[5])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*state[0]*state[1] - 1195801500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*(pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2))*pow(state[0], 2) + 398600500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*(pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2));
|
|
|
|
|
out_5406505055183973833[1] = -1195801500000000.0*(-2*state[3]*state[5] + 2*state[4]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*state[1]*state[2] - 1195801500000000.0*(2*state[3]*state[6] + 2*state[4]*state[5])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*pow(state[1], 2) + 398600500000000.0*(2*state[3]*state[6] + 2*state[4]*state[5])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5) - 1195801500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*(pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2))*state[0]*state[1];
|
|
|
|
|
out_5406505055183973833[2] = -1195801500000000.0*(-2*state[3]*state[5] + 2*state[4]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*pow(state[2], 2) + 398600500000000.0*(-2*state[3]*state[5] + 2*state[4]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5) - 1195801500000000.0*(2*state[3]*state[6] + 2*state[4]*state[5])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*state[1]*state[2] - 1195801500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*(pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2))*state[0]*state[2];
|
|
|
|
|
out_5406505055183973833[3] = 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0]*state[3] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1]*state[6] - 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2]*state[5];
|
|
|
|
|
out_5406505055183973833[4] = 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0]*state[4] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1]*state[5] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2]*state[6];
|
|
|
|
|
out_5406505055183973833[5] = -797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0]*state[5] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1]*state[4] - 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2]*state[3];
|
|
|
|
|
out_5406505055183973833[6] = -797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0]*state[6] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1]*state[3] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2]*state[4];
|
|
|
|
|
out_5406505055183973833[7] = 0;
|
|
|
|
|
out_5406505055183973833[8] = 0;
|
|
|
|
|
out_5406505055183973833[9] = 0;
|
|
|
|
|
out_5406505055183973833[10] = 0;
|
|
|
|
|
out_5406505055183973833[11] = 0;
|
|
|
|
|
out_5406505055183973833[12] = 0;
|
|
|
|
|
out_5406505055183973833[13] = 0;
|
|
|
|
|
out_5406505055183973833[14] = 0;
|
|
|
|
|
out_5406505055183973833[15] = 0;
|
|
|
|
|
out_5406505055183973833[16] = 1;
|
|
|
|
|
out_5406505055183973833[17] = 0;
|
|
|
|
|
out_5406505055183973833[18] = 0;
|
|
|
|
|
out_5406505055183973833[19] = 1;
|
|
|
|
|
out_5406505055183973833[20] = 0;
|
|
|
|
|
out_5406505055183973833[21] = 0;
|
|
|
|
|
out_5406505055183973833[22] = -1195801500000000.0*(2*state[3]*state[4] + 2*state[5]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*state[0]*state[2] - 1195801500000000.0*(-2*state[3]*state[6] + 2*state[4]*state[5])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*pow(state[0], 2) + 398600500000000.0*(-2*state[3]*state[6] + 2*state[4]*state[5])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5) - 1195801500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*(pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2))*state[0]*state[1];
|
|
|
|
|
out_5406505055183973833[23] = -1195801500000000.0*(2*state[3]*state[4] + 2*state[5]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*state[1]*state[2] - 1195801500000000.0*(-2*state[3]*state[6] + 2*state[4]*state[5])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*state[0]*state[1] - 1195801500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*(pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2))*pow(state[1], 2) + 398600500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*(pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2));
|
|
|
|
|
out_5406505055183973833[24] = -1195801500000000.0*(2*state[3]*state[4] + 2*state[5]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*pow(state[2], 2) + 398600500000000.0*(2*state[3]*state[4] + 2*state[5]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5) - 1195801500000000.0*(-2*state[3]*state[6] + 2*state[4]*state[5])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*state[0]*state[2] - 1195801500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*(pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2))*state[1]*state[2];
|
|
|
|
|
out_5406505055183973833[25] = -797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0]*state[6] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1]*state[3] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2]*state[4];
|
|
|
|
|
out_5406505055183973833[26] = 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0]*state[5] - 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1]*state[4] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2]*state[3];
|
|
|
|
|
out_5406505055183973833[27] = 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0]*state[4] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1]*state[5] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2]*state[6];
|
|
|
|
|
out_5406505055183973833[28] = -797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0]*state[3] - 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1]*state[6] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2]*state[5];
|
|
|
|
|
out_5406505055183973833[29] = 0;
|
|
|
|
|
out_5406505055183973833[30] = 0;
|
|
|
|
|
out_5406505055183973833[31] = 0;
|
|
|
|
|
out_5406505055183973833[32] = 0;
|
|
|
|
|
out_5406505055183973833[33] = 0;
|
|
|
|
|
out_5406505055183973833[34] = 0;
|
|
|
|
|
out_5406505055183973833[35] = 0;
|
|
|
|
|
out_5406505055183973833[36] = 0;
|
|
|
|
|
out_5406505055183973833[37] = 0;
|
|
|
|
|
out_5406505055183973833[38] = 0;
|
|
|
|
|
out_5406505055183973833[39] = 1;
|
|
|
|
|
out_5406505055183973833[40] = 0;
|
|
|
|
|
out_5406505055183973833[41] = 0;
|
|
|
|
|
out_5406505055183973833[42] = 1;
|
|
|
|
|
out_5406505055183973833[43] = 0;
|
|
|
|
|
out_5406505055183973833[44] = -1195801500000000.0*(-2*state[3]*state[4] + 2*state[5]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*state[0]*state[1] - 1195801500000000.0*(2*state[3]*state[5] + 2*state[4]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*pow(state[0], 2) + 398600500000000.0*(2*state[3]*state[5] + 2*state[4]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5) - 1195801500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*(pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2))*state[0]*state[2];
|
|
|
|
|
out_5406505055183973833[45] = -1195801500000000.0*(-2*state[3]*state[4] + 2*state[5]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*pow(state[1], 2) + 398600500000000.0*(-2*state[3]*state[4] + 2*state[5]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5) - 1195801500000000.0*(2*state[3]*state[5] + 2*state[4]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*state[0]*state[1] - 1195801500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*(pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2))*state[1]*state[2];
|
|
|
|
|
out_5406505055183973833[46] = -1195801500000000.0*(-2*state[3]*state[4] + 2*state[5]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*state[1]*state[2] - 1195801500000000.0*(2*state[3]*state[5] + 2*state[4]*state[6])*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*state[0]*state[2] - 1195801500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -2.5)*(pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2))*pow(state[2], 2) + 398600500000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*(pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2));
|
|
|
|
|
out_5406505055183973833[47] = 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0]*state[5] - 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1]*state[4] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2]*state[3];
|
|
|
|
|
out_5406505055183973833[48] = 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0]*state[6] - 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1]*state[3] - 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2]*state[4];
|
|
|
|
|
out_5406505055183973833[49] = 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0]*state[3] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1]*state[6] - 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2]*state[5];
|
|
|
|
|
out_5406505055183973833[50] = 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[0]*state[4] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[1]*state[5] + 797201000000000.0*pow(pow(state[0], 2) + pow(state[1], 2) + pow(state[2], 2), -1.5)*state[2]*state[6];
|
|
|
|
|
out_5406505055183973833[51] = 0;
|
|
|
|
|
out_5406505055183973833[52] = 0;
|
|
|
|
|
out_5406505055183973833[53] = 0;
|
|
|
|
|
out_5406505055183973833[54] = 0;
|
|
|
|
|
out_5406505055183973833[55] = 0;
|
|
|
|
|
out_5406505055183973833[56] = 0;
|
|
|
|
|
out_5406505055183973833[57] = 0;
|
|
|
|
|
out_5406505055183973833[58] = 0;
|
|
|
|
|
out_5406505055183973833[59] = 0;
|
|
|
|
|
out_5406505055183973833[60] = 0;
|
|
|
|
|
out_5406505055183973833[61] = 0;
|
|
|
|
|
out_5406505055183973833[62] = 1;
|
|
|
|
|
out_5406505055183973833[63] = 0;
|
|
|
|
|
out_5406505055183973833[64] = 0;
|
|
|
|
|
out_5406505055183973833[65] = 1;
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void h_12(double *state, double *unused, double *out_2939119697401536762) {
|
|
|
|
|
out_2939119697401536762[0] = state[0];
|
|
|
|
|
out_2939119697401536762[1] = state[1];
|
|
|
|
|
out_2939119697401536762[2] = state[2];
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void H_12(double *state, double *unused, double *out_8577063091829684633) {
|
|
|
|
|
out_8577063091829684633[0] = 1;
|
|
|
|
|
out_8577063091829684633[1] = 0;
|
|
|
|
|
out_8577063091829684633[2] = 0;
|
|
|
|
|
out_8577063091829684633[3] = 0;
|
|
|
|
|
out_8577063091829684633[4] = 0;
|
|
|
|
|
out_8577063091829684633[5] = 0;
|
|
|
|
|
out_8577063091829684633[6] = 0;
|
|
|
|
|
out_8577063091829684633[7] = 0;
|
|
|
|
|
out_8577063091829684633[8] = 0;
|
|
|
|
|
out_8577063091829684633[9] = 0;
|
|
|
|
|
out_8577063091829684633[10] = 0;
|
|
|
|
|
out_8577063091829684633[11] = 0;
|
|
|
|
|
out_8577063091829684633[12] = 0;
|
|
|
|
|
out_8577063091829684633[13] = 0;
|
|
|
|
|
out_8577063091829684633[14] = 0;
|
|
|
|
|
out_8577063091829684633[15] = 0;
|
|
|
|
|
out_8577063091829684633[16] = 0;
|
|
|
|
|
out_8577063091829684633[17] = 0;
|
|
|
|
|
out_8577063091829684633[18] = 0;
|
|
|
|
|
out_8577063091829684633[19] = 0;
|
|
|
|
|
out_8577063091829684633[20] = 0;
|
|
|
|
|
out_8577063091829684633[21] = 0;
|
|
|
|
|
out_8577063091829684633[22] = 0;
|
|
|
|
|
out_8577063091829684633[23] = 1;
|
|
|
|
|
out_8577063091829684633[24] = 0;
|
|
|
|
|
out_8577063091829684633[25] = 0;
|
|
|
|
|
out_8577063091829684633[26] = 0;
|
|
|
|
|
out_8577063091829684633[27] = 0;
|
|
|
|
|
out_8577063091829684633[28] = 0;
|
|
|
|
|
out_8577063091829684633[29] = 0;
|
|
|
|
|
out_8577063091829684633[30] = 0;
|
|
|
|
|
out_8577063091829684633[31] = 0;
|
|
|
|
|
out_8577063091829684633[32] = 0;
|
|
|
|
|
out_8577063091829684633[33] = 0;
|
|
|
|
|
out_8577063091829684633[34] = 0;
|
|
|
|
|
out_8577063091829684633[35] = 0;
|
|
|
|
|
out_8577063091829684633[36] = 0;
|
|
|
|
|
out_8577063091829684633[37] = 0;
|
|
|
|
|
out_8577063091829684633[38] = 0;
|
|
|
|
|
out_8577063091829684633[39] = 0;
|
|
|
|
|
out_8577063091829684633[40] = 0;
|
|
|
|
|
out_8577063091829684633[41] = 0;
|
|
|
|
|
out_8577063091829684633[42] = 0;
|
|
|
|
|
out_8577063091829684633[43] = 0;
|
|
|
|
|
out_8577063091829684633[44] = 0;
|
|
|
|
|
out_8577063091829684633[45] = 0;
|
|
|
|
|
out_8577063091829684633[46] = 1;
|
|
|
|
|
out_8577063091829684633[47] = 0;
|
|
|
|
|
out_8577063091829684633[48] = 0;
|
|
|
|
|
out_8577063091829684633[49] = 0;
|
|
|
|
|
out_8577063091829684633[50] = 0;
|
|
|
|
|
out_8577063091829684633[51] = 0;
|
|
|
|
|
out_8577063091829684633[52] = 0;
|
|
|
|
|
out_8577063091829684633[53] = 0;
|
|
|
|
|
out_8577063091829684633[54] = 0;
|
|
|
|
|
out_8577063091829684633[55] = 0;
|
|
|
|
|
out_8577063091829684633[56] = 0;
|
|
|
|
|
out_8577063091829684633[57] = 0;
|
|
|
|
|
out_8577063091829684633[58] = 0;
|
|
|
|
|
out_8577063091829684633[59] = 0;
|
|
|
|
|
out_8577063091829684633[60] = 0;
|
|
|
|
|
out_8577063091829684633[61] = 0;
|
|
|
|
|
out_8577063091829684633[62] = 0;
|
|
|
|
|
out_8577063091829684633[63] = 0;
|
|
|
|
|
out_8577063091829684633[64] = 0;
|
|
|
|
|
out_8577063091829684633[65] = 0;
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void h_35(double *state, double *unused, double *out_3733220149839256661) {
|
|
|
|
|
out_3733220149839256661[0] = state[7];
|
|
|
|
|
out_3733220149839256661[1] = state[8];
|
|
|
|
|
out_3733220149839256661[2] = state[9];
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void H_35(double *state, double *unused, double *out_7124117949554853274) {
|
|
|
|
|
out_7124117949554853274[0] = 0;
|
|
|
|
|
out_7124117949554853274[1] = 0;
|
|
|
|
|
out_7124117949554853274[2] = 0;
|
|
|
|
|
out_7124117949554853274[3] = 0;
|
|
|
|
|
out_7124117949554853274[4] = 0;
|
|
|
|
|
out_7124117949554853274[5] = 0;
|
|
|
|
|
out_7124117949554853274[6] = 0;
|
|
|
|
|
out_7124117949554853274[7] = 1;
|
|
|
|
|
out_7124117949554853274[8] = 0;
|
|
|
|
|
out_7124117949554853274[9] = 0;
|
|
|
|
|
out_7124117949554853274[10] = 0;
|
|
|
|
|
out_7124117949554853274[11] = 0;
|
|
|
|
|
out_7124117949554853274[12] = 0;
|
|
|
|
|
out_7124117949554853274[13] = 0;
|
|
|
|
|
out_7124117949554853274[14] = 0;
|
|
|
|
|
out_7124117949554853274[15] = 0;
|
|
|
|
|
out_7124117949554853274[16] = 0;
|
|
|
|
|
out_7124117949554853274[17] = 0;
|
|
|
|
|
out_7124117949554853274[18] = 0;
|
|
|
|
|
out_7124117949554853274[19] = 0;
|
|
|
|
|
out_7124117949554853274[20] = 0;
|
|
|
|
|
out_7124117949554853274[21] = 0;
|
|
|
|
|
out_7124117949554853274[22] = 0;
|
|
|
|
|
out_7124117949554853274[23] = 0;
|
|
|
|
|
out_7124117949554853274[24] = 0;
|
|
|
|
|
out_7124117949554853274[25] = 0;
|
|
|
|
|
out_7124117949554853274[26] = 0;
|
|
|
|
|
out_7124117949554853274[27] = 0;
|
|
|
|
|
out_7124117949554853274[28] = 0;
|
|
|
|
|
out_7124117949554853274[29] = 0;
|
|
|
|
|
out_7124117949554853274[30] = 1;
|
|
|
|
|
out_7124117949554853274[31] = 0;
|
|
|
|
|
out_7124117949554853274[32] = 0;
|
|
|
|
|
out_7124117949554853274[33] = 0;
|
|
|
|
|
out_7124117949554853274[34] = 0;
|
|
|
|
|
out_7124117949554853274[35] = 0;
|
|
|
|
|
out_7124117949554853274[36] = 0;
|
|
|
|
|
out_7124117949554853274[37] = 0;
|
|
|
|
|
out_7124117949554853274[38] = 0;
|
|
|
|
|
out_7124117949554853274[39] = 0;
|
|
|
|
|
out_7124117949554853274[40] = 0;
|
|
|
|
|
out_7124117949554853274[41] = 0;
|
|
|
|
|
out_7124117949554853274[42] = 0;
|
|
|
|
|
out_7124117949554853274[43] = 0;
|
|
|
|
|
out_7124117949554853274[44] = 0;
|
|
|
|
|
out_7124117949554853274[45] = 0;
|
|
|
|
|
out_7124117949554853274[46] = 0;
|
|
|
|
|
out_7124117949554853274[47] = 0;
|
|
|
|
|
out_7124117949554853274[48] = 0;
|
|
|
|
|
out_7124117949554853274[49] = 0;
|
|
|
|
|
out_7124117949554853274[50] = 0;
|
|
|
|
|
out_7124117949554853274[51] = 0;
|
|
|
|
|
out_7124117949554853274[52] = 0;
|
|
|
|
|
out_7124117949554853274[53] = 1;
|
|
|
|
|
out_7124117949554853274[54] = 0;
|
|
|
|
|
out_7124117949554853274[55] = 0;
|
|
|
|
|
out_7124117949554853274[56] = 0;
|
|
|
|
|
out_7124117949554853274[57] = 0;
|
|
|
|
|
out_7124117949554853274[58] = 0;
|
|
|
|
|
out_7124117949554853274[59] = 0;
|
|
|
|
|
out_7124117949554853274[60] = 0;
|
|
|
|
|
out_7124117949554853274[61] = 0;
|
|
|
|
|
out_7124117949554853274[62] = 0;
|
|
|
|
|
out_7124117949554853274[63] = 0;
|
|
|
|
|
out_7124117949554853274[64] = 0;
|
|
|
|
|
out_7124117949554853274[65] = 0;
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void h_32(double *state, double *unused, double *out_6268450557573639622) {
|
|
|
|
|
out_6268450557573639622[0] = state[3];
|
|
|
|
|
out_6268450557573639622[1] = state[4];
|
|
|
|
|
out_6268450557573639622[2] = state[5];
|
|
|
|
|
out_6268450557573639622[3] = state[6];
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void H_32(double *state, double *unused, double *out_4419093436653103337) {
|
|
|
|
|
out_4419093436653103337[0] = 0;
|
|
|
|
|
out_4419093436653103337[1] = 0;
|
|
|
|
|
out_4419093436653103337[2] = 0;
|
|
|
|
|
out_4419093436653103337[3] = 1;
|
|
|
|
|
out_4419093436653103337[4] = 0;
|
|
|
|
|
out_4419093436653103337[5] = 0;
|
|
|
|
|
out_4419093436653103337[6] = 0;
|
|
|
|
|
out_4419093436653103337[7] = 0;
|
|
|
|
|
out_4419093436653103337[8] = 0;
|
|
|
|
|
out_4419093436653103337[9] = 0;
|
|
|
|
|
out_4419093436653103337[10] = 0;
|
|
|
|
|
out_4419093436653103337[11] = 0;
|
|
|
|
|
out_4419093436653103337[12] = 0;
|
|
|
|
|
out_4419093436653103337[13] = 0;
|
|
|
|
|
out_4419093436653103337[14] = 0;
|
|
|
|
|
out_4419093436653103337[15] = 0;
|
|
|
|
|
out_4419093436653103337[16] = 0;
|
|
|
|
|
out_4419093436653103337[17] = 0;
|
|
|
|
|
out_4419093436653103337[18] = 0;
|
|
|
|
|
out_4419093436653103337[19] = 0;
|
|
|
|
|
out_4419093436653103337[20] = 0;
|
|
|
|
|
out_4419093436653103337[21] = 0;
|
|
|
|
|
out_4419093436653103337[22] = 0;
|
|
|
|
|
out_4419093436653103337[23] = 0;
|
|
|
|
|
out_4419093436653103337[24] = 0;
|
|
|
|
|
out_4419093436653103337[25] = 0;
|
|
|
|
|
out_4419093436653103337[26] = 1;
|
|
|
|
|
out_4419093436653103337[27] = 0;
|
|
|
|
|
out_4419093436653103337[28] = 0;
|
|
|
|
|
out_4419093436653103337[29] = 0;
|
|
|
|
|
out_4419093436653103337[30] = 0;
|
|
|
|
|
out_4419093436653103337[31] = 0;
|
|
|
|
|
out_4419093436653103337[32] = 0;
|
|
|
|
|
out_4419093436653103337[33] = 0;
|
|
|
|
|
out_4419093436653103337[34] = 0;
|
|
|
|
|
out_4419093436653103337[35] = 0;
|
|
|
|
|
out_4419093436653103337[36] = 0;
|
|
|
|
|
out_4419093436653103337[37] = 0;
|
|
|
|
|
out_4419093436653103337[38] = 0;
|
|
|
|
|
out_4419093436653103337[39] = 0;
|
|
|
|
|
out_4419093436653103337[40] = 0;
|
|
|
|
|
out_4419093436653103337[41] = 0;
|
|
|
|
|
out_4419093436653103337[42] = 0;
|
|
|
|
|
out_4419093436653103337[43] = 0;
|
|
|
|
|
out_4419093436653103337[44] = 0;
|
|
|
|
|
out_4419093436653103337[45] = 0;
|
|
|
|
|
out_4419093436653103337[46] = 0;
|
|
|
|
|
out_4419093436653103337[47] = 0;
|
|
|
|
|
out_4419093436653103337[48] = 0;
|
|
|
|
|
out_4419093436653103337[49] = 1;
|
|
|
|
|
out_4419093436653103337[50] = 0;
|
|
|
|
|
out_4419093436653103337[51] = 0;
|
|
|
|
|
out_4419093436653103337[52] = 0;
|
|
|
|
|
out_4419093436653103337[53] = 0;
|
|
|
|
|
out_4419093436653103337[54] = 0;
|
|
|
|
|
out_4419093436653103337[55] = 0;
|
|
|
|
|
out_4419093436653103337[56] = 0;
|
|
|
|
|
out_4419093436653103337[57] = 0;
|
|
|
|
|
out_4419093436653103337[58] = 0;
|
|
|
|
|
out_4419093436653103337[59] = 0;
|
|
|
|
|
out_4419093436653103337[60] = 0;
|
|
|
|
|
out_4419093436653103337[61] = 0;
|
|
|
|
|
out_4419093436653103337[62] = 0;
|
|
|
|
|
out_4419093436653103337[63] = 0;
|
|
|
|
|
out_4419093436653103337[64] = 0;
|
|
|
|
|
out_4419093436653103337[65] = 0;
|
|
|
|
|
out_4419093436653103337[66] = 0;
|
|
|
|
|
out_4419093436653103337[67] = 0;
|
|
|
|
|
out_4419093436653103337[68] = 0;
|
|
|
|
|
out_4419093436653103337[69] = 0;
|
|
|
|
|
out_4419093436653103337[70] = 0;
|
|
|
|
|
out_4419093436653103337[71] = 0;
|
|
|
|
|
out_4419093436653103337[72] = 1;
|
|
|
|
|
out_4419093436653103337[73] = 0;
|
|
|
|
|
out_4419093436653103337[74] = 0;
|
|
|
|
|
out_4419093436653103337[75] = 0;
|
|
|
|
|
out_4419093436653103337[76] = 0;
|
|
|
|
|
out_4419093436653103337[77] = 0;
|
|
|
|
|
out_4419093436653103337[78] = 0;
|
|
|
|
|
out_4419093436653103337[79] = 0;
|
|
|
|
|
out_4419093436653103337[80] = 0;
|
|
|
|
|
out_4419093436653103337[81] = 0;
|
|
|
|
|
out_4419093436653103337[82] = 0;
|
|
|
|
|
out_4419093436653103337[83] = 0;
|
|
|
|
|
out_4419093436653103337[84] = 0;
|
|
|
|
|
out_4419093436653103337[85] = 0;
|
|
|
|
|
out_4419093436653103337[86] = 0;
|
|
|
|
|
out_4419093436653103337[87] = 0;
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void h_13(double *state, double *unused, double *out_7986377932969783217) {
|
|
|
|
|
out_7986377932969783217[0] = (-2*state[3]*state[5] + 2*state[4]*state[6])*state[9] + (2*state[3]*state[6] + 2*state[4]*state[5])*state[8] + (pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2))*state[7];
|
|
|
|
|
out_7986377932969783217[1] = (2*state[3]*state[4] + 2*state[5]*state[6])*state[9] + (-2*state[3]*state[6] + 2*state[4]*state[5])*state[7] + (pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2))*state[8];
|
|
|
|
|
out_7986377932969783217[2] = (-2*state[3]*state[4] + 2*state[5]*state[6])*state[8] + (2*state[3]*state[5] + 2*state[4]*state[6])*state[7] + (pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2))*state[9];
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void H_13(double *state, double *unused, double *out_276341309716065550) {
|
|
|
|
|
out_276341309716065550[0] = 0;
|
|
|
|
|
out_276341309716065550[1] = 0;
|
|
|
|
|
out_276341309716065550[2] = 0;
|
|
|
|
|
out_276341309716065550[3] = 2*state[3]*state[7] - 2*state[5]*state[9] + 2*state[6]*state[8];
|
|
|
|
|
out_276341309716065550[4] = 2*state[4]*state[7] + 2*state[5]*state[8] + 2*state[6]*state[9];
|
|
|
|
|
out_276341309716065550[5] = -2*state[3]*state[9] + 2*state[4]*state[8] - 2*state[5]*state[7];
|
|
|
|
|
out_276341309716065550[6] = 2*state[3]*state[8] + 2*state[4]*state[9] - 2*state[6]*state[7];
|
|
|
|
|
out_276341309716065550[7] = pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2);
|
|
|
|
|
out_276341309716065550[8] = 2*state[3]*state[6] + 2*state[4]*state[5];
|
|
|
|
|
out_276341309716065550[9] = -2*state[3]*state[5] + 2*state[4]*state[6];
|
|
|
|
|
out_276341309716065550[10] = 0;
|
|
|
|
|
out_276341309716065550[11] = 0;
|
|
|
|
|
out_276341309716065550[12] = 0;
|
|
|
|
|
out_276341309716065550[13] = 0;
|
|
|
|
|
out_276341309716065550[14] = 0;
|
|
|
|
|
out_276341309716065550[15] = 0;
|
|
|
|
|
out_276341309716065550[16] = 0;
|
|
|
|
|
out_276341309716065550[17] = 0;
|
|
|
|
|
out_276341309716065550[18] = 0;
|
|
|
|
|
out_276341309716065550[19] = 0;
|
|
|
|
|
out_276341309716065550[20] = 0;
|
|
|
|
|
out_276341309716065550[21] = 0;
|
|
|
|
|
out_276341309716065550[22] = 0;
|
|
|
|
|
out_276341309716065550[23] = 0;
|
|
|
|
|
out_276341309716065550[24] = 0;
|
|
|
|
|
out_276341309716065550[25] = 2*state[3]*state[8] + 2*state[4]*state[9] - 2*state[6]*state[7];
|
|
|
|
|
out_276341309716065550[26] = 2*state[3]*state[9] - 2*state[4]*state[8] + 2*state[5]*state[7];
|
|
|
|
|
out_276341309716065550[27] = 2*state[4]*state[7] + 2*state[5]*state[8] + 2*state[6]*state[9];
|
|
|
|
|
out_276341309716065550[28] = -2*state[3]*state[7] + 2*state[5]*state[9] - 2*state[6]*state[8];
|
|
|
|
|
out_276341309716065550[29] = -2*state[3]*state[6] + 2*state[4]*state[5];
|
|
|
|
|
out_276341309716065550[30] = pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2);
|
|
|
|
|
out_276341309716065550[31] = 2*state[3]*state[4] + 2*state[5]*state[6];
|
|
|
|
|
out_276341309716065550[32] = 0;
|
|
|
|
|
out_276341309716065550[33] = 0;
|
|
|
|
|
out_276341309716065550[34] = 0;
|
|
|
|
|
out_276341309716065550[35] = 0;
|
|
|
|
|
out_276341309716065550[36] = 0;
|
|
|
|
|
out_276341309716065550[37] = 0;
|
|
|
|
|
out_276341309716065550[38] = 0;
|
|
|
|
|
out_276341309716065550[39] = 0;
|
|
|
|
|
out_276341309716065550[40] = 0;
|
|
|
|
|
out_276341309716065550[41] = 0;
|
|
|
|
|
out_276341309716065550[42] = 0;
|
|
|
|
|
out_276341309716065550[43] = 0;
|
|
|
|
|
out_276341309716065550[44] = 0;
|
|
|
|
|
out_276341309716065550[45] = 0;
|
|
|
|
|
out_276341309716065550[46] = 0;
|
|
|
|
|
out_276341309716065550[47] = 2*state[3]*state[9] - 2*state[4]*state[8] + 2*state[5]*state[7];
|
|
|
|
|
out_276341309716065550[48] = -2*state[3]*state[8] - 2*state[4]*state[9] + 2*state[6]*state[7];
|
|
|
|
|
out_276341309716065550[49] = 2*state[3]*state[7] - 2*state[5]*state[9] + 2*state[6]*state[8];
|
|
|
|
|
out_276341309716065550[50] = 2*state[4]*state[7] + 2*state[5]*state[8] + 2*state[6]*state[9];
|
|
|
|
|
out_276341309716065550[51] = 2*state[3]*state[5] + 2*state[4]*state[6];
|
|
|
|
|
out_276341309716065550[52] = -2*state[3]*state[4] + 2*state[5]*state[6];
|
|
|
|
|
out_276341309716065550[53] = pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2);
|
|
|
|
|
out_276341309716065550[54] = 0;
|
|
|
|
|
out_276341309716065550[55] = 0;
|
|
|
|
|
out_276341309716065550[56] = 0;
|
|
|
|
|
out_276341309716065550[57] = 0;
|
|
|
|
|
out_276341309716065550[58] = 0;
|
|
|
|
|
out_276341309716065550[59] = 0;
|
|
|
|
|
out_276341309716065550[60] = 0;
|
|
|
|
|
out_276341309716065550[61] = 0;
|
|
|
|
|
out_276341309716065550[62] = 0;
|
|
|
|
|
out_276341309716065550[63] = 0;
|
|
|
|
|
out_276341309716065550[64] = 0;
|
|
|
|
|
out_276341309716065550[65] = 0;
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void h_14(double *state, double *unused, double *out_3280179861815054133) {
|
|
|
|
|
out_3280179861815054133[0] = state[10];
|
|
|
|
|
out_3280179861815054133[1] = state[11];
|
|
|
|
|
out_3280179861815054133[2] = state[12];
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void H_14(double *state, double *unused, double *out_8197153713411681611) {
|
|
|
|
|
out_8197153713411681611[0] = 0;
|
|
|
|
|
out_8197153713411681611[1] = 0;
|
|
|
|
|
out_8197153713411681611[2] = 0;
|
|
|
|
|
out_8197153713411681611[3] = 0;
|
|
|
|
|
out_8197153713411681611[4] = 0;
|
|
|
|
|
out_8197153713411681611[5] = 0;
|
|
|
|
|
out_8197153713411681611[6] = 0;
|
|
|
|
|
out_8197153713411681611[7] = 0;
|
|
|
|
|
out_8197153713411681611[8] = 0;
|
|
|
|
|
out_8197153713411681611[9] = 0;
|
|
|
|
|
out_8197153713411681611[10] = 1;
|
|
|
|
|
out_8197153713411681611[11] = 0;
|
|
|
|
|
out_8197153713411681611[12] = 0;
|
|
|
|
|
out_8197153713411681611[13] = 0;
|
|
|
|
|
out_8197153713411681611[14] = 0;
|
|
|
|
|
out_8197153713411681611[15] = 0;
|
|
|
|
|
out_8197153713411681611[16] = 0;
|
|
|
|
|
out_8197153713411681611[17] = 0;
|
|
|
|
|
out_8197153713411681611[18] = 0;
|
|
|
|
|
out_8197153713411681611[19] = 0;
|
|
|
|
|
out_8197153713411681611[20] = 0;
|
|
|
|
|
out_8197153713411681611[21] = 0;
|
|
|
|
|
out_8197153713411681611[22] = 0;
|
|
|
|
|
out_8197153713411681611[23] = 0;
|
|
|
|
|
out_8197153713411681611[24] = 0;
|
|
|
|
|
out_8197153713411681611[25] = 0;
|
|
|
|
|
out_8197153713411681611[26] = 0;
|
|
|
|
|
out_8197153713411681611[27] = 0;
|
|
|
|
|
out_8197153713411681611[28] = 0;
|
|
|
|
|
out_8197153713411681611[29] = 0;
|
|
|
|
|
out_8197153713411681611[30] = 0;
|
|
|
|
|
out_8197153713411681611[31] = 0;
|
|
|
|
|
out_8197153713411681611[32] = 0;
|
|
|
|
|
out_8197153713411681611[33] = 1;
|
|
|
|
|
out_8197153713411681611[34] = 0;
|
|
|
|
|
out_8197153713411681611[35] = 0;
|
|
|
|
|
out_8197153713411681611[36] = 0;
|
|
|
|
|
out_8197153713411681611[37] = 0;
|
|
|
|
|
out_8197153713411681611[38] = 0;
|
|
|
|
|
out_8197153713411681611[39] = 0;
|
|
|
|
|
out_8197153713411681611[40] = 0;
|
|
|
|
|
out_8197153713411681611[41] = 0;
|
|
|
|
|
out_8197153713411681611[42] = 0;
|
|
|
|
|
out_8197153713411681611[43] = 0;
|
|
|
|
|
out_8197153713411681611[44] = 0;
|
|
|
|
|
out_8197153713411681611[45] = 0;
|
|
|
|
|
out_8197153713411681611[46] = 0;
|
|
|
|
|
out_8197153713411681611[47] = 0;
|
|
|
|
|
out_8197153713411681611[48] = 0;
|
|
|
|
|
out_8197153713411681611[49] = 0;
|
|
|
|
|
out_8197153713411681611[50] = 0;
|
|
|
|
|
out_8197153713411681611[51] = 0;
|
|
|
|
|
out_8197153713411681611[52] = 0;
|
|
|
|
|
out_8197153713411681611[53] = 0;
|
|
|
|
|
out_8197153713411681611[54] = 0;
|
|
|
|
|
out_8197153713411681611[55] = 0;
|
|
|
|
|
out_8197153713411681611[56] = 1;
|
|
|
|
|
out_8197153713411681611[57] = 0;
|
|
|
|
|
out_8197153713411681611[58] = 0;
|
|
|
|
|
out_8197153713411681611[59] = 0;
|
|
|
|
|
out_8197153713411681611[60] = 0;
|
|
|
|
|
out_8197153713411681611[61] = 0;
|
|
|
|
|
out_8197153713411681611[62] = 0;
|
|
|
|
|
out_8197153713411681611[63] = 0;
|
|
|
|
|
out_8197153713411681611[64] = 0;
|
|
|
|
|
out_8197153713411681611[65] = 0;
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void h_33(double *state, double *unused, double *out_3797754961266519421) {
|
|
|
|
|
out_3797754961266519421[0] = state[16];
|
|
|
|
|
out_3797754961266519421[1] = state[17];
|
|
|
|
|
out_3797754961266519421[2] = state[18];
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void H_33(double *state, double *unused, double *out_3973560944915995670) {
|
|
|
|
|
out_3973560944915995670[0] = 0;
|
|
|
|
|
out_3973560944915995670[1] = 0;
|
|
|
|
|
out_3973560944915995670[2] = 0;
|
|
|
|
|
out_3973560944915995670[3] = 0;
|
|
|
|
|
out_3973560944915995670[4] = 0;
|
|
|
|
|
out_3973560944915995670[5] = 0;
|
|
|
|
|
out_3973560944915995670[6] = 0;
|
|
|
|
|
out_3973560944915995670[7] = 0;
|
|
|
|
|
out_3973560944915995670[8] = 0;
|
|
|
|
|
out_3973560944915995670[9] = 0;
|
|
|
|
|
out_3973560944915995670[10] = 0;
|
|
|
|
|
out_3973560944915995670[11] = 0;
|
|
|
|
|
out_3973560944915995670[12] = 0;
|
|
|
|
|
out_3973560944915995670[13] = 0;
|
|
|
|
|
out_3973560944915995670[14] = 0;
|
|
|
|
|
out_3973560944915995670[15] = 0;
|
|
|
|
|
out_3973560944915995670[16] = 1;
|
|
|
|
|
out_3973560944915995670[17] = 0;
|
|
|
|
|
out_3973560944915995670[18] = 0;
|
|
|
|
|
out_3973560944915995670[19] = 0;
|
|
|
|
|
out_3973560944915995670[20] = 0;
|
|
|
|
|
out_3973560944915995670[21] = 0;
|
|
|
|
|
out_3973560944915995670[22] = 0;
|
|
|
|
|
out_3973560944915995670[23] = 0;
|
|
|
|
|
out_3973560944915995670[24] = 0;
|
|
|
|
|
out_3973560944915995670[25] = 0;
|
|
|
|
|
out_3973560944915995670[26] = 0;
|
|
|
|
|
out_3973560944915995670[27] = 0;
|
|
|
|
|
out_3973560944915995670[28] = 0;
|
|
|
|
|
out_3973560944915995670[29] = 0;
|
|
|
|
|
out_3973560944915995670[30] = 0;
|
|
|
|
|
out_3973560944915995670[31] = 0;
|
|
|
|
|
out_3973560944915995670[32] = 0;
|
|
|
|
|
out_3973560944915995670[33] = 0;
|
|
|
|
|
out_3973560944915995670[34] = 0;
|
|
|
|
|
out_3973560944915995670[35] = 0;
|
|
|
|
|
out_3973560944915995670[36] = 0;
|
|
|
|
|
out_3973560944915995670[37] = 0;
|
|
|
|
|
out_3973560944915995670[38] = 0;
|
|
|
|
|
out_3973560944915995670[39] = 1;
|
|
|
|
|
out_3973560944915995670[40] = 0;
|
|
|
|
|
out_3973560944915995670[41] = 0;
|
|
|
|
|
out_3973560944915995670[42] = 0;
|
|
|
|
|
out_3973560944915995670[43] = 0;
|
|
|
|
|
out_3973560944915995670[44] = 0;
|
|
|
|
|
out_3973560944915995670[45] = 0;
|
|
|
|
|
out_3973560944915995670[46] = 0;
|
|
|
|
|
out_3973560944915995670[47] = 0;
|
|
|
|
|
out_3973560944915995670[48] = 0;
|
|
|
|
|
out_3973560944915995670[49] = 0;
|
|
|
|
|
out_3973560944915995670[50] = 0;
|
|
|
|
|
out_3973560944915995670[51] = 0;
|
|
|
|
|
out_3973560944915995670[52] = 0;
|
|
|
|
|
out_3973560944915995670[53] = 0;
|
|
|
|
|
out_3973560944915995670[54] = 0;
|
|
|
|
|
out_3973560944915995670[55] = 0;
|
|
|
|
|
out_3973560944915995670[56] = 0;
|
|
|
|
|
out_3973560944915995670[57] = 0;
|
|
|
|
|
out_3973560944915995670[58] = 0;
|
|
|
|
|
out_3973560944915995670[59] = 0;
|
|
|
|
|
out_3973560944915995670[60] = 0;
|
|
|
|
|
out_3973560944915995670[61] = 0;
|
|
|
|
|
out_3973560944915995670[62] = 1;
|
|
|
|
|
out_3973560944915995670[63] = 0;
|
|
|
|
|
out_3973560944915995670[64] = 0;
|
|
|
|
|
out_3973560944915995670[65] = 0;
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
|
|
|
|
#include <eigen3/Eigen/Dense>
|
|
|
|
|
#include <iostream>
|
|
|
|
|
|
|
|
|
|
typedef Eigen::Matrix<double, DIM, DIM, Eigen::RowMajor> DDM;
|
|
|
|
|
typedef Eigen::Matrix<double, EDIM, EDIM, Eigen::RowMajor> EEM;
|
|
|
|
|
typedef Eigen::Matrix<double, DIM, EDIM, Eigen::RowMajor> DEM;
|
|
|
|
|
|
|
|
|
|
void predict(double *in_x, double *in_P, double *in_Q, double dt) {
|
|
|
|
|
typedef Eigen::Matrix<double, MEDIM, MEDIM, Eigen::RowMajor> RRM;
|
|
|
|
|
|
|
|
|
|
double nx[DIM] = {0};
|
|
|
|
|
double in_F[EDIM*EDIM] = {0};
|
|
|
|
|
|
|
|
|
|
// functions from sympy
|
|
|
|
|
f_fun(in_x, dt, nx);
|
|
|
|
|
F_fun(in_x, dt, in_F);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EEM F(in_F);
|
|
|
|
|
EEM P(in_P);
|
|
|
|
|
EEM Q(in_Q);
|
|
|
|
|
|
|
|
|
|
RRM F_main = F.topLeftCorner(MEDIM, MEDIM);
|
|
|
|
|
P.topLeftCorner(MEDIM, MEDIM) = (F_main * P.topLeftCorner(MEDIM, MEDIM)) * F_main.transpose();
|
|
|
|
|
P.topRightCorner(MEDIM, EDIM - MEDIM) = F_main * P.topRightCorner(MEDIM, EDIM - MEDIM);
|
|
|
|
|
P.bottomLeftCorner(EDIM - MEDIM, MEDIM) = P.bottomLeftCorner(EDIM - MEDIM, MEDIM) * F_main.transpose();
|
|
|
|
|
|
|
|
|
|
P = P + dt*Q;
|
|
|
|
|
|
|
|
|
|
// copy out state
|
|
|
|
|
memcpy(in_x, nx, DIM * sizeof(double));
|
|
|
|
|
memcpy(in_P, P.data(), EDIM * EDIM * sizeof(double));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// note: extra_args dim only correct when null space projecting
|
|
|
|
|
// otherwise 1
|
|
|
|
|
template <int ZDIM, int EADIM, bool MAHA_TEST>
|
|
|
|
|
void update(double *in_x, double *in_P, Hfun h_fun, Hfun H_fun, Hfun Hea_fun, double *in_z, double *in_R, double *in_ea, double MAHA_THRESHOLD) {
|
|
|
|
|
typedef Eigen::Matrix<double, ZDIM, ZDIM, Eigen::RowMajor> ZZM;
|
|
|
|
|
typedef Eigen::Matrix<double, ZDIM, DIM, Eigen::RowMajor> ZDM;
|
|
|
|
|
typedef Eigen::Matrix<double, Eigen::Dynamic, EDIM, Eigen::RowMajor> XEM;
|
|
|
|
|
//typedef Eigen::Matrix<double, EDIM, ZDIM, Eigen::RowMajor> EZM;
|
|
|
|
|
typedef Eigen::Matrix<double, Eigen::Dynamic, 1> X1M;
|
|
|
|
|
typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> XXM;
|
|
|
|
|
|
|
|
|
|
double in_hx[ZDIM] = {0};
|
|
|
|
|
double in_H[ZDIM * DIM] = {0};
|
|
|
|
|
double in_H_mod[EDIM * DIM] = {0};
|
|
|
|
|
double delta_x[EDIM] = {0};
|
|
|
|
|
double x_new[DIM] = {0};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// state x, P
|
|
|
|
|
Eigen::Matrix<double, ZDIM, 1> z(in_z);
|
|
|
|
|
EEM P(in_P);
|
|
|
|
|
ZZM pre_R(in_R);
|
|
|
|
|
|
|
|
|
|
// functions from sympy
|
|
|
|
|
h_fun(in_x, in_ea, in_hx);
|
|
|
|
|
H_fun(in_x, in_ea, in_H);
|
|
|
|
|
ZDM pre_H(in_H);
|
|
|
|
|
|
|
|
|
|
// get y (y = z - hx)
|
|
|
|
|
Eigen::Matrix<double, ZDIM, 1> pre_y(in_hx); pre_y = z - pre_y;
|
|
|
|
|
X1M y; XXM H; XXM R;
|
|
|
|
|
if (Hea_fun){
|
|
|
|
|
typedef Eigen::Matrix<double, ZDIM, EADIM, Eigen::RowMajor> ZAM;
|
|
|
|
|
double in_Hea[ZDIM * EADIM] = {0};
|
|
|
|
|
Hea_fun(in_x, in_ea, in_Hea);
|
|
|
|
|
ZAM Hea(in_Hea);
|
|
|
|
|
XXM A = Hea.transpose().fullPivLu().kernel();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y = A.transpose() * pre_y;
|
|
|
|
|
H = A.transpose() * pre_H;
|
|
|
|
|
R = A.transpose() * pre_R * A;
|
|
|
|
|
} else {
|
|
|
|
|
y = pre_y;
|
|
|
|
|
H = pre_H;
|
|
|
|
|
R = pre_R;
|
|
|
|
|
}
|
|
|
|
|
// get modified H
|
|
|
|
|
H_mod_fun(in_x, in_H_mod);
|
|
|
|
|
DEM H_mod(in_H_mod);
|
|
|
|
|
XEM H_err = H * H_mod;
|
|
|
|
|
|
|
|
|
|
// Do mahalobis distance test
|
|
|
|
|
if (MAHA_TEST){
|
|
|
|
|
XXM a = (H_err * P * H_err.transpose() + R).inverse();
|
|
|
|
|
double maha_dist = y.transpose() * a * y;
|
|
|
|
|
if (maha_dist > MAHA_THRESHOLD){
|
|
|
|
|
R = 1.0e16 * R;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Outlier resilient weighting
|
|
|
|
|
double weight = 1;//(1.5)/(1 + y.squaredNorm()/R.sum());
|
|
|
|
|
|
|
|
|
|
// kalman gains and I_KH
|
|
|
|
|
XXM S = ((H_err * P) * H_err.transpose()) + R/weight;
|
|
|
|
|
XEM KT = S.fullPivLu().solve(H_err * P.transpose());
|
|
|
|
|
//EZM K = KT.transpose(); TODO: WHY DOES THIS NOT COMPILE?
|
|
|
|
|
//EZM K = S.fullPivLu().solve(H_err * P.transpose()).transpose();
|
|
|
|
|
//std::cout << "Here is the matrix rot:\n" << K << std::endl;
|
|
|
|
|
EEM I_KH = Eigen::Matrix<double, EDIM, EDIM>::Identity() - (KT.transpose() * H_err);
|
|
|
|
|
|
|
|
|
|
// update state by injecting dx
|
|
|
|
|
Eigen::Matrix<double, EDIM, 1> dx(delta_x);
|
|
|
|
|
dx = (KT.transpose() * y);
|
|
|
|
|
memcpy(delta_x, dx.data(), EDIM * sizeof(double));
|
|
|
|
|
err_fun(in_x, delta_x, x_new);
|
|
|
|
|
Eigen::Matrix<double, DIM, 1> x(x_new);
|
|
|
|
|
|
|
|
|
|
// update cov
|
|
|
|
|
P = ((I_KH * P) * I_KH.transpose()) + ((KT.transpose() * R) * KT);
|
|
|
|
|
|
|
|
|
|
// copy out state
|
|
|
|
|
memcpy(in_x, x.data(), DIM * sizeof(double));
|
|
|
|
|
memcpy(in_P, P.data(), EDIM * EDIM * sizeof(double));
|
|
|
|
|
memcpy(in_z, y.data(), y.rows() * sizeof(double));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
extern "C" {
|
|
|
|
|
|
|
|
|
|
void live_update_4(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) {
|
|
|
|
|
update<3, 3, 0>(in_x, in_P, h_4, H_4, NULL, in_z, in_R, in_ea, MAHA_THRESH_4);
|
|
|
|
|
}
|
|
|
|
|
void live_update_9(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) {
|
|
|
|
|
update<3, 3, 0>(in_x, in_P, h_9, H_9, NULL, in_z, in_R, in_ea, MAHA_THRESH_9);
|
|
|
|
|
}
|
|
|
|
|
void live_update_10(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) {
|
|
|
|
|
update<3, 3, 0>(in_x, in_P, h_10, H_10, NULL, in_z, in_R, in_ea, MAHA_THRESH_10);
|
|
|
|
|
}
|
|
|
|
|
void live_update_12(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) {
|
|
|
|
|
update<3, 3, 0>(in_x, in_P, h_12, H_12, NULL, in_z, in_R, in_ea, MAHA_THRESH_12);
|
|
|
|
|
}
|
|
|
|
|
void live_update_35(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) {
|
|
|
|
|
update<3, 3, 0>(in_x, in_P, h_35, H_35, NULL, in_z, in_R, in_ea, MAHA_THRESH_35);
|
|
|
|
|
}
|
|
|
|
|
void live_update_32(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) {
|
|
|
|
|
update<4, 3, 0>(in_x, in_P, h_32, H_32, NULL, in_z, in_R, in_ea, MAHA_THRESH_32);
|
|
|
|
|
}
|
|
|
|
|
void live_update_13(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) {
|
|
|
|
|
update<3, 3, 0>(in_x, in_P, h_13, H_13, NULL, in_z, in_R, in_ea, MAHA_THRESH_13);
|
|
|
|
|
}
|
|
|
|
|
void live_update_14(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) {
|
|
|
|
|
update<3, 3, 0>(in_x, in_P, h_14, H_14, NULL, in_z, in_R, in_ea, MAHA_THRESH_14);
|
|
|
|
|
}
|
|
|
|
|
void live_update_33(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) {
|
|
|
|
|
update<3, 3, 0>(in_x, in_P, h_33, H_33, NULL, in_z, in_R, in_ea, MAHA_THRESH_33);
|
|
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_H(double *in_vec, double *out_5027207160750161004) {
|
|
|
|
|
H(in_vec, out_5027207160750161004);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_err_fun(double *nom_x, double *delta_x, double *out_812293829444590878) {
|
|
|
|
|
err_fun(nom_x, delta_x, out_812293829444590878);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_inv_err_fun(double *nom_x, double *true_x, double *out_2331899367078236024) {
|
|
|
|
|
inv_err_fun(nom_x, true_x, out_2331899367078236024);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_H_mod_fun(double *state, double *out_3350621260021879835) {
|
|
|
|
|
H_mod_fun(state, out_3350621260021879835);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_f_fun(double *state, double dt, double *out_9110479569516509106) {
|
|
|
|
|
f_fun(state, dt, out_9110479569516509106);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_F_fun(double *state, double dt, double *out_956757865849250644) {
|
|
|
|
|
F_fun(state, dt, out_956757865849250644);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_h_4(double *state, double *unused, double *out_396243034408503816) {
|
|
|
|
|
h_4(state, unused, out_396243034408503816);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_H_4(double *state, double *unused, double *out_7955964066782090966) {
|
|
|
|
|
H_4(state, unused, out_7955964066782090966);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_h_9(double *state, double *unused, double *out_3280179861815054133) {
|
|
|
|
|
h_9(state, unused, out_3280179861815054133);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_H_9(double *state, double *unused, double *out_8197153713411681611) {
|
|
|
|
|
H_9(state, unused, out_8197153713411681611);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_h_10(double *state, double *unused, double *out_7028739412274946671) {
|
|
|
|
|
h_10(state, unused, out_7028739412274946671);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_H_10(double *state, double *unused, double *out_5406505055183973833) {
|
|
|
|
|
H_10(state, unused, out_5406505055183973833);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_h_12(double *state, double *unused, double *out_2939119697401536762) {
|
|
|
|
|
h_12(state, unused, out_2939119697401536762);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_H_12(double *state, double *unused, double *out_8577063091829684633) {
|
|
|
|
|
H_12(state, unused, out_8577063091829684633);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_h_35(double *state, double *unused, double *out_3733220149839256661) {
|
|
|
|
|
h_35(state, unused, out_3733220149839256661);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_H_35(double *state, double *unused, double *out_7124117949554853274) {
|
|
|
|
|
H_35(state, unused, out_7124117949554853274);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_h_32(double *state, double *unused, double *out_6268450557573639622) {
|
|
|
|
|
h_32(state, unused, out_6268450557573639622);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_H_32(double *state, double *unused, double *out_4419093436653103337) {
|
|
|
|
|
H_32(state, unused, out_4419093436653103337);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_h_13(double *state, double *unused, double *out_7986377932969783217) {
|
|
|
|
|
h_13(state, unused, out_7986377932969783217);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_H_13(double *state, double *unused, double *out_276341309716065550) {
|
|
|
|
|
H_13(state, unused, out_276341309716065550);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_h_14(double *state, double *unused, double *out_3280179861815054133) {
|
|
|
|
|
h_14(state, unused, out_3280179861815054133);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_H_14(double *state, double *unused, double *out_8197153713411681611) {
|
|
|
|
|
H_14(state, unused, out_8197153713411681611);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_h_33(double *state, double *unused, double *out_3797754961266519421) {
|
|
|
|
|
h_33(state, unused, out_3797754961266519421);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
2023-08-22 14:20:25 -07:00
|
|
|
void live_H_33(double *state, double *unused, double *out_3973560944915995670) {
|
|
|
|
|
H_33(state, unused, out_3973560944915995670);
|
2023-07-26 22:14:57 +08:00
|
|
|
}
|
|
|
|
|
void live_predict(double *in_x, double *in_P, double *in_Q, double dt) {
|
|
|
|
|
predict(in_x, in_P, in_Q, dt);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const EKF live = {
|
|
|
|
|
.name = "live",
|
|
|
|
|
.kinds = { 4, 9, 10, 12, 35, 32, 13, 14, 33 },
|
|
|
|
|
.feature_kinds = { },
|
|
|
|
|
.f_fun = live_f_fun,
|
|
|
|
|
.F_fun = live_F_fun,
|
|
|
|
|
.err_fun = live_err_fun,
|
|
|
|
|
.inv_err_fun = live_inv_err_fun,
|
|
|
|
|
.H_mod_fun = live_H_mod_fun,
|
|
|
|
|
.predict = live_predict,
|
|
|
|
|
.hs = {
|
|
|
|
|
{ 4, live_h_4 },
|
|
|
|
|
{ 9, live_h_9 },
|
|
|
|
|
{ 10, live_h_10 },
|
|
|
|
|
{ 12, live_h_12 },
|
|
|
|
|
{ 35, live_h_35 },
|
|
|
|
|
{ 32, live_h_32 },
|
|
|
|
|
{ 13, live_h_13 },
|
|
|
|
|
{ 14, live_h_14 },
|
|
|
|
|
{ 33, live_h_33 },
|
|
|
|
|
},
|
|
|
|
|
.Hs = {
|
|
|
|
|
{ 4, live_H_4 },
|
|
|
|
|
{ 9, live_H_9 },
|
|
|
|
|
{ 10, live_H_10 },
|
|
|
|
|
{ 12, live_H_12 },
|
|
|
|
|
{ 35, live_H_35 },
|
|
|
|
|
{ 32, live_H_32 },
|
|
|
|
|
{ 13, live_H_13 },
|
|
|
|
|
{ 14, live_H_14 },
|
|
|
|
|
{ 33, live_H_33 },
|
|
|
|
|
},
|
|
|
|
|
.updates = {
|
|
|
|
|
{ 4, live_update_4 },
|
|
|
|
|
{ 9, live_update_9 },
|
|
|
|
|
{ 10, live_update_10 },
|
|
|
|
|
{ 12, live_update_12 },
|
|
|
|
|
{ 35, live_update_35 },
|
|
|
|
|
{ 32, live_update_32 },
|
|
|
|
|
{ 13, live_update_13 },
|
|
|
|
|
{ 14, live_update_14 },
|
|
|
|
|
{ 33, live_update_33 },
|
|
|
|
|
},
|
|
|
|
|
.Hes = {
|
|
|
|
|
},
|
|
|
|
|
.sets = {
|
|
|
|
|
},
|
|
|
|
|
.extra_routines = {
|
|
|
|
|
{ "H", live_H },
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
ekf_init(live);
|