ndd_product


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

Synopsis

#include "lash-ndd.h"

ndd *ndd_product(ndd *nd1, ndd *nd2);

Description

This function computes an NDD representing the Cartesian product of the sets represented by the two NDDs *nd1 and *nd2. These two NDDs must use the same base and operate in the same direction.

This function does not modify *nd1 or *nd2.

Return values

In the case of success, this function returns a pointer to a newly created NDD. 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_BASE
Base mismatch.
LASH_ERR_BAD_TYPE
Direction mismatch.
LASH_ERR_ALPH_SIZE
The result cannot be constructed, for the alphabet of the underlying automaton is too large.
LASH_ERR_NO_MEM
Insufficient memory.
LASH_ERR_CORRUPT
Corrupt NDD.

See also

ndd_union, ndd_intersection

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