/* $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