+(define-public (interval-index interval dir)
+ "Interpolate INTERVAL between between left (DIR=-1) and right (DIR=+1)"
+
+ (* (+ (interval-start interval) (interval-end interval)
+ (* dir (- (interval-end interval) (interval-start interval))))
+ 0.5))
+
+(define-public (interval-center x)
+ "Center the number-pair X, when an interval"
+ (if (interval-empty? x)
+ 0.0
+ (/ (+ (car x) (cdr x)) 2)))
+
+(define-public interval-start car)
+(define-public interval-end cdr)
+(define-public (interval-translate iv amount)
+ (cons (+ amount (car iv))
+ (+ amount (cdr iv))))
+