diff src/scheme/signals.scm @ 0:bf79fb79ee13

Initial Mercurial check in.
author samer
date Tue, 17 Jan 2012 17:50:20 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/scheme/signals.scm	Tue Jan 17 17:50:20 2012 +0000
@@ -0,0 +1,41 @@
+;;; 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))
+)
+
+
+