mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
erf and erfc are missing float versions, so I import them from openlibm. erf is used from Poincare::NormalDistribution:: StandardNormalCumulativeDistributiveFunctionAtAbscissa<float>, and erfc is used (?) just from MicroPython. To clarify, if there is no float version of a function like erf, but there is a double version, C++ promotes the possible float parameter to double and soft-float hilarity ensues.
liba is an adhoc libc. Warning: you must call "liba_init()" before using liba. We need a very small subset of the functionality provided by the standard C library. We could use an available libc implementation, but those are usually way too large and may have problematic licenses. It wouldn't even be fair to call liba a libc at all since it doesn't come close to implementing a significant portion of the standard. However, we do need some functionality usually provided by libc, so instead of reinventing the wheel we just implement the same entities (types, functions, etc…).