Spec-Zone.ru › OpenJDK 27

Класс Float16

java.lang.Object
java.lang.Number
jdk.incubator.vector.Float16
Все реализованные интерфейсы:
Serializable, Comparable<Float16>
public final class Float16 extends Number implements Comparable<Float16>
Float16 — это класс, содержащий 16-битные данные в формате IEEE 754 binary16.

Формат binary16:
S EEEEE MMMMMMMMMM
Знак — 1 бит
Порядок — 5 бит
Значащая часть — 10 бит (не включает неявный бит, определяемый по порядку; см. PRECISION)

Если не указано иное, методы этого класса используют политику округления (JLS §15.4) округления до ближайшего.

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

Равенство, эквивалентность и сравнение чисел с плавающей точкой

В классе java.lang.Double приведено обсуждение равенства, эквивалентности и сравнения чисел с плавающей точкой, которое в равной степени применимо к значениям Float16.

Проблемы преобразования между десятичной и двоичной системами

Обсуждение проблем преобразования двоичных чисел в десятичные в java.lang.Double также применимо к значениям Float16.
Примечание к API:
Методы этого класса, как правило, имеют аналогичные методы в Float/Double или Math/StrictMath. Если не указано иное, обработка особыми значениями с плавающей точкой, такими как значения NaN, бесконечности и числа с нулевым значением и знаком, в методах этого класса полностью аналогична обработке соответствующих случаев методами в Float, Double, Math и т. д.
Начиная с:
24
См. также:
  • Стандарт IEEE для арифметики с плавающей точкой
  • Сериализованная форма

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

Модификатор и тип Поле Описание
static final int BYTES
Количество байтов, используемых для представления значения Float16: 2.
static final int MAX_EXPONENT
Максимальное значение порядка, которое может иметь конечная переменная Float16: 15.
static final Float16 MAX_VALUE
Константа, содержащая наибольшее положительное конечное значение типа Float16: (2-2-10)·215, численно равное 65504.0.
static final int MIN_EXPONENT
Минимальное значение порядка, которое может иметь нормализованная переменная Float16: -14.
static final Float16 MIN_NORMAL
Константа, содержащая наименьшее положительное нормальное значение типа Float16: 2-14.
static final Float16 MIN_VALUE
Константа, содержащая наименьшее положительное ненулевое значение типа Float16: 2-24.
static final Float16 NaN
Константа, содержащая значение «не число» (NaN) типа Float16.
static final Float16 NEGATIVE_INFINITY
Константа, содержащая отрицательную бесконечность типа Float16.
static final Float16 POSITIVE_INFINITY
Константа, содержащая положительную бесконечность типа Float16.
static final int PRECISION
Количество битов в значащей части значения Float16: 11.
static final int SIZE
Количество битов, используемых для представления значения Float16: 16.

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

