Namensräume
Varianten
Aktionen

tan, tanf, tanl

Von cppreference.com
< c‎ | numerik‎ | math
 
 
 
Allgemeine mathematische Funktionen
Funktionen
Grundlegende Operationen
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
Maximum/Minimum-Operationen
(C99)
(C99)
Exponentialfunktionen
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
Potenzfunktionen
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
Trigonometrische und hyperbolische Funktionen
tan
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
Nächste ganze Gleitkommazahlen
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
Gleitkomma-Manipulation
(C99)(C99)
(C99)(C23)
(C99)
Verengende Operationen
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quanten- und Quantenexponent-Funktionen
Dezimal-Neu-Kodierungsfunktionen
Gesamtordnung und Payload-Funktionen
Klassifizierung
(C99)
(C99)
(C99)
(C23)
Fehler- und Gammafunktionen
(C99)
(C99)
(C99)
(C99)
Typen
Makrokonstanten
Spezielle Gleitkommawerte
(C99)(C23)
Argumente und Rückgabewerte
Fehlerbehandlung
Schnelle Operationsanzeigen
 
Definiert in Header <math.h>
float       tanf( float arg );
(1) (seit C99)
double      tan( double arg );
(2)
long double tanl( long double arg );
(3) (seit C99)
_Decimal32  tand32( _Decimal32 arg );
(4) (seit C23)
_Decimal64  tand64( _Decimal64 arg );
(5) (seit C23)
_Decimal128 tand128( _Decimal128 arg );
(6) (seit C23)
Definiert in Header <tgmath.h>
#define tan( arg )
(7) (seit C99)
1-6) Berechnet den Tangens von arg (gemessen in Radiant).
7) Typ-generische Makro: Wenn das Argument vom Typ long double ist, wird (3) (tanl) aufgerufen. Andernfalls, wenn das Argument einen ganzzahligen Typ oder den Typ double hat, wird (2) (tan) aufgerufen. Andernfalls wird (1) (tanf) aufgerufen. Wenn das Argument komplex ist, ruft das Makro die entsprechende komplexe Funktion auf (ctanf, ctan, ctanl).

Die Funktionen (4-6) werden nur dann deklariert, wenn die Implementierung __STDC_IEC_60559_DFP__ vordefiniert (d. h. die Implementierung unterstützt Dezimal-Gleitkommazahlen).

(seit C23)

Inhalt

[edit] Parameter

arg - Gleitkommazahl, die den Winkel in Radiant darstellt

[edit] Rückgabewert

Wenn keine Fehler auftreten, wird der Tangens von arg (tan(arg)) zurückgegeben.

Das Ergebnis kann wenig oder keine Bedeutung haben, wenn die Größenordnung von arg groß ist.

(bis C99)

Wenn ein Domänenfehler auftritt, wird ein implementierungsabhängiger Wert zurückgegeben (NaN, wo unterstützt).

Wenn ein Bereichsfehler aufgrund eines Unterlaufs auftritt, wird das korrekte Ergebnis (nach Rundung) zurückgegeben.

[edit] Fehlerbehandlung

Fehler werden wie in math_errhandling angegeben gemeldet.

Wenn die Implementierung IEEE-Gleitkomma-Arithmetik (IEC 60559) unterstützt

  • wenn das Argument ±0 ist, wird es unverändert zurückgegeben;
  • wenn das Argument ±∞ ist, wird NaN zurückgegeben und FE_INVALID ausgelöst;
  • Wenn das Argument NaN ist, wird NaN zurückgegeben.

[edit] Hinweise

Der Fall, dass das Argument unendlich ist, ist in C nicht als Domänenfehler spezifiziert, aber er ist als Domänenfehler in POSIX definiert.

Die Funktion hat mathematische Pole bei π(1/2 + n); jedoch ist keine gängige Gleitkommadarstellung in der Lage, π/2 exakt darzustellen, daher gibt es keinen Argumentwert, für den ein Polfehler auftritt.

[edit] Beispiel

#include <errno.h>
#include <fenv.h>
#include <math.h>
#include <stdio.h>
 
#ifndef __GNUC__
#pragma STDC FENV_ACCESS ON
#endif
 
int main(void)
{
    const double pi = acos(-1);
 
    // typical usage
    printf("tan(pi*1/4) = %+f\n", tan(pi * 1 / 4)); //   45 deg
    printf("tan(pi*3/4) = %+f\n", tan(pi * 3 / 4)); //  135 deg
    printf("tan(pi*5/4) = %+f\n", tan(pi * 5 / 4)); // -135 deg
    printf("tan(pi*7/4) = %+f\n", tan(pi * 7 / 4)); //  -45 deg
 
    // special values
    printf("tan(+0) = %f\n", tan(0.0));
    printf("tan(-0) = %f\n", tan(-0.0));
 
    // error handling
    feclearexcept(FE_ALL_EXCEPT);
    printf("tan(INFINITY) = %f\n", tan(INFINITY));
    if (fetestexcept(FE_INVALID))
        puts("    FE_INVALID raised");
}

Mögliche Ausgabe

tan(pi*1/4) = +1.000000
tan(pi*3/4) = -1.000000
tan(pi*5/4) = +1.000000
tan(pi*7/4) = -1.000000
tan(+0) = 0.000000
tan(-0) = -0.000000
tan(INFINITY) = -nan
    FE_INVALID raised

[edit] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.12.4.7 Die tan-Funktionen (S: TBD)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. TBD)
  • F.10.1.7 Die tan-Funktionen (S: TBD)
  • C17-Standard (ISO/IEC 9899:2018)
  • 7.12.4.7 Die tan-Funktionen (S: 175)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. 272-273)
  • F.10.1.7 Die tan-Funktionen (S: 378)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.12.4.7 Die tan-Funktionen (S: 240)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. 373-375)
  • F.10.1.7 Die tan-Funktionen (S: 519)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.12.4.7 Die tan-Funktionen (S: 220)
  • 7.22 Typ-generische Mathematik <tgmath.h> (S. 335-337)
  • F.9.1.7 Die tan-Funktionen (S: 457)
  • C89/C90-Standard (ISO/IEC 9899:1990)
  • 4.5.2.7 Die tan-Funktion

[edit] Siehe auch

(C99)(C99)
berechnet Sinus (sin(x))
(Funktion) [bearbeiten]
(C99)(C99)
berechnet Kosinus (cos(x))
(Funktion) [bearbeiten]
(C99)(C99)
berechnet Arkustangens (arctan(x))
(Funktion) [bearbeiten]
(C99)(C99)(C99)
berechnet den komplexen Tangens
(Funktion) [bearbeiten]