1 <?xml version="1.0" encoding="UTF-8"?>
3 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 * Copyright (C) 2008 - INRIA
5 * Copyright (C) 2012 - 2016 - Scilab Enterprises
6 * Copyright (C) 2019 - Samuel GOUGEON
8 * This file is hereby licensed under the terms of the GNU GPL v2.0,
9 * pursuant to article 5.3.4 of the CeCILL v.2.1.
10 * This file was originally licensed under the terms of the CeCILL v2.1,
11 * and continues to be available under such terms.
12 * For more information, see the COPYING file which you should have received
13 * along with this program.
16 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
17 xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
18 xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
19 xmlns:scilab="http://www.scilab.org" xml:id="log2" xml:lang="ru">
21 <refname>log2</refname>
22 <refpurpose>логарифм по основанию 2</refpurpose>
25 <title>Синтаксис</title>
32 <title>Аргументы</title>
38 массивы десятичных или комплексных чисел, такие, что <literal>2.^y = x</literal>.
46 массивы десятичных чисел, такие, что <literal>u = m .* 2.^e</literal>,
47 при <literal>sign(m)=sign(u)</literal> и <literal>0.5 ≤ abs(m) < 1</literal>.
54 <title>Описание</title>
56 <literal>log2(x)</literal> является поэлементным логарифмом по основанию 2
57 <literal>y(i,j) = log2(x(i,j))</literal>.
59 <literal>log2(-%inf) == %inf + log2(-1)</literal>
63 <literal>[m,e]=log2(u)</literal> вычисляет поэлементно мантиссу по основанию 2
64 <varname>m</varname> и экспоненту <varname>e</varname> каждого элемента
65 <varname>u</varname>. Следовательно, для любого индекса <literal>k</literal> имеем
66 <literal>u(k) = m(k) .* 2.^e(k)</literal> при <literal>0.5 ≤ |m(k)| < 1</literal>.
70 <literal>[m,e]=log2([0 %nan -%inf %inf])</literal> возвращает
71 <literal>m=[0 NaN -Inf Inf]</literal> и <literal>e=[0 0 0 0]</literal>.
74 Этот синтаксис соответствует функции frexp() ANSI C.
81 <title>Примеры</title>
83 Логарифм по основанию 2:
85 <programlisting role="example"><![CDATA[
86 L = log2([-1, 1, 2, %i, -%i])
88 L = log2([0 %nan %inf])
90 L = log2([0 %nan %inf -%inf]) // -%inf<0 превращает результат в комплексный вид
91 2 .^ L // -Inf не получится
94 --> L = log2([-1, 1, 2, %i, -%i])
96 4.5323601i 0. 1. 2.2661801i -2.2661801i
102 --> L = log2([0 %nan %inf])
110 --> L = log2([0 %nan %inf -%inf]) // -%inf<0 превращает результат в комплексный вид
112 -Inf Nan + Nani Inf Inf + 4.5323601i
114 --> 2 .^ L // -Inf не получится
116 0. Nan + Nani Inf Nan + Nani
120 Разложение на мантиссу по основанию 2 + экспоненту:
122 <programlisting role="example"><![CDATA[
123 [m, e] = log2([-3, -1.5, -1, 0, 4, 1e20])
127 --> [m, e] = log2([-3, -1.5, -1, 0, 4, 1e20])
131 -0.75 -0.75 -0.5 0. 0.5 0.6776264
135 -3. -1.5 -1. 0. 4. 1.000D+20
138 <programlisting role="example"><![CDATA[
139 np = number_properties;
140 x = [%eps np("tiniest") np("tiny") np("huge")]
144 --> x = [%eps np("tiniest") np("tiny") np("huge")]
146 2.220D-16 4.94D-324 2.22D-308 1.79D+308
150 - 51. - 1073. - 1021. 1024.
155 <programlisting role="example"><![CDATA[
156 [m, e] = log2([0 %nan -%inf %inf])
160 -->[m, e] = log2([0 %nan -%inf %inf])
171 <refsection role="see also">
172 <title>Смотрите также</title>
173 <simplelist type="inline">
175 <link linkend="log">log</link>
178 <link linkend="log10">log10</link>
181 <link linkend="nextpow2">nextpow2</link>
184 <link linkend="bitstring">bitstring</link>
187 <link linkend="hat">hat</link>
190 <link linkend="ieee">ieee</link>