예제 #1
0
        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);
        }
예제 #2
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);
        }
예제 #3
0
        public static UpdateGRVm Thermo()
        {
            var initTemps = SimGridFloatSamples.HiLow(GridSpan, 0.99f, 0.01f);
            var initFlips = SimGridIntSamples.SquareRandBits(GridSpan, 5213);
            var ggRet     = new UpdateGRVm(GridSpan, GridSpan, BetaBoundsW, EnergyBoundsW, BetaDelta,
                                           ProcIsingIntBitsEnergy, update_params: UpdateParams);

            ggRet.GraphLatticeVm.SetUpdater(GraphLatticeVmEx.DrawGridCell_int_BW_mod256, initFlips);
            // ggRet.GraphLatticeVm.SetUpdater(GraphLatticeVmEx.DrawGridCell_float_BW_mod256, initTemps);

            ggRet.UpdateVm.OnUpdateUI.Subscribe(p => UpdateGGView(p, ggRet));

            ThermalIsing_bp.Init(initTemps.Data, initFlips.Data, initTemps.Width, BlockSize, 4456);

            return(ggRet);
        }
예제 #4
0
        public static UpdateGGRVm Thermo()
        {
            //var initTemps = SimGridFloatSamples.HiLow(GridSpan, 0.99f, 0.01f);
            var initTemps = SimGridFloatSamples.LeftRightGradient(GridSpan);


            var initFlips = SimGridIntSamples.SquareRandBits(GridSpan, 5213);
            var ggRet     = new UpdateGGRVm(
                width: GridSpan,
                height: GridSpan,
                beta: Beta,
                flipEnergy: FlipEnergy,
                qRate: qRate,
                proc: ProcH,
                update_params: UpdateParams);

            ggRet.GraphLatticeFlipVm.SetUpdater(GraphLatticeVmEx.DrawGridCell_int_BW_mod256, initFlips);
            ggRet.GraphLatticeTempVm.SetUpdater(GraphLatticeVmEx.DrawGridCell_float_BW_mod256, initTemps);

            ggRet.UpdateVm.OnUpdateUI.Subscribe(p => UpdateGGView(p, ggRet));

            ThermalIsing_bp.Init(initTemps.Data, initFlips.Data, initTemps.Width, BlockSize, 5566);
            return(ggRet);
        }