annotate src/scheme/analysis.scm @ 8:5e3cbbf173aa tip

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