mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-03-01 10:53:53 +08:00
version: dragonpilot v0.8.17 beta for EON/C2 date: 2022-09-01T09:01:29 dp-dev(priv2) master commit: 1aee3e0728e47b4789623262fd595a3bccb7fe6e
1988 lines
90 KiB
C++
1988 lines
90 KiB
C++
#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.9 *
|
|
* *
|
|
* See http://www.sympy.org/ for more information. *
|
|
* *
|
|
* This file is part of 'ekf' *
|
|
******************************************************************************/
|
|
void H(double *in_vec, double *out_734965431798586088) {
|
|
out_734965431798586088[0] = 0;
|
|
out_734965431798586088[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_734965431798586088[2] = -sin(in_vec[2])*cos(in_vec[1])*in_vec[3] + cos(in_vec[1])*cos(in_vec[2])*in_vec[4];
|
|
out_734965431798586088[3] = cos(in_vec[1])*cos(in_vec[2]);
|
|
out_734965431798586088[4] = sin(in_vec[2])*cos(in_vec[1]);
|
|
out_734965431798586088[5] = -sin(in_vec[1]);
|
|
out_734965431798586088[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_734965431798586088[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_734965431798586088[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_734965431798586088[9] = sin(in_vec[0])*sin(in_vec[1])*cos(in_vec[2]) - sin(in_vec[2])*cos(in_vec[0]);
|
|
out_734965431798586088[10] = sin(in_vec[0])*sin(in_vec[1])*sin(in_vec[2]) + cos(in_vec[0])*cos(in_vec[2]);
|
|
out_734965431798586088[11] = sin(in_vec[0])*cos(in_vec[1]);
|
|
out_734965431798586088[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_734965431798586088[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_734965431798586088[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_734965431798586088[15] = sin(in_vec[0])*sin(in_vec[2]) + sin(in_vec[1])*cos(in_vec[0])*cos(in_vec[2]);
|
|
out_734965431798586088[16] = -sin(in_vec[0])*cos(in_vec[2]) + sin(in_vec[1])*sin(in_vec[2])*cos(in_vec[0]);
|
|
out_734965431798586088[17] = cos(in_vec[0])*cos(in_vec[1]);
|
|
}
|
|
void err_fun(double *nom_x, double *delta_x, double *out_7867135572176938343) {
|
|
out_7867135572176938343[0] = delta_x[0] + nom_x[0];
|
|
out_7867135572176938343[1] = delta_x[1] + nom_x[1];
|
|
out_7867135572176938343[2] = delta_x[2] + nom_x[2];
|
|
out_7867135572176938343[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_7867135572176938343[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_7867135572176938343[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_7867135572176938343[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_7867135572176938343[7] = delta_x[6] + nom_x[7];
|
|
out_7867135572176938343[8] = delta_x[7] + nom_x[8];
|
|
out_7867135572176938343[9] = delta_x[8] + nom_x[9];
|
|
out_7867135572176938343[10] = delta_x[9] + nom_x[10];
|
|
out_7867135572176938343[11] = delta_x[10] + nom_x[11];
|
|
out_7867135572176938343[12] = delta_x[11] + nom_x[12];
|
|
out_7867135572176938343[13] = delta_x[12] + nom_x[13];
|
|
out_7867135572176938343[14] = delta_x[13] + nom_x[14];
|
|
out_7867135572176938343[15] = delta_x[14] + nom_x[15];
|
|
out_7867135572176938343[16] = delta_x[15] + nom_x[16];
|
|
out_7867135572176938343[17] = delta_x[16] + nom_x[17];
|
|
out_7867135572176938343[18] = delta_x[17] + nom_x[18];
|
|
out_7867135572176938343[19] = delta_x[18] + nom_x[19];
|
|
out_7867135572176938343[20] = delta_x[19] + nom_x[20];
|
|
out_7867135572176938343[21] = delta_x[20] + nom_x[21];
|
|
}
|
|
void inv_err_fun(double *nom_x, double *true_x, double *out_4469849344899012791) {
|
|
out_4469849344899012791[0] = -nom_x[0] + true_x[0];
|
|
out_4469849344899012791[1] = -nom_x[1] + true_x[1];
|
|
out_4469849344899012791[2] = -nom_x[2] + true_x[2];
|
|
out_4469849344899012791[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_4469849344899012791[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_4469849344899012791[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_4469849344899012791[6] = -nom_x[7] + true_x[7];
|
|
out_4469849344899012791[7] = -nom_x[8] + true_x[8];
|
|
out_4469849344899012791[8] = -nom_x[9] + true_x[9];
|
|
out_4469849344899012791[9] = -nom_x[10] + true_x[10];
|
|
out_4469849344899012791[10] = -nom_x[11] + true_x[11];
|
|
out_4469849344899012791[11] = -nom_x[12] + true_x[12];
|
|
out_4469849344899012791[12] = -nom_x[13] + true_x[13];
|
|
out_4469849344899012791[13] = -nom_x[14] + true_x[14];
|
|
out_4469849344899012791[14] = -nom_x[15] + true_x[15];
|
|
out_4469849344899012791[15] = -nom_x[16] + true_x[16];
|
|
out_4469849344899012791[16] = -nom_x[17] + true_x[17];
|
|
out_4469849344899012791[17] = -nom_x[18] + true_x[18];
|
|
out_4469849344899012791[18] = -nom_x[19] + true_x[19];
|
|
out_4469849344899012791[19] = -nom_x[20] + true_x[20];
|
|
out_4469849344899012791[20] = -nom_x[21] + true_x[21];
|
|
}
|
|
void H_mod_fun(double *state, double *out_482044005104989923) {
|
|
out_482044005104989923[0] = 1.0;
|
|
out_482044005104989923[1] = 0;
|
|
out_482044005104989923[2] = 0;
|
|
out_482044005104989923[3] = 0;
|
|
out_482044005104989923[4] = 0;
|
|
out_482044005104989923[5] = 0;
|
|
out_482044005104989923[6] = 0;
|
|
out_482044005104989923[7] = 0;
|
|
out_482044005104989923[8] = 0;
|
|
out_482044005104989923[9] = 0;
|
|
out_482044005104989923[10] = 0;
|
|
out_482044005104989923[11] = 0;
|
|
out_482044005104989923[12] = 0;
|
|
out_482044005104989923[13] = 0;
|
|
out_482044005104989923[14] = 0;
|
|
out_482044005104989923[15] = 0;
|
|
out_482044005104989923[16] = 0;
|
|
out_482044005104989923[17] = 0;
|
|
out_482044005104989923[18] = 0;
|
|
out_482044005104989923[19] = 0;
|
|
out_482044005104989923[20] = 0;
|
|
out_482044005104989923[21] = 0;
|
|
out_482044005104989923[22] = 1.0;
|
|
out_482044005104989923[23] = 0;
|
|
out_482044005104989923[24] = 0;
|
|
out_482044005104989923[25] = 0;
|
|
out_482044005104989923[26] = 0;
|
|
out_482044005104989923[27] = 0;
|
|
out_482044005104989923[28] = 0;
|
|
out_482044005104989923[29] = 0;
|
|
out_482044005104989923[30] = 0;
|
|
out_482044005104989923[31] = 0;
|
|
out_482044005104989923[32] = 0;
|
|
out_482044005104989923[33] = 0;
|
|
out_482044005104989923[34] = 0;
|
|
out_482044005104989923[35] = 0;
|
|
out_482044005104989923[36] = 0;
|
|
out_482044005104989923[37] = 0;
|
|
out_482044005104989923[38] = 0;
|
|
out_482044005104989923[39] = 0;
|
|
out_482044005104989923[40] = 0;
|
|
out_482044005104989923[41] = 0;
|
|
out_482044005104989923[42] = 0;
|
|
out_482044005104989923[43] = 0;
|
|
out_482044005104989923[44] = 1.0;
|
|
out_482044005104989923[45] = 0;
|
|
out_482044005104989923[46] = 0;
|
|
out_482044005104989923[47] = 0;
|
|
out_482044005104989923[48] = 0;
|
|
out_482044005104989923[49] = 0;
|
|
out_482044005104989923[50] = 0;
|
|
out_482044005104989923[51] = 0;
|
|
out_482044005104989923[52] = 0;
|
|
out_482044005104989923[53] = 0;
|
|
out_482044005104989923[54] = 0;
|
|
out_482044005104989923[55] = 0;
|
|
out_482044005104989923[56] = 0;
|
|
out_482044005104989923[57] = 0;
|
|
out_482044005104989923[58] = 0;
|
|
out_482044005104989923[59] = 0;
|
|
out_482044005104989923[60] = 0;
|
|
out_482044005104989923[61] = 0;
|
|
out_482044005104989923[62] = 0;
|
|
out_482044005104989923[63] = 0;
|
|
out_482044005104989923[64] = 0;
|
|
out_482044005104989923[65] = 0;
|
|
out_482044005104989923[66] = -0.5*state[4];
|
|
out_482044005104989923[67] = -0.5*state[5];
|
|
out_482044005104989923[68] = -0.5*state[6];
|
|
out_482044005104989923[69] = 0;
|
|
out_482044005104989923[70] = 0;
|
|
out_482044005104989923[71] = 0;
|
|
out_482044005104989923[72] = 0;
|
|
out_482044005104989923[73] = 0;
|
|
out_482044005104989923[74] = 0;
|
|
out_482044005104989923[75] = 0;
|
|
out_482044005104989923[76] = 0;
|
|
out_482044005104989923[77] = 0;
|
|
out_482044005104989923[78] = 0;
|
|
out_482044005104989923[79] = 0;
|
|
out_482044005104989923[80] = 0;
|
|
out_482044005104989923[81] = 0;
|
|
out_482044005104989923[82] = 0;
|
|
out_482044005104989923[83] = 0;
|
|
out_482044005104989923[84] = 0;
|
|
out_482044005104989923[85] = 0;
|
|
out_482044005104989923[86] = 0;
|
|
out_482044005104989923[87] = 0.5*state[3];
|
|
out_482044005104989923[88] = 0.5*state[6];
|
|
out_482044005104989923[89] = -0.5*state[5];
|
|
out_482044005104989923[90] = 0;
|
|
out_482044005104989923[91] = 0;
|
|
out_482044005104989923[92] = 0;
|
|
out_482044005104989923[93] = 0;
|
|
out_482044005104989923[94] = 0;
|
|
out_482044005104989923[95] = 0;
|
|
out_482044005104989923[96] = 0;
|
|
out_482044005104989923[97] = 0;
|
|
out_482044005104989923[98] = 0;
|
|
out_482044005104989923[99] = 0;
|
|
out_482044005104989923[100] = 0;
|
|
out_482044005104989923[101] = 0;
|
|
out_482044005104989923[102] = 0;
|
|
out_482044005104989923[103] = 0;
|
|
out_482044005104989923[104] = 0;
|
|
out_482044005104989923[105] = 0;
|
|
out_482044005104989923[106] = 0;
|
|
out_482044005104989923[107] = 0;
|
|
out_482044005104989923[108] = -0.5*state[6];
|
|
out_482044005104989923[109] = 0.5*state[3];
|
|
out_482044005104989923[110] = 0.5*state[4];
|
|
out_482044005104989923[111] = 0;
|
|
out_482044005104989923[112] = 0;
|
|
out_482044005104989923[113] = 0;
|
|
out_482044005104989923[114] = 0;
|
|
out_482044005104989923[115] = 0;
|
|
out_482044005104989923[116] = 0;
|
|
out_482044005104989923[117] = 0;
|
|
out_482044005104989923[118] = 0;
|
|
out_482044005104989923[119] = 0;
|
|
out_482044005104989923[120] = 0;
|
|
out_482044005104989923[121] = 0;
|
|
out_482044005104989923[122] = 0;
|
|
out_482044005104989923[123] = 0;
|
|
out_482044005104989923[124] = 0;
|
|
out_482044005104989923[125] = 0;
|
|
out_482044005104989923[126] = 0;
|
|
out_482044005104989923[127] = 0;
|
|
out_482044005104989923[128] = 0;
|
|
out_482044005104989923[129] = 0.5*state[5];
|
|
out_482044005104989923[130] = -0.5*state[4];
|
|
out_482044005104989923[131] = 0.5*state[3];
|
|
out_482044005104989923[132] = 0;
|
|
out_482044005104989923[133] = 0;
|
|
out_482044005104989923[134] = 0;
|
|
out_482044005104989923[135] = 0;
|
|
out_482044005104989923[136] = 0;
|
|
out_482044005104989923[137] = 0;
|
|
out_482044005104989923[138] = 0;
|
|
out_482044005104989923[139] = 0;
|
|
out_482044005104989923[140] = 0;
|
|
out_482044005104989923[141] = 0;
|
|
out_482044005104989923[142] = 0;
|
|
out_482044005104989923[143] = 0;
|
|
out_482044005104989923[144] = 0;
|
|
out_482044005104989923[145] = 0;
|
|
out_482044005104989923[146] = 0;
|
|
out_482044005104989923[147] = 0;
|
|
out_482044005104989923[148] = 0;
|
|
out_482044005104989923[149] = 0;
|
|
out_482044005104989923[150] = 0;
|
|
out_482044005104989923[151] = 0;
|
|
out_482044005104989923[152] = 0;
|
|
out_482044005104989923[153] = 1.0;
|
|
out_482044005104989923[154] = 0;
|
|
out_482044005104989923[155] = 0;
|
|
out_482044005104989923[156] = 0;
|
|
out_482044005104989923[157] = 0;
|
|
out_482044005104989923[158] = 0;
|
|
out_482044005104989923[159] = 0;
|
|
out_482044005104989923[160] = 0;
|
|
out_482044005104989923[161] = 0;
|
|
out_482044005104989923[162] = 0;
|
|
out_482044005104989923[163] = 0;
|
|
out_482044005104989923[164] = 0;
|
|
out_482044005104989923[165] = 0;
|
|
out_482044005104989923[166] = 0;
|
|
out_482044005104989923[167] = 0;
|
|
out_482044005104989923[168] = 0;
|
|
out_482044005104989923[169] = 0;
|
|
out_482044005104989923[170] = 0;
|
|
out_482044005104989923[171] = 0;
|
|
out_482044005104989923[172] = 0;
|
|
out_482044005104989923[173] = 0;
|
|
out_482044005104989923[174] = 0;
|
|
out_482044005104989923[175] = 1.0;
|
|
out_482044005104989923[176] = 0;
|
|
out_482044005104989923[177] = 0;
|
|
out_482044005104989923[178] = 0;
|
|
out_482044005104989923[179] = 0;
|
|
out_482044005104989923[180] = 0;
|
|
out_482044005104989923[181] = 0;
|
|
out_482044005104989923[182] = 0;
|
|
out_482044005104989923[183] = 0;
|
|
out_482044005104989923[184] = 0;
|
|
out_482044005104989923[185] = 0;
|
|
out_482044005104989923[186] = 0;
|
|
out_482044005104989923[187] = 0;
|
|
out_482044005104989923[188] = 0;
|
|
out_482044005104989923[189] = 0;
|
|
out_482044005104989923[190] = 0;
|
|
out_482044005104989923[191] = 0;
|
|
out_482044005104989923[192] = 0;
|
|
out_482044005104989923[193] = 0;
|
|
out_482044005104989923[194] = 0;
|
|
out_482044005104989923[195] = 0;
|
|
out_482044005104989923[196] = 0;
|
|
out_482044005104989923[197] = 1.0;
|
|
out_482044005104989923[198] = 0;
|
|
out_482044005104989923[199] = 0;
|
|
out_482044005104989923[200] = 0;
|
|
out_482044005104989923[201] = 0;
|
|
out_482044005104989923[202] = 0;
|
|
out_482044005104989923[203] = 0;
|
|
out_482044005104989923[204] = 0;
|
|
out_482044005104989923[205] = 0;
|
|
out_482044005104989923[206] = 0;
|
|
out_482044005104989923[207] = 0;
|
|
out_482044005104989923[208] = 0;
|
|
out_482044005104989923[209] = 0;
|
|
out_482044005104989923[210] = 0;
|
|
out_482044005104989923[211] = 0;
|
|
out_482044005104989923[212] = 0;
|
|
out_482044005104989923[213] = 0;
|
|
out_482044005104989923[214] = 0;
|
|
out_482044005104989923[215] = 0;
|
|
out_482044005104989923[216] = 0;
|
|
out_482044005104989923[217] = 0;
|
|
out_482044005104989923[218] = 0;
|
|
out_482044005104989923[219] = 1.0;
|
|
out_482044005104989923[220] = 0;
|
|
out_482044005104989923[221] = 0;
|
|
out_482044005104989923[222] = 0;
|
|
out_482044005104989923[223] = 0;
|
|
out_482044005104989923[224] = 0;
|
|
out_482044005104989923[225] = 0;
|
|
out_482044005104989923[226] = 0;
|
|
out_482044005104989923[227] = 0;
|
|
out_482044005104989923[228] = 0;
|
|
out_482044005104989923[229] = 0;
|
|
out_482044005104989923[230] = 0;
|
|
out_482044005104989923[231] = 0;
|
|
out_482044005104989923[232] = 0;
|
|
out_482044005104989923[233] = 0;
|
|
out_482044005104989923[234] = 0;
|
|
out_482044005104989923[235] = 0;
|
|
out_482044005104989923[236] = 0;
|
|
out_482044005104989923[237] = 0;
|
|
out_482044005104989923[238] = 0;
|
|
out_482044005104989923[239] = 0;
|
|
out_482044005104989923[240] = 0;
|
|
out_482044005104989923[241] = 1.0;
|
|
out_482044005104989923[242] = 0;
|
|
out_482044005104989923[243] = 0;
|
|
out_482044005104989923[244] = 0;
|
|
out_482044005104989923[245] = 0;
|
|
out_482044005104989923[246] = 0;
|
|
out_482044005104989923[247] = 0;
|
|
out_482044005104989923[248] = 0;
|
|
out_482044005104989923[249] = 0;
|
|
out_482044005104989923[250] = 0;
|
|
out_482044005104989923[251] = 0;
|
|
out_482044005104989923[252] = 0;
|
|
out_482044005104989923[253] = 0;
|
|
out_482044005104989923[254] = 0;
|
|
out_482044005104989923[255] = 0;
|
|
out_482044005104989923[256] = 0;
|
|
out_482044005104989923[257] = 0;
|
|
out_482044005104989923[258] = 0;
|
|
out_482044005104989923[259] = 0;
|
|
out_482044005104989923[260] = 0;
|
|
out_482044005104989923[261] = 0;
|
|
out_482044005104989923[262] = 0;
|
|
out_482044005104989923[263] = 1.0;
|
|
out_482044005104989923[264] = 0;
|
|
out_482044005104989923[265] = 0;
|
|
out_482044005104989923[266] = 0;
|
|
out_482044005104989923[267] = 0;
|
|
out_482044005104989923[268] = 0;
|
|
out_482044005104989923[269] = 0;
|
|
out_482044005104989923[270] = 0;
|
|
out_482044005104989923[271] = 0;
|
|
out_482044005104989923[272] = 0;
|
|
out_482044005104989923[273] = 0;
|
|
out_482044005104989923[274] = 0;
|
|
out_482044005104989923[275] = 0;
|
|
out_482044005104989923[276] = 0;
|
|
out_482044005104989923[277] = 0;
|
|
out_482044005104989923[278] = 0;
|
|
out_482044005104989923[279] = 0;
|
|
out_482044005104989923[280] = 0;
|
|
out_482044005104989923[281] = 0;
|
|
out_482044005104989923[282] = 0;
|
|
out_482044005104989923[283] = 0;
|
|
out_482044005104989923[284] = 0;
|
|
out_482044005104989923[285] = 1.0;
|
|
out_482044005104989923[286] = 0;
|
|
out_482044005104989923[287] = 0;
|
|
out_482044005104989923[288] = 0;
|
|
out_482044005104989923[289] = 0;
|
|
out_482044005104989923[290] = 0;
|
|
out_482044005104989923[291] = 0;
|
|
out_482044005104989923[292] = 0;
|
|
out_482044005104989923[293] = 0;
|
|
out_482044005104989923[294] = 0;
|
|
out_482044005104989923[295] = 0;
|
|
out_482044005104989923[296] = 0;
|
|
out_482044005104989923[297] = 0;
|
|
out_482044005104989923[298] = 0;
|
|
out_482044005104989923[299] = 0;
|
|
out_482044005104989923[300] = 0;
|
|
out_482044005104989923[301] = 0;
|
|
out_482044005104989923[302] = 0;
|
|
out_482044005104989923[303] = 0;
|
|
out_482044005104989923[304] = 0;
|
|
out_482044005104989923[305] = 0;
|
|
out_482044005104989923[306] = 0;
|
|
out_482044005104989923[307] = 1.0;
|
|
out_482044005104989923[308] = 0;
|
|
out_482044005104989923[309] = 0;
|
|
out_482044005104989923[310] = 0;
|
|
out_482044005104989923[311] = 0;
|
|
out_482044005104989923[312] = 0;
|
|
out_482044005104989923[313] = 0;
|
|
out_482044005104989923[314] = 0;
|
|
out_482044005104989923[315] = 0;
|
|
out_482044005104989923[316] = 0;
|
|
out_482044005104989923[317] = 0;
|
|
out_482044005104989923[318] = 0;
|
|
out_482044005104989923[319] = 0;
|
|
out_482044005104989923[320] = 0;
|
|
out_482044005104989923[321] = 0;
|
|
out_482044005104989923[322] = 0;
|
|
out_482044005104989923[323] = 0;
|
|
out_482044005104989923[324] = 0;
|
|
out_482044005104989923[325] = 0;
|
|
out_482044005104989923[326] = 0;
|
|
out_482044005104989923[327] = 0;
|
|
out_482044005104989923[328] = 0;
|
|
out_482044005104989923[329] = 1.0;
|
|
out_482044005104989923[330] = 0;
|
|
out_482044005104989923[331] = 0;
|
|
out_482044005104989923[332] = 0;
|
|
out_482044005104989923[333] = 0;
|
|
out_482044005104989923[334] = 0;
|
|
out_482044005104989923[335] = 0;
|
|
out_482044005104989923[336] = 0;
|
|
out_482044005104989923[337] = 0;
|
|
out_482044005104989923[338] = 0;
|
|
out_482044005104989923[339] = 0;
|
|
out_482044005104989923[340] = 0;
|
|
out_482044005104989923[341] = 0;
|
|
out_482044005104989923[342] = 0;
|
|
out_482044005104989923[343] = 0;
|
|
out_482044005104989923[344] = 0;
|
|
out_482044005104989923[345] = 0;
|
|
out_482044005104989923[346] = 0;
|
|
out_482044005104989923[347] = 0;
|
|
out_482044005104989923[348] = 0;
|
|
out_482044005104989923[349] = 0;
|
|
out_482044005104989923[350] = 0;
|
|
out_482044005104989923[351] = 1.0;
|
|
out_482044005104989923[352] = 0;
|
|
out_482044005104989923[353] = 0;
|
|
out_482044005104989923[354] = 0;
|
|
out_482044005104989923[355] = 0;
|
|
out_482044005104989923[356] = 0;
|
|
out_482044005104989923[357] = 0;
|
|
out_482044005104989923[358] = 0;
|
|
out_482044005104989923[359] = 0;
|
|
out_482044005104989923[360] = 0;
|
|
out_482044005104989923[361] = 0;
|
|
out_482044005104989923[362] = 0;
|
|
out_482044005104989923[363] = 0;
|
|
out_482044005104989923[364] = 0;
|
|
out_482044005104989923[365] = 0;
|
|
out_482044005104989923[366] = 0;
|
|
out_482044005104989923[367] = 0;
|
|
out_482044005104989923[368] = 0;
|
|
out_482044005104989923[369] = 0;
|
|
out_482044005104989923[370] = 0;
|
|
out_482044005104989923[371] = 0;
|
|
out_482044005104989923[372] = 0;
|
|
out_482044005104989923[373] = 1.0;
|
|
out_482044005104989923[374] = 0;
|
|
out_482044005104989923[375] = 0;
|
|
out_482044005104989923[376] = 0;
|
|
out_482044005104989923[377] = 0;
|
|
out_482044005104989923[378] = 0;
|
|
out_482044005104989923[379] = 0;
|
|
out_482044005104989923[380] = 0;
|
|
out_482044005104989923[381] = 0;
|
|
out_482044005104989923[382] = 0;
|
|
out_482044005104989923[383] = 0;
|
|
out_482044005104989923[384] = 0;
|
|
out_482044005104989923[385] = 0;
|
|
out_482044005104989923[386] = 0;
|
|
out_482044005104989923[387] = 0;
|
|
out_482044005104989923[388] = 0;
|
|
out_482044005104989923[389] = 0;
|
|
out_482044005104989923[390] = 0;
|
|
out_482044005104989923[391] = 0;
|
|
out_482044005104989923[392] = 0;
|
|
out_482044005104989923[393] = 0;
|
|
out_482044005104989923[394] = 0;
|
|
out_482044005104989923[395] = 1.0;
|
|
out_482044005104989923[396] = 0;
|
|
out_482044005104989923[397] = 0;
|
|
out_482044005104989923[398] = 0;
|
|
out_482044005104989923[399] = 0;
|
|
out_482044005104989923[400] = 0;
|
|
out_482044005104989923[401] = 0;
|
|
out_482044005104989923[402] = 0;
|
|
out_482044005104989923[403] = 0;
|
|
out_482044005104989923[404] = 0;
|
|
out_482044005104989923[405] = 0;
|
|
out_482044005104989923[406] = 0;
|
|
out_482044005104989923[407] = 0;
|
|
out_482044005104989923[408] = 0;
|
|
out_482044005104989923[409] = 0;
|
|
out_482044005104989923[410] = 0;
|
|
out_482044005104989923[411] = 0;
|
|
out_482044005104989923[412] = 0;
|
|
out_482044005104989923[413] = 0;
|
|
out_482044005104989923[414] = 0;
|
|
out_482044005104989923[415] = 0;
|
|
out_482044005104989923[416] = 0;
|
|
out_482044005104989923[417] = 1.0;
|
|
out_482044005104989923[418] = 0;
|
|
out_482044005104989923[419] = 0;
|
|
out_482044005104989923[420] = 0;
|
|
out_482044005104989923[421] = 0;
|
|
out_482044005104989923[422] = 0;
|
|
out_482044005104989923[423] = 0;
|
|
out_482044005104989923[424] = 0;
|
|
out_482044005104989923[425] = 0;
|
|
out_482044005104989923[426] = 0;
|
|
out_482044005104989923[427] = 0;
|
|
out_482044005104989923[428] = 0;
|
|
out_482044005104989923[429] = 0;
|
|
out_482044005104989923[430] = 0;
|
|
out_482044005104989923[431] = 0;
|
|
out_482044005104989923[432] = 0;
|
|
out_482044005104989923[433] = 0;
|
|
out_482044005104989923[434] = 0;
|
|
out_482044005104989923[435] = 0;
|
|
out_482044005104989923[436] = 0;
|
|
out_482044005104989923[437] = 0;
|
|
out_482044005104989923[438] = 0;
|
|
out_482044005104989923[439] = 1.0;
|
|
out_482044005104989923[440] = 0;
|
|
out_482044005104989923[441] = 0;
|
|
out_482044005104989923[442] = 0;
|
|
out_482044005104989923[443] = 0;
|
|
out_482044005104989923[444] = 0;
|
|
out_482044005104989923[445] = 0;
|
|
out_482044005104989923[446] = 0;
|
|
out_482044005104989923[447] = 0;
|
|
out_482044005104989923[448] = 0;
|
|
out_482044005104989923[449] = 0;
|
|
out_482044005104989923[450] = 0;
|
|
out_482044005104989923[451] = 0;
|
|
out_482044005104989923[452] = 0;
|
|
out_482044005104989923[453] = 0;
|
|
out_482044005104989923[454] = 0;
|
|
out_482044005104989923[455] = 0;
|
|
out_482044005104989923[456] = 0;
|
|
out_482044005104989923[457] = 0;
|
|
out_482044005104989923[458] = 0;
|
|
out_482044005104989923[459] = 0;
|
|
out_482044005104989923[460] = 0;
|
|
out_482044005104989923[461] = 1.0;
|
|
}
|
|
void f_fun(double *state, double dt, double *out_5277401503139322236) {
|
|
out_5277401503139322236[0] = dt*state[7] + state[0];
|
|
out_5277401503139322236[1] = dt*state[8] + state[1];
|
|
out_5277401503139322236[2] = dt*state[9] + state[2];
|
|
out_5277401503139322236[3] = dt*(-0.5*state[4]*state[10] - 0.5*state[5]*state[11] - 0.5*state[6]*state[12]) + state[3];
|
|
out_5277401503139322236[4] = dt*(0.5*state[3]*state[10] + 0.5*state[5]*state[12] - 0.5*state[6]*state[11]) + state[4];
|
|
out_5277401503139322236[5] = dt*(0.5*state[3]*state[11] - 0.5*state[4]*state[12] + 0.5*state[6]*state[10]) + state[5];
|
|
out_5277401503139322236[6] = dt*(0.5*state[3]*state[12] + 0.5*state[4]*state[11] - 0.5*state[5]*state[10]) + state[6];
|
|
out_5277401503139322236[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_5277401503139322236[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_5277401503139322236[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_5277401503139322236[10] = state[10];
|
|
out_5277401503139322236[11] = state[11];
|
|
out_5277401503139322236[12] = state[12];
|
|
out_5277401503139322236[13] = state[13];
|
|
out_5277401503139322236[14] = state[14];
|
|
out_5277401503139322236[15] = state[15];
|
|
out_5277401503139322236[16] = state[16];
|
|
out_5277401503139322236[17] = state[17];
|
|
out_5277401503139322236[18] = state[18];
|
|
out_5277401503139322236[19] = state[19];
|
|
out_5277401503139322236[20] = state[20];
|
|
out_5277401503139322236[21] = state[21];
|
|
}
|
|
void F_fun(double *state, double dt, double *out_6716422747633413136) {
|
|
out_6716422747633413136[0] = 1;
|
|
out_6716422747633413136[1] = 0;
|
|
out_6716422747633413136[2] = 0;
|
|
out_6716422747633413136[3] = 0;
|
|
out_6716422747633413136[4] = 0;
|
|
out_6716422747633413136[5] = 0;
|
|
out_6716422747633413136[6] = dt;
|
|
out_6716422747633413136[7] = 0;
|
|
out_6716422747633413136[8] = 0;
|
|
out_6716422747633413136[9] = 0;
|
|
out_6716422747633413136[10] = 0;
|
|
out_6716422747633413136[11] = 0;
|
|
out_6716422747633413136[12] = 0;
|
|
out_6716422747633413136[13] = 0;
|
|
out_6716422747633413136[14] = 0;
|
|
out_6716422747633413136[15] = 0;
|
|
out_6716422747633413136[16] = 0;
|
|
out_6716422747633413136[17] = 0;
|
|
out_6716422747633413136[18] = 0;
|
|
out_6716422747633413136[19] = 0;
|
|
out_6716422747633413136[20] = 0;
|
|
out_6716422747633413136[21] = 0;
|
|
out_6716422747633413136[22] = 1;
|
|
out_6716422747633413136[23] = 0;
|
|
out_6716422747633413136[24] = 0;
|
|
out_6716422747633413136[25] = 0;
|
|
out_6716422747633413136[26] = 0;
|
|
out_6716422747633413136[27] = 0;
|
|
out_6716422747633413136[28] = dt;
|
|
out_6716422747633413136[29] = 0;
|
|
out_6716422747633413136[30] = 0;
|
|
out_6716422747633413136[31] = 0;
|
|
out_6716422747633413136[32] = 0;
|
|
out_6716422747633413136[33] = 0;
|
|
out_6716422747633413136[34] = 0;
|
|
out_6716422747633413136[35] = 0;
|
|
out_6716422747633413136[36] = 0;
|
|
out_6716422747633413136[37] = 0;
|
|
out_6716422747633413136[38] = 0;
|
|
out_6716422747633413136[39] = 0;
|
|
out_6716422747633413136[40] = 0;
|
|
out_6716422747633413136[41] = 0;
|
|
out_6716422747633413136[42] = 0;
|
|
out_6716422747633413136[43] = 0;
|
|
out_6716422747633413136[44] = 1;
|
|
out_6716422747633413136[45] = 0;
|
|
out_6716422747633413136[46] = 0;
|
|
out_6716422747633413136[47] = 0;
|
|
out_6716422747633413136[48] = 0;
|
|
out_6716422747633413136[49] = 0;
|
|
out_6716422747633413136[50] = dt;
|
|
out_6716422747633413136[51] = 0;
|
|
out_6716422747633413136[52] = 0;
|
|
out_6716422747633413136[53] = 0;
|
|
out_6716422747633413136[54] = 0;
|
|
out_6716422747633413136[55] = 0;
|
|
out_6716422747633413136[56] = 0;
|
|
out_6716422747633413136[57] = 0;
|
|
out_6716422747633413136[58] = 0;
|
|
out_6716422747633413136[59] = 0;
|
|
out_6716422747633413136[60] = 0;
|
|
out_6716422747633413136[61] = 0;
|
|
out_6716422747633413136[62] = 0;
|
|
out_6716422747633413136[63] = 0;
|
|
out_6716422747633413136[64] = 0;
|
|
out_6716422747633413136[65] = 0;
|
|
out_6716422747633413136[66] = 1;
|
|
out_6716422747633413136[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_6716422747633413136[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_6716422747633413136[69] = 0;
|
|
out_6716422747633413136[70] = 0;
|
|
out_6716422747633413136[71] = 0;
|
|
out_6716422747633413136[72] = dt*(pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2));
|
|
out_6716422747633413136[73] = dt*(-2*state[3]*state[6] + 2*state[4]*state[5]);
|
|
out_6716422747633413136[74] = dt*(2*state[3]*state[5] + 2*state[4]*state[6]);
|
|
out_6716422747633413136[75] = 0;
|
|
out_6716422747633413136[76] = 0;
|
|
out_6716422747633413136[77] = 0;
|
|
out_6716422747633413136[78] = 0;
|
|
out_6716422747633413136[79] = 0;
|
|
out_6716422747633413136[80] = 0;
|
|
out_6716422747633413136[81] = 0;
|
|
out_6716422747633413136[82] = 0;
|
|
out_6716422747633413136[83] = 0;
|
|
out_6716422747633413136[84] = 0;
|
|
out_6716422747633413136[85] = 0;
|
|
out_6716422747633413136[86] = 0;
|
|
out_6716422747633413136[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_6716422747633413136[88] = 1;
|
|
out_6716422747633413136[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_6716422747633413136[90] = 0;
|
|
out_6716422747633413136[91] = 0;
|
|
out_6716422747633413136[92] = 0;
|
|
out_6716422747633413136[93] = dt*(2*state[3]*state[6] + 2*state[4]*state[5]);
|
|
out_6716422747633413136[94] = dt*(pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2));
|
|
out_6716422747633413136[95] = dt*(-2*state[3]*state[4] + 2*state[5]*state[6]);
|
|
out_6716422747633413136[96] = 0;
|
|
out_6716422747633413136[97] = 0;
|
|
out_6716422747633413136[98] = 0;
|
|
out_6716422747633413136[99] = 0;
|
|
out_6716422747633413136[100] = 0;
|
|
out_6716422747633413136[101] = 0;
|
|
out_6716422747633413136[102] = 0;
|
|
out_6716422747633413136[103] = 0;
|
|
out_6716422747633413136[104] = 0;
|
|
out_6716422747633413136[105] = 0;
|
|
out_6716422747633413136[106] = 0;
|
|
out_6716422747633413136[107] = 0;
|
|
out_6716422747633413136[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_6716422747633413136[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_6716422747633413136[110] = 1;
|
|
out_6716422747633413136[111] = 0;
|
|
out_6716422747633413136[112] = 0;
|
|
out_6716422747633413136[113] = 0;
|
|
out_6716422747633413136[114] = dt*(-2*state[3]*state[5] + 2*state[4]*state[6]);
|
|
out_6716422747633413136[115] = dt*(2*state[3]*state[4] + 2*state[5]*state[6]);
|
|
out_6716422747633413136[116] = dt*(pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2));
|
|
out_6716422747633413136[117] = 0;
|
|
out_6716422747633413136[118] = 0;
|
|
out_6716422747633413136[119] = 0;
|
|
out_6716422747633413136[120] = 0;
|
|
out_6716422747633413136[121] = 0;
|
|
out_6716422747633413136[122] = 0;
|
|
out_6716422747633413136[123] = 0;
|
|
out_6716422747633413136[124] = 0;
|
|
out_6716422747633413136[125] = 0;
|
|
out_6716422747633413136[126] = 0;
|
|
out_6716422747633413136[127] = 0;
|
|
out_6716422747633413136[128] = 0;
|
|
out_6716422747633413136[129] = 0;
|
|
out_6716422747633413136[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_6716422747633413136[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_6716422747633413136[132] = 1;
|
|
out_6716422747633413136[133] = 0;
|
|
out_6716422747633413136[134] = 0;
|
|
out_6716422747633413136[135] = 0;
|
|
out_6716422747633413136[136] = 0;
|
|
out_6716422747633413136[137] = 0;
|
|
out_6716422747633413136[138] = 0;
|
|
out_6716422747633413136[139] = 0;
|
|
out_6716422747633413136[140] = 0;
|
|
out_6716422747633413136[141] = dt*(pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2));
|
|
out_6716422747633413136[142] = dt*(-2*state[3]*state[6] + 2*state[4]*state[5]);
|
|
out_6716422747633413136[143] = dt*(2*state[3]*state[5] + 2*state[4]*state[6]);
|
|
out_6716422747633413136[144] = 0;
|
|
out_6716422747633413136[145] = 0;
|
|
out_6716422747633413136[146] = 0;
|
|
out_6716422747633413136[147] = 0;
|
|
out_6716422747633413136[148] = 0;
|
|
out_6716422747633413136[149] = 0;
|
|
out_6716422747633413136[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_6716422747633413136[151] = 0;
|
|
out_6716422747633413136[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_6716422747633413136[153] = 0;
|
|
out_6716422747633413136[154] = 1;
|
|
out_6716422747633413136[155] = 0;
|
|
out_6716422747633413136[156] = 0;
|
|
out_6716422747633413136[157] = 0;
|
|
out_6716422747633413136[158] = 0;
|
|
out_6716422747633413136[159] = 0;
|
|
out_6716422747633413136[160] = 0;
|
|
out_6716422747633413136[161] = 0;
|
|
out_6716422747633413136[162] = dt*(2*state[3]*state[6] + 2*state[4]*state[5]);
|
|
out_6716422747633413136[163] = dt*(pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2));
|
|
out_6716422747633413136[164] = dt*(-2*state[3]*state[4] + 2*state[5]*state[6]);
|
|
out_6716422747633413136[165] = 0;
|
|
out_6716422747633413136[166] = 0;
|
|
out_6716422747633413136[167] = 0;
|
|
out_6716422747633413136[168] = 0;
|
|
out_6716422747633413136[169] = 0;
|
|
out_6716422747633413136[170] = 0;
|
|
out_6716422747633413136[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_6716422747633413136[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_6716422747633413136[173] = 0;
|
|
out_6716422747633413136[174] = 0;
|
|
out_6716422747633413136[175] = 0;
|
|
out_6716422747633413136[176] = 1;
|
|
out_6716422747633413136[177] = 0;
|
|
out_6716422747633413136[178] = 0;
|
|
out_6716422747633413136[179] = 0;
|
|
out_6716422747633413136[180] = 0;
|
|
out_6716422747633413136[181] = 0;
|
|
out_6716422747633413136[182] = 0;
|
|
out_6716422747633413136[183] = dt*(-2*state[3]*state[5] + 2*state[4]*state[6]);
|
|
out_6716422747633413136[184] = dt*(2*state[3]*state[4] + 2*state[5]*state[6]);
|
|
out_6716422747633413136[185] = dt*(pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2));
|
|
out_6716422747633413136[186] = 0;
|
|
out_6716422747633413136[187] = 0;
|
|
out_6716422747633413136[188] = 0;
|
|
out_6716422747633413136[189] = 0;
|
|
out_6716422747633413136[190] = 0;
|
|
out_6716422747633413136[191] = 0;
|
|
out_6716422747633413136[192] = 0;
|
|
out_6716422747633413136[193] = 0;
|
|
out_6716422747633413136[194] = 0;
|
|
out_6716422747633413136[195] = 0;
|
|
out_6716422747633413136[196] = 0;
|
|
out_6716422747633413136[197] = 0;
|
|
out_6716422747633413136[198] = 1;
|
|
out_6716422747633413136[199] = 0;
|
|
out_6716422747633413136[200] = 0;
|
|
out_6716422747633413136[201] = 0;
|
|
out_6716422747633413136[202] = 0;
|
|
out_6716422747633413136[203] = 0;
|
|
out_6716422747633413136[204] = 0;
|
|
out_6716422747633413136[205] = 0;
|
|
out_6716422747633413136[206] = 0;
|
|
out_6716422747633413136[207] = 0;
|
|
out_6716422747633413136[208] = 0;
|
|
out_6716422747633413136[209] = 0;
|
|
out_6716422747633413136[210] = 0;
|
|
out_6716422747633413136[211] = 0;
|
|
out_6716422747633413136[212] = 0;
|
|
out_6716422747633413136[213] = 0;
|
|
out_6716422747633413136[214] = 0;
|
|
out_6716422747633413136[215] = 0;
|
|
out_6716422747633413136[216] = 0;
|
|
out_6716422747633413136[217] = 0;
|
|
out_6716422747633413136[218] = 0;
|
|
out_6716422747633413136[219] = 0;
|
|
out_6716422747633413136[220] = 1;
|
|
out_6716422747633413136[221] = 0;
|
|
out_6716422747633413136[222] = 0;
|
|
out_6716422747633413136[223] = 0;
|
|
out_6716422747633413136[224] = 0;
|
|
out_6716422747633413136[225] = 0;
|
|
out_6716422747633413136[226] = 0;
|
|
out_6716422747633413136[227] = 0;
|
|
out_6716422747633413136[228] = 0;
|
|
out_6716422747633413136[229] = 0;
|
|
out_6716422747633413136[230] = 0;
|
|
out_6716422747633413136[231] = 0;
|
|
out_6716422747633413136[232] = 0;
|
|
out_6716422747633413136[233] = 0;
|
|
out_6716422747633413136[234] = 0;
|
|
out_6716422747633413136[235] = 0;
|
|
out_6716422747633413136[236] = 0;
|
|
out_6716422747633413136[237] = 0;
|
|
out_6716422747633413136[238] = 0;
|
|
out_6716422747633413136[239] = 0;
|
|
out_6716422747633413136[240] = 0;
|
|
out_6716422747633413136[241] = 0;
|
|
out_6716422747633413136[242] = 1;
|
|
out_6716422747633413136[243] = 0;
|
|
out_6716422747633413136[244] = 0;
|
|
out_6716422747633413136[245] = 0;
|
|
out_6716422747633413136[246] = 0;
|
|
out_6716422747633413136[247] = 0;
|
|
out_6716422747633413136[248] = 0;
|
|
out_6716422747633413136[249] = 0;
|
|
out_6716422747633413136[250] = 0;
|
|
out_6716422747633413136[251] = 0;
|
|
out_6716422747633413136[252] = 0;
|
|
out_6716422747633413136[253] = 0;
|
|
out_6716422747633413136[254] = 0;
|
|
out_6716422747633413136[255] = 0;
|
|
out_6716422747633413136[256] = 0;
|
|
out_6716422747633413136[257] = 0;
|
|
out_6716422747633413136[258] = 0;
|
|
out_6716422747633413136[259] = 0;
|
|
out_6716422747633413136[260] = 0;
|
|
out_6716422747633413136[261] = 0;
|
|
out_6716422747633413136[262] = 0;
|
|
out_6716422747633413136[263] = 0;
|
|
out_6716422747633413136[264] = 1;
|
|
out_6716422747633413136[265] = 0;
|
|
out_6716422747633413136[266] = 0;
|
|
out_6716422747633413136[267] = 0;
|
|
out_6716422747633413136[268] = 0;
|
|
out_6716422747633413136[269] = 0;
|
|
out_6716422747633413136[270] = 0;
|
|
out_6716422747633413136[271] = 0;
|
|
out_6716422747633413136[272] = 0;
|
|
out_6716422747633413136[273] = 0;
|
|
out_6716422747633413136[274] = 0;
|
|
out_6716422747633413136[275] = 0;
|
|
out_6716422747633413136[276] = 0;
|
|
out_6716422747633413136[277] = 0;
|
|
out_6716422747633413136[278] = 0;
|
|
out_6716422747633413136[279] = 0;
|
|
out_6716422747633413136[280] = 0;
|
|
out_6716422747633413136[281] = 0;
|
|
out_6716422747633413136[282] = 0;
|
|
out_6716422747633413136[283] = 0;
|
|
out_6716422747633413136[284] = 0;
|
|
out_6716422747633413136[285] = 0;
|
|
out_6716422747633413136[286] = 1;
|
|
out_6716422747633413136[287] = 0;
|
|
out_6716422747633413136[288] = 0;
|
|
out_6716422747633413136[289] = 0;
|
|
out_6716422747633413136[290] = 0;
|
|
out_6716422747633413136[291] = 0;
|
|
out_6716422747633413136[292] = 0;
|
|
out_6716422747633413136[293] = 0;
|
|
out_6716422747633413136[294] = 0;
|
|
out_6716422747633413136[295] = 0;
|
|
out_6716422747633413136[296] = 0;
|
|
out_6716422747633413136[297] = 0;
|
|
out_6716422747633413136[298] = 0;
|
|
out_6716422747633413136[299] = 0;
|
|
out_6716422747633413136[300] = 0;
|
|
out_6716422747633413136[301] = 0;
|
|
out_6716422747633413136[302] = 0;
|
|
out_6716422747633413136[303] = 0;
|
|
out_6716422747633413136[304] = 0;
|
|
out_6716422747633413136[305] = 0;
|
|
out_6716422747633413136[306] = 0;
|
|
out_6716422747633413136[307] = 0;
|
|
out_6716422747633413136[308] = 1;
|
|
out_6716422747633413136[309] = 0;
|
|
out_6716422747633413136[310] = 0;
|
|
out_6716422747633413136[311] = 0;
|
|
out_6716422747633413136[312] = 0;
|
|
out_6716422747633413136[313] = 0;
|
|
out_6716422747633413136[314] = 0;
|
|
out_6716422747633413136[315] = 0;
|
|
out_6716422747633413136[316] = 0;
|
|
out_6716422747633413136[317] = 0;
|
|
out_6716422747633413136[318] = 0;
|
|
out_6716422747633413136[319] = 0;
|
|
out_6716422747633413136[320] = 0;
|
|
out_6716422747633413136[321] = 0;
|
|
out_6716422747633413136[322] = 0;
|
|
out_6716422747633413136[323] = 0;
|
|
out_6716422747633413136[324] = 0;
|
|
out_6716422747633413136[325] = 0;
|
|
out_6716422747633413136[326] = 0;
|
|
out_6716422747633413136[327] = 0;
|
|
out_6716422747633413136[328] = 0;
|
|
out_6716422747633413136[329] = 0;
|
|
out_6716422747633413136[330] = 1;
|
|
out_6716422747633413136[331] = 0;
|
|
out_6716422747633413136[332] = 0;
|
|
out_6716422747633413136[333] = 0;
|
|
out_6716422747633413136[334] = 0;
|
|
out_6716422747633413136[335] = 0;
|
|
out_6716422747633413136[336] = 0;
|
|
out_6716422747633413136[337] = 0;
|
|
out_6716422747633413136[338] = 0;
|
|
out_6716422747633413136[339] = 0;
|
|
out_6716422747633413136[340] = 0;
|
|
out_6716422747633413136[341] = 0;
|
|
out_6716422747633413136[342] = 0;
|
|
out_6716422747633413136[343] = 0;
|
|
out_6716422747633413136[344] = 0;
|
|
out_6716422747633413136[345] = 0;
|
|
out_6716422747633413136[346] = 0;
|
|
out_6716422747633413136[347] = 0;
|
|
out_6716422747633413136[348] = 0;
|
|
out_6716422747633413136[349] = 0;
|
|
out_6716422747633413136[350] = 0;
|
|
out_6716422747633413136[351] = 0;
|
|
out_6716422747633413136[352] = 1;
|
|
out_6716422747633413136[353] = 0;
|
|
out_6716422747633413136[354] = 0;
|
|
out_6716422747633413136[355] = 0;
|
|
out_6716422747633413136[356] = 0;
|
|
out_6716422747633413136[357] = 0;
|
|
out_6716422747633413136[358] = 0;
|
|
out_6716422747633413136[359] = 0;
|
|
out_6716422747633413136[360] = 0;
|
|
out_6716422747633413136[361] = 0;
|
|
out_6716422747633413136[362] = 0;
|
|
out_6716422747633413136[363] = 0;
|
|
out_6716422747633413136[364] = 0;
|
|
out_6716422747633413136[365] = 0;
|
|
out_6716422747633413136[366] = 0;
|
|
out_6716422747633413136[367] = 0;
|
|
out_6716422747633413136[368] = 0;
|
|
out_6716422747633413136[369] = 0;
|
|
out_6716422747633413136[370] = 0;
|
|
out_6716422747633413136[371] = 0;
|
|
out_6716422747633413136[372] = 0;
|
|
out_6716422747633413136[373] = 0;
|
|
out_6716422747633413136[374] = 1;
|
|
out_6716422747633413136[375] = 0;
|
|
out_6716422747633413136[376] = 0;
|
|
out_6716422747633413136[377] = 0;
|
|
out_6716422747633413136[378] = 0;
|
|
out_6716422747633413136[379] = 0;
|
|
out_6716422747633413136[380] = 0;
|
|
out_6716422747633413136[381] = 0;
|
|
out_6716422747633413136[382] = 0;
|
|
out_6716422747633413136[383] = 0;
|
|
out_6716422747633413136[384] = 0;
|
|
out_6716422747633413136[385] = 0;
|
|
out_6716422747633413136[386] = 0;
|
|
out_6716422747633413136[387] = 0;
|
|
out_6716422747633413136[388] = 0;
|
|
out_6716422747633413136[389] = 0;
|
|
out_6716422747633413136[390] = 0;
|
|
out_6716422747633413136[391] = 0;
|
|
out_6716422747633413136[392] = 0;
|
|
out_6716422747633413136[393] = 0;
|
|
out_6716422747633413136[394] = 0;
|
|
out_6716422747633413136[395] = 0;
|
|
out_6716422747633413136[396] = 1;
|
|
out_6716422747633413136[397] = 0;
|
|
out_6716422747633413136[398] = 0;
|
|
out_6716422747633413136[399] = 0;
|
|
out_6716422747633413136[400] = 0;
|
|
out_6716422747633413136[401] = 0;
|
|
out_6716422747633413136[402] = 0;
|
|
out_6716422747633413136[403] = 0;
|
|
out_6716422747633413136[404] = 0;
|
|
out_6716422747633413136[405] = 0;
|
|
out_6716422747633413136[406] = 0;
|
|
out_6716422747633413136[407] = 0;
|
|
out_6716422747633413136[408] = 0;
|
|
out_6716422747633413136[409] = 0;
|
|
out_6716422747633413136[410] = 0;
|
|
out_6716422747633413136[411] = 0;
|
|
out_6716422747633413136[412] = 0;
|
|
out_6716422747633413136[413] = 0;
|
|
out_6716422747633413136[414] = 0;
|
|
out_6716422747633413136[415] = 0;
|
|
out_6716422747633413136[416] = 0;
|
|
out_6716422747633413136[417] = 0;
|
|
out_6716422747633413136[418] = 1;
|
|
out_6716422747633413136[419] = 0;
|
|
out_6716422747633413136[420] = 0;
|
|
out_6716422747633413136[421] = 0;
|
|
out_6716422747633413136[422] = 0;
|
|
out_6716422747633413136[423] = 0;
|
|
out_6716422747633413136[424] = 0;
|
|
out_6716422747633413136[425] = 0;
|
|
out_6716422747633413136[426] = 0;
|
|
out_6716422747633413136[427] = 0;
|
|
out_6716422747633413136[428] = 0;
|
|
out_6716422747633413136[429] = 0;
|
|
out_6716422747633413136[430] = 0;
|
|
out_6716422747633413136[431] = 0;
|
|
out_6716422747633413136[432] = 0;
|
|
out_6716422747633413136[433] = 0;
|
|
out_6716422747633413136[434] = 0;
|
|
out_6716422747633413136[435] = 0;
|
|
out_6716422747633413136[436] = 0;
|
|
out_6716422747633413136[437] = 0;
|
|
out_6716422747633413136[438] = 0;
|
|
out_6716422747633413136[439] = 0;
|
|
out_6716422747633413136[440] = 1;
|
|
}
|
|
void h_4(double *state, double *unused, double *out_7766204740505938751) {
|
|
out_7766204740505938751[0] = state[10] + state[13];
|
|
out_7766204740505938751[1] = state[11] + state[14];
|
|
out_7766204740505938751[2] = state[12] + state[15];
|
|
}
|
|
void H_4(double *state, double *unused, double *out_5987995952750113477) {
|
|
out_5987995952750113477[0] = 0;
|
|
out_5987995952750113477[1] = 0;
|
|
out_5987995952750113477[2] = 0;
|
|
out_5987995952750113477[3] = 0;
|
|
out_5987995952750113477[4] = 0;
|
|
out_5987995952750113477[5] = 0;
|
|
out_5987995952750113477[6] = 0;
|
|
out_5987995952750113477[7] = 0;
|
|
out_5987995952750113477[8] = 0;
|
|
out_5987995952750113477[9] = 0;
|
|
out_5987995952750113477[10] = 1;
|
|
out_5987995952750113477[11] = 0;
|
|
out_5987995952750113477[12] = 0;
|
|
out_5987995952750113477[13] = 1;
|
|
out_5987995952750113477[14] = 0;
|
|
out_5987995952750113477[15] = 0;
|
|
out_5987995952750113477[16] = 0;
|
|
out_5987995952750113477[17] = 0;
|
|
out_5987995952750113477[18] = 0;
|
|
out_5987995952750113477[19] = 0;
|
|
out_5987995952750113477[20] = 0;
|
|
out_5987995952750113477[21] = 0;
|
|
out_5987995952750113477[22] = 0;
|
|
out_5987995952750113477[23] = 0;
|
|
out_5987995952750113477[24] = 0;
|
|
out_5987995952750113477[25] = 0;
|
|
out_5987995952750113477[26] = 0;
|
|
out_5987995952750113477[27] = 0;
|
|
out_5987995952750113477[28] = 0;
|
|
out_5987995952750113477[29] = 0;
|
|
out_5987995952750113477[30] = 0;
|
|
out_5987995952750113477[31] = 0;
|
|
out_5987995952750113477[32] = 0;
|
|
out_5987995952750113477[33] = 1;
|
|
out_5987995952750113477[34] = 0;
|
|
out_5987995952750113477[35] = 0;
|
|
out_5987995952750113477[36] = 1;
|
|
out_5987995952750113477[37] = 0;
|
|
out_5987995952750113477[38] = 0;
|
|
out_5987995952750113477[39] = 0;
|
|
out_5987995952750113477[40] = 0;
|
|
out_5987995952750113477[41] = 0;
|
|
out_5987995952750113477[42] = 0;
|
|
out_5987995952750113477[43] = 0;
|
|
out_5987995952750113477[44] = 0;
|
|
out_5987995952750113477[45] = 0;
|
|
out_5987995952750113477[46] = 0;
|
|
out_5987995952750113477[47] = 0;
|
|
out_5987995952750113477[48] = 0;
|
|
out_5987995952750113477[49] = 0;
|
|
out_5987995952750113477[50] = 0;
|
|
out_5987995952750113477[51] = 0;
|
|
out_5987995952750113477[52] = 0;
|
|
out_5987995952750113477[53] = 0;
|
|
out_5987995952750113477[54] = 0;
|
|
out_5987995952750113477[55] = 0;
|
|
out_5987995952750113477[56] = 1;
|
|
out_5987995952750113477[57] = 0;
|
|
out_5987995952750113477[58] = 0;
|
|
out_5987995952750113477[59] = 1;
|
|
out_5987995952750113477[60] = 0;
|
|
out_5987995952750113477[61] = 0;
|
|
out_5987995952750113477[62] = 0;
|
|
out_5987995952750113477[63] = 0;
|
|
out_5987995952750113477[64] = 0;
|
|
out_5987995952750113477[65] = 0;
|
|
}
|
|
void h_9(double *state, double *unused, double *out_2388230207696517986) {
|
|
out_2388230207696517986[0] = state[10];
|
|
out_2388230207696517986[1] = state[11];
|
|
out_2388230207696517986[2] = state[12];
|
|
}
|
|
void H_9(double *state, double *unused, double *out_6229185599379704122) {
|
|
out_6229185599379704122[0] = 0;
|
|
out_6229185599379704122[1] = 0;
|
|
out_6229185599379704122[2] = 0;
|
|
out_6229185599379704122[3] = 0;
|
|
out_6229185599379704122[4] = 0;
|
|
out_6229185599379704122[5] = 0;
|
|
out_6229185599379704122[6] = 0;
|
|
out_6229185599379704122[7] = 0;
|
|
out_6229185599379704122[8] = 0;
|
|
out_6229185599379704122[9] = 0;
|
|
out_6229185599379704122[10] = 1;
|
|
out_6229185599379704122[11] = 0;
|
|
out_6229185599379704122[12] = 0;
|
|
out_6229185599379704122[13] = 0;
|
|
out_6229185599379704122[14] = 0;
|
|
out_6229185599379704122[15] = 0;
|
|
out_6229185599379704122[16] = 0;
|
|
out_6229185599379704122[17] = 0;
|
|
out_6229185599379704122[18] = 0;
|
|
out_6229185599379704122[19] = 0;
|
|
out_6229185599379704122[20] = 0;
|
|
out_6229185599379704122[21] = 0;
|
|
out_6229185599379704122[22] = 0;
|
|
out_6229185599379704122[23] = 0;
|
|
out_6229185599379704122[24] = 0;
|
|
out_6229185599379704122[25] = 0;
|
|
out_6229185599379704122[26] = 0;
|
|
out_6229185599379704122[27] = 0;
|
|
out_6229185599379704122[28] = 0;
|
|
out_6229185599379704122[29] = 0;
|
|
out_6229185599379704122[30] = 0;
|
|
out_6229185599379704122[31] = 0;
|
|
out_6229185599379704122[32] = 0;
|
|
out_6229185599379704122[33] = 1;
|
|
out_6229185599379704122[34] = 0;
|
|
out_6229185599379704122[35] = 0;
|
|
out_6229185599379704122[36] = 0;
|
|
out_6229185599379704122[37] = 0;
|
|
out_6229185599379704122[38] = 0;
|
|
out_6229185599379704122[39] = 0;
|
|
out_6229185599379704122[40] = 0;
|
|
out_6229185599379704122[41] = 0;
|
|
out_6229185599379704122[42] = 0;
|
|
out_6229185599379704122[43] = 0;
|
|
out_6229185599379704122[44] = 0;
|
|
out_6229185599379704122[45] = 0;
|
|
out_6229185599379704122[46] = 0;
|
|
out_6229185599379704122[47] = 0;
|
|
out_6229185599379704122[48] = 0;
|
|
out_6229185599379704122[49] = 0;
|
|
out_6229185599379704122[50] = 0;
|
|
out_6229185599379704122[51] = 0;
|
|
out_6229185599379704122[52] = 0;
|
|
out_6229185599379704122[53] = 0;
|
|
out_6229185599379704122[54] = 0;
|
|
out_6229185599379704122[55] = 0;
|
|
out_6229185599379704122[56] = 1;
|
|
out_6229185599379704122[57] = 0;
|
|
out_6229185599379704122[58] = 0;
|
|
out_6229185599379704122[59] = 0;
|
|
out_6229185599379704122[60] = 0;
|
|
out_6229185599379704122[61] = 0;
|
|
out_6229185599379704122[62] = 0;
|
|
out_6229185599379704122[63] = 0;
|
|
out_6229185599379704122[64] = 0;
|
|
out_6229185599379704122[65] = 0;
|
|
}
|
|
void h_10(double *state, double *unused, double *out_9053893872496357561) {
|
|
out_9053893872496357561[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_9053893872496357561[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_9053893872496357561[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_140518164600154776) {
|
|
out_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[7] = 0;
|
|
out_140518164600154776[8] = 0;
|
|
out_140518164600154776[9] = 0;
|
|
out_140518164600154776[10] = 0;
|
|
out_140518164600154776[11] = 0;
|
|
out_140518164600154776[12] = 0;
|
|
out_140518164600154776[13] = 0;
|
|
out_140518164600154776[14] = 0;
|
|
out_140518164600154776[15] = 0;
|
|
out_140518164600154776[16] = 1;
|
|
out_140518164600154776[17] = 0;
|
|
out_140518164600154776[18] = 0;
|
|
out_140518164600154776[19] = 1;
|
|
out_140518164600154776[20] = 0;
|
|
out_140518164600154776[21] = 0;
|
|
out_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[29] = 0;
|
|
out_140518164600154776[30] = 0;
|
|
out_140518164600154776[31] = 0;
|
|
out_140518164600154776[32] = 0;
|
|
out_140518164600154776[33] = 0;
|
|
out_140518164600154776[34] = 0;
|
|
out_140518164600154776[35] = 0;
|
|
out_140518164600154776[36] = 0;
|
|
out_140518164600154776[37] = 0;
|
|
out_140518164600154776[38] = 0;
|
|
out_140518164600154776[39] = 1;
|
|
out_140518164600154776[40] = 0;
|
|
out_140518164600154776[41] = 0;
|
|
out_140518164600154776[42] = 1;
|
|
out_140518164600154776[43] = 0;
|
|
out_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[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_140518164600154776[51] = 0;
|
|
out_140518164600154776[52] = 0;
|
|
out_140518164600154776[53] = 0;
|
|
out_140518164600154776[54] = 0;
|
|
out_140518164600154776[55] = 0;
|
|
out_140518164600154776[56] = 0;
|
|
out_140518164600154776[57] = 0;
|
|
out_140518164600154776[58] = 0;
|
|
out_140518164600154776[59] = 0;
|
|
out_140518164600154776[60] = 0;
|
|
out_140518164600154776[61] = 0;
|
|
out_140518164600154776[62] = 1;
|
|
out_140518164600154776[63] = 0;
|
|
out_140518164600154776[64] = 0;
|
|
out_140518164600154776[65] = 1;
|
|
}
|
|
void h_12(double *state, double *unused, double *out_835136029362175519) {
|
|
out_835136029362175519[0] = state[0];
|
|
out_835136029362175519[1] = state[1];
|
|
out_835136029362175519[2] = state[2];
|
|
}
|
|
void H_12(double *state, double *unused, double *out_6609094977797707144) {
|
|
out_6609094977797707144[0] = 1;
|
|
out_6609094977797707144[1] = 0;
|
|
out_6609094977797707144[2] = 0;
|
|
out_6609094977797707144[3] = 0;
|
|
out_6609094977797707144[4] = 0;
|
|
out_6609094977797707144[5] = 0;
|
|
out_6609094977797707144[6] = 0;
|
|
out_6609094977797707144[7] = 0;
|
|
out_6609094977797707144[8] = 0;
|
|
out_6609094977797707144[9] = 0;
|
|
out_6609094977797707144[10] = 0;
|
|
out_6609094977797707144[11] = 0;
|
|
out_6609094977797707144[12] = 0;
|
|
out_6609094977797707144[13] = 0;
|
|
out_6609094977797707144[14] = 0;
|
|
out_6609094977797707144[15] = 0;
|
|
out_6609094977797707144[16] = 0;
|
|
out_6609094977797707144[17] = 0;
|
|
out_6609094977797707144[18] = 0;
|
|
out_6609094977797707144[19] = 0;
|
|
out_6609094977797707144[20] = 0;
|
|
out_6609094977797707144[21] = 0;
|
|
out_6609094977797707144[22] = 0;
|
|
out_6609094977797707144[23] = 1;
|
|
out_6609094977797707144[24] = 0;
|
|
out_6609094977797707144[25] = 0;
|
|
out_6609094977797707144[26] = 0;
|
|
out_6609094977797707144[27] = 0;
|
|
out_6609094977797707144[28] = 0;
|
|
out_6609094977797707144[29] = 0;
|
|
out_6609094977797707144[30] = 0;
|
|
out_6609094977797707144[31] = 0;
|
|
out_6609094977797707144[32] = 0;
|
|
out_6609094977797707144[33] = 0;
|
|
out_6609094977797707144[34] = 0;
|
|
out_6609094977797707144[35] = 0;
|
|
out_6609094977797707144[36] = 0;
|
|
out_6609094977797707144[37] = 0;
|
|
out_6609094977797707144[38] = 0;
|
|
out_6609094977797707144[39] = 0;
|
|
out_6609094977797707144[40] = 0;
|
|
out_6609094977797707144[41] = 0;
|
|
out_6609094977797707144[42] = 0;
|
|
out_6609094977797707144[43] = 0;
|
|
out_6609094977797707144[44] = 0;
|
|
out_6609094977797707144[45] = 0;
|
|
out_6609094977797707144[46] = 1;
|
|
out_6609094977797707144[47] = 0;
|
|
out_6609094977797707144[48] = 0;
|
|
out_6609094977797707144[49] = 0;
|
|
out_6609094977797707144[50] = 0;
|
|
out_6609094977797707144[51] = 0;
|
|
out_6609094977797707144[52] = 0;
|
|
out_6609094977797707144[53] = 0;
|
|
out_6609094977797707144[54] = 0;
|
|
out_6609094977797707144[55] = 0;
|
|
out_6609094977797707144[56] = 0;
|
|
out_6609094977797707144[57] = 0;
|
|
out_6609094977797707144[58] = 0;
|
|
out_6609094977797707144[59] = 0;
|
|
out_6609094977797707144[60] = 0;
|
|
out_6609094977797707144[61] = 0;
|
|
out_6609094977797707144[62] = 0;
|
|
out_6609094977797707144[63] = 0;
|
|
out_6609094977797707144[64] = 0;
|
|
out_6609094977797707144[65] = 0;
|
|
}
|
|
void h_35(double *state, double *unused, double *out_93555897102822674) {
|
|
out_93555897102822674[0] = state[7];
|
|
out_93555897102822674[1] = state[8];
|
|
out_93555897102822674[2] = state[9];
|
|
}
|
|
void H_35(double *state, double *unused, double *out_9092086063586830763) {
|
|
out_9092086063586830763[0] = 0;
|
|
out_9092086063586830763[1] = 0;
|
|
out_9092086063586830763[2] = 0;
|
|
out_9092086063586830763[3] = 0;
|
|
out_9092086063586830763[4] = 0;
|
|
out_9092086063586830763[5] = 0;
|
|
out_9092086063586830763[6] = 0;
|
|
out_9092086063586830763[7] = 1;
|
|
out_9092086063586830763[8] = 0;
|
|
out_9092086063586830763[9] = 0;
|
|
out_9092086063586830763[10] = 0;
|
|
out_9092086063586830763[11] = 0;
|
|
out_9092086063586830763[12] = 0;
|
|
out_9092086063586830763[13] = 0;
|
|
out_9092086063586830763[14] = 0;
|
|
out_9092086063586830763[15] = 0;
|
|
out_9092086063586830763[16] = 0;
|
|
out_9092086063586830763[17] = 0;
|
|
out_9092086063586830763[18] = 0;
|
|
out_9092086063586830763[19] = 0;
|
|
out_9092086063586830763[20] = 0;
|
|
out_9092086063586830763[21] = 0;
|
|
out_9092086063586830763[22] = 0;
|
|
out_9092086063586830763[23] = 0;
|
|
out_9092086063586830763[24] = 0;
|
|
out_9092086063586830763[25] = 0;
|
|
out_9092086063586830763[26] = 0;
|
|
out_9092086063586830763[27] = 0;
|
|
out_9092086063586830763[28] = 0;
|
|
out_9092086063586830763[29] = 0;
|
|
out_9092086063586830763[30] = 1;
|
|
out_9092086063586830763[31] = 0;
|
|
out_9092086063586830763[32] = 0;
|
|
out_9092086063586830763[33] = 0;
|
|
out_9092086063586830763[34] = 0;
|
|
out_9092086063586830763[35] = 0;
|
|
out_9092086063586830763[36] = 0;
|
|
out_9092086063586830763[37] = 0;
|
|
out_9092086063586830763[38] = 0;
|
|
out_9092086063586830763[39] = 0;
|
|
out_9092086063586830763[40] = 0;
|
|
out_9092086063586830763[41] = 0;
|
|
out_9092086063586830763[42] = 0;
|
|
out_9092086063586830763[43] = 0;
|
|
out_9092086063586830763[44] = 0;
|
|
out_9092086063586830763[45] = 0;
|
|
out_9092086063586830763[46] = 0;
|
|
out_9092086063586830763[47] = 0;
|
|
out_9092086063586830763[48] = 0;
|
|
out_9092086063586830763[49] = 0;
|
|
out_9092086063586830763[50] = 0;
|
|
out_9092086063586830763[51] = 0;
|
|
out_9092086063586830763[52] = 0;
|
|
out_9092086063586830763[53] = 1;
|
|
out_9092086063586830763[54] = 0;
|
|
out_9092086063586830763[55] = 0;
|
|
out_9092086063586830763[56] = 0;
|
|
out_9092086063586830763[57] = 0;
|
|
out_9092086063586830763[58] = 0;
|
|
out_9092086063586830763[59] = 0;
|
|
out_9092086063586830763[60] = 0;
|
|
out_9092086063586830763[61] = 0;
|
|
out_9092086063586830763[62] = 0;
|
|
out_9092086063586830763[63] = 0;
|
|
out_9092086063586830763[64] = 0;
|
|
out_9092086063586830763[65] = 0;
|
|
}
|
|
void h_32(double *state, double *unused, double *out_6290965057558394135) {
|
|
out_6290965057558394135[0] = state[3];
|
|
out_6290965057558394135[1] = state[4];
|
|
out_6290965057558394135[2] = state[5];
|
|
out_6290965057558394135[3] = state[6];
|
|
}
|
|
void H_32(double *state, double *unused, double *out_2439793506428604497) {
|
|
out_2439793506428604497[0] = 0;
|
|
out_2439793506428604497[1] = 0;
|
|
out_2439793506428604497[2] = 0;
|
|
out_2439793506428604497[3] = 1;
|
|
out_2439793506428604497[4] = 0;
|
|
out_2439793506428604497[5] = 0;
|
|
out_2439793506428604497[6] = 0;
|
|
out_2439793506428604497[7] = 0;
|
|
out_2439793506428604497[8] = 0;
|
|
out_2439793506428604497[9] = 0;
|
|
out_2439793506428604497[10] = 0;
|
|
out_2439793506428604497[11] = 0;
|
|
out_2439793506428604497[12] = 0;
|
|
out_2439793506428604497[13] = 0;
|
|
out_2439793506428604497[14] = 0;
|
|
out_2439793506428604497[15] = 0;
|
|
out_2439793506428604497[16] = 0;
|
|
out_2439793506428604497[17] = 0;
|
|
out_2439793506428604497[18] = 0;
|
|
out_2439793506428604497[19] = 0;
|
|
out_2439793506428604497[20] = 0;
|
|
out_2439793506428604497[21] = 0;
|
|
out_2439793506428604497[22] = 0;
|
|
out_2439793506428604497[23] = 0;
|
|
out_2439793506428604497[24] = 0;
|
|
out_2439793506428604497[25] = 0;
|
|
out_2439793506428604497[26] = 1;
|
|
out_2439793506428604497[27] = 0;
|
|
out_2439793506428604497[28] = 0;
|
|
out_2439793506428604497[29] = 0;
|
|
out_2439793506428604497[30] = 0;
|
|
out_2439793506428604497[31] = 0;
|
|
out_2439793506428604497[32] = 0;
|
|
out_2439793506428604497[33] = 0;
|
|
out_2439793506428604497[34] = 0;
|
|
out_2439793506428604497[35] = 0;
|
|
out_2439793506428604497[36] = 0;
|
|
out_2439793506428604497[37] = 0;
|
|
out_2439793506428604497[38] = 0;
|
|
out_2439793506428604497[39] = 0;
|
|
out_2439793506428604497[40] = 0;
|
|
out_2439793506428604497[41] = 0;
|
|
out_2439793506428604497[42] = 0;
|
|
out_2439793506428604497[43] = 0;
|
|
out_2439793506428604497[44] = 0;
|
|
out_2439793506428604497[45] = 0;
|
|
out_2439793506428604497[46] = 0;
|
|
out_2439793506428604497[47] = 0;
|
|
out_2439793506428604497[48] = 0;
|
|
out_2439793506428604497[49] = 1;
|
|
out_2439793506428604497[50] = 0;
|
|
out_2439793506428604497[51] = 0;
|
|
out_2439793506428604497[52] = 0;
|
|
out_2439793506428604497[53] = 0;
|
|
out_2439793506428604497[54] = 0;
|
|
out_2439793506428604497[55] = 0;
|
|
out_2439793506428604497[56] = 0;
|
|
out_2439793506428604497[57] = 0;
|
|
out_2439793506428604497[58] = 0;
|
|
out_2439793506428604497[59] = 0;
|
|
out_2439793506428604497[60] = 0;
|
|
out_2439793506428604497[61] = 0;
|
|
out_2439793506428604497[62] = 0;
|
|
out_2439793506428604497[63] = 0;
|
|
out_2439793506428604497[64] = 0;
|
|
out_2439793506428604497[65] = 0;
|
|
out_2439793506428604497[66] = 0;
|
|
out_2439793506428604497[67] = 0;
|
|
out_2439793506428604497[68] = 0;
|
|
out_2439793506428604497[69] = 0;
|
|
out_2439793506428604497[70] = 0;
|
|
out_2439793506428604497[71] = 0;
|
|
out_2439793506428604497[72] = 1;
|
|
out_2439793506428604497[73] = 0;
|
|
out_2439793506428604497[74] = 0;
|
|
out_2439793506428604497[75] = 0;
|
|
out_2439793506428604497[76] = 0;
|
|
out_2439793506428604497[77] = 0;
|
|
out_2439793506428604497[78] = 0;
|
|
out_2439793506428604497[79] = 0;
|
|
out_2439793506428604497[80] = 0;
|
|
out_2439793506428604497[81] = 0;
|
|
out_2439793506428604497[82] = 0;
|
|
out_2439793506428604497[83] = 0;
|
|
out_2439793506428604497[84] = 0;
|
|
out_2439793506428604497[85] = 0;
|
|
out_2439793506428604497[86] = 0;
|
|
out_2439793506428604497[87] = 0;
|
|
}
|
|
void h_13(double *state, double *unused, double *out_8490099498842921417) {
|
|
out_8490099498842921417[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_8490099498842921417[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_8490099498842921417[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_8653375813311677152) {
|
|
out_8653375813311677152[0] = 0;
|
|
out_8653375813311677152[1] = 0;
|
|
out_8653375813311677152[2] = 0;
|
|
out_8653375813311677152[3] = 2*state[3]*state[7] - 2*state[5]*state[9] + 2*state[6]*state[8];
|
|
out_8653375813311677152[4] = 2*state[4]*state[7] + 2*state[5]*state[8] + 2*state[6]*state[9];
|
|
out_8653375813311677152[5] = -2*state[3]*state[9] + 2*state[4]*state[8] - 2*state[5]*state[7];
|
|
out_8653375813311677152[6] = 2*state[3]*state[8] + 2*state[4]*state[9] - 2*state[6]*state[7];
|
|
out_8653375813311677152[7] = pow(state[3], 2) + pow(state[4], 2) - pow(state[5], 2) - pow(state[6], 2);
|
|
out_8653375813311677152[8] = 2*state[3]*state[6] + 2*state[4]*state[5];
|
|
out_8653375813311677152[9] = -2*state[3]*state[5] + 2*state[4]*state[6];
|
|
out_8653375813311677152[10] = 0;
|
|
out_8653375813311677152[11] = 0;
|
|
out_8653375813311677152[12] = 0;
|
|
out_8653375813311677152[13] = 0;
|
|
out_8653375813311677152[14] = 0;
|
|
out_8653375813311677152[15] = 0;
|
|
out_8653375813311677152[16] = 0;
|
|
out_8653375813311677152[17] = 0;
|
|
out_8653375813311677152[18] = 0;
|
|
out_8653375813311677152[19] = 0;
|
|
out_8653375813311677152[20] = 0;
|
|
out_8653375813311677152[21] = 0;
|
|
out_8653375813311677152[22] = 0;
|
|
out_8653375813311677152[23] = 0;
|
|
out_8653375813311677152[24] = 0;
|
|
out_8653375813311677152[25] = 2*state[3]*state[8] + 2*state[4]*state[9] - 2*state[6]*state[7];
|
|
out_8653375813311677152[26] = 2*state[3]*state[9] - 2*state[4]*state[8] + 2*state[5]*state[7];
|
|
out_8653375813311677152[27] = 2*state[4]*state[7] + 2*state[5]*state[8] + 2*state[6]*state[9];
|
|
out_8653375813311677152[28] = -2*state[3]*state[7] + 2*state[5]*state[9] - 2*state[6]*state[8];
|
|
out_8653375813311677152[29] = -2*state[3]*state[6] + 2*state[4]*state[5];
|
|
out_8653375813311677152[30] = pow(state[3], 2) - pow(state[4], 2) + pow(state[5], 2) - pow(state[6], 2);
|
|
out_8653375813311677152[31] = 2*state[3]*state[4] + 2*state[5]*state[6];
|
|
out_8653375813311677152[32] = 0;
|
|
out_8653375813311677152[33] = 0;
|
|
out_8653375813311677152[34] = 0;
|
|
out_8653375813311677152[35] = 0;
|
|
out_8653375813311677152[36] = 0;
|
|
out_8653375813311677152[37] = 0;
|
|
out_8653375813311677152[38] = 0;
|
|
out_8653375813311677152[39] = 0;
|
|
out_8653375813311677152[40] = 0;
|
|
out_8653375813311677152[41] = 0;
|
|
out_8653375813311677152[42] = 0;
|
|
out_8653375813311677152[43] = 0;
|
|
out_8653375813311677152[44] = 0;
|
|
out_8653375813311677152[45] = 0;
|
|
out_8653375813311677152[46] = 0;
|
|
out_8653375813311677152[47] = 2*state[3]*state[9] - 2*state[4]*state[8] + 2*state[5]*state[7];
|
|
out_8653375813311677152[48] = -2*state[3]*state[8] - 2*state[4]*state[9] + 2*state[6]*state[7];
|
|
out_8653375813311677152[49] = 2*state[3]*state[7] - 2*state[5]*state[9] + 2*state[6]*state[8];
|
|
out_8653375813311677152[50] = 2*state[4]*state[7] + 2*state[5]*state[8] + 2*state[6]*state[9];
|
|
out_8653375813311677152[51] = 2*state[3]*state[5] + 2*state[4]*state[6];
|
|
out_8653375813311677152[52] = -2*state[3]*state[4] + 2*state[5]*state[6];
|
|
out_8653375813311677152[53] = pow(state[3], 2) - pow(state[4], 2) - pow(state[5], 2) + pow(state[6], 2);
|
|
out_8653375813311677152[54] = 0;
|
|
out_8653375813311677152[55] = 0;
|
|
out_8653375813311677152[56] = 0;
|
|
out_8653375813311677152[57] = 0;
|
|
out_8653375813311677152[58] = 0;
|
|
out_8653375813311677152[59] = 0;
|
|
out_8653375813311677152[60] = 0;
|
|
out_8653375813311677152[61] = 0;
|
|
out_8653375813311677152[62] = 0;
|
|
out_8653375813311677152[63] = 0;
|
|
out_8653375813311677152[64] = 0;
|
|
out_8653375813311677152[65] = 0;
|
|
}
|
|
void h_14(double *state, double *unused, double *out_2388230207696517986) {
|
|
out_2388230207696517986[0] = state[10];
|
|
out_2388230207696517986[1] = state[11];
|
|
out_2388230207696517986[2] = state[12];
|
|
}
|
|
void H_14(double *state, double *unused, double *out_6229185599379704122) {
|
|
out_6229185599379704122[0] = 0;
|
|
out_6229185599379704122[1] = 0;
|
|
out_6229185599379704122[2] = 0;
|
|
out_6229185599379704122[3] = 0;
|
|
out_6229185599379704122[4] = 0;
|
|
out_6229185599379704122[5] = 0;
|
|
out_6229185599379704122[6] = 0;
|
|
out_6229185599379704122[7] = 0;
|
|
out_6229185599379704122[8] = 0;
|
|
out_6229185599379704122[9] = 0;
|
|
out_6229185599379704122[10] = 1;
|
|
out_6229185599379704122[11] = 0;
|
|
out_6229185599379704122[12] = 0;
|
|
out_6229185599379704122[13] = 0;
|
|
out_6229185599379704122[14] = 0;
|
|
out_6229185599379704122[15] = 0;
|
|
out_6229185599379704122[16] = 0;
|
|
out_6229185599379704122[17] = 0;
|
|
out_6229185599379704122[18] = 0;
|
|
out_6229185599379704122[19] = 0;
|
|
out_6229185599379704122[20] = 0;
|
|
out_6229185599379704122[21] = 0;
|
|
out_6229185599379704122[22] = 0;
|
|
out_6229185599379704122[23] = 0;
|
|
out_6229185599379704122[24] = 0;
|
|
out_6229185599379704122[25] = 0;
|
|
out_6229185599379704122[26] = 0;
|
|
out_6229185599379704122[27] = 0;
|
|
out_6229185599379704122[28] = 0;
|
|
out_6229185599379704122[29] = 0;
|
|
out_6229185599379704122[30] = 0;
|
|
out_6229185599379704122[31] = 0;
|
|
out_6229185599379704122[32] = 0;
|
|
out_6229185599379704122[33] = 1;
|
|
out_6229185599379704122[34] = 0;
|
|
out_6229185599379704122[35] = 0;
|
|
out_6229185599379704122[36] = 0;
|
|
out_6229185599379704122[37] = 0;
|
|
out_6229185599379704122[38] = 0;
|
|
out_6229185599379704122[39] = 0;
|
|
out_6229185599379704122[40] = 0;
|
|
out_6229185599379704122[41] = 0;
|
|
out_6229185599379704122[42] = 0;
|
|
out_6229185599379704122[43] = 0;
|
|
out_6229185599379704122[44] = 0;
|
|
out_6229185599379704122[45] = 0;
|
|
out_6229185599379704122[46] = 0;
|
|
out_6229185599379704122[47] = 0;
|
|
out_6229185599379704122[48] = 0;
|
|
out_6229185599379704122[49] = 0;
|
|
out_6229185599379704122[50] = 0;
|
|
out_6229185599379704122[51] = 0;
|
|
out_6229185599379704122[52] = 0;
|
|
out_6229185599379704122[53] = 0;
|
|
out_6229185599379704122[54] = 0;
|
|
out_6229185599379704122[55] = 0;
|
|
out_6229185599379704122[56] = 1;
|
|
out_6229185599379704122[57] = 0;
|
|
out_6229185599379704122[58] = 0;
|
|
out_6229185599379704122[59] = 0;
|
|
out_6229185599379704122[60] = 0;
|
|
out_6229185599379704122[61] = 0;
|
|
out_6229185599379704122[62] = 0;
|
|
out_6229185599379704122[63] = 0;
|
|
out_6229185599379704122[64] = 0;
|
|
out_6229185599379704122[65] = 0;
|
|
}
|
|
void h_33(double *state, double *unused, double *out_3386383232379514061) {
|
|
out_3386383232379514061[0] = state[16];
|
|
out_3386383232379514061[1] = state[17];
|
|
out_3386383232379514061[2] = state[18];
|
|
}
|
|
void H_33(double *state, double *unused, double *out_5941529058947973159) {
|
|
out_5941529058947973159[0] = 0;
|
|
out_5941529058947973159[1] = 0;
|
|
out_5941529058947973159[2] = 0;
|
|
out_5941529058947973159[3] = 0;
|
|
out_5941529058947973159[4] = 0;
|
|
out_5941529058947973159[5] = 0;
|
|
out_5941529058947973159[6] = 0;
|
|
out_5941529058947973159[7] = 0;
|
|
out_5941529058947973159[8] = 0;
|
|
out_5941529058947973159[9] = 0;
|
|
out_5941529058947973159[10] = 0;
|
|
out_5941529058947973159[11] = 0;
|
|
out_5941529058947973159[12] = 0;
|
|
out_5941529058947973159[13] = 0;
|
|
out_5941529058947973159[14] = 0;
|
|
out_5941529058947973159[15] = 0;
|
|
out_5941529058947973159[16] = 1;
|
|
out_5941529058947973159[17] = 0;
|
|
out_5941529058947973159[18] = 0;
|
|
out_5941529058947973159[19] = 0;
|
|
out_5941529058947973159[20] = 0;
|
|
out_5941529058947973159[21] = 0;
|
|
out_5941529058947973159[22] = 0;
|
|
out_5941529058947973159[23] = 0;
|
|
out_5941529058947973159[24] = 0;
|
|
out_5941529058947973159[25] = 0;
|
|
out_5941529058947973159[26] = 0;
|
|
out_5941529058947973159[27] = 0;
|
|
out_5941529058947973159[28] = 0;
|
|
out_5941529058947973159[29] = 0;
|
|
out_5941529058947973159[30] = 0;
|
|
out_5941529058947973159[31] = 0;
|
|
out_5941529058947973159[32] = 0;
|
|
out_5941529058947973159[33] = 0;
|
|
out_5941529058947973159[34] = 0;
|
|
out_5941529058947973159[35] = 0;
|
|
out_5941529058947973159[36] = 0;
|
|
out_5941529058947973159[37] = 0;
|
|
out_5941529058947973159[38] = 0;
|
|
out_5941529058947973159[39] = 1;
|
|
out_5941529058947973159[40] = 0;
|
|
out_5941529058947973159[41] = 0;
|
|
out_5941529058947973159[42] = 0;
|
|
out_5941529058947973159[43] = 0;
|
|
out_5941529058947973159[44] = 0;
|
|
out_5941529058947973159[45] = 0;
|
|
out_5941529058947973159[46] = 0;
|
|
out_5941529058947973159[47] = 0;
|
|
out_5941529058947973159[48] = 0;
|
|
out_5941529058947973159[49] = 0;
|
|
out_5941529058947973159[50] = 0;
|
|
out_5941529058947973159[51] = 0;
|
|
out_5941529058947973159[52] = 0;
|
|
out_5941529058947973159[53] = 0;
|
|
out_5941529058947973159[54] = 0;
|
|
out_5941529058947973159[55] = 0;
|
|
out_5941529058947973159[56] = 0;
|
|
out_5941529058947973159[57] = 0;
|
|
out_5941529058947973159[58] = 0;
|
|
out_5941529058947973159[59] = 0;
|
|
out_5941529058947973159[60] = 0;
|
|
out_5941529058947973159[61] = 0;
|
|
out_5941529058947973159[62] = 1;
|
|
out_5941529058947973159[63] = 0;
|
|
out_5941529058947973159[64] = 0;
|
|
out_5941529058947973159[65] = 0;
|
|
}
|
|
#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);
|
|
}
|
|
void live_H(double *in_vec, double *out_734965431798586088) {
|
|
H(in_vec, out_734965431798586088);
|
|
}
|
|
void live_err_fun(double *nom_x, double *delta_x, double *out_7867135572176938343) {
|
|
err_fun(nom_x, delta_x, out_7867135572176938343);
|
|
}
|
|
void live_inv_err_fun(double *nom_x, double *true_x, double *out_4469849344899012791) {
|
|
inv_err_fun(nom_x, true_x, out_4469849344899012791);
|
|
}
|
|
void live_H_mod_fun(double *state, double *out_482044005104989923) {
|
|
H_mod_fun(state, out_482044005104989923);
|
|
}
|
|
void live_f_fun(double *state, double dt, double *out_5277401503139322236) {
|
|
f_fun(state, dt, out_5277401503139322236);
|
|
}
|
|
void live_F_fun(double *state, double dt, double *out_6716422747633413136) {
|
|
F_fun(state, dt, out_6716422747633413136);
|
|
}
|
|
void live_h_4(double *state, double *unused, double *out_7766204740505938751) {
|
|
h_4(state, unused, out_7766204740505938751);
|
|
}
|
|
void live_H_4(double *state, double *unused, double *out_5987995952750113477) {
|
|
H_4(state, unused, out_5987995952750113477);
|
|
}
|
|
void live_h_9(double *state, double *unused, double *out_2388230207696517986) {
|
|
h_9(state, unused, out_2388230207696517986);
|
|
}
|
|
void live_H_9(double *state, double *unused, double *out_6229185599379704122) {
|
|
H_9(state, unused, out_6229185599379704122);
|
|
}
|
|
void live_h_10(double *state, double *unused, double *out_9053893872496357561) {
|
|
h_10(state, unused, out_9053893872496357561);
|
|
}
|
|
void live_H_10(double *state, double *unused, double *out_140518164600154776) {
|
|
H_10(state, unused, out_140518164600154776);
|
|
}
|
|
void live_h_12(double *state, double *unused, double *out_835136029362175519) {
|
|
h_12(state, unused, out_835136029362175519);
|
|
}
|
|
void live_H_12(double *state, double *unused, double *out_6609094977797707144) {
|
|
H_12(state, unused, out_6609094977797707144);
|
|
}
|
|
void live_h_35(double *state, double *unused, double *out_93555897102822674) {
|
|
h_35(state, unused, out_93555897102822674);
|
|
}
|
|
void live_H_35(double *state, double *unused, double *out_9092086063586830763) {
|
|
H_35(state, unused, out_9092086063586830763);
|
|
}
|
|
void live_h_32(double *state, double *unused, double *out_6290965057558394135) {
|
|
h_32(state, unused, out_6290965057558394135);
|
|
}
|
|
void live_H_32(double *state, double *unused, double *out_2439793506428604497) {
|
|
H_32(state, unused, out_2439793506428604497);
|
|
}
|
|
void live_h_13(double *state, double *unused, double *out_8490099498842921417) {
|
|
h_13(state, unused, out_8490099498842921417);
|
|
}
|
|
void live_H_13(double *state, double *unused, double *out_8653375813311677152) {
|
|
H_13(state, unused, out_8653375813311677152);
|
|
}
|
|
void live_h_14(double *state, double *unused, double *out_2388230207696517986) {
|
|
h_14(state, unused, out_2388230207696517986);
|
|
}
|
|
void live_H_14(double *state, double *unused, double *out_6229185599379704122) {
|
|
H_14(state, unused, out_6229185599379704122);
|
|
}
|
|
void live_h_33(double *state, double *unused, double *out_3386383232379514061) {
|
|
h_33(state, unused, out_3386383232379514061);
|
|
}
|
|
void live_H_33(double *state, double *unused, double *out_5941529058947973159) {
|
|
H_33(state, unused, out_5941529058947973159);
|
|
}
|
|
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);
|