Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Основные функции > Плавающая запятая > number_properties

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 — получить предыдущее или следующее число с плавающей запятой
  • frexp — делит числа с плавающей запятой на показатель по основанию 2 и мантиссу
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Feb 14 15:04:54 CET 2019