Kronprod.java
/*
* $Id: Kronprod.java,v 1.13 2008/03/03 15:18:35 koga Exp $
*
* Copyright (C) 2004 Koga Laboratory. All rights reserved.
*/
package org.mklab.tool.matrix;
import org.mklab.nfc.matrix.DoubleMatrix;
/**
* クロネッカー積を計算するクラスです。
*
* <p> Kronecker product
*
* @author koga
* @version $Revision: 1.13 $
* @see org.mklab.tool.matrix.Kronsum
*/
public class Kronprod {
/**
* <code>A</code>と<code>B</code>のクロネッカー積を計算します。 計算結果は、<code>A</code>の全ての成分と<code>B</code>の 積から構成されます。
*
* @param a データ1
* @param b データ2
* @return クロネッカー積 (kronecker product)
*/
public static DoubleMatrix kronprod(DoubleMatrix a, DoubleMatrix b) {
final int rowSize = a.getRowSize();
final int columnSize = a.getColumnSize();
final DoubleMatrix ans = a.createZero(rowSize, columnSize, b);
for (int row = 1; row <= rowSize; row++) {
for (int column = 1; column <= columnSize; column++) {
ans.setSubMatrix(row, column, b, b.multiply(a.getElement(row, column)));
}
}
return ans;
}
}