This is ug.mult.c in view mode; [Download] [Up]
/* MULT unit generator */
#include "ug.head.h"
mult
UGHEAD{
UGINIT;
if ( narg == 3 ) {
switch((INC(1)<<(1)) + (INC(2))){
case 0: { register float product = VAL(1) * VAL(2) ;
UGLOOP{
VAL(OUT)++ = product ;
}
return ;
}
case 1: { register float multiplier = VAL(1) ;
UGLOOP{
VAL(OUT)++ = multiplier * VAL(2)++ ;
}
return ;
}
case 2: { register float multiplicand = VAL(2) ;
UGLOOP{
VAL(OUT)++ = VAL(1)++ * multiplicand ;
}
return ;
}
case 3: {
UGLOOP{
VAL(OUT)++ = VAL(1)++ * VAL(2)++ ;
}
return ;
}
}
} else {
UGLOOP{ register float product ;
product = 1.0 ;
for ( arg=1; arg<narg; arg++ ) product *= VAL(arg) ;
VAL(OUT)++ = product ;
UGEND(1)
}
}
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.