
For medium digit counts, a fixed, optionally fixed-hybrid container
of std::uint_fast32_t. For very high counts, use an established fast integer representation with its own fast-multiply (like a potential Boost.Multiprecision).
I don't know if I forgot this question. Could the first version of the library be limited to only one builtin underlying representation?
Vicente, we can talk all day---and the next and the next. But right now, we don't have any clarity in fixed-point in the community. And we definitely need it! I think that we will be happy to get a basic start---any start---with the boost quality. I truly believe that you can begin with one (and only one) signed fixed-point class based on a single template parameter that is a signed fixed-width built-in integer type. Remember, we don't have anything. And we should welcome getting something with the boost quality. Check out my code for signed 3.4, 7.8, 15.16, 31.32. It's fast. It might give you ideas about simplicity and efficiency. (Although the division and sqrt need improvement.) It also has a sample for sin(x) and exp(x) for small-argument. It supports std::numeric_limits. I am so busy right now that I got to go on with other stuff. My opinion: Don't aim too high at first. Give the community something. Maybe improve it later. Best regards, Chris.