Is there a faster complex exponent?
7 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Daniel Dolan
il 15 Dic 2023
Risposto: Daniel Dolan
il 18 Dic 2023
Is there any way to more quickly evaluate complex exponentials, i.e:
where Q is a real array? Quick numerical tests show that complex input noticeably slows down MATLAB's exp function.
Several thoughts:
- Some libraries, such as Julia Base, provide a cis/cisoid function that directly evaluates the Euler expansion.
- The GNU C library has sincos function that simultaneously evaluate sine and cosine more quickly than separate calls.
- The Fixed Point Designer has a cordicexp function that seems to be identical to cis, but I don't have this toolbox. No idea how this performs compared to the standard exp function.
11 Commenti
Paul
il 15 Dic 2023
Modificato: Paul
il 16 Dic 2023
FWIW, Simulink offers a sincos and cos + jsin functions (Trigonometric Function), with options for how those functions are computed (Algorithm - Approximation Method). Don't know if the "under the hood" Simulink implementation would offer any performance benefits if brought into Matlab proper.
Bruno Luong
il 15 Dic 2023
But again I'm not convice MATLAB is NOT already do specific acceleration for exp(1i*Q). It is faster than cos alone on my PC and Walter PC as well
Risposta accettata
Più risposte (1)
Sulaymon Eshkabilov
il 15 Dic 2023
Let's compare two ways e.g.:
Q = linspace(-10, 10, 1e6);
tic;
CQ1 = exp(1i*Q);
T1 =toc
tic;
CQ2 = cos(Q)+1i*sin(Q);
T2 =toc
fprintf('Calc time of exp(1i*Q): %f; cos(Q)+i*sin(Q): %f; \n', [T1, T2])
Vedere anche
Categorie
Scopri di più su Symbolic Math Toolbox in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!