This is ben.c in view mode; [Download] [Up]
#import "ben.h"
double ben( double b, double e, double n)
{
if( e < 0 )
exit(5);
if( e == 0 )
return 1;
if( drem(e , 2) == 0 )
return( modulus( pow( ben( b, e / 2, n ), 2) , n));
return( modulus( (b * ben( b, e -1, n )) , n));
}
double modulus(double a,double b)
{
double t;
a = rint(a);
b= rint(b);
t = drem( a , b );
if( t < 0.0 )
return b + t;
else
return t;
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.