/*
$Id: Common.h 15854 2013-04-02 09:35:24Z sloot $
$URL: https://ilk.uvt.nl/svn/trunk/sources/Timbl6/include/timbl/Common.h $
Copyright (c) 1998 - 2013
ILK - Tilburg University
CLiPS - University of Antwerp
This file is part of timbl
timbl is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
timbl is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see .
For questions and suggestions, see:
http://ilk.uvt.nl/software.html
or send mail to:
timbl@uvt.nl
*/
#ifndef TIMBL_COMMON_H
#define TIMBL_COMMON_H
#include
#include
#include
#include
namespace Common {
const double Epsilon = DBL_EPSILON; // smallest x so that 1+x != 1
const int DEFAULT_MAX_FEATS = 2500; // default maximun number of Features
std::string Version();
std::string VersionName();
std::string VersionInfo( bool = false );
void ShowVersionInfo( std::ostream& );
inline int look_ahead( std::istream &is ){
int nc;
while( is ){
nc=is.peek();
if ( !isspace(nc) )
return nc;
nc = is.get();
}
return -1;
}
inline void skip_spaces( std::istream &is ){
int nc;
while( is ){
nc=is.peek();
if ( !isspace(nc) )
return;
nc = is.get();
}
}
inline double Log2(double number){
// LOG base 2.
if ( fabs(number) < Epsilon)
return(0.0);
return log2(number);
}
}
#endif