complex.h è un header della Libreria Standard del C introdotto con il C99 a supporto delle librerie matematiche, fornendo macro e funzioni per l'aritmetica dei numeri complessi.
L'header definisce le macro "complex" e "I", con queste direttive è possibile costruire un numero complesso sommando la parte immaginaria moltiplicata per I con quella reale.
//definiamo il numero complesso z=2+3.5i double complex z = 2.0 + 3.5*I;Alternativamente alle macro di libreria, per definire un numero complesso si usa un tipo array di lunghezza due.
Funzioni Le funzioni <complex.h> sono divise in cinque sottocategorie, come nella libreria <math.h>, ma le sole funzioni unicamente per i numeri complessi sono le funzioni di manipolazione. Trigonometriche Iperboliche Esponenziali e logaritmiche Potenza e valore assoluto Manipolazione Ogni funzione è disponibile in tre versioni, float complex, double complex e long double complex. Il nome della funzione verrà qui riportato come tipo double poiché corrisponde con il nome della funzione. Il nome delle versioni float finisce con la lettera f, mentre il nome delle versioni long double termina con la lettera l. Riportando un esempio:
doubledouble complex cpow(double complex x, double complex y); floatfloat complex cpowf(float complex x, float complex y); long doublelong double complex cpowl(long double complex x, long double complex y);
Nelle funzioni complex.h, come per le funzioni math.h, gli angoli devono essere specificati in radianti e non in gradi.
Funzioni trigonometriche
double complex cacos(double complex z);calcola l'arcocoseno del numero complesso zdouble complex casin(double complex z);calcola l'arcoseno del numero complesso zdouble complex catan(double complex z);calcola l'arcotangente del numero complesso zdouble complex ccos(double complex z);calcola il coseno del numero complesso zdouble complex csin(double complex z);calcola il seno del numero complesso zdouble complex ctan(double complex z);calcola la tangente del numero complesso z
Funzioni iperboliche
double complex cacosh(double complex z);calcola l'arcocoseno iperbolico del numero complesso zdouble complex casinh(double complex z);calcola l'arcoseno iperbolico del numero complesso zdouble complex catanh(double complex z);calcola l'arcotangente iperbolico del numero complesso zdouble complex ccosh(double complex z);calcola il coseno iperbolico del numero complesso zdouble complex csinh(double complex z);calcola il seno iperbolico del numero complesso zdouble complex ctanh(double complex z);calcola la tangente iperbolico del numero complesso z
Funzioni esponenziali e logaritmiche double complex cexp(double complex z);calcola l'esponenziale in di base-e del numero complesso zdouble complex clog(double complex z);cacola il logaritmo naturale del numero complesso z
Funzioni di potenza e valore assoluto double cabs(double complex z);calcola il valore assoluto del numero complesso zdouble complex cpow(double complex x, double complex y);calcola il numero complesso x elevato al numero complesso ydouble complex csqrt(double complex z);cacola la radice quadrata complessa del numero complesso z
Funzioni di manipolazione
Questa classe di funzioni permettono di gestire separatamente la parte immaginaria e reale del numero complesso.
double carg(double complex z);calcola la fase dell'angolo z (in radianti)double cimag(double complex z);calcola la parte immaginaria del numero complesso zdouble complex conj(double complex z);calcola il numero complesso coniugato del numero complesso zdouble complex cproj(double complex z);calcola la proiezione del numero complesso z sulla sfera di Reimanndouble creal(double complex z);calcola la parte reale del numero complesso z
Note
Bibliografia
Collegamenti esterni
Categoria:Libreria standard del C