calculator/src/CalcManager/CEngine
Rudy Huyn 7a7ceb5888 Modify how modulo is calculated in Normal and Scientific mode. (#412)
## Fixes #111

> The modulo operator on this calculator gives the result that is different to the most used calculators.

The current `modrate` function is the equivalent of rem(...)/remainder(...), not mod(...)/modulo(...) available in some popular Math apps. 

### Description of the changes:
- rename `modrate` in `remrate` to be more accurate.
- add `modrate`, calculating modulo similarly to Matlab, Bing, Google calculator, Maxima, Wolfram Alpha and Microsoft Excel 
- Add `RationalMath::Mod` using `modrate` as an alternative to `Rational::operator%` using `remrate`
- Add a helper `SIGN` to retrieve the sign of a `Rational`.
- modify `CalcEngine` to use `modrate` in Normal and Scientific mode and `remrate` in Programmer mode.

### How changes were validated:
- manually and unit tests added
2019-04-16 17:17:24 -07:00
..
calc.cpp Simplify some of the calc engine string logic (#449) 2019-04-11 15:20:01 -07:00
CalcInput.cpp Replace custom types with standard ones (#212) 2019-03-26 14:30:46 -07:00
CalcUtils.cpp Replace custom types with standard ones (#212) 2019-03-26 14:30:46 -07:00
History.cpp Replace custom types with standard ones (#212) 2019-03-26 14:30:46 -07:00
Number.cpp Replace custom types with standard ones (#212) 2019-03-26 14:30:46 -07:00
Rational.cpp Modify how modulo is calculated in Normal and Scientific mode. (#412) 2019-04-16 17:17:24 -07:00
RationalMath.cpp Modify how modulo is calculated in Normal and Scientific mode. (#412) 2019-04-16 17:17:24 -07:00
scicomm.cpp Improve the support of Narrator with parenthesis (#368) 2019-04-15 09:31:02 -07:00
scidisp.cpp Replace custom types with standard ones (#212) 2019-03-26 14:30:46 -07:00
scifunc.cpp Replace custom types with standard ones (#212) 2019-03-26 14:30:46 -07:00
scioper.cpp Modify how modulo is calculated in Normal and Scientific mode. (#412) 2019-04-16 17:17:24 -07:00
sciset.cpp Replace custom types with standard ones (#212) 2019-03-26 14:30:46 -07:00