package org.jerlang.stdlib.math;
import org.jerlang.erts.erlang.Error;
import org.jerlang.type.Float;
import org.jerlang.type.List;
import org.jerlang.type.Number;
import org.jerlang.type.Term;
public class MathPow {
private MathPow() {
}
public static Term dispatch(List params) {
switch (params.length()) {
case 2:
Number x = params.head().toNumber();
params = params.tail();
Number y = params.head().toNumber();
return pow_2(x, y);
default:
throw Error.badarg;
}
}
public static Float pow_2(Number x, Number y) {
return Float.of(Math.pow(x.toBigDecimal().doubleValue(), y.toBigDecimal().doubleValue()));
}
}