Модификатор и тип Метод Описание
static Float16 abs(Float16 f16)
Возвращает абсолютное значение аргумента.
static Float16 add(Float16 addend, Float16 augend)
Складывает два значения Float16 в соответствии с семантикой оператора +, используя политику округления до ближайшего.
byte byteValue()
Возвращает значение этого Float16 как byte после сужающего примитивного преобразования.
static int compare(Float16 f1, Float16 f2)
Сравнивает два указанных значения Float16.
int compareTo(Float16 anotherFloat16)
Сравнивает два объекта Float16 по числовому значению.
static Float16 copySign(Float16 magnitude, Float16 sign)
Возвращает первый аргумент с плавающей точкой со знаком второго аргумента с плавающей точкой.
static Float16 divide(Float16 dividend, Float16 divisor)
Делит два значения Float16 в соответствии с семантикой оператора /, используя политику округления до ближайшего.
double doubleValue()
Возвращает значение этого Float16 как double после расширяющего примитивного преобразования.
boolean equals(Object obj)
Сравнивает этот объект с указанным объектом.
static short float16ToRawShortBits(Float16 f16)
Возвращает представление указанного значения с плавающей точкой в соответствии с расположением битов IEEE 754 binary16.
static short float16ToShortBits(Float16 f16)
Возвращает представление указанного значения с плавающей точкой в соответствии с расположением битов IEEE 754 binary16.
float floatValue()
Возвращает значение этого Float16 как float после расширяющего примитивного преобразования.
static Float16 fma(Float16 a, Float16 b, Float16 c)
Возвращает результат слитного умножения с накоплением трех аргументов, то есть точное произведение первых двух аргументов, сложенное с третьим аргументом, с последующим однократным округлением до ближайшего значения Float16.
static int getExponent(Float16 f16)
Возвращает смещенный порядок, используемый в представлении Float16.
int hashCode()
Возвращает хеш-код этого объекта Float16.
static int hashCode(Float16 value)
Возвращает хеш-код значения Float16; совместим с Float16.hashCode().
int intValue()
Возвращает значение этого Float16 как int после сужающего примитивного преобразования.
static boolean isFinite(Float16 f16)
Возвращает true, если аргумент является конечным значением с плавающей точкой; в противном случае возвращает false (для аргументов NaN и бесконечности).
static boolean isInfinite(Float16 f16)
Возвращает true, если указанное число бесконечно велико по модулю, и false в противном случае.
static boolean isNaN(Float16 f16)
Возвращает true, если указанное число является значением «не число» (NaN), и false в противном случае.
long longValue()
Возвращает значение этого Float16 как long после сужающего примитивного преобразования.
static Float16 max(Float16 a, Float16 b)
Возвращает большее из двух значений Float16.
static Float16 min(Float16 a, Float16 b)
Возвращает меньшее из двух значений Float16.
static Float16 multiply(Float16 multiplier, Float16 multiplicand)
Умножает два значения Float16 в соответствии с семантикой оператора *, используя политику округления до ближайшего.
static Float16 negate(Float16 f16)
Возвращает противоположное значение аргумента.
static Float16 nextDown(Float16 v)
Возвращает значение с плавающей точкой, соседнее с v в направлении отрицательной бесконечности.
static Float16 nextUp(Float16 v)
Возвращает значение с плавающей точкой, соседнее с v в направлении положительной бесконечности.
static Float16 scalb(Float16 v, int scaleFactor)
Возвращает v × 2scaleFactor, округленное так, как если бы оно было получено в результате одного корректно округленного умножения с плавающей точкой.
static Float16 shortBitsToFloat16(short bits)
Возвращает значение Float16, соответствующее заданному битовому представлению.
short shortValue()
Возвращает значение этого Float16 как short после сужающего примитивного преобразования.
static Float16 signum(Float16 f)
Возвращает знаковую функцию аргумента: ноль, если аргумент равен нулю; 1.0, если аргумент больше нуля; -1.0, если аргумент меньше нуля.
static Float16 sqrt(Float16 radicand)
Возвращает квадратный корень операнда.
static Float16 subtract(Float16 minuend, Float16 subtrahend)
Вычитает два значения Float16 в соответствии с семантикой оператора -, используя политику округления до ближайшего.
static String toHexString(Float16 f16)
Возвращает строковое представление аргумента Float16 в шестнадцатеричном формате.
String toString()
Возвращает строковое представление этого Float16.
static String toString(Float16 f16)
Возвращает строковое представление аргумента Float16.
static Float16 ulp(Float16 f16)
Возвращает размер ULP аргумента.
static Float16 valueOf(double d)
Возвращает значение Float16, округленное из аргумента double с использованием политики округления до ближайшего.
static Float16 valueOf(float f)
Возвращает значение Float16, округленное из аргумента float с использованием политики округления до ближайшего.
static Float16 valueOf(int value)
Возвращает значение типа int, преобразованное в Float16.
static Float16 valueOf(long value)
Возвращает значение типа long, преобразованное в Float16.
static Float16 valueOf(String s)
Возвращает объект Float16, содержащий значение с плавающей точкой, представленное строкой-аргументом.
static Float16 valueOf(BigDecimal v)
Возвращает значение Float16, округленное из аргумента BigDecimal с использованием политики округления до ближайшего.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, подлежит удалению: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

POSITIVE_INFINITY

public static final Float16 POSITIVE_INFINITY
Константа, содержащая положительную бесконечность типа Float16.
См. также:
  • Float.POSITIVE_INFINITY
  • Double.POSITIVE_INFINITY

NEGATIVE_INFINITY

