LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
getProb.m
1function Pnir = getProb(self, node, state)
2% PNIR = GETPROB(NODE, STATE)
3
4if GlobalConstants.DummyMode
5 Pnir = NaN;
6 return
7end
8
9if nargin<3 %~exist('state','var')
10 state = sn.state{sn.nodeToStateful(node.index)};
11end
12T0 = tic;
13sn = self.getStruct;
14% now compute marginal probability
15if isa(node,'Node')
16 ist = sn.nodeToStation(node.index);
17else
18 ist = node;
19end
20sn.state{ist} = state;
21
22options = self.getOptions;
23Solver.resetRandomGeneratorSeed(options.seed);
24
25if ~isempty(self.result) && ~isempty(self.result.Prob) && isfield(self.result.Prob,'logNormConstAggr') && isfinite(self.result.Prob.logNormConstAggr)
26 [Pnir,lG] = solver_nc_marg(sn, self.options, self.result.Prob.logNormConstAggr);
27else
28 [Pnir,lG] = solver_nc_marg(sn, self.options);
29 self.result.Prob.logNormConstAggr = lG;
30end
31self.result.('solver') = getName(self);
32self.result.Prob.marginal = Pnir;
33runtime = toc(T0);
34self.result.runtime = runtime;
35Pnir = Pnir(ist);
36end