Arithmetic/Rational: Difference between revisions

m (Automated syntax highlighting fixup (second round - minor fixes))
Line 2,201:
'''Unary'''
* `rabs` for unary `abs`
* `rfloor` like `floor`
* `rinv` for unary inverse
* `rminus` for unary minus
Line 2,398 ⟶ 2,399:
end) | sub("0+$";"")
end
end;
 
# Assume . is in canonical form
def rfloor:
if 0 == .n or (0 < .n and .n < .d) then r(0;1)
elif 0 < .n or (.n % .d == 0) then .d as $d | r(.n | idivide($d); 1)
else rminus( r( - .n; .d) | rfloor | rminus; 1)
end;
 
2,442

edits