Bevisuali.UX.Distribution.DistributionTable.SetData C# (CSharp) Method

SetData() public method

public SetData ( RandomVariable variable, string>.IDictionary variableAbbreviations, FAI.Bayesian.DiscreteDistribution distribution, FAI.Bayesian.Observation conditionedOn, IEnumerable parents ) : void
variable RandomVariable
variableAbbreviations string>.IDictionary
distribution FAI.Bayesian.DiscreteDistribution
conditionedOn FAI.Bayesian.Observation
parents IEnumerable
return void
        public void SetData(
            RandomVariable variable,
            IDictionary<string,string> variableAbbreviations,
            FDiscreteDistribution distribution,
            FObservation conditionedOn,
            IEnumerable<RandomVariable> parents)
        {
            _variable = variable;
            _distribution = distribution;
            _conditionedOn = conditionedOn;
            _variableAbbreviations = variableAbbreviations;
            _parents
                = parents
                .Where(p => conditionedOn.Any(kvp => kvp.Key == p.Name))
                .ToArray();

            RefreshUI();
        }

Usage Example

Ejemplo n.º 1
0
        private void RefreshUI()
        {
            // Update variable name label.
            if (_variable == null)
            {
                xVariableName.Text = "";
            }
            else
            {
                xVariableName.Text = _variable.Name;
            }

            // Gather distributions.
            List <FObservation>         parentConfigurations = new List <FObservation>();
            List <DiscreteDistribution> distributions        = new List <DiscreteDistribution>();

            // TODO: Better ordering so that parent values change most on right, least on left.
            // TODO: Deal with limits better.
            const int maxTables = 100;

            foreach (var d in _distributions.EnumerateDistributions().Take(maxTables))
            {
                var parentConfig = d.Item1;
                var distribution = d.Item2;

                parentConfigurations.Add(parentConfig);
                distributions.Add(distribution);
            }

            // Create distribution displays.
            // TODO: Reuse existing if possible.
            xStack.Children.Clear();

            parentConfigurations
            .Zip(distributions, (p, d) => new { p, d })
            .Select(record =>
            {
                var dt = new DistributionTable();
                dt.SetData(_variable, _variableAbbreviations, record.d, record.p, _variableParents);
                return(dt);
            }
                    )
            .ForAll(dt =>
            {
                xStack.Children.Add(dt);
                dt.Margin = new Thickness(0, 0, 0, 24);
            });
        }
All Usage Examples Of Bevisuali.UX.Distribution.DistributionTable::SetData