{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,7,25]],"date-time":"2025-07-25T10:46:02Z","timestamp":1753440362146,"version":"3.41.0"},"reference-count":22,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2024,12,12]],"date-time":"2024-12-12T00:00:00Z","timestamp":1733961600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Israeli Ministry of Science and Technology","award":["1919\/19"],"award-info":[{"award-number":["1919\/19"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Math. Softw."],"published-print":{"date-parts":[[2024,12,31]]},"abstract":"<jats:p>UltimateKalman is a flexible linear Kalman filter and smoother implemented in three popular programming languages: MATLAB, C, and Java. UltimateKalman is a slight simplification and slight generalization of an elegant Kalman filter and smoother that was proposed in 1977 by Paige and Saunders. Their algorithm appears to be numerically superior and more flexible than other Kalman filters and smoothers, but curiously has never been implemented or used before. UltimateKalman is flexible: it can easily handle time-dependent problems, problems with state vectors whose dimensions vary from step to step, problems with varying numbers of observations in different steps (or no observations at all in some steps), and problems in which the expectation of the initial state is unknown. The programming interface of UltimateKalman is broken into simple building blocks that can be used to construct filters, single or multi-step predictors, multi-step or whole-track smoothers, and combinations. The article describes the algorithm and its implementation as well as a test suite of examples and tests.<\/jats:p>","DOI":"10.1145\/3699958","type":"journal-article","created":{"date-parts":[[2024,10,24]],"date-time":"2024-10-24T14:05:11Z","timestamp":1729778711000},"page":"1-19","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Algorithm 1051: UltimateKalman, Flexible Kalman Filtering and Smoothing Using Orthogonal Transformations"],"prefix":"10.1145","volume":"50","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-9524-7115","authenticated-orcid":false,"given":"Sivan","family":"Toledo","sequence":"first","affiliation":[{"name":"Blavatnik School of Computer Science, Tel Aviv University, Tel Aviv, Israel"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2024,12,12]]},"reference":[{"key":"e_1_3_1_2_2","doi-asserted-by":"publisher","DOI":"10.1017\/S0370164600014346"},{"key":"e_1_3_1_3_2","doi-asserted-by":"publisher","DOI":"10.1137\/1.9780898719604"},{"key":"e_1_3_1_4_2","doi-asserted-by":"publisher","DOI":"10.1137\/1.9781611971484"},{"key":"e_1_3_1_5_2","volume-title":"Introduction to Random Signals and Applied Kalman Filtering","author":"Brown Robert Grover","year":"1997","unstructured":"Robert Grover Brown and Patrick Y. C. Hwang. 1997. Introduction to Random Signals and Applied Kalman Filtering (3rd ed.). Wiley.","edition":"3"},{"key":"e_1_3_1_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/77626.77627"},{"key":"e_1_3_1_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/77626.79170"},{"key":"e_1_3_1_8_2","doi-asserted-by":"publisher","DOI":"10.1080\/01621459.1972.10481299"},{"key":"e_1_3_1_9_2","doi-asserted-by":"publisher","DOI":"10.2172\/4412175"},{"key":"e_1_3_1_10_2","doi-asserted-by":"publisher","DOI":"10.56021\/9781421407944"},{"key":"e_1_3_1_11_2","volume-title":"Kalman Filtering: Theory and Practice with MATLAB","author":"Grewal Mohinder S.","year":"2015","unstructured":"Mohinder S. Grewal and Angus P. Andrews. 2015. Kalman Filtering: Theory and Practice with MATLAB (4th ed.). Wiley.","edition":"4"},{"key":"e_1_3_1_12_2","doi-asserted-by":"publisher","DOI":"10.1137\/1.9780898718027"},{"key":"e_1_3_1_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/320941.320947"},{"key":"e_1_3_1_14_2","doi-asserted-by":"publisher","DOI":"10.1137\/100799666"},{"key":"e_1_3_1_15_2","doi-asserted-by":"publisher","DOI":"10.1115\/1.3662552"},{"key":"e_1_3_1_16_2","doi-asserted-by":"publisher","DOI":"10.1137\/0714012"},{"key":"e_1_3_1_17_2","doi-asserted-by":"publisher","DOI":"10.18637\/jss.v041.i06"},{"key":"e_1_3_1_18_2","unstructured":"Michael Saunders. 2018. Private Communication. E-mail."},{"key":"e_1_3_1_19_2","doi-asserted-by":"publisher","DOI":"10.1137\/1.9781611976298"},{"key":"e_1_3_1_20_2","doi-asserted-by":"publisher","DOI":"10.1145\/1644001.1644012"},{"key":"e_1_3_1_21_2","doi-asserted-by":"publisher","DOI":"10.18637\/jss.v039.i02"},{"key":"e_1_3_1_22_2","doi-asserted-by":"publisher","DOI":"10.18637\/jss.v087.i05"},{"key":"e_1_3_1_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/1039813.1039816"}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3699958","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3699958","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T00:05:56Z","timestamp":1750291556000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3699958"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,12,12]]},"references-count":22,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2024,12,31]]}},"alternative-id":["10.1145\/3699958"],"URL":"https:\/\/doi.org\/10.1145\/3699958","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"type":"print","value":"0098-3500"},{"type":"electronic","value":"1557-7295"}],"subject":[],"published":{"date-parts":[[2024,12,12]]},"assertion":[{"value":"2023-09-13","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-09-22","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-12-12","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}