public AlgoIntegralFunctions(Construction cons, String label, 
							GeoFunction f, GeoFunction g,
							NumberValue a, NumberValue b) {
		super(cons);
		this.f = f;
		this.g = g;		
		this.a = a;
		this.b = b;
		ageo = a.toGeoElement();		
		bgeo = b.toGeoElement();
		
		// helper algorithms for integral f and g		
		AlgoIntegralDefinite algoInt = new AlgoIntegralDefinite(cons, f, a, b);
		cons.removeFromConstructionList(algoInt);
		intF = algoInt.getIntegral();
		
		algoInt = new AlgoIntegralDefinite(cons, g, a, b);
		cons.removeFromConstructionList(algoInt);
		intG = algoInt.getIntegral();
		
		// output: intF - intG
		n = new GeoNumeric(cons);				
				
		setInputOutput(); // for AlgoElement		
		compute();
		n.setLabel(label);
	}
  @Override
  public final void compute() {
    double a = t0.getValue();
    double b = t1.getValue();

    double lenVal = Math.abs(AlgoIntegralDefinite.numericIntegration(lengthCurve, a, b));
    length.setValue(lenVal);
  }