Re:Why does e to pi i equal -1? (2015) [video]
by jacobolus on Monday February 13, 2017 @08:52PM
(#13640559)
I’m interested in representing angles / points on the circle; 3d unit vectors / points on the sphere; unit quaternions / points on the 3-sphere using 1, 2, or 3 relatively low-resolution posits, under stereographic projection.
How efficient do you think regular C or GPU code (on existing hardware) can be made for compressing a 32-bit float to e.g. a 16-bit posit, and for expanding the posit back into a 32-bit float?
Re:Why does e to pi i equal -1? (2015) [video]
by dnautics on Tuesday February 14, 2017 @05:10AM
(#13642483)
I don't think it can be made that efficient in software. Is there a particular reason why you need 16 bits? A 32-bit float is going to be better than a 16-bit posit almost always (posits are better their equivalently sized float, but they're not that good) and once it's in posit representation do you have a way of doing mathematical operations on them?
Re:Why does e to pi i equal -1? (2015) [video]
by jacobolus on Tuesday February 14, 2017 @06:03AM
(#13642666)
This is just for data compression, not for computation directly. 32 bits is often overkill for transmission/storage of rotations, unit vectors, geographical locations, unit quaternions, and the like. Depending on the use case 8 bits might be enough, or 12, or 16.
To actually do computation I would convert the posits back into 32-bit floats (or e.g. in the Javascript case, 64-bit floats), and then take the inverse stereographic projection.
[Stereographic projection is extremely cheap; for each data point only requires one division and some additions and multiplications.]
I’ll do some experimenting at some point.
I do have a hardware architecture in mind for how to very effectively and efficiently execute machine learning calculations using posits.