From 206d4f851dac8e55d04f55b502f9dc0c30ea24ab Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Wed, 8 Aug 2012 21:00:49 -0700 Subject: [PATCH] math.transforms.fft: adding cross-correlation. --- extra/math/transforms/fft/fft-tests.factor | 5 +++++ extra/math/transforms/fft/fft.factor | 3 +++ 2 files changed, 8 insertions(+) diff --git a/extra/math/transforms/fft/fft-tests.factor b/extra/math/transforms/fft/fft-tests.factor index fdfeab5f7a..8435adc3e3 100644 --- a/extra/math/transforms/fft/fft-tests.factor +++ b/extra/math/transforms/fft/fft-tests.factor @@ -24,3 +24,8 @@ IN: math.transforms.fft { C{ 1+2/3 0 } C{ -1/3 0 } C{ -1/3 0 } } { 1 2 2 } ifft 1e-12 v~ ] unit-test + +{ t } [ + { C{ 0.05 0.0 } C{ 0.05 0.0 } C{ 0.05 0.0 } C{ 0.05 0.0 } } + { 0.1 0.1 0.1 0.1 } { 0.2 0.1 0.1 0.1 } correlate 1e-12 v~ +] unit-test diff --git a/extra/math/transforms/fft/fft.factor b/extra/math/transforms/fft/fft.factor index 16c202bd3b..9cce31d92f 100644 --- a/extra/math/transforms/fft/fft.factor +++ b/extra/math/transforms/fft/fft.factor @@ -41,3 +41,6 @@ ERROR: not-enough-data ; [ not-enough-data ] [ t over length even? [ (fft) ] [ (slow-fft) ] if ] if-empty ; + +: correlate ( x y -- z ) + [ fft ] [ reverse fft ] bi* v* ifft ;