private Variable <Vector> InitialiseWeights( DistributionType distributionType, DistributionName distributionName, int dimension, string[] hyperParameters) { switch (distributionName) { case DistributionName.GaussianDefault: return(Variable.Random(new VectorGaussian( Vector.Zero(dimension), PositiveDefiniteMatrix.Identity(dimension))).Named( "w." + distributionType.ToString())); case DistributionName.GaussianInit: return(Variable <Vector> .Random( Variable.New <VectorGaussian>().Named( "w." + distributionType.ToString()))); default: TraceListeners.Log(TraceEventType.Error, 0, "Invalid distribution name: " + distributionName.ToString(), true, true); return(null); } }
private Variable <Vector> InferWeights( DistributionType distributionType, DistributionName distributionName, string[] hyperParameters) { switch (distributionName) { case DistributionName.GaussianDefault: VectorGaussian wObserved = _engine[distributionType].Infer <VectorGaussian>(_w[DistributionType.Prior]); return(Variable.Random(wObserved).Named("w." + distributionType.ToString())); default: TraceListeners.Log(TraceEventType.Error, 0, "Invalid distribution name: " + distributionName.ToString(), true, true); return(null); } }
public SwitchAdvancedParameterDistributionTypeCommand(IParameter parameter, IAdvancedParameterContainer advancedParameterContainer, DistributionType newDistributionType, IExecutionContext context) { _advancedParameterContainer = advancedParameterContainer; _newDistributionType = newDistributionType; _parameter = parameter; ParameterId = parameter.Id; BuildingBlockId = _advancedParameterContainer.Id; var entityPathResolver = context.Resolve <IEntityPathResolver>(); var advancedParameterFactory = context.Resolve <IAdvancedParameterFactory>(); _advancedParameter = _advancedParameterContainer.AdvancedParameterFor(entityPathResolver, _parameter); _oldDistributedParameter = _advancedParameter.DistributedParameter; _oldDistributionType = _advancedParameter.DistributionType; var newParameter = advancedParameterFactory.Create(_parameter, _newDistributionType); _newDistributedParameter = newParameter.DistributedParameter; ObjectType = context.TypeFor(_advancedParameter); Description = PKSimConstants.Command.SwitchAdvancedParameterDistributionTypeDescription(_advancedParameter.ParameterPath, _oldDistributionType.ToString(), _newDistributionType.ToString()); context.UpdateBuildingBlockPropertiesInCommand(this, _advancedParameterContainer); }
public static DistributionSeriesType?ToDistributionSeriesType(this DistributionType distributionType) => distributionType.GetType().GetField(distributionType.ToString()).ToDistributionSeriesType();