public static void scale_fst(OcroFST fst, float scale)
{
if (Math.Abs(scale - 1.0f) < 1e-6f)
{
return;
}
for (int i = 0; i < fst.nStates(); i++)
{
Floatarray cost = fst.Costs(i);
cost *= scale;
float accept = fst.AcceptCost(i);
if (accept >= 0.0f && accept < 1e37f)
{
fst.SetAcceptCost(i, accept * scale);
}
}
}