/*
Copyright (C) 2006, Xuan-Hieu Phan
Email: hieuxuan@ecei.tohoku.ac.jp
pxhieu@gmail.com
URL: http://www.hori.ecei.tohoku.ac.jp/~hieuxuan
Graduate School of Information Sciences,
Tohoku University
*/
package crf.tagger;
public class Mathlib {
public static void mult(int size, DoubleVector x, DoubleMatrix A,
DoubleVector y, boolean isTransposed) {
// isTransposed = false: x = A * y
// isTransposed = true: x^t = y^t * A^t
int i, j;
if (!isTransposed) {
// for beta
// x = A * y
for (i = 0; i < size; i++) {
x.vect[i] = 0;
for (j = 0; j < size; j++) {
x.vect[i] += A.mtrx[i][j] * y.vect[j];
}
}
} else {
// for alpha
// x^t = y^t * A^t
for (i = 0; i < size; i++) {
x.vect[i] = 0;
for (j = 0; j < size; j++) {
x.vect[i] += y.vect[j] * A.mtrx[j][i];
}
}
}
}
} // end of class Mathlib