Skip to content

Commit

Permalink
simplify outer loop break logic in HBaseCriticalPoint
Browse files Browse the repository at this point in the history
  • Loading branch information
Yan Zhou committed Sep 23, 2015
1 parent 0c0eb1e commit 1c4b131
Showing 1 changed file with 13 additions and 16 deletions.
29 changes: 13 additions & 16 deletions src/main/scala/org/apache/spark/sql/hbase/HBaseCriticalPoint.scala
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import org.apache.spark.sql.types._

import scala.collection.mutable
import scala.collection.mutable.ArrayBuffer
import scala.util.control.Breaks._

object CriticalPointType extends Enumeration {
type CriticalPointType = Value
Expand Down Expand Up @@ -503,23 +502,21 @@ object RangeCriticalPoint {
var newLimit = limit
var cmp = 0
var prevEq = eq
breakable {
while (incr * (newLimit - prevEq) >= 0) {
if (incr * (newLimit - prevEq) < threshold) {
// linear search
mid = prevEq + incr
while (incr * (newLimit - mid) > 0 && cmp == 0) {
prevEq = mid
mid = mid + incr
cmp = comp(src, tgt(mid))
}
break
} else {
mid = (prevEq + newLimit) / 2
while (incr * (newLimit - prevEq) >= 0) {
if (incr * (newLimit - prevEq) < threshold) {
// linear search
mid = prevEq + incr
while (incr * (newLimit - mid) > 0 && cmp == 0) {
prevEq = mid
mid = mid + incr
cmp = comp(src, tgt(mid))
if (cmp == 0) prevEq = mid
else newLimit = mid
}
newLimit = prevEq - incr // break the outer loop
} else {
mid = (prevEq + newLimit) / 2
cmp = comp(src, tgt(mid))
if (cmp == 0) prevEq = mid
else newLimit = mid
}
}
prevEq
Expand Down

0 comments on commit 1c4b131

Please sign in to comment.