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 + -
显示快捷键?