/*Copyright (C) 1992, 1996 by Thomas Glen Smith. All Rights Reserved.*/
/* ifactorl APL2 V1.0.0 ************************************************
* For positive integers, ifactorl(n) is defined as the product of all *
* positive integers up to n. Factorl(0) and factorl(1) both return 1. *
* If argument n is a negative integer, aplerr will be set. *
***********************************************************************/
#define INCLUDES 0
#include "includes.h"
int ifactorl(n)
int n;
{
extern int aplerr;
int i,j;
j = n;
if (n==0 || n==1) return(1);
if (n < 0.0) {
aplerr = 36; /* bad argument to factorial */
return(0);
}
j = n;
while (--n) j *= n;
return(j);
}