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 ;