1 // Emacs style mode select -*- C++ -*-
2 //-----------------------------------------------------------------------------
6 // Copyright (C) 1993-1996 by id Software, Inc.
8 // This source is available for distribution and/or modification
9 // only under the terms of the DOOM Source Code License as
10 // published by id Software. All rights reserved.
12 // The source is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
20 // Fixed point implementation.
22 //-----------------------------------------------------------------------------
26 rcsid[] = "$Id: m_bbox.c,v 1.1 1997/02/03 22:45:10 b1 Exp $";
33 #pragma implementation "m_fixed.h"
40 // Fixme. __USE_C_FIXED__ or something.
47 return ((long long) a * (long long) b) >> FRACBITS;
53 // FixedDiv, C version.
61 if ( (abs(a)>>14) >= abs(b))
62 return (a^b)<0 ? MININT : MAXINT;
63 return FixedDiv2 (a,b);
75 c = ((double)a) / ((double)b) * FRACUNIT;
77 if (c >= 2147483648.0 || c < -2147483648.0)
78 I_Error("FixedDiv: divide by zero");