Subversion Repositories Games.Chess Giants

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.     Protector -- a UCI chess engine
  3.  
  4.     Copyright (C) 2009-2010 Raimund Heid (Raimund_Heid@yahoo.com)
  5.  
  6.     This program is free software: you can redistribute it and/or modify
  7.     it under the terms of the GNU General Public License as published by
  8.     the Free Software Foundation, either version 3 of the License, or
  9.     (at your option) any later version.
  10.  
  11.     This program is distributed in the hope that it will be useful,
  12.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.     GNU General Public License for more details.
  15.  
  16.     You should have received a copy of the GNU General Public License
  17.     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  
  19. */
  20.  
  21. #ifndef _tablebase_h_
  22. #define _tablebase_h_
  23.  
  24. #include "position.h"
  25.  
  26. extern bool tbAvailable;
  27.  
  28. #define TABLEBASE_ERROR 32768
  29.  
  30. /**
  31.  * Initialize this module.
  32.  *
  33.  * @return 0 if no errors occurred.
  34.  */
  35. int initializeModuleTablebase(void);
  36.  
  37. /**
  38.  * Test this module.
  39.  *
  40.  * @return 0 if all tests succeed.
  41.  */
  42. int testModuleTablebase(void);
  43.  
  44. /**
  45.  * Initialize tablebase support.
  46.  *
  47.  * @param path the directory containing the tablebase files
  48.  *
  49.  * @return 0 if no errors occurred.
  50.  */
  51. int initializeTablebase(const char *path);
  52.  
  53. /**
  54.  * Close all tablebase files.
  55.  */
  56. void closeTablebaseFiles(void);
  57.  
  58. /**
  59.  * Set the size of the tablebase cache.
  60.  *
  61.  * @var size the size of the tablebase cache in MB
  62.  *
  63.  * @return 0 if no errors occurred
  64.  */
  65. int setTablebaseCacheSize(unsigned int size);
  66.  
  67. /**
  68.  * Probe the tablebase for the specified position.
  69.  */
  70. int probeTablebase(const Position * position);
  71.  
  72. #endif
  73.