atan, atanf, atanl, atan2, atan2f, atan2l

Menghitung arka tangen (, , dan atanl) atau arka tangen/yx (atan2, , atan2fdan ).atan2latanfatanx

Sintaks

double atan( double x );
float atanf( float x );
long double atanl( long double x );
#define atan(X) // Requires C11 or higher

float atan( float x );  // C++ only
long double atan( long double x );  // C++ only

double atan2( double y, double x );
float atan2f( float y, float x );
long double atan2l( long double y, long double x );
#define atan2(Y, X) // Requires C11 or higher

float atan2( float y, float x );  // C++ only
long double atan2( long double y, long double x );  // C++ only

Parameter

x, y
Angka apapun.

Nilai hasil

atan mengembalikan arka tangen x dalam rentang -π/2 hingga radian π/2. atan2 mengembalikan arka tangen y/x dalam rentang -π ke radian π. Jika x adalah 0, atan mengembalikan 0. Jika kedua parameter atan2 adalah 0, fungsi mengembalikan 0. Semua hasil dalam radian.

atan2 menggunakan tanda-tanda kedua parameter untuk menentukan kuadrian nilai yang dikembalikan.

Input Pengecualian SEH Pengecualian _matherr
± QNaN, IND tidak ada _DOMAIN

Keterangan

Fungsi menghitung atan arka tangen (fungsi tangen terbalik) dari x. atan2 menghitung arka y/x tangen (jika x sama dengan 0, atan2 mengembalikan π/2 jika y positif, -π/2 jika y negatif, atau 0 jika y adalah 0,)

Jika Anda menggunakan atan makro atau atan2 dari <tgmath.h>, jenis argumen menentukan versi fungsi mana yang dipilih. Lihat Matematika generik jenis untuk detailnya.

atan memiliki implementasi yang menggunakan Streaming SIMD Extensions 2 (SSE2). Untuk informasi dan pembatasan tentang penggunaan implementasi SSE2, lihat _set_SSE2_enable.

Karena C++ memungkinkan kelebihan beban, Anda dapat memanggil kelebihan beban atan dan atan2 yang mengambil float atau long double argumen. Dalam program C, kecuali Anda menggunakan <tgmath.h> makro untuk memanggil fungsi ini, atan dan atan2 selalu mengambil double argumen dan mengembalikan double.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Persyaratan

Rutin Header yang diperlukan (C) Header yang diperlukan (C++)
atan, atan2, atanf, atan2f, atanl, atan2l <math.h> <cmath> atau <math.h>
atan, atan2 makro <tgmath.h>

Contoh

// crt_atan.c
// arguments: 5 0.5
#include <math.h>
#include <stdio.h>
#include <errno.h>

int main( int ac, char* av[] )
{
   double x, y, theta;
   if( ac != 3 ){
      fprintf( stderr, "Usage: %s <x> <y>\n", av[0] );
      return 1;
   }
   x = atof( av[1] );
   theta = atan( x );
   printf( "Arctangent of %f: %f\n", x, theta );
   y = atof( av[2] );
   theta = atan2( y, x );
   printf( "Arctangent of %f / %f: %f\n", y, x, theta );
   return 0;
}
Arctangent of 5.000000: 1.373401
Arctangent of 0.500000 / 5.000000: 0.099669

Baca juga

Dukungan matematika dan titik mengambang
acos, acosf, acosl
asin, asinf, asinl
cos, cosf, cosl
_matherr
sin, sinf, sinl
tan, tanf, tanl
_CIatan
_CIatan2