include more low-level bindings
[clinton/guile-figl.git] / upstream-man-pages / manglsl / smoothstep.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="smoothstep">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>2011</year>
9 <holder>Khronos Group</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>smoothstep</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>smoothstep</refname>
17 <refpurpose>perform Hermite interpolation between two values</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>Declaration</title>
20 <funcsynopsis>
21 <funcprototype>
22 <funcdef>genType <function>smoothstep</function></funcdef>
23 <paramdef>genType <parameter>edge0</parameter></paramdef>
24 <paramdef>genType <parameter>edge1</parameter></paramdef>
25 <paramdef>genType <parameter>x</parameter></paramdef>
26 </funcprototype>
27 </funcsynopsis>
28 <funcsynopsis>
29 <funcprototype>
30 <funcdef>genType <function>smoothstep</function></funcdef>
31 <paramdef>float <parameter>edge0</parameter></paramdef>
32 <paramdef>float <parameter>edge1</parameter></paramdef>
33 <paramdef>genType <parameter>x</parameter></paramdef>
34 </funcprototype>
35 </funcsynopsis>
36 <funcsynopsis>
37 <funcprototype>
38 <funcdef>genDType <function>smoothstep</function></funcdef>
39 <paramdef>genDType <parameter>edge0</parameter></paramdef>
40 <paramdef>genDType <parameter>edge1</parameter></paramdef>
41 <paramdef>genDType <parameter>x</parameter></paramdef>
42 </funcprototype>
43 </funcsynopsis>
44 <funcsynopsis>
45 <funcprototype>
46 <funcdef>genDType <function>smoothstep</function></funcdef>
47 <paramdef>double <parameter>edge0</parameter></paramdef>
48 <paramdef>double <parameter>edge1</parameter></paramdef>
49 <paramdef>genDType <parameter>x</parameter></paramdef>
50 </funcprototype>
51 </funcsynopsis>
52 </refsynopsisdiv>
53 <refsect1 id="parameters"><title>Parameters</title>
54 <variablelist>
55 <varlistentry>
56 <term><parameter>edge0</parameter></term>
57 <listitem>
58 <para>
59 Specifies the value of the lower edge of the Hermite function.
60 </para>
61 </listitem>
62 </varlistentry>
63 <varlistentry>
64 <term><parameter>edge1</parameter></term>
65 <listitem>
66 <para>
67 Specifies the value of the upper edge of the Hermite function.
68 </para>
69 </listitem>
70 </varlistentry>
71 <varlistentry>
72 <term><parameter>x</parameter></term>
73 <listitem>
74 <para>
75 Specifies the source value for interpolation.
76 </para>
77 </listitem>
78 </varlistentry>
79 </variablelist>
80 </refsect1>
81 <refsect1 id="description"><title>Description</title>
82 <para>
83 <function>smoothstep</function> performs smooth Hermite interpolation between 0 and
84 1 when <parameter>edge0</parameter> &lt; <parameter>x</parameter> &lt; <parameter>edge1</parameter>.
85 This is useful in cases where a threshold function with a smooth transition is desired.
86 <function>smoothstep</function> is equivalent to:
87 </para>
88 <para>
89 <programlisting><![CDATA[ genType t; /* Or genDType t; */
90 t = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);
91 return t * t * (3.0 - 2.0 * t);
92 ]]></programlisting>
93 </para>
94 <para>
95 Results are undefined if <parameter>edge0</parameter> &ge; <parameter>edge1</parameter>.
96 </para>
97 </refsect1>
98 <refsect1 id="versions"><title>Version Support</title>
99 <informaltable frame="topbot">
100 #VARTABLECOLS#
101 <thead>
102 #FUNCTABLEHEADER#
103 <row>
104 <entry>smoothstep (genType)</entry>#newin13#
105 </row>
106 <row>
107 <entry>smoothstep (genDType)</entry>#newin40#
108 </row>
109 </thead>
110 </tgroup>
111 </informaltable>
112 </refsect1>
113 <refsect1 id="seealso"><title>See Also</title>
114 <para>
115 <citerefentry><refentrytitle>mix</refentrytitle></citerefentry>,
116 <citerefentry><refentrytitle>step</refentrytitle></citerefentry>
117 </para>
118 </refsect1>
119 <refsect1 id="Copyright"><title>Copyright</title>
120 <para>
121 Copyright <trademark class="copyright"></trademark> 2011 Khronos Group.
122 This material may be distributed subject to the terms and conditions set forth in
123 the Open Publication License, v 1.0, 8 June 1999.
124 <ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
125 </para>
126 </refsect1>
127 </refentry>