comparison src/scheme/analysis.scm @ 0:bf79fb79ee13

Initial Mercurial check in.
author samer
date Tue, 17 Jan 2012 17:50:20 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:bf79fb79ee13
1 ;(load "view3d.scm")
2 (load "models.scm")
3 (load "functions.scm")
4
5 (define o CompoundFunction.)
6
7 (define distances null)
8 (define reset-P null)
9 (define computeD null)
10 (define get-P null)
11
12
13 (define (stats->mds stats mds)
14 (let* ((N (.N$# mds))
15 (R (Matrix. "R" N N))
16 (stats->corr (task (.getCorrelation stats R)))
17 (corr->D (samer.mds.CorrelationTask. mds R)))
18 (set! distances (VVector. "distances" (.getLinkArray mds)))
19 (set! computeD
20 (seq stats->corr corr->D
21 (Ops.apply (o (vscale 16.0) (vpower 1.0)) distances)
22 (Ops.update distances)
23 )
24 )
25 (matexec R "image")
26 computeD
27 )
28 )
29
30 (define (R->mds R mds)
31 (set! distances (VVector. "distances" (.getLinkArray mds)))
32 (set! computeD
33 (seq
34 (samer.mds.CorrelationTask. mds R)
35 (Ops.apply (o (vscale 16.0) (vpower 1.0)) distances)
36 (Ops.update distances)
37 )
38 )
39 (matexec R "image")
40 computeD
41 )
42
43
44 (define (analyse x)
45 (define N (.size x))
46 ; (define hist (histogram x 256))
47 (define stats (node (child x "statistics") (GaussianStatsOnline. x)))
48 (define P (node (.getNode x) (Matrix. "P" N 3))) ; 4D points
49 (define mds (samer.mds.MDS. P))
50 (define tasks (seq stats))
51
52 (set! reset-P (lambda () (.set P (samer.maths.random.NormalisedGaussian.))))
53 (set! get-P (lambda () P))
54 ;(matexec P "load")
55
56 (reset-P)
57 ;(.setMetric mds (samer.mds.Manhatten.))
58 ;(exec (viewable "mds.stress") "trace")
59 (matexec P "image")
60 ;(exec (.getLikelihoodSignal hist) "trace")
61
62 (with-tasks tasks
63 (addtasks
64 ; hist
65 (sub 128 (stats->mds stats mds))
66 (sub 24 mds))
67 ; (view3d x P id)
68 )
69 tasks
70 )
71
72 (define (analyse-mds x)
73 (define N (.size x))
74 (define R (Matrix. "R" N N))
75 (define P (node (.getNode x) (Matrix. "P" N 3))) ; 4D points
76 (define mds (samer.mds.MDS. P))
77
78 (set! reset-P (lambda () (.set P (samer.maths.random.NormalisedGaussian.))))
79 (set! get-P (lambda () P))
80 ;(matexec P "load")
81
82 (reset-P)
83 ;(.setMetric mds (samer.mds.Manhatten.))
84 ;(exec (viewable "mds.stress") "trace")
85 (matexec P "image")
86
87 (seq
88 (sub 128 (R->mds R mds))
89 (sub 24 mds))
90 )