2 <link rel=
"stylesheet" href=
"style.css" type=
"text/css">
3 <meta content=
"text/html; charset=iso-8859-1" http-equiv=
"Content-Type">
4 <link rel=
"Start" href=
"index.html">
5 <link title=
"Index of types" rel=Appendix
href=
"index_types.html">
6 <link title=
"Index of exceptions" rel=Appendix
href=
"index_exceptions.html">
7 <link title=
"Index of values" rel=Appendix
href=
"index_values.html">
8 <link title=
"Index of modules" rel=Appendix
href=
"index_modules.html">
9 <link title=
"Types" rel=
"Chapter" href=
"Types.html">
10 <link title=
"Parser" rel=
"Chapter" href=
"Parser.html">
11 <link title=
"Lexer" rel=
"Chapter" href=
"Lexer.html">
12 <link title=
"Value" rel=
"Chapter" href=
"Value.html">
13 <link title=
"Signal" rel=
"Chapter" href=
"Signal.html">
14 <link title=
"Faustexp" rel=
"Chapter" href=
"Faustexp.html">
15 <link title=
"Interpreter" rel=
"Chapter" href=
"Interpreter.html">
16 <link title=
"Preprocess" rel=
"Chapter" href=
"Preprocess.html">
17 <link title=
"Main" rel=
"Chapter" href=
"Main.html"><title>Value.normalize
</title>
20 <code class=
"code"><span class=
"keyword">let
</span> <span class=
"keyword">rec
</span> normalize
v
=
<br>
21 <span class=
"keyword">let
</span> n
=
2.
**
float_of_int
(value_macro_to_int
<span class=
"constructor">Faust_Bits_int
</span>)
<span class=
"keyword">in
</span><br>
22 <span class=
"keyword">match
</span> v
<span class=
"keyword">with
</span><br>
23 <span class=
"keywordsign">|
</span><span class=
"constructor">N
</span> i
<span class=
"keywordsign">-
></span> <br>
24 <span class=
"keyword">if
</span> i
> value_macro_to_int
<span class=
"constructor">Faust_Max_int
</span> <span class=
"keyword">then
</span> <br>
25 return_N
(i
-
int_of_float
(n
*.
floor
(((float_of_int
i)
+.
n/
.2.)/.n)))
<br>
26 <span class=
"keyword">else
</span> <span class=
"keyword">if
</span> i
< value_macro_to_int
<span class=
"constructor">Faust_Min_int
</span> <span class=
"keyword">then
</span> <br>
27 return_N
(i
+
int_of_float
(n
*.
floor
((n/
.2.
-.
(float_of_int
i)
-.
1.)/.n)))
<br>
28 <span class=
"keyword">else
</span> return_N
i
<br>
29 <span class=
"keywordsign">|
</span><span class=
"constructor">R
</span> f
<span class=
"keywordsign">-
></span> <br>
30 <span class=
"keyword">if
</span> f
> float_of_int
(value_macro_to_int
<span class=
"constructor">Faust_Max_int
</span>)
<span class=
"keyword">then
</span> <br>
31 return_R
(f
-.
(n
*.
floor
((f
+.
n/
.2.)/.n)))
<br>
32 <span class=
"keyword">else
</span> <span class=
"keyword">if
</span> f
< float_of_int
(value_macro_to_int
<span class=
"constructor">Faust_Min_int
</span>)
<span class=
"keyword">then
</span> <br>
33 return_R
(f
+.
(n
*.
floor
((n/
.2.
-.
f
-.
1.)/.n)))
<br>
34 <span class=
"keyword">else
</span> return_R
f
<br>
35 <span class=
"keywordsign">|
</span><span class=
"constructor">Vec
</span> (size,
vec)
<span class=
"keywordsign">-
></span> make_vector
size
(
<span class=
"keyword">fun
</span> i
<span class=
"keywordsign">-
></span> normalize
(vec
i))
<br>
36 <span class=
"keywordsign">|
</span><span class=
"constructor">Zero
</span> <span class=
"keywordsign">-
></span> <span class=
"constructor">Zero
</span><br>
37 <span class=
"keywordsign">|
</span><span class=
"constructor">W
</span> <span class=
"keywordsign">-
></span> <span class=
"constructor">W
</span></code></body></html>