public static final Float16 NEGATIVE_INFINITY
Константа, содержащая отрицательную бесконечность типа Float16.
См. также:
  • Float.NEGATIVE_INFINITY
  • Double.NEGATIVE_INFINITY

NaN

public static final Float16 NaN
Константа, содержащая значение «не число» (NaN) типа Float16.
См. также:
  • Float.NaN
  • Double.NaN

MAX_VALUE

public static final Float16 MAX_VALUE
Константа, содержащая наибольшее положительное конечное значение типа Float16, (2-2-10)·215, численно равное 65504.0.
См. также:
  • Float.MAX_VALUE
  • Double.MAX_VALUE

MIN_NORMAL

public static final Float16 MIN_NORMAL
Константа, содержащая наименьшее положительное нормальное значение типа Float16, 2-14.
См. также:
  • Float.MIN_NORMAL
  • Double.MIN_NORMAL

MIN_VALUE

public static final Float16 MIN_VALUE
Константа, содержащая наименьшее положительное ненулевое значение типа Float16, 2-24.
См. также:
  • Float.MIN_VALUE
  • Double.MIN_VALUE

SIZE

public static final int SIZE
Количество битов, используемых для представления значения Float16: 16.
См. также:
  • Float.SIZE
  • Double.SIZE
  • Значения константных полей

PRECISION

public static final int PRECISION
Количество битов в мантиссе значения Float16: 11. Это соответствует параметру N в разделе §4.2.3 Спецификации языка Java.
См. также:
  • Float.PRECISION
  • Double.PRECISION
  • Значения константных полей

MAX_EXPONENT

public static final int MAX_EXPONENT
Максимальное значение экспоненты конечной переменной Float16: 15. Оно равно значению, возвращаемому методом Float16.getExponent(Float16.MAX_VALUE).
См. также:
  • Float.MAX_EXPONENT
  • Double.MAX_EXPONENT
  • Значения константных полей

MIN_EXPONENT

public static final int MIN_EXPONENT
Минимальное значение экспоненты нормализованной переменной Float16: -14. Оно равно значению, возвращаемому методом Float16.getExponent(Float16.MIN_NORMAL).
См. также:
  • Float.MIN_EXPONENT
  • Double.MIN_EXPONENT
  • Значения константных полей

BYTES

public static final int BYTES
Количество байтов, используемых для представления значения Float16: 2.
См. также:
  • Float.BYTES
  • Double.BYTES
  • Значения константных полей

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

toString

public static String toString(Float16 f16)
Возвращает строковое представление аргумента Float16. Поведение этого метода аналогично методу Float.toString(float) при обработке специальных значений (знаковых нулей, бесконечностей и NaN) и создании десятичной строки, которая при обратном преобразовании даст значение аргумента. Однако диапазон для обычной записи определен как интервал [10-3, 103), а не интервал, используемый для float и double.
Параметры:
f16 — Float16, который требуется преобразовать.
Возвращает:
строковое представление аргумента.
См. также:
  • Float.toString(float)

toHexString

public static String toHexString(Float16 f16)
Возвращает шестнадцатеричное строковое представление аргумента Float16. Поведение этого класса аналогично методу Float.toHexString(float), за исключением того, что для субнормальных значений Float16 используется значение экспоненты "p-14".
Примечание API:
Этот метод соответствует операции convertToHexCharacter, определенной в IEEE 754.
Параметры:
f16 — Float16, который требуется преобразовать.
Возвращает:
шестнадцатеричное строковое представление аргумента.
См. также:
  • Float.toHexString(float)
  • Double.toHexString(double)

valueOf

public static Float16 valueOf(int value)
Возвращает значение типа Float16, полученное преобразованием значения int.
Примечание API:
Этот метод соответствует операции convertFromInt, определенной в IEEE 754.
Параметры:
value — значение int.
Возвращает:
значение типа Float16, полученное преобразованием значения int

valueOf

public static Float16 valueOf(long value)
Возвращает значение типа Float16, полученное преобразованием значения long.
Примечание API:
Этот метод соответствует операции convertFromInt, определенной в IEEE 754.
Параметры:
value — значение long.
Возвращает:
значение типа Float16, полученное преобразованием значения long

valueOf

