rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / manglsl / mix.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
3 "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
4 <refentry id="mix">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>2011</year>
9 <holder>Khronos Group</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>mix</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>mix</refname>
17 <refpurpose>linearly interpolate between two values</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>Declaration</title>
20 <funcsynopsis>
21 <funcprototype>
22 <funcdef>genType <function>mix</function></funcdef>
23 <paramdef>genType <parameter>x</parameter></paramdef>
24 <paramdef>genType <parameter>y</parameter></paramdef>
25 <paramdef>genType <parameter>a</parameter></paramdef>
26 </funcprototype>
27 </funcsynopsis>
28 <funcsynopsis>
29 <funcprototype>
30 <funcdef>genType <function>mix</function></funcdef>
31 <paramdef>genType <parameter>x</parameter></paramdef>
32 <paramdef>genType <parameter>y</parameter></paramdef>
33 <paramdef>float <parameter>a</parameter></paramdef>
34 </funcprototype>
35 </funcsynopsis>
36 <funcsynopsis>
37 <funcprototype>
38 <funcdef>genDType <function>mix</function></funcdef>
39 <paramdef>genDType <parameter>x</parameter></paramdef>
40 <paramdef>genDType <parameter>y</parameter></paramdef>
41 <paramdef>genDType <parameter>a</parameter></paramdef>
42 </funcprototype>
43 </funcsynopsis>
44 <funcsynopsis>
45 <funcprototype>
46 <funcdef>genDType <function>mix</function></funcdef>
47 <paramdef>genDType <parameter>x</parameter></paramdef>
48 <paramdef>genDType <parameter>y</parameter></paramdef>
49 <paramdef>double <parameter>a</parameter></paramdef>
50 </funcprototype>
51 </funcsynopsis>
52 <funcsynopsis>
53 <funcprototype>
54 <funcdef>genType <function>mix</function></funcdef>
55 <paramdef>genType <parameter>x</parameter></paramdef>
56 <paramdef>genType <parameter>y</parameter></paramdef>
57 <paramdef>genBType <parameter>a</parameter></paramdef>
58 </funcprototype>
59 </funcsynopsis>
60 <funcsynopsis>
61 <funcprototype>
62 <funcdef>genDType <function>mix</function></funcdef>
63 <paramdef>genDType <parameter>x</parameter></paramdef>
64 <paramdef>genDType <parameter>y</parameter></paramdef>
65 <paramdef>genBType <parameter>a</parameter></paramdef>
66 </funcprototype>
67 </funcsynopsis>
68 </refsynopsisdiv>
69 <refsect1 id="parameters"><title>Parameters</title>
70 <variablelist>
71 <varlistentry>
72 <term><parameter>x</parameter></term>
73 <listitem>
74 <para>
75 Specify the start of the range in which to interpolate.
76 </para>
77 </listitem>
78 </varlistentry>
79 <varlistentry>
80 <term><parameter>y</parameter></term>
81 <listitem>
82 <para>
83 Specify the end of the range in which to interpolate.
84 </para>
85 </listitem>
86 </varlistentry>
87 <varlistentry>
88 <term><parameter>a</parameter></term>
89 <listitem>
90 <para>
91 Specify the value to use to interpolate between <parameter>x</parameter> and <parameter>y</parameter>.
92 </para>
93 </listitem>
94 </varlistentry>
95 </variablelist>
96 </refsect1>
97 <refsect1 id="description"><title>Description</title>
98 <para>
99 <function>mix</function> performs a linear interpolation between <parameter>x</parameter>
100 and <parameter>y</parameter> using <parameter>a</parameter> to weight between them. The return value
101 is computed as follows:
102 <inlineequation>
103 <mml:math>
104 <mml:mi>x</mml:mi>
105 <mml:mo lspace='2px' rspace='2px'>&sdot;</mml:mo>
106 <mml:mo stretchy='false'>(</mml:mo>
107 <mml:mn>1</mml:mn>
108 <mml:mo>&minus;</mml:mo>
109 <mml:mi>a</mml:mi>
110 <mml:mo stretchy='false'>)</mml:mo>
111 <mml:mo>+</mml:mo>
112 <mml:mi>y</mml:mi>
113 <mml:mo lspace='2px' rspace='2px'>&sdot;</mml:mo>
114 <mml:mi>a</mml:mi>
115 </mml:math>
116 </inlineequation>.
117 </para>
118 <para>
119 For the variants of <function>mix</function> where <parameter>a</parameter> is <constant>genBType</constant>,
120 elements for which <parameter>a</parameter>[<emphasis>i</emphasis>] is <constant>false</constant>, the result for that
121 element is taken from <parameter>x</parameter>, and where <parameter>a</parameter>[<emphasis>i</emphasis>] is
122 <constant>true</constant>, it will be taken from <parameter>y</parameter>.
123 </para>
124 </refsect1>
125 <refsect1 id="versions"><title>Version Support</title>
126 <informaltable frame="topbot">
127 #VARTABLECOLS#
128 <thead>
129 #FUNCTABLEHEADER#
130 <row>
131 <entry>mix (genType)</entry>#newin11#
132 </row>
133 <row>
134 <entry>mix (genDType)</entry>#newin40#
135 </row>
136 </thead>
137 </tgroup>
138 </informaltable>
139 </refsect1>
140 <refsect1 id="seealso"><title>See Also</title>
141 <para>
142 <citerefentry><refentrytitle>min</refentrytitle></citerefentry>,
143 <citerefentry><refentrytitle>max</refentrytitle></citerefentry>
144 </para>
145 </refsect1>
146 <refsect1 id="Copyright"><title>Copyright</title>
147 <para>
148 Copyright <trademark class="copyright"></trademark> 2011 Khronos Group.
149 This material may be distributed subject to the terms and conditions set forth in
150 the Open Publication License, v 1.0, 8 June 1999.
151 <ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
152 </para>
153 </refsect1>
154 </refentry>