AFC - Abacus Formula Compiler for Java

Decompiled Code For NORMDIST( C67, D67, E67, F67 )

The expression

=NORMDIST( C67, D67, E67, F67 )

is compiled to the following class(es):

package org.formulacompiler.gen;
import org.formulacompiler.runtime.Computation;
import org.formulacompiler.runtime.internal.Environment;
import org.formulacompiler.runtime.internal.RuntimeDouble_v2;
import org.formulacompiler.runtime.internal.Runtime_v2;
import org.formulacompiler.tests.reference.base.Inputs;
import org.formulacompiler.tests.reference.base.Outputs;

final class $Root extends Outputs implements Computation
{
    private final Inputs $inputs;
    final Environment $environment;

    $Root(Inputs inputs, Environment environment) {
        $environment = environment;
        $inputs = inputs;
    }

    final double get$0() {
        double d;
        if (get$3() <= 0.0) {
            Runtime_v2.fun_ERROR("#NUM! because sigma <= 0 in NORMDIST");
            d = (double) -1;
        } else
            d = (get$4() != 0.0
                 ? (Math.abs((get$1() - get$2()) / get$3()
                             * 0.7071067811865476) < 0.7071067811865476
                    ? (0.5
                       + 0.5 * RuntimeDouble_v2.fun_ERF((get$1() - get$2())
                                                        / get$3()
                                                        * 0.7071067811865476))
                    : (get$1() - get$2()) / get$3() * 0.7071067811865476 > 0.0
                    ? 1.0 - 0.5 * (RuntimeDouble_v2.fun_ERFC
                                   (Math.abs((get$1() - get$2()) / get$3()
                                             * 0.7071067811865476)))
                    : 0.5 * (RuntimeDouble_v2.fun_ERFC
                             (Math.abs((get$1() - get$2()) / get$3()
                                       * 0.7071067811865476))))
                 : (Math.exp((get$1() - get$2()) * (get$1() - get$2())
                             / (-2.0 * get$3() * get$3()))
                    / (2.5066282746310002 * get$3())));
        return d;
    }

    public final double dbl() {
        return get$0();
    }

    final double get$1() {
        return $inputs.dbl(0);
    }

    final double get$2() {
        return $inputs.dbl(1);
    }

    final double get$3() {
        return $inputs.dbl(2);
    }

    final double get$4() {
        return RuntimeDouble_v2.booleanToNum($inputs.bool(3));
    }
}