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: import samer.core.*; samer@0: samer@0: public class ConstrainedGillMurray extends GillMurray samer@0: { samer@0: State S; samer@0: Constraints C; samer@0: samer@0: public ConstrainedGillMurray(State s, Constraints c) { samer@0: super(s); S=s; C=c; samer@0: } samer@0: samer@0: public void computeHg(double [] g) samer@0: { samer@0: C.zeroInactive(S.h); samer@0: C.mul(S.h,H,g); samer@0: C.negate(S.h); samer@0: S.normh = Util.maxabs(S.h); samer@0: } samer@0: samer@0: public void steepest() { samer@0: C.negate(S.P1.g,S.h); samer@0: C.zeroInactive(S.h); samer@0: S.normh = Util.maxabs(S.h); samer@0: } samer@0: samer@0: public void resetDimension(int k) { samer@0: double [] hk=H0.getArray()[k]; samer@0: for (int i=0; i