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);
}
}