Mercurial > hg > jslab
annotate src/scheme/signals.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 ;;; extract one component of a vector and put it in a VDouble |
samer@0 | 2 (define-method (signal name) (VDouble. name)) |
samer@0 | 3 (define-method (signal vec i) |
samer@0 | 4 (node (.getNode vec) |
samer@0 | 5 (let ((sig (VDouble. (.toString i)))) |
samer@0 | 6 (addtask (VectorToDouble. vec i sig)) |
samer@0 | 7 sig |
samer@0 | 8 ) |
samer@0 | 9 ) |
samer@0 | 10 ) |
samer@0 | 11 |
samer@0 | 12 ;;; lagged signal histogram |
samer@0 | 13 (define (sig:hist sig) |
samer@0 | 14 (define sigwin (SignalWindow. sig 4 1)) |
samer@0 | 15 (define hist (JointHistogram. (.output sigwin) 0 4)) |
samer@0 | 16 (addtasks sigwin (.flushTask sigwin) hist) |
samer@0 | 17 (put "jointhist" hist) |
samer@0 | 18 hist |
samer@0 | 19 ) |
samer@0 | 20 |
samer@0 | 21 (define (sig:- bigE smallE dE) |
samer@0 | 22 (addtask (GenerateDouble. dE |
samer@0 | 23 (Difference. bigE smallE))) |
samer@0 | 24 dE |
samer@0 | 25 ) |
samer@0 | 26 |
samer@0 | 27 ;;; make a task to write all sigs in siglist |
samer@0 | 28 (define (sig:write base siglist) |
samer@0 | 29 ;;; map a VDouble to a DoubleWriter |
samer@0 | 30 (define (sig->writer x) |
samer@0 | 31 (.mkdirs (java.io.File. base)) |
samer@0 | 32 (DoubleWriter. x |
samer@0 | 33 (buffer (ofstream (cat base "/" (.getLabel x) ".txt"))) |
samer@0 | 34 #f)) |
samer@0 | 35 |
samer@0 | 36 ;;; now map all signals to writers and make CompoundTask |
samer@0 | 37 (apply seq (map sig->writer siglist)) |
samer@0 | 38 ) |
samer@0 | 39 |
samer@0 | 40 |
samer@0 | 41 |