[squeak-dev] The Inbox: Kernel-mt.1413.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Aug 27 08:20:33 UTC 2021


A new version of Kernel was added to project The Inbox:
http://source.squeak.org/inbox/Kernel-mt.1413.mcz

==================== Summary ====================

Name: Kernel-mt.1413
Author: mt
Time: 27 August 2021, 10:20:30.630421 am
UUID: e12b3fd2-5f27-7642-a3ca-3b303801092c
Ancestors: Kernel-mt.1412

Rewrites last change to make it faster again. Thanks to Stephan (stlu)!

=============== Diff against Kernel-mt.1412 ===============

Item was changed:
  ----- 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 quantum |
+ 	aNumber isInteger ifFalse: [^ super roundTo: aNumber].
+ 	quantum := aNumber abs.
+ 	(rem := self \\ quantum) = 0 ifTrue: [^ self].
+ 	^ (self > 0
+ 		ifTrue: [quantum + 1 // 2 <= rem]
+ 		ifFalse: [quantum // 2 < rem])
+ 			ifTrue: [self + quantum - rem]
+ 			ifFalse: [self - rem]
- 	| 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]
  		!



More information about the Squeak-dev mailing list