public static Float16 valueOf(float f)
Возвращает значение типа Float16, полученное округлением аргумента float по правилу округления к ближайшему.
Примечание API:
Этот метод соответствует операции convertFormat, определенной в IEEE 754.
Параметры:
f — значение float
Возвращает:
значение типа Float16, полученное округлением аргумента float по правилу округления к ближайшему

valueOf

public static Float16 valueOf(double d)
Возвращает значение типа Float16, полученное округлением аргумента double по правилу округления к ближайшему.
Примечание API:
Этот метод соответствует операции convertFormat, определенной в IEEE 754.
Параметры:
d — значение double
Возвращает:
значение типа Float16, полученное округлением аргумента double по правилу округления к ближайшему

valueOf

public static Float16 valueOf(String s) throws NumberFormatException
Возвращает объект Float16, содержащий значение с плавающей точкой, представленное строкой-аргументом. Грамматика строк, принимаемых этим методом, совпадает с грамматикой строк, принимаемых методом Double.valueOf(String). Правило округления также аналогично используемому этим методом: корректный ввод рассматривается как точное числовое значение, которое один раз округляется до ближайшего представимого значения типа Float16.
Примечание API:
Этот метод соответствует операциям convertFromDecimalCharacter и convertFromHexCharacter, определенным в IEEE 754.
Параметры:
s — строка для разбора.
Возвращает:
значение типа Float16, представленное строкой-аргументом.
Выбрасывает:
NullPointerException — если строка равна null
NumberFormatException — если строка не содержит разбираемого значения Float16.
См. также:
  • Float.valueOf(String)

valueOf

public static Float16 valueOf(BigDecimal v)
Возвращает значение типа Float16, полученное округлением аргумента BigDecimal по правилу округления к ближайшему.
Параметры:
v — объект BigDecimal
Возвращает:
значение типа Float16, полученное округлением аргумента BigDecimal по правилу округления к ближайшему

isNaN

public static boolean isNaN(Float16 f16)
Возвращает true, если указанное число является значением «не число» (NaN), и false в противном случае.
Примечание API:
Этот метод соответствует операции isNaN, определенной в IEEE 754.
Параметры:
f16 — проверяемое значение.
Возвращает:
true, если аргумент является NaN; в противном случае — false.
См. также:
  • Float.isNaN(float)
  • Double.isNaN(double)

isInfinite

public static boolean isInfinite(Float16 f16)
Возвращает true, если абсолютное значение указанного числа бесконечно велико, и false в противном случае.
Примечание API:
Этот метод соответствует операции isInfinite, определенной в IEEE 754.
Параметры:
f16 — проверяемое значение.
Возвращает:
true, если аргумент является положительной или отрицательной бесконечностью; в противном случае — false.
См. также:
  • Float.isInfinite(float)
  • Double.isInfinite(double)

isFinite

public static boolean isFinite(Float16 f16)
Возвращает true, если аргумент является конечным значением с плавающей точкой; в противном случае возвращает false (для аргументов NaN и бесконечности).
Примечание API:
Этот метод соответствует операции isFinite, определенной в IEEE 754.
Параметры:
f16 — проверяемое значение Float16
Возвращает:
true, если аргумент является конечным значением с плавающей точкой; в противном случае — false.
См. также:
  • Float.isFinite(float)
  • Double.isFinite(double)

byteValue

public byte byteValue()
Возвращает значение этого объекта Float16 как byte после сужающего преобразования примитивного типа.
Переопределяет:
byteValue в классе Number
Возвращает:
значение этого объекта Float16 как byte после сужающего преобразования примитивного типа
См. Спецификацию языка Java:
5.1.3 Сужающее преобразование примитивного типа

toString

public String toString()
Возвращает строковое представление этого объекта Float16.
Переопределяет:
toString в классе Object
Требования к реализации:
Этот метод возвращает результат вызова Float16.toString(this).
Возвращает:
строковое представление этого объекта Float16

shortValue

public short shortValue()
Возвращает значение этого объекта Float16 как short после сужающего преобразования примитивного типа.
Переопределяет:
shortValue в классе Number
Возвращает:
значение этого объекта Float16 как short после сужающего преобразования примитивного типа
См. Спецификацию языка Java:
5.1.3 Сужающее преобразование примитивного типа

intValue

