std::log10(std::valarray) - cppreference.com (original) (raw)

| | | | | ----------------------------------------------------------------- | | | | template< class T >valarray<T> log10( const valarray<T>& va ); | | |

For each element in va computes common (base 10) logarithm of the value of the element.

Contents

[edit] Parameters

va - value array to apply the operation to

[edit] Return value

Value array containing common logarithms of the values in va.

[edit] Notes

Unqualified function (log10) is used to perform the computation. If such function is not available, std::log10 is used due to argument-dependent lookup.

The function can be implemented with the return type different from std::valarray. In this case, the replacement type has the following properties:

[edit] Possible implementation

template valarray log10(const valarray& va) { valarray other = va; for (T& i : other) i = log10(i);   return other; // proxy object may be returned }

[edit] Example

#include #include #include #include   void show(char const* title, const std::valarray& va) { std::cout << title << " : " << std::right; for (float x : va) std::cout << std::setw(6) << x; std::cout << '\n'; }   int main() { const std::valarray n{-2.f, -1.f, 0.f, 1.f, 2.f, 3.f, INFINITY}; const std::valarray pow10{std::pow(10.f, n)}; const std::valarray log10_pow10{std::log10(pow10)};   show("n ", n); show("10ⁿ ", pow10); show("lg(10ⁿ)", log10_pow10); }

Output:

n  : -2 -1 0 1 2 3 inf 10ⁿ  : 0.01 0.1 1 10 100 1000 inf lg(10ⁿ) : -2 -1 0 1 2 3 inf

[edit] See also