Optimize MLRow/MLValue


Currently MLValue is a scala object with fairly high overhead (case class + Option[]). For the common case where features are dense or sparse floats/doubles, this is overkill. Avoid materializing these values whenever possible, and optimize common mathematical operations across them (.toVector should probably just be a pointer dereference) for both sparse and dense data.


Evan Sparks


Evan Sparks