Selected Reading

C++ cmath nan() Function



The C++ nan() is used to generate a Not-a-Number (NaN) value, which is a special value in floating-point arithmetic. NaNs indicate that a particular computation does not have a valid numeric result. For example, operations like dividing zero by zero or taking the square root of a negative number will yield NaN.

Overall, std::nan() is a useful tool for ensuring that applications can manage invalid floating-point calculations effectively for floating-point calculations.

Syntax

Following is the syntax for C++ cmath nan() function.

double nan(const char* tagp);
or
float nanf(const char* tagp);
or
long double nanl(const char* tagp);

Parameters

  • tagp - A string used to provide an optional diagnostic message that can be associated with the NaN value. This parameter can be nullptr if no tag is needed.

Return Value

The function returns a NaN value of the specified floating-point type.

Time Complexity

The time complexity of this function is constant, i.e.,O(1).

Example 1

In the following example, we use std::nan() to create a NaN value without providing a diagnostic message.

#include <iostream>
#include <cmath>
int main() {
   double nanValue = std::nan(nullptr);  // Generate NaN without a tag
   std::cout << "NaN value: " << nanValue << std::endl; 
   return 0;
}

Output

Output of the above code is as follows

NaN value: nan

Example 2

In this example, we create a NaN (Not a Number) value by assigning a specific tag.

#include <iostream>
#include <cmath>
int main() {
   const char* tag = "Example Tag";
   double nanValue = std::nan(tag);  // Generate NaN with a tag
   std::cout << "NaN value with tag: " << nanValue << std::endl; 
   return 0;
}

Output

Following is the output of the above code

NaN value with tag: nan

Example 3

In this example, we will demonstrate how to use NaN (Not a Number) in mathematical operations.

#include <iostream>
#include <cmath>
int main() {
   double nanValue = std::nan("Operation Result");
   double result = 5.0 + nanValue;  
   std::cout << "Result of adding 5.0 to NaN: " << result << std::endl;  
   return 0;
}

Output

If we run the above code it will generate the following output

Result of adding 5.0 to NaN: nan
cpp_cmath.htm
Advertisements