|
Boost : |
Subject: Re: [boost] [fixed_point] First presentation from GSoC 2015 and more
From: Christopher Kormanyos (e_float_at_[hidden])
Date: 2016-10-15 16:59:09
>> Hello Boost developers,
>> A partial implementation of fixed-point in a Boost-like>> style based on proposal N3352 is now available.
> There has been a great deal of discussion of fixed-point libraries over
> the years on the the boost devel list going back to at least 2007. I
> hope you've taken the time to explore the archives.
> For example: http://lists.boost.org/Archives/boost/2013/02/200690.php
Thank you for pointing that out. Yes, I remember that threadand we were involved in it. It partly helped motivate theGSoC15 project.
Best regards, Chris.
On Saturday, October 15, 2016 6:13 PM, Michael Marcin <mike.marcin_at_[hidden]> wrote:
On 10/14/2016 12:11 PM, John McFarlane wrote:
>>
>>> I discuss P0106R0 (a revision to N3352) in my paper, the latest draft of
>>> which is always available here: https://github.com/
>>> johnmcfarlane/fixed_point/blob/master/doc/p0037.md#p0106
I once wrote and shipped a fixed-point software renderer. Granted that
was about 9 years ago.
There has been a great deal of discussion of fixed-point libraries over
the years on the the boost devel list going back to at least 2007. I
hope you've taken the time to explore the archives.
For example: http://lists.boost.org/Archives/boost/2013/02/200690.php
I read through P0106R0 but I came away feeling I knew almost nothing
about what the actual implementation would be.
I looked around the code and documentation on github as well. After
about 30 minutes it started to make some sense and looks pretty nice.
I couldn't figure out answers to some basic questions.
How does division work? Does it promote 32 -> 64 before division?
Does mixed fixed arithmetic work? i.e. s16.16 * s24.8?
Is the result of an operation necessarily the same as the operands?
 - For example its sometimes useful to do s16.16 * s16.16 -> s24.8.
How does one convert between different fixed-point representations?
How does one convert raw fixed-point integers <-> fixed-point class?
Note: the doxygen documentation for convert to float operator does not
say it's explicit, that worried me greatly but I saw it is marked as
explicit in the code.
I can't find the numeric_limits specialization.
I can't find the cmath functions.
At least a subset was crucial for my past work:
 * abs
 * fmod
 * floor
 * ceil
 * sqrt
 * cos
 * sin
 * atan2
I never did get a generic trig functions implementation.
IIRC our implementation used lookup tables and CORDIC algorithm for just
a handful of formats.
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk