コード例 #1
0
ファイル: UpdateIsingBpVm.cs プロジェクト: tp-nscan/CudaClr
        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;
        }
コード例 #2
0
        public static ProcResult ProcIsingIntBitsEnergy(object vm)
        {
            var ggvm = (UpdateGRVm)vm;

            ggvm.SetBeta();
            return(BlockPick.ProcIsingRb(ggvm.UpdateVm.StepsPerUpdate, ggvm.Beta));
        }
コード例 #3
0
ファイル: UpdateGridVm.cs プロジェクト: tp-nscan/CudaClr
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: UpdateIsingBpVm.cs プロジェクト: tp-nscan/CudaClr
 ProcResult Proc(object steps)
 {
     return(BlockPick.ProcIsingRb((int)steps, temp: Beta));
 }
コード例 #6
0
ファイル: UpdateGridVm.cs プロジェクト: tp-nscan/CudaClr
 public static ProcResult ProcMarkBlocks(object steps)
 {
     return(BlockPick.ProcMarkBlocks((int)steps));
 }