Logspace.java
/*
* $Id: Logspace.java,v 1.11 2008/03/15 00:23:40 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.NumericalMatrix;
import org.mklab.nfc.matrix.misc.LogarithmicallySpacedVector;
import org.mklab.nfc.scalar.NumericalScalar;
/**
* 対数的に等間隔に分割されたデータ列を求めるクラスです。
*
* <P> Logarithmically spaced array
*
* @author koga
* @version $Revision: 1.11 $
* @see org.mklab.tool.matrix.Linspace
*/
public class Logspace {
/**
* <code>10^x1</code>と<code>10^x2</code>の間を対数的に <code>50</code>等分割した点をもつベクトルを返します。
*
* <p> もし<code>x2</code>が<code>PI</code>なら <code>10^x2</code>と<code>PI</code>の間を対数的に 等分割した点を求めます。
*
* @param x1 始点
* @param x2 終点
* @return 対数的に等間隔に分割されたデータ列 (logarithmically spaced array)
*/
public static DoubleMatrix logspace(final double x1, final double x2) {
return logspace(x1, x2, 50);
}
/**
* <code>10^x1</code>と<code>10^x2</code>の間を対数的に <code>50</code>等分割した点をもつベクトルを返します。
*
* <p> もし<code>x2</code>が<code>PI</code>なら <code>10^x2</code>と<code>PI</code>の間を対数的に 等分割した点を求めます。
*
* @param <S> スカラーの型
* @param <M> 行列の型
* @param x1 始点
* @param x2 終点
* @return 対数的に等間隔に分割されたデータ列 (logarithmically spaced array)
*/
public static <S extends NumericalScalar<S,M>, M extends NumericalMatrix<S,M>> M logspace(final S x1, final S x2) {
return logspace(x1, x2, 50);
}
/**
* <code>splitSize</code>分割した点を返します。
*
* @param x1 始点
* @param x2 終点
* @param splitSize 分割数
* @return 対数的に等間隔に分割されたデータ列 (logarithmically spaced array)
*/
public static DoubleMatrix logspace(final double x1, final double x2, final int splitSize) {
return LogarithmicallySpacedVector.create(x1, x2, splitSize);
}
/**
* <code>splitSize</code>分割した点を返します。
* @param <S> スカラーの型
* @param <M> 行列の型
*
* @param x1 始点
* @param x2 終点
* @param splitSize 分割数
* @return 対数的に等間隔に分割されたデータ列 (logarithmically spaced array)
*/
public static <S extends NumericalScalar<S,M>, M extends NumericalMatrix<S,M>> M logspace(final S x1, final S x2, final int splitSize) {
return LogarithmicallySpacedVector.create(x1, x2, splitSize);
}
}