JuliaでArrayを使えばベクトルや行列計算できるけど、2とか3次元の点を表すのに可変長の配列を使うのはどうも無駄が多い気がする。自前で
そんな問題を解決してくれるのがImuutableArrays。
Julia0.3にはすでに採用されているので、
と書ける。デフォルトでは読み込んだ時に4次元まで作ってくれて、演算子の定義とかもやってくれている。(これがメタプログラミングの力か…)
しかも上で自分で定義したのより速い…
行列は
immutable Vec
x::Float64
y::Float64
z::Float64
end
とかやったけど、演算子とかを定義するのが面倒。x::Float64
y::Float64
z::Float64
end
そんな問題を解決してくれるのがImuutableArrays。
Julia0.3にはすでに採用されているので、
Using ImuutableArrays
v3 = Vector3{Float64}(1, 2, 3)
v2 = Vector2{Float64}(4, 5)
v3 = Vector3{Float64}(1, 2, 3)
v2 = Vector2{Float64}(4, 5)
と書ける。デフォルトでは読み込んだ時に4次元まで作ってくれて、演算子の定義とかもやってくれている。(これがメタプログラミングの力か…)
しかも上で自分で定義したのより速い…
行列は
typealias Mat3d Matrix3x3{Float64}
とすれば使える。
0 件のコメント:
コメントを投稿