Like sort.Search, use "h := int(uint(i+j) >> 1)" style code to calculate
the median.
Change-Id: Ifb1a19dde1c6ed6c1654bc642fc9565a8b6c5fc4
GitHub-Last-Rev:
e2213b738832f1674948d6507f40e2c0b98cb972
GitHub-Pull-Request: golang/go#62503
Reviewed-on: https://go-review.googlesource.com/c/go/+/526496
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
lo := 0
hi := len(rune) / 2
for lo < hi {
- m := lo + (hi-lo)/2
+ m := int(uint(lo+hi) >> 1)
if c := rune[2*m]; c <= r {
if r <= rune[2*m+1] {
return m
lo := 0
hi := len(tx)
for hi-lo > 1 {
- m := lo + (hi-lo)/2
+ m := int(uint(lo+hi) >> 1)
lim := tx[m].when
if sec < lim {
end = lim
lo := 0
hi := len(ranges)
for lo < hi {
- m := lo + (hi-lo)/2
+ m := int(uint(lo+hi) >> 1)
range_ := &ranges[m]
if range_.Lo <= r && r <= range_.Hi {
return range_.Stride == 1 || (r-range_.Lo)%range_.Stride == 0
lo := 0
hi := len(ranges)
for lo < hi {
- m := lo + (hi-lo)/2
+ m := int(uint(lo+hi) >> 1)
range_ := ranges[m]
if range_.Lo <= r && r <= range_.Hi {
return range_.Stride == 1 || (r-range_.Lo)%range_.Stride == 0
lo := 0
hi := len(caseRange)
for lo < hi {
- m := lo + (hi-lo)/2
+ m := int(uint(lo+hi) >> 1)
cr := caseRange[m]
if rune(cr.Lo) <= r && r <= rune(cr.Hi) {
delta := cr.Delta[_case]
lo := 0
hi := len(caseOrbit)
for lo < hi {
- m := lo + (hi-lo)/2
+ m := int(uint(lo+hi) >> 1)
if rune(caseOrbit[m].From) < r {
lo = m + 1
} else {
lo := 0
hi := len(ranges)
for lo < hi {
- m := lo + (hi-lo)/2
+ m := int(uint(lo+hi) >> 1)
range_ := &ranges[m]
if range_.Lo <= r && r <= range_.Hi {
return (r-range_.Lo)%range_.Stride == 0