Пример #1
0
        public static UpdateGRVm Thermo()
        {
            var initData = SimGridFloatSamples.RandUniform0_1(GridSpan, 1234);
            var ggRet    = new UpdateGRVm(GridSpan, GridSpan, BetaBoundsW, EnergyBoundsW, BetaDelta, ProcIsingIntBitsEnergy,
                                          update_params: UpdateParams);

            ggRet.GraphLatticeVm.SetUpdater(GraphLatticeVmEx.DrawGridCell_float_BW_mod256, initData);
            ggRet.UpdateVm.OnUpdateUI.Subscribe(p => UpdateGGView(p, ggRet));

            Thermal_bp.Init(initData.Data, initData.Width, BlockSize);

            return(ggRet);
        }
Пример #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 void UpdateGGView(ProcResult result, UpdateGRVm ugvm)
        {
            ugvm.GraphLatticeVm.Update(result.Data["Grid"]);
            ugvm.Energy = 4.0f - (float)result.Data["Energy"];

            var smidgeX = (ugvm.BetaBounds.Max - ugvm.BetaBounds.Min) / 500;
            var smidgeY = (ugvm.EnergyBounds.Max - ugvm.EnergyBounds.Min) / 500;

            ugvm.GraphVm.WbImageVm.ImageData = Id.AddRect(
                ugvm.GraphVm.WbImageVm.ImageData,
                new RV <float, Color>(
                    minX: ugvm.Beta,
                    maxX: ugvm.Beta + smidgeX,
                    minY: ugvm.Energy,
                    maxY: ugvm.Energy + smidgeY,
                    v: (ugvm.Decreasing) ? Colors.Red : Colors.Black
                    ));
        }