■6635 |
Re[3]: ジェネリックな行列クラスの算術演算 |
□投稿者/ も -(2007/08/21(Tue) 12:33:17)
| # Haskellの型クラスのようなものって用意されてないのかな?
擬似コードで。
interface Num<T>{
//実際はインタフェイスで、ここではNum<T>は実装されていない。
//要は Num<T> 型は基本的な演算が行えるという型のクラス
T negate(T) // Num<Int>なら実装は negate(Int x)=-x 見たいな感じ
T add(T, T)
T sub(T, T)
T mul(T, T)
}
interface Linear<T>{
T Scaled(double, T) // Scaled(double x, T a)=x*a
}
class Matrix<Num<T>> extends Num{
//Matrixは基本的な演算が行えるので、Numを継承している
//Matrixは唯の<T>ではなく、基本的な演算を受け付ける<T>
Matrix<Num<T>> negate(Matrix<Num<T>>)
add...
mul..
}
// 内部が行列の行列とか。
Matrix<Matrix<Int>> Matroska_Matrix
※あっ・・・: http://blogs.wankuma.com/trapemiya/archive/2006/07/06/31783.aspx |
|