Math::FractionalPart
This Raku module provides several routines to operate with the fractional parts of a number. The *frac
routines also operate on complex numbers.
SYNOPSIS
DESCRIPTION
Frac functions
There are three different algebraic functions that operate on numbers and return their fractional parts. They all return the same result when operating on nonnegative numbers, but all three return different results when operating on negative numbers. See the 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  ⌊x⌋  frac(1.3): 0.7  1 
afrac  x  ⌊x⌋  afrac(1.3): 0.3  2 
ofrac  x  ⌊x⌋⋅sign(x)  ofrac(1.3): 0.3  3 
Other functions
Sometimes it is useful to know the number of digits in the fractional part of a number. For example, in creating tests for operations on numbers, one must often compare results of operations on real numbers when being able to compare to the same numbers of decimal places is required.
Such a function is fracpartdigits
, with alias names of decimalplaces
and ndp
. The functions return the number of decimal digits to the right of the decimal point for a real number.
Notes

See Ref. 1, frac version 1 (per Graham, Knuth, et alii, 1992).

See Ref. 1, frac version 2 (per Dainith, 2004); Ref. 3, p. 7. Consider mnemonic 'a' for 'absolute value' or 'astronomical'.

See Ref. 1, frac version 3 (an odd function); Ref. 2: Wolfram's FractionPart function. Consider mnemonic 'o' for 'odd function'.
References

Wikipedia article on Fractional Part.

Wolfram article on Fractional Part.

Celestial Calculations: A Gentle Introduction to Computational Astronomy, J. L. Lawrence, 2018, MIT Press.
AUTHOR
Tom Browder tbrowder@cpan.org
COPYRIGHT AND LICENSE
© 2021 Tom Browder
This library is free software; you can redistribute it or modify it under the Artistic License 2.0.