3 次元のルックアップ テーブルを使用する必要があります。テーブル自体には、73x73x73 (389017) の double 値があります。
module Hammer.Texture.Table3D where
import qualified Data.Vector as V
import qualified Data.Vector.Unboxed as U
import Data.Vector.Unboxed (Vector)
table3D :: V.Vector (V.Vector (Vector Double))
table3D = V.fromList [table0, table1, ... table72]
table0 = V.fromList $ map U.fromList [
[1.973921e+01, 0.000000e+00, ... 0.000000e+00],
.....
[1.973921e+01, 0.000000e+00, ... 0.000000e+00]]
.....
table72 = V.fromList $ map U.fromList [
[1.973921e+01, 0.000000e+00, ... 0.000000e+00],
.....
[1.973921e+01, 0.000000e+00, ... 0.000000e+00]]
問題は、GHC がこのサイズの Vector Double または [Double] を処理できないことです。GHC のコンパイルには、最終的にメモリが爆発するまで長い時間がかかります (~ 2 分)。非常に大きな文字列 ([Char]) に対して正常に動作するため、GHC でのメモリ リークまたは何らかのバグがあるようです。
GHC を使用して「大きな」ルックアップ テーブル (Double タイプ) を作成するために利用できるソリューションはありますか?