GLSL Shaders -> Files (instead of #define) So we can edit them without going insane.

- [D] src/tests/represent.cpp

Fix the Floating Point Pun intended I had two bugs that cancelled each other out and made a self consistent float that was wrong except for all the ones I compared it to! David helped fix it.

- [D] src/tests/represent.cpp

Test representations of floats working* The boat is floating for now, we just need to make sure it doesn't sink. BitsToReal and BitsFromReal are consistent with each other... *Actually looking at the results, for <5,10> vs IEEE half precision... something is wrong The plot still looks float-ish though.

- [D] src/tests/represent.cpp

Yeah it's broken

- [D] src/tests/represent.cpp

Change float representations to be more IEEE-ish Implemented BitsToReal WRONGLY for like 6 hours. It's probably still wrong. It works for 8 bit (2,5) floats but probably only because I got lucky. I am a bit shit at bit shifting.

- [D] src/tests/represent.cpp

Tester for exploring the mapping of a float to a real To visualise the mapping and how you get the trade off between precision and range. Use low precision, custom, float representations. Convert via memcpy(3) and copious bit shifting to a Real Even though Real is actually also a float (default double) at the moment, it's good enough to treat as being an exact representation when the custom float is 8 bits. Besides, gnuplot can only plot within double precision anyway. I say "custom" because I have an explicit sign bit for the exponent, which itself is unsigned. I *think* standard representations have the exponent be a signed int so the sign bit is implied. Not sure why the mantissa is treated as being unsigned with an explicit sign bit but the exponent isn't? HFPA says the exponent is between e_min and e_max which is a bit confusing. Is e_min != -e_max normally? Will do some plots and experiment a bit after sleep.

- [D] src/tests/represent.cpp