# fixmul

## NAME

fixmul − Multiplies two fixed point values together. Allegro game programming library.

## SYNOPSIS

**#include <allegro.h>**

**fixed fixmul(fixed x, fixed y);**

## DESCRIPTION

A fixed point value can be multiplied or divided by an integer with the normal ‘*’ and ‘/’ operators. To multiply two fixed point values, though, you must use this function.

If an overflow occurs, ‘errno’ will be set and the maximum possible value will be returned, but ‘errno’ is not cleared if the operation is successful. This means that if you are going to test for overflow you should set ‘errno=0’ before calling fixmul(). Example:

fixed result;

/* This will put 30000 into ‘result’. */

result = fixmul(itofix(10), itofix(3000));

/* But this overflows, and sets ‘errno’. */

result = fixmul(itofix(100), itofix(3000));

ASSERT(!errno);

## RETURN VALUE

Returns the clamped result of multiplying ‘x’ by ‘y’, setting ‘errno’ to ERANGE if there was an overflow.

## SEE ALSO

**fixadd(3)**, **fixsub(3)**, **fixdiv(3)**, **ex3buf(3)**, **excustom(3)**, **exfixed(3)**, **exspline(3)**, **exstars(3)**, **exupdate(3)**