1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.commons.math4.legacy.optim; 18 19 /** 20 * Base class for all convergence checker implementations. 21 * 22 * @param <PAIR> Type of (point, value) pair. 23 * 24 * @since 3.0 25 */ 26 public abstract class AbstractConvergenceChecker<PAIR> 27 implements ConvergenceChecker<PAIR> { 28 /** 29 * Relative tolerance threshold. 30 */ 31 private final double relativeThreshold; 32 /** 33 * Absolute tolerance threshold. 34 */ 35 private final double absoluteThreshold; 36 37 /** 38 * Build an instance with a specified thresholds. 39 * 40 * @param relativeThreshold relative tolerance threshold 41 * @param absoluteThreshold absolute tolerance threshold 42 */ 43 public AbstractConvergenceChecker(final double relativeThreshold, 44 final double absoluteThreshold) { 45 this.relativeThreshold = relativeThreshold; 46 this.absoluteThreshold = absoluteThreshold; 47 } 48 49 /** 50 * @return the relative threshold. 51 */ 52 public double getRelativeThreshold() { 53 return relativeThreshold; 54 } 55 56 /** 57 * @return the absolute threshold. 58 */ 59 public double getAbsoluteThreshold() { 60 return absoluteThreshold; 61 } 62 63 /** 64 * {@inheritDoc} 65 */ 66 @Override 67 public abstract boolean converged(int iteration, 68 PAIR previous, 69 PAIR current); 70 }