Sophie

Sophie

distrib > Mandriva > cooker > i586 > by-pkgid > b70c0f154c89d61ccc233b855bfed06f > files > 889

cg-3.0.0018-0.1.i586.rpm

<HTML>

<HEAD>
<TITLE>cos</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>cos</B> - returns cosine of scalars and vectors.


</P>

<H1><A NAME="SYNOPSIS"><A NAME="2">SYNOPSIS

</A></A></H1>
<PRE>  float  cos(float a);
  float1 cos(float1 a);
  float2 cos(float2 a);
  float3 cos(float3 a);
  float4 cos(float4 a);
 
  half   cos(half a);
  half1  cos(half1 a);
  half2  cos(half2 a);
  half3  cos(half3 a);
  half4  cos(half4 a);
 
  fixed  cos(fixed a);
  fixed1 cos(fixed1 a);
  fixed2 cos(fixed2 a);
  fixed3 cos(fixed3 a);
  fixed4 cos(fixed4 a);
</PRE>
<H1><A NAME="PARAMETERS"><A NAME="3">PARAMETERS

</A></A></H1>
<DL>
<DT><STRONG>a

</STRONG></DT>
<DD>

<P>
Vector or scalar of which to determine the cosine.


</P>
</DD></DL>

<H1><A NAME="DESCRIPTION"><A NAME="4">DESCRIPTION

</A></A></H1>
<P>
Returns the cosine of <I>a</I> in radians. The return value is in the range
[-1,+1].


</P>
<P>
For vectors, the returned vector contains the cosine of each
element of the input vector.


</P>

<H1><A NAME="REFERENCE_IMPLEMENTATION"><A NAME="5">REFERENCE IMPLEMENTATION

</A></A></H1>
<P>
<B>cos</B> is best implemented as a native cosine instruction, however <B>cos</B>
for a <B>float</B> scalar could be implemented by an approximation like this.


</P>
<PRE>  cos(float a)
  {
    /* C simulation gives a max absolute error of less than 1.8e-7 */
    const float4 c0 = float4( 0.0,            0.5,
                              1.0,            0.0            );
    const float4 c1 = float4( 0.25,          -9.0,
                              0.75,           0.159154943091 );
    const float4 c2 = float4( 24.9808039603, -24.9808039603,
                             -60.1458091736,  60.1458091736  );
    const float4 c3 = float4( 85.4537887573, -85.4537887573,
                             -64.9393539429,  64.9393539429  );
    const float4 c4 = float4( 19.7392082214, -19.7392082214,
                             -1.0,            1.0            );

    /* r0.x = cos(a) */
    float3 r0, r1, r2;

    r1.x  = c1.w * a;                       // normalize input
    r1.y  = frac( r1.x );                   // and extract fraction
    r2.x  = (float) ( r1.y &lt; c1.x );        // range check: 0.0 to 0.25
    r2.yz = (float2) ( r1.yy &gt;= c1.yz );    // range check: 0.75 to 1.0
    r2.y  = dot( r2, c4.zwz );              // range check: 0.25 to 0.75
    r0    = c0.xyz - r1.yyy;                // range centering
    r0    = r0 * r0;
    r1    = c2.xyx * r0 + c2.zwz;           // start power series
    r1    =     r1 * r0 + c3.xyx;
    r1    =     r1 * r0 + c3.zwz;
    r1    =     r1 * r0 + c4.xyx;
    r1    =     r1 * r0 + c4.zwz;
    r0.x  = dot( r1, -r2 );                 // range extract

    return r0.x;
</PRE>
<H1><A NAME="PROFILE_SUPPORT"><A NAME="6">PROFILE SUPPORT

</A></A></H1>
<P>
<B>cos</B> is fully supported in all profiles unless otherwise specified.


</P>
<P>
<B>cos</B> is supported via an approximation (shown above) in the
<A HREF="vs_1_1.html">vs_1_1</A>, <A HREF="vp20.html">vp20</A>, and <A HREF="arbvp1.html">arbvp1</A> profiles.


</P>
<P>
<B>cos</B> is unsupported in the <A HREF="fp20.html">fp20</A>, <A HREF="ps_1_1.html">ps_1_1</A>, <A HREF="ps_1_2.html">ps_1_2</A>, and <A HREF="ps_1_3.html">ps_1_3</A> profiles.


</P>

<H1><A NAME="SEE_ALSO"><A NAME="7">SEE ALSO

</A></A></H1>
<P>
<A HREF="acos.html"><I>acos</I></A>, <A HREF="dot.html"><I>dot</I></A>, <A HREF="frac.html"><I>frac</I></A>, <A HREF="sin.html"><I>sin</I></A>, <A HREF="sincos.html"><I>sincos</I></A>, <A HREF="tan.html"><I>tan</I></A>

</P>

</BLOCKQUOTE>



</BODY>