public override void Compute(ML.Data.IMLData input, double[] output)
 {
     if(input is ML.Data.Basic.BasicMLData)
         Compute(((ML.Data.Basic.BasicMLData)input).Data, output);
     else
     {
         // TODO: make this more efficient
         var tmp = new double[input.Count];
         input.CopyTo(tmp, 0, input.Count);
         Compute(tmp, output);
     }
 }