Spec-Zone.ru › OpenJDK 17

Класс StrictMath

java.lang.Object
java.lang.StrictMath
public final class StrictMath extends Object
Класс StrictMath содержит методы для выполнения основных числовых операций, таких как элементарные экспоненциальные, логарифмические, квадратные корни и тригонометрические функции.

Для повышения переносимости программ Java, определения некоторых числовых функций в этом пакете требуют, чтобы они давали те же результаты, что и определённые опубликованные алгоритмы. Эти алгоритмы доступны из известной сетевой библиотеки netlib как пакет "Freely Distributable Math Library", fdlibm. Эти алгоритмы, написанные на языке программирования C, затем должны пониматься как выполняемые со всеми операциями с плавающей запятой, следующими правилам арифметики с плавающей запятой Java.

Библиотека математических функций Java определена относительно fdlibm версии 5.3. Там, где fdlibm предоставляет более одного определения для функции (например, acos), используется версия "ядровой функции IEEE 754" (расположенная в файле, имя которого начинается с буквы e). Методы, которые требуют fdlibm семантики, это sin, cos, tan, asin, acos, atan, exp, log, log10, cbrt, atan2, pow, sinh, cosh, tanh, hypot, expm1, и log1p.

Платформа использует целочисленную арифметику со знаком по дополнению до двух с использованием примитивных типов int и long. Разработчик должен выбрать примитивный тип для обеспечения того, чтобы арифметические операции последовательно давали правильные результаты, что в некоторых случаях означает, что операции не будут переполнять диапазон значений вычисления. Лучшей практикой является выбор примитивного типа и алгоритма, чтобы избежать переполнения. В случаях, когда размер int или long и необходимо обнаруживать ошибки переполнения, методы addExact, subtractExact, multiplyExact, toIntExact, incrementExact, decrementExact и negateExact выбрасывают исключение ArithmeticException при переполнении результатов. Для арифметических операций деления и абсолютного значения переполнение происходит только при определённом минимальном или максимальном значении и должно проверяться относительно минимума или максимума соответственно.

Рекомендуемые операции IEEE 754

Класс Math обсуждает, как общие критерии реализации для выбранных Math и StrictMath методов относятся к рекомендуемым операциям IEEE 754.
С тех пор:
1.3

Краткое описание полей

Модификатор и тип Поле Описание
static final double E
Значение double , наиболее близкое к e, основа натуральных логарифмов.
static final double PI
Значение double , наиболее близкое к π, отношению длины окружности к диаметру.

Краткое описание методов

Модификатор и тип Метод Описание
static double abs(double a)
Возвращает абсолютное значение значения double.
static float abs(float a)
Возвращает абсолютное значение значения float.
static int abs(int a)
Возвращает абсолютное значение значения int.
static long abs(long a)
Возвращает абсолютное значение значения long.
static int absExact(int a)
Возвращает математическое абсолютное значение значения int, если оно точно представимо как int, и выбрасывает исключение ArithmeticException, если результат выходит за пределы положительного диапазона int.
static long absExact(long a)
Возвращает математическое абсолютное значение значения long, если оно точно представимо как long, и выбрасывает исключение ArithmeticException, если результат выходит за пределы положительного диапазона long.
static double acos(double a)
Возвращает арккосинус значения; возвращаемый угол находится в диапазоне от 0,0 до π.
static int addExact(int x, int y)
Возвращает сумму аргументов, выбрасывая исключение, если результат выходит за пределы int.
static long addExact(long x, long y)
Возвращает сумму аргументов, выбрасывая исключение, если результат выходит за пределы long.
static double asin(double a)
Возвращает арксинус значения; возвращаемый угол находится в диапазоне от -π/2 до π/2.
static double atan(double a)
Возвращает арктангенс значения; возвращаемый угол находится в диапазоне от -π/2 до π/2.
static double atan2(double y, double x)
Возвращает угол θ из преобразования декартовых координат (x, y) в полярные координаты (r, θ).
static double cbrt(double a)
Возвращает кубический корень из значения double.
static double ceil(double a)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) значение double, которое больше или равно аргументу и равно математическому целому числу.
static double copySign(double magnitude, double sign)
Возвращает первый аргумент с плавающей точкой со знаком второго аргумента с плавающей точкой.
static float copySign(float magnitude, float sign)
Возвращает первый аргумент с плавающей точкой со знаком второго аргумента с плавающей точкой.
static double cos(double a)
Возвращает тригонометрический косинус угла.
static double cosh(double x)
Возвращает гиперболический косинус значения double.
static int decrementExact(int a)
Возвращает аргумент, уменьшенный на единицу, выбрасывая исключение, если результат выходит за пределы int.
static long decrementExact(long a)
Возвращает аргумент, уменьшенный на единицу, выбрасывая исключение, если результат выходит за пределы long.
static double exp(double a)
Возвращает число Эйлера e, возведённое в степень значения double.
static double expm1(double x)
Возвращает ex -1.
static double floor(double a)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение double, которое меньше или равно аргументу и равно математическому целому числу.
static int floorDiv(int x, int y)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение int, которое меньше или равно алгебраическому частному.
static long floorDiv(long x, int y)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение long, которое меньше или равно алгебраическому частному.
static long floorDiv(long x, long y)
Возвращает наибольшее (ближайшее к положительной бесконечности) значение long, которое меньше или равно алгебраическому частному.
static int floorMod(int x, int y)
Возвращает остаток от деления по модулю первого аргумента на второй.
static int floorMod(long x, int y)
Возвращает остаток от деления по модулю аргументов long и int.
static long floorMod(long x, long y)
Возвращает остаток от деления по модулю аргументов long.
static double fma(double a, double b, double c)
Возвращает результат умножения-сложения трёх аргументов, то есть точный результат произведения первых двух аргументов, сложенного с третьим аргументом, и затем округленного один раз до ближайшего double.
static float fma(float a, float b, float c)
Возвращает результат умножения-сложения трёх аргументов, то есть точный результат произведения первых двух аргументов, сложенного с третьим аргументом, и затем округленного один раз до ближайшего float.
static int getExponent(double d)
Возвращает несмещённый показатель, используемый при представлении double.
static int getExponent(float f)
Возвращает несмещённый показатель, используемый при представлении float.
static double hypot(double x, double y)
Возвращает sqrt(x2 +y2) без промежуточного переполнения или потери точности.
static double IEEEremainder(double f1, double f2)
Вычисляет операцию остатка по модулю для двух аргументов в соответствии со стандартом IEEE 754.
static int incrementExact(int a)
Возвращает аргумент, увеличенный на единицу, выбрасывая исключение, если результат выходит за пределы int.
static long incrementExact(long a)
Возвращает аргумент, увеличенный на единицу, выбрасывая исключение, если результат выходит за пределы long.
static double log(double a)
Возвращает натуральный логарифм (по основанию e) значения double.
static double log10(double a)
Возвращает логарифм по основанию 10 значения double.
static double log1p(double x)
Возвращает натуральный логарифм суммы аргумента и 1.
static double max(double a, double b)
Возвращает большее из двух значений double.
static float max(float a, float b)
Возвращает большее из двух значений float.
static int max(int a, int b)
Возвращает большее из двух значений int.
static long max(long a, long b)
Возвращает большее из двух значений long.
static double min(double a, double b)
Возвращает меньшее из двух значений double.
static float min(float a, float b)
Возвращает меньшее из двух значений float.
static int min(int a, int b)
Возвращает меньшее из двух значений int.
static long min(long a, long b)
Возвращает меньшее из двух значений long.
static int multiplyExact(int x, int y)
Возвращает произведение аргументов, выбрасывая исключение, если результат выходит за пределы int.
static long multiplyExact(long x, int y)
Возвращает произведение аргументов, выбрасывая исключение, если результат выходит за пределы long.
static long multiplyExact(long x, long y)
Возвращает произведение аргументов, выбрасывая исключение, если результат выходит за пределы long.
static long multiplyFull(int x, int y)
Возвращает точное математическое произведение аргументов.
END_OF_DOCUMENT_MARKER
static long multiplyHigh(long x, long y)
Возвращает в виде long наиболее значимые 64 бита 128-битного произведения двух 64-битных множителей.
static int negateExact(int a)
Возвращает отрицание аргумента, выбросив исключение, если результат выходит за пределы int.
static long negateExact(long a)
Возвращает отрицание аргумента, выбросив исключение, если результат выходит за пределы long.
static double nextAfter(double start, double direction)
Возвращает ближайшее к первому аргументу значение с плавающей точкой в направлении второго аргумента.
static float nextAfter(float start, double direction)
Возвращает ближайшее к первому аргументу значение с плавающей точкой в направлении второго аргумента.
static double nextDown(double d)
Возвращает значение с плавающей точкой, ближайшее к d в направлении минус бесконечности.
static float nextDown(float f)
Возвращает значение с плавающей точкой, ближайшее к f в направлении минус бесконечности.
static double nextUp(double d)
Возвращает значение с плавающей точкой, ближайшее к d в направлении плюс бесконечности.
static float nextUp(float f)
Возвращает значение с плавающей точкой, ближайшее к f в направлении плюс бесконечности.
static double pow(double a, double b)
Возвращает значение первого аргумента, возведённое в степень второго аргумента.
static double random()
Возвращает значение double с положительным знаком, большее или равное 0.0 и меньшее 1.0.
static double rint(double a)
Возвращает значение double , ближайшее по значению к аргументу и равное целому математическому числу.
static long round(double a)
Возвращает ближайшее long к аргументу, при равенстве округляя до плюс бесконечности.
static int round(float a)
Возвращает ближайшее int к аргументу, при равенстве округляя до плюс бесконечности.
static double scalb(double d, int scaleFactor)
Возвращает d × 2scaleFactor, округлённое как если бы вычисление производилось с помощью одного правильно округлённого умножения с плавающей точкой.
static float scalb(float f, int scaleFactor)
Возвращает f × 2scaleFactor, округлённое как если бы вычисление производилось с помощью одного правильно округлённого умножения с плавающей точкой.
static double signum(double d)
Возвращает функцию signum аргумента; ноль, если аргумент равен нулю, 1.0, если аргумент больше нуля, -1.0, если аргумент меньше нуля.
static float signum(float f)
Возвращает функцию signum аргумента; ноль, если аргумент равен нулю, 1.0f, если аргумент больше нуля, -1.0f, если аргумент меньше нуля.
static double sin(double a)
Возвращает тригонометрический синус угла.
static double sinh(double x)
Возвращает гиперболический синус double значения.
static double sqrt(double a)
Возвращает правильно округлённый положительный квадратный корень из double значения.
static int subtractExact(int x, int y)
Возвращает разность аргументов, выбросив исключение, если результат выходит за пределы int.
static long subtractExact(long x, long y)
Возвращает разность аргументов, выбросив исключение, если результат выходит за пределы long.
static double tan(double a)
Возвращает тригонометрический тангенс угла.
static double tanh(double x)
Возвращает гиперболический тангенс double значения.
static double toDegrees(double angrad)
Преобразует угол, измеренный в радианах, в приблизительно эквивалентный угол, измеренный в градусах.
static int toIntExact(long value)
Возвращает значение long аргумента, выбросив исключение, если значение выходит за пределы int.
static double toRadians(double angdeg)
Преобразует угол, измеренный в градусах, в приблизительно эквивалентный угол, измеренный в радианах.
static double ulp(double d)
Возвращает размер единицы ulp аргумента.
static float ulp(float f)
Возвращает размер единицы ulp аргумента.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

