// Copyright 2026 International Digital Economy Academy
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
///|
/// [DEPRECATED] Returns a "not-a-number" (NaN) value.
///
/// This function is deprecated. Use `@double.not_a_number` instead.
///
/// Returns a double-precision floating-point NaN value.
///
/// Example:
///
/// ```mbt check
/// test {
/// let nan = @double.not_a_number
/// inspect(nan.is_nan(), content="true")
/// }
/// ```
#deprecated("Use `@double.not_a_number` instead")
#coverage.skip
pub fn Double::nan() -> Double {
not_a_number
}
///|
/// Returns positive infinity if sign >= 0, negative infinity if sign < 0.
#deprecated("Use `@double.infinity` and `@double.neg_infinity` instead")
#coverage.skip
pub fn Double::inf(sign : Int) -> Double {
if sign >= 0 {
infinity
} else {
neg_infinity
}
}
///|
/// Returns the smallest positive normal value of a double-precision
/// floating-point number.
///
/// Returns a `Double` value that represents the smallest positive normal number
/// that can be represented by a double-precision floating-point number
/// (approximately 2.2250738585072014e-308).
///
/// Example:
///
/// ```mbt check
/// test {
/// inspect(@double.min_positive, content="2.2250738585072014e-308")
/// }
/// ```
#deprecated("Use `@double.min_positive` instead")
#coverage.skip
pub fn Double::min_normal() -> Double {
min_positive
}
///|
/// Function `pow`.
#deprecated("Use `@math.pow` instead")
#warnings("-deprecated")
pub fn pow(m : Double, n : Double) -> Double {
m.pow(n)
}
///|
/// Return whether the value close.
#deprecated("Use `Double::is_close` instead")
pub fn is_close(
d : Double,
other : Double,
relative_tolerance? : Double = 1.0e-09,
absolute_tolerance? : Double = 0.0,
) -> Bool {
d.is_close(other, relative_tolerance~, absolute_tolerance~)
}
///|
/// Create from `int`.
#deprecated("Use `Double::from_int` instead")
pub fn from_int(i : Int) -> Double {
Double::from_int(i)
}
///|
/// Return absolute value.
#deprecated("Use `x.abs()` instead")
pub fn abs(x : Double) -> Double {
x.abs()
}