Next: , Previous: Top, Up: Top


1 Mathematical Functions (math.h)

This chapter groups a wide variety of mathematical functions. The corresponding definitions and declarations are in math.h. Two definitions from math.h are of particular interest.

  1. The representation of infinity as a double is defined as HUGE_VAL; this number is returned on overflow by many functions. The macro HUGE_VALF is a corresponding value for float.
  2. The structure exception is used when you write customized error handlers for the mathematical functions. You can customize error handling for most of these functions by defining your own version of matherr; see the section on matherr for details.

Since the error handling code calls fputs, the mathematical subroutines require stubs or minimal implementations for the same list of OS subroutines as fputs: close, fstat, isatty, lseek, read, sbrk, write. See System Calls, for a discussion and for sample minimal implementations of these support subroutines.

Alternative declarations of the mathematical functions, which exploit specific machine capabilities to operate faster—but generally have less error checking and may reflect additional limitations on some machines—are available when you include fastmath.h instead of math.h.