Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pustaka Microsoft C Runtime (CRT) menyediakan fungsi pustaka matematika yang kompleks, termasuk semua yang diperlukan oleh ISO C99. Pengkompilasi tidak secara langsung mendukung complex kata kunci atau _Complex , oleh karena itu implementasi Microsoft menggunakan jenis struktur untuk mewakili angka kompleks.
Fungsi-fungsi ini diimplementasikan untuk menyeimbangkan performa dengan kebenaran. Karena menghasilkan hasil yang dibulatkan dengan benar mungkin sangat mahal, fungsi-fungsi ini dirancang untuk secara efisien menghasilkan perkiraan yang dekat dengan hasil yang dibulatkan dengan benar. Dalam kebanyakan kasus, hasil yang dihasilkan berada dalam +/-1 unit presisi paling sedikit (ULP) dari hasil yang dibulatkan dengan benar, meskipun mungkin ada kasus di mana ada ketidakakuratan yang lebih besar.
Rutinitas matematika yang kompleks mengandalkan fungsi pustaka matematika titik apung untuk implementasinya. Fungsi-fungsi ini memiliki implementasi yang berbeda untuk arsitektur CPU yang berbeda. Misalnya, CRT x86 32-bit mungkin memiliki implementasi yang berbeda dari CRT x64 64-bit. Selain itu, beberapa fungsi mungkin memiliki beberapa implementasi untuk arsitektur CPU tertentu. Implementasi yang paling efisien dipilih secara dinamis pada run-time tergantung pada set instruksi yang didukung oleh CPU. Misalnya, dalam CRT x86 32-bit, beberapa fungsi memiliki implementasi x87 dan implementasi SSE2. Saat berjalan pada CPU yang mendukung SSE2, implementasi SSE2 yang lebih cepat digunakan. Saat berjalan pada CPU yang tidak mendukung SSE2, implementasi x87 yang lebih lambat digunakan. Karena implementasi yang berbeda dari fungsi pustaka matematika dapat menggunakan instruksi CPU yang berbeda dan algoritma yang berbeda untuk menghasilkan hasilnya, fungsi dapat menghasilkan hasil yang berbeda di seluruh CPU. Dalam kebanyakan kasus, hasilnya berada dalam +/-1 ULP dari hasil yang dibulatkan dengan benar, tetapi hasil aktual dapat bervariasi di seluruh CPU.
Jenis yang digunakan dalam matematika kompleks
Implementasi complex.h header Microsoft mendefinisikan jenis ini sebagai setara untuk jenis kompleks asli standar C99:
| Jenis standar | Jenis Microsoft |
|---|---|
float complex atau float _Complex |
_Fcomplex |
double complex atau double _Complex |
_Dcomplex |
long double complex atau long double _Complex |
_Lcomplex |
Header math.h menentukan jenis terpisah, struct _complex, digunakan untuk _cabs fungsi . Jenis struct _complex tidak digunakan oleh fungsicabs matematika kompleks yang setara , ,cabsfcabsl .
Konstanta dan makro yang kompleks
I didefinisikan sebagai jenis _Fcomplex kompleks yang diinisialisasi oleh { 0.0f, 1.0f }.
Fungsi trigonometri
| Fungsi | Deskripsi |
|---|---|
cacos, , cacosfcacosl |
Menghitung kosinus busur kompleks dari bilangan kompleks |
casin, , casinfcasinl |
Menghitung sinus busur kompleks dari bilangan kompleks |
catan, , catanfcatanl |
Menghitung tangen busur kompleks dari bilangan kompleks |
ccos, , ccosfccosl |
Menghitung kosinus kompleks dari bilangan kompleks |
csin, , csinfcsinl |
Menghitung sinus kompleks dari bilangan kompleks |
ctan, , ctanfctanl |
Menghitung tangen kompleks dari bilangan kompleks |
Fungsi hiperbolik
| Fungsi | Deskripsi |
|---|---|
cacosh, , cacoshfcacoshl |
Menghitung kosinus hiperbolik busur kompleks dari bilangan kompleks |
casinh, , casinhfcasinhl |
Menghitung sinus hiperbolik busur kompleks dari bilangan kompleks |
catanh, , catanhfcatanhl |
Menghitung tangen hiperbolik busur kompleks dari bilangan kompleks |
ccosh, , ccoshfccoshl |
Menghitung kosinus hiperbolik kompleks dari bilangan kompleks |
csinh, , csinhfcsinhl |
Menghitung sinus hiperbolik kompleks dari bilangan kompleks |
ctanh, , ctanhfctanhl |
Menghitung tangen hiperbolik kompleks dari bilangan kompleks |
Fungsi eksponensial dan logaritma
| Fungsi | Deskripsi |
|---|---|
cexp, , cexpfcexpl |
Menghitung eksponensial base-e kompleks dari bilangan kompleks |
clog, , clogfclogl |
Menghitung logaritma alami kompleks (base-e) dari bilangan kompleks |
clog10, , clog10fclog10l |
Menghitung logaritma base-10 kompleks dari bilangan kompleks |
Fungsi daya dan nilai absolut
| Fungsi | Deskripsi |
|---|---|
cabs, , cabsfcabsl |
Menghitung nilai absolut yang kompleks (juga disebut norma, modulus, atau besaran) dari bilangan kompleks |
cpow, , cpowfcpowl |
Menghitung fungsi daya yang kompleks |
csqrt, , csqrtfcsqrtl |
Menghitung akar kuadrat kompleks dari bilangan kompleks |
Fungsi manipulasi
| Fungsi | Deskripsi |
|---|---|
_Cbuild, , _FCbuild_LCbuild |
Membuat bilangan kompleks dari bagian nyata dan imajiner |
carg, , cargfcargl |
Menghitung argumen (juga disebut sudut fase) dari bilangan kompleks |
cimag, , cimagfcimagl |
Menghitung bagian imajiner dari bilangan kompleks |
conj, , conjfconjl |
Menghitung konjugasi kompleks dari bilangan kompleks |
cproj, , cprojfcprojl |
Menghitung proyeksi bilangan kompleks ke bola Riemann |
creal, , crealfcreall |
Menghitung bagian nyata dari bilangan kompleks |
norm, , normfnorml |
Menghitung besaran kuadrat dari bilangan kompleks |
Fungsi operasi
Karena bilangan kompleks bukan jenis asli dalam pengkompilasi Microsoft, operator aritmatika standar tidak ditentukan pada jenis kompleks. Untuk kenyamanan, fungsi pustaka matematika kompleks ini disediakan untuk memungkinkan manipulasi terbatas angka kompleks dalam kode pengguna:
| Fungsi | Deskripsi |
|---|---|
_Cmulcc, , _FCmulcc_LCmulcc |
Mengalikan dua bilangan kompleks |
_Cmulcr, , _FCmulcr_LCmulcr |
Mengalikan bilangan kompleks dan titik mengambang |
Lihat juga
Matematika generik jenis
Rutinitas runtime Universal C menurut kategori