<HTML> <HEAD> <TITLE>atan2</TITLE> <STYLE TYPE="text/css" MEDIA=screen> <!-- BODY { font-family: Arial,Helvetica; } BLOCKQUOTE { margin: 10pt; } H1,A { color: #336699; } /*** Top menu style ****/ .mmenuon { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ff6600; font-size: 10pt; } .mmenuoff { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: 10pt; } .cpyright { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: xx-small; } .cpyrightText { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: xx-small; } .sections { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 11pt; } .dsections { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 12pt; } .slink { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #336699; font-size: 9pt; } .slink2 { font-family: Arial,Helvetica; text-decoration: none; color: #336699; } .maintitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 18pt; } .dblArrow { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } .menuSec { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } .newstext { font-family: Arial,Helvetica; font-size: small; } .linkmenu { font-family: Arial,Helvetica; color: #000000; font-weight: bold; text-decoration: none; } P { font-family: Arial,Helvetica; } PRE { font-family: monospace; white-space: pre; font-color: #333333; font-weight: 100; background-color: #eeeeee; padding: 5px; width: 90%; border-style: solid; border-width: 2px; border-color: #bebebe; } .quote { font-family: Times; text-decoration: none; color: #000000; font-size: 9pt; font-style: italic; } .smstd { font-family: Arial,Helvetica; color: #000000; font-size: x-small; } .std { font-family: Arial,Helvetica; color: #000000; } .meerkatTitle { font-family: sans-serif; font-size: x-small; color: black; } .meerkatDescription { font-family: sans-serif; font-size: 10pt; color: black } .meerkatCategory { font-family: sans-serif; font-size: 9pt; font-weight: bold; font-style: italic; color: brown; } .meerkatChannel { font-family: sans-serif; font-size: 9pt; font-style: italic; color: brown; } .meerkatDate { font-family: sans-serif; font-size: xx-small; color: #336699; } .tocTitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 10pt; } .toc-item { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; text-decoration: underline; } .perlVersion { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; text-decoration: none; } .docTitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #000000; font-size: 10pt; } .dotDot { font-family: Arial,Helvetica; font-weight: bold; color: #000000; font-size: 9pt; } .docSec { font-family: Arial,Helvetica; font-weight: normal; color: #333333; font-size: 9pt; } .docVersion { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 10pt; } .docSecs-on { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #ff0000; font-size: 10pt; } .docSecs-off { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #333333; font-size: 10pt; } h3 { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } h2 { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: medium; } h1 { font-family: Verdana,Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: large; } DL { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #333333; font-size: 10pt; } UL > LI > A { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; } .moduleInfo { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 11pt; } .moduleInfoSec { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 10pt; } .moduleInfoVal { font-family: Arial,Helvetica; font-weight: normal; text-decoration: underline; color: #000000; font-size: 10pt; } .cpanNavTitle { font-family: Arial,Helvetica; font-weight: bold; color: #ffffff; font-size: 10pt; } .cpanNavLetter { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 9pt; } .cpanCat { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 9pt; } --> </STYLE> </HEAD> <BODY> <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e"> </object> <BLOCKQUOTE> <H1><A NAME="NAME"><A NAME="1">NAME </A></A></H1> <P> <B>atan2</B> - returns arctangent of scalars and vectors. </P> <H1><A NAME="SYNOPSIS"><A NAME="2">SYNOPSIS </A></A></H1> <PRE> float atan2(float y, float x); float1 atan2(float1 y, float1 x); float2 atan2(float2 y, float2 x); float3 atan2(float3 y, float3 x); float4 atan2(float4 y, float4 x); half atan2(half y, half x); half1 atan2(half1 y, half1 x); half2 atan2(half2 y, half2 x); half3 atan2(half3 y, half3 x); half4 atan2(half4 y, half4 x); fixed atan2(fixed y, fixed x); fixed1 atan2(fixed1 y, fixed1 x); fixed2 atan2(fixed2 y, fixed2 x); fixed3 atan2(fixed3 y, fixed3 x); fixed4 atan2(fixed4 y, fixed4 x); </PRE> <H1><A NAME="PARAMETERS"><A NAME="3">PARAMETERS </A></A></H1> <DL> <DT><STRONG>y </STRONG></DT> <DD> <P> Vector or scalar for numerator of ratio of which to determine the arctangent. </P> <DT><STRONG>x </STRONG></DT> <DD> <P> Vector or scalar of denominator of ratio of which to determine the arctangent. </P> </DD></DL> <H1><A NAME="DESCRIPTION"><A NAME="4">DESCRIPTION </A></A></H1> <P> <B>atan2</B> calculates the arctangent of y/x. <B>atan2</B> is well defined for every point other than the origin, even if x equals 0 and y does not equal 0. </P> <P> For vectors, the returned vector contains the arctangent of each element of the input vector. </P> <H1><A NAME="REFERENCE_IMPLEMENTATION"><A NAME="5">REFERENCE IMPLEMENTATION </A></A></H1> <P> <B>atan2</B> for a <B>float2</B> scalar could be implemented as an approximation like this. </P> <PRE> float2 atan2(float2 y, float2 x) { float2 t0, t1, t2, t3, t4; t3 = abs(x); t1 = abs(y); t0 = max(t3, t1); t1 = min(t3, t1); t3 = float(1) / t0; t3 = t1 * t3; t4 = t3 * t3; t0 = - float(0.013480470); t0 = t0 * t4 + float(0.057477314); t0 = t0 * t4 - float(0.121239071); t0 = t0 * t4 + float(0.195635925); t0 = t0 * t4 - float(0.332994597); t0 = t0 * t4 + float(0.999995630); t3 = t0 * t3; t3 = (abs(y) > abs(x)) ? float(1.570796327) - t3 : t3; t3 = (x < 0) ? float(3.141592654) - t3 : t3; t3 = (y < 0) ? -t3 : t3; return t3; } </PRE> <H1><A NAME="PROFILE_SUPPORT"><A NAME="6">PROFILE SUPPORT </A></A></H1> <P> <B>atan2</B> is supported in all profiles but <A HREF="fp20.html">fp20</A>. </P> <H1><A NAME="SEE_ALSO"><A NAME="7">SEE ALSO </A></A></H1> <P> <A HREF="abs.html"><I>abs</I></A>, <A HREF="acos.html"><I>acos</I></A>, <A HREF="asin.html"><I>asin</I></A>, <A HREF="atan.html"><I>atan</I></A>. <A HREF="sqrt.html"><I>sqrt</I></A>, <A HREF="tan.html"><I>tan</I></A> </P> </BLOCKQUOTE> </BODY>