Small performance tweak

Change-Id: Icd540742073d49d12e70b2d8bd99aaf7ccb5802d
main
Jean Chalard 2012-06-08 17:05:28 +09:00
parent e91f32d8c1
commit d10c473347
2 changed files with 8 additions and 8 deletions

View File

@ -199,20 +199,20 @@ public class UserHistoryForgettingCurveUtils {
public static final int[][] SCORE_TABLE = new int[FC_LEVEL_MAX][ELAPSED_TIME_MAX + 1];
static {
for (int i = 0; i < FC_LEVEL_MAX; ++i) {
final double initialFreq;
final float initialFreq;
if (i >= 2) {
initialFreq = FC_FREQ_MAX;
} else if (i == 1) {
initialFreq = (double)FC_FREQ_MAX / 2;
initialFreq = FC_FREQ_MAX / 2;
} else if (i == 0) {
initialFreq = (double)FC_FREQ_MAX / 4;
initialFreq = FC_FREQ_MAX / 4;
} else {
continue;
}
for (int j = 0; j < ELAPSED_TIME_MAX; ++j) {
final double elapsedHour = j * ELAPSED_TIME_INTERVAL_HOURS;
final float elapsedHours = j * ELAPSED_TIME_INTERVAL_HOURS;
final double freq =
initialFreq * Math.pow(initialFreq, elapsedHour / HALF_LIFE_HOURS);
initialFreq * Math.pow(initialFreq, elapsedHours / HALF_LIFE_HOURS);
final int intFreq = Math.min(FC_FREQ_MAX, Math.max(0, (int)freq));
SCORE_TABLE[i][j] = intFreq;
}

View File

@ -787,9 +787,9 @@ public class BinaryDictInputOutput {
// (discretizedFrequency + 0.5) times this value to get the median value of the step,
// which is the best approximation. This is how we get the most precise result with
// only four bits.
final double stepSize =
(MAX_TERMINAL_FREQUENCY - unigramFrequency) / (1.5 + MAX_BIGRAM_FREQUENCY);
final double firstStepStart = 1 + unigramFrequency + (stepSize / 2.0);
final float stepSize =
(MAX_TERMINAL_FREQUENCY - unigramFrequency) / (1.5f + MAX_BIGRAM_FREQUENCY);
final float firstStepStart = 1 + unigramFrequency + (stepSize / 2.0f);
final int discretizedFrequency = (int)((bigramFrequency - firstStepStart) / stepSize);
// If the bigram freq is less than half-a-step higher than the unigram freq, we get -1
// here. The best approximation would be the unigram freq itself, so we should not