E

public static final double E
Значение, наиболее близкое к e, основанию натуральных логарифмов.
См. также:
  • Значения константных полей

PI

public static final double PI
Значение, наиболее близкое к π, отношению окружности к диаметру круга.
См. также:
  • Значения константных полей

Подробное описание методов

sin

public static double sin(double a)
Возвращает тригонометрический синус угла. Особые случаи:
  • Если аргумент NaN или бесконечность, результат NaN.
  • Если аргумент ноль, результат — ноль с тем же знаком, что и аргумент.
Параметры:
a - угол в радианах.
Возвращает:
синус аргумента.

cos

public static double cos(double a)
Возвращает тригонометрический косинус угла. Особые случаи:
  • Если аргумент NaN или бесконечность, результат NaN.
  • Если аргумент ноль, результат — 1.0.
Параметры:
a - угол в радианах.
Возвращает:
косинус аргумента.

tan

public static double tan(double a)
Возвращает тригонометрический тангенс угла. Особые случаи:
  • Если аргумент NaN или бесконечность, результат NaN.
  • Если аргумент ноль, результат — ноль с тем же знаком, что и аргумент.
Параметры:
a - угол в радианах.
Возвращает:
тангенс аргумента.

asin

public static double asin(double a)
Возвращает арксинус значения; возвращаемый угол находится в диапазоне от -π/2 до π/2. Особые случаи:
  • Если аргумент NaN или его абсолютное значение больше 1, результат NaN.
  • Если аргумент ноль, результат — ноль с тем же знаком, что и аргумент.
Параметры:
a - значение, арксинус которого нужно вернуть.
Возвращает:
арксинус аргумента.

acos

public static double acos(double a)
Возвращает арккосинус значения; возвращаемый угол находится в диапазоне от 0.0 до π. Специальный случай:
  • Если аргумент NaN или его абсолютное значение больше 1, результат NaN.
  • Если аргумент 1.0, результат — положительный ноль.
Параметры:
a - значение, арккосинус которого нужно вернуть.
Возвращает:
арккосинус аргумента.

atan

public static double atan(double a)
Возвращает арктангенс значения; возвращаемый угол находится в диапазоне от -π/2 до π/2. Особые случаи:
  • Если аргумент NaN, результат NaN.
  • Если аргумент ноль, результат — ноль с тем же знаком, что и аргумент.
  • Если аргумент бесконечный, результат — значение, наиболее близкое к π/2, со знаком, совпадающим со знаком входного значения.
Параметры:
a - значение, арктангенс которого нужно вернуть.
Возвращает:
арктангенс аргумента.

toRadians

public static double toRadians(double angdeg)
Преобразует угол, измеренный в градусах, в приблизительно эквивалентный угол, измеренный в радианах. Преобразование из градусов в радианы обычно неточно.
Параметры:
angdeg - угол в градусах
Возвращает:
значение угла angdeg в радианах.

toDegrees

public static double toDegrees(double angrad)
Преобразует угол, измеренный в радианах, в приблизительно эквивалентный угол, измеренный в градусах. Преобразование из радиан в градусы обычно неточно; пользователи не должны ожидать, что cos(toRadians(90.0)) будет точно равно 0.0.
Параметры:
angrad - угол в радианах
Возвращает:
значение угла angrad в градусах.

exp

public static double exp(double a)
Возвращает число Эйлера e в степени double значения. Особые случаи:
  • Если аргумент NaN, результат NaN.
  • Если аргумент положительная бесконечность, результат положительная бесконечность.
  • Если аргумент отрицательная бесконечность, результат положительный ноль.
  • Если аргумент ноль, результат — 1.0.
Параметры:
a - показатель степени для возведения e.
Возвращает:
значение ea, где e — основание натуральных логарифмов.

log

public static double log(double a)
Возвращает натуральный логарифм (по основанию e) double значения. Особые случаи:
  • Если аргумент NaN или меньше нуля, результат NaN.
  • Если аргумент положительная бесконечность, результат положительная бесконечность.
  • Если аргумент положительный или отрицательный ноль, результат отрицательная бесконечность.
  • Если аргумент 1.0, результат — положительный ноль.
Параметры:
a - значение
Возвращает:
значение ln a, натуральный логарифм a.

log10

public static double log10(double a)
Возвращает логарифм по основанию 10 double значения. Особые случаи:
  • Если аргумент NaN или меньше нуля, результат NaN.
  • Если аргумент положительная бесконечность, результат положительная бесконечность.
  • Если аргумент положительный или отрицательный ноль, результат отрицательная бесконечность.
  • Если аргумент равен 10n для целого n, результат — n. В частности, если аргумент 1.0 (100), результат — положительный ноль.
Параметры:
a - значение
Возвращает:
логарифм по основанию 10 a.
С:
1.5

sqrt

