const level_bn* GetNodeLevels_bn ( const node_bn*  node )

Returns the list of numbers used to enable a continuous node to act discrete, or enables a discrete node to provide real-valued numbers. Levels are used to discretize continuous nodes, or to map from discrete nodes to real numbers. See SetNodeLevels_bn for a full description of the level numbers (they are 'level_bn's, which are 'double's).

Returns NULL if node does not have a levels list.

If you need the results to persist, make a copy of the vector returned, since its contents may become invalid after further calls to Netica API. Do not try to directly modify or free the vector returned.

Since the usage of levels is a little different for each type of node, each is discussed separately:

node is continuous: (GetNodeType_bn would return DISCRETE_TYPE)

The length of the list returned is one more than the number of states of node. The node is discretized into states, and the list returned has the thresholds (monotonically increasing or decreasing). Each range is from levels[state] to levels[state+1]., where levels is the list returned. Normally each interval includes its lower endpoint, but not its upper.

node is discrete: (GetNodeType_bn would return CONTINUOUS_TYPE)

The length of the list returned is the number of states of node, with each element being the real number associated with the corresponding state.


In version 2.07 and later. Earlier versions had a function called GetNodeLevel_bn, which took an extra argument representing the state, and returned a single level.

See also:

SetNodeLevels_bn    Sets them
GetNodeNumberStates_bn    Length of the vector returned (plus one if node continuous)