Inanis 1.1.0 released

Page content

Major update of the Inanis chess engine, introducing a lot of new features and improvements: Syzygy tablebases, MultiPV, adjusted evaluation and more. Full changelog below.

Strength: 2800 Elo, Link:


  • Added support for Syzygy tablebases
  • Added support for “MultiPV” UCI option
  • Added support for “searchmoves” in “go” UCI command
  • Added “hashfull” in the UCI search output
  • Added “tunerset” command
  • Added “transposition_table_size” and “threads_count” parameters to “test” command
  • Added instant move when there is only one possible in the position
  • Added new benchmarks
  • Added tuner dataset generator
  • Added information about the compiler and a list of target features at the startup
  • Added diagnostic mode in search functions to gather statistics only if necessary
  • Added a simple PGN parser
  • Removed “tries_to_confirm” parameter from “test” command
  • Removed arr_macro crate from dependencies
  • Improved mobility evaluation, now the parameters are defined per piece instead of one value for all
  • Improved null move reduction formula, now should be more aggressive
  • Improved null move pruning, now it shouldn’t be tried for hopeless positions
  • Improved make-undo scheme performance
  • Improved release script, now it’s shorter and more flexible
  • Improved error messages and made them more detailed
  • Improved repetition draw detection
  • Increased late move pruning max depth
  • Increased amount of memory allocated for pawn hashtable
  • Adjusted evaluation parameters
  • Made LMR less aggressive in PV nodes
  • Made aging in the transposition table faster and more reliable
  • Merged reduction pruning with late move pruning
  • Decreased memory usage during tuner work
  • Deferred evaluation of evasion mask
  • Reduced amount of lazy evaluations
  • Reduced amount of locks in the UCI interface
  • Removed duplicated search calls in the PVS framework
  • Fixed crash when “tuner” command had not enough parameters
  • Fixed crash when FEN didn’t have information about halfmove clock and move number
  • Fixed crash when search in ponder mode was trying to be started in already checkmated position
  • Fixed tuner and tester not being able to examine all positions when multithreading is enabled
  • Fixed draw detection issue caused by transposition table
  • Fixed undefined behaviors and reduced the amount of unsafe code
  • Fixed incorrect benchmark statistics
  • Fixed a few edge cases in the short algebraic notation parser

History version

VersionRelease dateEloDescription
1.1.031-07-20222800Syzygy tablebases, MultiPV, adjusted evaluation
1.0.105-04-20222750A bunch of fixes for reported issues, stability improvement
1.0.002-04-20222750Initial release