// // Math.swift // LoopKitUI // // Created by Michael Pangburn on 3/23/19. // Copyright © 2019 LoopKit Authors. All rights reserved. // func fractionThrough( _ value: Metric, in range: ClosedRange, using transform: (Metric) -> Metric = { $0 } ) -> Metric { let transformedLowerBound = transform(range.lowerBound) return (transform(value) - transformedLowerBound) / (transform(range.upperBound) - transformedLowerBound) } func interpolatedValue( at fraction: Metric, through range: ClosedRange ) -> Metric { fraction * (range.upperBound - range.lowerBound) + range.lowerBound }