public static double[] computeMA(double[] input, int period, int maType) { MInteger begin = new MInteger(); MInteger length = new MInteger(); double[] out = new double[input.length - period + 1]; switch (maType) { case MA_TYPE_SMA: core.sma(0, input.length - 1, input, period, begin, length, out); break; case MA_TYPE_EMA: core.ema(0, input.length - 1, input, period, begin, length, out); break; case MA_TYPE_WMA: core.wma(0, input.length - 1, input, period, begin, length, out); break; default: throw new RuntimeException("unsupported MaType " + maType); } return out; }