MLFS - Mathematical Library for Flight Software
NOTE: As of December 2022, MLFS has been superseeded by the mathematical library for critical system (LibmCS) that features a complete ISO C math.h complaint library. Please follow the link in the right column.
Mathematical libraries are used in nearly any Flight Software and in particular in the AOCS/GNC and scientific algorithms. The common practice to manage the mathematical functions in a flight software project is to isolate well known and established functions from libraries like libm from newlib, and to characterise these functions with respect to input ranges, errors and performance. This common practice doesn’t typically cover corner cases where some of these functions might reveal an unexpected behaviour in term of accuracy or timing.
The objective of the "Mathematical Library for Flight Software" project is the development of a mathematical library, reusing libm present in newlib and pre-qualifying the library to ECSS criticality category B.
The set of functions provided by the Mathematical Library for Flight Software (MLFS) has been, on purpose, limited to the functions typically needed in flight software. This means that not all functions exepected by ISO/POSIX C99 standard in a math.h is provided and hence the header file of the MLFS is called mlfs.h and not math.h.
A qualification data package (MLFS-QDP_I1_R1.zip - md5:62a01914eb82b1f185d5e5093b8fc0c1) is provided that includes
- the source code of the Basic mathematical Library (BL),
- the Basic mathematical Library Test Suite (BLTS) to qualify on a target environment, and the
- full set of ECSS compliant software life cycle documentation for both the mathematical library and test suite,
allowing the delta-qualification of the mathematical library in space projects with minimized effort.
Errata
Within the frame of the development of the LibmCS, an errata list for MLFS has been established (see right column for download).
NB: The software and documents can only be downloaded once you have logged in.