Div, mod, quot and rem differences
Posted: 25 Jun 2015 8:36
What are the differences between the following operators:-
- div and quot ?
- mod and rem ?
- div and quot ?
- mod and rem ?
Visual Prolog Discussion forums
https://discuss.visual-prolog.com/
Code: Select all
B div C = (B-C) div C - 1
Code: Select all
predicates
% 2015.07.07. Modulus with real arguments and results>=0.
realModU:(real Divided, ureal Divisor) -> ureal Modulus.
realModR:(real Divided, real Divisor) -> ureal Modulus.
clauses
% 2015.07.07. Modulus with real arguments and results>=0.
realModU(Divided,Divisor) = Divided-Divisor*floorToReal(Divided/Divisor).
realModR(Divided,Divisor) = Divided-abs(Divisor)*floorToReal(Divided/abs(Divisor)).
Code: Select all
predicates
% 2015.07.07. Modulus with real arguments and results>=0.
realModP:(real Divided, positive Divisor) -> ureal Modulus. % 2015.07.19.
realModU:(real Divided, ureal Divisor) -> ureal Modulus.
realModR:(real Divided, real Divisor) -> ureal Modulus.
clauses
% 2015.07.19. Modulus with real arguments and results>=0.
realModP(Divided,Divisor) = Divisor*CorrectedFraction :-
Fraction=fraction(Divided/Divisor),
if Fraction<0 then
CorrectedFraction=1+Fraction %<=== ESSENCE OF CORRECTION
else
CorrectedFraction=Fraction
end if.
realModU(Divided,Divisor) = Divisor*CorrectedFraction :-
Fraction=fraction(Divided/Divisor),
if Fraction<0 then
CorrectedFraction=1+Fraction
else
CorrectedFraction=Fraction
end if.
realModR(Divided,Divisor) = realModU(Divided,abs(Divisor)).
Code: Select all
if Fraction<0 then
CorrectedFraction=1+Fraction
else
CorrectedFraction=Fraction
end if.
Code: Select all
Code: Select all