static double transformBetweenDoubleRanges_verbose(double x, double srcStart, double srcEnd, double destStart, double destEnd) { ret transformBetweenDoubleRanges_verbose(x, doubleRange(srcStart, srcEnd), doubleRange(destStart, destEnd)); } static double transformBetweenDoubleRanges_verbose(double x, DoubleRange src, DoubleRange dest) { double x2 = x-src.start; double srcL = src.length(); double x3 = doubleRatio(x2, srcL); double destL = dest.length(); double y1 = destL*x3; double y2 = dest.start+y1; printVars transformBetweenDoubleRanges_verbose( +x, +src, +dest, +x2, +srcL, +x3, +destL, +y1, +y2); ret y2; } static DoubleRange transformBetweenDoubleRanges_verbose(DoubleRange r, DoubleRange src, DoubleRange dest) { if (r == null) null; double a = transformBetweenDoubleRanges_verbose(r.start, src, dest); double b = transformBetweenDoubleRanges_verbose(r.end, src, dest); var rr = DoubleRange(a, b); printVars transformBetweenDoubleRanges_verbose(+r, +src, +dest, +rr); ret rr; }