diff --git a/examples/ra25/ra25.go b/examples/ra25/ra25.go index 312a3cc..734d647 100644 --- a/examples/ra25/ra25.go +++ b/examples/ra25/ra25.go @@ -419,8 +419,7 @@ func (ss *Sim) ConfigLoops() { leabra.LooperSimCycleAndLearn(man, ss.Net, &ss.Context, &ss.ViewUpdate) // std algo code for m, _ := range man.Stacks { - mode := m // For closures - stack := man.Stacks[mode] + stack := man.Stacks[m] stack.Loops[etime.Trial].OnStart.Add("ApplyInputs", func() { ss.ApplyInputs() }) diff --git a/leabra/looper.go b/leabra/looper.go index 88fcd2f..c961455 100644 --- a/leabra/looper.go +++ b/leabra/looper.go @@ -47,10 +47,9 @@ func LooperStdPhases(man *looper.Manager, ctx *Context, net *Network, plusStart, man.AddEventAllModes(etime.Cycle, minusPhase, quarter1, quarter2, plusPhase) for m, _ := range man.Stacks { - mode := m // For closures - stack := man.Stacks[mode] + stack := man.Stacks[m] stack.Loops[trl].OnStart.Add("AlphaCycInit", func() { - net.AlphaCycInit(mode == etime.Train) + net.AlphaCycInit(m == etime.Train) ctx.AlphaCycStart() }) stack.Loops[trl].OnEnd.Add("PlusPhase:End", func() { @@ -87,10 +86,9 @@ func LooperSimCycleAndLearn(man *looper.Manager, net *Network, ctx *Context, vie // Set variables on ss that are referenced elsewhere, such as ApplyInputs. for m, loops := range man.Stacks { - curMode := m // For closures. for _, loop := range loops.Loops { loop.OnStart.Add("SetCtxMode", func() { - ctx.Mode = curMode + ctx.Mode = m }) } } @@ -102,7 +100,6 @@ func LooperSimCycleAndLearn(man *looper.Manager, net *Network, ctx *Context, vie // then Epoch does not reset the log below it func LooperResetLogBelow(man *looper.Manager, logs *elog.Logs, except ...etime.Times) { for m, stack := range man.Stacks { - curMode := m // For closures. for t, loop := range stack.Loops { curTime := t isExcept := false @@ -114,7 +111,7 @@ func LooperResetLogBelow(man *looper.Manager, logs *elog.Logs, except ...etime.T } if below := stack.TimeBelow(curTime); !isExcept && below != etime.NoTime { loop.OnStart.Add("ResetLog"+below.String(), func() { - logs.ResetLog(curMode, below) + logs.ResetLog(m, below) }) } } @@ -124,7 +121,6 @@ func LooperResetLogBelow(man *looper.Manager, logs *elog.Logs, except ...etime.T // LooperUpdateNetView adds netview update calls at each time level func LooperUpdateNetView(man *looper.Manager, viewupdt *netview.ViewUpdate, net *Network, ctrUpdateFunc func(tm etime.Times)) { for m, stack := range man.Stacks { - curMode := m // For closures. for t, loop := range stack.Loops { curTime := t if curTime != etime.Cycle { @@ -134,7 +130,7 @@ func LooperUpdateNetView(man *looper.Manager, viewupdt *netview.ViewUpdate, net }) } } - cycLoop := man.GetLoop(curMode, etime.Cycle) + cycLoop := man.GetLoop(m, etime.Cycle) cycLoop.OnEnd.Add("GUI:UpdateNetView", func() { cyc := cycLoop.Counter.Cur ctrUpdateFunc(etime.Cycle) @@ -146,18 +142,17 @@ func LooperUpdateNetView(man *looper.Manager, viewupdt *netview.ViewUpdate, net // LooperUpdatePlots adds plot update calls at each time level func LooperUpdatePlots(man *looper.Manager, gui *egui.GUI) { for m, stack := range man.Stacks { - curMode := m // For closures. for t, loop := range stack.Loops { curTime := t curLoop := loop if curTime == etime.Cycle { curLoop.OnEnd.Add("GUI:UpdatePlot", func() { cyc := curLoop.Counter.Cur - gui.GoUpdateCyclePlot(curMode, cyc) + gui.GoUpdateCyclePlot(m, cyc) }) } else { curLoop.OnEnd.Add("GUI:UpdatePlot", func() { - gui.GoUpdatePlot(curMode, curTime) + gui.GoUpdatePlot(m, curTime) }) } }