public static double sqrt(double a)
Возвращает корректно округленное положительное значение квадратного корня из double значения. Особые случаи:
  • Если аргумент NaN или меньше нуля, результат NaN.
  • Если аргумент положительная бесконечность, результат положительная бесконечность.
  • Если аргумент положительный или отрицательный ноль, результат такой же, как и аргумент.
В противном случае результат — double значение, наиболее близкое к истинному математическому квадратному корню из значения аргумента.
Параметры:
a - значение.
Возвращает:
положительный квадратный корень из a.

cbrt

public static double cbrt(double a)
Возвращает кубический корень из double значения. Для положительных конечных значений x, cbrt(-x) == -cbrt(x); то есть кубический корень из отрицательного значения — это отрицание кубического корня из абсолютного значения этого значения. Особые случаи:
  • Если аргумент NaN, результат NaN.
  • Если аргумент бесконечен, результат — бесконечность с тем же знаком, что и аргумент.
  • Если аргумент ноль, результат — ноль с тем же знаком, что и аргумент.
Параметры:
a - значение.
Возвращает:
кубический корень из a.
С:
1.5

IEEEremainder

public static double IEEEremainder(double f1, double f2)
Вычисляет операцию остатка по двум аргументам в соответствии со стандартом IEEE 754. Значение остатка математически равно f1 - f2 × n, где n — ближайшее целое число к точному математическому значению частного f1/f2, и если два целых числа одинаково близки к f1/f2, то n — это целое число, которое чётное. Если остаток равен нулю, его знак совпадает со знаком первого аргумента. Особые случаи:
  • Если любой из аргументов NaN, или первый аргумент бесконечен, или второй аргумент положительный или отрицательный ноль, результат NaN.
  • Если первый аргумент конечен, а второй — бесконечен, результат — такой же, как и первый аргумент.
Параметры:
f1 - делимое.
f2 - делитель.
Возвращает:
остаток при делении f1 на f2.

ceil

public static double ceil(double a)
Возвращает наименьшее (ближайшее к отрицательной бесконечности) double значение, которое больше или равно аргументу и равно математическому целому числу. Особые случаи:
  • Если значение аргумента уже равно математическому целому числу, то результат такой же, как и аргумент.
  • Если аргумент является NaN или бесконечностью, или положительным или отрицательным нулем, то результат такой же, как и аргумент.
  • Если значение аргумента меньше нуля, но больше -1.0, то результатом является отрицательный ноль.
Обратите внимание, что значение StrictMath.ceil(x) равно значению -StrictMath.floor(-x).
Параметры:
a - значение.
Возвращает:
наименьшее (ближайшее к отрицательной бесконечности) значение с плавающей запятой, которое больше или равно аргументу и равно математическому целому числу.

floor

public static double floor(double a)
Возвращает наибольшее (ближайшее к положительной бесконечности) double значение, которое меньше или равно аргументу и равно математическому целому числу. Особые случаи:
  • Если значение аргумента уже равно математическому целому числу, то результат такой же, как и аргумент.
  • Если аргумент является NaN или бесконечностью, или положительным или отрицательным нулем, то результат такой же, как и аргумент.
Параметры:
a - значение.
Возвращает:
наибольшее (ближайшее к положительной бесконечности) значение с плавающей запятой, которое меньше или равно аргументу и равно математическому целому числу.

rint

public static double rint(double a)
Возвращает double значение, которое по значению наиболее близко к аргументу и равно математическому целому числу. Если два double значения, которые являются математическими целыми числами, одинаково близки к значению аргумента, результатом является целое значение, которое является чётным. Особые случаи:
  • Если значение аргумента уже равно математическому целому числу, то результат такой же, как и аргумент.
  • Если аргумент является NaN или бесконечностью, или положительным или отрицательным нулем, то результат такой же, как и аргумент.
Параметры:
a - значение.
Возвращает:
значение с плавающей запятой, ближайшее к a, которое равно математическому целому числу.

atan2

public static double atan2(double y, double x)
Возвращает угол theta из преобразования прямоугольных координат (x, y) в полярные координаты (r, theta). Этот метод вычисляет фазу theta, вычисляя арктангенс y/x в диапазоне от -pi до pi. Особые случаи:
  • Если любой из аргументов является NaN, то результатом является NaN.
  • Если первый аргумент равен положительному нулю, а второй аргумент положителен, или первый аргумент положителен и конечен, а второй аргумент равен положительной бесконечности, то результатом является положительный ноль.
  • Если первый аргумент равен отрицательному нулю, а второй аргумент положителен, или первый аргумент отрицателен и конечен, а второй аргумент равен положительной бесконечности, то результатом является отрицательный ноль.
  • Если первый аргумент равен положительному нулю, а второй аргумент отрицателен, или первый аргумент положителен и конечен, а второй аргумент равен отрицательной бесконечности, то результатом является значение, ближайшее к pi.
  • Если первый аргумент равен отрицательному нулю, а второй аргумент отрицателен, или первый аргумент отрицателен и конечен, а второй аргумент равен отрицательной бесконечности, то результатом является значение, ближайшее к -pi.
  • Если первый аргумент положителен, а второй аргумент равен положительному или отрицательному нулю, или первый аргумент равен положительной бесконечности, а второй аргумент конечен, то результатом является значение, ближайшее к pi/2.
  • Если первый аргумент отрицателен, а второй аргумент равен положительному или отрицательному нулю, или первый аргумент равен отрицательной бесконечности, а второй аргумент конечен, то результатом является значение, ближайшее к -pi/2.
  • Если оба аргумента равны положительной бесконечности, то результатом является значение, ближайшее к pi/4.
  • Если первый аргумент равен положительной бесконечности, а второй аргумент равен отрицательной бесконечности, то результатом является значение, ближайшее к 3*pi/4.
  • Если первый аргумент равен отрицательной бесконечности, а второй аргумент равен положительной бесконечности, то результатом является значение, ближайшее к -pi/4.
  • Если оба аргумента равны отрицательной бесконечности, то результатом является значение, ближайшее к -3*pi/4.
Прим. API:
Для y с положительным знаком и конечным ненулевым x точное математическое значение atan2 равно:
  • Если x > 0, atan(abs(y/x))
  • Если x < 0, π - atan(abs(y/x))
Параметры:
y - ордината
x - абсцисса
Возвращает:
компонента theta точки (r, theta) в полярных координатах, которая соответствует точке (x, y) в декартовых координатах.

pow

public static double pow(double a, double b)
Возвращает значение первого аргумента, возведённого в степень второго аргумента. Особые случаи:
  • Если второй аргумент равен положительному или отрицательному нулю, то результатом является 1.0.
  • Если второй аргумент равен 1.0, то результатом является тот же первый аргумент.
  • Если второй аргумент равен NaN, то результатом является NaN.
  • Если первый аргумент равен NaN, а второй аргумент отличен от нуля, то результатом является NaN.
  • Если
    • абсолютное значение первого аргумента больше 1, а второй аргумент равен положительной бесконечности, или
    • абсолютное значение первого аргумента меньше 1, а второй аргумент равен отрицательной бесконечности,
    то результатом является положительная бесконечность.
  • Если
    • абсолютное значение первого аргумента больше 1, а второй аргумент равен отрицательной бесконечности, или
    • абсолютное значение первого аргумента меньше 1, а второй аргумент равен положительной бесконечности,
    то результатом является положительный ноль.
  • Если абсолютное значение первого аргумента равно 1, а второй аргумент бесконечен, то результатом является NaN.
  • Если
    • первый аргумент равен положительному нулю, а второй аргумент больше нуля, или
    • первый аргумент равен положительной бесконечности, а второй аргумент меньше нуля,
    то результатом является положительный ноль.
  • Если
    • первый аргумент равен положительному нулю, а второй аргумент меньше нуля, или
    • первый аргумент равен положительной бесконечности, а второй аргумент больше нуля,
    то результатом является положительная бесконечность.
  • Если
    • первый аргумент равен отрицательному нулю, а второй аргумент больше нуля, но не конечное нечётное целое число, или
    • первый аргумент равен отрицательной бесконечности, а второй аргумент меньше нуля, но не конечное нечётное целое число,
    то результатом является положительный ноль.
  • Если
    • первый аргумент равен отрицательному нулю, а второй аргумент является положительным конечным нечётным целым числом, или
    • первый аргумент равен отрицательной бесконечности, а второй аргумент является отрицательным конечным нечётным целым числом,
    то результатом является отрицательный ноль.
  • Если
    • первый аргумент равен отрицательному нулю, а второй аргумент меньше нуля, но не конечное нечётное целое число, или
    • первый аргумент равен отрицательной бесконечности, а второй аргумент больше нуля, но не конечное нечётное целое число,
    то результатом является положительная бесконечность.
  • Если
    • первый аргумент равен отрицательному нулю, а второй аргумент является отрицательным конечным нечётным целым числом, или
    • первый аргумент равен отрицательной бесконечности, а второй аргумент является положительным конечным нечётным целым числом,
    то результатом является отрицательная бесконечность.
  • Если первый аргумент конечен и меньше нуля
    • если второй аргумент является конечным чётным целым числом, результат равен результату возведения абсолютного значения первого аргумента в степень второго аргумента
    • если второй аргумент является конечным нечётным целым числом, результат равен отрицанию результата возведения абсолютного значения первого аргумента в степень второго аргумента
    • если второй аргумент конечен и не является целым числом, то результатом является NaN.
  • Если оба аргумента являются целыми числами, то результат точно равен математическому результату возведения первого аргумента в степень второго аргумента, если этот результат может быть точно представлен как значение с double.

