本文整理汇总了Java中edu.berkeley.nlp.math.SloppyMath.LOGTOLERANCE属性的典型用法代码示例。如果您正苦于以下问题:Java SloppyMath.LOGTOLERANCE属性的具体用法?Java SloppyMath.LOGTOLERANCE怎么用?Java SloppyMath.LOGTOLERANCE使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类edu.berkeley.nlp.math.SloppyMath
的用法示例。
在下文中一共展示了SloppyMath.LOGTOLERANCE属性的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: approxLogSum
public static double approxLogSum(double[] logInputs, int leng) {
if (leng == 0) {
throw new IllegalArgumentException();
}
int maxIdx = 0;
double max = logInputs[0];
for (int i = 1; i < leng; i++) {
if (logInputs[i] > max) {
maxIdx = i;
max = logInputs[i];
}
}
boolean haveTerms = false;
double intermediate = 0.0;
double cutoff = max - SloppyMath.LOGTOLERANCE;
// we avoid rearranging the array and so test indices each time!
for (int i = 0; i < leng; i++) {
if (i != maxIdx && logInputs[i] > cutoff) {
haveTerms = true;
intermediate += SloppyMath.approxExp(logInputs[i] - max);
}
}
if (haveTerms) {
return max + SloppyMath.approxLog(1.0 + intermediate);
} else {
return max;
}
}
示例2: logSum
public static double logSum(double[] logInputs, int leng) {
if (leng == 0) {
throw new IllegalArgumentException();
}
int maxIdx = 0;
double max = logInputs[0];
for (int i = 1; i < leng; i++) {
if (logInputs[i] > max) {
maxIdx = i;
max = logInputs[i];
}
}
boolean haveTerms = false;
double intermediate = 0.0;
double cutoff = max - SloppyMath.LOGTOLERANCE;
// we avoid rearranging the array and so test indices each time!
for (int i = 0; i < leng; i++) {
if (i != maxIdx && logInputs[i] > cutoff) {
haveTerms = true;
intermediate += Math.exp(logInputs[i] - max);
}
}
if (haveTerms) {
return max + Math.log(1.0 + intermediate);
} else {
return max;
}
}