/**
* Calling convention
*/
/**
* Internal piece representation
* wking=1, wqueen=2, wrook=3, wbishop= 4, wknight= 5, wpawn= 6,
* bking=7, bqueen=8, brook=9, bbishop=10, bknight=11, bpawn=12
*
* Make sure the piecesyou pass to the library from your engine
* use this format.
*/
;
;
/**
* nnue data structure
*/
typedef struct DirtyPiece DirtyPiece;
typedef struct Accumulator Accumulator;
typedef struct NNUEdata NNUEdata;
/**
* position data structure passed to core subroutines
* See @nnue_evaluate for a description of parameters
*/
typedef struct Position Position;
int ;
/************************************************************************
* EXTERNAL INTERFACES
*
* Load a NNUE file using
*
* nnue_init(file_path)
*
* and then probe score using one of three functions, whichever
* is convenient. From easy to hard
*
* a) nnue_evaluate_fen - accepts a fen string for evaluation
* b) nnue_evaluate - suitable for use in engines
* c) nnue_evaluate_incremental - for ultimate performance but will need
* some work on the engines side.
*
**************************************************************************/
/**
* Load NNUE file
*/
DLLExport void _CDECL ;
/**
* Evaluate on FEN string
* Returns
* Score relative to side to move in approximate centi-pawns
*/
DLLExport int _CDECL ;
/**
* Evaluation subroutine suitable for chess engines.
* -------------------------------------------------
* Piece codes are
* wking=1, wqueen=2, wrook=3, wbishop= 4, wknight= 5, wpawn= 6,
* bking=7, bqueen=8, brook=9, bbishop=10, bknight=11, bpawn=12,
* Squares are
* A1=0, B1=1 ... H8=63
* Input format:
* piece[0] is white king, square[0] is its location
* piece[1] is black king, square[1] is its location
* ..
* piece[x], square[x] can be in any order
* ..
* piece[n+1] is set to 0 to represent end of array
* Returns
* Score relative to side to move in approximate centi-pawns
*/
DLLExport int _CDECL ;
/**
* Incremental NNUE evaluation function.
* -------------------------------------------------
* First three parameters and return type are as in @nnue_evaluate
*
* nnue_data
* nnue_data[0] is pointer to NNUEdata for ply i.e. current position
* nnue_data[1] is pointer to NNUEdata for ply - 1
* nnue_data[2] is pointer to NNUEdata for ply - 2
*/
DLLExport int _CDECL ;