логарифм по основанию 2. Экспонента по основанию 2 и мантисса некоторых вещественных чисел.
y = log2(x) [m, e] = log2(u)
массивы десятичных или комплексных чисел, такие, что 2.^y = x.
массивы десятичных чисел, такие, что u = m .* 2.^e,
при sign(m)=sign(u) и 0.5 ≤ abs(m) < 1.
log2(x) является поэлементным логарифмом по основанию 2
y(i,j) = log2(x(i,j)).
![]() | log2(-%inf) == %inf + log2(-1) |
[m, e] = log2(u) вычисляет поэлементно мантиссу по основанию 2
m и экспоненту e каждого элемента
u. Следовательно, для любого индекса k имеем
u(k) = m(k) .* 2.^e(k) при 0.5 ≤ |m(k)| < 1.
![]() |
|
Логарифм по основанию 2:
L = log2([-1, 1, 2, %i, -%i]) clean(2.^L) L = log2([0 %nan %inf]) 2 .^ L L = log2([0 %nan %inf -%inf]) // -%inf<0 превращает результат в комплексный вид 2 .^ L // -Inf не получится | ![]() | ![]() |
--> L = log2([-1, 1, 2, %i, -%i]) L = 4.5323601i 0. 1. 2.2661801i -2.2661801i --> clean(2.^L) ans = -1. 1. 2. i -i --> L = log2([0 %nan %inf]) L = -Inf Nan Inf --> 2 .^ L ans = 0. Nan Inf --> L = log2([0 %nan %inf -%inf]) // -%inf<0 превращает результат в комплексный вид L = -Inf Nan + Nani Inf Inf + 4.5323601i --> 2 .^ L // -Inf не получится ans = 0. Nan + Nani Inf Nan + Nani
Разложение на мантиссу по основанию 2 + экспоненту:
--> [m, e] = log2([-3, -1.5, -1, 0, 4, 1e20]) e = 2. 1. 1. 0. 3. 67. m = -0.75 -0.75 -0.5 0. 0.5 0.6776264 --> m .* 2.^e ans = -3. -1.5 -1. 0. 4. 1.000D+20
np = number_properties; x = [%eps np("tiniest") np("tiny") np("huge")] [m, e] = log2(x) | ![]() | ![]() |
--> x = [%eps np("tiniest") np("tiny") np("huge")]
x =
2.220D-16 4.94D-324 2.22D-308 1.79D+308
--> [m, e] = log2(x)
e =
- 51. - 1073. - 1021. 1024.
m =
0.5 0.5 0.5 1.
-->[m, e] = log2([0 %nan -%inf %inf])
e =
0. 0. 0. 0.
m =
0. Nan - Inf Inf
-->m .* 2.^e
ans =
0. Nan - Inf Inf