public int intValue()
Возвращает значение этого объекта Float16 как int после сужающего преобразования примитивного типа.
Определен в:
intValue в классе Number
Примечание API:
Этот метод соответствует операции convertToIntegerTowardZero, определенной в IEEE 754.
Возвращает:
значение этого объекта Float16 как int после сужающего преобразования примитивного типа
См. Спецификацию языка Java:
5.1.3 Сужающее преобразование примитивного типа

longValue

public long longValue()
Возвращает значение этого объекта Float16 как long после сужающего преобразования примитивного типа.
Определен в:
longValue в классе Number
Примечание API:
Этот метод соответствует операции convertToIntegerTowardZero, определенной в IEEE 754.
Возвращает:
значение этого объекта Float16 как long после сужающего преобразования примитивного типа
См. Спецификацию языка Java:
5.1.3 Сужающее преобразование примитивного типа

floatValue

public float floatValue()
Возвращает значение этого объекта Float16 как float после расширяющего преобразования примитивного типа.
Определен в:
floatValue в классе Number
Примечание API:
Этот метод соответствует операции convertFormat, определенной в IEEE 754.
Возвращает:
значение этого объекта Float16 как float после расширяющего преобразования примитивного типа
См. Спецификацию языка Java:
5.1.2 Расширяющее преобразование примитивного типа

doubleValue

public double doubleValue()
Возвращает значение этого объекта Float16 как double после расширяющего преобразования примитивного типа.
Определен в:
doubleValue в классе Number
Примечание API:
Этот метод соответствует операции convertFormat, определенной в IEEE 754.
Возвращает:
значение этого объекта Float16 как double после расширяющего преобразования примитивного типа
См. Спецификацию языка Java:
5.1.2 Расширяющее преобразование примитивного типа

hashCode

public int hashCode()
Возвращает хеш-код этого объекта Float16. Общий контракт метода Object#hashCode() соблюдается. Все значения NaN имеют одинаковый хеш-код. Кроме того, все различные числовые значения имеют уникальные хеш-коды; в частности, отрицательный ноль и положительный ноль имеют разные хеш-коды.
Переопределяет:
hashCode в классе Object
Возвращает:
хеш-код этого объекта Float16
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

hashCode

public static int hashCode(Float16 value)
Возвращает хеш-код значения Float16; совместим с Float16.hashCode().
Параметры:
value — значение, для которого вычисляется хеш-код
Возвращает:
хеш-код значения Float16.

equals

public boolean equals(Object obj)
Сравнивает этот объект с указанным объектом. Результат равен true тогда и только тогда, когда аргумент не является null и представляет собой объект Float16, представляющий Float16 с тем же значением, что и Float16, представленное этим объектом. Для сравнения значений Float16 используется эквивалентность представлений.
Переопределяет:
equals в классе Object
Параметры:
obj — объект-ссылка, с которым выполняется сравнение.
Возвращает:
true, если этот объект совпадает с аргументом obj; в противном случае — false.
См. Спецификацию языка Java:
15.21.1 Операторы числового равенства == и !=
См. также:
  • Object.hashCode()
  • HashMap

float16ToRawShortBits

public static short float16ToRawShortBits(Float16 f16)
Возвращает представление указанного значения с плавающей точкой в соответствии с расположением битов двоичного формата binary16 с плавающей точкой IEEE 754.
Параметры:
f16 — число с плавающей точкой типа Float16.
Возвращает:
биты, представляющие число с плавающей точкой.
См. также:
  • Float.floatToRawIntBits(float)
  • Double.doubleToRawLongBits(double)

float16ToShortBits

public static short float16ToShortBits(Float16 f16)
Возвращает представление указанного значения с плавающей точкой в соответствии с расположением битов двоичного формата binary16 с плавающей точкой IEEE 754. Для всех значений NaN возвращается один и тот же битовый шаблон, что и для NaN.
Параметры:
f16 — число с плавающей точкой типа Float16.
Возвращает:
биты, представляющие число с плавающей точкой.
См. также:
  • Float.floatToRawIntBits(float)
  • Double.doubleToRawLongBits(double)

shortBitsToFloat16

