diff options
Diffstat (limited to 'devdocs/c/numeric%2Fmath%2Fatan2.html')
| -rw-r--r-- | devdocs/c/numeric%2Fmath%2Fatan2.html | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/devdocs/c/numeric%2Fmath%2Fatan2.html b/devdocs/c/numeric%2Fmath%2Fatan2.html new file mode 100644 index 00000000..94dcdd22 --- /dev/null +++ b/devdocs/c/numeric%2Fmath%2Fatan2.html @@ -0,0 +1,103 @@ + <h1 id="firstHeading" class="firstHeading">atan2, atan2f, atan2l</h1> <table class="t-dcl-begin"> <tr class="t-dsc-header"> <th> Defined in header <code><math.h></code> </th> <th> </th> <th> </th> </tr> <tr class="t-dcl t-since-c99"> <td> <pre data-language="c">float atan2f( float y, float x );</pre> +</td> <td> (1) </td> <td> <span class="t-mark-rev t-since-c99">(since C99)</span> </td> </tr> <tr class="t-dcl"> <td> <pre data-language="c">double atan2( double y, double x );</pre> +</td> <td> (2) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl t-since-c99"> <td> <pre data-language="c">long double atan2l( long double y, long double x );</pre> +</td> <td> (3) </td> <td> <span class="t-mark-rev t-since-c99">(since C99)</span> </td> </tr> <tr class="t-dcl t-since-c23"> <td> <pre data-language="c">_Decimal32 atan2d32( _Decimal32 y, _Decimal32 x );</pre> +</td> <td> (4) </td> <td> <span class="t-mark-rev t-since-c23">(since C23)</span> </td> </tr> <tr class="t-dcl t-since-c23"> <td> <pre data-language="c">_Decimal64 atan2d64( _Decimal64 y, _Decimal64 x );</pre> +</td> <td> (5) </td> <td> <span class="t-mark-rev t-since-c23">(since C23)</span> </td> </tr> <tr class="t-dcl t-since-c23"> <td> <pre data-language="c">_Decimal128 atan2d128( _Decimal128 y, _Decimal128 x );</pre> +</td> <td> (6) </td> <td> <span class="t-mark-rev t-since-c23">(since C23)</span> </td> </tr> <tr class="t-dsc-header"> <th> Defined in header <code><tgmath.h></code> </th> <th> </th> <th> </th> </tr> <tr class="t-dcl t-since-c99"> <td> <pre data-language="c">#define atan2( y, x )</pre> +</td> <td> (7) </td> <td> <span class="t-mark-rev t-since-c99">(since C99)</span> </td> </tr> </table> <div class="t-li1"> +<span class="t-li">1-6)</span> Computes the arc tangent of <code>y / x</code> using the signs of arguments to determine the correct quadrant.</div> <div class="t-li1"> +<span class="t-li">7)</span> Type-generic macro: If any argument has type <code>long double</code>, <span class="t-v">(3)</span> (<code>atan2l</code>) is called. Otherwise, if any argument has integer type or has type <code>double</code>, <span class="t-v">(2)</span> (<code>atan2</code>) is called. Otherwise, <span class="t-v">(1)</span> (<code>atan2f</code>) is called.</div> <table class="t-rev-begin"> <tr class="t-rev t-since-c23"> +<td> <p>The functions <span class="t-v">(4-6)</span> are declared if and only if the implementation predefines <code>__STDC_IEC_60559_DFP__</code> (i.e. the implementation supports decimal floating-point numbers).</p> +</td> <td><span class="t-mark-rev t-since-c23">(since C23)</span></td> +</tr> </table> <h3 id="Parameters"> Parameters</h3> <table class="t-par-begin"> <tr class="t-par"> <td> x, y </td> <td> - </td> <td> floating-point value </td> +</tr> +</table> <h3 id="Return_value"> Return value</h3> If no errors occur, the arc tangent of <code>y / x</code> (arctan(<span><span>y</span><span>/</span><span>x</span></span>)) in the range [-π ; +π] radians, is returned. <div class="t-plot"> <div class="t-plot-left">Y argument</div> <div class="t-plot-right">Return value</div> <div class="t-plot-image-left-right"><a href="https://en.cppreference.com/w/File:math-atan2.png" class="image"><img alt="math-atan2.png" src="data:image/png;base64,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" width="285" height="240" srcset="https://upload.cppreference.com/mwiki/images/thumb/9/91/math-atan2.png/428px-math-atan2.png 1.5x, https://upload.cppreference.com/mwiki/images/thumb/9/91/math-atan2.png/570px-math-atan2.png 2x"></a></div> <div class="t-plot-bottom">X argument</div> </div> <p>If a domain error occurs, an implementation-defined value is returned.</p> +<p>If a range error occurs due to underflow, the correct result (after rounding) is returned.</p> +<h3 id="Error_handling"> Error handling</h3> <p>Errors are reported as specified in <a href="math_errhandling" title="c/numeric/math/math errhandling"><code>math_errhandling</code></a>.</p> +<p>Domain error may occur if <code>x</code> and <code>y</code> are both zero.</p> +<p>If the implementation supports IEEE floating-point arithmetic (IEC 60559):</p> +<ul> +<li> If <code>x</code> and <code>y</code> are both zero, domain error <i>does not</i> occur; </li> +<li> If <code>x</code> and <code>y</code> are both zero, range error does not occur either; </li> +<li> If <code>y</code> is zero, pole error does not occur; </li> +<li> If <code>y</code> is <code>±0</code> and <code>x</code> is negative or <code>-0</code>, <code>±π</code> is returned; </li> +<li> If <code>y</code> is <code>±0</code> and <code>x</code> is positive or <code>+0</code>, <code>±0</code> is returned; </li> +<li> If <code>y</code> is <code>±∞</code> and <code>x</code> is finite, <code>±π/2</code> is returned; </li> +<li> If <code>y</code> is <code>±∞</code> and <code>x</code> is <code>-∞</code>, <code>±3π/4</code> is returned; </li> +<li> If <code>y</code> is <code>±∞</code> and <code>x</code> is <code>+∞</code>, <code>±π/4</code> is returned; </li> +<li> If <code>x</code> is <code>±0</code> and <code>y</code> is negative, <code>-π/2</code> is returned; </li> +<li> If <code>x</code> is <code>±0</code> and <code>y</code> is positive, <code>+π/2</code> is returned; </li> +<li> If <code>x</code> is <code>-∞</code> and <code>y</code> is finite and positive, <code>+π</code> is returned; </li> +<li> If <code>x</code> is <code>-∞</code> and <code>y</code> is finite and negative, <code>-π</code> is returned; </li> +<li> If <code>x</code> is <code>+∞</code> and <code>y</code> is finite and positive, <code>+0</code> is returned; </li> +<li> If <code>x</code> is <code>+∞</code> and <code>y</code> is finite and negative, <code>-0</code> is returned; </li> +<li> If either <code>x</code> is NaN or <code>y</code> is NaN, NaN is returned. </li> +</ul> <h3 id="Notes"> Notes</h3> <p><code>atan2(y, x)</code> is equivalent to <code><a href="http://en.cppreference.com/w/c/numeric/complex/carg"><span class="kw756">carg</span></a><span class="br0">(</span>x <span class="sy2">+</span> I<span class="sy2">*</span>y<span class="br0">)</span></code>.</p> +<p><a rel="nofollow" class="external text" href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/atan2.html">POSIX specifies</a> that in case of underflow, <code>y / x</code> is the value returned, and if that is not supported, an implementation-defined value no greater than <code><a href="../../types/limits" title="c/types/limits">DBL_MIN</a></code>, <code><a href="../../types/limits" title="c/types/limits">FLT_MIN</a></code>, and <code><a href="../../types/limits" title="c/types/limits">LDBL_MIN</a></code> is returned.</p> +<h3 id="Example"> Example</h3> <div class="t-example"> <div class="c source-c"><pre data-language="c">#include <math.h> +#include <stdio.h> + +int main(void) +{ + // normal usage: the signs of the two arguments determine the quadrant + // atan2(1,1) = +pi/4, Quad I + printf("(+1,+1) cartesian is (%f,%f) polar\n", hypot( 1, 1), atan2( 1, 1)); + // atan2(1, -1) = +3pi/4, Quad II + printf("(+1,-1) cartesian is (%f,%f) polar\n", hypot( 1,-1), atan2( 1,-1)); + // atan2(-1,-1) = -3pi/4, Quad III + printf("(-1,-1) cartesian is (%f,%f) polar\n", hypot(-1,-1), atan2(-1,-1)); + // atan2(-1,-1) = -pi/4, Quad IV + printf("(-1,+1) cartesian is (%f,%f) polar\n", hypot(-1, 1), atan2(-1, 1)); + + // special values + printf("atan2(0, 0) = %f atan2(0, -0)=%f\n", atan2(0,0), atan2(0,-0.0)); + printf("atan2(7, 0) = %f atan2(7, -0)=%f\n", atan2(7,0), atan2(7,-0.0)); +}</pre></div> <p>Output:</p> +<div class="text source-text"><pre data-language="c">(+1,+1) cartesian is (1.414214,0.785398) polar +(+1,-1) cartesian is (1.414214,2.356194) polar +(-1,-1) cartesian is (1.414214,-2.356194) polar +(-1,+1) cartesian is (1.414214,-0.785398) polar +atan2(0, 0) = 0.000000 atan2(0, -0)=3.141593 +atan2(7, 0) = 1.570796 atan2(7, -0)=1.570796</pre></div> </div> <h3 id="References"> References</h3> <ul> +<li> C23 standard (ISO/IEC 9899:2023): </li> +<ul> +<li> 7.12.4.4 The atan2 functions (p: TBD) </li> +<li> 7.25 Type-generic math <tgmath.h> (p: TBD) </li> +<li> F.10.1.4 The atan2 functions (p: TBD) </li> +</ul> +<li> C17 standard (ISO/IEC 9899:2018): </li> +<ul> +<li> 7.12.4.4 The atan2 functions (p: 174) </li> +<li> 7.25 Type-generic math <tgmath.h> (p: 272-273) </li> +<li> F.10.1.4 The atan2 functions (p: 378) </li> +</ul> +<li> C11 standard (ISO/IEC 9899:2011): </li> +<ul> +<li> 7.12.4.4 The atan2 functions (p: 239) </li> +<li> 7.25 Type-generic math <tgmath.h> (p: 373-375) </li> +<li> F.10.1.4 The atan2 functions (p: 519) </li> +</ul> +<li> C99 standard (ISO/IEC 9899:1999): </li> +<ul> +<li> 7.12.4.4 The atan2 functions (p: 219) </li> +<li> 7.22 Type-generic math <tgmath.h> (p: 335-337) </li> +<li> F.9.1.4 The atan2 functions (p: 456) </li> +</ul> +<li> C89/C90 standard (ISO/IEC 9899:1990): </li> +<ul><li> 4.5.2.4 The atan2 function </li></ul> +</ul> <h3 id="See_also"> See also</h3> <table class="t-dsc-begin"> <tr class="t-dsc"> <td> <div><a href="asin" title="c/numeric/math/asin"> <span class="t-lines"><span>asin</span><span>asinf</span><span>asinl</span></span></a></div> +<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes arc sine (\({\small\arcsin{x} }\)arcsin(x)) <br> <span class="t-mark">(function)</span> </td> +</tr> <tr class="t-dsc"> <td> <div><a href="acos" title="c/numeric/math/acos"> <span class="t-lines"><span>acos</span><span>acosf</span><span>acosl</span></span></a></div> +<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes arc cosine (\({\small\arccos{x} }\)arccos(x)) <br> <span class="t-mark">(function)</span> </td> +</tr> <tr class="t-dsc"> <td> <div><a href="atan" title="c/numeric/math/atan"> <span class="t-lines"><span>atan</span><span>atanf</span><span>atanl</span></span></a></div> +<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes arc tangent (\({\small\arctan{x} }\)arctan(x)) <br> <span class="t-mark">(function)</span> </td> +</tr> <tr class="t-dsc"> <td> <div><a href="../complex/carg" title="c/numeric/complex/carg"> <span class="t-lines"><span>carg</span><span>cargf</span><span>cargl</span></span></a></div> +<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the phase angle of a complex number <br> <span class="t-mark">(function)</span> </td> +</tr> <tr class="t-dsc"> <td colspan="2"> <span><a href="https://en.cppreference.com/w/cpp/numeric/math/atan2" title="cpp/numeric/math/atan2">C++ documentation</a></span> for <code>atan2</code> </td> +</tr> </table> <div class="_attribution"> + <p class="_attribution-p"> + © cppreference.com<br>Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.<br> + <a href="https://en.cppreference.com/w/c/numeric/math/atan2" class="_attribution-link">https://en.cppreference.com/w/c/numeric/math/atan2</a> + </p> +</div> |
