samer@0: /* samer@0: * Copyright (c) 2000, Samer Abdallah, King's College London. samer@0: * All rights reserved. samer@0: * samer@0: * This software is provided AS iS and WITHOUT ANY WARRANTY; samer@0: * without even the implied warranty of MERCHANTABILITY or samer@0: * FITNESS FOR A PARTICULAR PURPOSE. samer@0: */ samer@0: samer@0: package samer.maths.opt; samer@0: import samer.maths.*; samer@0: samer@0: // this used to happen in QuasiNewton samer@0: // after any step was taken (including during line searches) samer@0: // of-course, S.h cannot change during a line search samer@0: samer@0: public class XFConvergence samer@0: { samer@0: double XTOL, FTOL; // various tolerances samer@0: samer@0: public void setXTolerance( double tolx) { XTOL=tolx; } samer@0: public void setFTolerance( double tolf) { FTOL=tolf; } samer@0: samer@0: public boolean isSatisfied(State S) samer@0: { samer@0: return (Util.maxabs(S.h)<2*XTOL) && (Math.abs(S.P1.s)<2*FTOL); samer@0: } samer@0: }