From e7ed03cead95381cfc2de33d05e210007f0046ed Mon Sep 17 00:00:00 2001 From: Chin-Chang Yang <2770271+ChinChangYang@users.noreply.github.com> Date: Thu, 5 Feb 2026 20:03:01 +0800 Subject: [PATCH] Fix potential division by zero in cpuctUtilityStdevPrior Change the minimum allowed value for cpuctUtilityStdevPrior from 0.0 to 1e-20 to prevent division by zero in searchexplorehelpers.cpp when computing parentUtilityStdevFactor. Fixes https://github.com/lightvector/KataGo/issues/831 Co-Authored-By: Claude Opus 4.5 --- cpp/program/setup.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/program/setup.cpp b/cpp/program/setup.cpp index a31295145..83bda77c9 100644 --- a/cpp/program/setup.cpp +++ b/cpp/program/setup.cpp @@ -489,8 +489,8 @@ vector Setup::loadParams( else if(cfg.contains("cpuctExplorationBase")) params.cpuctExplorationBase = cfg.getDouble("cpuctExplorationBase", 10.0, 100000.0); else params.cpuctExplorationBase = 500.0; - if(cfg.contains("cpuctUtilityStdevPrior"+idxStr)) params.cpuctUtilityStdevPrior = cfg.getDouble("cpuctUtilityStdevPrior"+idxStr, 0.0, 10.0); - else if(cfg.contains("cpuctUtilityStdevPrior")) params.cpuctUtilityStdevPrior = cfg.getDouble("cpuctUtilityStdevPrior", 0.0, 10.0); + if(cfg.contains("cpuctUtilityStdevPrior"+idxStr)) params.cpuctUtilityStdevPrior = cfg.getDouble("cpuctUtilityStdevPrior"+idxStr, 1e-20, 10.0); + else if(cfg.contains("cpuctUtilityStdevPrior")) params.cpuctUtilityStdevPrior = cfg.getDouble("cpuctUtilityStdevPrior", 1e-20, 10.0); else params.cpuctUtilityStdevPrior = 0.40; if(cfg.contains("cpuctUtilityStdevPriorWeight"+idxStr)) params.cpuctUtilityStdevPriorWeight = cfg.getDouble("cpuctUtilityStdevPriorWeight"+idxStr, 0.0, 100.0); else if(cfg.contains("cpuctUtilityStdevPriorWeight")) params.cpuctUtilityStdevPriorWeight = cfg.getDouble("cpuctUtilityStdevPriorWeight", 0.0, 100.0);