In response to #179, I checked the support status and performance of some other functions. The (incomplete) list is shown below. ## To be supported - [ ] `^(::FixedPoint, ::Integer)` for more accuracy - e.g. `N0f8(0.8)^3 != N0f8(64/125)` - [x] `bitstring` (PR #195) - [x] `big` (Issue #184, PR #186) - [x] `clamp` (Issue #179, PR #194) - [x] `copysign(x::Fixed, y)` and `flipsign(x::Fixed, y)` for speed performance (PR #187) - [ ] `fma` and `muladd` - [x] `rationalize` (Issue #184, PR #186) - [x] 3-arg `rem` and `div` (`cld`) (PR #226, PR #230) - [ ] `rem2pi` and `mod2pi` - [x] `signbit` for speed performance (for `Normed`) (PR #187) ## To be dropped - [x] `abs(::Normed)` specialization is not helpful. (PR #187) - The fallback implementation works fine. - [x] `copysign(x::Normed, y)` and `flipsign(x::Normed, y)` should be throw error. (PR #187) ## TBD - `maxintfloat` (`maxintfixed` and `minintfixed`?) - `parse` and `tryparse` for fixed point numbers with suffix - bit shift operators (Issue #250) - I think they are usuful but somewhat dangerous. - `numerator` and `denominator` - `widemul`
In response to #179, I checked the support status and performance of some other functions. The (incomplete) list is shown below.
To be supported
^(::FixedPoint, ::Integer)for more accuracyN0f8(0.8)^3 != N0f8(64/125)bitstring(PR AddbitstringforFixedPointnumbers #195)big(Issue Addingbig(::FixedPoint)andrationalize(::FixedPoint)#184, PR Addbig()andrationalize()forFixedPoint#186)clamp(Issue performance on clamp #179, PR Optimizeclamp#194)copysign(x::Fixed, y)andflipsign(x::Fixed, y)for speed performance (PR Specialize sign-related functions #187)fmaandmuladdrationalize(Issue Addingbig(::FixedPoint)andrationalize(::FixedPoint)#184, PR Addbig()andrationalize()forFixedPoint#186)remanddiv(cld) (PR Add checked, wrapping and saturating arithmetic for div/cld/fld #226, PR Add checked, wrapping and saturating arithmetic forrem/mod#230)rem2piandmod2pisignbitfor speed performance (forNormed) (PR Specialize sign-related functions #187)To be dropped
abs(::Normed)specialization is not helpful. (PR Specialize sign-related functions #187)copysign(x::Normed, y)andflipsign(x::Normed, y)should be throw error. (PR Specialize sign-related functions #187)TBD
maxintfloat(maxintfixedandminintfixed?)parseandtryparsefor fixed point numbers with suffixbit shift operators (Issue [Feature Request] shifting with << and >> #250)
numeratoranddenominatorwidemul