Documentation>C API
Data Fields
VlAIB Struct Reference

AIB algorithm data. More...

`#include <aib.h>`

## Data Fields

vl_uint * | nodes
vl_uint | nentries
double * | beta
vl_uint * | bidx
vl_uint * | which
vl_uint | nwhich
double * | Pcx
double * | Px
double * | Pc
vl_uint | nvalues
vl_uint | nlabels
vl_uint * | parents
double * | costs

## Detailed Description

The implementation is quite straightforward, but the way feature values are handled in order to support efficient joins, deletions and re-arrangement needs to be explained. This is achieved by adding a layer of indirection:

- Call each feature value (either original or obtained by a join operation) a node. Nodes are identified by numbers.
- Call each element of the various arrays (such as VlAIB::Px) an entry.
- Entries are dynamically associated to nodes as specified by VlAIB::nodes. For example, `Px`[i] refers to the node `nodes`[i].

## Field Documentation

## ◆ beta

double* VlAIB::beta

Minimum distance to an entry

## ◆ bidx

vl_uint* VlAIB::bidx

Closest entry

## ◆ costs

double* VlAIB::costs

Cost of each merge

## ◆ nentries

vl_uint VlAIB::nentries

Total number of entries (= # active nodes)

## ◆ nlabels

vl_uint VlAIB::nlabels

Number of labels

## ◆ nodes

vl_uint* VlAIB::nodes

Entires to nodes

## ◆ nvalues

vl_uint VlAIB::nvalues

Number of feature values

## ◆ nwhich

vl_uint VlAIB::nwhich

Number of entries to update

## ◆ parents

vl_uint* VlAIB::parents

Array of parents

## ◆ Pc

double* VlAIB::Pc

Marginal.

## ◆ Pcx

double* VlAIB::Pcx

Joint probability table

## ◆ Px

double* VlAIB::Px

Marginal.

## ◆ which

vl_uint* VlAIB::which

List of entries to update

The documentation for this struct was generated from the following file:

- aib.h