view src/scheme/signals.scm @ 1:5df24c91468d

Oh my what a mess.
author samer
date Fri, 05 Apr 2019 16:26:00 +0100
parents bf79fb79ee13
children
line wrap: on
line source
;;; extract one component of a vector and put it in a VDouble
(define-method (signal name) (VDouble. name))
(define-method (signal vec i)
	(node (.getNode vec)
		(let ((sig (VDouble. (.toString i))))
			(addtask (VectorToDouble. vec i sig))
			sig
		)
	)
)

;;; lagged signal histogram
(define (sig:hist sig)
	(define sigwin (SignalWindow. sig 4 1))
	(define hist (JointHistogram. (.output sigwin) 0 4))
	(addtasks sigwin (.flushTask sigwin) hist)
	(put "jointhist" hist)
	hist
)

(define (sig:- bigE smallE dE)
	(addtask (GenerateDouble. dE
		(Difference. bigE smallE)))
	dE
)

;;; make a task to write all sigs in siglist
(define (sig:write base siglist)
	;;; map a VDouble to a DoubleWriter
	(define (sig->writer x)
		(.mkdirs (java.io.File. base))
		(DoubleWriter. x
			(buffer (ofstream (cat base "/" (.getLabel x) ".txt")))
			#f))

	;;; now map all signals to writers and make CompoundTask
	(apply seq (map sig->writer siglist))
)