public static Float16 shortBitsToFloat16(short bits)
Возвращает значение типа Float16, соответствующее заданному битовому представлению.
Параметры:
bits — любое целое число типа short.
Возвращает:
значение с плавающей точкой типа Float16 с тем же битовым шаблоном.
См. также:
  • Float.intBitsToFloat(int)
  • Double.longBitsToDouble(long)

compareTo

public int compareTo(Float16 anotherFloat16)
Сравнивает два объекта Float16 численно. Этот метод задает полный порядок для объектов Float16 с двумя отличиями от неполного порядка, определяемого операторами числового сравнения языка Java (<, <=, ==, >=, >) для значений float и double.
  • Значение NaN не упорядочено относительно других значений и не равно самому себе при использовании операторов сравнения. Этот метод определяет Float16.NaN как равное самому себе и большее всех остальных значений Float16 (включая Float16.POSITIVE_INFINITY).
  • Положительный и отрицательный ноль численно равны, но являются различными и различимыми значениями. Этот метод определяет положительный ноль как больший отрицательного нуля.
Определен в:
compareTo в интерфейсе Comparable<Float16>
Примечание API:
Обсуждение различий между полным порядком, задаваемым этим методом, и полным порядком, определенным стандартом IEEE 754, см. в примечании к методу Double.compareTo(Double).
Параметры:
anotherFloat16 — значение Float16, с которым выполняется сравнение.
Возвращает:
значение 0, если anotherFloat16 численно равно этому значению Float16; значение меньше 0, если это значение Float16 численно меньше anotherFloat16; и значение больше 0, если это значение Float16 численно больше anotherFloat16.
См. Спецификацию языка Java:
15.20.1 Операторы числового сравнения <, <=, > и >=
См. также:
  • Float.compareTo(Float)
  • Double.compareTo(Double)

compare

public static int compare(Float16 f1, Float16 f2)
Сравнивает два указанных значения Float16.
Примечание API:
Один из способов реализовать эквивалентность представлений для значений Float16 — это
Float16.compare(a, b) == 0
Параметры:
f1 — первое значение Float16 для сравнения
f2 — второе значение Float16 для сравнения
Возвращает:
значение 0, если f1 численно равно f2; значение меньше 0, если f1 численно меньше f2; и значение больше 0, если f1 численно больше f2.
См. также:
  • Float.compare(float, float)
  • Double.compare(double, double)

max

public static Float16 max(Float16 a, Float16 b)
Возвращает большее из двух значений Float16. Обработка знаковых нулей, NaN, бесконечностей и других особых случаев этим методом аналогична обработке этих случаев методом Math#max(double, double).
Примечание API:
Этот метод соответствует операции взятия максимума, определённой в IEEE 754.
Параметры:
a — первый операнд
b — второй операнд
Возвращает:
большее из a и b
См. также:
  • BinaryOperator
  • Math.max(float, float)

min

public static Float16 min(Float16 a, Float16 b)
Возвращает меньшее из двух значений Float16. Обработка знаковых нулей, NaN, бесконечностей и других особых случаев этим методом аналогична обработке этих случаев методом Math#min(double, double).
Примечание API:
Этот метод соответствует операции взятия минимума, определённой в IEEE 754.
Параметры:
a — первый операнд
b — второй операнд
Возвращает:
меньшее из a и b
См. также:
  • BinaryOperator
  • Math.min(float, float)

add

public static Float16 add(Float16 addend, Float16 augend)
Складывает два значения Float16 в соответствии с семантикой оператора +, используя округление к ближайшему значению. Обработка знаковых нулей, NaN, бесконечностей и других особых случаев этим методом такая же, как их обработка встроенным оператором + для сложения чисел с плавающей запятой (JLS §15.18.2).
Примечание API:
Этот метод соответствует операции сложения, определённой в IEEE 754.
Параметры:
addend — первый операнд
augend — второй операнд
Возвращает:
сумму операндов
См. Спецификацию языка Java:
15.4 Выражения с плавающей запятой
15.18.2 Аддитивные операторы (+ и -) для числовых типов

subtract

