X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Flily-library.scm;h=d178c6926c80d7a6c1d1b6c9e9c1d8cb3dcf16b9;hb=55c7ef27b5382940b8afe785c94b744c24b98473;hp=d3e75530a3e99678f4ca2f86709554e32065214d;hpb=b0076083131587fe5c09115c5fa69433fdc7db07;p=lilypond.git diff --git a/scm/lily-library.scm b/scm/lily-library.scm index d3e75530a3..d178c6926c 100644 --- a/scm/lily-library.scm +++ b/scm/lily-library.scm @@ -310,12 +310,27 @@ found." (define-public (offset-flip-y o) (cons (car o) (- (cdr o)))) +(define-public (offset-scale o scale) + (cons (* (car o) scale) + (* (cdr o) scale))) + (define-public (ly:list->offsets accum coords) (if (null? coords) accum (cons (cons (car coords) (cadr coords)) (ly:list->offsets accum (cddr coords))))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; numbers + +(if (not (defined? 'nan?)) ;; guile 1.6 compat + (define-public (nan? x) (not (or (< 0.0 x) + (> 0.0 x) + (= 0.0 x))))) + +(if (not (defined? 'inf?)) + (define-public (inf? x) (= (/ 1.0 x) 0.0))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; intervals @@ -324,8 +339,19 @@ found." (max 0 (- (cdr x) (car x)))) (define-public interval-start car) +(define-public (ordered-cons a b) + (cons (min a b) + (max a b))) + (define-public interval-end cdr) +(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) @@ -359,6 +385,7 @@ found." (nan? (cdr i)) (inf? (cdr i))))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; @@ -401,6 +428,7 @@ possibly turned off." (define matches '()) (define end-of-prev-match 0) (define (notice match) + (set! matches (cons (substring (match:string match) end-of-prev-match (match:start match)) @@ -479,7 +507,7 @@ possibly turned off." (string-append input-file-name ": 0: " (_ "warning: ") (format #f - (_ "no \\version statement found, add~afor future compatibility") + (_ "no \\version statement found, please add~afor future compatibility") (format #f "\n\n\\version ~s\n\n" (lilypond-version)))))) (define-public (old-relative-not-used-message input-file-name)