Intrinsic functions are subprograms that are built into the ACUCOBOL-GT library. They save time by simplifying common tasks that your COBOL programs might need to perform. For example, intrinsic functions can perform statistical calculations, convert strings from upper to lower case, compute annuities, derive values for trigonometric functions such as sine and cosine, and perform general utility tasks such as determining the compile date of the current object file.

Intrinsic functions are sometimes called built-in or library functions.

To access an intrinsic function, you include it inside a COBOL statement (typically a MOVE or COMPUTE statement). Here's an
example of a statement that uses the
`min` intrinsic function:

move function min(3,8,9,7) to my-minimum.

Note: As a programming convenience, you may omit the word
`FUNCTION` by pre-pending a
`$` to the name of an Intrinsic Function.

For example, the following two statements are equivalent:

compute result = function max( function sqrt(src), last-result ) compute result = $max( $sqrt(src), last-result )

This COBOL statement can be translated into: move the result derived from performing the
`min` function on the literals "3, 8, 9, and 7" to the variable
`my-minimum`.

Note the presence of the required word
`function`, followed by the name of the function (`min`) and then its parameters. This required word can be replaced by a $ sign, as shown in the following example.

Each intrinsic function is evaluated to a data value. This value is stored in a temporary storage area that you cannot access
directly in your program. The only way to get the derived value of an intrinsic function is to provide the name of a data
item into which the resulting value should be placed. In the example shown above, the variable
`my-minimum` receives the derived value of the
`min` function.

In the example above, the parameters passed to the
`min` function are literals. It is also permissible to pass data items, as shown here:

compute my-sine = $sin(angle-a).

Note: When the return value of a function is a double, the precision of the return value is limited to that supported by the underlying
hardware.

However, if your COBOL program is compiled for 31-digit support (`-Dd31`), numeric functions are computed using special floating point arithmetic that is accurate to approximately 33 digits, regardless
of the floating-point representation on the host machine.

The functions that return a double include: ABS, ABSOLUTE-VALUE, ACOS, ANNUITY, ASIN, ATAN, COS, LOG, LOG10, MEAN, MEDIAN, MIDRANGE, NUMVAL, NUMVAL-C, PRESENT-VALUE, RANDOM, REM, SIN, SQRT, STANDARD-DEVIATION, TAN, and VARIANCE.