in core/src/main/scala/com/spotify/featran/transformers/Normalizer.scala [68:81]
override def featureDimension(c: Int): Int = c
override def featureNames(c: Int): Seq[String] = names(c)
override def buildFeatures(a: Option[Array[Double]], c: Int, fb: FeatureBuilder[_]): Unit =
a match {
case Some(x) =>
if (x.length != c) {
fb.skip(c)
fb.reject(this, FeatureRejection.WrongDimension(c, x.length))
} else {
val dv = DenseVector(x)
fb.add[Array](names(c), (dv / norm(dv, p)).data)(ArraySeq.unsafeWrapArray)
}
case None => fb.skip(c)
}