// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. /// Same as [num.clamp] but optimized for non-null [double]. /// /// This is faster because it avoids polymorphism, boxing, and special cases for /// floating point numbers. // // See also: //dev/benchmarks/microbenchmarks/lib/foundation/clamp.dart double clampDouble(double x, double min, double max) { assert(min <= max && !max.isNaN && !min.isNaN); if (x < min) { return min; } if (x > max) { return max; } if (x.isNaN) { return max; } return x; }