math.h ist eine Header-Datei in der Standard C Library der Programmiersprache C. Sie wurde für mathematische Funktionen entwickelt. Die Programmiersprache C++ benutzt die Funktionen ebenfalls, um die Kompatibilität von C zu C++ zu gewährleisten, und deklariert sie in der Header-Datei cmath (dort ohne die Dateinamenserweiterung „.h“ verwendet).
Alle Funktionen, die einen Winkel einlesen oder ausgeben, arbeiten mit Radiant. Die meisten Funktionen arbeiten mit Gleitkommazahlen. Mathematische Funktionen, die mit ganzzahligen Werten (Integer) arbeiten, wie abv, labs, div oder ldiv, sind stattdessen in der Header-Datei stdlib.h vertreten.
Funktionen bis C95 In den Normen bis einschließlich C95 waren die folgenden Funktionen deklariert. Name Beschreibung Mathematische Formulierungacos Arkuskosinus asin Arkussinus atan Arkustangens atan2 „Arkustangens“ mit zwei Argumentenceil Aufrundungsfunktion cos Kosinus cosh Kosinus hyperbolicus exp Exponentialfunktion fabs Betragsfunktion floor Ganzteilfunktion fmod Führt die Modulo-Funktion für Gleitkommazahlen durch frexp Teilt eine Gleitkommazahl in Faktor und Potenz mit der Basis 2 auf ldexp Multipliziert den ersten Parameter mit 2 um den zweiten Parameter potenziert log Natürlicher Logarithmus log10 Logarithmus zur Basis 10 modf Teilt eine Gleitkommazahl in zwei Zahlen auf, vor und nach dem Komma pow Potenziert ersten mit dem zweiten Parameter sin Sinus sinh Sinus hyperbolicus sqrt Quadratwurzel tan Tangens tanh Tangens hyperbolicus
C99-Funktionen Mit der Norm C99 wurde math.h um die folgenden Funktionen erweitert. Name Beschreibung Mathematische Formulierungacosh Areakosinus hyperbolicus asinh Areasinus hyperbolicus atanh Areatangens hyperbolicus cbrt Kubikwurzel copysign(x,y) gibt den Wert von x mit dem Vorzeichen von y zurück erf Fehlerfunktion erfc Gibt den Komplementärfehler von x zurück exp2(x) Potenziert 2 mit dem übergebenen Parameter expm1(x) Liefert den Wert von exp()-1 zurück fdim(x,y) Positive Differenz fma(x,y,z) Multipliziert und Addiert fmax(x,y) Maximum fmin(x,y) Minimum hypot(x,y) Hypotenuse ilogb wie logb, gibt allerdings int zurück (int)logb(x)lgamma Logarithmus der Gammafunktion llrint Rundungsfunktion lrint Rundungsfunktion llround Rundungsfunktion lround Rundungsfunktion log1p(x) Natürlicher Logarithmus von 1 + x log2 Logarithmus zur Basis 2 logb Liefert den ganzzahligen Exponenten einer Gleitkommazahl als Gleitkommazahl nan(s) Ein NaN erzeugen nearbyint Rundet Gleitkommazahlen zum nächsten Integer nextafter(x,y) Gibt die nächst darstellbare Zahl nach x (Richtung y) zurück nexttoward(x,y) Wie nextafter, außer dass y als long double übergeben wird remainder(x,y) Rest einer Division remquo(x,y,p) Genauso wie remainder, speichert jedoch den Quotienten (als int) als Ziel des Zeigers p rint Rundet je nach Rundungsmodus zum nächsten Integer, gibt eine Gleitkommazahl zurück round kaufmännische Rundungsfunktion scalbln(x,y) x * FLT_RADIXy (y ist long) scalbn(x,y) x * FLT_RADIXy (y ist int) tgamma Gammafunktion trunc Beschneidet eine Gleitkommazahl, d. h. rundet „Richtung Null“
Beispiel
#include <stdio.h> #include <math.h>
int main() { double a = 5, b = 4; double c = pow(a, b); printf("%f hoch %f ist %f\n", a, b, c); }
Weblinks
Beschreibung auf cplusplus.com (englisch)
Kategorie:C (Programmiersprache)