Rot90.java

/*
 * $Id: Rot90.java,v 1.14 2008/04/13 02:12:38 koga Exp $
 * 
 * Copyright (C) 2004 Koga Laboratory. All rights reserved.
 */
package org.mklab.tool.matrix;

import org.mklab.nfc.matrix.DoubleMatrix;
import org.mklab.nfc.matrix.misc.RotatedMatrix;


/**
 * 成分を反時計方向に90度回転させてできる行列を求めるクラスです。
 * 
 * <p>Rotate matrix 90 degrees
 * 
 * @author koga
 * @version $Revision: 1.14 $
 */
public class Rot90 {

  /**
   * <code>A</code> の成分を反時計方向に <code>90</code> 度回転します。
   * 
   * @param A 対象となる行列
   * @return 成分を反時計方向に90度回転させてできる行列 (rotated matrix)
   */
  public static DoubleMatrix rot90(DoubleMatrix A) {
    int count = 1;
    return rot90(A, count);
  }

  /**
   * <code>A</code> の成分を反時計方向に <code>count*90</code> 度回転します。
   * 
   * @param A 対象となる行列
   * @param count 回転回数
   * @return 成分を反時計方向に90度回転させてできる行列 (rotated matrix)
   */
  public static DoubleMatrix rot90(DoubleMatrix A, int count) {
    return RotatedMatrix.create(A, count);
  }

  /**
   * メインメソッド
   * 
   * @param args コマンドライン引数
   */
  @SuppressWarnings("nls")
  public static void main(String[] args) {
    DoubleMatrix a = new DoubleMatrix(new double[][] { {1, 2}, {3, 4}});
    DoubleMatrix b = Rot90.rot90(a);
    a.print("a");
    b.print("b");
  }

}