in core/src/main/scala/com/spotify/featran/transformers/QuantileDiscretizer.scala [93:107]
override def featureDimension(c: C): Int = numBuckets
override def featureNames(c: C): Seq[String] = names(numBuckets)
override def buildFeatures(a: Option[Double], c: C, fb: FeatureBuilder[_]): Unit = a match {
case Some(x) =>
val (m, min, max) = c
val e = m.higherEntry(x)
val offset = if (e == null) numBuckets - 1 else e.getValue
fb.skip(offset)
fb.add(nameAt(offset), 1.0)
fb.skip(numBuckets - 1 - offset)
if (x < min || x > max) {
fb.reject(this, FeatureRejection.OutOfBound(min, max, x))
}
case None => fb.skip(numBuckets)
}