public UpdateIsingBpVm(SimGrid <int> data) { UpdateVm = new UpdateVm(proc: Proc, containingVm: this, update_params: UpdateParams) { StepsPerUpdate = 1 }; Rects = new List <RV <float, Color> >(); GraphVm = new GraphVm(new R <float>(0, 3, 0, 4)) { Title = "Energy vs Temp", TitleX = "Temp", TitleY = "Energy" }; GraphLatticeVm = new GraphLatticeVm( new R <uint>(0, 512, 0, 512), "", "", ""); GraphLatticeVm.SetUpdater(DrawGridCell, data); Beta = 1.08f; UpdateVm.OnUpdateUI.Subscribe(p => KeepUpdating(p)); BlockPick.Init(data.Data, data.Width, 4); Beta = _betaMin; }
public static ProcResult ProcIsingIntBitsEnergy(object vm) { var ggvm = (UpdateGRVm)vm; ggvm.SetBeta(); return(BlockPick.ProcIsingRb(ggvm.UpdateVm.StepsPerUpdate, ggvm.Beta)); }
public static UpdateGridVm BlockPicker() { var initData = SimGridIntSamples.SquareRandBits(512, 5213); var ugvm = new UpdateGridVm(data: initData, proc: ProcMarkBlocks, update_params: UpdateParams); BlockPick.Init(initData.Data, initData.Width, 4); ugvm.GraphLatticeVm.SetUpdater(GraphLatticeVmEx.DrawGridCell_int_BW_mod256, initData); ugvm.UpdateVm.OnUpdateUI.Subscribe(p => UpdateGraphLatticeWithGrid(p, ugvm)); return(ugvm); }
public static UpdateGRVm AnnealerRb() { var initData = SimGridIntSamples.SquareRandBits(GridSpan, 5213); var ggRet = new UpdateGRVm(GridSpan, GridSpan, BetaBoundsW, EnergyBoundsW, BetaDelta, ProcIsingIntBitsEnergy, update_params: UpdateParams); //ggRet.GraphLatticeVm.SetUpdater(GraphLatticeVmEx.DrawGridCell_BWR, initData); ggRet.GraphLatticeVm.SetUpdater(GraphLatticeVmEx.DrawGridCell_float_BW_mod256, initData); ggRet.UpdateVm.OnUpdateUI.Subscribe(p => UpdateGGView(p, ggRet)); BlockPick.Init(initData.Data, initData.Width, 8); return(ggRet); }
ProcResult Proc(object steps) { return(BlockPick.ProcIsingRb((int)steps, temp: Beta)); }
public static ProcResult ProcMarkBlocks(object steps) { return(BlockPick.ProcMarkBlocks((int)steps)); }