public static Float16 subtract(Float16 minuend, Float16 subtrahend)
Вычитает два значения Float16 в соответствии с семантикой оператора -, используя округление к ближайшему значению. Обработка знаковых нулей, NaN, бесконечностей и других особых случаев этим методом такая же, как их обработка встроенным оператором - для вычитания чисел с плавающей запятой (JLS §15.18.2).
Примечание API:
Этот метод соответствует операции вычитания, определённой в IEEE 754.
Параметры:
minuend — первый операнд
subtrahend — второй операнд
Возвращает:
разность операндов
См. Спецификацию языка Java:
15.4 Выражения с плавающей запятой
15.18.2 Аддитивные операторы (+ и -) для числовых типов

multiply

public static Float16 multiply(Float16 multiplier, Float16 multiplicand)
Перемножает два значения Float16 в соответствии с семантикой оператора *, используя округление к ближайшему значению. Обработка знаковых нулей, NaN, бесконечностей и других особых случаев этим методом такая же, как их обработка встроенным оператором * для умножения чисел с плавающей запятой (JLS §15.17.1).
Примечание API:
Этот метод соответствует операции умножения, определённой в IEEE 754.
Параметры:
multiplier — первый операнд
multiplicand — второй операнд
Возвращает:
произведение операндов
См. Спецификацию языка Java:
15.4 Выражения с плавающей запятой
15.17.1 Оператор умножения *

divide

public static Float16 divide(Float16 dividend, Float16 divisor)
Делит два значения Float16 в соответствии с семантикой оператора /, используя округление к ближайшему значению. Обработка знаковых нулей, NaN, бесконечностей и других особых случаев этим методом такая же, как их обработка встроенным оператором / для деления чисел с плавающей запятой (JLS §15.17.2).
Примечание API:
Этот метод соответствует операции деления, определённой в IEEE 754.
Параметры:
dividend — первый операнд
divisor — второй операнд
Возвращает:
частное операндов
См. Спецификацию языка Java:
15.4 Выражения с плавающей запятой
15.17.2 Оператор деления /

sqrt

public static Float16 sqrt(Float16 radicand)
Возвращает квадратный корень операнда. Квадратный корень вычисляется с округлением к ближайшему значению. Обработка нулей, NaN, бесконечностей и отрицательных аргументов этим методом аналогична обработке этих случаев методом Math.sqrt(double).
Примечание API:
Этот метод соответствует операции squareRoot, определённой в IEEE 754.
Параметры:
radicand — аргумент, из которого требуется извлечь квадратный корень
Возвращает:
квадратный корень операнда
См. также:
  • Math.sqrt(double)

fma

public static Float16 fma(Float16 a, Float16 b, Float16 c)
Возвращает результат fused multiply add для трёх аргументов: точное произведение первых двух аргументов складывается с третьим аргументом, после чего результат один раз округляется до ближайшего значения Float16. Обработка нулей, NaN, бесконечностей и других особых случаев этим методом аналогична обработке этих случаев методом Math.fma(float, float, float).
Примечание API:
Этот метод соответствует операции fusedMultiplyAdd, определённой в IEEE 754.
Параметры:
a — значение
b — значение
c — значение
Возвращает:
(a × b + c), вычисленное так, как если бы диапазон и точность были неограниченными, и один раз округлённое до ближайшего значения Float16
См. также:
  • Math.fma(float, float, float)
  • Math.fma(double, double, double)

negate

public static Float16 negate(Float16 f16)
Возвращает противоположное значение аргумента. Особые случаи:
  • Если аргумент равен нулю, результатом будет ноль с противоположным знаком.
  • Если аргумент равен бесконечности, результатом будет бесконечность с противоположным знаком.
  • Если аргумент является NaN, результатом будет NaN.
Примечание API:
Этот метод соответствует операции negate, определённой в IEEE 754.
Параметры:
f16 — значение, знак которого нужно изменить
Возвращает:
противоположное значение аргумента
См. Спецификацию языка Java:
15.15.4 Унарный оператор минус -

abs

public static Float16 abs(Float16 f16)
Возвращает абсолютное значение аргумента. Обработка нулей, NaN и бесконечностей этим методом аналогична обработке этих случаев методом Math.abs(float).
Параметры:
f16 — аргумент, абсолютное значение которого требуется определить
Возвращает:
абсолютное значение аргумента
См. также:
  • Math.abs(float)
  • Math.abs(double)

getExponent

