Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
35 lines
684 B
Go
35 lines
684 B
Go
package strategy
|
||
|
||
import "math"
|
||
|
||
// NormalizeFleetRole coerces miner|seeder|auto to a runtime role label.
|
||
func NormalizeFleetRole(role string) string {
|
||
switch role {
|
||
case "seeder", "miner":
|
||
return role
|
||
default:
|
||
return "auto"
|
||
}
|
||
}
|
||
|
||
// EmberwakeHeat returns 0–1 intensity for war-room heat maps from fleet role pressure fields.
|
||
func EmberwakeHeat(fleetRole string, seedPressure, hashratePressure float64) float64 {
|
||
if fleetRole == "seeder" {
|
||
return clamp01(seedPressure)
|
||
}
|
||
if hashratePressure > 0 {
|
||
return clamp01(hashratePressure)
|
||
}
|
||
return 0
|
||
}
|
||
|
||
func clamp01(v float64) float64 {
|
||
if v < 0 {
|
||
return 0
|
||
}
|
||
if v > 1 {
|
||
return 1
|
||
}
|
||
return math.Round(v*1000) / 1000
|
||
}
|