public static FunctionNode newInstance(Function type, GroupingExpression x, GroupingExpression y) {
        return switch (type) {
            case EXP -> new MathExpFunction(x);
            case POW -> new MathPowFunction(x, y);
            case LOG -> new MathLogFunction(x);
            case LOG1P -> new MathLog1pFunction(x);
            case LOG10 -> new MathLog10Function(x);
            case SIN -> new MathSinFunction(x);
            case ASIN -> new MathASinFunction(x);
            case COS -> new MathCosFunction(x);
            case ACOS -> new MathACosFunction(x);
            case TAN -> new MathTanFunction(x);
            case ATAN -> new MathATanFunction(x);
            case SQRT -> new MathSqrtFunction(x);
            case SINH -> new MathSinHFunction(x);
            case ASINH -> new MathASinHFunction(x);
            case COSH -> new MathCosHFunction(x);
            case ACOSH -> new MathACosHFunction(x);
            case TANH -> new MathTanHFunction(x);
            case ATANH -> new MathATanHFunction(x);
            case CBRT -> new MathCbrtFunction(x);
            case HYPOT -> new MathHypotFunction(x, y);
            case FLOOR -> new MathFloorFunction(x);
        };
    }
Defines the different types of math functions that are available.
container-search/src/main/java/com/yahoo/search/grouping/request/MathFunctions.java