ndd_definable_closure[ Synopsis | Description | Return values | Diagnostics | See also | Back to the NDD package documentation ] |
#include "lash-ndd.h"
int ndd_definable_closure(uint1 r, linear_transf *tr, int *pb, uint4 *pm, uint4 *pp);
This function tests whether the transformation matrix A of the linear transformation *tr has a nonzero integer power p such that Ap is diagonalizable and has all its eigenvalues in the set { 0, rm }, where m is a positive or zero integer. It has been shown that this condition being true implies that the effect of unbounded repeated iterations of *tr can be applied to sets of vectors represented by NDDs.
This function does not modify *tr.
If the test succeeds, then the function writes 1 at the location pb, and sets respectively *pp and *pm to the values of p and m that have been determined. If the test fails, then the function writes 0 at the location pb. In the case of an error, the function returns -1 and does not set *pb, *pm or *pp. Otherwise, it returns 0 and sets lash_errno.
[ Synopsis | Description | Return values | Diagnostics | See also | Back to the NDD package documentation ] |