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 MathAtan2 { private MathAtan2() { } public static Term dispatch(List params) { switch (params.length()) { case 1: Number y = params.head().toNumber(); params = params.tail(); Number x = params.head().toNumber(); return atan2_1(y, x); default: throw Error.badarg; } } /** * atan2 * * https://en.wikipedia.org/wiki/Inverse_trigonometric_functions */ public static Float atan2_1(Number y, Number x) { return Float.of(Math.atan2(y.toBigDecimal().doubleValue(), x.toBigDecimal().doubleValue())); } }