samer@0: package samer.units; samer@0: import samer.core.types.*; samer@0: import samer.tools.*; samer@0: import samer.maths.*; samer@0: samer@0: public class SumFnVec extends FunctionOfVector implements SafeTask samer@0: { samer@0: double [] x, fx; samer@0: DoubleModel out; samer@0: Function f; samer@0: samer@0: public SumFnVec(Function f, VVector x, DoubleModel out) { samer@0: this.x=x.array(); samer@0: this.f=f; samer@0: this.out=out; samer@0: fx=new double[x.size()]; samer@0: } samer@0: samer@0: public void starting() {} samer@0: public void stopping() {} samer@0: public void run() { samer@0: f.apply(x,fx); samer@0: out.set(Mathx.sum(fx)); samer@0: } samer@0: samer@0: public double apply(double [] x) { samer@0: f.apply(x,fx); return Mathx.sum(fx); samer@0: } samer@0: } samer@0: