// Copyright 2025 International Digital Economy Academy
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
///|
fn single_match_default_search_depth(search_limit : Int) -> Int {
let cap = if search_limit > 0 { search_limit } else { 8192 }
if cap >= 131072 {
96
} else if cap >= 65536 {
80
} else if cap >= 32768 {
64
} else if cap >= 16384 {
48
} else if cap >= 8192 {
32
} else if cap >= 4096 {
24
} else {
16
}
}
///|
fn level_single_match_search_depth(
level : Int,
enable_long_distance_matching : Bool,
) -> Int {
let base = if level >= 22 {
64
} else if level >= 18 {
48
} else if level >= 14 {
36
} else if level >= 10 {
28
} else {
20
}
let boosted = if enable_long_distance_matching { base + 24 } else { base }
if boosted > 96 {
96
} else {
boosted
}
}