(В приведенных выше описаниях, значение с плавающей точкой считается целым числом тогда и только тогда, когда оно конечно и является фиксированной точкой метода ceil или, что эквивалентно, фиксированной точкой метода floor. Значение является фиксированной точкой одноаргументного метода, если и только если результат применения метода к значению равен значению.)

Прим. API:
Определения особых случаев этого метода отличаются от определений особых случаев рекомендуемой операции IEEE 754 для ±1.0 в бесконечной степени. Этот метод рассматривает такие случаи как неопределённые и задаёт возвращение NaN. Спецификация IEEE 754 рассматривает бесконечную степень как большое целое число (числа с плавающей точкой большой величины являются числами, в частности чётными целыми числами), и поэтому задаёт возвращение 1.0.
Параметры:
a - основание.
b - показатель степени.
Возвращает:
значение ab.

round

public static int round(float a)
Возвращает ближайшее int к аргументу, при равенстве — округляет до положительной бесконечности.

Особые случаи:

  • Если аргумент NaN, результат равен 0.
  • Если аргумент отрицательная бесконечность или любое значение, меньшее или равное значению Integer.MIN_VALUE, результат равен значению Integer.MIN_VALUE.
  • Если аргумент положительная бесконечность или любое значение, большее или равное значению Integer.MAX_VALUE, результат равен значению Integer.MAX_VALUE.
Параметры:
a - значение с плавающей запятой, которое нужно округлить до целого.
Возвращает:
значение аргумента, округлённое до ближайшего int значения.
См. также:
  • Integer.MAX_VALUE
  • Integer.MIN_VALUE

round

public static long round(double a)
Возвращает ближайшее long к аргументу, при равенстве — округляет до положительной бесконечности.

Особые случаи:

  • Если аргумент NaN, результат равен 0.
  • Если аргумент отрицательная бесконечность или любое значение, меньшее или равное значению Long.MIN_VALUE, результат равен значению Long.MIN_VALUE.
  • Если аргумент положительная бесконечность или любое значение, большее или равное значению Long.MAX_VALUE, результат равен значению Long.MAX_VALUE.
Параметры:
a - значение с плавающей запятой, которое нужно округлить до long.
Возвращает:
значение аргумента, округлённое до ближайшего long значения.
См. также:
  • Long.MAX_VALUE
  • Long.MIN_VALUE

random

public static double random()
Возвращает double значение с положительным знаком, большее или равное 0.0 и меньшее 1.0. Возвращаемые значения выбираются псевдослучайным образом с (приблизительно) равномерным распределением из этого диапазона.

Когда этот метод вызывается впервые, он создаёт новый генератор псевдослучайных чисел, точно так же, как и по выражению

new java.util.Random()
Этот новый генератор псевдослучайных чисел используется после этого для всех вызовов этого метода и нигде больше.

Этот метод должным образом синхронизирован, чтобы позволить правильное использование более чем одной нитью. Однако, если многим потокам требуется генерировать псевдослучайные числа с высокой скоростью, это может уменьшить конкуренцию, если каждый поток будет иметь свой собственный генератор псевдослучайных чисел.

Возвращает:
псевдослучайное double значение, большее или равное 0.0 и меньшее 1.0.
См. также:
  • Random.nextDouble()

addExact

public static int addExact(int x, int y)
Возвращает сумму своих аргументов, выбрасывая исключение, если результат переполняет int.
Параметры:
x - первое значение
y - второе значение
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат переполняет int
С:
1.8
См. также:
  • Math.addExact(int,int)

addExact

public static long addExact(long x, long y)
Возвращает сумму своих аргументов, выбрасывая исключение, если результат переполняет long.
Параметры:
x - первое значение
y - второе значение
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат переполняет long
С:
1.8
См. также:
  • Math.addExact(long,long)

subtractExact

public static int subtractExact(int x, int y)
Возвращает разность аргументов, выбрасывая исключение, если результат переполняет int.
Параметры:
x - первое значение
y - второе значение для вычитания из первого
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат переполняет int
С:
1.8
См. также:
  • Math.subtractExact(int,int)

subtractExact

public static long subtractExact(long x, long y)
Возвращает разность аргументов, выбрасывая исключение, если результат переполняет long.
Параметры:
x - первое значение
y - второе значение для вычитания из первого
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат переполняет long
С:
1.8
См. также:
  • Math.subtractExact(long,long)

multiplyExact

public static int multiplyExact(int x, int y)
Возвращает произведение аргументов, выбрасывая исключение, если результат переполняет int.
Параметры:
x - первое значение
y - второе значение
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат переполняет int
С:
1.8
См. также:
  • Math.multiplyExact(int,int)

multiplyExact

public static long multiplyExact(long x, int y)
Возвращает произведение аргументов, выбрасывая исключение, если результат переполняет long.
Параметры:
x - первое значение
y - второе значение
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат переполняет long
С:
9
См. также:
  • Math.multiplyExact(long,int)

multiplyExact

public static long multiplyExact(long x, long y)
Возвращает произведение аргументов, выбрасывая исключение, если результат переполняет long.
Параметры:
x - первое значение
y - второе значение
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат переполняет long
С:
1.8
См. также:
  • Math.multiplyExact(long,long)

incrementExact

public static int incrementExact(int a)
Возвращает аргумент, увеличенный на единицу, выбрасывая исключение, если результат переполняет int. Переполнение происходит только для максимального значения.
Параметры:
a - значение для увеличения
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат переполняет int
С:
14
См. также:
  • Math.incrementExact(int)

incrementExact

public static long incrementExact(long a)
Возвращает аргумент, увеличенный на единицу, выбрасывая исключение, если результат переполняет long. Переполнение происходит только для максимального значения.
Параметры:
a - значение для увеличения
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат переполняет long
С:
14
См. также:
  • Math.incrementExact(long)

decrementExact

public static int decrementExact(int a)
Возвращает аргумент, уменьшенный на единицу, выбрасывая исключение, если результат переполняет int. Переполнение происходит только для минимального значения.
Параметры:
a - значение для уменьшения
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат переполняет int
С:
14
См. также:
  • Math.decrementExact(int)

decrementExact

public static long decrementExact(long a)
Возвращает аргумент, уменьшенный на единицу, выбрасывая исключение, если результат переполняет long. Переполнение происходит только для минимального значения.
Параметры:
a - значение для уменьшения
Возвращает:
результат
Выбрасывает:
ArithmeticException - если результат переполняет long
С:
14
См. также:
  • Math.decrementExact(long)
END_OF_DOCUMENT_MARKER

negateExact

public static int negateExact(int a)
Возвращает отрицание аргумента, выбрасывая исключение, если результат выходит за пределы int. Переполнение происходит только для минимального значения.
Parameters:
a - значение для отрицания
Returns:
результат
Throws:
ArithmeticException - если результат выходит за пределы int
Since:
14
See Also:
  • Math.negateExact(int)

