Diag.java
/*
* $Id: Diag.java,v 1.7 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.ComplexNumericalMatrix;
import org.mklab.nfc.matrix.DoubleMatrix;
import org.mklab.nfc.matrix.RealNumericalMatrix;
import org.mklab.nfc.matrix.misc.DiagonalMatrix;
import org.mklab.nfc.scalar.ComplexNumericalScalar;
import org.mklab.nfc.scalar.RealNumericalScalar;
/**
* 対角行列を求めるクラスです。
*
* <p>Diagonal matrix
*
* @author koga
* @version $Revision: 1.7 $
*/
public class Diag {
/**
* <code>a1</code>と<code>a2</code>が対角に並ぶ対角行列を求める
*
* @param a1 左上ブロック行列
* @param a2 右下ブロック行列
* @return 対角行列 (diagonal matrix)
*/
public static DoubleMatrix diag(DoubleMatrix a1, DoubleMatrix a2) {
return DiagonalMatrix.create(a1, a2);
}
/**
* <code>a1</code>と<code>a2</code>が対角に並ぶ対角行列を求める
*
* @param a1 左上ブロック行列
* @param a2 右下ブロック行列
* @return 対角行列 (diagonal matrix)
* @param <RS> type of real scalar
* @param <RM> type of real matrix
* @param <CS> type of complex scalar
* @param <CM> type of complex matrix
*/
public static <RS extends RealNumericalScalar<RS, RM, CS, CM>, RM extends RealNumericalMatrix<RS, RM, CS, CM>, CS extends ComplexNumericalScalar<RS, RM, CS, CM>, CM extends ComplexNumericalMatrix<RS, RM, CS, CM>> RM diag(
RM a1, RM a2) {
return DiagonalMatrix.create(a1, a2);
}
/**
* <code>a1</code>、<code>a2</code>、<code>a3</code>が対角に並ぶ対角行列を求める
*
* @param a1 行列1
* @param a2 行列2
* @param a3 行列3
* @return 対角行列 (diagonal matrix)
*/
public static DoubleMatrix diag(DoubleMatrix a1, DoubleMatrix a2, DoubleMatrix a3) {
return DiagonalMatrix.create(a1, a2, a3);
}
}