diff --git a/common/libcommon.a b/common/libcommon.a index e6bbd26be..f913f9a93 100644 Binary files a/common/libcommon.a and b/common/libcommon.a differ diff --git a/common/params_pyx.so b/common/params_pyx.so index 7daf18fab..447b62011 100755 Binary files a/common/params_pyx.so and b/common/params_pyx.so differ diff --git a/launch_chffrplus.sh b/launch_chffrplus.sh index a3cbb90da..1fa0fcb0c 100755 --- a/launch_chffrplus.sh +++ b/launch_chffrplus.sh @@ -4,7 +4,25 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" source "$DIR/launch_env.sh" +export SP_BOOT_TIMING_LOG="${SP_BOOT_TIMING_LOG:-/tmp/starpilot_boot_timing.log}" +: > "$SP_BOOT_TIMING_LOG" 2>/dev/null || true +SP_LAUNCH_LAST_SECONDS=$SECONDS + +function sp_boot_timing_line { + echo "$1" + printf '%s\n' "$1" >> "$SP_BOOT_TIMING_LOG" 2>/dev/null || true +} + +function sp_launch_timing { + local now=$SECONDS + local delta=$((now - SP_LAUNCH_LAST_SECONDS)) + sp_boot_timing_line "SP_BOOT_TIMING launch $1 +${delta}s total=${now}s" + SP_LAUNCH_LAST_SECONDS=$now +} + function agnos_init { + sp_launch_timing "agnos_init_start" + # TODO: move this to agnos sudo rm -f /data/etc/NetworkManager/system-connections/*.nmmeta @@ -44,9 +62,13 @@ function agnos_init { fi $DIR/system/hardware/tici/updater $AGNOS_PY $MANIFEST fi + + sp_launch_timing "agnos_init_done" } function launch { + sp_launch_timing "launch_start" + # Remove orphaned git lock if it exists on boot [ -f "$DIR/.git/index.lock" ] && rm -f $DIR/.git/index.lock @@ -83,30 +105,37 @@ function launch { fi fi fi + sp_launch_timing "overlay_check_done" # handle pythonpath ln -sfn $(pwd) /data/pythonpath export BASEDIR="$DIR" export PYTHONPATH="$DIR/starpilot/third_party:$PWD" + sp_launch_timing "pythonpath_done" # hardware specific init if [ -f /AGNOS ]; then agnos_init fi + sp_launch_timing "hardware_init_done" # write tmux scrollback to a file tmux capture-pane -pq -S-1000 > /tmp/launch_log + sp_launch_timing "capture_launch_log_done" # start manager cd system/manager + sp_launch_timing "launch_param_migrations_start" if ! python3 ./launch_param_migrations.py; then echo "Launch param migrations failed; continuing boot." fi + sp_launch_timing "launch_param_migrations_done" # Bootstrap runtime (e.g. /usr/comma after reset/uninstall) must go straight # to manager/setup flow. Do not run StarPilot prebuilt checks/builds here. if [ "$DIR" = "/usr/comma" ] || [ ! -d "$DIR/.git" ]; then + sp_launch_timing "bootstrap_manager_start" ./manager.py while true; do sleep 1; done fi @@ -114,8 +143,29 @@ function launch { function prebuilt_runtime_compatible { python3 - <<'PY' import importlib +import os from pathlib import Path import sys +import time + +start = time.monotonic() +last = start +log_path = os.environ.get("SP_BOOT_TIMING_LOG") + +def emit(line): + print(line, flush=True) + if log_path: + try: + with open(log_path, "a") as f: + f.write(line + "\n") + except OSError: + pass + +def log_step(label): + global last + now = time.monotonic() + emit(f"SP_BOOT_TIMING prebuilt_compat {label} +{now - last:.3f}s total={now - start:.3f}s") + last = now mods = [ "openpilot.common.params_pyx", @@ -133,6 +183,7 @@ for mod in mods: except Exception as e: print(f"Prebuilt compatibility failure in {mod}: {e}", file=sys.stderr) raise + log_step(f"import:{mod}") repo_root = Path.cwd().parents[1] required_files = [ @@ -152,6 +203,7 @@ required_files = [ for path in required_files: if not path.is_file(): raise FileNotFoundError(f"Missing prebuilt runtime artifact: {path}") +log_step("required_files") PY } @@ -160,14 +212,19 @@ PY USE_PREBUILT=$(tr -d '\n' < /data/params/d/UsePrebuilt) fi + sp_launch_timing "prebuilt_decision_done" if [ "$USE_PREBUILT" = "1" ] && [ -f $DIR/prebuilt ] && ! prebuilt_runtime_compatible; then echo "Prebuilt runtime artifacts are incompatible on this device; rebuilding locally." USE_PREBUILT=0 fi + sp_launch_timing "prebuilt_compat_done" if [ "$USE_PREBUILT" != "1" ] || [ ! -f $DIR/prebuilt ]; then + sp_launch_timing "build_start" ./build.py + sp_launch_timing "build_done" fi + sp_launch_timing "manager_start" ./manager.py # if broken, keep on screen error diff --git a/panda/board/obj/body_h7.bin.signed b/panda/board/obj/body_h7.bin.signed index e59611b30..175293ecf 100644 Binary files a/panda/board/obj/body_h7.bin.signed and b/panda/board/obj/body_h7.bin.signed differ diff --git a/panda/board/obj/body_h7/bootstub.elf b/panda/board/obj/body_h7/bootstub.elf index a0bea8329..9565e0f09 100755 Binary files a/panda/board/obj/body_h7/bootstub.elf and b/panda/board/obj/body_h7/bootstub.elf differ diff --git a/panda/board/obj/body_h7/main.bin b/panda/board/obj/body_h7/main.bin index d1241d56d..9c496b612 100755 Binary files a/panda/board/obj/body_h7/main.bin and b/panda/board/obj/body_h7/main.bin differ diff --git a/panda/board/obj/body_h7/main.elf b/panda/board/obj/body_h7/main.elf index adc3b723d..dd0406f22 100755 Binary files a/panda/board/obj/body_h7/main.elf and b/panda/board/obj/body_h7/main.elf differ diff --git a/panda/board/obj/bootstub.body_h7.bin b/panda/board/obj/bootstub.body_h7.bin index 32b205616..7ff35d6ab 100755 Binary files a/panda/board/obj/bootstub.body_h7.bin and b/panda/board/obj/bootstub.body_h7.bin differ diff --git a/panda/board/obj/bootstub.panda.bin b/panda/board/obj/bootstub.panda.bin index 4d90a563d..aab10b705 100755 Binary files a/panda/board/obj/bootstub.panda.bin and b/panda/board/obj/bootstub.panda.bin differ diff --git a/panda/board/obj/bootstub.panda_can_ignition_only.bin b/panda/board/obj/bootstub.panda_can_ignition_only.bin index 4d90a563d..aab10b705 100755 Binary files a/panda/board/obj/bootstub.panda_can_ignition_only.bin and b/panda/board/obj/bootstub.panda_can_ignition_only.bin differ diff --git a/panda/board/obj/bootstub.panda_h7.bin b/panda/board/obj/bootstub.panda_h7.bin index 7c4d15e0d..875109229 100755 Binary files a/panda/board/obj/bootstub.panda_h7.bin and b/panda/board/obj/bootstub.panda_h7.bin differ diff --git a/panda/board/obj/bootstub.panda_h7_can_ignition_only.bin b/panda/board/obj/bootstub.panda_h7_can_ignition_only.bin index 7c4d15e0d..875109229 100755 Binary files a/panda/board/obj/bootstub.panda_h7_can_ignition_only.bin and b/panda/board/obj/bootstub.panda_h7_can_ignition_only.bin differ diff --git a/panda/board/obj/bootstub.panda_h7_hkg_remote.bin b/panda/board/obj/bootstub.panda_h7_hkg_remote.bin new file mode 100755 index 000000000..875109229 Binary files /dev/null and b/panda/board/obj/bootstub.panda_h7_hkg_remote.bin differ diff --git a/panda/board/obj/bootstub.panda_h7_hkg_remote_can_ignition_only.bin b/panda/board/obj/bootstub.panda_h7_hkg_remote_can_ignition_only.bin new file mode 100755 index 000000000..875109229 Binary files /dev/null and b/panda/board/obj/bootstub.panda_h7_hkg_remote_can_ignition_only.bin differ diff --git a/panda/board/obj/bootstub.panda_h7_remote.bin b/panda/board/obj/bootstub.panda_h7_remote.bin index 7c4d15e0d..875109229 100755 Binary files a/panda/board/obj/bootstub.panda_h7_remote.bin and b/panda/board/obj/bootstub.panda_h7_remote.bin differ diff --git a/panda/board/obj/bootstub.panda_h7_remote_can_ignition_only.bin b/panda/board/obj/bootstub.panda_h7_remote_can_ignition_only.bin index 7c4d15e0d..875109229 100755 Binary files a/panda/board/obj/bootstub.panda_h7_remote_can_ignition_only.bin and b/panda/board/obj/bootstub.panda_h7_remote_can_ignition_only.bin differ diff --git a/panda/board/obj/bootstub.panda_hkg_remote.bin b/panda/board/obj/bootstub.panda_hkg_remote.bin new file mode 100755 index 000000000..aab10b705 Binary files /dev/null and b/panda/board/obj/bootstub.panda_hkg_remote.bin differ diff --git a/panda/board/obj/bootstub.panda_hkg_remote_can_ignition_only.bin b/panda/board/obj/bootstub.panda_hkg_remote_can_ignition_only.bin new file mode 100755 index 000000000..aab10b705 Binary files /dev/null and b/panda/board/obj/bootstub.panda_hkg_remote_can_ignition_only.bin differ diff --git a/panda/board/obj/bootstub.panda_jungle_h7.bin b/panda/board/obj/bootstub.panda_jungle_h7.bin index 8a7bd91e0..84c228e31 100755 Binary files a/panda/board/obj/bootstub.panda_jungle_h7.bin and b/panda/board/obj/bootstub.panda_jungle_h7.bin differ diff --git a/panda/board/obj/bootstub.panda_remote.bin b/panda/board/obj/bootstub.panda_remote.bin index 4d90a563d..aab10b705 100755 Binary files a/panda/board/obj/bootstub.panda_remote.bin and b/panda/board/obj/bootstub.panda_remote.bin differ diff --git a/panda/board/obj/bootstub.panda_remote_can_ignition_only.bin b/panda/board/obj/bootstub.panda_remote_can_ignition_only.bin index 4d90a563d..aab10b705 100755 Binary files a/panda/board/obj/bootstub.panda_remote_can_ignition_only.bin and b/panda/board/obj/bootstub.panda_remote_can_ignition_only.bin differ diff --git a/panda/board/obj/gitversion.h b/panda/board/obj/gitversion.h index c07080425..610ea8146 100644 --- a/panda/board/obj/gitversion.h +++ b/panda/board/obj/gitversion.h @@ -1,2 +1,2 @@ extern const uint8_t gitversion[19]; -const uint8_t gitversion[19] = "DEV-d5e40d3b-DEBUG"; +const uint8_t gitversion[19] = "DEV-9d2149d4-DEBUG"; diff --git a/panda/board/obj/panda.bin.signed b/panda/board/obj/panda.bin.signed index d9d9c98bf..08a1957cf 100644 Binary files a/panda/board/obj/panda.bin.signed and b/panda/board/obj/panda.bin.signed differ diff --git a/panda/board/obj/panda/bootstub.elf b/panda/board/obj/panda/bootstub.elf index 77d69dee7..079f153eb 100755 Binary files a/panda/board/obj/panda/bootstub.elf and b/panda/board/obj/panda/bootstub.elf differ diff --git a/panda/board/obj/panda/main.bin b/panda/board/obj/panda/main.bin index 77275f00c..ef278eab6 100755 Binary files a/panda/board/obj/panda/main.bin and b/panda/board/obj/panda/main.bin differ diff --git a/panda/board/obj/panda/main.elf b/panda/board/obj/panda/main.elf index ccb1bbce2..245acc268 100755 Binary files a/panda/board/obj/panda/main.elf and b/panda/board/obj/panda/main.elf differ diff --git a/panda/board/obj/panda_can_ignition_only.bin.signed b/panda/board/obj/panda_can_ignition_only.bin.signed index a13d68ab1..813fcb3ac 100644 Binary files a/panda/board/obj/panda_can_ignition_only.bin.signed and b/panda/board/obj/panda_can_ignition_only.bin.signed differ diff --git a/panda/board/obj/panda_can_ignition_only/bootstub.elf b/panda/board/obj/panda_can_ignition_only/bootstub.elf index 95b3c3a63..ac3522d84 100755 Binary files a/panda/board/obj/panda_can_ignition_only/bootstub.elf and b/panda/board/obj/panda_can_ignition_only/bootstub.elf differ diff --git a/panda/board/obj/panda_can_ignition_only/main.bin b/panda/board/obj/panda_can_ignition_only/main.bin index 1db5213ad..62023c891 100755 Binary files a/panda/board/obj/panda_can_ignition_only/main.bin and b/panda/board/obj/panda_can_ignition_only/main.bin differ diff --git a/panda/board/obj/panda_can_ignition_only/main.elf b/panda/board/obj/panda_can_ignition_only/main.elf index 9416f8d71..af39fab9a 100755 Binary files a/panda/board/obj/panda_can_ignition_only/main.elf and b/panda/board/obj/panda_can_ignition_only/main.elf differ diff --git a/panda/board/obj/panda_h7.bin.signed b/panda/board/obj/panda_h7.bin.signed index ae9952bd0..9abe9773b 100644 Binary files a/panda/board/obj/panda_h7.bin.signed and b/panda/board/obj/panda_h7.bin.signed differ diff --git a/panda/board/obj/panda_h7/bootstub.elf b/panda/board/obj/panda_h7/bootstub.elf index 05a1e569f..43136c430 100755 Binary files a/panda/board/obj/panda_h7/bootstub.elf and b/panda/board/obj/panda_h7/bootstub.elf differ diff --git a/panda/board/obj/panda_h7/main.bin b/panda/board/obj/panda_h7/main.bin index a07617f32..9bc3b638b 100755 Binary files a/panda/board/obj/panda_h7/main.bin and b/panda/board/obj/panda_h7/main.bin differ diff --git a/panda/board/obj/panda_h7/main.elf b/panda/board/obj/panda_h7/main.elf index c871c9e6f..f0a1d055e 100755 Binary files a/panda/board/obj/panda_h7/main.elf and b/panda/board/obj/panda_h7/main.elf differ diff --git a/panda/board/obj/panda_h7_can_ignition_only.bin.signed b/panda/board/obj/panda_h7_can_ignition_only.bin.signed index 769c2190d..fdb5eac54 100644 Binary files a/panda/board/obj/panda_h7_can_ignition_only.bin.signed and b/panda/board/obj/panda_h7_can_ignition_only.bin.signed differ diff --git a/panda/board/obj/panda_h7_can_ignition_only/bootstub.elf b/panda/board/obj/panda_h7_can_ignition_only/bootstub.elf index e4816885b..79b4b047f 100755 Binary files a/panda/board/obj/panda_h7_can_ignition_only/bootstub.elf and b/panda/board/obj/panda_h7_can_ignition_only/bootstub.elf differ diff --git a/panda/board/obj/panda_h7_can_ignition_only/main.bin b/panda/board/obj/panda_h7_can_ignition_only/main.bin index a454a5e2f..5e3c31bef 100755 Binary files a/panda/board/obj/panda_h7_can_ignition_only/main.bin and b/panda/board/obj/panda_h7_can_ignition_only/main.bin differ diff --git a/panda/board/obj/panda_h7_can_ignition_only/main.elf b/panda/board/obj/panda_h7_can_ignition_only/main.elf index 39a9f1ebd..52feb038c 100755 Binary files a/panda/board/obj/panda_h7_can_ignition_only/main.elf and b/panda/board/obj/panda_h7_can_ignition_only/main.elf differ diff --git a/panda/board/obj/panda_h7_hkg_remote.bin.signed b/panda/board/obj/panda_h7_hkg_remote.bin.signed new file mode 100644 index 000000000..9f53c3867 Binary files /dev/null and b/panda/board/obj/panda_h7_hkg_remote.bin.signed differ diff --git a/panda/board/obj/panda_h7_hkg_remote/bootstub.elf b/panda/board/obj/panda_h7_hkg_remote/bootstub.elf new file mode 100755 index 000000000..6c966e2a9 Binary files /dev/null and b/panda/board/obj/panda_h7_hkg_remote/bootstub.elf differ diff --git a/panda/board/obj/panda_h7_hkg_remote/main.bin b/panda/board/obj/panda_h7_hkg_remote/main.bin new file mode 100755 index 000000000..ea7fe0ec0 Binary files /dev/null and b/panda/board/obj/panda_h7_hkg_remote/main.bin differ diff --git a/panda/board/obj/panda_h7_hkg_remote/main.elf b/panda/board/obj/panda_h7_hkg_remote/main.elf new file mode 100755 index 000000000..c9ccd1421 Binary files /dev/null and b/panda/board/obj/panda_h7_hkg_remote/main.elf differ diff --git a/panda/board/obj/panda_h7_hkg_remote_can_ignition_only.bin.signed b/panda/board/obj/panda_h7_hkg_remote_can_ignition_only.bin.signed new file mode 100644 index 000000000..5e832d52c Binary files /dev/null and b/panda/board/obj/panda_h7_hkg_remote_can_ignition_only.bin.signed differ diff --git a/panda/board/obj/panda_h7_hkg_remote_can_ignition_only/bootstub.elf b/panda/board/obj/panda_h7_hkg_remote_can_ignition_only/bootstub.elf new file mode 100755 index 000000000..1733ec58b Binary files /dev/null and b/panda/board/obj/panda_h7_hkg_remote_can_ignition_only/bootstub.elf differ diff --git a/panda/board/obj/panda_h7_hkg_remote_can_ignition_only/main.bin b/panda/board/obj/panda_h7_hkg_remote_can_ignition_only/main.bin new file mode 100755 index 000000000..c0119e4b1 Binary files /dev/null and b/panda/board/obj/panda_h7_hkg_remote_can_ignition_only/main.bin differ diff --git a/panda/board/obj/panda_h7_hkg_remote_can_ignition_only/main.elf b/panda/board/obj/panda_h7_hkg_remote_can_ignition_only/main.elf new file mode 100755 index 000000000..6d5a27d70 Binary files /dev/null and b/panda/board/obj/panda_h7_hkg_remote_can_ignition_only/main.elf differ diff --git a/panda/board/obj/panda_h7_remote.bin.signed b/panda/board/obj/panda_h7_remote.bin.signed index 5acde3f42..a747bfb39 100644 Binary files a/panda/board/obj/panda_h7_remote.bin.signed and b/panda/board/obj/panda_h7_remote.bin.signed differ diff --git a/panda/board/obj/panda_h7_remote/bootstub.elf b/panda/board/obj/panda_h7_remote/bootstub.elf index a8dba7ae7..00a3657eb 100755 Binary files a/panda/board/obj/panda_h7_remote/bootstub.elf and b/panda/board/obj/panda_h7_remote/bootstub.elf differ diff --git a/panda/board/obj/panda_h7_remote/main.bin b/panda/board/obj/panda_h7_remote/main.bin index a2ad01d51..aea3268e7 100755 Binary files a/panda/board/obj/panda_h7_remote/main.bin and b/panda/board/obj/panda_h7_remote/main.bin differ diff --git a/panda/board/obj/panda_h7_remote/main.elf b/panda/board/obj/panda_h7_remote/main.elf index 5f249f868..3df70ab39 100755 Binary files a/panda/board/obj/panda_h7_remote/main.elf and b/panda/board/obj/panda_h7_remote/main.elf differ diff --git a/panda/board/obj/panda_h7_remote_can_ignition_only.bin.signed b/panda/board/obj/panda_h7_remote_can_ignition_only.bin.signed index f0b70f9f4..19b7cf37d 100644 Binary files a/panda/board/obj/panda_h7_remote_can_ignition_only.bin.signed and b/panda/board/obj/panda_h7_remote_can_ignition_only.bin.signed differ diff --git a/panda/board/obj/panda_h7_remote_can_ignition_only/bootstub.elf b/panda/board/obj/panda_h7_remote_can_ignition_only/bootstub.elf index 8425e08a2..593f576c5 100755 Binary files a/panda/board/obj/panda_h7_remote_can_ignition_only/bootstub.elf and b/panda/board/obj/panda_h7_remote_can_ignition_only/bootstub.elf differ diff --git a/panda/board/obj/panda_h7_remote_can_ignition_only/main.bin b/panda/board/obj/panda_h7_remote_can_ignition_only/main.bin index 28d3f5ada..bb20662d7 100755 Binary files a/panda/board/obj/panda_h7_remote_can_ignition_only/main.bin and b/panda/board/obj/panda_h7_remote_can_ignition_only/main.bin differ diff --git a/panda/board/obj/panda_h7_remote_can_ignition_only/main.elf b/panda/board/obj/panda_h7_remote_can_ignition_only/main.elf index ce95ac8c7..f9d2a0d52 100755 Binary files a/panda/board/obj/panda_h7_remote_can_ignition_only/main.elf and b/panda/board/obj/panda_h7_remote_can_ignition_only/main.elf differ diff --git a/panda/board/obj/panda_hkg_remote.bin.signed b/panda/board/obj/panda_hkg_remote.bin.signed new file mode 100644 index 000000000..8b720c617 Binary files /dev/null and b/panda/board/obj/panda_hkg_remote.bin.signed differ diff --git a/panda/board/obj/panda_hkg_remote/bootstub.elf b/panda/board/obj/panda_hkg_remote/bootstub.elf new file mode 100755 index 000000000..a501f6033 Binary files /dev/null and b/panda/board/obj/panda_hkg_remote/bootstub.elf differ diff --git a/panda/board/obj/panda_hkg_remote/main.bin b/panda/board/obj/panda_hkg_remote/main.bin new file mode 100755 index 000000000..3d5cb4888 Binary files /dev/null and b/panda/board/obj/panda_hkg_remote/main.bin differ diff --git a/panda/board/obj/panda_hkg_remote/main.elf b/panda/board/obj/panda_hkg_remote/main.elf new file mode 100755 index 000000000..af03cf2a5 Binary files /dev/null and b/panda/board/obj/panda_hkg_remote/main.elf differ diff --git a/panda/board/obj/panda_hkg_remote_can_ignition_only.bin.signed b/panda/board/obj/panda_hkg_remote_can_ignition_only.bin.signed new file mode 100644 index 000000000..8d7eac719 Binary files /dev/null and b/panda/board/obj/panda_hkg_remote_can_ignition_only.bin.signed differ diff --git a/panda/board/obj/panda_hkg_remote_can_ignition_only/bootstub.elf b/panda/board/obj/panda_hkg_remote_can_ignition_only/bootstub.elf new file mode 100755 index 000000000..53bb1c97d Binary files /dev/null and b/panda/board/obj/panda_hkg_remote_can_ignition_only/bootstub.elf differ diff --git a/panda/board/obj/panda_hkg_remote_can_ignition_only/main.bin b/panda/board/obj/panda_hkg_remote_can_ignition_only/main.bin new file mode 100755 index 000000000..565742352 Binary files /dev/null and b/panda/board/obj/panda_hkg_remote_can_ignition_only/main.bin differ diff --git a/panda/board/obj/panda_hkg_remote_can_ignition_only/main.elf b/panda/board/obj/panda_hkg_remote_can_ignition_only/main.elf new file mode 100755 index 000000000..c8335a918 Binary files /dev/null and b/panda/board/obj/panda_hkg_remote_can_ignition_only/main.elf differ diff --git a/panda/board/obj/panda_jungle_h7.bin.signed b/panda/board/obj/panda_jungle_h7.bin.signed index 787a73487..0aed6f192 100644 Binary files a/panda/board/obj/panda_jungle_h7.bin.signed and b/panda/board/obj/panda_jungle_h7.bin.signed differ diff --git a/panda/board/obj/panda_jungle_h7/bootstub.elf b/panda/board/obj/panda_jungle_h7/bootstub.elf index f48fd7e86..49fab3e06 100755 Binary files a/panda/board/obj/panda_jungle_h7/bootstub.elf and b/panda/board/obj/panda_jungle_h7/bootstub.elf differ diff --git a/panda/board/obj/panda_jungle_h7/main.bin b/panda/board/obj/panda_jungle_h7/main.bin index 02d0316c5..376e39f9d 100755 Binary files a/panda/board/obj/panda_jungle_h7/main.bin and b/panda/board/obj/panda_jungle_h7/main.bin differ diff --git a/panda/board/obj/panda_jungle_h7/main.elf b/panda/board/obj/panda_jungle_h7/main.elf index ff20296b3..f26b42e34 100755 Binary files a/panda/board/obj/panda_jungle_h7/main.elf and b/panda/board/obj/panda_jungle_h7/main.elf differ diff --git a/panda/board/obj/panda_remote.bin.signed b/panda/board/obj/panda_remote.bin.signed index 527ad5ed4..599fec987 100644 Binary files a/panda/board/obj/panda_remote.bin.signed and b/panda/board/obj/panda_remote.bin.signed differ diff --git a/panda/board/obj/panda_remote/bootstub.elf b/panda/board/obj/panda_remote/bootstub.elf index 13944c686..6d9217867 100755 Binary files a/panda/board/obj/panda_remote/bootstub.elf and b/panda/board/obj/panda_remote/bootstub.elf differ diff --git a/panda/board/obj/panda_remote/main.bin b/panda/board/obj/panda_remote/main.bin index 04f3047ec..2f519ac39 100755 Binary files a/panda/board/obj/panda_remote/main.bin and b/panda/board/obj/panda_remote/main.bin differ diff --git a/panda/board/obj/panda_remote/main.elf b/panda/board/obj/panda_remote/main.elf index 856d1a762..0eb52827c 100755 Binary files a/panda/board/obj/panda_remote/main.elf and b/panda/board/obj/panda_remote/main.elf differ diff --git a/panda/board/obj/panda_remote_can_ignition_only.bin.signed b/panda/board/obj/panda_remote_can_ignition_only.bin.signed index 700ce5ef9..0f958015c 100644 Binary files a/panda/board/obj/panda_remote_can_ignition_only.bin.signed and b/panda/board/obj/panda_remote_can_ignition_only.bin.signed differ diff --git a/panda/board/obj/panda_remote_can_ignition_only/bootstub.elf b/panda/board/obj/panda_remote_can_ignition_only/bootstub.elf index 2c2790ab7..b35b837d1 100755 Binary files a/panda/board/obj/panda_remote_can_ignition_only/bootstub.elf and b/panda/board/obj/panda_remote_can_ignition_only/bootstub.elf differ diff --git a/panda/board/obj/panda_remote_can_ignition_only/main.bin b/panda/board/obj/panda_remote_can_ignition_only/main.bin index 9f7fb2584..e4b5a7468 100755 Binary files a/panda/board/obj/panda_remote_can_ignition_only/main.bin and b/panda/board/obj/panda_remote_can_ignition_only/main.bin differ diff --git a/panda/board/obj/panda_remote_can_ignition_only/main.elf b/panda/board/obj/panda_remote_can_ignition_only/main.elf index 3c3dc1ad1..8a5a5a320 100755 Binary files a/panda/board/obj/panda_remote_can_ignition_only/main.elf and b/panda/board/obj/panda_remote_can_ignition_only/main.elf differ diff --git a/panda/board/obj/version b/panda/board/obj/version index 19b0e735c..6994d9c23 100644 --- a/panda/board/obj/version +++ b/panda/board/obj/version @@ -1 +1 @@ -DEV-d5e40d3b-DEBUG \ No newline at end of file +DEV-9d2149d4-DEBUG \ No newline at end of file diff --git a/selfdrive/locationd/models/generated/car.cpp b/selfdrive/locationd/models/generated/car.cpp index cdad8c0db..824373f44 100644 --- a/selfdrive/locationd/models/generated/car.cpp +++ b/selfdrive/locationd/models/generated/car.cpp @@ -45,326 +45,326 @@ const static double MAHA_THRESH_31 = 3.8414588206941227; * * * This file is part of 'ekf' * ******************************************************************************/ -void err_fun(double *nom_x, double *delta_x, double *out_6318981254884856825) { - out_6318981254884856825[0] = delta_x[0] + nom_x[0]; - out_6318981254884856825[1] = delta_x[1] + nom_x[1]; - out_6318981254884856825[2] = delta_x[2] + nom_x[2]; - out_6318981254884856825[3] = delta_x[3] + nom_x[3]; - out_6318981254884856825[4] = delta_x[4] + nom_x[4]; - out_6318981254884856825[5] = delta_x[5] + nom_x[5]; - out_6318981254884856825[6] = delta_x[6] + nom_x[6]; - out_6318981254884856825[7] = delta_x[7] + nom_x[7]; - out_6318981254884856825[8] = delta_x[8] + nom_x[8]; +void err_fun(double *nom_x, double *delta_x, double *out_5572165619661696722) { + out_5572165619661696722[0] = delta_x[0] + nom_x[0]; + out_5572165619661696722[1] = delta_x[1] + nom_x[1]; + out_5572165619661696722[2] = delta_x[2] + nom_x[2]; + out_5572165619661696722[3] = delta_x[3] + nom_x[3]; + out_5572165619661696722[4] = delta_x[4] + nom_x[4]; + out_5572165619661696722[5] = delta_x[5] + nom_x[5]; + out_5572165619661696722[6] = delta_x[6] + nom_x[6]; + out_5572165619661696722[7] = delta_x[7] + nom_x[7]; + out_5572165619661696722[8] = delta_x[8] + nom_x[8]; } -void inv_err_fun(double *nom_x, double *true_x, double *out_6625913990707465652) { - out_6625913990707465652[0] = -nom_x[0] + true_x[0]; - out_6625913990707465652[1] = -nom_x[1] + true_x[1]; - out_6625913990707465652[2] = -nom_x[2] + true_x[2]; - out_6625913990707465652[3] = -nom_x[3] + true_x[3]; - out_6625913990707465652[4] = -nom_x[4] + true_x[4]; - out_6625913990707465652[5] = -nom_x[5] + true_x[5]; - out_6625913990707465652[6] = -nom_x[6] + true_x[6]; - out_6625913990707465652[7] = -nom_x[7] + true_x[7]; - out_6625913990707465652[8] = -nom_x[8] + true_x[8]; +void inv_err_fun(double *nom_x, double *true_x, double *out_1924778118840772208) { + out_1924778118840772208[0] = -nom_x[0] + true_x[0]; + out_1924778118840772208[1] = -nom_x[1] + true_x[1]; + out_1924778118840772208[2] = -nom_x[2] + true_x[2]; + out_1924778118840772208[3] = -nom_x[3] + true_x[3]; + out_1924778118840772208[4] = -nom_x[4] + true_x[4]; + out_1924778118840772208[5] = -nom_x[5] + true_x[5]; + out_1924778118840772208[6] = -nom_x[6] + true_x[6]; + out_1924778118840772208[7] = -nom_x[7] + true_x[7]; + out_1924778118840772208[8] = -nom_x[8] + true_x[8]; } -void H_mod_fun(double *state, double *out_6152129630444976452) { - out_6152129630444976452[0] = 1.0; - out_6152129630444976452[1] = 0.0; - out_6152129630444976452[2] = 0.0; - out_6152129630444976452[3] = 0.0; - out_6152129630444976452[4] = 0.0; - out_6152129630444976452[5] = 0.0; - out_6152129630444976452[6] = 0.0; - out_6152129630444976452[7] = 0.0; - out_6152129630444976452[8] = 0.0; - out_6152129630444976452[9] = 0.0; - out_6152129630444976452[10] = 1.0; - out_6152129630444976452[11] = 0.0; - out_6152129630444976452[12] = 0.0; - out_6152129630444976452[13] = 0.0; - out_6152129630444976452[14] = 0.0; - out_6152129630444976452[15] = 0.0; - out_6152129630444976452[16] = 0.0; - out_6152129630444976452[17] = 0.0; - out_6152129630444976452[18] = 0.0; - out_6152129630444976452[19] = 0.0; - out_6152129630444976452[20] = 1.0; - out_6152129630444976452[21] = 0.0; - out_6152129630444976452[22] = 0.0; - out_6152129630444976452[23] = 0.0; - out_6152129630444976452[24] = 0.0; - out_6152129630444976452[25] = 0.0; - out_6152129630444976452[26] = 0.0; - out_6152129630444976452[27] = 0.0; - out_6152129630444976452[28] = 0.0; - out_6152129630444976452[29] = 0.0; - out_6152129630444976452[30] = 1.0; - out_6152129630444976452[31] = 0.0; - out_6152129630444976452[32] = 0.0; - out_6152129630444976452[33] = 0.0; - out_6152129630444976452[34] = 0.0; - out_6152129630444976452[35] = 0.0; - out_6152129630444976452[36] = 0.0; - out_6152129630444976452[37] = 0.0; - out_6152129630444976452[38] = 0.0; - out_6152129630444976452[39] = 0.0; - out_6152129630444976452[40] = 1.0; - out_6152129630444976452[41] = 0.0; - out_6152129630444976452[42] = 0.0; - out_6152129630444976452[43] = 0.0; - out_6152129630444976452[44] = 0.0; - out_6152129630444976452[45] = 0.0; - out_6152129630444976452[46] = 0.0; - out_6152129630444976452[47] = 0.0; - out_6152129630444976452[48] = 0.0; - out_6152129630444976452[49] = 0.0; - out_6152129630444976452[50] = 1.0; - out_6152129630444976452[51] = 0.0; - out_6152129630444976452[52] = 0.0; - out_6152129630444976452[53] = 0.0; - out_6152129630444976452[54] = 0.0; - out_6152129630444976452[55] = 0.0; - out_6152129630444976452[56] = 0.0; - out_6152129630444976452[57] = 0.0; - out_6152129630444976452[58] = 0.0; - out_6152129630444976452[59] = 0.0; - out_6152129630444976452[60] = 1.0; - out_6152129630444976452[61] = 0.0; - out_6152129630444976452[62] = 0.0; - out_6152129630444976452[63] = 0.0; - out_6152129630444976452[64] = 0.0; - out_6152129630444976452[65] = 0.0; - out_6152129630444976452[66] = 0.0; - out_6152129630444976452[67] = 0.0; - out_6152129630444976452[68] = 0.0; - out_6152129630444976452[69] = 0.0; - out_6152129630444976452[70] = 1.0; - out_6152129630444976452[71] = 0.0; - out_6152129630444976452[72] = 0.0; - out_6152129630444976452[73] = 0.0; - out_6152129630444976452[74] = 0.0; - out_6152129630444976452[75] = 0.0; - out_6152129630444976452[76] = 0.0; - out_6152129630444976452[77] = 0.0; - out_6152129630444976452[78] = 0.0; - out_6152129630444976452[79] = 0.0; - out_6152129630444976452[80] = 1.0; +void H_mod_fun(double *state, double *out_5209558866032184805) { + out_5209558866032184805[0] = 1.0; + out_5209558866032184805[1] = 0.0; + out_5209558866032184805[2] = 0.0; + out_5209558866032184805[3] = 0.0; + out_5209558866032184805[4] = 0.0; + out_5209558866032184805[5] = 0.0; + out_5209558866032184805[6] = 0.0; + out_5209558866032184805[7] = 0.0; + out_5209558866032184805[8] = 0.0; + out_5209558866032184805[9] = 0.0; + out_5209558866032184805[10] = 1.0; + out_5209558866032184805[11] = 0.0; + out_5209558866032184805[12] = 0.0; + out_5209558866032184805[13] = 0.0; + out_5209558866032184805[14] = 0.0; + out_5209558866032184805[15] = 0.0; + out_5209558866032184805[16] = 0.0; + out_5209558866032184805[17] = 0.0; + out_5209558866032184805[18] = 0.0; + out_5209558866032184805[19] = 0.0; + out_5209558866032184805[20] = 1.0; + out_5209558866032184805[21] = 0.0; + out_5209558866032184805[22] = 0.0; + out_5209558866032184805[23] = 0.0; + out_5209558866032184805[24] = 0.0; + out_5209558866032184805[25] = 0.0; + out_5209558866032184805[26] = 0.0; + out_5209558866032184805[27] = 0.0; + out_5209558866032184805[28] = 0.0; + out_5209558866032184805[29] = 0.0; + out_5209558866032184805[30] = 1.0; + out_5209558866032184805[31] = 0.0; + out_5209558866032184805[32] = 0.0; + out_5209558866032184805[33] = 0.0; + out_5209558866032184805[34] = 0.0; + out_5209558866032184805[35] = 0.0; + out_5209558866032184805[36] = 0.0; + out_5209558866032184805[37] = 0.0; + out_5209558866032184805[38] = 0.0; + out_5209558866032184805[39] = 0.0; + out_5209558866032184805[40] = 1.0; + out_5209558866032184805[41] = 0.0; + out_5209558866032184805[42] = 0.0; + out_5209558866032184805[43] = 0.0; + out_5209558866032184805[44] = 0.0; + out_5209558866032184805[45] = 0.0; + out_5209558866032184805[46] = 0.0; + out_5209558866032184805[47] = 0.0; + out_5209558866032184805[48] = 0.0; + out_5209558866032184805[49] = 0.0; + out_5209558866032184805[50] = 1.0; + out_5209558866032184805[51] = 0.0; + out_5209558866032184805[52] = 0.0; + out_5209558866032184805[53] = 0.0; + out_5209558866032184805[54] = 0.0; + out_5209558866032184805[55] = 0.0; + out_5209558866032184805[56] = 0.0; + out_5209558866032184805[57] = 0.0; + out_5209558866032184805[58] = 0.0; + out_5209558866032184805[59] = 0.0; + out_5209558866032184805[60] = 1.0; + out_5209558866032184805[61] = 0.0; + out_5209558866032184805[62] = 0.0; + out_5209558866032184805[63] = 0.0; + out_5209558866032184805[64] = 0.0; + out_5209558866032184805[65] = 0.0; + out_5209558866032184805[66] = 0.0; + out_5209558866032184805[67] = 0.0; + out_5209558866032184805[68] = 0.0; + out_5209558866032184805[69] = 0.0; + out_5209558866032184805[70] = 1.0; + out_5209558866032184805[71] = 0.0; + out_5209558866032184805[72] = 0.0; + out_5209558866032184805[73] = 0.0; + out_5209558866032184805[74] = 0.0; + out_5209558866032184805[75] = 0.0; + out_5209558866032184805[76] = 0.0; + out_5209558866032184805[77] = 0.0; + out_5209558866032184805[78] = 0.0; + out_5209558866032184805[79] = 0.0; + out_5209558866032184805[80] = 1.0; } -void f_fun(double *state, double dt, double *out_6830787204701444163) { - out_6830787204701444163[0] = state[0]; - out_6830787204701444163[1] = state[1]; - out_6830787204701444163[2] = state[2]; - out_6830787204701444163[3] = state[3]; - out_6830787204701444163[4] = state[4]; - out_6830787204701444163[5] = dt*((-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]))*state[6] - 9.8100000000000005*state[8] + stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*state[1]) + (-stiffness_front*state[0] - stiffness_rear*state[0])*state[5]/(mass*state[4])) + state[5]; - out_6830787204701444163[6] = dt*(center_to_front*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*state[1]) + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])*state[5]/(rotational_inertia*state[4]) + (-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])*state[6]/(rotational_inertia*state[4])) + state[6]; - out_6830787204701444163[7] = state[7]; - out_6830787204701444163[8] = state[8]; +void f_fun(double *state, double dt, double *out_8731244167447695934) { + out_8731244167447695934[0] = state[0]; + out_8731244167447695934[1] = state[1]; + out_8731244167447695934[2] = state[2]; + out_8731244167447695934[3] = state[3]; + out_8731244167447695934[4] = state[4]; + out_8731244167447695934[5] = dt*((-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]))*state[6] - 9.8100000000000005*state[8] + stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*state[1]) + (-stiffness_front*state[0] - stiffness_rear*state[0])*state[5]/(mass*state[4])) + state[5]; + out_8731244167447695934[6] = dt*(center_to_front*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*state[1]) + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])*state[5]/(rotational_inertia*state[4]) + (-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])*state[6]/(rotational_inertia*state[4])) + state[6]; + out_8731244167447695934[7] = state[7]; + out_8731244167447695934[8] = state[8]; } -void F_fun(double *state, double dt, double *out_2889206061873137605) { - out_2889206061873137605[0] = 1; - out_2889206061873137605[1] = 0; - out_2889206061873137605[2] = 0; - out_2889206061873137605[3] = 0; - out_2889206061873137605[4] = 0; - out_2889206061873137605[5] = 0; - out_2889206061873137605[6] = 0; - out_2889206061873137605[7] = 0; - out_2889206061873137605[8] = 0; - out_2889206061873137605[9] = 0; - out_2889206061873137605[10] = 1; - out_2889206061873137605[11] = 0; - out_2889206061873137605[12] = 0; - out_2889206061873137605[13] = 0; - out_2889206061873137605[14] = 0; - out_2889206061873137605[15] = 0; - out_2889206061873137605[16] = 0; - out_2889206061873137605[17] = 0; - out_2889206061873137605[18] = 0; - out_2889206061873137605[19] = 0; - out_2889206061873137605[20] = 1; - out_2889206061873137605[21] = 0; - out_2889206061873137605[22] = 0; - out_2889206061873137605[23] = 0; - out_2889206061873137605[24] = 0; - out_2889206061873137605[25] = 0; - out_2889206061873137605[26] = 0; - out_2889206061873137605[27] = 0; - out_2889206061873137605[28] = 0; - out_2889206061873137605[29] = 0; - out_2889206061873137605[30] = 1; - out_2889206061873137605[31] = 0; - out_2889206061873137605[32] = 0; - out_2889206061873137605[33] = 0; - out_2889206061873137605[34] = 0; - out_2889206061873137605[35] = 0; - out_2889206061873137605[36] = 0; - out_2889206061873137605[37] = 0; - out_2889206061873137605[38] = 0; - out_2889206061873137605[39] = 0; - out_2889206061873137605[40] = 1; - out_2889206061873137605[41] = 0; - out_2889206061873137605[42] = 0; - out_2889206061873137605[43] = 0; - out_2889206061873137605[44] = 0; - out_2889206061873137605[45] = dt*(stiffness_front*(-state[2] - state[3] + state[7])/(mass*state[1]) + (-stiffness_front - stiffness_rear)*state[5]/(mass*state[4]) + (-center_to_front*stiffness_front + center_to_rear*stiffness_rear)*state[6]/(mass*state[4])); - out_2889206061873137605[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2)); - out_2889206061873137605[47] = -dt*stiffness_front*state[0]/(mass*state[1]); - out_2889206061873137605[48] = -dt*stiffness_front*state[0]/(mass*state[1]); - out_2889206061873137605[49] = dt*((-1 - (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*pow(state[4], 2)))*state[6] - (-stiffness_front*state[0] - stiffness_rear*state[0])*state[5]/(mass*pow(state[4], 2))); - out_2889206061873137605[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1; - out_2889206061873137605[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4])); - out_2889206061873137605[52] = dt*stiffness_front*state[0]/(mass*state[1]); - out_2889206061873137605[53] = -9.8100000000000005*dt; - out_2889206061873137605[54] = dt*(center_to_front*stiffness_front*(-state[2] - state[3] + state[7])/(rotational_inertia*state[1]) + (-center_to_front*stiffness_front + center_to_rear*stiffness_rear)*state[5]/(rotational_inertia*state[4]) + (-pow(center_to_front, 2)*stiffness_front - pow(center_to_rear, 2)*stiffness_rear)*state[6]/(rotational_inertia*state[4])); - out_2889206061873137605[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2)); - out_2889206061873137605[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); - out_2889206061873137605[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); - out_2889206061873137605[58] = dt*(-(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])*state[5]/(rotational_inertia*pow(state[4], 2)) - (-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])*state[6]/(rotational_inertia*pow(state[4], 2))); - out_2889206061873137605[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]); - out_2889206061873137605[60] = dt*(-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])/(rotational_inertia*state[4]) + 1; - out_2889206061873137605[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); - out_2889206061873137605[62] = 0; - out_2889206061873137605[63] = 0; - out_2889206061873137605[64] = 0; - out_2889206061873137605[65] = 0; - out_2889206061873137605[66] = 0; - out_2889206061873137605[67] = 0; - out_2889206061873137605[68] = 0; - out_2889206061873137605[69] = 0; - out_2889206061873137605[70] = 1; - out_2889206061873137605[71] = 0; - out_2889206061873137605[72] = 0; - out_2889206061873137605[73] = 0; - out_2889206061873137605[74] = 0; - out_2889206061873137605[75] = 0; - out_2889206061873137605[76] = 0; - out_2889206061873137605[77] = 0; - out_2889206061873137605[78] = 0; - out_2889206061873137605[79] = 0; - out_2889206061873137605[80] = 1; +void F_fun(double *state, double dt, double *out_5438267541501267753) { + out_5438267541501267753[0] = 1; + out_5438267541501267753[1] = 0; + out_5438267541501267753[2] = 0; + out_5438267541501267753[3] = 0; + out_5438267541501267753[4] = 0; + out_5438267541501267753[5] = 0; + out_5438267541501267753[6] = 0; + out_5438267541501267753[7] = 0; + out_5438267541501267753[8] = 0; + out_5438267541501267753[9] = 0; + out_5438267541501267753[10] = 1; + out_5438267541501267753[11] = 0; + out_5438267541501267753[12] = 0; + out_5438267541501267753[13] = 0; + out_5438267541501267753[14] = 0; + out_5438267541501267753[15] = 0; + out_5438267541501267753[16] = 0; + out_5438267541501267753[17] = 0; + out_5438267541501267753[18] = 0; + out_5438267541501267753[19] = 0; + out_5438267541501267753[20] = 1; + out_5438267541501267753[21] = 0; + out_5438267541501267753[22] = 0; + out_5438267541501267753[23] = 0; + out_5438267541501267753[24] = 0; + out_5438267541501267753[25] = 0; + out_5438267541501267753[26] = 0; + out_5438267541501267753[27] = 0; + out_5438267541501267753[28] = 0; + out_5438267541501267753[29] = 0; + out_5438267541501267753[30] = 1; + out_5438267541501267753[31] = 0; + out_5438267541501267753[32] = 0; + out_5438267541501267753[33] = 0; + out_5438267541501267753[34] = 0; + out_5438267541501267753[35] = 0; + out_5438267541501267753[36] = 0; + out_5438267541501267753[37] = 0; + out_5438267541501267753[38] = 0; + out_5438267541501267753[39] = 0; + out_5438267541501267753[40] = 1; + out_5438267541501267753[41] = 0; + out_5438267541501267753[42] = 0; + out_5438267541501267753[43] = 0; + out_5438267541501267753[44] = 0; + out_5438267541501267753[45] = dt*(stiffness_front*(-state[2] - state[3] + state[7])/(mass*state[1]) + (-stiffness_front - stiffness_rear)*state[5]/(mass*state[4]) + (-center_to_front*stiffness_front + center_to_rear*stiffness_rear)*state[6]/(mass*state[4])); + out_5438267541501267753[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2)); + out_5438267541501267753[47] = -dt*stiffness_front*state[0]/(mass*state[1]); + out_5438267541501267753[48] = -dt*stiffness_front*state[0]/(mass*state[1]); + out_5438267541501267753[49] = dt*((-1 - (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*pow(state[4], 2)))*state[6] - (-stiffness_front*state[0] - stiffness_rear*state[0])*state[5]/(mass*pow(state[4], 2))); + out_5438267541501267753[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1; + out_5438267541501267753[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4])); + out_5438267541501267753[52] = dt*stiffness_front*state[0]/(mass*state[1]); + out_5438267541501267753[53] = -9.8100000000000005*dt; + out_5438267541501267753[54] = dt*(center_to_front*stiffness_front*(-state[2] - state[3] + state[7])/(rotational_inertia*state[1]) + (-center_to_front*stiffness_front + center_to_rear*stiffness_rear)*state[5]/(rotational_inertia*state[4]) + (-pow(center_to_front, 2)*stiffness_front - pow(center_to_rear, 2)*stiffness_rear)*state[6]/(rotational_inertia*state[4])); + out_5438267541501267753[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2)); + out_5438267541501267753[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); + out_5438267541501267753[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); + out_5438267541501267753[58] = dt*(-(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])*state[5]/(rotational_inertia*pow(state[4], 2)) - (-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])*state[6]/(rotational_inertia*pow(state[4], 2))); + out_5438267541501267753[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]); + out_5438267541501267753[60] = dt*(-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])/(rotational_inertia*state[4]) + 1; + out_5438267541501267753[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); + out_5438267541501267753[62] = 0; + out_5438267541501267753[63] = 0; + out_5438267541501267753[64] = 0; + out_5438267541501267753[65] = 0; + out_5438267541501267753[66] = 0; + out_5438267541501267753[67] = 0; + out_5438267541501267753[68] = 0; + out_5438267541501267753[69] = 0; + out_5438267541501267753[70] = 1; + out_5438267541501267753[71] = 0; + out_5438267541501267753[72] = 0; + out_5438267541501267753[73] = 0; + out_5438267541501267753[74] = 0; + out_5438267541501267753[75] = 0; + out_5438267541501267753[76] = 0; + out_5438267541501267753[77] = 0; + out_5438267541501267753[78] = 0; + out_5438267541501267753[79] = 0; + out_5438267541501267753[80] = 1; } -void h_25(double *state, double *unused, double *out_489826982790321982) { - out_489826982790321982[0] = state[6]; +void h_25(double *state, double *unused, double *out_4244982229226314297) { + out_4244982229226314297[0] = state[6]; } -void H_25(double *state, double *unused, double *out_3101426217352337927) { - out_3101426217352337927[0] = 0; - out_3101426217352337927[1] = 0; - out_3101426217352337927[2] = 0; - out_3101426217352337927[3] = 0; - out_3101426217352337927[4] = 0; - out_3101426217352337927[5] = 0; - out_3101426217352337927[6] = 1; - out_3101426217352337927[7] = 0; - out_3101426217352337927[8] = 0; +void H_25(double *state, double *unused, double *out_1686578216042693128) { + out_1686578216042693128[0] = 0; + out_1686578216042693128[1] = 0; + out_1686578216042693128[2] = 0; + out_1686578216042693128[3] = 0; + out_1686578216042693128[4] = 0; + out_1686578216042693128[5] = 0; + out_1686578216042693128[6] = 1; + out_1686578216042693128[7] = 0; + out_1686578216042693128[8] = 0; } -void h_24(double *state, double *unused, double *out_8333585936499166595) { - out_8333585936499166595[0] = state[4]; - out_8333585936499166595[1] = state[5]; +void h_24(double *state, double *unused, double *out_197553727547805858) { + out_197553727547805858[0] = state[4]; + out_197553727547805858[1] = state[5]; } -void H_24(double *state, double *unused, double *out_8374920500265350521) { - out_8374920500265350521[0] = 0; - out_8374920500265350521[1] = 0; - out_8374920500265350521[2] = 0; - out_8374920500265350521[3] = 0; - out_8374920500265350521[4] = 1; - out_8374920500265350521[5] = 0; - out_8374920500265350521[6] = 0; - out_8374920500265350521[7] = 0; - out_8374920500265350521[8] = 0; - out_8374920500265350521[9] = 0; - out_8374920500265350521[10] = 0; - out_8374920500265350521[11] = 0; - out_8374920500265350521[12] = 0; - out_8374920500265350521[13] = 0; - out_8374920500265350521[14] = 1; - out_8374920500265350521[15] = 0; - out_8374920500265350521[16] = 0; - out_8374920500265350521[17] = 0; +void H_24(double *state, double *unused, double *out_6506899720698681391) { + out_6506899720698681391[0] = 0; + out_6506899720698681391[1] = 0; + out_6506899720698681391[2] = 0; + out_6506899720698681391[3] = 0; + out_6506899720698681391[4] = 1; + out_6506899720698681391[5] = 0; + out_6506899720698681391[6] = 0; + out_6506899720698681391[7] = 0; + out_6506899720698681391[8] = 0; + out_6506899720698681391[9] = 0; + out_6506899720698681391[10] = 0; + out_6506899720698681391[11] = 0; + out_6506899720698681391[12] = 0; + out_6506899720698681391[13] = 0; + out_6506899720698681391[14] = 1; + out_6506899720698681391[15] = 0; + out_6506899720698681391[16] = 0; + out_6506899720698681391[17] = 0; } -void h_30(double *state, double *unused, double *out_7403112512094201377) { - out_7403112512094201377[0] = state[4]; +void h_30(double *state, double *unused, double *out_4099462405005659326) { + out_4099462405005659326[0] = state[4]; } -void H_30(double *state, double *unused, double *out_5619759175859586554) { - out_5619759175859586554[0] = 0; - out_5619759175859586554[1] = 0; - out_5619759175859586554[2] = 0; - out_5619759175859586554[3] = 0; - out_5619759175859586554[4] = 1; - out_5619759175859586554[5] = 0; - out_5619759175859586554[6] = 0; - out_5619759175859586554[7] = 0; - out_5619759175859586554[8] = 0; +void H_30(double *state, double *unused, double *out_1815917163185933198) { + out_1815917163185933198[0] = 0; + out_1815917163185933198[1] = 0; + out_1815917163185933198[2] = 0; + out_1815917163185933198[3] = 0; + out_1815917163185933198[4] = 1; + out_1815917163185933198[5] = 0; + out_1815917163185933198[6] = 0; + out_1815917163185933198[7] = 0; + out_1815917163185933198[8] = 0; } -void h_26(double *state, double *unused, double *out_6041958293954504594) { - out_6041958293954504594[0] = state[7]; +void h_26(double *state, double *unused, double *out_9101135672666504971) { + out_9101135672666504971[0] = state[7]; } -void H_26(double *state, double *unused, double *out_640077101521718297) { - out_640077101521718297[0] = 0; - out_640077101521718297[1] = 0; - out_640077101521718297[2] = 0; - out_640077101521718297[3] = 0; - out_640077101521718297[4] = 0; - out_640077101521718297[5] = 0; - out_640077101521718297[6] = 0; - out_640077101521718297[7] = 1; - out_640077101521718297[8] = 0; +void H_26(double *state, double *unused, double *out_5428081534916749352) { + out_5428081534916749352[0] = 0; + out_5428081534916749352[1] = 0; + out_5428081534916749352[2] = 0; + out_5428081534916749352[3] = 0; + out_5428081534916749352[4] = 0; + out_5428081534916749352[5] = 0; + out_5428081534916749352[6] = 0; + out_5428081534916749352[7] = 1; + out_5428081534916749352[8] = 0; } -void h_27(double *state, double *unused, double *out_8492142189216518783) { - out_8492142189216518783[0] = state[3]; +void h_27(double *state, double *unused, double *out_756691038434531348) { + out_756691038434531348[0] = state[3]; } -void H_27(double *state, double *unused, double *out_3444995864059161643) { - out_3444995864059161643[0] = 0; - out_3444995864059161643[1] = 0; - out_3444995864059161643[2] = 0; - out_3444995864059161643[3] = 1; - out_3444995864059161643[4] = 0; - out_3444995864059161643[5] = 0; - out_3444995864059161643[6] = 0; - out_3444995864059161643[7] = 0; - out_3444995864059161643[8] = 0; +void H_27(double *state, double *unused, double *out_3990680474986358109) { + out_3990680474986358109[0] = 0; + out_3990680474986358109[1] = 0; + out_3990680474986358109[2] = 0; + out_3990680474986358109[3] = 1; + out_3990680474986358109[4] = 0; + out_3990680474986358109[5] = 0; + out_3990680474986358109[6] = 0; + out_3990680474986358109[7] = 0; + out_3990680474986358109[8] = 0; } -void h_29(double *state, double *unused, double *out_610869538462469598) { - out_610869538462469598[0] = state[1]; +void h_29(double *state, double *unused, double *out_7739969642829208644) { + out_7739969642829208644[0] = state[1]; } -void H_29(double *state, double *unused, double *out_6129990520173978738) { - out_6129990520173978738[0] = 0; - out_6129990520173978738[1] = 1; - out_6129990520173978738[2] = 0; - out_6129990520173978738[3] = 0; - out_6129990520173978738[4] = 0; - out_6129990520173978738[5] = 0; - out_6129990520173978738[6] = 0; - out_6129990520173978738[7] = 0; - out_6129990520173978738[8] = 0; +void H_29(double *state, double *unused, double *out_1305685818871541014) { + out_1305685818871541014[0] = 0; + out_1305685818871541014[1] = 1; + out_1305685818871541014[2] = 0; + out_1305685818871541014[3] = 0; + out_1305685818871541014[4] = 0; + out_1305685818871541014[5] = 0; + out_1305685818871541014[6] = 0; + out_1305685818871541014[7] = 0; + out_1305685818871541014[8] = 0; } -void h_28(double *state, double *unused, double *out_3490468921555673138) { - out_3490468921555673138[0] = state[0]; +void h_28(double *state, double *unused, double *out_186818814467131087) { + out_186818814467131087[0] = state[0]; } -void H_28(double *state, double *unused, double *out_1047591503104448164) { - out_1047591503104448164[0] = 1; - out_1047591503104448164[1] = 0; - out_1047591503104448164[2] = 0; - out_1047591503104448164[3] = 0; - out_1047591503104448164[4] = 0; - out_1047591503104448164[5] = 0; - out_1047591503104448164[6] = 0; - out_1047591503104448164[7] = 0; - out_1047591503104448164[8] = 0; +void H_28(double *state, double *unused, double *out_7660301854784111900) { + out_7660301854784111900[0] = 1; + out_7660301854784111900[1] = 0; + out_7660301854784111900[2] = 0; + out_7660301854784111900[3] = 0; + out_7660301854784111900[4] = 0; + out_7660301854784111900[5] = 0; + out_7660301854784111900[6] = 0; + out_7660301854784111900[7] = 0; + out_7660301854784111900[8] = 0; } -void h_31(double *state, double *unused, double *out_1315479088578164838) { - out_1315479088578164838[0] = state[8]; +void h_31(double *state, double *unused, double *out_3518283027594358144) { + out_3518283027594358144[0] = state[8]; } -void H_31(double *state, double *unused, double *out_1266285203755069773) { - out_1266285203755069773[0] = 0; - out_1266285203755069773[1] = 0; - out_1266285203755069773[2] = 0; - out_1266285203755069773[3] = 0; - out_1266285203755069773[4] = 0; - out_1266285203755069773[5] = 0; - out_1266285203755069773[6] = 0; - out_1266285203755069773[7] = 0; - out_1266285203755069773[8] = 1; +void H_31(double *state, double *unused, double *out_1655932254165732700) { + out_1655932254165732700[0] = 0; + out_1655932254165732700[1] = 0; + out_1655932254165732700[2] = 0; + out_1655932254165732700[3] = 0; + out_1655932254165732700[4] = 0; + out_1655932254165732700[5] = 0; + out_1655932254165732700[6] = 0; + out_1655932254165732700[7] = 0; + out_1655932254165732700[8] = 1; } #include #include @@ -518,68 +518,68 @@ void car_update_28(double *in_x, double *in_P, double *in_z, double *in_R, doubl void car_update_31(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) { update<1, 3, 0>(in_x, in_P, h_31, H_31, NULL, in_z, in_R, in_ea, MAHA_THRESH_31); } -void car_err_fun(double *nom_x, double *delta_x, double *out_6318981254884856825) { - err_fun(nom_x, delta_x, out_6318981254884856825); +void car_err_fun(double *nom_x, double *delta_x, double *out_5572165619661696722) { + err_fun(nom_x, delta_x, out_5572165619661696722); } -void car_inv_err_fun(double *nom_x, double *true_x, double *out_6625913990707465652) { - inv_err_fun(nom_x, true_x, out_6625913990707465652); +void car_inv_err_fun(double *nom_x, double *true_x, double *out_1924778118840772208) { + inv_err_fun(nom_x, true_x, out_1924778118840772208); } -void car_H_mod_fun(double *state, double *out_6152129630444976452) { - H_mod_fun(state, out_6152129630444976452); +void car_H_mod_fun(double *state, double *out_5209558866032184805) { + H_mod_fun(state, out_5209558866032184805); } -void car_f_fun(double *state, double dt, double *out_6830787204701444163) { - f_fun(state, dt, out_6830787204701444163); +void car_f_fun(double *state, double dt, double *out_8731244167447695934) { + f_fun(state, dt, out_8731244167447695934); } -void car_F_fun(double *state, double dt, double *out_2889206061873137605) { - F_fun(state, dt, out_2889206061873137605); +void car_F_fun(double *state, double dt, double *out_5438267541501267753) { + F_fun(state, dt, out_5438267541501267753); } -void car_h_25(double *state, double *unused, double *out_489826982790321982) { - h_25(state, unused, out_489826982790321982); +void car_h_25(double *state, double *unused, double *out_4244982229226314297) { + h_25(state, unused, out_4244982229226314297); } -void car_H_25(double *state, double *unused, double *out_3101426217352337927) { - H_25(state, unused, out_3101426217352337927); +void car_H_25(double *state, double *unused, double *out_1686578216042693128) { + H_25(state, unused, out_1686578216042693128); } -void car_h_24(double *state, double *unused, double *out_8333585936499166595) { - h_24(state, unused, out_8333585936499166595); +void car_h_24(double *state, double *unused, double *out_197553727547805858) { + h_24(state, unused, out_197553727547805858); } -void car_H_24(double *state, double *unused, double *out_8374920500265350521) { - H_24(state, unused, out_8374920500265350521); +void car_H_24(double *state, double *unused, double *out_6506899720698681391) { + H_24(state, unused, out_6506899720698681391); } -void car_h_30(double *state, double *unused, double *out_7403112512094201377) { - h_30(state, unused, out_7403112512094201377); +void car_h_30(double *state, double *unused, double *out_4099462405005659326) { + h_30(state, unused, out_4099462405005659326); } -void car_H_30(double *state, double *unused, double *out_5619759175859586554) { - H_30(state, unused, out_5619759175859586554); +void car_H_30(double *state, double *unused, double *out_1815917163185933198) { + H_30(state, unused, out_1815917163185933198); } -void car_h_26(double *state, double *unused, double *out_6041958293954504594) { - h_26(state, unused, out_6041958293954504594); +void car_h_26(double *state, double *unused, double *out_9101135672666504971) { + h_26(state, unused, out_9101135672666504971); } -void car_H_26(double *state, double *unused, double *out_640077101521718297) { - H_26(state, unused, out_640077101521718297); +void car_H_26(double *state, double *unused, double *out_5428081534916749352) { + H_26(state, unused, out_5428081534916749352); } -void car_h_27(double *state, double *unused, double *out_8492142189216518783) { - h_27(state, unused, out_8492142189216518783); +void car_h_27(double *state, double *unused, double *out_756691038434531348) { + h_27(state, unused, out_756691038434531348); } -void car_H_27(double *state, double *unused, double *out_3444995864059161643) { - H_27(state, unused, out_3444995864059161643); +void car_H_27(double *state, double *unused, double *out_3990680474986358109) { + H_27(state, unused, out_3990680474986358109); } -void car_h_29(double *state, double *unused, double *out_610869538462469598) { - h_29(state, unused, out_610869538462469598); +void car_h_29(double *state, double *unused, double *out_7739969642829208644) { + h_29(state, unused, out_7739969642829208644); } -void car_H_29(double *state, double *unused, double *out_6129990520173978738) { - H_29(state, unused, out_6129990520173978738); +void car_H_29(double *state, double *unused, double *out_1305685818871541014) { + H_29(state, unused, out_1305685818871541014); } -void car_h_28(double *state, double *unused, double *out_3490468921555673138) { - h_28(state, unused, out_3490468921555673138); +void car_h_28(double *state, double *unused, double *out_186818814467131087) { + h_28(state, unused, out_186818814467131087); } -void car_H_28(double *state, double *unused, double *out_1047591503104448164) { - H_28(state, unused, out_1047591503104448164); +void car_H_28(double *state, double *unused, double *out_7660301854784111900) { + H_28(state, unused, out_7660301854784111900); } -void car_h_31(double *state, double *unused, double *out_1315479088578164838) { - h_31(state, unused, out_1315479088578164838); +void car_h_31(double *state, double *unused, double *out_3518283027594358144) { + h_31(state, unused, out_3518283027594358144); } -void car_H_31(double *state, double *unused, double *out_1266285203755069773) { - H_31(state, unused, out_1266285203755069773); +void car_H_31(double *state, double *unused, double *out_1655932254165732700) { + H_31(state, unused, out_1655932254165732700); } void car_predict(double *in_x, double *in_P, double *in_Q, double dt) { predict(in_x, in_P, in_Q, dt); diff --git a/selfdrive/locationd/models/generated/car.h b/selfdrive/locationd/models/generated/car.h index b1a21e9eb..254c32808 100644 --- a/selfdrive/locationd/models/generated/car.h +++ b/selfdrive/locationd/models/generated/car.h @@ -9,27 +9,27 @@ void car_update_27(double *in_x, double *in_P, double *in_z, double *in_R, doubl void car_update_29(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void car_update_28(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void car_update_31(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); -void car_err_fun(double *nom_x, double *delta_x, double *out_6318981254884856825); -void car_inv_err_fun(double *nom_x, double *true_x, double *out_6625913990707465652); -void car_H_mod_fun(double *state, double *out_6152129630444976452); -void car_f_fun(double *state, double dt, double *out_6830787204701444163); -void car_F_fun(double *state, double dt, double *out_2889206061873137605); -void car_h_25(double *state, double *unused, double *out_489826982790321982); -void car_H_25(double *state, double *unused, double *out_3101426217352337927); -void car_h_24(double *state, double *unused, double *out_8333585936499166595); -void car_H_24(double *state, double *unused, double *out_8374920500265350521); -void car_h_30(double *state, double *unused, double *out_7403112512094201377); -void car_H_30(double *state, double *unused, double *out_5619759175859586554); -void car_h_26(double *state, double *unused, double *out_6041958293954504594); -void car_H_26(double *state, double *unused, double *out_640077101521718297); -void car_h_27(double *state, double *unused, double *out_8492142189216518783); -void car_H_27(double *state, double *unused, double *out_3444995864059161643); -void car_h_29(double *state, double *unused, double *out_610869538462469598); -void car_H_29(double *state, double *unused, double *out_6129990520173978738); -void car_h_28(double *state, double *unused, double *out_3490468921555673138); -void car_H_28(double *state, double *unused, double *out_1047591503104448164); -void car_h_31(double *state, double *unused, double *out_1315479088578164838); -void car_H_31(double *state, double *unused, double *out_1266285203755069773); +void car_err_fun(double *nom_x, double *delta_x, double *out_5572165619661696722); +void car_inv_err_fun(double *nom_x, double *true_x, double *out_1924778118840772208); +void car_H_mod_fun(double *state, double *out_5209558866032184805); +void car_f_fun(double *state, double dt, double *out_8731244167447695934); +void car_F_fun(double *state, double dt, double *out_5438267541501267753); +void car_h_25(double *state, double *unused, double *out_4244982229226314297); +void car_H_25(double *state, double *unused, double *out_1686578216042693128); +void car_h_24(double *state, double *unused, double *out_197553727547805858); +void car_H_24(double *state, double *unused, double *out_6506899720698681391); +void car_h_30(double *state, double *unused, double *out_4099462405005659326); +void car_H_30(double *state, double *unused, double *out_1815917163185933198); +void car_h_26(double *state, double *unused, double *out_9101135672666504971); +void car_H_26(double *state, double *unused, double *out_5428081534916749352); +void car_h_27(double *state, double *unused, double *out_756691038434531348); +void car_H_27(double *state, double *unused, double *out_3990680474986358109); +void car_h_29(double *state, double *unused, double *out_7739969642829208644); +void car_H_29(double *state, double *unused, double *out_1305685818871541014); +void car_h_28(double *state, double *unused, double *out_186818814467131087); +void car_H_28(double *state, double *unused, double *out_7660301854784111900); +void car_h_31(double *state, double *unused, double *out_3518283027594358144); +void car_H_31(double *state, double *unused, double *out_1655932254165732700); void car_predict(double *in_x, double *in_P, double *in_Q, double dt); void car_set_mass(double x); void car_set_rotational_inertia(double x); diff --git a/selfdrive/locationd/models/generated/pose.cpp b/selfdrive/locationd/models/generated/pose.cpp index 808387fee..cb24e4f0c 100644 --- a/selfdrive/locationd/models/generated/pose.cpp +++ b/selfdrive/locationd/models/generated/pose.cpp @@ -17,961 +17,961 @@ const static double MAHA_THRESH_14 = 7.814727903251177; * * * This file is part of 'ekf' * ******************************************************************************/ -void err_fun(double *nom_x, double *delta_x, double *out_5567810526154209734) { - out_5567810526154209734[0] = delta_x[0] + nom_x[0]; - out_5567810526154209734[1] = delta_x[1] + nom_x[1]; - out_5567810526154209734[2] = delta_x[2] + nom_x[2]; - out_5567810526154209734[3] = delta_x[3] + nom_x[3]; - out_5567810526154209734[4] = delta_x[4] + nom_x[4]; - out_5567810526154209734[5] = delta_x[5] + nom_x[5]; - out_5567810526154209734[6] = delta_x[6] + nom_x[6]; - out_5567810526154209734[7] = delta_x[7] + nom_x[7]; - out_5567810526154209734[8] = delta_x[8] + nom_x[8]; - out_5567810526154209734[9] = delta_x[9] + nom_x[9]; - out_5567810526154209734[10] = delta_x[10] + nom_x[10]; - out_5567810526154209734[11] = delta_x[11] + nom_x[11]; - out_5567810526154209734[12] = delta_x[12] + nom_x[12]; - out_5567810526154209734[13] = delta_x[13] + nom_x[13]; - out_5567810526154209734[14] = delta_x[14] + nom_x[14]; - out_5567810526154209734[15] = delta_x[15] + nom_x[15]; - out_5567810526154209734[16] = delta_x[16] + nom_x[16]; - out_5567810526154209734[17] = delta_x[17] + nom_x[17]; +void err_fun(double *nom_x, double *delta_x, double *out_7636423458425794019) { + out_7636423458425794019[0] = delta_x[0] + nom_x[0]; + out_7636423458425794019[1] = delta_x[1] + nom_x[1]; + out_7636423458425794019[2] = delta_x[2] + nom_x[2]; + out_7636423458425794019[3] = delta_x[3] + nom_x[3]; + out_7636423458425794019[4] = delta_x[4] + nom_x[4]; + out_7636423458425794019[5] = delta_x[5] + nom_x[5]; + out_7636423458425794019[6] = delta_x[6] + nom_x[6]; + out_7636423458425794019[7] = delta_x[7] + nom_x[7]; + out_7636423458425794019[8] = delta_x[8] + nom_x[8]; + out_7636423458425794019[9] = delta_x[9] + nom_x[9]; + out_7636423458425794019[10] = delta_x[10] + nom_x[10]; + out_7636423458425794019[11] = delta_x[11] + nom_x[11]; + out_7636423458425794019[12] = delta_x[12] + nom_x[12]; + out_7636423458425794019[13] = delta_x[13] + nom_x[13]; + out_7636423458425794019[14] = delta_x[14] + nom_x[14]; + out_7636423458425794019[15] = delta_x[15] + nom_x[15]; + out_7636423458425794019[16] = delta_x[16] + nom_x[16]; + out_7636423458425794019[17] = delta_x[17] + nom_x[17]; } -void inv_err_fun(double *nom_x, double *true_x, double *out_7908491346196944566) { - out_7908491346196944566[0] = -nom_x[0] + true_x[0]; - out_7908491346196944566[1] = -nom_x[1] + true_x[1]; - out_7908491346196944566[2] = -nom_x[2] + true_x[2]; - out_7908491346196944566[3] = -nom_x[3] + true_x[3]; - out_7908491346196944566[4] = -nom_x[4] + true_x[4]; - out_7908491346196944566[5] = -nom_x[5] + true_x[5]; - out_7908491346196944566[6] = -nom_x[6] + true_x[6]; - out_7908491346196944566[7] = -nom_x[7] + true_x[7]; - out_7908491346196944566[8] = -nom_x[8] + true_x[8]; - out_7908491346196944566[9] = -nom_x[9] + true_x[9]; - out_7908491346196944566[10] = -nom_x[10] + true_x[10]; - out_7908491346196944566[11] = -nom_x[11] + true_x[11]; - out_7908491346196944566[12] = -nom_x[12] + true_x[12]; - out_7908491346196944566[13] = -nom_x[13] + true_x[13]; - out_7908491346196944566[14] = -nom_x[14] + true_x[14]; - out_7908491346196944566[15] = -nom_x[15] + true_x[15]; - out_7908491346196944566[16] = -nom_x[16] + true_x[16]; - out_7908491346196944566[17] = -nom_x[17] + true_x[17]; +void inv_err_fun(double *nom_x, double *true_x, double *out_4233815579108349573) { + out_4233815579108349573[0] = -nom_x[0] + true_x[0]; + out_4233815579108349573[1] = -nom_x[1] + true_x[1]; + out_4233815579108349573[2] = -nom_x[2] + true_x[2]; + out_4233815579108349573[3] = -nom_x[3] + true_x[3]; + out_4233815579108349573[4] = -nom_x[4] + true_x[4]; + out_4233815579108349573[5] = -nom_x[5] + true_x[5]; + out_4233815579108349573[6] = -nom_x[6] + true_x[6]; + out_4233815579108349573[7] = -nom_x[7] + true_x[7]; + out_4233815579108349573[8] = -nom_x[8] + true_x[8]; + out_4233815579108349573[9] = -nom_x[9] + true_x[9]; + out_4233815579108349573[10] = -nom_x[10] + true_x[10]; + out_4233815579108349573[11] = -nom_x[11] + true_x[11]; + out_4233815579108349573[12] = -nom_x[12] + true_x[12]; + out_4233815579108349573[13] = -nom_x[13] + true_x[13]; + out_4233815579108349573[14] = -nom_x[14] + true_x[14]; + out_4233815579108349573[15] = -nom_x[15] + true_x[15]; + out_4233815579108349573[16] = -nom_x[16] + true_x[16]; + out_4233815579108349573[17] = -nom_x[17] + true_x[17]; } -void H_mod_fun(double *state, double *out_1058329813454059053) { - out_1058329813454059053[0] = 1.0; - out_1058329813454059053[1] = 0.0; - out_1058329813454059053[2] = 0.0; - out_1058329813454059053[3] = 0.0; - out_1058329813454059053[4] = 0.0; - out_1058329813454059053[5] = 0.0; - out_1058329813454059053[6] = 0.0; - out_1058329813454059053[7] = 0.0; - out_1058329813454059053[8] = 0.0; - out_1058329813454059053[9] = 0.0; - out_1058329813454059053[10] = 0.0; - out_1058329813454059053[11] = 0.0; - out_1058329813454059053[12] = 0.0; - out_1058329813454059053[13] = 0.0; - out_1058329813454059053[14] = 0.0; - out_1058329813454059053[15] = 0.0; - out_1058329813454059053[16] = 0.0; - out_1058329813454059053[17] = 0.0; - out_1058329813454059053[18] = 0.0; - out_1058329813454059053[19] = 1.0; - out_1058329813454059053[20] = 0.0; - out_1058329813454059053[21] = 0.0; - out_1058329813454059053[22] = 0.0; - out_1058329813454059053[23] = 0.0; - out_1058329813454059053[24] = 0.0; - out_1058329813454059053[25] = 0.0; - out_1058329813454059053[26] = 0.0; - out_1058329813454059053[27] = 0.0; - out_1058329813454059053[28] = 0.0; - out_1058329813454059053[29] = 0.0; - out_1058329813454059053[30] = 0.0; - out_1058329813454059053[31] = 0.0; - out_1058329813454059053[32] = 0.0; - out_1058329813454059053[33] = 0.0; - out_1058329813454059053[34] = 0.0; - out_1058329813454059053[35] = 0.0; - out_1058329813454059053[36] = 0.0; - out_1058329813454059053[37] = 0.0; - out_1058329813454059053[38] = 1.0; - out_1058329813454059053[39] = 0.0; - out_1058329813454059053[40] = 0.0; - out_1058329813454059053[41] = 0.0; - out_1058329813454059053[42] = 0.0; - out_1058329813454059053[43] = 0.0; - out_1058329813454059053[44] = 0.0; - out_1058329813454059053[45] = 0.0; - out_1058329813454059053[46] = 0.0; - out_1058329813454059053[47] = 0.0; - out_1058329813454059053[48] = 0.0; - out_1058329813454059053[49] = 0.0; - out_1058329813454059053[50] = 0.0; - out_1058329813454059053[51] = 0.0; - out_1058329813454059053[52] = 0.0; - out_1058329813454059053[53] = 0.0; - out_1058329813454059053[54] = 0.0; - out_1058329813454059053[55] = 0.0; - out_1058329813454059053[56] = 0.0; - out_1058329813454059053[57] = 1.0; - out_1058329813454059053[58] = 0.0; - out_1058329813454059053[59] = 0.0; - out_1058329813454059053[60] = 0.0; - out_1058329813454059053[61] = 0.0; - out_1058329813454059053[62] = 0.0; - out_1058329813454059053[63] = 0.0; - out_1058329813454059053[64] = 0.0; - out_1058329813454059053[65] = 0.0; - out_1058329813454059053[66] = 0.0; - out_1058329813454059053[67] = 0.0; - out_1058329813454059053[68] = 0.0; - out_1058329813454059053[69] = 0.0; - out_1058329813454059053[70] = 0.0; - out_1058329813454059053[71] = 0.0; - out_1058329813454059053[72] = 0.0; - out_1058329813454059053[73] = 0.0; - out_1058329813454059053[74] = 0.0; - out_1058329813454059053[75] = 0.0; - out_1058329813454059053[76] = 1.0; - out_1058329813454059053[77] = 0.0; - out_1058329813454059053[78] = 0.0; - out_1058329813454059053[79] = 0.0; - out_1058329813454059053[80] = 0.0; - out_1058329813454059053[81] = 0.0; - out_1058329813454059053[82] = 0.0; - out_1058329813454059053[83] = 0.0; - out_1058329813454059053[84] = 0.0; - out_1058329813454059053[85] = 0.0; - out_1058329813454059053[86] = 0.0; - out_1058329813454059053[87] = 0.0; - out_1058329813454059053[88] = 0.0; - out_1058329813454059053[89] = 0.0; - out_1058329813454059053[90] = 0.0; - out_1058329813454059053[91] = 0.0; - out_1058329813454059053[92] = 0.0; - out_1058329813454059053[93] = 0.0; - out_1058329813454059053[94] = 0.0; - out_1058329813454059053[95] = 1.0; - out_1058329813454059053[96] = 0.0; - out_1058329813454059053[97] = 0.0; - out_1058329813454059053[98] = 0.0; - out_1058329813454059053[99] = 0.0; - out_1058329813454059053[100] = 0.0; - out_1058329813454059053[101] = 0.0; - out_1058329813454059053[102] = 0.0; - out_1058329813454059053[103] = 0.0; - out_1058329813454059053[104] = 0.0; - out_1058329813454059053[105] = 0.0; - out_1058329813454059053[106] = 0.0; - out_1058329813454059053[107] = 0.0; - out_1058329813454059053[108] = 0.0; - out_1058329813454059053[109] = 0.0; - out_1058329813454059053[110] = 0.0; - out_1058329813454059053[111] = 0.0; - out_1058329813454059053[112] = 0.0; - out_1058329813454059053[113] = 0.0; - out_1058329813454059053[114] = 1.0; - out_1058329813454059053[115] = 0.0; - out_1058329813454059053[116] = 0.0; - out_1058329813454059053[117] = 0.0; - out_1058329813454059053[118] = 0.0; - out_1058329813454059053[119] = 0.0; - out_1058329813454059053[120] = 0.0; - out_1058329813454059053[121] = 0.0; - out_1058329813454059053[122] = 0.0; - out_1058329813454059053[123] = 0.0; - out_1058329813454059053[124] = 0.0; - out_1058329813454059053[125] = 0.0; - out_1058329813454059053[126] = 0.0; - out_1058329813454059053[127] = 0.0; - out_1058329813454059053[128] = 0.0; - out_1058329813454059053[129] = 0.0; - out_1058329813454059053[130] = 0.0; - out_1058329813454059053[131] = 0.0; - out_1058329813454059053[132] = 0.0; - out_1058329813454059053[133] = 1.0; - out_1058329813454059053[134] = 0.0; - out_1058329813454059053[135] = 0.0; - out_1058329813454059053[136] = 0.0; - out_1058329813454059053[137] = 0.0; - out_1058329813454059053[138] = 0.0; - out_1058329813454059053[139] = 0.0; - out_1058329813454059053[140] = 0.0; - out_1058329813454059053[141] = 0.0; - out_1058329813454059053[142] = 0.0; - out_1058329813454059053[143] = 0.0; - out_1058329813454059053[144] = 0.0; - out_1058329813454059053[145] = 0.0; - out_1058329813454059053[146] = 0.0; - out_1058329813454059053[147] = 0.0; - out_1058329813454059053[148] = 0.0; - out_1058329813454059053[149] = 0.0; - out_1058329813454059053[150] = 0.0; - out_1058329813454059053[151] = 0.0; - out_1058329813454059053[152] = 1.0; - out_1058329813454059053[153] = 0.0; - out_1058329813454059053[154] = 0.0; - out_1058329813454059053[155] = 0.0; - out_1058329813454059053[156] = 0.0; - out_1058329813454059053[157] = 0.0; - out_1058329813454059053[158] = 0.0; - out_1058329813454059053[159] = 0.0; - out_1058329813454059053[160] = 0.0; - out_1058329813454059053[161] = 0.0; - out_1058329813454059053[162] = 0.0; - out_1058329813454059053[163] = 0.0; - out_1058329813454059053[164] = 0.0; - out_1058329813454059053[165] = 0.0; - out_1058329813454059053[166] = 0.0; - out_1058329813454059053[167] = 0.0; - out_1058329813454059053[168] = 0.0; - out_1058329813454059053[169] = 0.0; - out_1058329813454059053[170] = 0.0; - out_1058329813454059053[171] = 1.0; - out_1058329813454059053[172] = 0.0; - out_1058329813454059053[173] = 0.0; - out_1058329813454059053[174] = 0.0; - out_1058329813454059053[175] = 0.0; - out_1058329813454059053[176] = 0.0; - out_1058329813454059053[177] = 0.0; - out_1058329813454059053[178] = 0.0; - out_1058329813454059053[179] = 0.0; - out_1058329813454059053[180] = 0.0; - out_1058329813454059053[181] = 0.0; - out_1058329813454059053[182] = 0.0; - out_1058329813454059053[183] = 0.0; - out_1058329813454059053[184] = 0.0; - out_1058329813454059053[185] = 0.0; - out_1058329813454059053[186] = 0.0; - out_1058329813454059053[187] = 0.0; - out_1058329813454059053[188] = 0.0; - out_1058329813454059053[189] = 0.0; - out_1058329813454059053[190] = 1.0; - out_1058329813454059053[191] = 0.0; - out_1058329813454059053[192] = 0.0; - out_1058329813454059053[193] = 0.0; - out_1058329813454059053[194] = 0.0; - out_1058329813454059053[195] = 0.0; - out_1058329813454059053[196] = 0.0; - out_1058329813454059053[197] = 0.0; - out_1058329813454059053[198] = 0.0; - out_1058329813454059053[199] = 0.0; - out_1058329813454059053[200] = 0.0; - out_1058329813454059053[201] = 0.0; - out_1058329813454059053[202] = 0.0; - out_1058329813454059053[203] = 0.0; - out_1058329813454059053[204] = 0.0; - out_1058329813454059053[205] = 0.0; - out_1058329813454059053[206] = 0.0; - out_1058329813454059053[207] = 0.0; - out_1058329813454059053[208] = 0.0; - out_1058329813454059053[209] = 1.0; - out_1058329813454059053[210] = 0.0; - out_1058329813454059053[211] = 0.0; - out_1058329813454059053[212] = 0.0; - out_1058329813454059053[213] = 0.0; - out_1058329813454059053[214] = 0.0; - out_1058329813454059053[215] = 0.0; - out_1058329813454059053[216] = 0.0; - out_1058329813454059053[217] = 0.0; - out_1058329813454059053[218] = 0.0; - out_1058329813454059053[219] = 0.0; - out_1058329813454059053[220] = 0.0; - out_1058329813454059053[221] = 0.0; - out_1058329813454059053[222] = 0.0; - out_1058329813454059053[223] = 0.0; - out_1058329813454059053[224] = 0.0; - out_1058329813454059053[225] = 0.0; - out_1058329813454059053[226] = 0.0; - out_1058329813454059053[227] = 0.0; - out_1058329813454059053[228] = 1.0; - out_1058329813454059053[229] = 0.0; - out_1058329813454059053[230] = 0.0; - out_1058329813454059053[231] = 0.0; - out_1058329813454059053[232] = 0.0; - out_1058329813454059053[233] = 0.0; - out_1058329813454059053[234] = 0.0; - out_1058329813454059053[235] = 0.0; - out_1058329813454059053[236] = 0.0; - out_1058329813454059053[237] = 0.0; - out_1058329813454059053[238] = 0.0; - out_1058329813454059053[239] = 0.0; - out_1058329813454059053[240] = 0.0; - out_1058329813454059053[241] = 0.0; - out_1058329813454059053[242] = 0.0; - out_1058329813454059053[243] = 0.0; - out_1058329813454059053[244] = 0.0; - out_1058329813454059053[245] = 0.0; - out_1058329813454059053[246] = 0.0; - out_1058329813454059053[247] = 1.0; - out_1058329813454059053[248] = 0.0; - out_1058329813454059053[249] = 0.0; - out_1058329813454059053[250] = 0.0; - out_1058329813454059053[251] = 0.0; - out_1058329813454059053[252] = 0.0; - out_1058329813454059053[253] = 0.0; - out_1058329813454059053[254] = 0.0; - out_1058329813454059053[255] = 0.0; - out_1058329813454059053[256] = 0.0; - out_1058329813454059053[257] = 0.0; - out_1058329813454059053[258] = 0.0; - out_1058329813454059053[259] = 0.0; - out_1058329813454059053[260] = 0.0; - out_1058329813454059053[261] = 0.0; - out_1058329813454059053[262] = 0.0; - out_1058329813454059053[263] = 0.0; - out_1058329813454059053[264] = 0.0; - out_1058329813454059053[265] = 0.0; - out_1058329813454059053[266] = 1.0; - out_1058329813454059053[267] = 0.0; - out_1058329813454059053[268] = 0.0; - out_1058329813454059053[269] = 0.0; - out_1058329813454059053[270] = 0.0; - out_1058329813454059053[271] = 0.0; - out_1058329813454059053[272] = 0.0; - out_1058329813454059053[273] = 0.0; - out_1058329813454059053[274] = 0.0; - out_1058329813454059053[275] = 0.0; - out_1058329813454059053[276] = 0.0; - out_1058329813454059053[277] = 0.0; - out_1058329813454059053[278] = 0.0; - out_1058329813454059053[279] = 0.0; - out_1058329813454059053[280] = 0.0; - out_1058329813454059053[281] = 0.0; - out_1058329813454059053[282] = 0.0; - out_1058329813454059053[283] = 0.0; - out_1058329813454059053[284] = 0.0; - out_1058329813454059053[285] = 1.0; - out_1058329813454059053[286] = 0.0; - out_1058329813454059053[287] = 0.0; - out_1058329813454059053[288] = 0.0; - out_1058329813454059053[289] = 0.0; - out_1058329813454059053[290] = 0.0; - out_1058329813454059053[291] = 0.0; - out_1058329813454059053[292] = 0.0; - out_1058329813454059053[293] = 0.0; - out_1058329813454059053[294] = 0.0; - out_1058329813454059053[295] = 0.0; - out_1058329813454059053[296] = 0.0; - out_1058329813454059053[297] = 0.0; - out_1058329813454059053[298] = 0.0; - out_1058329813454059053[299] = 0.0; - out_1058329813454059053[300] = 0.0; - out_1058329813454059053[301] = 0.0; - out_1058329813454059053[302] = 0.0; - out_1058329813454059053[303] = 0.0; - out_1058329813454059053[304] = 1.0; - out_1058329813454059053[305] = 0.0; - out_1058329813454059053[306] = 0.0; - out_1058329813454059053[307] = 0.0; - out_1058329813454059053[308] = 0.0; - out_1058329813454059053[309] = 0.0; - out_1058329813454059053[310] = 0.0; - out_1058329813454059053[311] = 0.0; - out_1058329813454059053[312] = 0.0; - out_1058329813454059053[313] = 0.0; - out_1058329813454059053[314] = 0.0; - out_1058329813454059053[315] = 0.0; - out_1058329813454059053[316] = 0.0; - out_1058329813454059053[317] = 0.0; - out_1058329813454059053[318] = 0.0; - out_1058329813454059053[319] = 0.0; - out_1058329813454059053[320] = 0.0; - out_1058329813454059053[321] = 0.0; - out_1058329813454059053[322] = 0.0; - out_1058329813454059053[323] = 1.0; +void H_mod_fun(double *state, double *out_534131660440936662) { + out_534131660440936662[0] = 1.0; + out_534131660440936662[1] = 0.0; + out_534131660440936662[2] = 0.0; + out_534131660440936662[3] = 0.0; + out_534131660440936662[4] = 0.0; + out_534131660440936662[5] = 0.0; + out_534131660440936662[6] = 0.0; + out_534131660440936662[7] = 0.0; + out_534131660440936662[8] = 0.0; + out_534131660440936662[9] = 0.0; + out_534131660440936662[10] = 0.0; + out_534131660440936662[11] = 0.0; + out_534131660440936662[12] = 0.0; + out_534131660440936662[13] = 0.0; + out_534131660440936662[14] = 0.0; + out_534131660440936662[15] = 0.0; + out_534131660440936662[16] = 0.0; + out_534131660440936662[17] = 0.0; + out_534131660440936662[18] = 0.0; + out_534131660440936662[19] = 1.0; + out_534131660440936662[20] = 0.0; + out_534131660440936662[21] = 0.0; + out_534131660440936662[22] = 0.0; + out_534131660440936662[23] = 0.0; + out_534131660440936662[24] = 0.0; + out_534131660440936662[25] = 0.0; + out_534131660440936662[26] = 0.0; + out_534131660440936662[27] = 0.0; + out_534131660440936662[28] = 0.0; + out_534131660440936662[29] = 0.0; + out_534131660440936662[30] = 0.0; + out_534131660440936662[31] = 0.0; + out_534131660440936662[32] = 0.0; + out_534131660440936662[33] = 0.0; + out_534131660440936662[34] = 0.0; + out_534131660440936662[35] = 0.0; + out_534131660440936662[36] = 0.0; + out_534131660440936662[37] = 0.0; + out_534131660440936662[38] = 1.0; + out_534131660440936662[39] = 0.0; + out_534131660440936662[40] = 0.0; + out_534131660440936662[41] = 0.0; + out_534131660440936662[42] = 0.0; + out_534131660440936662[43] = 0.0; + out_534131660440936662[44] = 0.0; + out_534131660440936662[45] = 0.0; + out_534131660440936662[46] = 0.0; + out_534131660440936662[47] = 0.0; + out_534131660440936662[48] = 0.0; + out_534131660440936662[49] = 0.0; + out_534131660440936662[50] = 0.0; + out_534131660440936662[51] = 0.0; + out_534131660440936662[52] = 0.0; + out_534131660440936662[53] = 0.0; + out_534131660440936662[54] = 0.0; + out_534131660440936662[55] = 0.0; + out_534131660440936662[56] = 0.0; + out_534131660440936662[57] = 1.0; + out_534131660440936662[58] = 0.0; + out_534131660440936662[59] = 0.0; + out_534131660440936662[60] = 0.0; + out_534131660440936662[61] = 0.0; + out_534131660440936662[62] = 0.0; + out_534131660440936662[63] = 0.0; + out_534131660440936662[64] = 0.0; + out_534131660440936662[65] = 0.0; + out_534131660440936662[66] = 0.0; + out_534131660440936662[67] = 0.0; + out_534131660440936662[68] = 0.0; + out_534131660440936662[69] = 0.0; + out_534131660440936662[70] = 0.0; + out_534131660440936662[71] = 0.0; + out_534131660440936662[72] = 0.0; + out_534131660440936662[73] = 0.0; + out_534131660440936662[74] = 0.0; + out_534131660440936662[75] = 0.0; + out_534131660440936662[76] = 1.0; + out_534131660440936662[77] = 0.0; + out_534131660440936662[78] = 0.0; + out_534131660440936662[79] = 0.0; + out_534131660440936662[80] = 0.0; + out_534131660440936662[81] = 0.0; + out_534131660440936662[82] = 0.0; + out_534131660440936662[83] = 0.0; + out_534131660440936662[84] = 0.0; + out_534131660440936662[85] = 0.0; + out_534131660440936662[86] = 0.0; + out_534131660440936662[87] = 0.0; + out_534131660440936662[88] = 0.0; + out_534131660440936662[89] = 0.0; + out_534131660440936662[90] = 0.0; + out_534131660440936662[91] = 0.0; + out_534131660440936662[92] = 0.0; + out_534131660440936662[93] = 0.0; + out_534131660440936662[94] = 0.0; + out_534131660440936662[95] = 1.0; + out_534131660440936662[96] = 0.0; + out_534131660440936662[97] = 0.0; + out_534131660440936662[98] = 0.0; + out_534131660440936662[99] = 0.0; + out_534131660440936662[100] = 0.0; + out_534131660440936662[101] = 0.0; + out_534131660440936662[102] = 0.0; + out_534131660440936662[103] = 0.0; + out_534131660440936662[104] = 0.0; + out_534131660440936662[105] = 0.0; + out_534131660440936662[106] = 0.0; + out_534131660440936662[107] = 0.0; + out_534131660440936662[108] = 0.0; + out_534131660440936662[109] = 0.0; + out_534131660440936662[110] = 0.0; + out_534131660440936662[111] = 0.0; + out_534131660440936662[112] = 0.0; + out_534131660440936662[113] = 0.0; + out_534131660440936662[114] = 1.0; + out_534131660440936662[115] = 0.0; + out_534131660440936662[116] = 0.0; + out_534131660440936662[117] = 0.0; + out_534131660440936662[118] = 0.0; + out_534131660440936662[119] = 0.0; + out_534131660440936662[120] = 0.0; + out_534131660440936662[121] = 0.0; + out_534131660440936662[122] = 0.0; + out_534131660440936662[123] = 0.0; + out_534131660440936662[124] = 0.0; + out_534131660440936662[125] = 0.0; + out_534131660440936662[126] = 0.0; + out_534131660440936662[127] = 0.0; + out_534131660440936662[128] = 0.0; + out_534131660440936662[129] = 0.0; + out_534131660440936662[130] = 0.0; + out_534131660440936662[131] = 0.0; + out_534131660440936662[132] = 0.0; + out_534131660440936662[133] = 1.0; + out_534131660440936662[134] = 0.0; + out_534131660440936662[135] = 0.0; + out_534131660440936662[136] = 0.0; + out_534131660440936662[137] = 0.0; + out_534131660440936662[138] = 0.0; + out_534131660440936662[139] = 0.0; + out_534131660440936662[140] = 0.0; + out_534131660440936662[141] = 0.0; + out_534131660440936662[142] = 0.0; + out_534131660440936662[143] = 0.0; + out_534131660440936662[144] = 0.0; + out_534131660440936662[145] = 0.0; + out_534131660440936662[146] = 0.0; + out_534131660440936662[147] = 0.0; + out_534131660440936662[148] = 0.0; + out_534131660440936662[149] = 0.0; + out_534131660440936662[150] = 0.0; + out_534131660440936662[151] = 0.0; + out_534131660440936662[152] = 1.0; + out_534131660440936662[153] = 0.0; + out_534131660440936662[154] = 0.0; + out_534131660440936662[155] = 0.0; + out_534131660440936662[156] = 0.0; + out_534131660440936662[157] = 0.0; + out_534131660440936662[158] = 0.0; + out_534131660440936662[159] = 0.0; + out_534131660440936662[160] = 0.0; + out_534131660440936662[161] = 0.0; + out_534131660440936662[162] = 0.0; + out_534131660440936662[163] = 0.0; + out_534131660440936662[164] = 0.0; + out_534131660440936662[165] = 0.0; + out_534131660440936662[166] = 0.0; + out_534131660440936662[167] = 0.0; + out_534131660440936662[168] = 0.0; + out_534131660440936662[169] = 0.0; + out_534131660440936662[170] = 0.0; + out_534131660440936662[171] = 1.0; + out_534131660440936662[172] = 0.0; + out_534131660440936662[173] = 0.0; + out_534131660440936662[174] = 0.0; + out_534131660440936662[175] = 0.0; + out_534131660440936662[176] = 0.0; + out_534131660440936662[177] = 0.0; + out_534131660440936662[178] = 0.0; + out_534131660440936662[179] = 0.0; + out_534131660440936662[180] = 0.0; + out_534131660440936662[181] = 0.0; + out_534131660440936662[182] = 0.0; + out_534131660440936662[183] = 0.0; + out_534131660440936662[184] = 0.0; + out_534131660440936662[185] = 0.0; + out_534131660440936662[186] = 0.0; + out_534131660440936662[187] = 0.0; + out_534131660440936662[188] = 0.0; + out_534131660440936662[189] = 0.0; + out_534131660440936662[190] = 1.0; + out_534131660440936662[191] = 0.0; + out_534131660440936662[192] = 0.0; + out_534131660440936662[193] = 0.0; + out_534131660440936662[194] = 0.0; + out_534131660440936662[195] = 0.0; + out_534131660440936662[196] = 0.0; + out_534131660440936662[197] = 0.0; + out_534131660440936662[198] = 0.0; + out_534131660440936662[199] = 0.0; + out_534131660440936662[200] = 0.0; + out_534131660440936662[201] = 0.0; + out_534131660440936662[202] = 0.0; + out_534131660440936662[203] = 0.0; + out_534131660440936662[204] = 0.0; + out_534131660440936662[205] = 0.0; + out_534131660440936662[206] = 0.0; + out_534131660440936662[207] = 0.0; + out_534131660440936662[208] = 0.0; + out_534131660440936662[209] = 1.0; + out_534131660440936662[210] = 0.0; + out_534131660440936662[211] = 0.0; + out_534131660440936662[212] = 0.0; + out_534131660440936662[213] = 0.0; + out_534131660440936662[214] = 0.0; + out_534131660440936662[215] = 0.0; + out_534131660440936662[216] = 0.0; + out_534131660440936662[217] = 0.0; + out_534131660440936662[218] = 0.0; + out_534131660440936662[219] = 0.0; + out_534131660440936662[220] = 0.0; + out_534131660440936662[221] = 0.0; + out_534131660440936662[222] = 0.0; + out_534131660440936662[223] = 0.0; + out_534131660440936662[224] = 0.0; + out_534131660440936662[225] = 0.0; + out_534131660440936662[226] = 0.0; + out_534131660440936662[227] = 0.0; + out_534131660440936662[228] = 1.0; + out_534131660440936662[229] = 0.0; + out_534131660440936662[230] = 0.0; + out_534131660440936662[231] = 0.0; + out_534131660440936662[232] = 0.0; + out_534131660440936662[233] = 0.0; + out_534131660440936662[234] = 0.0; + out_534131660440936662[235] = 0.0; + out_534131660440936662[236] = 0.0; + out_534131660440936662[237] = 0.0; + out_534131660440936662[238] = 0.0; + out_534131660440936662[239] = 0.0; + out_534131660440936662[240] = 0.0; + out_534131660440936662[241] = 0.0; + out_534131660440936662[242] = 0.0; + out_534131660440936662[243] = 0.0; + out_534131660440936662[244] = 0.0; + out_534131660440936662[245] = 0.0; + out_534131660440936662[246] = 0.0; + out_534131660440936662[247] = 1.0; + out_534131660440936662[248] = 0.0; + out_534131660440936662[249] = 0.0; + out_534131660440936662[250] = 0.0; + out_534131660440936662[251] = 0.0; + out_534131660440936662[252] = 0.0; + out_534131660440936662[253] = 0.0; + out_534131660440936662[254] = 0.0; + out_534131660440936662[255] = 0.0; + out_534131660440936662[256] = 0.0; + out_534131660440936662[257] = 0.0; + out_534131660440936662[258] = 0.0; + out_534131660440936662[259] = 0.0; + out_534131660440936662[260] = 0.0; + out_534131660440936662[261] = 0.0; + out_534131660440936662[262] = 0.0; + out_534131660440936662[263] = 0.0; + out_534131660440936662[264] = 0.0; + out_534131660440936662[265] = 0.0; + out_534131660440936662[266] = 1.0; + out_534131660440936662[267] = 0.0; + out_534131660440936662[268] = 0.0; + out_534131660440936662[269] = 0.0; + out_534131660440936662[270] = 0.0; + out_534131660440936662[271] = 0.0; + out_534131660440936662[272] = 0.0; + out_534131660440936662[273] = 0.0; + out_534131660440936662[274] = 0.0; + out_534131660440936662[275] = 0.0; + out_534131660440936662[276] = 0.0; + out_534131660440936662[277] = 0.0; + out_534131660440936662[278] = 0.0; + out_534131660440936662[279] = 0.0; + out_534131660440936662[280] = 0.0; + out_534131660440936662[281] = 0.0; + out_534131660440936662[282] = 0.0; + out_534131660440936662[283] = 0.0; + out_534131660440936662[284] = 0.0; + out_534131660440936662[285] = 1.0; + out_534131660440936662[286] = 0.0; + out_534131660440936662[287] = 0.0; + out_534131660440936662[288] = 0.0; + out_534131660440936662[289] = 0.0; + out_534131660440936662[290] = 0.0; + out_534131660440936662[291] = 0.0; + out_534131660440936662[292] = 0.0; + out_534131660440936662[293] = 0.0; + out_534131660440936662[294] = 0.0; + out_534131660440936662[295] = 0.0; + out_534131660440936662[296] = 0.0; + out_534131660440936662[297] = 0.0; + out_534131660440936662[298] = 0.0; + out_534131660440936662[299] = 0.0; + out_534131660440936662[300] = 0.0; + out_534131660440936662[301] = 0.0; + out_534131660440936662[302] = 0.0; + out_534131660440936662[303] = 0.0; + out_534131660440936662[304] = 1.0; + out_534131660440936662[305] = 0.0; + out_534131660440936662[306] = 0.0; + out_534131660440936662[307] = 0.0; + out_534131660440936662[308] = 0.0; + out_534131660440936662[309] = 0.0; + out_534131660440936662[310] = 0.0; + out_534131660440936662[311] = 0.0; + out_534131660440936662[312] = 0.0; + out_534131660440936662[313] = 0.0; + out_534131660440936662[314] = 0.0; + out_534131660440936662[315] = 0.0; + out_534131660440936662[316] = 0.0; + out_534131660440936662[317] = 0.0; + out_534131660440936662[318] = 0.0; + out_534131660440936662[319] = 0.0; + out_534131660440936662[320] = 0.0; + out_534131660440936662[321] = 0.0; + out_534131660440936662[322] = 0.0; + out_534131660440936662[323] = 1.0; } -void f_fun(double *state, double dt, double *out_6164632031260569200) { - out_6164632031260569200[0] = atan2((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), -(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1])); - out_6164632031260569200[1] = asin(sin(dt*state[7])*cos(state[0])*cos(state[1]) - sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1]) + sin(state[1])*cos(dt*state[7])*cos(dt*state[8])); - out_6164632031260569200[2] = atan2(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), -(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2])); - out_6164632031260569200[3] = dt*state[12] + state[3]; - out_6164632031260569200[4] = dt*state[13] + state[4]; - out_6164632031260569200[5] = dt*state[14] + state[5]; - out_6164632031260569200[6] = state[6]; - out_6164632031260569200[7] = state[7]; - out_6164632031260569200[8] = state[8]; - out_6164632031260569200[9] = state[9]; - out_6164632031260569200[10] = state[10]; - out_6164632031260569200[11] = state[11]; - out_6164632031260569200[12] = state[12]; - out_6164632031260569200[13] = state[13]; - out_6164632031260569200[14] = state[14]; - out_6164632031260569200[15] = state[15]; - out_6164632031260569200[16] = state[16]; - out_6164632031260569200[17] = state[17]; +void f_fun(double *state, double dt, double *out_2390572541081456385) { + out_2390572541081456385[0] = atan2((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), -(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1])); + out_2390572541081456385[1] = asin(sin(dt*state[7])*cos(state[0])*cos(state[1]) - sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1]) + sin(state[1])*cos(dt*state[7])*cos(dt*state[8])); + out_2390572541081456385[2] = atan2(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), -(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2])); + out_2390572541081456385[3] = dt*state[12] + state[3]; + out_2390572541081456385[4] = dt*state[13] + state[4]; + out_2390572541081456385[5] = dt*state[14] + state[5]; + out_2390572541081456385[6] = state[6]; + out_2390572541081456385[7] = state[7]; + out_2390572541081456385[8] = state[8]; + out_2390572541081456385[9] = state[9]; + out_2390572541081456385[10] = state[10]; + out_2390572541081456385[11] = state[11]; + out_2390572541081456385[12] = state[12]; + out_2390572541081456385[13] = state[13]; + out_2390572541081456385[14] = state[14]; + out_2390572541081456385[15] = state[15]; + out_2390572541081456385[16] = state[16]; + out_2390572541081456385[17] = state[17]; } -void F_fun(double *state, double dt, double *out_2115210801735647822) { - out_2115210801735647822[0] = ((-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*cos(state[0])*cos(state[1]) - sin(state[0])*cos(dt*state[6])*cos(dt*state[7])*cos(state[1]))*(-(sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) - sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)) + ((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*cos(state[0])*cos(state[1]) - sin(dt*state[6])*sin(state[0])*cos(dt*state[7])*cos(state[1]))*(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)); - out_2115210801735647822[1] = ((-sin(dt*state[6])*sin(dt*state[8]) - sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*cos(state[1]) - (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*sin(state[1]) - sin(state[1])*cos(dt*state[6])*cos(dt*state[7])*cos(state[0]))*(-(sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) - sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)) + (-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))*(-(sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*sin(state[1]) + (-sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) + sin(dt*state[8])*cos(dt*state[6]))*cos(state[1]) - sin(dt*state[6])*sin(state[1])*cos(dt*state[7])*cos(state[0]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)); - out_2115210801735647822[2] = 0; - out_2115210801735647822[3] = 0; - out_2115210801735647822[4] = 0; - out_2115210801735647822[5] = 0; - out_2115210801735647822[6] = (-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))*(dt*cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]) + (-dt*sin(dt*state[6])*sin(dt*state[8]) - dt*sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-dt*sin(dt*state[6])*cos(dt*state[8]) + dt*sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)) + (-(sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) - sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))*(-dt*sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]) + (-dt*sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) - dt*cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (dt*sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - dt*sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)); - out_2115210801735647822[7] = (-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))*(-dt*sin(dt*state[6])*sin(dt*state[7])*cos(state[0])*cos(state[1]) + dt*sin(dt*state[6])*sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1]) - dt*sin(dt*state[6])*sin(state[1])*cos(dt*state[7])*cos(dt*state[8]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)) + (-(sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) - sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))*(-dt*sin(dt*state[7])*cos(dt*state[6])*cos(state[0])*cos(state[1]) + dt*sin(dt*state[8])*sin(state[0])*cos(dt*state[6])*cos(dt*state[7])*cos(state[1]) - dt*sin(state[1])*cos(dt*state[6])*cos(dt*state[7])*cos(dt*state[8]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)); - out_2115210801735647822[8] = ((dt*sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + dt*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (dt*sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - dt*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]))*(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)) + ((dt*sin(dt*state[6])*sin(dt*state[8]) + dt*sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (-dt*sin(dt*state[6])*cos(dt*state[8]) + dt*sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]))*(-(sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) - sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)); - out_2115210801735647822[9] = 0; - out_2115210801735647822[10] = 0; - out_2115210801735647822[11] = 0; - out_2115210801735647822[12] = 0; - out_2115210801735647822[13] = 0; - out_2115210801735647822[14] = 0; - out_2115210801735647822[15] = 0; - out_2115210801735647822[16] = 0; - out_2115210801735647822[17] = 0; - out_2115210801735647822[18] = (-sin(dt*state[7])*sin(state[0])*cos(state[1]) - sin(dt*state[8])*cos(dt*state[7])*cos(state[0])*cos(state[1]))/sqrt(1 - pow(sin(dt*state[7])*cos(state[0])*cos(state[1]) - sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1]) + sin(state[1])*cos(dt*state[7])*cos(dt*state[8]), 2)); - out_2115210801735647822[19] = (-sin(dt*state[7])*sin(state[1])*cos(state[0]) + sin(dt*state[8])*sin(state[0])*sin(state[1])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))/sqrt(1 - pow(sin(dt*state[7])*cos(state[0])*cos(state[1]) - sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1]) + sin(state[1])*cos(dt*state[7])*cos(dt*state[8]), 2)); - out_2115210801735647822[20] = 0; - out_2115210801735647822[21] = 0; - out_2115210801735647822[22] = 0; - out_2115210801735647822[23] = 0; - out_2115210801735647822[24] = 0; - out_2115210801735647822[25] = (dt*sin(dt*state[7])*sin(dt*state[8])*sin(state[0])*cos(state[1]) - dt*sin(dt*state[7])*sin(state[1])*cos(dt*state[8]) + dt*cos(dt*state[7])*cos(state[0])*cos(state[1]))/sqrt(1 - pow(sin(dt*state[7])*cos(state[0])*cos(state[1]) - sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1]) + sin(state[1])*cos(dt*state[7])*cos(dt*state[8]), 2)); - out_2115210801735647822[26] = (-dt*sin(dt*state[8])*sin(state[1])*cos(dt*state[7]) - dt*sin(state[0])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))/sqrt(1 - pow(sin(dt*state[7])*cos(state[0])*cos(state[1]) - sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1]) + sin(state[1])*cos(dt*state[7])*cos(dt*state[8]), 2)); - out_2115210801735647822[27] = 0; - out_2115210801735647822[28] = 0; - out_2115210801735647822[29] = 0; - out_2115210801735647822[30] = 0; - out_2115210801735647822[31] = 0; - out_2115210801735647822[32] = 0; - out_2115210801735647822[33] = 0; - out_2115210801735647822[34] = 0; - out_2115210801735647822[35] = 0; - out_2115210801735647822[36] = ((sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[7]))*((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) - (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) - sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)) + ((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[7]))*(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)); - out_2115210801735647822[37] = (-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))*(-sin(dt*state[7])*sin(state[2])*cos(state[0])*cos(state[1]) + sin(dt*state[8])*sin(state[0])*sin(state[2])*cos(dt*state[7])*cos(state[1]) - sin(state[1])*sin(state[2])*cos(dt*state[7])*cos(dt*state[8]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)) + ((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) - (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) - sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))*(-sin(dt*state[7])*cos(state[0])*cos(state[1])*cos(state[2]) + sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1])*cos(state[2]) - sin(state[1])*cos(dt*state[7])*cos(dt*state[8])*cos(state[2]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)); - out_2115210801735647822[38] = ((-sin(state[0])*sin(state[2]) - sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))*(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)) + ((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (-sin(state[0])*sin(state[1])*sin(state[2]) - cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) - sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))*((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) - (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) - sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)); - out_2115210801735647822[39] = 0; - out_2115210801735647822[40] = 0; - out_2115210801735647822[41] = 0; - out_2115210801735647822[42] = 0; - out_2115210801735647822[43] = (-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))*(dt*(sin(state[0])*cos(state[2]) - sin(state[1])*sin(state[2])*cos(state[0]))*cos(dt*state[7]) - dt*(sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[7])*sin(dt*state[8]) - dt*sin(dt*state[7])*sin(state[2])*cos(dt*state[8])*cos(state[1]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)) + ((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) - (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) - sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))*(dt*(-sin(state[0])*sin(state[2]) - sin(state[1])*cos(state[0])*cos(state[2]))*cos(dt*state[7]) - dt*(sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[7])*sin(dt*state[8]) - dt*sin(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)); - out_2115210801735647822[44] = (dt*(sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*cos(dt*state[7])*cos(dt*state[8]) - dt*sin(dt*state[8])*sin(state[2])*cos(dt*state[7])*cos(state[1]))*(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)) + (dt*(sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*cos(dt*state[7])*cos(dt*state[8]) - dt*sin(dt*state[8])*cos(dt*state[7])*cos(state[1])*cos(state[2]))*((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) - (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) - sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)); - out_2115210801735647822[45] = 0; - out_2115210801735647822[46] = 0; - out_2115210801735647822[47] = 0; - out_2115210801735647822[48] = 0; - out_2115210801735647822[49] = 0; - out_2115210801735647822[50] = 0; - out_2115210801735647822[51] = 0; - out_2115210801735647822[52] = 0; - out_2115210801735647822[53] = 0; - out_2115210801735647822[54] = 0; - out_2115210801735647822[55] = 0; - out_2115210801735647822[56] = 0; - out_2115210801735647822[57] = 1; - out_2115210801735647822[58] = 0; - out_2115210801735647822[59] = 0; - out_2115210801735647822[60] = 0; - out_2115210801735647822[61] = 0; - out_2115210801735647822[62] = 0; - out_2115210801735647822[63] = 0; - out_2115210801735647822[64] = 0; - out_2115210801735647822[65] = 0; - out_2115210801735647822[66] = dt; - out_2115210801735647822[67] = 0; - out_2115210801735647822[68] = 0; - out_2115210801735647822[69] = 0; - out_2115210801735647822[70] = 0; - out_2115210801735647822[71] = 0; - out_2115210801735647822[72] = 0; - out_2115210801735647822[73] = 0; - out_2115210801735647822[74] = 0; - out_2115210801735647822[75] = 0; - out_2115210801735647822[76] = 1; - out_2115210801735647822[77] = 0; - out_2115210801735647822[78] = 0; - out_2115210801735647822[79] = 0; - out_2115210801735647822[80] = 0; - out_2115210801735647822[81] = 0; - out_2115210801735647822[82] = 0; - out_2115210801735647822[83] = 0; - out_2115210801735647822[84] = 0; - out_2115210801735647822[85] = dt; - out_2115210801735647822[86] = 0; - out_2115210801735647822[87] = 0; - out_2115210801735647822[88] = 0; - out_2115210801735647822[89] = 0; - out_2115210801735647822[90] = 0; - out_2115210801735647822[91] = 0; - out_2115210801735647822[92] = 0; - out_2115210801735647822[93] = 0; - out_2115210801735647822[94] = 0; - out_2115210801735647822[95] = 1; - out_2115210801735647822[96] = 0; - out_2115210801735647822[97] = 0; - out_2115210801735647822[98] = 0; - out_2115210801735647822[99] = 0; - out_2115210801735647822[100] = 0; - out_2115210801735647822[101] = 0; - out_2115210801735647822[102] = 0; - out_2115210801735647822[103] = 0; - out_2115210801735647822[104] = dt; - out_2115210801735647822[105] = 0; - out_2115210801735647822[106] = 0; - out_2115210801735647822[107] = 0; - out_2115210801735647822[108] = 0; - out_2115210801735647822[109] = 0; - out_2115210801735647822[110] = 0; - out_2115210801735647822[111] = 0; - out_2115210801735647822[112] = 0; - out_2115210801735647822[113] = 0; - out_2115210801735647822[114] = 1; - out_2115210801735647822[115] = 0; - out_2115210801735647822[116] = 0; - out_2115210801735647822[117] = 0; - out_2115210801735647822[118] = 0; - out_2115210801735647822[119] = 0; - out_2115210801735647822[120] = 0; - out_2115210801735647822[121] = 0; - out_2115210801735647822[122] = 0; - out_2115210801735647822[123] = 0; - out_2115210801735647822[124] = 0; - out_2115210801735647822[125] = 0; - out_2115210801735647822[126] = 0; - out_2115210801735647822[127] = 0; - out_2115210801735647822[128] = 0; - out_2115210801735647822[129] = 0; - out_2115210801735647822[130] = 0; - out_2115210801735647822[131] = 0; - out_2115210801735647822[132] = 0; - out_2115210801735647822[133] = 1; - out_2115210801735647822[134] = 0; - out_2115210801735647822[135] = 0; - out_2115210801735647822[136] = 0; - out_2115210801735647822[137] = 0; - out_2115210801735647822[138] = 0; - out_2115210801735647822[139] = 0; - out_2115210801735647822[140] = 0; - out_2115210801735647822[141] = 0; - out_2115210801735647822[142] = 0; - out_2115210801735647822[143] = 0; - out_2115210801735647822[144] = 0; - out_2115210801735647822[145] = 0; - out_2115210801735647822[146] = 0; - out_2115210801735647822[147] = 0; - out_2115210801735647822[148] = 0; - out_2115210801735647822[149] = 0; - out_2115210801735647822[150] = 0; - out_2115210801735647822[151] = 0; - out_2115210801735647822[152] = 1; - out_2115210801735647822[153] = 0; - out_2115210801735647822[154] = 0; - out_2115210801735647822[155] = 0; - out_2115210801735647822[156] = 0; - out_2115210801735647822[157] = 0; - out_2115210801735647822[158] = 0; - out_2115210801735647822[159] = 0; - out_2115210801735647822[160] = 0; - out_2115210801735647822[161] = 0; - out_2115210801735647822[162] = 0; - out_2115210801735647822[163] = 0; - out_2115210801735647822[164] = 0; - out_2115210801735647822[165] = 0; - out_2115210801735647822[166] = 0; - out_2115210801735647822[167] = 0; - out_2115210801735647822[168] = 0; - out_2115210801735647822[169] = 0; - out_2115210801735647822[170] = 0; - out_2115210801735647822[171] = 1; - out_2115210801735647822[172] = 0; - out_2115210801735647822[173] = 0; - out_2115210801735647822[174] = 0; - out_2115210801735647822[175] = 0; - out_2115210801735647822[176] = 0; - out_2115210801735647822[177] = 0; - out_2115210801735647822[178] = 0; - out_2115210801735647822[179] = 0; - out_2115210801735647822[180] = 0; - out_2115210801735647822[181] = 0; - out_2115210801735647822[182] = 0; - out_2115210801735647822[183] = 0; - out_2115210801735647822[184] = 0; - out_2115210801735647822[185] = 0; - out_2115210801735647822[186] = 0; - out_2115210801735647822[187] = 0; - out_2115210801735647822[188] = 0; - out_2115210801735647822[189] = 0; - out_2115210801735647822[190] = 1; - out_2115210801735647822[191] = 0; - out_2115210801735647822[192] = 0; - out_2115210801735647822[193] = 0; - out_2115210801735647822[194] = 0; - out_2115210801735647822[195] = 0; - out_2115210801735647822[196] = 0; - out_2115210801735647822[197] = 0; - out_2115210801735647822[198] = 0; - out_2115210801735647822[199] = 0; - out_2115210801735647822[200] = 0; - out_2115210801735647822[201] = 0; - out_2115210801735647822[202] = 0; - out_2115210801735647822[203] = 0; - out_2115210801735647822[204] = 0; - out_2115210801735647822[205] = 0; - out_2115210801735647822[206] = 0; - out_2115210801735647822[207] = 0; - out_2115210801735647822[208] = 0; - out_2115210801735647822[209] = 1; - out_2115210801735647822[210] = 0; - out_2115210801735647822[211] = 0; - out_2115210801735647822[212] = 0; - out_2115210801735647822[213] = 0; - out_2115210801735647822[214] = 0; - out_2115210801735647822[215] = 0; - out_2115210801735647822[216] = 0; - out_2115210801735647822[217] = 0; - out_2115210801735647822[218] = 0; - out_2115210801735647822[219] = 0; - out_2115210801735647822[220] = 0; - out_2115210801735647822[221] = 0; - out_2115210801735647822[222] = 0; - out_2115210801735647822[223] = 0; - out_2115210801735647822[224] = 0; - out_2115210801735647822[225] = 0; - out_2115210801735647822[226] = 0; - out_2115210801735647822[227] = 0; - out_2115210801735647822[228] = 1; - out_2115210801735647822[229] = 0; - out_2115210801735647822[230] = 0; - out_2115210801735647822[231] = 0; - out_2115210801735647822[232] = 0; - out_2115210801735647822[233] = 0; - out_2115210801735647822[234] = 0; - out_2115210801735647822[235] = 0; - out_2115210801735647822[236] = 0; - out_2115210801735647822[237] = 0; - out_2115210801735647822[238] = 0; - out_2115210801735647822[239] = 0; - out_2115210801735647822[240] = 0; - out_2115210801735647822[241] = 0; - out_2115210801735647822[242] = 0; - out_2115210801735647822[243] = 0; - out_2115210801735647822[244] = 0; - out_2115210801735647822[245] = 0; - out_2115210801735647822[246] = 0; - out_2115210801735647822[247] = 1; - out_2115210801735647822[248] = 0; - out_2115210801735647822[249] = 0; - out_2115210801735647822[250] = 0; - out_2115210801735647822[251] = 0; - out_2115210801735647822[252] = 0; - out_2115210801735647822[253] = 0; - out_2115210801735647822[254] = 0; - out_2115210801735647822[255] = 0; - out_2115210801735647822[256] = 0; - out_2115210801735647822[257] = 0; - out_2115210801735647822[258] = 0; - out_2115210801735647822[259] = 0; - out_2115210801735647822[260] = 0; - out_2115210801735647822[261] = 0; - out_2115210801735647822[262] = 0; - out_2115210801735647822[263] = 0; - out_2115210801735647822[264] = 0; - out_2115210801735647822[265] = 0; - out_2115210801735647822[266] = 1; - out_2115210801735647822[267] = 0; - out_2115210801735647822[268] = 0; - out_2115210801735647822[269] = 0; - out_2115210801735647822[270] = 0; - out_2115210801735647822[271] = 0; - out_2115210801735647822[272] = 0; - out_2115210801735647822[273] = 0; - out_2115210801735647822[274] = 0; - out_2115210801735647822[275] = 0; - out_2115210801735647822[276] = 0; - out_2115210801735647822[277] = 0; - out_2115210801735647822[278] = 0; - out_2115210801735647822[279] = 0; - out_2115210801735647822[280] = 0; - out_2115210801735647822[281] = 0; - out_2115210801735647822[282] = 0; - out_2115210801735647822[283] = 0; - out_2115210801735647822[284] = 0; - out_2115210801735647822[285] = 1; - out_2115210801735647822[286] = 0; - out_2115210801735647822[287] = 0; - out_2115210801735647822[288] = 0; - out_2115210801735647822[289] = 0; - out_2115210801735647822[290] = 0; - out_2115210801735647822[291] = 0; - out_2115210801735647822[292] = 0; - out_2115210801735647822[293] = 0; - out_2115210801735647822[294] = 0; - out_2115210801735647822[295] = 0; - out_2115210801735647822[296] = 0; - out_2115210801735647822[297] = 0; - out_2115210801735647822[298] = 0; - out_2115210801735647822[299] = 0; - out_2115210801735647822[300] = 0; - out_2115210801735647822[301] = 0; - out_2115210801735647822[302] = 0; - out_2115210801735647822[303] = 0; - out_2115210801735647822[304] = 1; - out_2115210801735647822[305] = 0; - out_2115210801735647822[306] = 0; - out_2115210801735647822[307] = 0; - out_2115210801735647822[308] = 0; - out_2115210801735647822[309] = 0; - out_2115210801735647822[310] = 0; - out_2115210801735647822[311] = 0; - out_2115210801735647822[312] = 0; - out_2115210801735647822[313] = 0; - out_2115210801735647822[314] = 0; - out_2115210801735647822[315] = 0; - out_2115210801735647822[316] = 0; - out_2115210801735647822[317] = 0; - out_2115210801735647822[318] = 0; - out_2115210801735647822[319] = 0; - out_2115210801735647822[320] = 0; - out_2115210801735647822[321] = 0; - out_2115210801735647822[322] = 0; - out_2115210801735647822[323] = 1; +void F_fun(double *state, double dt, double *out_1513223696750910511) { + out_1513223696750910511[0] = ((-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*cos(state[0])*cos(state[1]) - sin(state[0])*cos(dt*state[6])*cos(dt*state[7])*cos(state[1]))*(-(sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) - sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)) + ((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*cos(state[0])*cos(state[1]) - sin(dt*state[6])*sin(state[0])*cos(dt*state[7])*cos(state[1]))*(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)); + out_1513223696750910511[1] = ((-sin(dt*state[6])*sin(dt*state[8]) - sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*cos(state[1]) - (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*sin(state[1]) - sin(state[1])*cos(dt*state[6])*cos(dt*state[7])*cos(state[0]))*(-(sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) - sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)) + (-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))*(-(sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*sin(state[1]) + (-sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) + sin(dt*state[8])*cos(dt*state[6]))*cos(state[1]) - sin(dt*state[6])*sin(state[1])*cos(dt*state[7])*cos(state[0]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)); + out_1513223696750910511[2] = 0; + out_1513223696750910511[3] = 0; + out_1513223696750910511[4] = 0; + out_1513223696750910511[5] = 0; + out_1513223696750910511[6] = (-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))*(dt*cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]) + (-dt*sin(dt*state[6])*sin(dt*state[8]) - dt*sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-dt*sin(dt*state[6])*cos(dt*state[8]) + dt*sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)) + (-(sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) - sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))*(-dt*sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]) + (-dt*sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) - dt*cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (dt*sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - dt*sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)); + out_1513223696750910511[7] = (-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))*(-dt*sin(dt*state[6])*sin(dt*state[7])*cos(state[0])*cos(state[1]) + dt*sin(dt*state[6])*sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1]) - dt*sin(dt*state[6])*sin(state[1])*cos(dt*state[7])*cos(dt*state[8]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)) + (-(sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) - sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))*(-dt*sin(dt*state[7])*cos(dt*state[6])*cos(state[0])*cos(state[1]) + dt*sin(dt*state[8])*sin(state[0])*cos(dt*state[6])*cos(dt*state[7])*cos(state[1]) - dt*sin(state[1])*cos(dt*state[6])*cos(dt*state[7])*cos(dt*state[8]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)); + out_1513223696750910511[8] = ((dt*sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + dt*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (dt*sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - dt*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]))*(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)) + ((dt*sin(dt*state[6])*sin(dt*state[8]) + dt*sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (-dt*sin(dt*state[6])*cos(dt*state[8]) + dt*sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]))*(-(sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) + (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) - sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]))/(pow(-(sin(dt*state[6])*sin(dt*state[8]) + sin(dt*state[7])*cos(dt*state[6])*cos(dt*state[8]))*sin(state[1]) + (-sin(dt*state[6])*cos(dt*state[8]) + sin(dt*state[7])*sin(dt*state[8])*cos(dt*state[6]))*sin(state[0])*cos(state[1]) + cos(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2) + pow((sin(dt*state[6])*sin(dt*state[7])*sin(dt*state[8]) + cos(dt*state[6])*cos(dt*state[8]))*sin(state[0])*cos(state[1]) - (sin(dt*state[6])*sin(dt*state[7])*cos(dt*state[8]) - sin(dt*state[8])*cos(dt*state[6]))*sin(state[1]) + sin(dt*state[6])*cos(dt*state[7])*cos(state[0])*cos(state[1]), 2)); + out_1513223696750910511[9] = 0; + out_1513223696750910511[10] = 0; + out_1513223696750910511[11] = 0; + out_1513223696750910511[12] = 0; + out_1513223696750910511[13] = 0; + out_1513223696750910511[14] = 0; + out_1513223696750910511[15] = 0; + out_1513223696750910511[16] = 0; + out_1513223696750910511[17] = 0; + out_1513223696750910511[18] = (-sin(dt*state[7])*sin(state[0])*cos(state[1]) - sin(dt*state[8])*cos(dt*state[7])*cos(state[0])*cos(state[1]))/sqrt(1 - pow(sin(dt*state[7])*cos(state[0])*cos(state[1]) - sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1]) + sin(state[1])*cos(dt*state[7])*cos(dt*state[8]), 2)); + out_1513223696750910511[19] = (-sin(dt*state[7])*sin(state[1])*cos(state[0]) + sin(dt*state[8])*sin(state[0])*sin(state[1])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))/sqrt(1 - pow(sin(dt*state[7])*cos(state[0])*cos(state[1]) - sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1]) + sin(state[1])*cos(dt*state[7])*cos(dt*state[8]), 2)); + out_1513223696750910511[20] = 0; + out_1513223696750910511[21] = 0; + out_1513223696750910511[22] = 0; + out_1513223696750910511[23] = 0; + out_1513223696750910511[24] = 0; + out_1513223696750910511[25] = (dt*sin(dt*state[7])*sin(dt*state[8])*sin(state[0])*cos(state[1]) - dt*sin(dt*state[7])*sin(state[1])*cos(dt*state[8]) + dt*cos(dt*state[7])*cos(state[0])*cos(state[1]))/sqrt(1 - pow(sin(dt*state[7])*cos(state[0])*cos(state[1]) - sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1]) + sin(state[1])*cos(dt*state[7])*cos(dt*state[8]), 2)); + out_1513223696750910511[26] = (-dt*sin(dt*state[8])*sin(state[1])*cos(dt*state[7]) - dt*sin(state[0])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))/sqrt(1 - pow(sin(dt*state[7])*cos(state[0])*cos(state[1]) - sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1]) + sin(state[1])*cos(dt*state[7])*cos(dt*state[8]), 2)); + out_1513223696750910511[27] = 0; + out_1513223696750910511[28] = 0; + out_1513223696750910511[29] = 0; + out_1513223696750910511[30] = 0; + out_1513223696750910511[31] = 0; + out_1513223696750910511[32] = 0; + out_1513223696750910511[33] = 0; + out_1513223696750910511[34] = 0; + out_1513223696750910511[35] = 0; + out_1513223696750910511[36] = ((sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[7]))*((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) - (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) - sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)) + ((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[7]))*(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)); + out_1513223696750910511[37] = (-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))*(-sin(dt*state[7])*sin(state[2])*cos(state[0])*cos(state[1]) + sin(dt*state[8])*sin(state[0])*sin(state[2])*cos(dt*state[7])*cos(state[1]) - sin(state[1])*sin(state[2])*cos(dt*state[7])*cos(dt*state[8]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)) + ((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) - (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) - sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))*(-sin(dt*state[7])*cos(state[0])*cos(state[1])*cos(state[2]) + sin(dt*state[8])*sin(state[0])*cos(dt*state[7])*cos(state[1])*cos(state[2]) - sin(state[1])*cos(dt*state[7])*cos(dt*state[8])*cos(state[2]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)); + out_1513223696750910511[38] = ((-sin(state[0])*sin(state[2]) - sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))*(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)) + ((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (-sin(state[0])*sin(state[1])*sin(state[2]) - cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) - sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))*((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) - (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) - sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)); + out_1513223696750910511[39] = 0; + out_1513223696750910511[40] = 0; + out_1513223696750910511[41] = 0; + out_1513223696750910511[42] = 0; + out_1513223696750910511[43] = (-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))*(dt*(sin(state[0])*cos(state[2]) - sin(state[1])*sin(state[2])*cos(state[0]))*cos(dt*state[7]) - dt*(sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[7])*sin(dt*state[8]) - dt*sin(dt*state[7])*sin(state[2])*cos(dt*state[8])*cos(state[1]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)) + ((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) - (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) - sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))*(dt*(-sin(state[0])*sin(state[2]) - sin(state[1])*cos(state[0])*cos(state[2]))*cos(dt*state[7]) - dt*(sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[7])*sin(dt*state[8]) - dt*sin(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)); + out_1513223696750910511[44] = (dt*(sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*cos(dt*state[7])*cos(dt*state[8]) - dt*sin(dt*state[8])*sin(state[2])*cos(dt*state[7])*cos(state[1]))*(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)) + (dt*(sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*cos(dt*state[7])*cos(dt*state[8]) - dt*sin(dt*state[8])*cos(dt*state[7])*cos(state[1])*cos(state[2]))*((-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) - (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) - sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]))/(pow(-(sin(state[0])*sin(state[2]) + sin(state[1])*cos(state[0])*cos(state[2]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*cos(state[2]) - sin(state[2])*cos(state[0]))*sin(dt*state[8])*cos(dt*state[7]) + cos(dt*state[7])*cos(dt*state[8])*cos(state[1])*cos(state[2]), 2) + pow(-(-sin(state[0])*cos(state[2]) + sin(state[1])*sin(state[2])*cos(state[0]))*sin(dt*state[7]) + (sin(state[0])*sin(state[1])*sin(state[2]) + cos(state[0])*cos(state[2]))*sin(dt*state[8])*cos(dt*state[7]) + sin(state[2])*cos(dt*state[7])*cos(dt*state[8])*cos(state[1]), 2)); + out_1513223696750910511[45] = 0; + out_1513223696750910511[46] = 0; + out_1513223696750910511[47] = 0; + out_1513223696750910511[48] = 0; + out_1513223696750910511[49] = 0; + out_1513223696750910511[50] = 0; + out_1513223696750910511[51] = 0; + out_1513223696750910511[52] = 0; + out_1513223696750910511[53] = 0; + out_1513223696750910511[54] = 0; + out_1513223696750910511[55] = 0; + out_1513223696750910511[56] = 0; + out_1513223696750910511[57] = 1; + out_1513223696750910511[58] = 0; + out_1513223696750910511[59] = 0; + out_1513223696750910511[60] = 0; + out_1513223696750910511[61] = 0; + out_1513223696750910511[62] = 0; + out_1513223696750910511[63] = 0; + out_1513223696750910511[64] = 0; + out_1513223696750910511[65] = 0; + out_1513223696750910511[66] = dt; + out_1513223696750910511[67] = 0; + out_1513223696750910511[68] = 0; + out_1513223696750910511[69] = 0; + out_1513223696750910511[70] = 0; + out_1513223696750910511[71] = 0; + out_1513223696750910511[72] = 0; + out_1513223696750910511[73] = 0; + out_1513223696750910511[74] = 0; + out_1513223696750910511[75] = 0; + out_1513223696750910511[76] = 1; + out_1513223696750910511[77] = 0; + out_1513223696750910511[78] = 0; + out_1513223696750910511[79] = 0; + out_1513223696750910511[80] = 0; + out_1513223696750910511[81] = 0; + out_1513223696750910511[82] = 0; + out_1513223696750910511[83] = 0; + out_1513223696750910511[84] = 0; + out_1513223696750910511[85] = dt; + out_1513223696750910511[86] = 0; + out_1513223696750910511[87] = 0; + out_1513223696750910511[88] = 0; + out_1513223696750910511[89] = 0; + out_1513223696750910511[90] = 0; + out_1513223696750910511[91] = 0; + out_1513223696750910511[92] = 0; + out_1513223696750910511[93] = 0; + out_1513223696750910511[94] = 0; + out_1513223696750910511[95] = 1; + out_1513223696750910511[96] = 0; + out_1513223696750910511[97] = 0; + out_1513223696750910511[98] = 0; + out_1513223696750910511[99] = 0; + out_1513223696750910511[100] = 0; + out_1513223696750910511[101] = 0; + out_1513223696750910511[102] = 0; + out_1513223696750910511[103] = 0; + out_1513223696750910511[104] = dt; + out_1513223696750910511[105] = 0; + out_1513223696750910511[106] = 0; + out_1513223696750910511[107] = 0; + out_1513223696750910511[108] = 0; + out_1513223696750910511[109] = 0; + out_1513223696750910511[110] = 0; + out_1513223696750910511[111] = 0; + out_1513223696750910511[112] = 0; + out_1513223696750910511[113] = 0; + out_1513223696750910511[114] = 1; + out_1513223696750910511[115] = 0; + out_1513223696750910511[116] = 0; + out_1513223696750910511[117] = 0; + out_1513223696750910511[118] = 0; + out_1513223696750910511[119] = 0; + out_1513223696750910511[120] = 0; + out_1513223696750910511[121] = 0; + out_1513223696750910511[122] = 0; + out_1513223696750910511[123] = 0; + out_1513223696750910511[124] = 0; + out_1513223696750910511[125] = 0; + out_1513223696750910511[126] = 0; + out_1513223696750910511[127] = 0; + out_1513223696750910511[128] = 0; + out_1513223696750910511[129] = 0; + out_1513223696750910511[130] = 0; + out_1513223696750910511[131] = 0; + out_1513223696750910511[132] = 0; + out_1513223696750910511[133] = 1; + out_1513223696750910511[134] = 0; + out_1513223696750910511[135] = 0; + out_1513223696750910511[136] = 0; + out_1513223696750910511[137] = 0; + out_1513223696750910511[138] = 0; + out_1513223696750910511[139] = 0; + out_1513223696750910511[140] = 0; + out_1513223696750910511[141] = 0; + out_1513223696750910511[142] = 0; + out_1513223696750910511[143] = 0; + out_1513223696750910511[144] = 0; + out_1513223696750910511[145] = 0; + out_1513223696750910511[146] = 0; + out_1513223696750910511[147] = 0; + out_1513223696750910511[148] = 0; + out_1513223696750910511[149] = 0; + out_1513223696750910511[150] = 0; + out_1513223696750910511[151] = 0; + out_1513223696750910511[152] = 1; + out_1513223696750910511[153] = 0; + out_1513223696750910511[154] = 0; + out_1513223696750910511[155] = 0; + out_1513223696750910511[156] = 0; + out_1513223696750910511[157] = 0; + out_1513223696750910511[158] = 0; + out_1513223696750910511[159] = 0; + out_1513223696750910511[160] = 0; + out_1513223696750910511[161] = 0; + out_1513223696750910511[162] = 0; + out_1513223696750910511[163] = 0; + out_1513223696750910511[164] = 0; + out_1513223696750910511[165] = 0; + out_1513223696750910511[166] = 0; + out_1513223696750910511[167] = 0; + out_1513223696750910511[168] = 0; + out_1513223696750910511[169] = 0; + out_1513223696750910511[170] = 0; + out_1513223696750910511[171] = 1; + out_1513223696750910511[172] = 0; + out_1513223696750910511[173] = 0; + out_1513223696750910511[174] = 0; + out_1513223696750910511[175] = 0; + out_1513223696750910511[176] = 0; + out_1513223696750910511[177] = 0; + out_1513223696750910511[178] = 0; + out_1513223696750910511[179] = 0; + out_1513223696750910511[180] = 0; + out_1513223696750910511[181] = 0; + out_1513223696750910511[182] = 0; + out_1513223696750910511[183] = 0; + out_1513223696750910511[184] = 0; + out_1513223696750910511[185] = 0; + out_1513223696750910511[186] = 0; + out_1513223696750910511[187] = 0; + out_1513223696750910511[188] = 0; + out_1513223696750910511[189] = 0; + out_1513223696750910511[190] = 1; + out_1513223696750910511[191] = 0; + out_1513223696750910511[192] = 0; + out_1513223696750910511[193] = 0; + out_1513223696750910511[194] = 0; + out_1513223696750910511[195] = 0; + out_1513223696750910511[196] = 0; + out_1513223696750910511[197] = 0; + out_1513223696750910511[198] = 0; + out_1513223696750910511[199] = 0; + out_1513223696750910511[200] = 0; + out_1513223696750910511[201] = 0; + out_1513223696750910511[202] = 0; + out_1513223696750910511[203] = 0; + out_1513223696750910511[204] = 0; + out_1513223696750910511[205] = 0; + out_1513223696750910511[206] = 0; + out_1513223696750910511[207] = 0; + out_1513223696750910511[208] = 0; + out_1513223696750910511[209] = 1; + out_1513223696750910511[210] = 0; + out_1513223696750910511[211] = 0; + out_1513223696750910511[212] = 0; + out_1513223696750910511[213] = 0; + out_1513223696750910511[214] = 0; + out_1513223696750910511[215] = 0; + out_1513223696750910511[216] = 0; + out_1513223696750910511[217] = 0; + out_1513223696750910511[218] = 0; + out_1513223696750910511[219] = 0; + out_1513223696750910511[220] = 0; + out_1513223696750910511[221] = 0; + out_1513223696750910511[222] = 0; + out_1513223696750910511[223] = 0; + out_1513223696750910511[224] = 0; + out_1513223696750910511[225] = 0; + out_1513223696750910511[226] = 0; + out_1513223696750910511[227] = 0; + out_1513223696750910511[228] = 1; + out_1513223696750910511[229] = 0; + out_1513223696750910511[230] = 0; + out_1513223696750910511[231] = 0; + out_1513223696750910511[232] = 0; + out_1513223696750910511[233] = 0; + out_1513223696750910511[234] = 0; + out_1513223696750910511[235] = 0; + out_1513223696750910511[236] = 0; + out_1513223696750910511[237] = 0; + out_1513223696750910511[238] = 0; + out_1513223696750910511[239] = 0; + out_1513223696750910511[240] = 0; + out_1513223696750910511[241] = 0; + out_1513223696750910511[242] = 0; + out_1513223696750910511[243] = 0; + out_1513223696750910511[244] = 0; + out_1513223696750910511[245] = 0; + out_1513223696750910511[246] = 0; + out_1513223696750910511[247] = 1; + out_1513223696750910511[248] = 0; + out_1513223696750910511[249] = 0; + out_1513223696750910511[250] = 0; + out_1513223696750910511[251] = 0; + out_1513223696750910511[252] = 0; + out_1513223696750910511[253] = 0; + out_1513223696750910511[254] = 0; + out_1513223696750910511[255] = 0; + out_1513223696750910511[256] = 0; + out_1513223696750910511[257] = 0; + out_1513223696750910511[258] = 0; + out_1513223696750910511[259] = 0; + out_1513223696750910511[260] = 0; + out_1513223696750910511[261] = 0; + out_1513223696750910511[262] = 0; + out_1513223696750910511[263] = 0; + out_1513223696750910511[264] = 0; + out_1513223696750910511[265] = 0; + out_1513223696750910511[266] = 1; + out_1513223696750910511[267] = 0; + out_1513223696750910511[268] = 0; + out_1513223696750910511[269] = 0; + out_1513223696750910511[270] = 0; + out_1513223696750910511[271] = 0; + out_1513223696750910511[272] = 0; + out_1513223696750910511[273] = 0; + out_1513223696750910511[274] = 0; + out_1513223696750910511[275] = 0; + out_1513223696750910511[276] = 0; + out_1513223696750910511[277] = 0; + out_1513223696750910511[278] = 0; + out_1513223696750910511[279] = 0; + out_1513223696750910511[280] = 0; + out_1513223696750910511[281] = 0; + out_1513223696750910511[282] = 0; + out_1513223696750910511[283] = 0; + out_1513223696750910511[284] = 0; + out_1513223696750910511[285] = 1; + out_1513223696750910511[286] = 0; + out_1513223696750910511[287] = 0; + out_1513223696750910511[288] = 0; + out_1513223696750910511[289] = 0; + out_1513223696750910511[290] = 0; + out_1513223696750910511[291] = 0; + out_1513223696750910511[292] = 0; + out_1513223696750910511[293] = 0; + out_1513223696750910511[294] = 0; + out_1513223696750910511[295] = 0; + out_1513223696750910511[296] = 0; + out_1513223696750910511[297] = 0; + out_1513223696750910511[298] = 0; + out_1513223696750910511[299] = 0; + out_1513223696750910511[300] = 0; + out_1513223696750910511[301] = 0; + out_1513223696750910511[302] = 0; + out_1513223696750910511[303] = 0; + out_1513223696750910511[304] = 1; + out_1513223696750910511[305] = 0; + out_1513223696750910511[306] = 0; + out_1513223696750910511[307] = 0; + out_1513223696750910511[308] = 0; + out_1513223696750910511[309] = 0; + out_1513223696750910511[310] = 0; + out_1513223696750910511[311] = 0; + out_1513223696750910511[312] = 0; + out_1513223696750910511[313] = 0; + out_1513223696750910511[314] = 0; + out_1513223696750910511[315] = 0; + out_1513223696750910511[316] = 0; + out_1513223696750910511[317] = 0; + out_1513223696750910511[318] = 0; + out_1513223696750910511[319] = 0; + out_1513223696750910511[320] = 0; + out_1513223696750910511[321] = 0; + out_1513223696750910511[322] = 0; + out_1513223696750910511[323] = 1; } -void h_4(double *state, double *unused, double *out_5340316977089833419) { - out_5340316977089833419[0] = state[6] + state[9]; - out_5340316977089833419[1] = state[7] + state[10]; - out_5340316977089833419[2] = state[8] + state[11]; +void h_4(double *state, double *unused, double *out_7543652368314576620) { + out_7543652368314576620[0] = state[6] + state[9]; + out_7543652368314576620[1] = state[7] + state[10]; + out_7543652368314576620[2] = state[8] + state[11]; } -void H_4(double *state, double *unused, double *out_4789751993297899668) { - out_4789751993297899668[0] = 0; - out_4789751993297899668[1] = 0; - out_4789751993297899668[2] = 0; - out_4789751993297899668[3] = 0; - out_4789751993297899668[4] = 0; - out_4789751993297899668[5] = 0; - out_4789751993297899668[6] = 1; - out_4789751993297899668[7] = 0; - out_4789751993297899668[8] = 0; - out_4789751993297899668[9] = 1; - out_4789751993297899668[10] = 0; - out_4789751993297899668[11] = 0; - out_4789751993297899668[12] = 0; - out_4789751993297899668[13] = 0; - out_4789751993297899668[14] = 0; - out_4789751993297899668[15] = 0; - out_4789751993297899668[16] = 0; - out_4789751993297899668[17] = 0; - out_4789751993297899668[18] = 0; - out_4789751993297899668[19] = 0; - out_4789751993297899668[20] = 0; - out_4789751993297899668[21] = 0; - out_4789751993297899668[22] = 0; - out_4789751993297899668[23] = 0; - out_4789751993297899668[24] = 0; - out_4789751993297899668[25] = 1; - out_4789751993297899668[26] = 0; - out_4789751993297899668[27] = 0; - out_4789751993297899668[28] = 1; - out_4789751993297899668[29] = 0; - out_4789751993297899668[30] = 0; - out_4789751993297899668[31] = 0; - out_4789751993297899668[32] = 0; - out_4789751993297899668[33] = 0; - out_4789751993297899668[34] = 0; - out_4789751993297899668[35] = 0; - out_4789751993297899668[36] = 0; - out_4789751993297899668[37] = 0; - out_4789751993297899668[38] = 0; - out_4789751993297899668[39] = 0; - out_4789751993297899668[40] = 0; - out_4789751993297899668[41] = 0; - out_4789751993297899668[42] = 0; - out_4789751993297899668[43] = 0; - out_4789751993297899668[44] = 1; - out_4789751993297899668[45] = 0; - out_4789751993297899668[46] = 0; - out_4789751993297899668[47] = 1; - out_4789751993297899668[48] = 0; - out_4789751993297899668[49] = 0; - out_4789751993297899668[50] = 0; - out_4789751993297899668[51] = 0; - out_4789751993297899668[52] = 0; - out_4789751993297899668[53] = 0; +void H_4(double *state, double *unused, double *out_4618386724598144073) { + out_4618386724598144073[0] = 0; + out_4618386724598144073[1] = 0; + out_4618386724598144073[2] = 0; + out_4618386724598144073[3] = 0; + out_4618386724598144073[4] = 0; + out_4618386724598144073[5] = 0; + out_4618386724598144073[6] = 1; + out_4618386724598144073[7] = 0; + out_4618386724598144073[8] = 0; + out_4618386724598144073[9] = 1; + out_4618386724598144073[10] = 0; + out_4618386724598144073[11] = 0; + out_4618386724598144073[12] = 0; + out_4618386724598144073[13] = 0; + out_4618386724598144073[14] = 0; + out_4618386724598144073[15] = 0; + out_4618386724598144073[16] = 0; + out_4618386724598144073[17] = 0; + out_4618386724598144073[18] = 0; + out_4618386724598144073[19] = 0; + out_4618386724598144073[20] = 0; + out_4618386724598144073[21] = 0; + out_4618386724598144073[22] = 0; + out_4618386724598144073[23] = 0; + out_4618386724598144073[24] = 0; + out_4618386724598144073[25] = 1; + out_4618386724598144073[26] = 0; + out_4618386724598144073[27] = 0; + out_4618386724598144073[28] = 1; + out_4618386724598144073[29] = 0; + out_4618386724598144073[30] = 0; + out_4618386724598144073[31] = 0; + out_4618386724598144073[32] = 0; + out_4618386724598144073[33] = 0; + out_4618386724598144073[34] = 0; + out_4618386724598144073[35] = 0; + out_4618386724598144073[36] = 0; + out_4618386724598144073[37] = 0; + out_4618386724598144073[38] = 0; + out_4618386724598144073[39] = 0; + out_4618386724598144073[40] = 0; + out_4618386724598144073[41] = 0; + out_4618386724598144073[42] = 0; + out_4618386724598144073[43] = 0; + out_4618386724598144073[44] = 1; + out_4618386724598144073[45] = 0; + out_4618386724598144073[46] = 0; + out_4618386724598144073[47] = 1; + out_4618386724598144073[48] = 0; + out_4618386724598144073[49] = 0; + out_4618386724598144073[50] = 0; + out_4618386724598144073[51] = 0; + out_4618386724598144073[52] = 0; + out_4618386724598144073[53] = 0; } -void h_10(double *state, double *unused, double *out_4503836725223465124) { - out_4503836725223465124[0] = 9.8100000000000005*sin(state[1]) - state[4]*state[8] + state[5]*state[7] + state[12] + state[15]; - out_4503836725223465124[1] = -9.8100000000000005*sin(state[0])*cos(state[1]) + state[3]*state[8] - state[5]*state[6] + state[13] + state[16]; - out_4503836725223465124[2] = -9.8100000000000005*cos(state[0])*cos(state[1]) - state[3]*state[7] + state[4]*state[6] + state[14] + state[17]; +void h_10(double *state, double *unused, double *out_1260309873169513594) { + out_1260309873169513594[0] = 9.8100000000000005*sin(state[1]) - state[4]*state[8] + state[5]*state[7] + state[12] + state[15]; + out_1260309873169513594[1] = -9.8100000000000005*sin(state[0])*cos(state[1]) + state[3]*state[8] - state[5]*state[6] + state[13] + state[16]; + out_1260309873169513594[2] = -9.8100000000000005*cos(state[0])*cos(state[1]) - state[3]*state[7] + state[4]*state[6] + state[14] + state[17]; } -void H_10(double *state, double *unused, double *out_8320315452592553094) { - out_8320315452592553094[0] = 0; - out_8320315452592553094[1] = 9.8100000000000005*cos(state[1]); - out_8320315452592553094[2] = 0; - out_8320315452592553094[3] = 0; - out_8320315452592553094[4] = -state[8]; - out_8320315452592553094[5] = state[7]; - out_8320315452592553094[6] = 0; - out_8320315452592553094[7] = state[5]; - out_8320315452592553094[8] = -state[4]; - out_8320315452592553094[9] = 0; - out_8320315452592553094[10] = 0; - out_8320315452592553094[11] = 0; - out_8320315452592553094[12] = 1; - out_8320315452592553094[13] = 0; - out_8320315452592553094[14] = 0; - out_8320315452592553094[15] = 1; - out_8320315452592553094[16] = 0; - out_8320315452592553094[17] = 0; - out_8320315452592553094[18] = -9.8100000000000005*cos(state[0])*cos(state[1]); - out_8320315452592553094[19] = 9.8100000000000005*sin(state[0])*sin(state[1]); - out_8320315452592553094[20] = 0; - out_8320315452592553094[21] = state[8]; - out_8320315452592553094[22] = 0; - out_8320315452592553094[23] = -state[6]; - out_8320315452592553094[24] = -state[5]; - out_8320315452592553094[25] = 0; - out_8320315452592553094[26] = state[3]; - out_8320315452592553094[27] = 0; - out_8320315452592553094[28] = 0; - out_8320315452592553094[29] = 0; - out_8320315452592553094[30] = 0; - out_8320315452592553094[31] = 1; - out_8320315452592553094[32] = 0; - out_8320315452592553094[33] = 0; - out_8320315452592553094[34] = 1; - out_8320315452592553094[35] = 0; - out_8320315452592553094[36] = 9.8100000000000005*sin(state[0])*cos(state[1]); - out_8320315452592553094[37] = 9.8100000000000005*sin(state[1])*cos(state[0]); - out_8320315452592553094[38] = 0; - out_8320315452592553094[39] = -state[7]; - out_8320315452592553094[40] = state[6]; - out_8320315452592553094[41] = 0; - out_8320315452592553094[42] = state[4]; - out_8320315452592553094[43] = -state[3]; - out_8320315452592553094[44] = 0; - out_8320315452592553094[45] = 0; - out_8320315452592553094[46] = 0; - out_8320315452592553094[47] = 0; - out_8320315452592553094[48] = 0; - out_8320315452592553094[49] = 0; - out_8320315452592553094[50] = 1; - out_8320315452592553094[51] = 0; - out_8320315452592553094[52] = 0; - out_8320315452592553094[53] = 1; +void H_10(double *state, double *unused, double *out_3724360775848728158) { + out_3724360775848728158[0] = 0; + out_3724360775848728158[1] = 9.8100000000000005*cos(state[1]); + out_3724360775848728158[2] = 0; + out_3724360775848728158[3] = 0; + out_3724360775848728158[4] = -state[8]; + out_3724360775848728158[5] = state[7]; + out_3724360775848728158[6] = 0; + out_3724360775848728158[7] = state[5]; + out_3724360775848728158[8] = -state[4]; + out_3724360775848728158[9] = 0; + out_3724360775848728158[10] = 0; + out_3724360775848728158[11] = 0; + out_3724360775848728158[12] = 1; + out_3724360775848728158[13] = 0; + out_3724360775848728158[14] = 0; + out_3724360775848728158[15] = 1; + out_3724360775848728158[16] = 0; + out_3724360775848728158[17] = 0; + out_3724360775848728158[18] = -9.8100000000000005*cos(state[0])*cos(state[1]); + out_3724360775848728158[19] = 9.8100000000000005*sin(state[0])*sin(state[1]); + out_3724360775848728158[20] = 0; + out_3724360775848728158[21] = state[8]; + out_3724360775848728158[22] = 0; + out_3724360775848728158[23] = -state[6]; + out_3724360775848728158[24] = -state[5]; + out_3724360775848728158[25] = 0; + out_3724360775848728158[26] = state[3]; + out_3724360775848728158[27] = 0; + out_3724360775848728158[28] = 0; + out_3724360775848728158[29] = 0; + out_3724360775848728158[30] = 0; + out_3724360775848728158[31] = 1; + out_3724360775848728158[32] = 0; + out_3724360775848728158[33] = 0; + out_3724360775848728158[34] = 1; + out_3724360775848728158[35] = 0; + out_3724360775848728158[36] = 9.8100000000000005*sin(state[0])*cos(state[1]); + out_3724360775848728158[37] = 9.8100000000000005*sin(state[1])*cos(state[0]); + out_3724360775848728158[38] = 0; + out_3724360775848728158[39] = -state[7]; + out_3724360775848728158[40] = state[6]; + out_3724360775848728158[41] = 0; + out_3724360775848728158[42] = state[4]; + out_3724360775848728158[43] = -state[3]; + out_3724360775848728158[44] = 0; + out_3724360775848728158[45] = 0; + out_3724360775848728158[46] = 0; + out_3724360775848728158[47] = 0; + out_3724360775848728158[48] = 0; + out_3724360775848728158[49] = 0; + out_3724360775848728158[50] = 1; + out_3724360775848728158[51] = 0; + out_3724360775848728158[52] = 0; + out_3724360775848728158[53] = 1; } -void h_13(double *state, double *unused, double *out_743896610209905980) { - out_743896610209905980[0] = state[3]; - out_743896610209905980[1] = state[4]; - out_743896610209905980[2] = state[5]; +void h_13(double *state, double *unused, double *out_7136718217250129115) { + out_7136718217250129115[0] = state[3]; + out_7136718217250129115[1] = state[4]; + out_7136718217250129115[2] = state[5]; } -void H_13(double *state, double *unused, double *out_1577478167965566867) { - out_1577478167965566867[0] = 0; - out_1577478167965566867[1] = 0; - out_1577478167965566867[2] = 0; - out_1577478167965566867[3] = 1; - out_1577478167965566867[4] = 0; - out_1577478167965566867[5] = 0; - out_1577478167965566867[6] = 0; - out_1577478167965566867[7] = 0; - out_1577478167965566867[8] = 0; - out_1577478167965566867[9] = 0; - out_1577478167965566867[10] = 0; - out_1577478167965566867[11] = 0; - out_1577478167965566867[12] = 0; - out_1577478167965566867[13] = 0; - out_1577478167965566867[14] = 0; - out_1577478167965566867[15] = 0; - out_1577478167965566867[16] = 0; - out_1577478167965566867[17] = 0; - out_1577478167965566867[18] = 0; - out_1577478167965566867[19] = 0; - out_1577478167965566867[20] = 0; - out_1577478167965566867[21] = 0; - out_1577478167965566867[22] = 1; - out_1577478167965566867[23] = 0; - out_1577478167965566867[24] = 0; - out_1577478167965566867[25] = 0; - out_1577478167965566867[26] = 0; - out_1577478167965566867[27] = 0; - out_1577478167965566867[28] = 0; - out_1577478167965566867[29] = 0; - out_1577478167965566867[30] = 0; - out_1577478167965566867[31] = 0; - out_1577478167965566867[32] = 0; - out_1577478167965566867[33] = 0; - out_1577478167965566867[34] = 0; - out_1577478167965566867[35] = 0; - out_1577478167965566867[36] = 0; - out_1577478167965566867[37] = 0; - out_1577478167965566867[38] = 0; - out_1577478167965566867[39] = 0; - out_1577478167965566867[40] = 0; - out_1577478167965566867[41] = 1; - out_1577478167965566867[42] = 0; - out_1577478167965566867[43] = 0; - out_1577478167965566867[44] = 0; - out_1577478167965566867[45] = 0; - out_1577478167965566867[46] = 0; - out_1577478167965566867[47] = 0; - out_1577478167965566867[48] = 0; - out_1577478167965566867[49] = 0; - out_1577478167965566867[50] = 0; - out_1577478167965566867[51] = 0; - out_1577478167965566867[52] = 0; - out_1577478167965566867[53] = 0; +void H_13(double *state, double *unused, double *out_7830660549930476874) { + out_7830660549930476874[0] = 0; + out_7830660549930476874[1] = 0; + out_7830660549930476874[2] = 0; + out_7830660549930476874[3] = 1; + out_7830660549930476874[4] = 0; + out_7830660549930476874[5] = 0; + out_7830660549930476874[6] = 0; + out_7830660549930476874[7] = 0; + out_7830660549930476874[8] = 0; + out_7830660549930476874[9] = 0; + out_7830660549930476874[10] = 0; + out_7830660549930476874[11] = 0; + out_7830660549930476874[12] = 0; + out_7830660549930476874[13] = 0; + out_7830660549930476874[14] = 0; + out_7830660549930476874[15] = 0; + out_7830660549930476874[16] = 0; + out_7830660549930476874[17] = 0; + out_7830660549930476874[18] = 0; + out_7830660549930476874[19] = 0; + out_7830660549930476874[20] = 0; + out_7830660549930476874[21] = 0; + out_7830660549930476874[22] = 1; + out_7830660549930476874[23] = 0; + out_7830660549930476874[24] = 0; + out_7830660549930476874[25] = 0; + out_7830660549930476874[26] = 0; + out_7830660549930476874[27] = 0; + out_7830660549930476874[28] = 0; + out_7830660549930476874[29] = 0; + out_7830660549930476874[30] = 0; + out_7830660549930476874[31] = 0; + out_7830660549930476874[32] = 0; + out_7830660549930476874[33] = 0; + out_7830660549930476874[34] = 0; + out_7830660549930476874[35] = 0; + out_7830660549930476874[36] = 0; + out_7830660549930476874[37] = 0; + out_7830660549930476874[38] = 0; + out_7830660549930476874[39] = 0; + out_7830660549930476874[40] = 0; + out_7830660549930476874[41] = 1; + out_7830660549930476874[42] = 0; + out_7830660549930476874[43] = 0; + out_7830660549930476874[44] = 0; + out_7830660549930476874[45] = 0; + out_7830660549930476874[46] = 0; + out_7830660549930476874[47] = 0; + out_7830660549930476874[48] = 0; + out_7830660549930476874[49] = 0; + out_7830660549930476874[50] = 0; + out_7830660549930476874[51] = 0; + out_7830660549930476874[52] = 0; + out_7830660549930476874[53] = 0; } -void h_14(double *state, double *unused, double *out_2801914335576561864) { - out_2801914335576561864[0] = state[6]; - out_2801914335576561864[1] = state[7]; - out_2801914335576561864[2] = state[8]; +void h_14(double *state, double *unused, double *out_5010661569828504853) { + out_5010661569828504853[0] = state[6]; + out_5010661569828504853[1] = state[7]; + out_5010661569828504853[2] = state[8]; } -void H_14(double *state, double *unused, double *out_826511136958415139) { - out_826511136958415139[0] = 0; - out_826511136958415139[1] = 0; - out_826511136958415139[2] = 0; - out_826511136958415139[3] = 0; - out_826511136958415139[4] = 0; - out_826511136958415139[5] = 0; - out_826511136958415139[6] = 1; - out_826511136958415139[7] = 0; - out_826511136958415139[8] = 0; - out_826511136958415139[9] = 0; - out_826511136958415139[10] = 0; - out_826511136958415139[11] = 0; - out_826511136958415139[12] = 0; - out_826511136958415139[13] = 0; - out_826511136958415139[14] = 0; - out_826511136958415139[15] = 0; - out_826511136958415139[16] = 0; - out_826511136958415139[17] = 0; - out_826511136958415139[18] = 0; - out_826511136958415139[19] = 0; - out_826511136958415139[20] = 0; - out_826511136958415139[21] = 0; - out_826511136958415139[22] = 0; - out_826511136958415139[23] = 0; - out_826511136958415139[24] = 0; - out_826511136958415139[25] = 1; - out_826511136958415139[26] = 0; - out_826511136958415139[27] = 0; - out_826511136958415139[28] = 0; - out_826511136958415139[29] = 0; - out_826511136958415139[30] = 0; - out_826511136958415139[31] = 0; - out_826511136958415139[32] = 0; - out_826511136958415139[33] = 0; - out_826511136958415139[34] = 0; - out_826511136958415139[35] = 0; - out_826511136958415139[36] = 0; - out_826511136958415139[37] = 0; - out_826511136958415139[38] = 0; - out_826511136958415139[39] = 0; - out_826511136958415139[40] = 0; - out_826511136958415139[41] = 0; - out_826511136958415139[42] = 0; - out_826511136958415139[43] = 0; - out_826511136958415139[44] = 1; - out_826511136958415139[45] = 0; - out_826511136958415139[46] = 0; - out_826511136958415139[47] = 0; - out_826511136958415139[48] = 0; - out_826511136958415139[49] = 0; - out_826511136958415139[50] = 0; - out_826511136958415139[51] = 0; - out_826511136958415139[52] = 0; - out_826511136958415139[53] = 0; +void H_14(double *state, double *unused, double *out_8581627580937628602) { + out_8581627580937628602[0] = 0; + out_8581627580937628602[1] = 0; + out_8581627580937628602[2] = 0; + out_8581627580937628602[3] = 0; + out_8581627580937628602[4] = 0; + out_8581627580937628602[5] = 0; + out_8581627580937628602[6] = 1; + out_8581627580937628602[7] = 0; + out_8581627580937628602[8] = 0; + out_8581627580937628602[9] = 0; + out_8581627580937628602[10] = 0; + out_8581627580937628602[11] = 0; + out_8581627580937628602[12] = 0; + out_8581627580937628602[13] = 0; + out_8581627580937628602[14] = 0; + out_8581627580937628602[15] = 0; + out_8581627580937628602[16] = 0; + out_8581627580937628602[17] = 0; + out_8581627580937628602[18] = 0; + out_8581627580937628602[19] = 0; + out_8581627580937628602[20] = 0; + out_8581627580937628602[21] = 0; + out_8581627580937628602[22] = 0; + out_8581627580937628602[23] = 0; + out_8581627580937628602[24] = 0; + out_8581627580937628602[25] = 1; + out_8581627580937628602[26] = 0; + out_8581627580937628602[27] = 0; + out_8581627580937628602[28] = 0; + out_8581627580937628602[29] = 0; + out_8581627580937628602[30] = 0; + out_8581627580937628602[31] = 0; + out_8581627580937628602[32] = 0; + out_8581627580937628602[33] = 0; + out_8581627580937628602[34] = 0; + out_8581627580937628602[35] = 0; + out_8581627580937628602[36] = 0; + out_8581627580937628602[37] = 0; + out_8581627580937628602[38] = 0; + out_8581627580937628602[39] = 0; + out_8581627580937628602[40] = 0; + out_8581627580937628602[41] = 0; + out_8581627580937628602[42] = 0; + out_8581627580937628602[43] = 0; + out_8581627580937628602[44] = 1; + out_8581627580937628602[45] = 0; + out_8581627580937628602[46] = 0; + out_8581627580937628602[47] = 0; + out_8581627580937628602[48] = 0; + out_8581627580937628602[49] = 0; + out_8581627580937628602[50] = 0; + out_8581627580937628602[51] = 0; + out_8581627580937628602[52] = 0; + out_8581627580937628602[53] = 0; } #include #include @@ -1113,44 +1113,44 @@ void pose_update_13(double *in_x, double *in_P, double *in_z, double *in_R, doub void pose_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 pose_err_fun(double *nom_x, double *delta_x, double *out_5567810526154209734) { - err_fun(nom_x, delta_x, out_5567810526154209734); +void pose_err_fun(double *nom_x, double *delta_x, double *out_7636423458425794019) { + err_fun(nom_x, delta_x, out_7636423458425794019); } -void pose_inv_err_fun(double *nom_x, double *true_x, double *out_7908491346196944566) { - inv_err_fun(nom_x, true_x, out_7908491346196944566); +void pose_inv_err_fun(double *nom_x, double *true_x, double *out_4233815579108349573) { + inv_err_fun(nom_x, true_x, out_4233815579108349573); } -void pose_H_mod_fun(double *state, double *out_1058329813454059053) { - H_mod_fun(state, out_1058329813454059053); +void pose_H_mod_fun(double *state, double *out_534131660440936662) { + H_mod_fun(state, out_534131660440936662); } -void pose_f_fun(double *state, double dt, double *out_6164632031260569200) { - f_fun(state, dt, out_6164632031260569200); +void pose_f_fun(double *state, double dt, double *out_2390572541081456385) { + f_fun(state, dt, out_2390572541081456385); } -void pose_F_fun(double *state, double dt, double *out_2115210801735647822) { - F_fun(state, dt, out_2115210801735647822); +void pose_F_fun(double *state, double dt, double *out_1513223696750910511) { + F_fun(state, dt, out_1513223696750910511); } -void pose_h_4(double *state, double *unused, double *out_5340316977089833419) { - h_4(state, unused, out_5340316977089833419); +void pose_h_4(double *state, double *unused, double *out_7543652368314576620) { + h_4(state, unused, out_7543652368314576620); } -void pose_H_4(double *state, double *unused, double *out_4789751993297899668) { - H_4(state, unused, out_4789751993297899668); +void pose_H_4(double *state, double *unused, double *out_4618386724598144073) { + H_4(state, unused, out_4618386724598144073); } -void pose_h_10(double *state, double *unused, double *out_4503836725223465124) { - h_10(state, unused, out_4503836725223465124); +void pose_h_10(double *state, double *unused, double *out_1260309873169513594) { + h_10(state, unused, out_1260309873169513594); } -void pose_H_10(double *state, double *unused, double *out_8320315452592553094) { - H_10(state, unused, out_8320315452592553094); +void pose_H_10(double *state, double *unused, double *out_3724360775848728158) { + H_10(state, unused, out_3724360775848728158); } -void pose_h_13(double *state, double *unused, double *out_743896610209905980) { - h_13(state, unused, out_743896610209905980); +void pose_h_13(double *state, double *unused, double *out_7136718217250129115) { + h_13(state, unused, out_7136718217250129115); } -void pose_H_13(double *state, double *unused, double *out_1577478167965566867) { - H_13(state, unused, out_1577478167965566867); +void pose_H_13(double *state, double *unused, double *out_7830660549930476874) { + H_13(state, unused, out_7830660549930476874); } -void pose_h_14(double *state, double *unused, double *out_2801914335576561864) { - h_14(state, unused, out_2801914335576561864); +void pose_h_14(double *state, double *unused, double *out_5010661569828504853) { + h_14(state, unused, out_5010661569828504853); } -void pose_H_14(double *state, double *unused, double *out_826511136958415139) { - H_14(state, unused, out_826511136958415139); +void pose_H_14(double *state, double *unused, double *out_8581627580937628602) { + H_14(state, unused, out_8581627580937628602); } void pose_predict(double *in_x, double *in_P, double *in_Q, double dt) { predict(in_x, in_P, in_Q, dt); diff --git a/selfdrive/locationd/models/generated/pose.h b/selfdrive/locationd/models/generated/pose.h index 30208998b..0d142e792 100644 --- a/selfdrive/locationd/models/generated/pose.h +++ b/selfdrive/locationd/models/generated/pose.h @@ -5,18 +5,18 @@ void pose_update_4(double *in_x, double *in_P, double *in_z, double *in_R, doubl void pose_update_10(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void pose_update_13(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void pose_update_14(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); -void pose_err_fun(double *nom_x, double *delta_x, double *out_5567810526154209734); -void pose_inv_err_fun(double *nom_x, double *true_x, double *out_7908491346196944566); -void pose_H_mod_fun(double *state, double *out_1058329813454059053); -void pose_f_fun(double *state, double dt, double *out_6164632031260569200); -void pose_F_fun(double *state, double dt, double *out_2115210801735647822); -void pose_h_4(double *state, double *unused, double *out_5340316977089833419); -void pose_H_4(double *state, double *unused, double *out_4789751993297899668); -void pose_h_10(double *state, double *unused, double *out_4503836725223465124); -void pose_H_10(double *state, double *unused, double *out_8320315452592553094); -void pose_h_13(double *state, double *unused, double *out_743896610209905980); -void pose_H_13(double *state, double *unused, double *out_1577478167965566867); -void pose_h_14(double *state, double *unused, double *out_2801914335576561864); -void pose_H_14(double *state, double *unused, double *out_826511136958415139); +void pose_err_fun(double *nom_x, double *delta_x, double *out_7636423458425794019); +void pose_inv_err_fun(double *nom_x, double *true_x, double *out_4233815579108349573); +void pose_H_mod_fun(double *state, double *out_534131660440936662); +void pose_f_fun(double *state, double dt, double *out_2390572541081456385); +void pose_F_fun(double *state, double dt, double *out_1513223696750910511); +void pose_h_4(double *state, double *unused, double *out_7543652368314576620); +void pose_H_4(double *state, double *unused, double *out_4618386724598144073); +void pose_h_10(double *state, double *unused, double *out_1260309873169513594); +void pose_H_10(double *state, double *unused, double *out_3724360775848728158); +void pose_h_13(double *state, double *unused, double *out_7136718217250129115); +void pose_H_13(double *state, double *unused, double *out_7830660549930476874); +void pose_h_14(double *state, double *unused, double *out_5010661569828504853); +void pose_H_14(double *state, double *unused, double *out_8581627580937628602); void pose_predict(double *in_x, double *in_P, double *in_Q, double dt); } \ No newline at end of file diff --git a/selfdrive/pandad/pandad b/selfdrive/pandad/pandad index 1f9986b98..a656b5c65 100755 Binary files a/selfdrive/pandad/pandad and b/selfdrive/pandad/pandad differ diff --git a/selfdrive/ui/ui b/selfdrive/ui/ui index 9ca317f80..6de288169 100755 Binary files a/selfdrive/ui/ui and b/selfdrive/ui/ui differ diff --git a/system/camerad/camerad b/system/camerad/camerad index 6a7a868e8..20a030908 100755 Binary files a/system/camerad/camerad and b/system/camerad/camerad differ diff --git a/system/loggerd/bootlog b/system/loggerd/bootlog index 2cafb6b48..c3a374665 100755 Binary files a/system/loggerd/bootlog and b/system/loggerd/bootlog differ diff --git a/system/loggerd/encoderd b/system/loggerd/encoderd index f39893c9c..4f1739ecb 100755 Binary files a/system/loggerd/encoderd and b/system/loggerd/encoderd differ diff --git a/system/loggerd/loggerd b/system/loggerd/loggerd index 8c7650e9a..635c46132 100755 Binary files a/system/loggerd/loggerd and b/system/loggerd/loggerd differ diff --git a/system/manager/manager.py b/system/manager/manager.py index a8844e1dc..d3875f21b 100755 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -9,6 +9,18 @@ import sys import time import traceback +_MANAGER_IMPORT_START = time.monotonic() +_BOOT_TIMING_LOG_PATH = os.environ.get("SP_BOOT_TIMING_LOG", "/tmp/starpilot_boot_timing.log") + + +def _append_boot_timing_line(line: str) -> None: + try: + with open(_BOOT_TIMING_LOG_PATH, "a") as f: + f.write(line + "\n") + except OSError: + pass + + from cereal import car, log import cereal.messaging as messaging import openpilot.system.sentry as sentry @@ -24,6 +36,8 @@ from openpilot.common.swaglog import cloudlog, add_file_handler from openpilot.system.version import get_build_metadata, terms_version, training_version from openpilot.system.hardware.hw import Paths +_MANAGER_CORE_IMPORT_DONE = time.monotonic() + from openpilot.starpilot.common.starpilot_functions import starpilot_boot_functions, install_starpilot, uninstall_starpilot from openpilot.starpilot.common.starpilot_variables import ( LEGACY_STARPILOT_PARAM_RENAMES, @@ -31,6 +45,16 @@ from openpilot.starpilot.common.starpilot_variables import ( get_starpilot_toggles, ) +_MANAGER_IMPORT_DONE = time.monotonic() +_manager_import_timing_line = ( + "SP_BOOT_TIMING manager_import " + f"core={_MANAGER_CORE_IMPORT_DONE - _MANAGER_IMPORT_START:.3f}s " + f"starpilot={_MANAGER_IMPORT_DONE - _MANAGER_CORE_IMPORT_DONE:.3f}s " + f"total={_MANAGER_IMPORT_DONE - _MANAGER_IMPORT_START:.3f}s" +) +print(_manager_import_timing_line, flush=True) +_append_boot_timing_line(_manager_import_timing_line) + LEGACY_BOLT_FP_MIGRATION_FLAG = Path("/data") / "legacy_bolt_fp_migration_v1" STARPILOT_DEFAULTS_PARITY_MIGRATION_FLAG = Path("/data") / "starpilot_defaults_parity_v1" @@ -50,6 +74,15 @@ STARPILOT_STATS_DROP_KEYS = {"CurrentMonthsKilometers", "ResetStats"} STARPILOT_STATS_MAX_KEYS = {"LongestDistanceWithoutOverride", "MaxAcceleration"} +def _log_boot_timing(scope: str, label: str, start: float, previous: float | None = None) -> float: + now = time.monotonic() + base = previous if previous is not None else start + line = f"SP_BOOT_TIMING {scope} {label} +{now - base:.3f}s total={now - start:.3f}s" + _append_boot_timing_line(line) + cloudlog.warning(line) + return now + + def _to_text(value): if value is None: return None @@ -727,18 +760,25 @@ def migrate_legacy_experimental_longitudinal(params: Params, params_cache: Param def manager_init() -> None: + manager_init_start = time.monotonic() + last_timing = _log_boot_timing("manager_init", "start", manager_init_start, manager_init_start) + save_bootlog() + last_timing = _log_boot_timing("manager_init", "save_bootlog", manager_init_start, last_timing) build_metadata = get_build_metadata() + last_timing = _log_boot_timing("manager_init", "build_metadata", manager_init_start, last_timing) params = Params() cache_params_path = Paths.params_cache_root() migrate_legacy_starpilot_params_cache(params, Paths.legacy_params_cache_root(), cache_params_path) params_cache = Params(cache_params_path, return_defaults=True) + last_timing = _log_boot_timing("manager_init", "params_cache", manager_init_start, last_timing) # Legacy FrogPilot params are unknown to the renamed schema and would be # deleted by clear_all() if we do not migrate them first. migrate_starpilot_param_renames(params, params_cache) + last_timing = _log_boot_timing("manager_init", "param_renames", manager_init_start, last_timing) params.clear_all(ParamKeyFlag.CLEAR_ON_MANAGER_START) params.clear_all(ParamKeyFlag.CLEAR_ON_ONROAD_TRANSITION) @@ -746,8 +786,10 @@ def manager_init() -> None: params.clear_all(ParamKeyFlag.CLEAR_ON_IGNITION_ON) if build_metadata.release_channel: params.clear_all(ParamKeyFlag.DEVELOPMENT_ONLY) + last_timing = _log_boot_timing("manager_init", "clear_params", manager_init_start, last_timing) migrate_starpilot_pc_root() + last_timing = _log_boot_timing("manager_init", "pc_root_migration", manager_init_start, last_timing) if params.get_bool("RecordFrontLock"): params.put_bool("RecordFront", True) @@ -765,6 +807,7 @@ def manager_init() -> None: migrate_disable_humanlike_defaults(params, params_cache) migrate_cluster_offset_default(params, params_cache) migrate_prioritize_smooth_following_default(params, params_cache) + last_timing = _log_boot_timing("manager_init", "starpilot_migrations", manager_init_start, last_timing) # set unset params to their default value for k in params.all_keys(): @@ -775,6 +818,7 @@ def manager_init() -> None: params.put(k, cached_value) else: params_cache.put(k, current_value) + last_timing = _log_boot_timing("manager_init", "params_defaults_cache_sync", manager_init_start, last_timing) # Create folders needed for msgq try: @@ -783,6 +827,7 @@ def manager_init() -> None: pass except PermissionError: print(f"WARNING: failed to make {Paths.shm_path()}") + last_timing = _log_boot_timing("manager_init", "shm_path", manager_init_start, last_timing) # set params serial = HARDWARE.get_serial() @@ -799,6 +844,7 @@ def manager_init() -> None: # Branch migration: rename legacy Bolt fingerprint persisted in CarParams. migrate_legacy_bolt_fingerprint(params) + last_timing = _log_boot_timing("manager_init", "version_params", manager_init_start, last_timing) # set dongle id reg_res = register(show_spinner=True) @@ -806,6 +852,7 @@ def manager_init() -> None: dongle_id = reg_res else: raise Exception(f"Registration failed for device {serial}") + last_timing = _log_boot_timing("manager_init", "register", manager_init_start, last_timing) os.environ['DONGLE_ID'] = dongle_id # Needed for swaglog os.environ['GIT_ORIGIN'] = build_metadata.openpilot.git_normalized_origin # Needed for swaglog os.environ['GIT_BRANCH'] = build_metadata.channel # Needed for swaglog @@ -823,14 +870,18 @@ def manager_init() -> None: commit=build_metadata.openpilot.git_commit, dirty=build_metadata.openpilot.is_dirty, device=HARDWARE.get_device_type()) + last_timing = _log_boot_timing("manager_init", "logging_ready", manager_init_start, last_timing) # preimport all processes for p in managed_processes.values(): p.prepare() + last_timing = _log_boot_timing("manager_init", "preimport_processes", manager_init_start, last_timing) # StarPilot variables install_starpilot(build_metadata, params) + last_timing = _log_boot_timing("manager_init", "install_starpilot", manager_init_start, last_timing) starpilot_boot_functions(build_metadata, params) + _log_boot_timing("manager_init", "starpilot_boot_functions", manager_init_start, last_timing) def manager_cleanup() -> None: @@ -846,11 +897,14 @@ def manager_cleanup() -> None: def manager_thread() -> None: + manager_thread_start = time.monotonic() + last_timing = _log_boot_timing("manager_thread", "start", manager_thread_start, manager_thread_start) cloudlog.bind(daemon="manager") cloudlog.info("manager start") cloudlog.info({"environ": os.environ}) params = Params() + last_timing = _log_boot_timing("manager_thread", "params", manager_thread_start, last_timing) ignore: list[str] = [] if params.get("DongleId") in (None, UNREGISTERED_DONGLE_ID): @@ -858,12 +912,17 @@ def manager_thread() -> None: if os.getenv("NOBOARD") is not None: ignore.append("pandad") ignore += [x for x in os.getenv("BLOCK", "").split(",") if len(x) > 0] + last_timing = _log_boot_timing("manager_thread", "ignore_list", manager_thread_start, last_timing) sm = messaging.SubMaster(['deviceState', 'carParams', 'pandaStates'], poll='deviceState') pm = messaging.PubMaster(['managerState']) + last_timing = _log_boot_timing("manager_thread", "messaging", manager_thread_start, last_timing) write_onroad_params(False, params) - ensure_running(managed_processes.values(), False, params=params, CP=sm['carParams'], not_run=ignore, starpilot_toggles=get_starpilot_toggles()) + initial_toggles = get_starpilot_toggles() + last_timing = _log_boot_timing("manager_thread", "initial_toggles", manager_thread_start, last_timing) + ensure_running(managed_processes.values(), False, params=params, CP=sm['carParams'], not_run=ignore, starpilot_toggles=initial_toggles) + last_timing = _log_boot_timing("manager_thread", "initial_ensure_running", manager_thread_start, last_timing) started_prev = False ignition_prev = False @@ -877,6 +936,8 @@ def manager_thread() -> None: params_memory = Params(memory=True) starpilot_toggles = get_starpilot_toggles() + last_timing = _log_boot_timing("manager_thread", "loop_toggles", manager_thread_start, last_timing) + _log_boot_timing("manager_thread", "loop_ready", manager_thread_start, last_timing) while True: sm.update(1000) diff --git a/system/manager/process.py b/system/manager/process.py index 6d808c224..516d34159 100644 --- a/system/manager/process.py +++ b/system/manager/process.py @@ -628,7 +628,17 @@ class PythonProcess(ManagerProcess): def prepare(self) -> None: if self.enabled: cloudlog.info(f"preimporting {self.module}") - importlib.import_module(self.module) + start = time.monotonic() + try: + importlib.import_module(self.module) + finally: + line = f"SP_BOOT_TIMING preimport {self.name} module={self.module} +{time.monotonic() - start:.3f}s" + try: + with open(os.environ.get("SP_BOOT_TIMING_LOG", "/tmp/starpilot_boot_timing.log"), "a") as f: + f.write(line + "\n") + except OSError: + pass + cloudlog.warning(line) def start(self) -> None: # In case we only tried a non blocking stop we need to stop it before restarting