negateExact

public static long negateExact(long a)
Возвращает отрицание аргумента, выбрасывая исключение, если результат выходит за пределы long. Переполнение происходит только для минимального значения.
Parameters:
a - значение для отрицания
Returns:
результат
Throws:
ArithmeticException - если результат выходит за пределы long
Since:
14
See Also:
  • Math.negateExact(long)

toIntExact

public static int toIntExact(long value)
Возвращает значение long аргумента, выбрасывая исключение, если значение выходит за пределы int.
Parameters:
value - значение long
Returns:
аргумент как int
Throws:
ArithmeticException - если значение argument выходит за пределы int
Since:
1.8
See Also:
  • Math.toIntExact(long)

multiplyFull

public static long multiplyFull(int x, int y)
Возвращает точное математическое произведение аргументов.
Parameters:
x - первое значение
y - второе значение
Returns:
результат
Since:
9
See Also:
  • Math.multiplyFull(int,int)

multiplyHigh

public static long multiplyHigh(long x, long y)
Возвращает в виде long самые старшие 64 бита 128-битного произведения двух 64-битных множителей.
Parameters:
x - первое значение
y - второе значение
Returns:
результат
Since:
9
See Also:
  • Math.multiplyHigh(long,long)

floorDiv

public static int floorDiv(int x, int y)
Возвращает наибольшее (ближайшее к положительной бесконечности) int значение, которое меньше или равно алгебраическому частному. Есть один особый случай: если делимое равно Integer.MIN_VALUE, а делитель равен -1, то происходит переполнение целых чисел, и результат равен Integer.MIN_VALUE.

См. Math.floorDiv для примеров и сравнения с оператором целочисленного деления /.

Parameters:
x - делимое
y - делитель
Returns:
наибольшее (ближайшее к положительной бесконечности) int значение, которое меньше или равно алгебраическому частному.
Throws:
ArithmeticException - если делитель y равен нулю
Since:
1.8
See Also:
  • Math.floorDiv(int, int)
  • Math.floor(double)

floorDiv

public static long floorDiv(long x, int y)
Возвращает наибольшее (ближайшее к положительной бесконечности) long значение, которое меньше или равно алгебраическому частному. Есть один особый случай: если делимое равно Long.MIN_VALUE, а делитель равен -1, то происходит переполнение целых чисел, и результат равен Long.MIN_VALUE.

См. Math.floorDiv для примеров и сравнения с оператором целочисленного деления /.

Parameters:
x - делимое
y - делитель
Returns:
наибольшее (ближайшее к положительной бесконечности) int значение, которое меньше или равно алгебраическому частному.
Throws:
ArithmeticException - если делитель y равен нулю
Since:
9
See Also:
  • Math.floorDiv(long, int)
  • Math.floor(double)

floorDiv

public static long floorDiv(long x, long y)
Возвращает наибольшее (ближайшее к положительной бесконечности) long значение, которое меньше или равно алгебраическому частному. Есть один особый случай: если делимое равно Long.MIN_VALUE, а делитель равен -1, то происходит переполнение целых чисел, и результат равен Long.MIN_VALUE.

См. Math.floorDiv для примеров и сравнения с оператором целочисленного деления /.

Parameters:
x - делимое
y - делитель
Returns:
наибольшее (ближайшее к положительной бесконечности) long значение, которое меньше или равно алгебраическому частному.
Throws:
ArithmeticException - если делитель y равен нулю
Since:
1.8
See Also:
  • Math.floorDiv(long, long)
  • Math.floor(double)

floorMod

public static int floorMod(int x, int y)
Возвращает остаток от деления по методу floor для аргументов.

Остаток от деления по методу floor — это x - (floorDiv(x, y) * y), имеет тот же знак, что и делитель y, и находится в диапазоне -abs(y) < r < +abs(y).

Связь между floorDiv и floorMod такова:

  • floorDiv(x, y) * y + floorMod(x, y) == x

См. Math.floorMod для примеров и сравнения с оператором %.

Parameters:
x - делимое
y - делитель
Returns:
остаток от деления по методу floor x - (floorDiv(x, y) * y)
Throws:
ArithmeticException - если делитель y равен нулю
Since:
1.8
See Also:
  • Math.floorMod(int, int)
  • floorDiv(int, int)

floorMod

public static int floorMod(long x, int y)
Возвращает остаток от деления по методу floor для аргументов long и int.

Остаток от деления по методу floor — это x - (floorDiv(x, y) * y), имеет тот же знак, что и делитель y, и находится в диапазоне -abs(y) < r < +abs(y).

Связь между floorDiv и floorMod такова:

  • floorDiv(x, y) * y + floorMod(x, y) == x

См. Math.floorMod для примеров и сравнения с оператором %.

Parameters:
x - делимое
y - делитель
Returns:
остаток от деления по методу floor x - (floorDiv(x, y) * y)
Throws:
ArithmeticException - если делитель y равен нулю
Since:
9
See Also:
  • Math.floorMod(long, int)
  • floorDiv(long, int)

floorMod

public static long floorMod(long x, long y)
Возвращает остаток от деления по методу floor для аргументов.

Остаток от деления по методу floor — это x - (floorDiv(x, y) * y), имеет тот же знак, что и делитель y, и находится в диапазоне -abs(y) < r < +abs(y).

Связь между floorDiv и floorMod такова:

  • floorDiv(x, y) * y + floorMod(x, y) == x

См. Math.floorMod для примеров и сравнения с оператором %.

Parameters:
x - делимое
y - делитель
Returns:
остаток от деления по методу floor x - (floorDiv(x, y) * y)
Throws:
ArithmeticException - если делитель y равен нулю
Since:
1.8
See Also:
  • Math.floorMod(long, long)
  • floorDiv(long, long)

abs

public static int abs(int a)
Возвращает абсолютное значение целого int значения. Если аргумент не отрицательный, возвращается сам аргумент. Если аргумент отрицательный, возвращается отрицание аргумента.

Обратите внимание, что если аргумент равен значению Integer.MIN_VALUE, наименьшему представимому отрицательному int значению, результатом будет то же значение, которое является отрицательным. В отличие от этого, метод absExact(int) генерирует исключение ArithmeticException для этого значения.

Параметры:
a - аргумент, для которого нужно определить абсолютное значение.
Возвращает:
абсолютное значение аргумента.
См. также:
  • Math.absExact(int)

absExact

public static int absExact(int a)
Возвращает математическое абсолютное значение целого int значения, если оно точно представимо как int, генерируя ArithmeticException исключение, если результат выходит за пределы положительного диапазона int .

Поскольку диапазон целых чисел со знаком дополнения к двум асимметричен, имея на одну отрицательную величину больше (JLS 4.2.1), математическое абсолютное значение Integer.MIN_VALUE выходит за пределы положительного int диапазона, поэтому для этого аргумента генерируется исключение.

Параметры:
a - аргумент, для которого нужно определить абсолютное значение
Возвращает:
абсолютное значение аргумента, если переполнение не происходит
Исключения:
ArithmeticException - если аргумент равен Integer.MIN_VALUE
С:
15
См. также:
  • Math.abs(int)
  • Math.absExact(int)

abs

public static long abs(long a)
Возвращает абсолютное значение long значения. Если аргумент не отрицательный, возвращается сам аргумент. Если аргумент отрицательный, возвращается отрицание аргумента.

Обратите внимание, что если аргумент равен значению Long.MIN_VALUE, наименьшему представимому отрицательному long значению, результатом будет то же значение, которое является отрицательным. В отличие от этого, метод absExact(long) генерирует исключение ArithmeticException для этого значения.

Параметры:
a - аргумент, для которого нужно определить абсолютное значение.
Возвращает:
абсолютное значение аргумента.
См. также:
  • Math.absExact(long)

absExact

public static long absExact(long a)
Возвращает математическое абсолютное значение long значения, если оно точно представимо как long, генерируя ArithmeticException исключение, если результат выходит за пределы положительного диапазона long .

