// Copyright 2013 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.

namespace impeller {

// e
constexpr float kE = 2.7182818284590452354;

// log_2 e
constexpr float kLog2_E = 1.4426950408889634074;

// log_10 e
constexpr float kLog10_E = 0.43429448190325182765;

// log_e 2
constexpr float klogE_2 = 0.69314718055994530942;

// log_e 10
constexpr float klogE_10 = 2.30258509299404568402;

// pi
constexpr float kPi = 3.14159265358979323846;

// pi*2
constexpr float k2Pi = 6.28318530717958647693;

// pi/2
constexpr float kPiOver2 = 1.57079632679489661923;

// pi/4
constexpr float kPiOver4 = 0.78539816339744830962;

// 1/pi
constexpr float k1OverPi = 0.31830988618379067154;

// 2/pi
constexpr float k2OverPi = 0.63661977236758134308;

// 2/sqrt(pi)
constexpr float k2OverSqrtPi = 1.12837916709551257390;

// sqrt(2)
constexpr float kSqrt2 = 1.41421356237309504880;

// 1/sqrt(2)
constexpr float k1OverSqrt2 = 0.70710678118654752440;

// phi
constexpr float kPhi = 1.61803398874989484820;

// 0.001
constexpr float kEhCloseEnough = 1e-3;

}  // namespace impeller
