/**
   * Construct a function
   *
   * @param cons
   * @param label
   * @param f (x,y) function
   * @param from "from" values for each var
   * @param to "to" values for each var
   */
  public AlgoFunctionNVarND(
      Construction cons, String label, GeoFunctionNVar f, NumberValue[] from, NumberValue[] to) {

    this(cons, from, to);

    inputFunction = f;
    // function = new GeoFunctionNVar(cons, inputFunction.getFunction());//(GeoFunctionNVar)
    // inputFunction.copy();
    function = (GeoFunctionNVar) inputFunction.copy();

    // end of construction
    setInputOutput((NumberValue[]) null, (GeoNumeric[]) null);

    compute();
    function.setLabel(label);
  }