/**
   * @param cons construction
   * @param label label for output
   * @param n function parameter
   * @param f function
   */
  public AlgoTangentFunctionNumber(Construction cons, String label, NumberValue n, GeoFunction f) {
    super(cons);
    this.n = n;
    ngeo = n.toGeoElement();
    this.f = f;

    tangent = new GeoLine(cons);
    T = new GeoPoint(cons);
    tangent.setStartPoint(T);

    // derivative of f
    // now uses special non-CAS version of algo
    algo = new AlgoDerivative(cons, f, true);
    deriv = (GeoFunction) algo.getResult();
    cons.removeFromConstructionList(algo);

    setInputOutput(); // for AlgoElement
    compute();
    tangent.setLabel(label);
  }
 @Override
 protected void setInputOutput() {
   setOnlyOutput(polynomial);
   input = new GeoElement[] {degree.toGeoElement(), min.toGeoElement(), max.toGeoElement()};
   setDependencies();
 }