1
<?xml version="1.0" encoding="UTF-8" ?>
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
5
<refentry id="libgimpmath-GimpMath">
7
<refentrytitle>GimpMath</refentrytitle>
8
<manvolnum>3</manvolnum>
9
<refmiscinfo>LIBGIMPMATH Library</refmiscinfo>
13
<refname>GimpMath</refname><refpurpose>Mathematical definitions and macros.</refpurpose>
16
<refsynopsisdiv><title>Synopsis</title>
22
#define <link linkend="RINT:CAPS">RINT</link> (x)
23
#define <link linkend="ROUND:CAPS">ROUND</link> (x)
24
#define <link linkend="SQR:CAPS">SQR</link> (x)
25
#define <link linkend="MAX255:CAPS">MAX255</link> (a)
26
#define <link linkend="CLAMP0255:CAPS">CLAMP0255</link> (a)
27
#define <link linkend="gimp-deg-to-rad">gimp_deg_to_rad</link> (angle)
28
#define <link linkend="gimp-rad-to-deg">gimp_rad_to_deg</link> (angle)
41
<title>Description</title>
43
Mathematical definitions and macros. These macros should be used
44
rather than the ones from math.h for enhanced portability.
49
<title>Details</title>
51
<title><anchor id="RINT:CAPS"/>RINT()</title>
52
<indexterm><primary>RINT</primary></indexterm><programlisting>#define RINT(x)</programlisting>
54
This macro rounds its argument <parameter>x</parameter> to an integer value in floating point
56
</para><variablelist role="params">
57
<varlistentry><term><parameter>x</parameter> :</term>
58
<listitem><simpara>the value to be rounded.
61
</simpara></listitem></varlistentry>
62
</variablelist></refsect2>
64
<title><anchor id="ROUND:CAPS"/>ROUND()</title>
65
<indexterm><primary>ROUND</primary></indexterm><programlisting>#define ROUND(x) ((int) ((x) + 0.5))
68
This macro rounds its argument <parameter>x</parameter> to the nearest integer.
69
</para><variablelist role="params">
70
<varlistentry><term><parameter>x</parameter> :</term>
71
<listitem><simpara>the value to be rounded.
74
</simpara></listitem></varlistentry>
75
</variablelist></refsect2>
77
<title><anchor id="SQR:CAPS"/>SQR()</title>
78
<indexterm><primary>SQR</primary></indexterm><programlisting>#define SQR(x) ((x) * (x))
81
This macro squares its argument <parameter>x</parameter>.
82
</para><variablelist role="params">
83
<varlistentry><term><parameter>x</parameter> :</term>
84
<listitem><simpara>the value to be squared.
87
</simpara></listitem></varlistentry>
88
</variablelist></refsect2>
90
<title><anchor id="MAX255:CAPS"/>MAX255()</title>
91
<indexterm><primary>MAX255</primary></indexterm><programlisting>#define MAX255(a) ((a) | (((a) & 256) - (((a) & 256) >> 8)))
94
This macro limits it argument <parameter>a</parameter>, an (0-511) int, to 255.
95
</para><variablelist role="params">
96
<varlistentry><term><parameter>a</parameter> :</term>
97
<listitem><simpara>the value to be limited.
100
</simpara></listitem></varlistentry>
101
</variablelist></refsect2>
103
<title><anchor id="CLAMP0255:CAPS"/>CLAMP0255()</title>
104
<indexterm><primary>CLAMP0255</primary></indexterm><programlisting>#define CLAMP0255(a) CLAMP(a,0,255)
107
This macro clamps its argument <parameter>a</parameter>, an int32-range int, between 0 and
109
</para><variablelist role="params">
110
<varlistentry><term><parameter>a</parameter> :</term>
111
<listitem><simpara>the value to be clamped.
114
</simpara></listitem></varlistentry>
115
</variablelist></refsect2>
117
<title><anchor id="gimp-deg-to-rad"/>gimp_deg_to_rad()</title>
118
<indexterm><primary>gimp_deg_to_rad</primary></indexterm><programlisting>#define gimp_deg_to_rad(angle) ((angle) * (2.0 * G_PI) / 360.0)
121
This macro converts its argument <parameter>angle</parameter> from degree to radian.
122
</para><variablelist role="params">
123
<varlistentry><term><parameter>angle</parameter> :</term>
124
<listitem><simpara>the angle to be converted.
127
</simpara></listitem></varlistentry>
128
</variablelist></refsect2>
130
<title><anchor id="gimp-rad-to-deg"/>gimp_rad_to_deg()</title>
131
<indexterm><primary>gimp_rad_to_deg</primary></indexterm><programlisting>#define gimp_rad_to_deg(angle) ((angle) * 360.0 / (2.0 * G_PI))
134
This macro converts its argument <parameter>angle</parameter> from radian to degree.
135
</para><variablelist role="params">
136
<varlistentry><term><parameter>angle</parameter> :</term>
137
<listitem><simpara>the angle to be converted.
140
</simpara></listitem></varlistentry>
141
</variablelist></refsect2>