Add vectorized variant for functions of complex variable, especially exp
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Das Issue nennt keine Dateien oder Tests. Beginne mit dem Leitfaden zu den grundlegenden Funktionen mit komplexen Werten und dem bestehenden vektorisierten Verhalten von pow, und verfolge dann, wie komplexe Skalarfunktionen mit Vektor- oder Matrix-Autodiff interagieren. Die Umsetzung sollte das angeforderte vektorisierte Verhalten von exp abdecken und die umfassendere Konsistenzfrage für log und trigonometrische Funktionen klären.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Currently, according to the guide https://mc-stan.org/docs/functions-reference/complex-valued_basic_functions.html it seems that basic arithmetic operators and pow are the only functions that accept complex vectors.
I am modelling some periodicities in data using Fourier series, and I find it the most compact (and computationally efficient) to express what I do in terms of complex numbers. However, it's not efficient to run a function over a matrix using a loop when there's autodiff.
The most striking case is the exp function, which is ubiquitous in complex analysis and I want to be able to run it elementwise over a vector or a matrix.
I figured out a possible workaround is to use pow(exp(1), z) which does work on vectorized z, but still I believe that exp is more fundamental than pow and it should be implemented, because the current state is confusing at best.
Of course then there are all the other functions which accept a real or complex scalar and accept vectorized real, but don't accept vectorized complex, which is inconsistent. This includes log and the trigonometric functions.
- Vorherrschende Sprache
- C++
- Sterne
- 845
- Forks
- 225
- Ø Merge
- 4 T. 21 Std.
- Gemergte PRs (30 T.)
- 13
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus stan-dev/math
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 54/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 54/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
Maintainer antworten meist innerhalb von 1 Tag
-
numerics performance
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
stan-dev/math#3481 · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
`eigendecompose_sym`, `eigenvalues_sym` and `eigenvectors_sym` do not compile for complex matrices of `fvar<var>` or `fvar<fvar<double>>`Evtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offenbug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
stan-dev/math#3477 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
ROCm/rocm-systems#15475 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 68/100
Sendspin/sendspin-cpp#257 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
pocoproject/poco#5664 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
community:good-first-issue kind:bug kind:test scope:control status:needs-triage vehicle:rover
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
PX4/PX4-Autopilot#29727 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag