Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members  

config.C

00001 #include <string.h>
00002 
00003 #include <citrus/config.h>
00004 #if defined(__GNUC__) && defined(__LINUX__)
00005 #include <nan.h>
00006 double dtNaN = _QNAN ;
00007 double dtPInf = 1.0/0.0 ;
00008 double dtNInf = -1.0/0.0 ;
00009 #else
00010 double dtNaN = 0.0/0.0 ;
00011 double dtPInf = 1.0/0.0 ;
00012 double dtNInf = -1.0/0.0 ;
00013 #endif
00014 
00015 char* strndup( const char* src, int maxlen)
00016 {
00017  int len = strlen( src ) ;
00018  if ( len > maxlen ) len = maxlen ;
00019  char*  dest = new char[len+1] ;
00020  strncpy( dest, src, len ) ;
00021  dest[len]='\0';
00022  return dest ;
00023 }
00024 
00025 char* dt_strdup( const char* src )
00026 {
00027  int len = strlen( src ) ;
00028  char*  dest = new char[len+1] ;
00029  strcpy( dest, src ) ;
00030  return dest ;
00031 }
00032 
00033 int factorial( int n, int lower )
00034 {
00035   if ( n  < 2 ) return 1 ;
00036   if ( n == 2 ) return 2 ;
00037 
00038   int res = 2 ;
00039 
00040   for (int i = 3 > lower ? 3 : lower ; i<=n; i++)
00041     res *= i ;
00042 
00043   return res ;
00044 }
Citrus C++ Reference Manual  20010520