int numberOfTopics, int numberOfTerms) throws IOException {
HMapIV<double[]> beta = new HMapIV<double[]>();
PairOfIntFloat pairOfIntFloat = new PairOfIntFloat();
HMapIDW hashMap = new HMapIDW();
// HashMap hashMap = new HashMap();
// ProbDist hashMap = null;
// if (!approximateBeta) {
// hashMap = new HashMap();
// } else {
// hashMap = new BloomMap();
// }
while (sequenceFileReader.next(pairOfIntFloat, hashMap)) {
Preconditions.checkArgument(
pairOfIntFloat.getLeftElement() > 0 && pairOfIntFloat.getLeftElement() <= numberOfTopics,
"Invalid beta vector for term " + pairOfIntFloat.getLeftElement() + "...");
// topic is from 1 to K
int topicIndex = pairOfIntFloat.getLeftElement() - 1;
double logNormalizer = pairOfIntFloat.getRightElement();
// double logNormalizer = Math.log(pairOfIntFloat.getRightElement());
// double logNormalizer = Math.log(hashMap.getNormalizeFactor());
// logNormalizer = LogMath.add(pairOfIntFloat.getRightElement(),
// Settings.DEFAULT_LOG_ETA + Math.log(numberOfTerms));
Iterator<Integer> itr = hashMap.keySet().iterator();
while (itr.hasNext()) {
int termIndex = itr.next();
double logBetaValue = hashMap.get(termIndex);
// double logBetaValue = Math.log(hashMap.get(termIndex));
logBetaValue -= logNormalizer;
if (!beta.containsKey(termIndex)) {