This commit is contained in:
2025-09-04 14:08:49 +08:00
parent 15081c0b29
commit 7c41758d34

View File

@@ -0,0 +1,41 @@
package org.dromara.easyai.matrixTools;
import java.util.concurrent.CountDownLatch;
public class MatrixMulAccelerate implements Runnable {
private final Matrix matrix1;
private final Matrix matrix2;
private final Matrix matrix;
private final int i;
private final int j;
private final CountDownLatch countDownLatch;
public MatrixMulAccelerate(Matrix matrix1, Matrix matrix2, Matrix matrix, int i, int j
, CountDownLatch countDownLatch) {
this.matrix1 = matrix1;
this.matrix2 = matrix2;
this.matrix = matrix;
this.i = i;
this.j = j;
this.countDownLatch = countDownLatch;
}
@Override
public void run() {
try {
Matrix matrixRow = matrix1.getRow(i);//行向量
Matrix matrixColumn = matrix2.getColumn(j);
float columnAllNumber = 0;//对每一项的乘积求和
for (int h = 0; h < matrixColumn.getX(); h++) {
float columnNumber = matrixColumn.getNumber(h, 0);
float rowNumber = matrixRow.getNumber(0, h);
float nowNumber = columnNumber * rowNumber;
columnAllNumber = columnAllNumber + nowNumber;
}
matrix.setNub(i, j, columnAllNumber);
countDownLatch.countDown();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}