October 2023
#include <iostream>
#include <cmath>
int main() {
std::cout << INFINITY << std::endl;
// inf
std::cout << NAN << std::endl;
// nan
std::cout << isgreater(42, 10) << std::endl;
// 1
std::cout << isless(42, 10) << std::endl;
// 0
std::cout << isnan(NAN) << std::endl;
// 1
std::cout << isinf(INFINITY) << std::endl;
// 1
std::cout << isfinite(42) << std::endl;
// 1
// trigonometric functions
std::cout << cos(42) << std::endl;
// -0.399985
std::cout << sin(42) << std::endl;
// -0.916522
std::cout << tan(42) << std::endl;
// 2.29139
// exponential and logarithmic functions
std::cout << log10(10) << std::endl;
// 1
std::cout << log2(8) << std::endl;
// 3
std::cout << exp(2) << std::endl;
// 7.38906
// binary exponential function
std::cout << exp2(2) << std::endl;
// 4
// natural logarithm
std::cout << log(10) << std::endl;
// 2.30259
// power functions
std::cout << pow(2, 3) << std::endl;
// 8
std::cout << sqrt(16) << std::endl;
// 4
std::cout << cbrt(27) << std::endl;
// 3
// rounding and remainder functions
std::cout << ceil(41.5) << std::endl;
// 42
std::cout << floor(42.5) << std::endl;
// 42
std::cout << trunc(42.5) << std::endl;
// 42
std::cout << round(41.5) << std::endl;
// 42
std::cout << remainder(142, 100) << std::endl;
// 42
// round to nearest integer
std::cout << rint(42.5) << std::endl;
// 42
// round to nearby integer
std::cout << nearbyint(42.5) << std::endl;
// 42
// manipulation functions
std::cout << copysign(42, -1) << std::endl;
// -42
std::cout << nan("42") << std::endl;
// nan
// minimum, maximum, difference functions
// positive difference
std::cout << fdim(52, 10) << std::endl;
// 42
std::cout << fmax(42, 10) << std::endl;
// 42
std::cout << fmin(42, 10) << std::endl;
// 10
// other functions
// absolute value (can handle floating-point)
std::cout << fabs(-12.5) << std::endl;
// 12.5
// absolute value (only for integers)
std::cout << abs(-42) << std::endl;
// 42
// fused multiply-add
std::cout << fma(42.5, 10, 200) << std::endl;
// 625
}