Brussels / 3 & 4 February 2024


How much math can you fit in 700K?

Last year, I presented DB48X, an open-source firmware for the DM42 and DM32 calculators from SwissMicros. The goal is to create the best scientific programmable calculator for engineers, based on (and improving upon) the user experience of calculators such as the HP48 series.

The DM42 has a serious limitation: there is about 700K of available flash space for the program, and about 70K of available RAM. So the question is: how much math can we fit in 700K.

This year, I would like to demonstrate what already works, including support for variable precision numbers (integers and decimal numbers), based numbers, complex numbers, vectors and matrices, symbolic computations, numerical integration and solving, engineering units, plots and charts, data processing, and quasi-complete support for RPL programming and debugging.

The focus of the talk would be on how to use C++ to write really compact and efficient code, notably three interesting points:

1/ C++ and garbage collection? Huh? (The DB48X object model)

2/ Using template meta-programming to generate data tables representing symbolic expressions and RPL programs

3/ Performance tuning vs. code space

I will also share some of the funniest or most interesting bugs I ran into (e.g.: It runs on USB power, but halts when on battery)


Photo of Christophe de Dinechin Christophe de Dinechin