/* GeoGebra - Dynamic Mathematics for Everyone http://www.geogebra.org This file is part of GeoGebra. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. */ package org.geogebra.common.kernel.arithmetic; import org.geogebra.common.kernel.Kernel; import org.geogebra.common.kernel.StringTemplate; /** * Interface for GeoFunction and GeoFunctionNVar * * @author Markus * */ public interface FunctionalNVar extends Evaluate2Var { /** * @param vals * values of variables * @return value at vals */ public double evaluate(double[] vals); /** * @return function */ @Override public FunctionNVar getFunction(); /** * @return list of inequalities */ public IneqTree getIneqs(); /** * Returns true iff the function is boolean * * @return true iff the function is boolean */ public boolean isBooleanFunction(); // public GeoFunctionNVar getGeoDerivative(int order, int nvar); /** * @param tpl * string template * @return comma separated variable names */ @Override public String getVarString(StringTemplate tpl); /** * @return function expression */ @Override public ExpressionNode getFunctionExpression(); /** * @return whether this function is defined or not */ @Override public boolean isDefined(); /** * @param label * new label */ public void setLabel(String label); /** * @return function variables */ public FunctionVariable[] getFunctionVariables(); /** * @return kernel */ public Kernel getKernel(); /** * For GeoElements sets the usual defined flag, also works for * ValidExpressions * * @param b * whether this is defined */ public void setDefined(boolean b); }