Поскольку диапазон целых чисел со знаком дополнения к двум асимметричен, имея на одну отрицательную величину больше (JLS 4.2.1), математическое абсолютное значение Long.MIN_VALUE выходит за пределы положительного long диапазона, поэтому для этого аргумента генерируется исключение.

Параметры:
a - аргумент, для которого нужно определить абсолютное значение
Возвращает:
абсолютное значение аргумента, если переполнение не происходит
Исключения:
ArithmeticException - если аргумент равен Long.MIN_VALUE
С:
15
См. также:
  • Math.abs(long)
  • Math.absExact(long)

abs

public static float abs(float a)
Возвращает абсолютное значение float значения. Если аргумент не отрицательный, возвращается сам аргумент. Если аргумент отрицательный, возвращается отрицание аргумента. Специальные случаи:
  • Если аргумент равен положительному или отрицательному нулю, результат равен положительному нулю.
  • Если аргумент равен бесконечности, результат равен положительной бесконечности.
  • Если аргумент равен NaN, результат равен NaN.
Примечание API:
Как следует из вышесказанного, одно из допустимых реализаций этого метода дается выражением ниже, которое вычисляет float с тем же показателем и мантиссой, что и аргумент, но с гарантированным нулевым битом знака, указывающим на положительное значение:
Float.intBitsToFloat(0x7fffffff & Float.floatToRawIntBits(a))
Параметры:
a - аргумент, для которого нужно определить абсолютное значение
Возвращает:
абсолютное значение аргумента.

abs

public static double abs(double a)
Возвращает абсолютное значение double значения. Если аргумент не отрицательный, возвращается сам аргумент. Если аргумент отрицательный, возвращается отрицание аргумента. Специальные случаи:
  • Если аргумент равен положительному или отрицательному нулю, результат равен положительному нулю.
  • Если аргумент равен бесконечности, результат равен положительной бесконечности.
  • Если аргумент равен NaN, результат равен NaN.
Примчание API:
Как следует из вышесказанного, одно из допустимых реализаций этого метода дается выражением ниже, которое вычисляет double с тем же показателем и мантиссой, что и аргумент, но с гарантированным нулевым битом знака, указывающим на положительное значение:
Double.longBitsToDouble((Double.doubleToRawLongBits(a)<<1)>>>1)
Параметры:
a - аргумент, для которого нужно определить абсолютное значение
Возвращает:
абсолютное значение аргумента.

max

public static int max(int a, int b)
Возвращает большее из двух int значений. То есть, результатом является аргумент, более близкий к значению Integer.MAX_VALUE. Если аргументы имеют одинаковое значение, результатом является это же значение.
Параметры:
a - аргумент.
b - другой аргумент.
Возвращает:
большее из a и b.

max

public static long max(long a, long b)
Возвращает большее из двух long значений. То есть, результатом является аргумент, более близкий к значению Long.MAX_VALUE. Если аргументы имеют одинаковое значение, результатом является это же значение.
Параметры:
a - аргумент.
b - другой аргумент.
Возвращает:
большее из a и b.

max

public static float max(float a, float b)
Возвращает большее из двух float значений. То есть, результатом является аргумент, более близкий к положительной бесконечности. Если аргументы имеют одинаковое значение, результатом является это же значение. Если какое-либо значение равно NaN, то результатом является NaN. В отличие от операторов числового сравнения, этот метод рассматривает отрицательный ноль как строго меньший, чем положительный ноль. Если один аргумент равен положительному нулю, а другой — отрицательному нулю, результатом является положительный ноль.
Параметры:
a - аргумент.
b - другой аргумент.
Возвращает:
большее из a и b.

max

public static double max(double a, double b)
Возвращает большее из двух double значений. То есть, результатом является аргумент, более близкий к положительной бесконечности. Если аргументы имеют одинаковое значение, результатом является это же значение. Если какое-либо значение равно NaN, то результатом является NaN. В отличие от операторов числового сравнения, этот метод рассматривает отрицательный ноль как строго меньший, чем положительный ноль. Если один аргумент равен положительному нулю, а другой — отрицательному нулю, результатом является положительный ноль.
Параметры:
a - аргумент.
b - другой аргумент.
Возвращает:
большее из a и b.

min

public static int min(int a, int b)
Возвращает меньшее из двух int значений. То есть, результатом является аргумент, более близкий к значению Integer.MIN_VALUE. Если аргументы имеют одинаковое значение, результатом является это же значение.
Параметры:
a - аргумент.
b - другой аргумент.
Возвращает:
меньшее из a и b.

min

public static long min(long a, long b)
Возвращает меньшее из двух long значений. То есть, результатом является аргумент, более близкий к значению Long.MIN_VALUE. Если аргументы имеют одинаковое значение, результатом является это же значение.
Параметры:
a - аргумент.
b - другой аргумент.
Возвращает:
меньшее из a и b.

min

public static float min(float a, float b)
Возвращает меньшее из двух float значений. То есть, результатом является значение, более близкое к отрицательной бесконечности. Если аргументы имеют одинаковое значение, результатом является это же значение. Если какое-либо значение равно NaN, то результатом является NaN. В отличие от операторов числового сравнения, этот метод рассматривает отрицательный ноль как строго меньший, чем положительный ноль. Если один аргумент равен положительному нулю, а другой — отрицательному нулю, результатом является отрицательный ноль.
Параметры:
a - аргумент.
b - другой аргумент.
Возвращает:
меньшее из a и b.

min

public static double min(double a, double b)
Возвращает меньшее из двух double значений. То есть результат — значение, более близкое к отрицательной бесконечности. Если аргументы имеют одинаковое значение, результат — это то же самое значение. Если какое-либо значение равно NaN, результат — NaN. В отличие от операторов численного сравнения, этот метод рассматривает отрицательный ноль как строго меньший, чем положительный ноль. Если один аргумент — положительный ноль, а другой — отрицательный ноль, результат — отрицательный ноль.
Параметры:
a - аргумент.
b - другой аргумент.
Возвращает:
меньшее из a и b.

fma

public static double fma(double a, double b, double c)
Возвращает результат операции умножения-сложения (fused multiply-add) для трёх аргументов; то есть, возвращает точный результат произведения первых двух аргументов, сложенного с третьим аргументом, и затем округлённого один раз до ближайшего double. Округление выполняется с использованием режима округления до ближайшего чётного. В отличие от случая, если a * b + c вычисляется как обычное выражение с плавающей запятой, участвуют две ошибки округления: первая — для операции умножения, вторая — для операции сложения.

Особые случаи:

  • Если какой-либо аргумент равен NaN, результат — NaN.
  • Если один из первых двух аргументов является бесконечностью, а другой — нулём, результат — NaN.
  • Если точное произведение первых двух аргументов является бесконечностью (иными словами, по крайней мере один из аргументов является бесконечностью, а другой не равен нулю и не является NaN), а третий аргумент — бесконечность противоположного знака, результат — NaN.

Обратите внимание, что fusedMac(a, 1.0, c) возвращает тот же результат, что и (a + c) Однако fusedMac(a, b, +0.0) не всегда возвращает тот же результат, что и (a * b) так как fusedMac(-0.0, +0.0, +0.0) +0.0, в то время как (-0.0 * +0.0) — -0.0; fusedMac(a, b, -0.0) эквивалентно (a * b).

Примечание API:
Этот метод соответствует операции fusedMultiplyAdd, определённой в IEEE 754-2008.
Параметры:
a - значение
b - значение
c - значение
Возвращает:
(a × b + c), вычисленное так, как если бы с неограниченным диапазоном и точностью, и округлённое один раз до ближайшего double значения
С версии:
9

fma

public static float fma(float a, float b, float c)
Возвращает результат операции умножения-сложения (fused multiply-add) для трёх аргументов; то есть, возвращает точный результат произведения первых двух аргументов, сложенного с третьим аргументом, и затем округлённого один раз до ближайшего float. Округление выполняется с использованием режима округления до ближайшего чётного. В отличие от случая, если a * b + c вычисляется как обычное выражение с плавающей запятой, участвуют две ошибки округления: первая — для операции умножения, вторая — для операции сложения.

