trait Steps extends AnyRef
Some utilities for generating exponential sequences of integers that can be used as e.g. histogram-bucket boundaries.
- Alphabetic
- By Inheritance
- Steps
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
geometricSteps(maxDepth: Int, N: Int = 100): SortedSet[Int]
Divide [0, maxDepth] into N geometrically-evenly-spaced steps (of size ≈maxDepth^(1/N)).
Divide [0, maxDepth] into N geometrically-evenly-spaced steps (of size ≈maxDepth^(1/N)).
Until the k-th step is bigger than k, the whole number k is used in its stead.
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
roundNumbers(maxDepth: Int): SortedSet[Int]
Produce a set of "round numbers" between 0 and a provided N, inclusive.
Produce a set of "round numbers" between 0 and a provided N, inclusive.
Coverage is relatively dense but the total number of sampled/returned integers is still O(log(N)) in the input N; specifically, 35 integers are returned in each factor-of-10 window (detailed below).
The absolute difference between consecutive integers is non-decreasing over the entire range and, (after the [0,10] interval), no two consecutive integers returned are more than 10% different from one another.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, base case: include all of [0, 10]. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, step by one from 10% to 20% of the next power of 10 (100 here). 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, step by two from 20% to 50% of the next power of 10. 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, step by five from 50% to 100% of the next power of 10.
…then repeat the [10, 95] portion, multiplied by powers of 10:
100, 110, 120, 130, 140, 150, 160, 170, 180, 190, this is 10x the "steps by one" section above. 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, likewise, 10x the "steps by two" from above.
…etc.
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )