ndd_create_star_info


[ Synopsis | Description | Return values | Diagnostics | See also | Back to the NDD package documentation ]

Synopsis

#include "lash-ndd.h"

linear_star_info *ndd_create_star_info(linear_transf *tr, uint1 r, int msdf);

Description

This function creates a block of information associated to the linear transformation *tr, whose purpose is to speed up the computation of the image of sets by the closure of *tr. This structure, invisible to the user, is internally based on NDDs. The base used for creating these internal NDDs is r. Numbers are accepted most significant digit first if msdf has a nonzero value, and least significant digit first otherwise.

This function does not modify *tr.

Return values

In the case of success, this function returns a pointer to a newly created transformation information structure. In the case of an error, it returns a NULL pointer and sets lash_errno.

Diagnostics

LASH_ERR_NOT_INIT
The package has not been initialized.
LASH_ERR_BAD_VALUE
Invalid base.
LASH_ERR_NO_MEM
Not enough memory.
LASH_ERR_OVERFLOW
Arithmetic overflow.
LASH_ERR_ITERATION
The linear transformation is not always iterable.
LASH_ERR_NOT_IMPL
Closures that cannot be expressed in Presburger arithmetic are not (yet!) implemented.
LASH_ERR_CORRUPT
Corrupt transformation structure.

See also

linear_transf, linear_star_info, ndd_definable_closure, ndd_image_by_star_transf, ndd_star_info_free.

[ Synopsis | Description | Return values | Diagnostics | See also | Back to the NDD package documentation ]