std::log(std::valarray)
Von cppreference.com
| Definiert in der Header-Datei <valarray> |
||
| template< class T > valarray<T> log( const valarray<T>& va ); |
||
Berechnet für jedes Element in va den natürlichen Logarithmus seines Wertes.
Inhalt |
[bearbeiten] Parameter
| va | - | Wert-Array, auf das die Operation angewendet werden soll. |
[bearbeiten] Rückgabewert
Wertarray, das die natürlichen Logarithmen der Werte in va enthält.
[bearbeiten] Anmerkungen
Die nicht qualifizierte Funktion (log) wird verwendet, um die Berechnung durchzuführen. Wenn eine solche Funktion nicht verfügbar ist, wird std::log aufgrund von Argument-dependent lookup verwendet.
Die Funktion kann mit einem anderen Rückgabetyp als std::valarray implementiert werden. In diesem Fall hat der Ersatztyp die folgenden Eigenschaften
- Alle const-Mitgliedsfunktionen von std::valarray sind vorhanden.
- std::valarray, std::slice_array, std::gslice_array, std::mask_array und std::indirect_array können aus dem Ersatztyp konstruiert werden.
- Für jede Funktion, die ein const std::valarray<T>& als Argument nimmt (außer begin() und end())(seit C++11), werden identische Funktionen hinzugefügt, die die Ersatztypen nehmen;
- Für jede Funktion, die zwei Argumente vom Typ const std::valarray<T>& annimmt, werden identische Funktionen hinzugefügt, die jede Kombination aus const std::valarray<T>& und Ersatztypen annehmen.
- Der Rückgabetyp fügt nicht mehr als zwei Ebenen von Template-Verschachtelung über den am tiefsten verschachtelten Argumenttyp hinaus hinzu.
[bearbeiten] Mögliche Implementierung
template<class T> valarray<T> log(const valarray<T>& va) { valarray<T> other = va; for (T& i : other) i = log(i); return other; // proxy object may be returned } |
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <iomanip> #include <iostream> #include <valarray> void show(char const* title, const std::valarray<double>& va) { std::cout << title << " :" << std::right << std::fixed; for (double x : va) std::cout << std::setw(10) << x; std::cout << '\n'; } int main() { const std::valarray<double> n{0.0, 1.0, 2.0, 3.0}; const std::valarray<double> exp_n{std::exp(n)}; const std::valarray<double> log_exp_n{std::log(exp_n)}; show("n ", n); show("eⁿ ", exp_n); show("log(eⁿ)", log_exp_n); }
Ausgabe
n : 0.000000 1.000000 2.000000 3.000000 eⁿ : 1.000000 2.718282 7.389056 20.085537 log(eⁿ) : 0.000000 1.000000 2.000000 3.000000
[bearbeiten] Siehe auch
| wendet die Funktion std::log10 auf jedes Element des Valarrays an (function template) | |
| wendet die Funktion std::exp auf jedes Element des Valarrays an (function template) | |
| (C++11)(C++11) |
berechnet den natürlichen (Basis e) Logarithmus (ln(x)) (Funktion) |
| komplexer natürlicher Logarithmus mit dem Schnitt entlang der negativen reellen Achse (function template) |