abstractcachingdifffunction.java

来自「Standord Classifier实现了一个基于Java的最大熵分类器。用于」· Java 代码 · 共 56 行

JAVA
56
字号
package edu.stanford.nlp.optimization;import java.util.*;/** @author Dan Klein */public abstract class AbstractCachingDiffFunction implements DiffFunction, HasInitial {  double[] lastX = null;  protected double[] derivative = null;  protected double value = 0.0;  abstract public int domainDimension();  abstract protected void calculate(double[] x);  public double[] initial() {    double[] initial = new double[domainDimension()];    Arrays.fill(initial, 0.0);    return initial;  }  void copy(double[] y, double[] x) {    System.arraycopy(x, 0, y, 0, x.length);  }  void ensure(double[] x) {    if (Arrays.equals(x, lastX))      return;    if (lastX == null)      lastX = new double[domainDimension()];    if (derivative == null)      derivative = new double[domainDimension()];    copy(lastX, x);    calculate(x);  }  public double valueAt(double[] x) {    ensure(x);    return value;  }  double norm2(double[] x) {    double sum = 0.0;    for (int i=0; i<x.length; i++)      sum += x[i]*x[i];    return Math.sqrt(sum);  }  public double[] derivativeAt(double[] x) {    ensure(x);    return derivative;  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?