AFC - Abacus Formula Compiler for Java

Decompiled Code For LOOKUP( C82, D82:F82, G82:I82 )

The expression

=LOOKUP( C82, D82:F82, G82:I82 )

is compiled to the following class(es):

package org.formulacompiler.gen;
import org.formulacompiler.runtime.Computation;
import org.formulacompiler.runtime.FormulaException;
import org.formulacompiler.runtime.internal.Environment;
import org.formulacompiler.runtime.internal.RuntimeDouble_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;
    private boolean $arr$0$init;
    private double[] $constarr$0;

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

    final double get$0() {
        return $idx$0(RuntimeDouble_v2.fun_MATCH_Ascending(get$1(), $arr$0())
                      - 1);
    }

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

    final double[] $arr$0() {
        if (!$arr$0$init) {
            $arr$0$init = true;
            double[] ds = $constarr$0();
            ds[0] = get$2();
            ds[1] = get$3();
            ds[2] = get$4();
            return ds;
        }
        return $constarr$0();
    }

    final double[] $constarr$0() {
        if ($constarr$0 == null)
            $constarr$0 = new double[3];
        return $constarr$0;
    }

    final double $idx$0(int i) {
        switch (i) {
        case 0:
            return get$5();
        case 1:
            return get$6();
        case 2:
            return get$7();
        default:
            throw new FormulaException
                      ("#VALUE/REF! because index is out of range in INDEX");
        }
    }

    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);
    }

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