プログラミング

HaskellでFFT,STVectorといっしょ。

module Numerical.FFT ( fft1d ) where import Control.Monad (when) import Control.Monad.Primitive (PrimMonad, PrimState) import Control.Monad.ST (ST, runST) import Data.Vector (Vector, MVector, (!), generate, map, thaw, freeze) import qualif…

Haskell ST MonadとMutableなVectorの使い方メモ

import Control.Monad.ST (ST,runST) import Data.Vector (Vector, toList, fromList, thaw, freeze) import Data.Vector.Mutable (STVector, swap) import qualified Data.Vector.Mutable as MV (length) import Data.Vector.Generic.Mutable (reverse) imp…

HaskellでFFT.Vector編

二次元配列を一次元で表現するために、二重ループが入るが、その際のVectorのappendで時間がかかる… module Numerical.FFT ( fft1d ) where import Prelude hiding ((++),length,map) import Data.Vector import Data.Maybe import Data.Complex import Data…

HaskellでFFT.Array編

Data.Arrayを使って、HaskellでFFT. 64KのサンプルでList版から101.1sec->0.73secに短縮。 大量のサンプル数を突っ込むとギブアップする。 module Numerical.FFT ( fft1d ) where import qualified Data.Vector as V import Data.Array import Data.Array.IA…

GNU Tool for ARM Embedded Processors

x86_64 Linuxのhostでsourceからbuildする方法。 以下の変更をする Index: build-common.sh =================================================================== --- build-common.sh (リビジョン 89) +++ build-common.sh (リビジョン 90) @@ -329,9 +32…

HaskellでFFT

HaskellでstockhamのFFTを作ってみた。 Listなので、64Kサンプルになると遅くなる。ここから、どこまで速くなるか試みてみる。 module Numerical.FFT ( fft1d ) where import Debug.Trace import System.Environment import System.Console.GetOpt import Sy…

C言語からのHaskell関数の呼び出し。その2。

構造体でのデータの受け渡し。加えて、hsc2hsを使ってcとHaskellの接点を切り離し。 CC = gcc -c HC = ghc HSC2HS = hsc2hs RM = rm -f TARGET = projectile C_SRCS = main.c HS_SRCS = linearspace.hs projectile_wrapper.hs projectile.hs HS_OBJS = $(HS_…

C言語からのHaskell関数の呼び出し

まずは、簡単な呼び出し。 一応、ポインタで引き渡した領域に出力データを書いている CC = gcc HC = ghc RM = rm -f TARGET = test C_SRC = main.c HS_SRC = fib.hs SRCS = $(C_SRC) $(HS_SRC) OBJS = $(C_SRC:.c=.o) $(HS_SRC:.hs=.o) CFLAGS = -Wall all: …

Haskell+Gtk+GtkGLExt

ただOpenGLを使うだけならGLUTで十分なのだが、UIをリッチにしたい場合はGUIツールキットを使わないといけない。なので、GTKをOpenGLの組み合わせ。GtkGLExtパッケージのexampleが貧弱なので、cのGtkGLExtのexampleを移植してみることに。simple.cのHaskell…