
#include <stdio.h>

template< typename X >
inline
X
factorial( X n ) 
{
    if ( n )
      return n * factorial(n - 1);
    return 1;
}

int main(){

  double x = factorial( ( double )19 );
  printf( "factorial( (double)19 ): %f\n", x );

  return 0;
}
