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.[1]
//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
[modifica | modifica wikitesto]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:
double | double complex cpow(double complex x, double complex y); |
float | float complex cpowf(float complex x, float complex y); |
long double | long 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. [2]
Funzioni trigonometriche
[modifica | modifica wikitesto]double complex cacos(double complex z);
|
calcola l'arcocoseno del numero complesso z |
double complex casin(double complex z);
|
calcola l'arcoseno del numero complesso z |
double complex catan(double complex z);
|
calcola l'arcotangente del numero complesso z |
double complex ccos(double complex z);
|
calcola il coseno del numero complesso z |
double complex csin(double complex z);
|
calcola il seno del numero complesso z |
double complex ctan(double complex z);
|
calcola la tangente del numero complesso z |
Funzioni iperboliche
[modifica | modifica wikitesto]double complex cacosh(double complex z);
|
calcola l'arcocoseno iperbolico del numero complesso z |
double complex casinh(double complex z);
|
calcola l'arcoseno iperbolico del numero complesso z |
double complex catanh(double complex z);
|
calcola l'arcotangente iperbolico del numero complesso z |
double complex ccosh(double complex z);
|
calcola il coseno iperbolico del numero complesso z |
double complex csinh(double complex z);
|
calcola il seno iperbolico del numero complesso z |
double complex ctanh(double complex z);
|
calcola la tangente iperbolico del numero complesso z |
Funzioni esponenziali e logaritmiche
[modifica | modifica wikitesto]double complex cexp(double complex z);
|
calcola l'esponenziale in di base-e del numero complesso z |
double complex clog(double complex z);
|
cacola il logaritmo naturale del numero complesso z |
Funzioni di potenza e valore assoluto
[modifica | modifica wikitesto]double cabs(double complex z);
|
calcola il valore assoluto del numero complesso z |
double complex cpow(double complex x, double complex y);
|
calcola il numero complesso x elevato al numero complesso y |
double complex csqrt(double complex z);
|
cacola la radice quadrata complessa del numero complesso z |
Funzioni di manipolazione
[modifica | modifica wikitesto]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 z |
double complex conj(double complex z);
|
calcola il numero complesso coniugato del numero complesso z |
double complex cproj(double complex z);
|
calcola la proiezione del numero complesso z sulla sfera di Reimann |
double creal(double complex z);
|
calcola la parte reale del numero complesso z |
Note
[modifica | modifica wikitesto]- ^ King, Kimberly Nelson., Programmazione in C, Maggioli, 2014, p. 550, ISBN 9788838785825, OCLC 955799486. URL consultato il 15 maggio 2019.
- ^ King, Kimberly Nelson., Programmazione in C, Maggioli, 2014, pp. 764-750, ISBN 9788838785825, OCLC 955799486. URL consultato l'11 maggio 2019.
Bibliografia
[modifica | modifica wikitesto]- Kim N. King, Programmazione in C, Milano, Apogeo s.r.l..
Collegamenti esterni
[modifica | modifica wikitesto]- complex.h - complex arithmetic, su pubs.opengroup.org. URL consultato il 15 maggio 2019.