number_properties определение параметров чисел с плавающей запятой

## Синтаксис

    pr = number_properties(prop)

## Аргументы

prop

  строка

pr

  вещественный или логический скаляр

## Описание

Эта функция может быть использована для получения характеристик чисел/свойств из набора с плавающей запятой, обозначенного здесь как `F(b,p,emin,emax)` (обычно набор 64-х разрядных чисел описывается IEEE 754). Числа `F` представляются в виде:

`sign * m * b^e`

`e` - показатель, а `m` - мантисса:

$$ m = d_1 \cdot b^{-1} + d_2 \cdot b^{-2} + \ldots + d_p \cdot b^{-p} $$

Разряды $d_i$ находятся в диапазоне `[0, b-1]` а `e` находится в диапазоне `[emin, emax]`, скажем, что число "нормированное", если $d_1 \neq 0$. Можно получить следующие сведения:

prop = "radix"

  тогда `pr` является основание логарифма `b` набора `F`

prop = "digits"

  тогда `pr` является количеством разрядов `p`

prop = "huge"

  тогда `pr` является максимальным положительным числом с плавающей запятой из `F`

prop = "tiny"

  тогда `pr` является минимальным положительным нормированным числом с плавающей запятой из `F`

prop = "denorm"

  тогда `pr` является логическим значением (`%t`, если используются ненормированные числа)

prop = "tiniest"

  тогда, если `denorm = %t`, то `pr` является минимальным положительным ненормированным числом, в противном случае `pr = tiny`

prop = "eps"

  тогда `pr` является машинным эпсилоном (вообще $\dfrac{b^{1-p}}{2}$), которое является относительной максимальной ошибкой между вещественным `x` (таким, что `|x|` в `[tiny, huge]`) и `fl(x)`, его приближением с плавающей запятой в `F`

prop = "minexp"

  тогда `pr` является `emin`

prop = "maxexp"

  тогда `pr` является `emax`

Эта функция использует подпрограмму dlamch для получения параметров машины (имена (radix, digit, huge и т. д.) рекомендованы стандартом LIA 1 и отличаются от соответствующих имён lapack).
иногда вы можете увидеть следующее определение машинного эпсилона: $eps = b^{1-p}$, но в этой функции мы используем традиционное определение (см. выше prop = "eps") и поэтому $eps = \dfrac{b^{1-p}}{2}$, если производится нормальное округление, а если нет, то $eps = b^{1-p}$.

## Примеры

    b = number_properties("radix")
    eps = number_properties("eps")

## Смотрите также

- nearfloat
- log2
- -0