override def nullSafeEval()

in src/main/scala/org/apache/spark/sql/datasketches/kll/expressions/KllDoublesSketchExpressions.scala [272:284]


  override def nullSafeEval(sketchInput: Any, splitPointsInput: Any, isInclusiveInput: Any): Any = {
    val sketchBytes = sketchInput.asInstanceOf[Array[Byte]]
    val splitPoints = splitPointsInput.asInstanceOf[GenericArrayData].toDoubleArray()
    val sketch = KllDoublesSketch.wrap(Memory.wrap(sketchBytes))

    val result: Array[Double] =
      if (isPmf) {
        sketch.getPMF(splitPoints, if (isInclusive) QuantileSearchCriteria.INCLUSIVE else QuantileSearchCriteria.EXCLUSIVE)
      } else {
        sketch.getCDF(splitPoints, if (isInclusive) QuantileSearchCriteria.INCLUSIVE else QuantileSearchCriteria.EXCLUSIVE)
      }
    new GenericArrayData(result)
  }