Provided by: allegro5-doc_5.2.9.1+dfsg-1.1build4_all bug

NAME

       al_fixmul - Allegro 5 API

SYNOPSIS

              #include <allegro5/allegro.h>

              al_fixed al_fixmul(al_fixed x, al_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, Allegro’s 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 call al_set_errno(0) before calling al_fixmul(3alleg5).

       Example:

              al_fixed result;

              /* This will put 30000 into `result'. */
              result = al_fixmul(al_itofix(10), al_itofix(3000));

              /* But this overflows, and sets errno. */
              result = al_fixmul(al_itofix(100), al_itofix(3000));
              assert(!al_get_errno());

RETURN VALUE

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

SEE ALSO

       al_fixadd(3alleg5), al_fixsub(3alleg5), al_fixdiv(3alleg5), al_get_errno(3alleg5).