AFC - Abacus Formula Compiler for Java

Decompiled Code For LOGNORMDIST( C136, D136, E136 )

The expression

=LOGNORMDIST( C136, D136, E136 )

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$1() <= 0.0) {
            Runtime_v2.fun_ERROR("#NUM! because x <= 0 in LOGNORMDIST");
            d = (double) -1;
        } else if (get$3() <= 0.0) {
            Runtime_v2.fun_ERROR("#NUM! because sigma <= 0 in LOGNORMDIST");
            d = (double) -1;
        } else
            d = (Math.abs((RuntimeDouble_v2.fun_LN(get$1()) - get$2())
                          / get$3() * 0.7071067811865476) < 0.7071067811865476
                 ? 0.5 + 0.5 * RuntimeDouble_v2.fun_ERF((RuntimeDouble_v2
                                                             .fun_LN(get$1())
                                                         - get$2())
                                                        / get$3()
                                                        * 0.7071067811865476)
                 : ((RuntimeDouble_v2.fun_LN(get$1()) - get$2()) / get$3()
                    * 0.7071067811865476) > 0.0
                 ? 1.0 - 0.5 * (RuntimeDouble_v2.fun_ERFC
                                (Math.abs((RuntimeDouble_v2.fun_LN(get$1())
                                           - get$2())
                                          / get$3() * 0.7071067811865476)))
                 : 0.5 * (RuntimeDouble_v2.fun_ERFC
                          (Math.abs((RuntimeDouble_v2.fun_LN(get$1())
                                     - get$2())
                                    / get$3() * 0.7071067811865476))));
        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);
    }
}