AFC - Abacus Formula Compiler for Java

Decompiled Code For TTEST( C576:D576, E576:F576, G576, H576 )

The expression

=TTEST( C576:D576, E576:F576, G576, H576 )

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$5() != 1.0 && get$5() != 2.0) {
            Runtime_v2.fun_ERROR("#NUM! because not tails in {1,2} in TTEST");
            d = (double) -1;
        } else if (get$6() == 1.0) {
            double d_0_;
            double d_1_;
            double d_2_;
            double d_3_;
            d = get$7(d_0_ = 2.0, d_1_ = get$1() + get$2(),
                      d_2_ = get$3() + get$4(), d_3_ = get$5());
        } else if (get$6() == 2.0)
            d = (RuntimeDouble_v2.fun_TDIST
                 ((Math.abs((get$1() + get$2()) / 2.0
                            - (get$3() + get$4()) / 2.0)
                   / RuntimeDouble_v2.fun_SQRT(1.0 * ((0.0 + get$1() * get$1()
                                                       + get$2() * get$2()
                                                       - ((get$1() + get$2())
                                                          * (get$1() + get$2())
                                                          / 2.0))
                                                      / 1.0)
                                               + (1.0
                                                  * ((0.0 + get$3() * get$3()
                                                      + get$4() * get$4()
                                                      - ((get$3() + get$4())
                                                         * (get$3() + get$4())
                                                         / 2.0))
                                                     / 1.0)))
                   * 1.4142135623730951),
                  2.0, (int) get$5(), false));
        else if (get$6() == 3.0)
            d = (RuntimeDouble_v2.fun_TDIST
                 ((Math.abs((get$1() + get$2()) / 2.0
                            - (get$3() + get$4()) / 2.0)
                   / RuntimeDouble_v2.fun_SQRT((0.0 + get$1() * get$1()
                                                + get$2() * get$2()
                                                - ((get$1() + get$2())
                                                   * (get$1() + get$2())
                                                   / 2.0)) / 1.0 / 2.0
                                               + (0.0 + get$3() * get$3()
                                                  + get$4() * get$4()
                                                  - ((get$3() + get$4())
                                                     * (get$3() + get$4())
                                                     / 2.0)) / 1.0 / 2.0)),
                  ((((0.0 + get$1() * get$1() + get$2() * get$2()
                      - (get$1() + get$2()) * (get$1() + get$2()) / 2.0)
                     / 1.0 / 2.0)
                    + ((0.0 + get$3() * get$3() + get$4() * get$4()
                        - (get$3() + get$4()) * (get$3() + get$4()) / 2.0)
                       / 1.0 / 2.0))
                   * (((0.0 + get$1() * get$1() + get$2() * get$2()
                        - (get$1() + get$2()) * (get$1() + get$2()) / 2.0)
                       / 1.0 / 2.0)
                      + ((0.0 + get$3() * get$3() + get$4() * get$4()
                          - (get$3() + get$4()) * (get$3() + get$4()) / 2.0)
                         / 1.0 / 2.0))
                   / (((0.0 + get$1() * get$1() + get$2() * get$2()
                        - (get$1() + get$2()) * (get$1() + get$2()) / 2.0)
                       / 1.0 / 2.0
                       * ((0.0 + get$1() * get$1() + get$2() * get$2()
                           - (get$1() + get$2()) * (get$1() + get$2()) / 2.0)
                          / 1.0 / 2.0)
                       / 1.0)
                      + ((0.0 + get$3() * get$3() + get$4() * get$4()
                          - (get$3() + get$4()) * (get$3() + get$4()) / 2.0)
                         / 1.0 / 2.0
                         * ((0.0 + get$3() * get$3() + get$4() * get$4()
                             - (get$3() + get$4()) * (get$3() + get$4()) / 2.0)
                            / 1.0 / 2.0)
                         / 1.0))),
                  (int) get$5(), 1.0 != 0.0));
        else {
            Runtime_v2
                .fun_ERROR("#NUM! because not type in {1, 2, 3} in TTEST");
            d = (double) -1;
        }
        return d;
    }

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

    final double get$7(double d, double d_4_, double d_5_, double d_6_) {
        double d_7_ = 0.0;
        d_7_ += (get$1() - get$3()) * (get$1() - get$3());
        d_7_ += (get$2() - get$4()) * (get$2() - get$4());
        double d_8_;
        double d_9_;
        if ((d_8_ = d * d_7_ - (d_4_ - d_5_) * (d_4_ - d_5_)) <= 0.0) {
            Runtime_v2.fun_ERROR("#DIV/0! in TTEST");
            d_9_ = (double) -1;
        } else {
            double d_10_;
            double d_11_;
            d_9_ = RuntimeDouble_v2.fun_TDIST(d_10_ = (RuntimeDouble_v2
                                                           .fun_SQRT(d - 1.0)
                                                       * Math.abs(d_4_ - d_5_)
                                                       / RuntimeDouble_v2
                                                             .fun_SQRT(d_8_)),
                                              d_11_ = d - 1.0, (int) d_6_,
                                              false);
        }
        return d_9_;
    }

    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 $inputs.dbl(3);
    }

    final double get$5() {
        return $inputs.dbl(4);
    }

    final double get$6() {
        return $inputs.dbl(5);
    }
}