Особые случаи:

  • Если какой-либо аргумент равен NaN, результат — NaN.
  • Если один из первых двух аргументов является бесконечностью, а другой — нулём, результат — NaN.
  • Если точное произведение первых двух аргументов является бесконечностью (иными словами, по крайней мере один из аргументов является бесконечностью, а другой не равен нулю и не является NaN), а третий аргумент — бесконечность противоположного знака, результат — NaN.

Обратите внимание, что fma(a, 1.0f, c) возвращает тот же результат, что и (a + c) Однако fma(a, b, +0.0f) не всегда возвращает тот же результат, что и (a * b) так как fma(-0.0f, +0.0f, +0.0f) +0.0f, в то время как (-0.0f * +0.0f) — -0.0f; fma(a, b, -0.0f) эквивалентно (a * b).

Примечание API:
Этот метод соответствует операции fusedMultiplyAdd, определённой в IEEE 754-2008.
Параметры:
a - значение
b - значение
c - значение
Возвращает:
(a × b + c), вычисленное так, как если бы с неограниченным диапазоном и точностью, и округлённое один раз до ближайшего float значения
С версии:
9

ulp

public static double ulp(double d)
Возвращает размер ulp аргумента. Ulp, единица в последнем разряде, значения с плавающей запятой — это положительное расстояние между этим значением с плавающей запятой и double значением с плавающей запятой, следующим за ним по величине. Обратите внимание, что для не-NaN x, ulp(-x) == ulp(x).

Особые случаи:

  • Если аргумент равен NaN, результат — NaN.
  • Если аргумент равен положительной или отрицательной бесконечности, результат — положительная бесконечность.
  • Если аргумент равен положительному или отрицательному нулю, результат — Double.MIN_VALUE.
  • Если аргумент равен ±Double.MAX_VALUE, результат равен 2971.
Параметры:
d - значение с плавающей запятой, для которого необходимо получить ulp
Возвращает:
размер ulp аргумента
С версии:
1.5

ulp

public static float ulp(float f)
Возвращает размер ulp аргумента. Ulp, единица в последнем разряде, значения с плавающей запятой — это положительное расстояние между этим значением с плавающей запятой и float значением с плавающей запятой, следующим за ним по величине. Обратите внимание, что для не-NaN x, ulp(-x) == ulp(x).

Особые случаи:

  • Если аргумент равен NaN, результат — NaN.
  • Если аргумент равен положительной или отрицательной бесконечности, результат — положительная бесконечность.
  • Если аргумент равен положительному или отрицательному нулю, результат — Float.MIN_VALUE.
  • Если аргумент равен ±Float.MAX_VALUE, результат равен 2104.
Параметры:
f - значение с плавающей запятой, для которого необходимо получить ulp
Возвращает:
размер ulp аргумента
С версии:
1.5

signum

public static double signum(double d)
Возвращает функцию signum аргумента; ноль, если аргумент равен нулю, 1.0, если аргумент больше нуля, -1.0, если аргумент меньше нуля.

Особые случаи:

  • Если аргумент равен NaN, результат — NaN.
  • Если аргумент равен положительному или отрицательному нулю, результат — такой же, как аргумент.
Параметры:
d - значение с плавающей запятой, для которого необходимо получить signum
Возвращает:
функция signum аргумента
С версии:
1.5

signum

public static float signum(float f)
Возвращает функцию signum аргумента; ноль, если аргумент равен нулю, 1.0f, если аргумент больше нуля, -1.0f, если аргумент меньше нуля.

Особые случаи:

  • Если аргумент равен NaN, результат — NaN.
  • Если аргумент равен положительному или отрицательному нулю, результат — такой же, как аргумент.
Параметры:
f - значение с плавающей запятой, для которого необходимо получить signum
Возвращает:
функция signum аргумента
С версии:
1.5

sinh

public static double sinh(double x)
Возвращает гиперболический синус значения с плавающей запятой. Гиперболический синус x определяется как (ex - e-x)/2, где e — число Эйлера.

Особые случаи:

  • Если аргумент равен NaN, результат — NaN.
  • Если аргумент равен бесконечности, результат — бесконечность с тем же знаком, что и аргумент.
  • Если аргумент равен нулю, результат — ноль с тем же знаком, что и аргумент.
Параметры:
x - Число, гиперболический синус которого требуется вернуть.
Возвращает:
Гиперболический синус x.
С версии:
1.5

cosh

public static double cosh(double x)
Возвращает гиперболический косинус значения с плавающей запятой. Гиперболический косинус x определяется как (ex + e-x)/2, где e — число Эйлера.

Особые случаи:

  • Если аргумент равен NaN, результат — NaN.
  • Если аргумент равен бесконечности, результат — положительная бесконечность.
  • Если аргумент равен нулю, результат — 1.0.
Параметры:
x - Число, гиперболический косинус которого требуется вернуть.
Возвращает:
Гиперболический косинус x.
С версии:
1.5

tanh

public static double tanh(double x)
Возвращает гиперболический тангенс значения с плавающей запятой. Гиперболический тангенс x определяется как (ex - e-x)/(ex + e-x), другими словами, sinh(x)/cosh(x). Обратите внимание, что абсолютное значение точного тангенса всегда меньше 1.

Особые случаи:

  • Если аргумент равен NaN, результат — NaN.
  • Если аргумент равен нулю, результат — ноль с тем же знаком, что и аргумент.
  • Если аргумент равен положительной бесконечности, результат — +1.0.
  • Если аргумент равен отрицательной бесконечности, результат — -1.0.
Параметры:
x - Число, гиперболический тангенс которого требуется вернуть.
Возвращает:
Гиперболический тангенс x.
С версии:
1.5

hypot

public static double hypot(double x, double y)
Возвращает sqrt(x2 +y2) без промежуточного переполнения или потери точности.

Особые случаи:

  • Если любой из аргументов бесконечен, то результат — положительная бесконечность.
  • Если любой из аргументов — NaN, и ни один из аргументов не бесконечен, то результат — NaN.
  • Если оба аргумента равны нулю, результат — положительный ноль.
Параметры:
x - значение
y - значение
Возвращает:
sqrt(x2 +y2) без промежуточного переполнения или потери точности
С:
1.5

expm1

public static double expm1(double x)
Возвращает ex -1. Обратите внимание, что для значений x, близких к 0, точная сумма expm1(x) + 1 намного ближе к истинному результату ex, чем exp(x).

Особые случаи:

  • Если аргумент — NaN, результат — NaN.
  • Если аргумент — положительная бесконечность, то результат — положительная бесконечность.
  • Если аргумент — отрицательная бесконечность, то результат — -1,0.
  • Если аргумент — ноль, то результат — ноль с тем же знаком, что и аргумент.
Параметры:
x - показатель степени, к которой нужно возвести e в вычислении ex -1.
Возвращает:
значение ex - 1.
С:
1.5

log1p

public static double log1p(double x)
Возвращает натуральный логарифм суммы аргумента и 1. Обратите внимание, что для малых значений x, результат log1p(x) намного ближе к истинному результату ln(1 + x) чем поточно-точечная оценка log(1.0+x).

Особые случаи:

  • Если аргумент — NaN или меньше -1, то результат — NaN.
  • Если аргумент — положительная бесконечность, то результат — положительная бесконечность.
  • Если аргумент — минус один, то результат — минус бесконечность.
  • Если аргумент — ноль, то результат — ноль с тем же знаком, что и аргумент.
Параметры:
x - значение
Возвращает:
значение ln(x + 1), натуральный логарифм x + 1
С:
1.5

copySign

public static double copySign(double magnitude, double sign)
Возвращает первый числовой аргумент с знаком второго числового аргумента. В этом методе NaN sign аргумент всегда обрабатывается как положительный.
Параметры:
magnitude - параметр, определяющий величину результата
sign - параметр, определяющий знак результата
Возвращает:
значение с величиной magnitude и знаком sign.
С:
1.6

copySign

public static float copySign(float magnitude, float sign)
Возвращает первый числовой аргумент с знаком второго числового аргумента. Для этого метода аргумент NaN sign всегда обрабатывается как положительный.
Параметры:
magnitude - параметр, определяющий величину результата
sign - параметр, определяющий знак результата
Возвращает:
значение с величиной magnitude и знаком sign.
С:
1.6

getExponent

