ftp.nice.ch/pub/next/text/tex/apps/TeXview-kp0.25.s.tar.gz#/TeXview-grey/scalewidth.c

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.