/usr/include/JAGS/graph/LogicalNode.h is in jags 4.2.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #ifndef LOGICAL_NODE_H_
#define LOGICAL_NODE_H_
#include <graph/DeterministicNode.h>
#include <vector>
namespace jags {
class Function;
/**
* @short Node defined by the BUGS-language operator <-
*
* A LogicalNode is a type of DeterministicNode that is defined by a
* function, and a vector of parents as parameters. In the BUGS
* language the function may be represented as an operator.
*/
class LogicalNode : public DeterministicNode {
Function const * const _func;
bool _discrete;
protected:
const std::vector<std::vector<double const*> > _parameters;
public:
/**
* A logical node is defined by a function (which may be an inline
* operator in the BUGS language) and its parameters.
*/
LogicalNode(std::vector<unsigned int> const &dim,
unsigned int nchain,
std::vector<Node const*> const ¶meters,
Function const *func);
/**
* A LogicalNode may be discrete valued if its parents are.
* @see Function##isDiscreteValued
*/
bool isDiscreteValued() const;
/**
* A LogicalNode belongs to a closed class if its function
* preserves that class.
*
* @see Function#isLinear, Function#isScale, Function#isPower
*/
bool isClosed(std::set<Node const *> const &ancestors,
ClosedFuncClass fc, bool fixed) const;
std::string deparse(std::vector<std::string> const &) const;
};
} /* namespace jags */
#endif /* LOGICAL_NODE_H_ */
|