in core/src/main/scala/com/spotify/featran/FeatureSpec.scala [340:359]
def featureDimension(c: ARRAY): Int = {
require(n == c.length)
var sum = 0
var i = 0
val m = mutable.Map.empty[String, Int]
while (i < n) {
val f = features(i)
val size = f.unsafeFeatureDimension(c(i))
sum += size
val name = f.transformer.name
if (crossings.keys.contains(name)) {
m(name) = size
}
i += 1
}
crossings.map.keys.foreach { case (n1, n2) =>
sum += m(n1) * m(n2)
}
sum
}