Package org.boris.expr.function.excel

Source Code of org.boris.expr.function.excel.SUMX2MY2

package org.boris.expr.function.excel;

import org.boris.expr.Expr;
import org.boris.expr.ExprArray;
import org.boris.expr.ExprDouble;
import org.boris.expr.ExprError;
import org.boris.expr.ExprException;
import org.boris.expr.function.AbstractFunction;

public class SUMX2MY2 extends AbstractFunction
{
    public Expr evaluate(Expr[] args) throws ExprException {
        assertArgCount(args, 2);

        Expr eX = evalArg(args[0]);
        if (!(eX instanceof ExprArray))
            return ExprError.VALUE;
        Expr eY = evalArg(args[1]);
        if (!(eY instanceof ExprArray))
            return ExprError.VALUE;

        ExprArray arrayX = (ExprArray) eX;
        ExprArray arrayY = (ExprArray) eY;
        if (arrayY.length() != arrayX.length())
            return ExprError.NA;

        int len = arrayX.length();
        double sum = 0;
        for (int i = 0; i < len; i++) {
            sum += eval(asDouble(arrayX, i), asDouble(arrayY, i));
        }

        return new ExprDouble(sum);
    }

    protected double eval(double x, double y) {
        return Math.pow(x, 2) - Math.pow(y, 2);
    }
}
TOP

Related Classes of org.boris.expr.function.excel.SUMX2MY2

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.