public static int getExponent(float f)
Возвращает несмещённый показатель степени, используемый в представлении float. Особые случаи:
  • Если аргумент — NaN или бесконечность, то результат — Float.MAX_EXPONENT + 1.
  • Если аргумент — ноль или подобъект, то результат — Float.MIN_EXPONENT -1.
Параметры:
f - значение float
Возвращает:
несмещённый показатель степени аргумента
С:
1.6

getExponent

public static int getExponent(double d)
Возвращает несмещённый показатель степени, используемый в представлении double. Особые случаи:
  • Если аргумент — NaN или бесконечность, то результат — Double.MAX_EXPONENT + 1.
  • Если аргумент — ноль или подобъект, то результат — Double.MIN_EXPONENT -1.
Параметры:
d - значение double
Возвращает:
несмещённый показатель степени аргумента
С:
1.6

nextAfter

public static double nextAfter(double start, double direction)
Возвращает число с плавающей точкой, смежное с первым аргументом в направлении второго аргумента. Если оба аргумента сравниваются как равные, возвращается второй аргумент.

Особые случаи:

  • Если любой из аргументов — NaN, возвращается NaN.
  • Если оба аргумента — знаковые нули, возвращается direction без изменений (как подразумевается требованием возвращения второго аргумента, если аргументы сравниваются как равные).
  • Если start равно ±Double.MIN_VALUE и direction имеет значение, такое что результат должен иметь меньшую величину, возвращается ноль с тем же знаком, что и start.
  • Если start — бесконечность и direction имеет значение, такое что результат должен иметь меньшую величину, возвращается Double.MAX_VALUE с тем же знаком, что и start.
  • Если start равно ± Double.MAX_VALUE и direction имеет значение, такое что результат должен иметь большую величину, возвращается бесконечность с тем же знаком, что и start.
Параметры:
start - начальное значение с плавающей точкой
direction - значение, указывающее, какой из соседей start или start должен быть возвращён
Возвращает:
Число с плавающей точкой, смежное с start в направлении direction.
С:
1.6

nextAfter

public static float nextAfter(float start, double direction)
Возвращает число с плавающей точкой, смежное с первым аргументом в направлении второго аргумента. Если оба аргумента сравниваются как равные, возвращается значение, эквивалентное второму аргументу.

Особые случаи:

  • Если любой из аргументов — NaN, возвращается NaN.
  • Если оба аргумента — знаковые нули, возвращается значение, эквивалентное direction.
  • Если start равно ±Float.MIN_VALUE и direction имеет значение, такое что результат должен иметь меньшую величину, возвращается ноль с тем же знаком, что и start.
  • Если start — бесконечность и direction имеет значение, такое что результат должен иметь меньшую величину, возвращается Float.MAX_VALUE с тем же знаком, что и start.
  • Если start равно ± Float.MAX_VALUE и direction имеет значение, такое что результат должен иметь большую величину, возвращается бесконечность с тем же знаком, что и start.
Параметры:
start - начальное значение с плавающей точкой
direction - значение, указывающее, какой из соседей start или start должен быть возвращён
Возвращает:
Число с плавающей точкой, смежное с start в направлении direction.
С:
1.6

nextUp

public static double nextUp(double d)
Возвращает значение с плавающей точкой, смежное с d в направлении положительной бесконечности. Этот метод семантически эквивалентен nextAfter(d, Double.POSITIVE_INFINITY); однако, реализация nextUp может выполняться быстрее, чем эквивалентный вызов nextAfter.

Особые случаи:

  • Если аргумент — NaN, результат — NaN.
  • Если аргумент — положительная бесконечность, результат — положительная бесконечность.
  • Если аргумент — ноль, результат — Double.MIN_VALUE
Параметры:
d - начальное значение с плавающей точкой
Возвращает:
Смежное значение с плавающей точкой, более близкое к положительной бесконечности.
С:
1.6

nextUp

public static float nextUp(float f)
Возвращает значение с плавающей точкой, смежное с f в направлении положительной бесконечности. Этот метод семантически эквивалентен nextAfter(f, Float.POSITIVE_INFINITY); однако, реализация nextUp может выполняться быстрее, чем эквивалентный вызов nextAfter.

Особые случаи:

  • Если аргумент — NaN, результат — NaN.
  • Если аргумент — положительная бесконечность, результат — положительная бесконечность.
  • Если аргумент — ноль, результат — Float.MIN_VALUE
Параметры:
f - начальное значение с плавающей точкой
Возвращает:
Смежное значение с плавающей точкой, более близкое к положительной бесконечности.
С:
1.6

nextDown

public static double nextDown(double d)
Возвращает значение с плавающей запятой, смежное с d в направлении отрицательной бесконечности. Этот метод семантически эквивалентен nextAfter(d, Double.NEGATIVE_INFINITY); однако, реализация nextDown может выполняться быстрее, чем эквивалентный вызов nextAfter.

Особые случаи:

  • Если аргумент является NaN, результатом является NaN.
  • Если аргумент является отрицательной бесконечностью, результатом является отрицательная бесконечность.
  • Если аргумент равен нулю, результатом является -Double.MIN_VALUE
Параметры:
d - начальное значение с плавающей запятой
Возвращает:
Смежное значение с плавающей запятой, более близкое к отрицательной бесконечности.
С:
1.8

nextDown

public static float nextDown(float f)
Возвращает значение с плавающей запятой, смежное с f в направлении отрицательной бесконечности. Этот метод семантически эквивалентен nextAfter(f, Float.NEGATIVE_INFINITY); однако, реализация nextDown может выполняться быстрее, чем эквивалентный вызов nextAfter.

Особые случаи:

  • Если аргумент является NaN, результатом является NaN.
  • Если аргумент является отрицательной бесконечностью, результатом является отрицательная бесконечность.
  • Если аргумент равен нулю, результатом является -Float.MIN_VALUE
Параметры:
f - начальное значение с плавающей запятой
Возвращает:
Смежное значение с плавающей запятой, более близкое к отрицательной бесконечности.
С:
1.8

scalb

public static double scalb(double d, int scaleFactor)
Возвращает d × 2scaleFactor, округлённое так, как если бы оно было выполнено одним правильно округлённым умножением с плавающей запятой. Если показатель степени результата находится между Double.MIN_EXPONENT и Double.MAX_EXPONENT, ответ вычисляется точно. Если показатель степени результата будет больше Double.MAX_EXPONENT, возвращается бесконечность. Обратите внимание, что если результат является поднормальным, то точность может быть потеряна; то есть, когда scalb(x, n) является поднормальным, scalb(scalb(x, n), -n) может не равняться x. Когда результат не NaN, результат имеет тот же знак, что и d.

Особые случаи:

  • Если первый аргумент NaN, возвращается NaN.
  • Если первый аргумент бесконечен, возвращается бесконечность того же знака.
  • Если первый аргумент равен нулю, возвращается ноль того же знака.
Параметры:
d - число, которое нужно масштабировать с помощью степени двойки.
scaleFactor - степень двойки, используемая для масштабирования d
Возвращает:
d × 2scaleFactor
С:
1.6

scalb

public static float scalb(float f, int scaleFactor)
Возвращает f × 2scaleFactor, округлённое так, как если бы оно было выполнено одним правильно округлённым умножением с плавающей запятой. Если показатель степени результата находится между Float.MIN_EXPONENT и Float.MAX_EXPONENT, ответ вычисляется точно. Если показатель степени результата будет больше Float.MAX_EXPONENT, возвращается бесконечность. Обратите внимание, что если результат является поднормальным, то точность может быть потеряна; то есть, когда scalb(x, n) является поднормальным, scalb(scalb(x, n), -n) может не равняться x. Когда результат не NaN, результат имеет тот же знак, что и f.

Особые случаи:

  • Если первый аргумент NaN, возвращается NaN.
  • Если первый аргумент бесконечен, возвращается бесконечность того же знака.
  • Если первый аргумент равен нулю, возвращается ноль того же знака.
Параметры:
f - число, которое нужно масштабировать с помощью степени двойки.
scaleFactor - степень двойки, используемая для масштабирования f
Возвращает:
f × 2scaleFactor
С:
1.6

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/StrictMath.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API