package org.matheclipse.core.reflection.system;
import org.matheclipse.core.eval.exception.Validate;
import org.matheclipse.core.eval.interfaces.AbstractFunctionEvaluator;
import org.matheclipse.core.expression.F;
import org.matheclipse.core.interfaces.IAST;
import org.matheclipse.core.interfaces.IExpr;
public class Inner extends AbstractFunctionEvaluator {
public Inner() {
}
@Override
public IExpr evaluate(final IAST ast) {
Validate.checkRange(ast, 4, 5);
if ((ast.get(2).isVector() < 0) || (ast.get(3).isVector() < 0)) {
return null;
}
IAST result;
if (ast.size() == 4) {
result = F.ast(F.Plus);
} else {
result = F.ast(ast.get(4));
}
IAST l2 = (IAST) ast.get(2);
IAST l3 = (IAST) ast.get(3);
if (l2.size() != l2.size()) {
return null;
}
IAST temp;
for (int i = 1; i < l2.size(); i++) {
temp = F.ast(ast.get(1));
temp.add(l2.get(i));
temp.add(l3.get(i));
result.add(temp);
}
return result;
}
}
Ads help maintain this website.