public static int getExponent(Float16 f16)
Возвращает смещённый показатель степени, используемый в представлении значения Float16.
  • Если аргумент является NaN или бесконечностью, результат равен MAX_EXPONENT + 1.
  • Если аргумент равен нулю или является субнормальным числом, результат равен MIN_EXPONENT - 1.
Примечание API:
Этот метод аналогичен операции logB, определённой в IEEE 754, но для субнормальных аргументов возвращает другое значение.
Параметры:
f16 — значение Float16
Возвращает:
несмещённый показатель степени аргумента
См. также:
  • Math.getExponent(float)
  • Math.getExponent(double)

ulp

public static Float16 ulp(Float16 f16)
Возвращает размер ULP аргумента. ULP (unit in the last place — единица последнего разряда) значения Float16 — это положительное расстояние между данным значением с плавающей запятой и следующим по величине значением Float16. Обратите внимание, что для не являющегося NaN значения x выполняется ulp(-x) == ulp(x).

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

  • Если аргумент является NaN, результатом будет NaN.
  • Если аргумент равен положительной или отрицательной бесконечности, результатом будет положительная бесконечность.
  • Если аргумент равен положительному или отрицательному нулю, результат равен Float16.MIN_VALUE.
  • Если аргумент равен ±Float16.MAX_VALUE, результат равен 25, 32.0.
Параметры:
f16 — значение с плавающей запятой, ULP которого нужно вернуть
Возвращает:
размер ULP аргумента
См. также:
  • Math.ulp(float)
  • Math.ulp(double)

nextUp

public static Float16 nextUp(Float16 v)
Возвращает значение с плавающей запятой, соседнее с v в направлении положительной бесконечности.

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

  • Если аргумент является NaN, результатом будет NaN.
  • Если аргумент равен положительной бесконечности, результатом будет положительная бесконечность.
  • Если аргумент равен нулю, результатом будет MIN_VALUE
Примечание API:
Этот метод соответствует операции nextUp, определённой в IEEE 754.
Параметры:
v — начальное значение с плавающей запятой
Возвращает:
Соседнее значение с плавающей запятой, более близкое к положительной бесконечности.
См. также:
  • Math.nextUp(float)
  • Math.nextUp(double)

nextDown

public static Float16 nextDown(Float16 v)
Возвращает значение с плавающей запятой, соседнее с v в направлении отрицательной бесконечности.

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

  • Если аргумент является NaN, результатом будет NaN.
  • Если аргумент равен отрицательной бесконечности, результатом будет отрицательная бесконечность.
  • Если аргумент равен нулю, результатом будет -MIN_VALUE
Примечание API:
Этот метод соответствует операции nextDown, определённой в IEEE 754.
Параметры:
v — начальное значение с плавающей запятой
Возвращает:
Соседнее значение с плавающей запятой, более близкое к отрицательной бесконечности.
См. также:
  • Math.nextDown(float)
  • Math.nextDown(double)

scalb

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

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

  • Если первый аргумент является NaN, возвращается NaN.
  • Если первый аргумент равен бесконечности, возвращается бесконечность с тем же знаком.
  • Если первый аргумент равен нулю, возвращается ноль с тем же знаком.
Примечание API:
Этот метод соответствует операции scaleB, определённой в IEEE 754.
Параметры:
v — число, которое требуется умножить на степень двойки.
scaleFactor — степень двойки, используемая для масштабирования v
Возвращает:
v × 2scaleFactor
См. также:
  • Math.scalb(float, int)
  • Math.scalb(double, int)

copySign

public static Float16 copySign(Float16 magnitude, Float16 sign)
Возвращает первый аргумент с плавающей запятой с тем же знаком, что и у второго аргумента с плавающей запятой. Этот метод не требует, чтобы аргументы NaN sign трактовались как положительные значения; для повышения производительности реализациям разрешается трактовать некоторые аргументы NaN как положительные, а другие — как отрицательные.
Примечание API:
Этот метод соответствует операции copySign, определённой в IEEE 754.
Параметры:
magnitude — параметр, задающий модуль результата
sign — параметр, задающий знак результата
Возвращает:
значение с модулем magnitude и знаком sign.
См. также:
  • Math.copySign(float, float)
  • Math.copySign(double, double)

signum

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

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