[![Actions Status](https://github.com/tbrowder/Math-FractionalPart/workflows/test/badge.svg)](https://github.com/tbrowder/Math-FractionalPart/actions) NAME ==== Math::FractionalPart provides several routines to operate with the fractional parts of a number. All routines also operate on complex numbers. SYNOPSIS ======== ```raku use Math::FractionalPart :afrac; say (afrac -3.2); # Output <<0.2>> say (frac -3.2); # Output <<-0.2>> ``` DESCRIPTION =========== There are three different algebraic functions that operate on numbers and return their fractional parts. They all return the same result when operating on non-negative numbers, but all three return different results when operating on negative numbers. See the [References](#References) for more details. Note that Ref. 2 shows *frac* operating in the *complex plane* as `frac(x + i y) = frac(x) + i frac(y)`. The following table shows the routines that have been implemented in this module.
Name Raku formula Example Notes
frac x - floor(x) frac(-1.3): 0.7 1
afrac abs(x) - floor(abs(x)) afrac(-1.3): 0.3 2
ofrac x - floor(abs(x)) * sign(x) ofrac(-1.3): -0.3 3
Notes ===== 1. See Ref. 1, *frac* version 1 (per Graham, Knuth, et alii, 1992). 2. See Ref. 1, *frac* version 2 (per Dainith, 2004); Ref. 3, p. 7. Consider mnemonic 'a' for 'absolute value' or 'astronomical'. 3. See Ref. 1, *frac* version 3 (an *odd function*); Ref. 2: Wolfram's *FractionPart* function. Consider mnemonic 'o' for 'odd function'. References ========== 1. Wikipedia article on [Fractional Part](https://en.m.wikipedia.org/wiki/Fractional_part). 2. Wolfram article on [Fractional Part](https://mathworld.wolfram.com/FractionalPart.html). 3. *Celestial Calculations: A Gentle Introduction to Computational Astronomy*, J. L. Lawrence, 2018, MIT Press. AUTHOR ====== Tom Browder COPYRIGHT AND LICENSE ===================== © 2021 Tom Browder This library is free software; you can redistribute it or modify it under the Artistic License 2.0.