clem 0.4.1, ch-asdf 0.2.8, ch-util 0.2.2, lift 1.3.1, darcs ignored, smarkup 0.3.3
[CommonLispStat.git] / external / clem / test / test-convolve.cl
blob9000178a2ff0465403918a4b040f8efcdce5f90d
2 (in-package :clem-test)
4 (defun convolve-test ()
5 (let* ((h (clem:mat-scale (clem:gaussian-kernel 2 1) 1d0))
6 (g (make-instance 'double-float-matrix :rows 512 :cols 512
7 :initial-element 2d0))
8 (m (time (clem:discrete-convolve g h :truncate t))))
9 m))
11 (defun convolve-test-2 ()
12 (let* ((g (clem:array->double-float-matrix
13 #2A((1 2 3 4 5)
14 (6 7 8 9 10)
15 (11 12 13 14 15))))
16 (h (clem:array->double-float-matrix
17 #2A((1 2 1)(2 4 2) (1 2 1)))))
18 (clem::mat-scale! h (/ (clem:sum h)))
19 (print h)
20 (let ((m (clem:print-matrix (clem:discrete-convolve g h :truncate t :norm-v nil))))
21 m)))
23 (defun convolve-test-3 ()
24 (let* ((g (clem:array->double-float-matrix
25 #2A((1 2 3 4 5)
26 (6 7 8 9 10)
27 (11 12 13 14 15))))
28 (h1 (clem:array->double-float-matrix
29 #2A((1 2 1))))
30 (h2 (clem:transpose h1))
31 (m (clem:print-matrix
32 (clem:discrete-convolve
33 (clem:discrete-convolve g h1 :truncate t :norm-v nil)
34 h2 :truncate t :norm-v nil))))
35 m))
37 (defun convolve-test-4 ()
38 (let* ((g (clem:array->double-float-matrix
39 #2A((1 2 3 4 5)
40 (6 7 8 9 10)
41 (11 12 13 14 15))))
42 (hrow (clem:array->double-float-matrix
43 #2A((0.1 0.8 0.1))))
44 (hcol (clem:transpose hrow))
45 (m (clem:print-matrix (clem:separable-discrete-convolve g hcol hrow :truncate t :norm-v nil))))
46 m))
48 (defun convolve-test-5 ()
49 (let* ((g (clem:array->ub8-matrix
50 #2A((1 2 3 4 5)
51 (6 7 8 9 10)
52 (11 12 13 14 15))))
53 (h1 (clem:array->ub8-matrix
54 #2A((1 2 1))))
55 (h2 (clem:transpose h1))
56 (m (clem:print-matrix
57 (clem:discrete-convolve
58 (clem:discrete-convolve g h1 :truncate t :norm-v nil)
59 h2 :truncate t :norm-v nil))))
60 m))