[Pkg] The Trunk: Kernel-mt.1412.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Oct 8 07:02:05 UTC 2021
Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-mt.1412.mcz
==================== Summary ====================
Name: Kernel-mt.1412
Author: mt
Time: 27 August 2021, 10:16:40.604421 am
UUID: fdcad3e9-f9f7-fa4d-990a-ac59259860db
Ancestors: Kernel-mt.1411
Fixes rounding for negative receivers and negative arguments. Minor slow-down due to extra sign checks.
=============== Diff against Kernel-eem.1408 ===============
Item was added:
+ ----- Method: Integer>>roundDownTo: (in category 'truncation and round off') -----
+ roundDownTo: aNumber
+ "Overwritten to speed-up integer rounding via modulo instead of using intermediate fractions."
+
+ aNumber isInteger ifFalse: [^ super roundDownTo: aNumber].
+ ^ self - (self \\ aNumber)!
Item was added:
+ ----- Method: Integer>>roundTo: (in category 'truncation and round off') -----
+ roundTo: aNumber
+ "Overwritten to speed-up integer rounding via modulo instead of using intermediate fractions."
+
+ | rem qua |
+ aNumber isInteger ifFalse: [^ super roundUpTo: aNumber].
+ self = 0 ifTrue: [^ 0].
+
+ (rem := self \\ (qua := aNumber abs * self sign)) = 0 ifTrue: [^ self].
+ ^ rem abs >= (qua // 2) abs
+ ifTrue: ["round up" self + qua - rem]
+ ifFalse: ["round down" self - rem]
+ !
Item was added:
+ ----- Method: Integer>>roundUpTo: (in category 'truncation and round off') -----
+ roundUpTo: aNumber
+ "Overwritten to speed-up integer rounding via modulo instead of using intermediate fractions."
+
+ | rem |
+ aNumber isInteger ifFalse: [^ super roundUpTo: aNumber].
+ ^ (rem := self \\ aNumber) ~= 0
+ ifTrue: [self + aNumber - rem]
+ ifFalse: [self]!
More information about the Packages
mailing list