#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' * ******************************************************************************/ void H(double *in_vec, double *out_1030892538088703046) { out_1030892538088703046[0] = 0; out_1030892538088703046[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_1030892538088703046[2] = -sin(in_vec[2])*cos(in_vec[1])*in_vec[3] + cos(in_vec[1])*cos(in_vec[2])*in_vec[4]; out_1030892538088703046[3] = cos(in_vec[1])*cos(in_vec[2]); out_1030892538088703046[4] = sin(in_vec[2])*cos(in_vec[1]); out_1030892538088703046[5] = -sin(in_vec[1]); out_1030892538088703046[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_1030892538088703046[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_1030892538088703046[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_1030892538088703046[9] = sin(in_vec[0])*sin(in_vec[1])*cos(in_vec[2]) - sin(in_vec[2])*cos(in_vec[0]); out_1030892538088703046[10] = sin(in_vec[0])*sin(in_vec[1])*sin(in_vec[2]) + cos(in_vec[0])*cos(in_vec[2]); out_1030892538088703046[11] = sin(in_vec[0])*cos(in_vec[1]); out_1030892538088703046[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_1030892538088703046[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_1030892538088703046[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_1030892538088703046[15] = sin(in_vec[0])*sin(in_vec[2]) + sin(in_vec[1])*cos(in_vec[0])*cos(in_vec[2]); out_1030892538088703046[16] = -sin(in_vec[0])*cos(in_vec[2]) + sin(in_vec[1])*sin(in_vec[2])*cos(in_vec[0]); out_1030892538088703046[17] = cos(in_vec[0])*cos(in_vec[1]); } void err_fun(double *nom_x, double *delta_x, double *out_4555843542312345642) { out_4555843542312345642[0] = delta_x[0] + nom_x[0]; out_4555843542312345642[1] = delta_x[1] + nom_x[1]; out_4555843542312345642[2] = delta_x[2] + nom_x[2]; out_4555843542312345642[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_4555843542312345642[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_4555843542312345642[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_4555843542312345642[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_4555843542312345642[7] = delta_x[6] + nom_x[7]; out_4555843542312345642[8] = delta_x[7] + nom_x[8]; out_4555843542312345642[9] = delta_x[8] + nom_x[9]; out_4555843542312345642[10] = delta_x[9] + nom_x[10]; out_4555843542312345642[11] = delta_x[10] + nom_x[11]; out_4555843542312345642[12] = delta_x[11] + nom_x[12]; out_4555843542312345642[13] = delta_x[12] + nom_x[13]; out_4555843542312345642[14] = delta_x[13] + nom_x[14]; out_4555843542312345642[15] = delta_x[14] + nom_x[15]; out_4555843542312345642[16] = delta_x[15] + nom_x[16]; out_4555843542312345642[17] = delta_x[16] + nom_x[17]; out_4555843542312345642[18] = delta_x[17] + nom_x[18]; out_4555843542312345642[19] = delta_x[18] + nom_x[19]; out_4555843542312345642[20] = delta_x[19] + nom_x[20]; out_4555843542312345642[21] = delta_x[20] + nom_x[21]; } void inv_err_fun(double *nom_x, double *true_x, double *out_913499310372198985) { out_913499310372198985[0] = -nom_x[0] + true_x[0]; out_913499310372198985[1] = -nom_x[1] + true_x[1]; out_913499310372198985[2] = -nom_x[2] + true_x[2]; out_913499310372198985[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_913499310372198985[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_913499310372198985[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_913499310372198985[6] = -nom_x[7] + true_x[7]; out_913499310372198985[7] = -nom_x[8] + true_x[8]; out_913499310372198985[8] = -nom_x[9] + true_x[9]; out_913499310372198985[9] = -nom_x[10] + true_x[10]; out_913499310372198985[10] = -nom_x[11] + true_x[11]; out_913499310372198985[11] = -nom_x[12] + true_x[12]; out_913499310372198985[12] = -nom_x[13] + true_x[13]; out_913499310372198985[13] = -nom_x[14] + true_x[14]; out_913499310372198985[14] = -nom_x[15] + true_x[15]; out_913499310372198985[15] = -nom_x[16] + true_x[16]; out_913499310372198985[16] = -nom_x[17] + true_x[17]; out_913499310372198985[17] = -nom_x[18] + true_x[18]; out_913499310372198985[18] = -nom_x[19] + true_x[19]; out_913499310372198985[19] = -nom_x[20] + true_x[20]; out_913499310372198985[20] = -nom_x[21] + true_x[21]; } void H_mod_fun(double *state, double *out_1455121800340994207) { out_1455121800340994207[0] = 1.0; out_1455121800340994207[1] = 0; out_1455121800340994207[2] = 0; out_1455121800340994207[3] = 0; out_1455121800340994207[4] = 0; out_1455121800340994207[5] = 0; out_1455121800340994207[6] = 0; out_1455121800340994207[7] = 0; out_1455121800340994207[8] = 0; out_1455121800340994207[9] = 0; out_1455121800340994207[10] = 0; out_1455121800340994207[11] = 0; out_1455121800340994207[12] = 0; out_1455121800340994207[13] = 0; out_1455121800340994207[14] = 0; out_1455121800340994207[15] = 0; out_1455121800340994207[16] = 0; out_1455121800340994207[17] = 0; out_1455121800340994207[18] = 0; out_1455121800340994207[19] = 0; out_1455121800340994207[20] = 0; out_1455121800340994207[21] = 0; out_1455121800340994207[22] = 1.0; out_1455121800340994207[23] = 0; out_1455121800340994207[24] = 0; out_1455121800340994207[25] = 0; out_1455121800340994207[26] = 0; out_1455121800340994207[27] = 0; out_1455121800340994207[28] = 0; out_1455121800340994207[29] = 0; out_1455121800340994207[30] = 0; out_1455121800340994207[31] = 0; out_1455121800340994207[32] = 0; out_1455121800340994207[33] = 0; out_1455121800340994207[34] = 0; out_1455121800340994207[35] = 0; out_1455121800340994207[36] = 0; out_1455121800340994207[37] = 0; out_1455121800340994207[38] = 0; out_1455121800340994207[39] = 0; out_1455121800340994207[40] = 0; out_1455121800340994207[41] = 0; out_1455121800340994207[42] = 0; out_1455121800340994207[43] = 0; out_1455121800340994207[44] = 1.0; out_1455121800340994207[45] = 0; out_1455121800340994207[46] = 0; out_1455121800340994207[47] = 0; out_1455121800340994207[48] = 0; out_1455121800340994207[49] = 0; out_1455121800340994207[50] = 0; out_1455121800340994207[51] = 0; out_1455121800340994207[52] = 0; out_1455121800340994207[53] = 0; out_1455121800340994207[54] = 0; out_1455121800340994207[55] = 0; out_1455121800340994207[56] = 0; out_1455121800340994207[57] = 0; out_1455121800340994207[58] = 0; out_1455121800340994207[59] = 0; out_1455121800340994207[60] = 0; out_1455121800340994207[61] = 0; out_1455121800340994207[62] = 0; out_1455121800340994207[63] = 0; out_1455121800340994207[64] = 0; out_1455121800340994207[65] = 0; out_1455121800340994207[66] = -0.5*state[4]; out_1455121800340994207[67] = -0.5*state[5]; out_1455121800340994207[68] = -0.5*state[6]; out_1455121800340994207[69] = 0; out_1455121800340994207[70] = 0; out_1455121800340994207[71] = 0; out_1455121800340994207[72] = 0; out_1455121800340994207[73] = 0; out_1455121800340994207[74] = 0; out_1455121800340994207[75] = 0; out_1455121800340994207[76] = 0; out_1455121800340994207[77] = 0; out_1455121800340994207[78] = 0; out_1455121800340994207[79] = 0; out_1455121800340994207[80] = 0; out_1455121800340994207[81] = 0; out_1455121800340994207[82] = 0; out_1455121800340994207[83] = 0; out_1455121800340994207[84] = 0; out_1455121800340994207[85] = 0; out_1455121800340994207[86] = 0; out_1455121800340994207[87] = 0.5*state[3]; out_1455121800340994207[88] = 0.5*state[6]; out_1455121800340994207[89] = -0.5*state[5]; out_1455121800340994207[90] = 0; out_1455121800340994207[91] = 0; out_1455121800340994207[92] = 0; out_1455121800340994207[93] = 0; out_1455121800340994207[94] = 0; out_1455121800340994207[95] = 0; out_1455121800340994207[96] = 0; out_1455121800340994207[97] = 0; out_1455121800340994207[98] = 0; out_1455121800340994207[99] = 0; out_1455121800340994207[100] = 0; out_1455121800340994207[101] = 0; out_1455121800340994207[102] = 0; out_1455121800340994207[103] = 0; out_1455121800340994207[104] = 0; out_1455121800340994207[105] = 0; out_1455121800340994207[106] = 0; out_1455121800340994207[107] = 0; out_1455121800340994207[108] = -0.5*state[6]; out_1455121800340994207[109] = 0.5*state[3]; out_1455121800340994207[110] = 0.5*state[4]; out_1455121800340994207[111] = 0; out_1455121800340994207[112] = 0; out_1455121800340994207[113] = 0; out_1455121800340994207[114] = 0; out_1455121800340994207[115] = 0; out_1455121800340994207[116] = 0; out_1455121800340994207[117] = 0; out_1455121800340994207[118] = 0; out_1455121800340994207[119] = 0; out_1455121800340994207[120] = 0; out_1455121800340994207[121] = 0; out_1455121800340994207[122] = 0; out_1455121800340994207[123] = 0; out_1455121800340994207[124] = 0; out_1455121800340994207[125] = 0; out_1455121800340994207[126] = 0; out_1455121800340994207[127] = 0; out_1455121800340994207[128] = 0; out_1455121800340994207[129] = 0.5*state[5]; out_1455121800340994207[130] = -0.5*state[4]; out_1455121800340994207[131] = 0.5*state[3]; out_1455121800340994207[132] = 0; out_1455121800340994207[133] = 0; out_1455121800340994207[134] = 0; out_1455121800340994207[135] = 0; out_1455121800340994207[136] = 0; out_1455121800340994207[137] = 0; out_1455121800340994207[138] = 0; out_1455121800340994207[139] = 0; out_1455121800340994207[140] = 0; out_1455121800340994207[141] = 0; out_1455121800340994207[142] = 0; out_1455121800340994207[143] = 0; out_1455121800340994207[144] = 0; out_1455121800340994207[145] = 0; out_1455121800340994207[146] = 0; out_1455121800340994207[147] = 0; out_1455121800340994207[148] = 0; out_1455121800340994207[149] = 0; out_1455121800340994207[150] = 0; out_1455121800340994207[151] = 0; out_1455121800340994207[152] = 0; out_1455121800340994207[153] = 1.0; out_1455121800340994207[154] = 0; out_1455121800340994207[155] = 0; out_1455121800340994207[156] = 0; out_1455121800340994207[157] = 0; out_1455121800340994207[158] = 0; out_1455121800340994207[159] = 0; out_1455121800340994207[160] = 0; out_1455121800340994207[161] = 0; out_1455121800340994207[162] = 0; out_1455121800340994207[163] = 0; out_1455121800340994207[164] = 0; out_1455121800340994207[165] = 0; out_1455121800340994207[166] = 0; out_1455121800340994207[167] = 0; out_1455121800340994207[168] = 0; out_1455121800340994207[169] = 0; out_1455121800340994207[170] = 0; out_1455121800340994207[171] = 0; out_1455121800340994207[172] = 0; out_1455121800340994207[173] = 0; out_1455121800340994207[174] = 0; out_1455121800340994207[175] = 1.0; out_1455121800340994207[176] = 0; out_1455121800340994207[177] = 0; out_1455121800340994207[178] = 0; out_1455121800340994207[179] = 0; out_1455121800340994207[180] = 0; out_1455121800340994207[181] = 0; out_1455121800340994207[182] = 0; out_1455121800340994207[183] = 0; out_1455121800340994207[184] = 0; out_1455121800340994207[185] = 0; out_1455121800340994207[186] = 0; out_1455121800340994207[187] = 0; out_1455121800340994207[188] = 0; out_1455121800340994207[189] = 0; out_1455121800340994207[190] = 0; out_1455121800340994207[191] = 0; out_1455121800340994207[192] = 0; out_1455121800340994207[193] = 0; out_1455121800340994207[194] = 0; out_1455121800340994207[195] = 0; out_1455121800340994207[196] = 0; out_1455121800340994207[197] = 1.0; out_1455121800340994207[198] = 0; out_1455121800340994207[199] = 0; out_1455121800340994207[200] = 0; out_1455121800340994207[201] = 0; out_1455121800340994207[202] = 0; out_1455121800340994207[203] = 0; out_1455121800340994207[204] = 0; out_1455121800340994207[205] = 0; out_1455121800340994207[206] = 0; out_1455121800340994207[207] = 0; out_1455121800340994207[208] = 0; out_1455121800340994207[209] = 0; out_1455121800340994207[210] = 0; out_1455121800340994207[211] = 0; out_1455121800340994207[212] = 0; out_1455121800340994207[213] = 0; out_1455121800340994207[214] = 0; out_1455121800340994207[215] = 0; out_1455121800340994207[216] = 0; out_1455121800340994207[217] = 0; out_1455121800340994207[218] = 0; out_1455121800340994207[219] = 1.0; out_1455121800340994207[220] = 0; out_1455121800340994207[221] = 0; out_1455121800340994207[222] = 0; out_1455121800340994207[223] = 0; out_1455121800340994207[224] = 0; out_1455121800340994207[225] = 0; out_1455121800340994207[226] = 0; out_1455121800340994207[227] = 0; out_1455121800340994207[228] = 0; out_1455121800340994207[229] = 0; out_1455121800340994207[230] = 0; out_1455121800340994207[231] = 0; out_1455121800340994207[232] = 0; out_1455121800340994207[233] = 0; out_1455121800340994207[234] = 0; out_1455121800340994207[235] = 0; out_1455121800340994207[236] = 0; out_1455121800340994207[237] = 0; out_1455121800340994207[238] = 0; out_1455121800340994207[239] = 0; out_1455121800340994207[240] = 0; out_1455121800340994207[241] = 1.0; out_1455121800340994207[242] = 0; out_1455121800340994207[243] = 0; out_1455121800340994207[244] = 0; out_1455121800340994207[245] = 0; out_1455121800340994207[246] = 0; out_1455121800340994207[247] = 0; out_1455121800340994207[248] = 0; out_1455121800340994207[249] = 0; out_1455121800340994207[250] = 0; out_1455121800340994207[251] = 0; out_1455121800340994207[252] = 0; out_1455121800340994207[253] = 0; out_1455121800340994207[254] = 0; out_1455121800340994207[255] = 0; out_1455121800340994207[256] = 0; out_1455121800340994207[257] = 0; out_1455121800340994207[258] = 0; out_1455121800340994207[259] = 0; out_1455121800340994207[260] = 0; out_1455121800340994207[261] = 0; out_1455121800340994207[262] = 0; out_1455121800340994207[263] = 1.0; out_1455121800340994207[264] = 0; out_1455121800340994207[265] = 0; out_1455121800340994207[266] = 0; out_1455121800340994207[267] = 0; out_1455121800340994207[268] = 0; out_1455121800340994207[269] = 0; out_1455121800340994207[270] = 0; out_1455121800340994207[271] = 0; out_1455121800340994207[272] = 0; out_1455121800340994207[273] = 0; out_1455121800340994207[274] = 0; out_1455121800340994207[275] = 0; out_1455121800340994207[276] = 0; out_1455121800340994207[277] = 0; out_1455121800340994207[278] = 0; out_1455121800340994207[279] = 0; out_1455121800340994207[280] = 0; out_1455121800340994207[281] = 0; out_1455121800340994207[282] = 0; out_1455121800340994207[283] = 0; out_1455121800340994207[284] = 0; out_1455121800340994207[285] = 1.0; out_1455121800340994207[286] = 0; out_1455121800340994207[287] = 0; out_1455121800340994207[288] = 0; out_1455121800340994207[289] = 0; out_1455121800340994207[290] = 0; out_1455121800340994207[291] = 0; out_1455121800340994207[292] = 0; out_1455121800340994207[293] = 0; out_1455121800340994207[294] = 0; out_1455121800340994207[295] = 0; out_1455121800340994207[296] = 0; out_1455121800340994207[297] = 0; out_1455121800340994207[298] = 0; out_1455121800340994207[299] = 0; out_1455121800340994207[300] = 0; out_1455121800340994207[301] = 0; out_1455121800340994207[302] = 0; out_1455121800340994207[303] = 0; out_1455121800340994207[304] = 0; out_1455121800340994207[305] = 0; out_1455121800340994207[306] = 0; out_1455121800340994207[307] = 1.0; out_1455121800340994207[308] = 0; out_1455121800340994207[309] = 0; out_1455121800340994207[310] = 0; out_1455121800340994207[311] = 0; out_1455121800340994207[312] = 0; out_1455121800340994207[313] = 0; out_1455121800340994207[314] = 0; out_1455121800340994207[315] = 0; out_1455121800340994207[316] = 0; out_1455121800340994207[317] = 0; out_1455121800340994207[318] = 0; out_1455121800340994207[319] = 0; out_1455121800340994207[320] = 0; out_1455121800340994207[321] = 0; out_1455121800340994207[322] = 0; out_1455121800340994207[323] = 0; out_1455121800340994207[324] = 0; out_1455121800340994207[325] = 0; out_1455121800340994207[326] = 0; out_1455121800340994207[327] = 0; out_1455121800340994207[328] = 0; out_1455121800340994207[329] = 1.0; out_1455121800340994207[330] = 0; out_1455121800340994207[331] = 0; out_1455121800340994207[332] = 0; out_1455121800340994207[333] = 0; out_1455121800340994207[334] = 0; out_1455121800340994207[335] = 0; out_1455121800340994207[336] = 0; out_1455121800340994207[337] = 0; out_1455121800340994207[338] = 0; out_1455121800340994207[339] = 0; out_1455121800340994207[340] = 0; out_1455121800340994207[341] = 0; out_1455121800340994207[342] = 0; out_1455121800340994207[343] = 0; out_1455121800340994207[344] = 0; out_1455121800340994207[345] = 0; out_1455121800340994207[346] = 0; out_1455121800340994207[347] = 0; out_1455121800340994207[348] = 0; out_1455121800340994207[349] = 0; out_1455121800340994207[350] = 0; out_1455121800340994207[351] = 1.0; out_1455121800340994207[352] = 0; out_1455121800340994207[353] = 0; out_1455121800340994207[354] = 0; out_1455121800340994207[355] = 0; out_1455121800340994207[356] = 0; out_1455121800340994207[357] = 0; out_1455121800340994207[358] = 0; out_1455121800340994207[359] = 0; out_1455121800340994207[360] = 0; out_1455121800340994207[361] = 0; out_1455121800340994207[362] = 0; out_1455121800340994207[363] = 0; out_1455121800340994207[364] = 0; out_1455121800340994207[365] = 0; out_1455121800340994207[366] = 0; out_1455121800340994207[367] = 0; out_1455121800340994207[368] = 0; out_1455121800340994207[369] = 0; out_1455121800340994207[370] = 0; out_1455121800340994207[371] = 0; out_1455121800340994207[372] = 0; out_1455121800340994207[373] = 1.0; out_1455121800340994207[374] = 0; out_1455121800340994207[375] = 0; out_1455121800340994207[376] = 0; out_1455121800340994207[377] = 0; out_1455121800340994207[378] = 0; out_1455121800340994207[379] = 0; out_1455121800340994207[380] = 0; out_1455121800340994207[381] = 0; out_1455121800340994207[382] = 0; out_1455121800340994207[383] = 0; out_1455121800340994207[384] = 0; out_1455121800340994207[385] = 0; out_1455121800340994207[386] = 0; out_1455121800340994207[387] = 0; out_1455121800340994207[388] = 0; out_1455121800340994207[389] = 0; out_1455121800340994207[390] = 0; out_1455121800340994207[391] = 0; out_1455121800340994207[392] = 0; out_1455121800340994207[393] = 0; out_1455121800340994207[394] = 0; out_1455121800340994207[395] = 1.0; out_1455121800340994207[396] = 0; out_1455121800340994207[397] = 0; out_1455121800340994207[398] = 0; out_1455121800340994207[399] = 0; out_1455121800340994207[400] = 0; out_1455121800340994207[401] = 0; out_1455121800340994207[402] = 0; out_1455121800340994207[403] = 0; out_1455121800340994207[404] = 0; out_1455121800340994207[405] = 0; out_1455121800340994207[406] = 0; out_1455121800340994207[407] = 0; out_1455121800340994207[408] = 0; out_1455121800340994207[409] = 0; out_1455121800340994207[410] = 0; out_1455121800340994207[411] = 0; out_1455121800340994207[412] = 0; out_1455121800340994207[413] = 0; out_1455121800340994207[414] = 0; out_1455121800340994207[415] = 0; out_1455121800340994207[416] = 0; out_1455121800340994207[417] = 1.0; out_1455121800340994207[418] = 0; out_1455121800340994207[419] = 0; out_1455121800340994207[420] = 0; out_1455121800340994207[421] = 0; out_1455121800340994207[422] = 0; out_1455121800340994207[423] = 0; out_1455121800340994207[424] = 0; out_1455121800340994207[425] = 0; out_1455121800340994207[426] = 0; out_1455121800340994207[427] = 0; out_1455121800340994207[428] = 0; out_1455121800340994207[429] = 0; out_1455121800340994207[430] = 0; out_1455121800340994207[431] = 0; out_1455121800340994207[432] = 0; out_1455121800340994207[433] = 0; out_1455121800340994207[434] = 0; out_1455121800340994207[435] = 0; out_1455121800340994207[436] = 0; out_1455121800340994207[437] = 0; out_1455121800340994207[438] = 0; out_1455121800340994207[439] = 1.0; out_1455121800340994207[440] = 0; out_1455121800340994207[441] = 0; out_1455121800340994207[442] = 0; out_1455121800340994207[443] = 0; out_1455121800340994207[444] = 0; out_1455121800340994207[445] = 0; out_1455121800340994207[446] = 0; out_1455121800340994207[447] = 0; out_1455121800340994207[448] = 0; out_1455121800340994207[449] = 0; out_1455121800340994207[450] = 0; out_1455121800340994207[451] = 0; out_1455121800340994207[452] = 0; out_1455121800340994207[453] = 0; out_1455121800340994207[454] = 0; out_1455121800340994207[455] = 0; out_1455121800340994207[456] = 0; out_1455121800340994207[457] = 0; out_1455121800340994207[458] = 0; out_1455121800340994207[459] = 0; out_1455121800340994207[460] = 0; out_1455121800340994207[461] = 1.0; } void f_fun(double *state, double dt, double *out_7760840852727347336) { out_7760840852727347336[0] = dt*state[7] + state[0]; out_7760840852727347336[1] = dt*state[8] + state[1]; out_7760840852727347336[2] = dt*state[9] + state[2]; out_7760840852727347336[3] = dt*(-0.5*state[4]*state[10] - 0.5*state[5]*state[11] - 0.5*state[6]*state[12]) + state[3]; out_7760840852727347336[4] = dt*(0.5*state[3]*state[10] + 0.5*state[5]*state[12] - 0.5*state[6]*state[11]) + state[4]; out_7760840852727347336[5] = dt*(0.5*state[3]*state[11] - 0.5*state[4]*state[12] + 0.5*state[6]*state[10]) + state[5]; out_7760840852727347336[6] = dt*(0.5*state[3]*state[12] + 0.5*state[4]*state[11] - 0.5*state[5]*state[10]) + state[6]; out_7760840852727347336[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_7760840852727347336[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_7760840852727347336[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_7760840852727347336[10] = state[10]; out_7760840852727347336[11] = state[11]; out_7760840852727347336[12] = state[12]; out_7760840852727347336[13] = state[13]; out_7760840852727347336[14] = state[14]; out_7760840852727347336[15] = state[15]; out_7760840852727347336[16] = state[16]; out_7760840852727347336[17] = state[17]; out_7760840852727347336[18] = state[18]; out_7760840852727347336[19] = state[19]; out_7760840852727347336[20] = state[20]; out_7760840852727347336[21] = state[21]; } void F_fun(double *state, double dt, double *out_5904092994272526580) { out_5904092994272526580[0] = 1; out_5904092994272526580[1] = 0; out_5904092994272526580[2] = 0; out_5904092994272526580[3] = 0; out_5904092994272526580[4] = 0; out_5904092994272526580[5] = 0; out_5904092994272526580[6] = dt; out_5904092994272526580[7] = 0; out_5904092994272526580[8] = 0; out_5904092994272526580[9] = 0; out_5904092994272526580[10] = 0; out_5904092994272526580[11] = 0; out_5904092994272526580[12] = 0; out_5904092994272526580[13] = 0; out_5904092994272526580[14] = 0; out_5904092994272526580[15] = 0; out_5904092994272526580[16] = 0; out_5904092994272526580[17] = 0; out_5904092994272526580[18] = 0; out_5904092994272526580[19] = 0; out_5904092994272526580[20] = 0; out_5904092994272526580[21] = 0; out_5904092994272526580[22] = 1; out_5904092994272526580[23] = 0; out_5904092994272526580[24] = 0; out_5904092994272526580[25] = 0; out_5904092994272526580[26] = 0; out_5904092994272526580[27] = 0; out_5904092994272526580[28] = dt; out_5904092994272526580[29] = 0; out_5904092994272526580[30] = 0; out_5904092994272526580[31] = 0; out_5904092994272526580[32] = 0; out_5904092994272526580[33] = 0; out_5904092994272526580[34] = 0; out_5904092994272526580[35] = 0; out_5904092994272526580[36] = 0; out_5904092994272526580[37] = 0; out_5904092994272526580[38] = 0; out_5904092994272526580[39] = 0; out_5904092994272526580[40] = 0; out_5904092994272526580[41] = 0; out_5904092994272526580[42] = 0; out_5904092994272526580[43] = 0; out_5904092994272526580[44] = 1; out_5904092994272526580[45] = 0; out_5904092994272526580[46] = 0; out_5904092994272526580[47] = 0; out_5904092994272526580[48] = 0; out_5904092994272526580[49] = 0; out_5904092994272526580[50] = dt; out_5904092994272526580[51] = 0; out_5904092994272526580[52] = 0; out_5904092994272526580[53] = 0; out_5904092994272526580[54] = 0; out_5904092994272526580[55] = 0; out_5904092994272526580[56] = 0; out_5904092994272526580[57] = 0; out_5904092994272526580[58] = 0; out_5904092994272526580[59] = 0; out_5904092994272526580[60] = 0; out_5904092994272526580[61] = 0; out_5904092994272526580[62] = 0; out_5904092994272526580[63] = 0; out_5904092994272526580[64] = 0; out_5904092994272526580[65] = 0; out_5904092994272526580[66] = 1; out_5904092994272526580[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_5904092994272526580[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_5904092994272526580[69] = 0; out_5904092994272526580[70] = 0; out_5904092994272526580[71] = 0; out_5904092994272526580[72] = dt*(pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2)); out_5904092994272526580[73] = dt*(-2*state[3]*state[6] + 2*state[4]*state[5]); out_5904092994272526580[74] = dt*(2*state[3]*state[5] + 2*state[4]*state[6]); out_5904092994272526580[75] = 0; out_5904092994272526580[76] = 0; out_5904092994272526580[77] = 0; out_5904092994272526580[78] = 0; out_5904092994272526580[79] = 0; out_5904092994272526580[80] = 0; out_5904092994272526580[81] = 0; out_5904092994272526580[82] = 0; out_5904092994272526580[83] = 0; out_5904092994272526580[84] = 0; out_5904092994272526580[85] = 0; out_5904092994272526580[86] = 0; out_5904092994272526580[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_5904092994272526580[88] = 1; out_5904092994272526580[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_5904092994272526580[90] = 0; out_5904092994272526580[91] = 0; out_5904092994272526580[92] = 0; out_5904092994272526580[93] = dt*(2*state[3]*state[6] + 2*state[4]*state[5]); out_5904092994272526580[94] = dt*(pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2)); out_5904092994272526580[95] = dt*(-2*state[3]*state[4] + 2*state[5]*state[6]); out_5904092994272526580[96] = 0; out_5904092994272526580[97] = 0; out_5904092994272526580[98] = 0; out_5904092994272526580[99] = 0; out_5904092994272526580[100] = 0; out_5904092994272526580[101] = 0; out_5904092994272526580[102] = 0; out_5904092994272526580[103] = 0; out_5904092994272526580[104] = 0; out_5904092994272526580[105] = 0; out_5904092994272526580[106] = 0; out_5904092994272526580[107] = 0; out_5904092994272526580[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_5904092994272526580[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_5904092994272526580[110] = 1; out_5904092994272526580[111] = 0; out_5904092994272526580[112] = 0; out_5904092994272526580[113] = 0; out_5904092994272526580[114] = dt*(-2*state[3]*state[5] + 2*state[4]*state[6]); out_5904092994272526580[115] = dt*(2*state[3]*state[4] + 2*state[5]*state[6]); out_5904092994272526580[116] = dt*(pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2)); out_5904092994272526580[117] = 0; out_5904092994272526580[118] = 0; out_5904092994272526580[119] = 0; out_5904092994272526580[120] = 0; out_5904092994272526580[121] = 0; out_5904092994272526580[122] = 0; out_5904092994272526580[123] = 0; out_5904092994272526580[124] = 0; out_5904092994272526580[125] = 0; out_5904092994272526580[126] = 0; out_5904092994272526580[127] = 0; out_5904092994272526580[128] = 0; out_5904092994272526580[129] = 0; out_5904092994272526580[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_5904092994272526580[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_5904092994272526580[132] = 1; out_5904092994272526580[133] = 0; out_5904092994272526580[134] = 0; out_5904092994272526580[135] = 0; out_5904092994272526580[136] = 0; out_5904092994272526580[137] = 0; out_5904092994272526580[138] = 0; out_5904092994272526580[139] = 0; out_5904092994272526580[140] = 0; out_5904092994272526580[141] = dt*(pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2)); out_5904092994272526580[142] = dt*(-2*state[3]*state[6] + 2*state[4]*state[5]); out_5904092994272526580[143] = dt*(2*state[3]*state[5] + 2*state[4]*state[6]); out_5904092994272526580[144] = 0; out_5904092994272526580[145] = 0; out_5904092994272526580[146] = 0; out_5904092994272526580[147] = 0; out_5904092994272526580[148] = 0; out_5904092994272526580[149] = 0; out_5904092994272526580[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_5904092994272526580[151] = 0; out_5904092994272526580[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_5904092994272526580[153] = 0; out_5904092994272526580[154] = 1; out_5904092994272526580[155] = 0; out_5904092994272526580[156] = 0; out_5904092994272526580[157] = 0; out_5904092994272526580[158] = 0; out_5904092994272526580[159] = 0; out_5904092994272526580[160] = 0; out_5904092994272526580[161] = 0; out_5904092994272526580[162] = dt*(2*state[3]*state[6] + 2*state[4]*state[5]); out_5904092994272526580[163] = dt*(pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2)); out_5904092994272526580[164] = dt*(-2*state[3]*state[4] + 2*state[5]*state[6]); out_5904092994272526580[165] = 0; out_5904092994272526580[166] = 0; out_5904092994272526580[167] = 0; out_5904092994272526580[168] = 0; out_5904092994272526580[169] = 0; out_5904092994272526580[170] = 0; out_5904092994272526580[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_5904092994272526580[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_5904092994272526580[173] = 0; out_5904092994272526580[174] = 0; out_5904092994272526580[175] = 0; out_5904092994272526580[176] = 1; out_5904092994272526580[177] = 0; out_5904092994272526580[178] = 0; out_5904092994272526580[179] = 0; out_5904092994272526580[180] = 0; out_5904092994272526580[181] = 0; out_5904092994272526580[182] = 0; out_5904092994272526580[183] = dt*(-2*state[3]*state[5] + 2*state[4]*state[6]); out_5904092994272526580[184] = dt*(2*state[3]*state[4] + 2*state[5]*state[6]); out_5904092994272526580[185] = dt*(pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2)); out_5904092994272526580[186] = 0; out_5904092994272526580[187] = 0; out_5904092994272526580[188] = 0; out_5904092994272526580[189] = 0; out_5904092994272526580[190] = 0; out_5904092994272526580[191] = 0; out_5904092994272526580[192] = 0; out_5904092994272526580[193] = 0; out_5904092994272526580[194] = 0; out_5904092994272526580[195] = 0; out_5904092994272526580[196] = 0; out_5904092994272526580[197] = 0; out_5904092994272526580[198] = 1; out_5904092994272526580[199] = 0; out_5904092994272526580[200] = 0; out_5904092994272526580[201] = 0; out_5904092994272526580[202] = 0; out_5904092994272526580[203] = 0; out_5904092994272526580[204] = 0; out_5904092994272526580[205] = 0; out_5904092994272526580[206] = 0; out_5904092994272526580[207] = 0; out_5904092994272526580[208] = 0; out_5904092994272526580[209] = 0; out_5904092994272526580[210] = 0; out_5904092994272526580[211] = 0; out_5904092994272526580[212] = 0; out_5904092994272526580[213] = 0; out_5904092994272526580[214] = 0; out_5904092994272526580[215] = 0; out_5904092994272526580[216] = 0; out_5904092994272526580[217] = 0; out_5904092994272526580[218] = 0; out_5904092994272526580[219] = 0; out_5904092994272526580[220] = 1; out_5904092994272526580[221] = 0; out_5904092994272526580[222] = 0; out_5904092994272526580[223] = 0; out_5904092994272526580[224] = 0; out_5904092994272526580[225] = 0; out_5904092994272526580[226] = 0; out_5904092994272526580[227] = 0; out_5904092994272526580[228] = 0; out_5904092994272526580[229] = 0; out_5904092994272526580[230] = 0; out_5904092994272526580[231] = 0; out_5904092994272526580[232] = 0; out_5904092994272526580[233] = 0; out_5904092994272526580[234] = 0; out_5904092994272526580[235] = 0; out_5904092994272526580[236] = 0; out_5904092994272526580[237] = 0; out_5904092994272526580[238] = 0; out_5904092994272526580[239] = 0; out_5904092994272526580[240] = 0; out_5904092994272526580[241] = 0; out_5904092994272526580[242] = 1; out_5904092994272526580[243] = 0; out_5904092994272526580[244] = 0; out_5904092994272526580[245] = 0; out_5904092994272526580[246] = 0; out_5904092994272526580[247] = 0; out_5904092994272526580[248] = 0; out_5904092994272526580[249] = 0; out_5904092994272526580[250] = 0; out_5904092994272526580[251] = 0; out_5904092994272526580[252] = 0; out_5904092994272526580[253] = 0; out_5904092994272526580[254] = 0; out_5904092994272526580[255] = 0; out_5904092994272526580[256] = 0; out_5904092994272526580[257] = 0; out_5904092994272526580[258] = 0; out_5904092994272526580[259] = 0; out_5904092994272526580[260] = 0; out_5904092994272526580[261] = 0; out_5904092994272526580[262] = 0; out_5904092994272526580[263] = 0; out_5904092994272526580[264] = 1; out_5904092994272526580[265] = 0; out_5904092994272526580[266] = 0; out_5904092994272526580[267] = 0; out_5904092994272526580[268] = 0; out_5904092994272526580[269] = 0; out_5904092994272526580[270] = 0; out_5904092994272526580[271] = 0; out_5904092994272526580[272] = 0; out_5904092994272526580[273] = 0; out_5904092994272526580[274] = 0; out_5904092994272526580[275] = 0; out_5904092994272526580[276] = 0; out_5904092994272526580[277] = 0; out_5904092994272526580[278] = 0; out_5904092994272526580[279] = 0; out_5904092994272526580[280] = 0; out_5904092994272526580[281] = 0; out_5904092994272526580[282] = 0; out_5904092994272526580[283] = 0; out_5904092994272526580[284] = 0; out_5904092994272526580[285] = 0; out_5904092994272526580[286] = 1; out_5904092994272526580[287] = 0; out_5904092994272526580[288] = 0; out_5904092994272526580[289] = 0; out_5904092994272526580[290] = 0; out_5904092994272526580[291] = 0; out_5904092994272526580[292] = 0; out_5904092994272526580[293] = 0; out_5904092994272526580[294] = 0; out_5904092994272526580[295] = 0; out_5904092994272526580[296] = 0; out_5904092994272526580[297] = 0; out_5904092994272526580[298] = 0; out_5904092994272526580[299] = 0; out_5904092994272526580[300] = 0; out_5904092994272526580[301] = 0; out_5904092994272526580[302] = 0; out_5904092994272526580[303] = 0; out_5904092994272526580[304] = 0; out_5904092994272526580[305] = 0; out_5904092994272526580[306] = 0; out_5904092994272526580[307] = 0; out_5904092994272526580[308] = 1; out_5904092994272526580[309] = 0; out_5904092994272526580[310] = 0; out_5904092994272526580[311] = 0; out_5904092994272526580[312] = 0; out_5904092994272526580[313] = 0; out_5904092994272526580[314] = 0; out_5904092994272526580[315] = 0; out_5904092994272526580[316] = 0; out_5904092994272526580[317] = 0; out_5904092994272526580[318] = 0; out_5904092994272526580[319] = 0; out_5904092994272526580[320] = 0; out_5904092994272526580[321] = 0; out_5904092994272526580[322] = 0; out_5904092994272526580[323] = 0; out_5904092994272526580[324] = 0; out_5904092994272526580[325] = 0; out_5904092994272526580[326] = 0; out_5904092994272526580[327] = 0; out_5904092994272526580[328] = 0; out_5904092994272526580[329] = 0; out_5904092994272526580[330] = 1; out_5904092994272526580[331] = 0; out_5904092994272526580[332] = 0; out_5904092994272526580[333] = 0; out_5904092994272526580[334] = 0; out_5904092994272526580[335] = 0; out_5904092994272526580[336] = 0; out_5904092994272526580[337] = 0; out_5904092994272526580[338] = 0; out_5904092994272526580[339] = 0; out_5904092994272526580[340] = 0; out_5904092994272526580[341] = 0; out_5904092994272526580[342] = 0; out_5904092994272526580[343] = 0; out_5904092994272526580[344] = 0; out_5904092994272526580[345] = 0; out_5904092994272526580[346] = 0; out_5904092994272526580[347] = 0; out_5904092994272526580[348] = 0; out_5904092994272526580[349] = 0; out_5904092994272526580[350] = 0; out_5904092994272526580[351] = 0; out_5904092994272526580[352] = 1; out_5904092994272526580[353] = 0; out_5904092994272526580[354] = 0; out_5904092994272526580[355] = 0; out_5904092994272526580[356] = 0; out_5904092994272526580[357] = 0; out_5904092994272526580[358] = 0; out_5904092994272526580[359] = 0; out_5904092994272526580[360] = 0; out_5904092994272526580[361] = 0; out_5904092994272526580[362] = 0; out_5904092994272526580[363] = 0; out_5904092994272526580[364] = 0; out_5904092994272526580[365] = 0; out_5904092994272526580[366] = 0; out_5904092994272526580[367] = 0; out_5904092994272526580[368] = 0; out_5904092994272526580[369] = 0; out_5904092994272526580[370] = 0; out_5904092994272526580[371] = 0; out_5904092994272526580[372] = 0; out_5904092994272526580[373] = 0; out_5904092994272526580[374] = 1; out_5904092994272526580[375] = 0; out_5904092994272526580[376] = 0; out_5904092994272526580[377] = 0; out_5904092994272526580[378] = 0; out_5904092994272526580[379] = 0; out_5904092994272526580[380] = 0; out_5904092994272526580[381] = 0; out_5904092994272526580[382] = 0; out_5904092994272526580[383] = 0; out_5904092994272526580[384] = 0; out_5904092994272526580[385] = 0; out_5904092994272526580[386] = 0; out_5904092994272526580[387] = 0; out_5904092994272526580[388] = 0; out_5904092994272526580[389] = 0; out_5904092994272526580[390] = 0; out_5904092994272526580[391] = 0; out_5904092994272526580[392] = 0; out_5904092994272526580[393] = 0; out_5904092994272526580[394] = 0; out_5904092994272526580[395] = 0; out_5904092994272526580[396] = 1; out_5904092994272526580[397] = 0; out_5904092994272526580[398] = 0; out_5904092994272526580[399] = 0; out_5904092994272526580[400] = 0; out_5904092994272526580[401] = 0; out_5904092994272526580[402] = 0; out_5904092994272526580[403] = 0; out_5904092994272526580[404] = 0; out_5904092994272526580[405] = 0; out_5904092994272526580[406] = 0; out_5904092994272526580[407] = 0; out_5904092994272526580[408] = 0; out_5904092994272526580[409] = 0; out_5904092994272526580[410] = 0; out_5904092994272526580[411] = 0; out_5904092994272526580[412] = 0; out_5904092994272526580[413] = 0; out_5904092994272526580[414] = 0; out_5904092994272526580[415] = 0; out_5904092994272526580[416] = 0; out_5904092994272526580[417] = 0; out_5904092994272526580[418] = 1; out_5904092994272526580[419] = 0; out_5904092994272526580[420] = 0; out_5904092994272526580[421] = 0; out_5904092994272526580[422] = 0; out_5904092994272526580[423] = 0; out_5904092994272526580[424] = 0; out_5904092994272526580[425] = 0; out_5904092994272526580[426] = 0; out_5904092994272526580[427] = 0; out_5904092994272526580[428] = 0; out_5904092994272526580[429] = 0; out_5904092994272526580[430] = 0; out_5904092994272526580[431] = 0; out_5904092994272526580[432] = 0; out_5904092994272526580[433] = 0; out_5904092994272526580[434] = 0; out_5904092994272526580[435] = 0; out_5904092994272526580[436] = 0; out_5904092994272526580[437] = 0; out_5904092994272526580[438] = 0; out_5904092994272526580[439] = 0; out_5904092994272526580[440] = 1; } void h_4(double *state, double *unused, double *out_683673907898961342) { out_683673907898961342[0] = state[10] + state[13]; out_683673907898961342[1] = state[11] + state[14]; out_683673907898961342[2] = state[12] + state[15]; } void H_4(double *state, double *unused, double *out_6985725737682539694) { out_6985725737682539694[0] = 0; out_6985725737682539694[1] = 0; out_6985725737682539694[2] = 0; out_6985725737682539694[3] = 0; out_6985725737682539694[4] = 0; out_6985725737682539694[5] = 0; out_6985725737682539694[6] = 0; out_6985725737682539694[7] = 0; out_6985725737682539694[8] = 0; out_6985725737682539694[9] = 0; out_6985725737682539694[10] = 1; out_6985725737682539694[11] = 0; out_6985725737682539694[12] = 0; out_6985725737682539694[13] = 1; out_6985725737682539694[14] = 0; out_6985725737682539694[15] = 0; out_6985725737682539694[16] = 0; out_6985725737682539694[17] = 0; out_6985725737682539694[18] = 0; out_6985725737682539694[19] = 0; out_6985725737682539694[20] = 0; out_6985725737682539694[21] = 0; out_6985725737682539694[22] = 0; out_6985725737682539694[23] = 0; out_6985725737682539694[24] = 0; out_6985725737682539694[25] = 0; out_6985725737682539694[26] = 0; out_6985725737682539694[27] = 0; out_6985725737682539694[28] = 0; out_6985725737682539694[29] = 0; out_6985725737682539694[30] = 0; out_6985725737682539694[31] = 0; out_6985725737682539694[32] = 0; out_6985725737682539694[33] = 1; out_6985725737682539694[34] = 0; out_6985725737682539694[35] = 0; out_6985725737682539694[36] = 1; out_6985725737682539694[37] = 0; out_6985725737682539694[38] = 0; out_6985725737682539694[39] = 0; out_6985725737682539694[40] = 0; out_6985725737682539694[41] = 0; out_6985725737682539694[42] = 0; out_6985725737682539694[43] = 0; out_6985725737682539694[44] = 0; out_6985725737682539694[45] = 0; out_6985725737682539694[46] = 0; out_6985725737682539694[47] = 0; out_6985725737682539694[48] = 0; out_6985725737682539694[49] = 0; out_6985725737682539694[50] = 0; out_6985725737682539694[51] = 0; out_6985725737682539694[52] = 0; out_6985725737682539694[53] = 0; out_6985725737682539694[54] = 0; out_6985725737682539694[55] = 0; out_6985725737682539694[56] = 1; out_6985725737682539694[57] = 0; out_6985725737682539694[58] = 0; out_6985725737682539694[59] = 1; out_6985725737682539694[60] = 0; out_6985725737682539694[61] = 0; out_6985725737682539694[62] = 0; out_6985725737682539694[63] = 0; out_6985725737682539694[64] = 0; out_6985725737682539694[65] = 0; } void h_9(double *state, double *unused, double *out_3518367756339512630) { out_3518367756339512630[0] = state[10]; out_3518367756339512630[1] = state[11]; out_3518367756339512630[2] = state[12]; } void H_9(double *state, double *unused, double *out_6744536091052949049) { out_6744536091052949049[0] = 0; out_6744536091052949049[1] = 0; out_6744536091052949049[2] = 0; out_6744536091052949049[3] = 0; out_6744536091052949049[4] = 0; out_6744536091052949049[5] = 0; out_6744536091052949049[6] = 0; out_6744536091052949049[7] = 0; out_6744536091052949049[8] = 0; out_6744536091052949049[9] = 0; out_6744536091052949049[10] = 1; out_6744536091052949049[11] = 0; out_6744536091052949049[12] = 0; out_6744536091052949049[13] = 0; out_6744536091052949049[14] = 0; out_6744536091052949049[15] = 0; out_6744536091052949049[16] = 0; out_6744536091052949049[17] = 0; out_6744536091052949049[18] = 0; out_6744536091052949049[19] = 0; out_6744536091052949049[20] = 0; out_6744536091052949049[21] = 0; out_6744536091052949049[22] = 0; out_6744536091052949049[23] = 0; out_6744536091052949049[24] = 0; out_6744536091052949049[25] = 0; out_6744536091052949049[26] = 0; out_6744536091052949049[27] = 0; out_6744536091052949049[28] = 0; out_6744536091052949049[29] = 0; out_6744536091052949049[30] = 0; out_6744536091052949049[31] = 0; out_6744536091052949049[32] = 0; out_6744536091052949049[33] = 1; out_6744536091052949049[34] = 0; out_6744536091052949049[35] = 0; out_6744536091052949049[36] = 0; out_6744536091052949049[37] = 0; out_6744536091052949049[38] = 0; out_6744536091052949049[39] = 0; out_6744536091052949049[40] = 0; out_6744536091052949049[41] = 0; out_6744536091052949049[42] = 0; out_6744536091052949049[43] = 0; out_6744536091052949049[44] = 0; out_6744536091052949049[45] = 0; out_6744536091052949049[46] = 0; out_6744536091052949049[47] = 0; out_6744536091052949049[48] = 0; out_6744536091052949049[49] = 0; out_6744536091052949049[50] = 0; out_6744536091052949049[51] = 0; out_6744536091052949049[52] = 0; out_6744536091052949049[53] = 0; out_6744536091052949049[54] = 0; out_6744536091052949049[55] = 0; out_6744536091052949049[56] = 1; out_6744536091052949049[57] = 0; out_6744536091052949049[58] = 0; out_6744536091052949049[59] = 0; out_6744536091052949049[60] = 0; out_6744536091052949049[61] = 0; out_6744536091052949049[62] = 0; out_6744536091052949049[63] = 0; out_6744536091052949049[64] = 0; out_6744536091052949049[65] = 0; } void h_10(double *state, double *unused, double *out_1696460479858437053) { out_1696460479858437053[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_1696460479858437053[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_1696460479858437053[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]; } void H_10(double *state, double *unused, double *out_8475046284041961594) { out_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[7] = 0; out_8475046284041961594[8] = 0; out_8475046284041961594[9] = 0; out_8475046284041961594[10] = 0; out_8475046284041961594[11] = 0; out_8475046284041961594[12] = 0; out_8475046284041961594[13] = 0; out_8475046284041961594[14] = 0; out_8475046284041961594[15] = 0; out_8475046284041961594[16] = 1; out_8475046284041961594[17] = 0; out_8475046284041961594[18] = 0; out_8475046284041961594[19] = 1; out_8475046284041961594[20] = 0; out_8475046284041961594[21] = 0; out_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[29] = 0; out_8475046284041961594[30] = 0; out_8475046284041961594[31] = 0; out_8475046284041961594[32] = 0; out_8475046284041961594[33] = 0; out_8475046284041961594[34] = 0; out_8475046284041961594[35] = 0; out_8475046284041961594[36] = 0; out_8475046284041961594[37] = 0; out_8475046284041961594[38] = 0; out_8475046284041961594[39] = 1; out_8475046284041961594[40] = 0; out_8475046284041961594[41] = 0; out_8475046284041961594[42] = 1; out_8475046284041961594[43] = 0; out_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[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_8475046284041961594[51] = 0; out_8475046284041961594[52] = 0; out_8475046284041961594[53] = 0; out_8475046284041961594[54] = 0; out_8475046284041961594[55] = 0; out_8475046284041961594[56] = 0; out_8475046284041961594[57] = 0; out_8475046284041961594[58] = 0; out_8475046284041961594[59] = 0; out_8475046284041961594[60] = 0; out_8475046284041961594[61] = 0; out_8475046284041961594[62] = 1; out_8475046284041961594[63] = 0; out_8475046284041961594[64] = 0; out_8475046284041961594[65] = 1; } void h_12(double *state, double *unused, double *out_2563524166673299033) { out_2563524166673299033[0] = state[0]; out_2563524166673299033[1] = state[1]; out_2563524166673299033[2] = state[2]; } void H_12(double *state, double *unused, double *out_1966269329650577899) { out_1966269329650577899[0] = 1; out_1966269329650577899[1] = 0; out_1966269329650577899[2] = 0; out_1966269329650577899[3] = 0; out_1966269329650577899[4] = 0; out_1966269329650577899[5] = 0; out_1966269329650577899[6] = 0; out_1966269329650577899[7] = 0; out_1966269329650577899[8] = 0; out_1966269329650577899[9] = 0; out_1966269329650577899[10] = 0; out_1966269329650577899[11] = 0; out_1966269329650577899[12] = 0; out_1966269329650577899[13] = 0; out_1966269329650577899[14] = 0; out_1966269329650577899[15] = 0; out_1966269329650577899[16] = 0; out_1966269329650577899[17] = 0; out_1966269329650577899[18] = 0; out_1966269329650577899[19] = 0; out_1966269329650577899[20] = 0; out_1966269329650577899[21] = 0; out_1966269329650577899[22] = 0; out_1966269329650577899[23] = 1; out_1966269329650577899[24] = 0; out_1966269329650577899[25] = 0; out_1966269329650577899[26] = 0; out_1966269329650577899[27] = 0; out_1966269329650577899[28] = 0; out_1966269329650577899[29] = 0; out_1966269329650577899[30] = 0; out_1966269329650577899[31] = 0; out_1966269329650577899[32] = 0; out_1966269329650577899[33] = 0; out_1966269329650577899[34] = 0; out_1966269329650577899[35] = 0; out_1966269329650577899[36] = 0; out_1966269329650577899[37] = 0; out_1966269329650577899[38] = 0; out_1966269329650577899[39] = 0; out_1966269329650577899[40] = 0; out_1966269329650577899[41] = 0; out_1966269329650577899[42] = 0; out_1966269329650577899[43] = 0; out_1966269329650577899[44] = 0; out_1966269329650577899[45] = 0; out_1966269329650577899[46] = 1; out_1966269329650577899[47] = 0; out_1966269329650577899[48] = 0; out_1966269329650577899[49] = 0; out_1966269329650577899[50] = 0; out_1966269329650577899[51] = 0; out_1966269329650577899[52] = 0; out_1966269329650577899[53] = 0; out_1966269329650577899[54] = 0; out_1966269329650577899[55] = 0; out_1966269329650577899[56] = 0; out_1966269329650577899[57] = 0; out_1966269329650577899[58] = 0; out_1966269329650577899[59] = 0; out_1966269329650577899[60] = 0; out_1966269329650577899[61] = 0; out_1966269329650577899[62] = 0; out_1966269329650577899[63] = 0; out_1966269329650577899[64] = 0; out_1966269329650577899[65] = 0; } void h_35(double *state, double *unused, double *out_5427861829338939000) { out_5427861829338939000[0] = state[7]; out_5427861829338939000[1] = state[8]; out_5427861829338939000[2] = state[9]; } void H_35(double *state, double *unused, double *out_3619063680309932318) { out_3619063680309932318[0] = 0; out_3619063680309932318[1] = 0; out_3619063680309932318[2] = 0; out_3619063680309932318[3] = 0; out_3619063680309932318[4] = 0; out_3619063680309932318[5] = 0; out_3619063680309932318[6] = 0; out_3619063680309932318[7] = 1; out_3619063680309932318[8] = 0; out_3619063680309932318[9] = 0; out_3619063680309932318[10] = 0; out_3619063680309932318[11] = 0; out_3619063680309932318[12] = 0; out_3619063680309932318[13] = 0; out_3619063680309932318[14] = 0; out_3619063680309932318[15] = 0; out_3619063680309932318[16] = 0; out_3619063680309932318[17] = 0; out_3619063680309932318[18] = 0; out_3619063680309932318[19] = 0; out_3619063680309932318[20] = 0; out_3619063680309932318[21] = 0; out_3619063680309932318[22] = 0; out_3619063680309932318[23] = 0; out_3619063680309932318[24] = 0; out_3619063680309932318[25] = 0; out_3619063680309932318[26] = 0; out_3619063680309932318[27] = 0; out_3619063680309932318[28] = 0; out_3619063680309932318[29] = 0; out_3619063680309932318[30] = 1; out_3619063680309932318[31] = 0; out_3619063680309932318[32] = 0; out_3619063680309932318[33] = 0; out_3619063680309932318[34] = 0; out_3619063680309932318[35] = 0; out_3619063680309932318[36] = 0; out_3619063680309932318[37] = 0; out_3619063680309932318[38] = 0; out_3619063680309932318[39] = 0; out_3619063680309932318[40] = 0; out_3619063680309932318[41] = 0; out_3619063680309932318[42] = 0; out_3619063680309932318[43] = 0; out_3619063680309932318[44] = 0; out_3619063680309932318[45] = 0; out_3619063680309932318[46] = 0; out_3619063680309932318[47] = 0; out_3619063680309932318[48] = 0; out_3619063680309932318[49] = 0; out_3619063680309932318[50] = 0; out_3619063680309932318[51] = 0; out_3619063680309932318[52] = 0; out_3619063680309932318[53] = 1; out_3619063680309932318[54] = 0; out_3619063680309932318[55] = 0; out_3619063680309932318[56] = 0; out_3619063680309932318[57] = 0; out_3619063680309932318[58] = 0; out_3619063680309932318[59] = 0; out_3619063680309932318[60] = 0; out_3619063680309932318[61] = 0; out_3619063680309932318[62] = 0; out_3619063680309932318[63] = 0; out_3619063680309932318[64] = 0; out_3619063680309932318[65] = 0; } void h_32(double *state, double *unused, double *out_4559568879405682368) { out_4559568879405682368[0] = state[3]; out_4559568879405682368[1] = state[4]; out_4559568879405682368[2] = state[5]; out_4559568879405682368[3] = state[6]; } void H_32(double *state, double *unused, double *out_466672007786990782) { out_466672007786990782[0] = 0; out_466672007786990782[1] = 0; out_466672007786990782[2] = 0; out_466672007786990782[3] = 1; out_466672007786990782[4] = 0; out_466672007786990782[5] = 0; out_466672007786990782[6] = 0; out_466672007786990782[7] = 0; out_466672007786990782[8] = 0; out_466672007786990782[9] = 0; out_466672007786990782[10] = 0; out_466672007786990782[11] = 0; out_466672007786990782[12] = 0; out_466672007786990782[13] = 0; out_466672007786990782[14] = 0; out_466672007786990782[15] = 0; out_466672007786990782[16] = 0; out_466672007786990782[17] = 0; out_466672007786990782[18] = 0; out_466672007786990782[19] = 0; out_466672007786990782[20] = 0; out_466672007786990782[21] = 0; out_466672007786990782[22] = 0; out_466672007786990782[23] = 0; out_466672007786990782[24] = 0; out_466672007786990782[25] = 0; out_466672007786990782[26] = 1; out_466672007786990782[27] = 0; out_466672007786990782[28] = 0; out_466672007786990782[29] = 0; out_466672007786990782[30] = 0; out_466672007786990782[31] = 0; out_466672007786990782[32] = 0; out_466672007786990782[33] = 0; out_466672007786990782[34] = 0; out_466672007786990782[35] = 0; out_466672007786990782[36] = 0; out_466672007786990782[37] = 0; out_466672007786990782[38] = 0; out_466672007786990782[39] = 0; out_466672007786990782[40] = 0; out_466672007786990782[41] = 0; out_466672007786990782[42] = 0; out_466672007786990782[43] = 0; out_466672007786990782[44] = 0; out_466672007786990782[45] = 0; out_466672007786990782[46] = 0; out_466672007786990782[47] = 0; out_466672007786990782[48] = 0; out_466672007786990782[49] = 1; out_466672007786990782[50] = 0; out_466672007786990782[51] = 0; out_466672007786990782[52] = 0; out_466672007786990782[53] = 0; out_466672007786990782[54] = 0; out_466672007786990782[55] = 0; out_466672007786990782[56] = 0; out_466672007786990782[57] = 0; out_466672007786990782[58] = 0; out_466672007786990782[59] = 0; out_466672007786990782[60] = 0; out_466672007786990782[61] = 0; out_466672007786990782[62] = 0; out_466672007786990782[63] = 0; out_466672007786990782[64] = 0; out_466672007786990782[65] = 0; out_466672007786990782[66] = 0; out_466672007786990782[67] = 0; out_466672007786990782[68] = 0; out_466672007786990782[69] = 0; out_466672007786990782[70] = 0; out_466672007786990782[71] = 0; out_466672007786990782[72] = 1; out_466672007786990782[73] = 0; out_466672007786990782[74] = 0; out_466672007786990782[75] = 0; out_466672007786990782[76] = 0; out_466672007786990782[77] = 0; out_466672007786990782[78] = 0; out_466672007786990782[79] = 0; out_466672007786990782[80] = 0; out_466672007786990782[81] = 0; out_466672007786990782[82] = 0; out_466672007786990782[83] = 0; out_466672007786990782[84] = 0; out_466672007786990782[85] = 0; out_466672007786990782[86] = 0; out_466672007786990782[87] = 0; } void h_13(double *state, double *unused, double *out_1821948546406560367) { out_1821948546406560367[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_1821948546406560367[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_1821948546406560367[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]; } void H_13(double *state, double *unused, double *out_2303605643795534437) { out_2303605643795534437[0] = 0; out_2303605643795534437[1] = 0; out_2303605643795534437[2] = 0; out_2303605643795534437[3] = 2*state[3]*state[7] - 2*state[5]*state[9] + 2*state[6]*state[8]; out_2303605643795534437[4] = 2*state[4]*state[7] + 2*state[5]*state[8] + 2*state[6]*state[9]; out_2303605643795534437[5] = -2*state[3]*state[9] + 2*state[4]*state[8] - 2*state[5]*state[7]; out_2303605643795534437[6] = 2*state[3]*state[8] + 2*state[4]*state[9] - 2*state[6]*state[7]; out_2303605643795534437[7] = pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2); out_2303605643795534437[8] = 2*state[3]*state[6] + 2*state[4]*state[5]; out_2303605643795534437[9] = -2*state[3]*state[5] + 2*state[4]*state[6]; out_2303605643795534437[10] = 0; out_2303605643795534437[11] = 0; out_2303605643795534437[12] = 0; out_2303605643795534437[13] = 0; out_2303605643795534437[14] = 0; out_2303605643795534437[15] = 0; out_2303605643795534437[16] = 0; out_2303605643795534437[17] = 0; out_2303605643795534437[18] = 0; out_2303605643795534437[19] = 0; out_2303605643795534437[20] = 0; out_2303605643795534437[21] = 0; out_2303605643795534437[22] = 0; out_2303605643795534437[23] = 0; out_2303605643795534437[24] = 0; out_2303605643795534437[25] = 2*state[3]*state[8] + 2*state[4]*state[9] - 2*state[6]*state[7]; out_2303605643795534437[26] = 2*state[3]*state[9] - 2*state[4]*state[8] + 2*state[5]*state[7]; out_2303605643795534437[27] = 2*state[4]*state[7] + 2*state[5]*state[8] + 2*state[6]*state[9]; out_2303605643795534437[28] = -2*state[3]*state[7] + 2*state[5]*state[9] - 2*state[6]*state[8]; out_2303605643795534437[29] = -2*state[3]*state[6] + 2*state[4]*state[5]; out_2303605643795534437[30] = pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2); out_2303605643795534437[31] = 2*state[3]*state[4] + 2*state[5]*state[6]; out_2303605643795534437[32] = 0; out_2303605643795534437[33] = 0; out_2303605643795534437[34] = 0; out_2303605643795534437[35] = 0; out_2303605643795534437[36] = 0; out_2303605643795534437[37] = 0; out_2303605643795534437[38] = 0; out_2303605643795534437[39] = 0; out_2303605643795534437[40] = 0; out_2303605643795534437[41] = 0; out_2303605643795534437[42] = 0; out_2303605643795534437[43] = 0; out_2303605643795534437[44] = 0; out_2303605643795534437[45] = 0; out_2303605643795534437[46] = 0; out_2303605643795534437[47] = 2*state[3]*state[9] - 2*state[4]*state[8] + 2*state[5]*state[7]; out_2303605643795534437[48] = -2*state[3]*state[8] - 2*state[4]*state[9] + 2*state[6]*state[7]; out_2303605643795534437[49] = 2*state[3]*state[7] - 2*state[5]*state[9] + 2*state[6]*state[8]; out_2303605643795534437[50] = 2*state[4]*state[7] + 2*state[5]*state[8] + 2*state[6]*state[9]; out_2303605643795534437[51] = 2*state[3]*state[5] + 2*state[4]*state[6]; out_2303605643795534437[52] = -2*state[3]*state[4] + 2*state[5]*state[6]; out_2303605643795534437[53] = pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2); out_2303605643795534437[54] = 0; out_2303605643795534437[55] = 0; out_2303605643795534437[56] = 0; out_2303605643795534437[57] = 0; out_2303605643795534437[58] = 0; out_2303605643795534437[59] = 0; out_2303605643795534437[60] = 0; out_2303605643795534437[61] = 0; out_2303605643795534437[62] = 0; out_2303605643795534437[63] = 0; out_2303605643795534437[64] = 0; out_2303605643795534437[65] = 0; } void h_14(double *state, double *unused, double *out_3518367756339512630) { out_3518367756339512630[0] = state[10]; out_3518367756339512630[1] = state[11]; out_3518367756339512630[2] = state[12]; } void H_14(double *state, double *unused, double *out_6744536091052949049) { out_6744536091052949049[0] = 0; out_6744536091052949049[1] = 0; out_6744536091052949049[2] = 0; out_6744536091052949049[3] = 0; out_6744536091052949049[4] = 0; out_6744536091052949049[5] = 0; out_6744536091052949049[6] = 0; out_6744536091052949049[7] = 0; out_6744536091052949049[8] = 0; out_6744536091052949049[9] = 0; out_6744536091052949049[10] = 1; out_6744536091052949049[11] = 0; out_6744536091052949049[12] = 0; out_6744536091052949049[13] = 0; out_6744536091052949049[14] = 0; out_6744536091052949049[15] = 0; out_6744536091052949049[16] = 0; out_6744536091052949049[17] = 0; out_6744536091052949049[18] = 0; out_6744536091052949049[19] = 0; out_6744536091052949049[20] = 0; out_6744536091052949049[21] = 0; out_6744536091052949049[22] = 0; out_6744536091052949049[23] = 0; out_6744536091052949049[24] = 0; out_6744536091052949049[25] = 0; out_6744536091052949049[26] = 0; out_6744536091052949049[27] = 0; out_6744536091052949049[28] = 0; out_6744536091052949049[29] = 0; out_6744536091052949049[30] = 0; out_6744536091052949049[31] = 0; out_6744536091052949049[32] = 0; out_6744536091052949049[33] = 1; out_6744536091052949049[34] = 0; out_6744536091052949049[35] = 0; out_6744536091052949049[36] = 0; out_6744536091052949049[37] = 0; out_6744536091052949049[38] = 0; out_6744536091052949049[39] = 0; out_6744536091052949049[40] = 0; out_6744536091052949049[41] = 0; out_6744536091052949049[42] = 0; out_6744536091052949049[43] = 0; out_6744536091052949049[44] = 0; out_6744536091052949049[45] = 0; out_6744536091052949049[46] = 0; out_6744536091052949049[47] = 0; out_6744536091052949049[48] = 0; out_6744536091052949049[49] = 0; out_6744536091052949049[50] = 0; out_6744536091052949049[51] = 0; out_6744536091052949049[52] = 0; out_6744536091052949049[53] = 0; out_6744536091052949049[54] = 0; out_6744536091052949049[55] = 0; out_6744536091052949049[56] = 1; out_6744536091052949049[57] = 0; out_6744536091052949049[58] = 0; out_6744536091052949049[59] = 0; out_6744536091052949049[60] = 0; out_6744536091052949049[61] = 0; out_6744536091052949049[62] = 0; out_6744536091052949049[63] = 0; out_6744536091052949049[64] = 0; out_6744536091052949049[65] = 0; } void h_33(double *state, double *unused, double *out_1198873119594982396) { out_1198873119594982396[0] = state[16]; out_1198873119594982396[1] = state[17]; out_1198873119594982396[2] = state[18]; } void H_33(double *state, double *unused, double *out_468506675671074714) { out_468506675671074714[0] = 0; out_468506675671074714[1] = 0; out_468506675671074714[2] = 0; out_468506675671074714[3] = 0; out_468506675671074714[4] = 0; out_468506675671074714[5] = 0; out_468506675671074714[6] = 0; out_468506675671074714[7] = 0; out_468506675671074714[8] = 0; out_468506675671074714[9] = 0; out_468506675671074714[10] = 0; out_468506675671074714[11] = 0; out_468506675671074714[12] = 0; out_468506675671074714[13] = 0; out_468506675671074714[14] = 0; out_468506675671074714[15] = 0; out_468506675671074714[16] = 1; out_468506675671074714[17] = 0; out_468506675671074714[18] = 0; out_468506675671074714[19] = 0; out_468506675671074714[20] = 0; out_468506675671074714[21] = 0; out_468506675671074714[22] = 0; out_468506675671074714[23] = 0; out_468506675671074714[24] = 0; out_468506675671074714[25] = 0; out_468506675671074714[26] = 0; out_468506675671074714[27] = 0; out_468506675671074714[28] = 0; out_468506675671074714[29] = 0; out_468506675671074714[30] = 0; out_468506675671074714[31] = 0; out_468506675671074714[32] = 0; out_468506675671074714[33] = 0; out_468506675671074714[34] = 0; out_468506675671074714[35] = 0; out_468506675671074714[36] = 0; out_468506675671074714[37] = 0; out_468506675671074714[38] = 0; out_468506675671074714[39] = 1; out_468506675671074714[40] = 0; out_468506675671074714[41] = 0; out_468506675671074714[42] = 0; out_468506675671074714[43] = 0; out_468506675671074714[44] = 0; out_468506675671074714[45] = 0; out_468506675671074714[46] = 0; out_468506675671074714[47] = 0; out_468506675671074714[48] = 0; out_468506675671074714[49] = 0; out_468506675671074714[50] = 0; out_468506675671074714[51] = 0; out_468506675671074714[52] = 0; out_468506675671074714[53] = 0; out_468506675671074714[54] = 0; out_468506675671074714[55] = 0; out_468506675671074714[56] = 0; out_468506675671074714[57] = 0; out_468506675671074714[58] = 0; out_468506675671074714[59] = 0; out_468506675671074714[60] = 0; out_468506675671074714[61] = 0; out_468506675671074714[62] = 1; out_468506675671074714[63] = 0; out_468506675671074714[64] = 0; out_468506675671074714[65] = 0; } #include #include typedef Eigen::Matrix DDM; typedef Eigen::Matrix EEM; typedef Eigen::Matrix DEM; void predict(double *in_x, double *in_P, double *in_Q, double dt) { typedef Eigen::Matrix 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 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 ZZM; typedef Eigen::Matrix ZDM; typedef Eigen::Matrix XEM; //typedef Eigen::Matrix EZM; typedef Eigen::Matrix X1M; typedef Eigen::Matrix 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 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 pre_y(in_hx); pre_y = z - pre_y; X1M y; XXM H; XXM R; if (Hea_fun){ typedef Eigen::Matrix 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::Identity() - (KT.transpose() * H_err); // update state by injecting dx Eigen::Matrix 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 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); } void live_H(double *in_vec, double *out_1030892538088703046) { H(in_vec, out_1030892538088703046); } void live_err_fun(double *nom_x, double *delta_x, double *out_4555843542312345642) { err_fun(nom_x, delta_x, out_4555843542312345642); } void live_inv_err_fun(double *nom_x, double *true_x, double *out_913499310372198985) { inv_err_fun(nom_x, true_x, out_913499310372198985); } void live_H_mod_fun(double *state, double *out_1455121800340994207) { H_mod_fun(state, out_1455121800340994207); } void live_f_fun(double *state, double dt, double *out_7760840852727347336) { f_fun(state, dt, out_7760840852727347336); } void live_F_fun(double *state, double dt, double *out_5904092994272526580) { F_fun(state, dt, out_5904092994272526580); } void live_h_4(double *state, double *unused, double *out_683673907898961342) { h_4(state, unused, out_683673907898961342); } void live_H_4(double *state, double *unused, double *out_6985725737682539694) { H_4(state, unused, out_6985725737682539694); } void live_h_9(double *state, double *unused, double *out_3518367756339512630) { h_9(state, unused, out_3518367756339512630); } void live_H_9(double *state, double *unused, double *out_6744536091052949049) { H_9(state, unused, out_6744536091052949049); } void live_h_10(double *state, double *unused, double *out_1696460479858437053) { h_10(state, unused, out_1696460479858437053); } void live_H_10(double *state, double *unused, double *out_8475046284041961594) { H_10(state, unused, out_8475046284041961594); } void live_h_12(double *state, double *unused, double *out_2563524166673299033) { h_12(state, unused, out_2563524166673299033); } void live_H_12(double *state, double *unused, double *out_1966269329650577899) { H_12(state, unused, out_1966269329650577899); } void live_h_35(double *state, double *unused, double *out_5427861829338939000) { h_35(state, unused, out_5427861829338939000); } void live_H_35(double *state, double *unused, double *out_3619063680309932318) { H_35(state, unused, out_3619063680309932318); } void live_h_32(double *state, double *unused, double *out_4559568879405682368) { h_32(state, unused, out_4559568879405682368); } void live_H_32(double *state, double *unused, double *out_466672007786990782) { H_32(state, unused, out_466672007786990782); } void live_h_13(double *state, double *unused, double *out_1821948546406560367) { h_13(state, unused, out_1821948546406560367); } void live_H_13(double *state, double *unused, double *out_2303605643795534437) { H_13(state, unused, out_2303605643795534437); } void live_h_14(double *state, double *unused, double *out_3518367756339512630) { h_14(state, unused, out_3518367756339512630); } void live_H_14(double *state, double *unused, double *out_6744536091052949049) { H_14(state, unused, out_6744536091052949049); } void live_h_33(double *state, double *unused, double *out_1198873119594982396) { h_33(state, unused, out_1198873119594982396); } void live_H_33(double *state, double *unused, double *out_468506675671074714) { H_33(state, unused, out_468506675671074714); } 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_lib_init(live)