1 package yawn.nn.appart; 2 3 import yawn.util.Pattern; 4 5 /*** 6 * An output layer gain control. 7 * 8 * <p>$Id: GainControlUnitOnOutput.java,v 1.9 2005/05/09 11:04:55 supermarti Exp $</p> 9 * 10 * @author Luis Martí (luis dot marti at uc3m dot es) 11 * @version $Revision: 1.9 $ 12 */ 13 14 public class GainControlUnitOnOutput extends GainControlUnit { 15 16 /*** 17 * 18 * @uml.property name="error" 19 */ 20 double error; 21 22 /*** 23 * 24 * @uml.property name="rho" 25 */ 26 public double rho; 27 28 29 public double rhoMin; 30 31 /*** 32 * 33 * @uml.property name="rho" 34 */ 35 public void setVigilanceParameter(double val) { 36 rho = val; 37 } 38 39 /*** 40 * 41 * @uml.property name="rho" 42 */ 43 public double getVigilanceParameter() { 44 return rho; 45 } 46 47 48 public void calculateAbsoluteError(Pattern o, Pattern y) { 49 error = y.dist(o); 50 } 51 52 /*** 53 * 54 * @uml.property name="error" 55 */ 56 public double getError() { 57 return error; 58 } 59 60 public void calculateRelativeError(Pattern o, Pattern y) { 61 calculateAbsoluteError(o, y); 62 error = error / y.norm2(); 63 } 64 65 public GainControlUnitOnOutput(double val) { 66 error = 0.0; 67 rho = val; 68 rhoMin = val; 69 } 70 71 public boolean fires() { 72 return error > rho; 73 } 74 75 }