// NOTE: Auto-generated code; see tools/generate_reprojection_functions #include static inline void gen_reproject_jac_obj_p(FLT *out, const FLT *obj, const FLT *sensor, const FLT *lh, FLT phase_scale, FLT phase_0, FLT phase_1, FLT tilt_scale, FLT tilt_0, FLT tilt_1, FLT curve_scale, FLT curve_0, FLT curve_1, FLT gib_scale, FLT gibPhase_0, FLT gibPhase_1, FLT gibMag_0, FLT gibMag_1) { FLT obj_px = *(obj++); FLT obj_py = *(obj++); FLT obj_pz = *(obj++); FLT obj_qw = *(obj++); FLT obj_qi = *(obj++); FLT obj_qj = *(obj++); FLT obj_qk = *(obj++); FLT sensor_x = *(sensor++); FLT sensor_y = *(sensor++); FLT sensor_z = *(sensor++); FLT lh_px = *(lh++); FLT lh_py = *(lh++); FLT lh_pz = *(lh++); FLT lh_qw = *(lh++); FLT lh_qi = *(lh++); FLT lh_qj = *(lh++); FLT lh_qk = *(lh++); FLT x0 = tan(tilt_0 * tilt_scale); FLT x1 = lh_qi * lh_qj; FLT x2 = lh_qk * lh_qw; FLT x3 = x1 - x2; FLT x4 = (lh_qi * lh_qi); FLT x5 = (lh_qj * lh_qj); FLT x6 = x4 + x5; FLT x7 = (lh_qk * lh_qk); FLT x8 = sqrt((lh_qw * lh_qw) + x6 + x7); FLT x9 = lh_qi * lh_qk; FLT x10 = lh_qj * lh_qw; FLT x11 = x10 + x9; FLT x12 = 2 * lh_px * x8; FLT x13 = lh_qj * lh_qk; FLT x14 = lh_qi * lh_qw; FLT x15 = x13 - x14; FLT x16 = 2 * lh_py * x8; FLT x17 = 2 * x8; FLT x18 = x17 * x6 - 1; FLT x19 = obj_qi * obj_qk; FLT x20 = obj_qj * obj_qw; FLT x21 = sensor_z * (x19 + x20); FLT x22 = (obj_qi * obj_qi); FLT x23 = (obj_qj * obj_qj); FLT x24 = x22 + x23; FLT x25 = (obj_qk * obj_qk); FLT x26 = sqrt((obj_qw * obj_qw) + x24 + x25); FLT x27 = 2 * x26; FLT x28 = obj_qi * obj_qj; FLT x29 = obj_qk * obj_qw; FLT x30 = sensor_y * (x28 - x29); FLT x31 = x23 + x25; FLT x32 = obj_px - sensor_x * (x27 * x31 - 1) + x21 * x27 + x27 * x30; FLT x33 = 2 * x32 * x8; FLT x34 = sensor_x * (x28 + x29); FLT x35 = obj_qj * obj_qk; FLT x36 = obj_qi * obj_qw; FLT x37 = sensor_z * (x35 - x36); FLT x38 = x22 + x25; FLT x39 = obj_py - sensor_y * (x27 * x38 - 1) + x27 * x34 + x27 * x37; FLT x40 = 2 * x39 * x8; FLT x41 = sensor_y * (x35 + x36); FLT x42 = sensor_x * (x19 - x20); FLT x43 = obj_pz - sensor_z * (x24 * x27 - 1) + x27 * x41 + x27 * x42; FLT x44 = lh_pz * x18 - x11 * x12 + x11 * x33 - x15 * x16 + x15 * x40 - x18 * x43; FLT x45 = 1.0 / x44; FLT x46 = 2 * x45 * x8; FLT x47 = x13 + x14; FLT x48 = 2 * lh_pz * x8; FLT x49 = x17 * (x4 + x7) - 1; FLT x50 = 2 * x43 * x8; FLT x51 = lh_py * x49 - x12 * x3 + x3 * x33 - x39 * x49 - x47 * x48 + x47 * x50; FLT x52 = 1. / (x44 * x44); FLT x53 = 4 * curve_0 * curve_scale * x51 * x52 * x8; FLT x54 = x11 * x52; FLT x55 = (x51 * x51); FLT x56 = curve_0 * x55; FLT x57 = 1. / (x44 * x44 * x44); FLT x58 = 4 * curve_scale * x11 * x57 * x8; FLT x59 = x1 + x2; FLT x60 = -x10 + x9; FLT x61 = x17 * (x5 + x7) - 1; FLT x62 = lh_px * x61 - x16 * x59 - x32 * x61 + x40 * x59 - x48 * x60 + x50 * x60; FLT x63 = (x62 * x62); FLT x64 = 1.0 / (x52 * x63 + 1); FLT x65 = x45 * x61; FLT x66 = 2 * x54 * x62 * x8; FLT x67 = x64 * (x65 + x66); FLT x68 = gibMag_0 * gib_scale * cos(gibPhase_0 + atan(x45 * x62)); FLT x69 = x45 * x49; FLT x70 = 2 * x15 * x8; FLT x71 = x51 * x52; FLT x72 = x70 * x71; FLT x73 = 4 * curve_scale * x15 * x57 * x8; FLT x74 = 2 * x64; FLT x75 = x45 * x8; FLT x76 = x74 * (-x15 * x52 * x62 * x8 + x59 * x75); FLT x77 = x46 * x47; FLT x78 = x18 * x71; FLT x79 = 2 * curve_scale * x18 * x57; FLT x80 = x46 * x60; FLT x81 = x52 * x62; FLT x82 = x18 * x81; FLT x83 = x64 * (x80 + x82); FLT x84 = 2 * x0; FLT x85 = obj_qj * x26; FLT x86 = sensor_x * x85; FLT x87 = obj_qi * x26; FLT x88 = sensor_y * x87; FLT x89 = sensor_z * x24; FLT x90 = 1.0 / x26; FLT x91 = obj_qw * x90; FLT x92 = -x41 * x91 - x42 * x91 + x86 - x88 + x89 * x91; FLT x93 = 2 * x8 * x92; FLT x94 = obj_qk * x26; FLT x95 = sensor_y * x94; FLT x96 = sensor_z * x85; FLT x97 = sensor_x * x31; FLT x98 = -x21 * x91 - x30 * x91 + x91 * x97 + x95 - x96; FLT x99 = 2 * x8 * x98; FLT x100 = sensor_x * x94; FLT x101 = sensor_z * x87; FLT x102 = sensor_y * x38; FLT x103 = x100 - x101 - x102 * x91 + x34 * x91 + x37 * x91; FLT x104 = x103 * x49 + x3 * x99 + x47 * x93; FLT x105 = x104 * x45; FLT x106 = 4 * curve_0 * curve_scale * x51 * x52; FLT x107 = -x103 * x70 + x11 * x99 - x18 * x92; FLT x108 = x107 * x71; FLT x109 = 4 * curve_scale * x107 * x57; FLT x110 = 2 * x59 * x8; FLT x111 = x103 * x110 - x60 * x93 + x61 * x98; FLT x112 = x74 * (x107 * x81 + x111 * x45); FLT x113 = sensor_y * x85; FLT x114 = sensor_z * x94; FLT x115 = obj_qi * x90; FLT x116 = -x113 - x114 - x115 * x21 - x115 * x30 + x115 * x97; FLT x117 = 2 * x116 * x8; FLT x118 = obj_qw * x26; FLT x119 = sensor_y * x118; FLT x120 = obj_qi * x27; FLT x121 = -sensor_z * (x115 * x24 + x120) + x100 + x115 * x41 + x115 * x42 + x119; FLT x122 = 2 * x121 * x8; FLT x123 = sensor_z * x118; FLT x124 = -sensor_y * (x115 * x38 + x120) + x115 * x34 + x115 * x37 - x123 + x86; FLT x125 = x117 * x3 - x122 * x47 + x124 * x49; FLT x126 = x125 * x45; FLT x127 = x11 * x117 + x121 * x18 - x124 * x70; FLT x128 = x127 * x71; FLT x129 = 4 * curve_0 * curve_scale * x55 * x57; FLT x130 = x110 * x124 + x116 * x61 + x122 * x60; FLT x131 = x74 * (x127 * x81 + x130 * x45); FLT x132 = sensor_x * x87; FLT x133 = obj_qj * x90; FLT x134 = -x102 * x133 + x114 + x132 + x133 * x34 + x133 * x37; FLT x135 = obj_qj * x27; FLT x136 = -sensor_x * (x133 * x31 + x135) + x123 + x133 * x21 + x133 * x30 + x88; FLT x137 = 2 * x136 * x8; FLT x138 = sensor_x * x118; FLT x139 = -sensor_z * (x133 * x24 + x135) + x133 * x41 + x133 * x42 - x138 + x95; FLT x140 = 2 * x139 * x8; FLT x141 = -x134 * x49 + x137 * x3 + x140 * x47; FLT x142 = x141 * x45; FLT x143 = x11 * x137 + x134 * x70 - x139 * x18; FLT x144 = x143 * x71; FLT x145 = x110 * x134 - x136 * x61 + x140 * x60; FLT x146 = x74 * (-x143 * x81 + x145 * x45); FLT x147 = obj_qk * x90; FLT x148 = x113 + x132 + x147 * x41 + x147 * x42 - x147 * x89; FLT x149 = 2 * x148 * x8; FLT x150 = obj_qk * x27; FLT x151 = -sensor_x * (x147 * x31 + x150) + x101 - x119 + x147 * x21 + x147 * x30; FLT x152 = 2 * x151 * x8; FLT x153 = -sensor_y * (x147 * x38 + x150) + x138 + x147 * x34 + x147 * x37 + x96; FLT x154 = x149 * x47 + x152 * x3 - x153 * x49; FLT x155 = x154 * x45; FLT x156 = x11 * x152 - x148 * x18 + x153 * x70; FLT x157 = x156 * x71; FLT x158 = x110 * x153 + x149 * x60 - x151 * x61; FLT x159 = x74 * (-x156 * x81 + x158 * x45); FLT x160 = tan(tilt_1 * tilt_scale); FLT x161 = curve_1 * x63; FLT x162 = 1.0 / (x52 * x55 + 1); FLT x163 = 2 * x162; FLT x164 = x163 * (x3 * x75 - x51 * x54 * x8); FLT x165 = gibMag_1 * gib_scale * cos(gibPhase_1 - atan(x45 * x51)); FLT x166 = 4 * curve_1 * curve_scale * x52 * x62 * x8; FLT x167 = x162 * (x69 + x72); FLT x168 = x162 * (x77 + x78); FLT x169 = 2 * x160 * x45; FLT x170 = 4 * curve_1 * curve_scale * x52 * x62; FLT x171 = 2 * x160 * x52 * x62; FLT x172 = x163 * (-x105 + x108); FLT x173 = 4 * curve_1 * curve_scale * x57 * x63; FLT x174 = x163 * (-x126 + x128); FLT x175 = x163 * (x142 - x144); FLT x176 = x163 * (x155 - x157); *(out++) = x0 * x3 * x46 - 2 * x0 * x51 * x54 * x8 - x3 * x53 + x56 * x58 + x67 * x68 - x67; *(out++) = 2 * curve_0 * curve_scale * x49 * x51 * x52 - x0 * x69 - x0 * x72 + x56 * x73 - x68 * x76 + x76; *(out++) = x0 * x77 + x0 * x78 - x47 * x53 - x56 * x79 - x68 * x83 + x83; *(out++) = x104 * x106 - x105 * x84 + x108 * x84 - x109 * x56 - x112 * x68 + x112; *(out++) = x106 * x125 - x126 * x84 - x127 * x129 + x128 * x84 - x131 * x68 + x131; *(out++) = -x106 * x141 + x129 * x143 + x142 * x84 - x144 * x84 - x146 * x68 + x146; *(out++) = -x106 * x154 + x129 * x156 + x155 * x84 - x157 * x84 - x159 * x68 + x159; *(out++) = 2 * curve_1 * curve_scale * x52 * x61 * x62 + x160 * x65 + x160 * x66 + x161 * x58 + x164 * x165 - x164; *(out++) = -x110 * x160 * x45 + x160 * x52 * x62 * x70 + x161 * x73 - x165 * x167 - x166 * x59 + x167; *(out++) = -x160 * x80 - x160 * x82 - x161 * x79 + x165 * x168 - x166 * x60 - x168; *(out++) = -x107 * x171 - x109 * x161 - x111 * x169 - x111 * x170 + x165 * x172 - x172; *(out++) = -x127 * x171 - x127 * x173 - x130 * x169 - x130 * x170 + x165 * x174 - x174; *(out++) = x143 * x171 + x143 * x173 - x145 * x169 - x145 * x170 + x165 * x175 - x175; *(out++) = x156 * x171 + x156 * x173 - x158 * x169 - x158 * x170 + x165 * x176 - x176; }