This is scalewidth.c in view mode; [Download] [Up]
/* * scalewidth.c of dvisw software package. This code is copyright (C) 1985 * by Radical Eye Software. * * Scales the width values. Takes two thirty-two bit integers, multiplies * them, divides them by 2^20, and returns the thirty-two bit result. * The first integer, the width in FIXes, can lie between -2^24 and 2^24-1. * The second integer, the scale factor, can lie between 0 and 2^27-1. The * arithmetic must be exact. The answer is truncated to an integer. * * Since this math is special, we put it in its own file. It is the only * place in the program where such accuracy is required. */ #include "structures.h" integer scalewidth(a, b) register integer a, b ; { register integer al, bl ; al = a & 32767 ; bl = b & 32767 ; a >>= 15 ; b >>= 15 ; return ( ((al*bl/32768) + a*bl+al*b)/32 + a*b*1024) ; }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.