
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ Valarray::log Function
It is designed to hold an array of values, and easily perform mathematical operations on them. It also allows special mechanisms to refer to subsets of elements in the arrays.
The natural logarithm of the values of the elements in valarray is calculated using the C++ <valarray> log() function. The cmath log() method is overloaded by this function, which calls it once for each element.
Syntax
Following is the syntax for C++ Valarray::log Function −
log (const valarray<T>& x);
Parameters
x − It is containing elements of a type for which the unary function log is defined.
Examples
Example 1
Let's look into the following example, where we are going to use log() function and retrieving the output.
#include <iostream> #include <valarray> using namespace std; int main() { valarray<double> val = { 3,5,7,9,11 }; valarray<double> valarray1 ; valarray1 = log(val); cout << "The New log" << " Valarray is : " << endl; for (double& x : valarray1) { cout << x << " "; } cout << endl; return 0; }
Output
Let us compile and run the above program, this will produce the following result −
The New log Valarray is : 1.09861 1.60944 1.94591 2.19722 2.3979
Example 2
In the following example, we are going to use log() function and retrieving the output in exp and log for the exp generated value.
#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(8) << x; } std::cout << '\n'; } int main() { const std::valarray<double> n { 0.5,4.0,6.0,8.0 }; const std::valarray<double> exp_n { std::exp(n) }; const std::valarray<double> log_exp_n { std::log(exp_n) }; show("x ", exp_n); show("log(x)", log_exp_n); }
Output
Let us compile and run the above program, this will produce the following result −
x :1.64872154.598150403.4287932980.957987 log(x) :0.5000004.0000006.0000008.000000
Example 3
Considering the another scenario, where we are going to use log() function and retrieving the output of both original valarray and log valarray values.
#include <iostream> #include <valarray> using namespace std; int main() { valarray<double> myvalarray = { 1.2, -3.4, 0.6, -0.7, 2.5 }; cout << "The Orignal Valarray is : "; for (double& ele : myvalarray) cout << ele << " "; valarray<double> logValarray; logValarray = log(myvalarray); cout << "\nThe log Valarray is : "; for (double& ele : logValarray) cout << ele << " "; return 0; }
Output
Let us compile and run the above program, this will produce the following result −
The Orignal Valarray is : 1.2 -3.4 0.6 -0.7 2.5 The log Valarray is : 0.182322 -nan -0.510826 -nan 0.916291