# Singular

#### 7.10.6.26 ncrepIsDefined

Procedure from library `ncrat.lib` (see ncrat_lib).

Usage:
list l = ncrepIsDefined(q, vars, n, maxcoeff);

Return:
list(dim, list vars, list(A1, ..., Ak)), where:
If dim > 0 then there are matrices A1, ..., Ak of size dim such that q is defined at A = (A1, ..., Ak), i.e.,
q.mat is invertible at A.
If dim = 0 then no such point was found.

Note:
Test whether q.mat is invertible via evaluation
at random matrix points with integer coefficients
in [-maxcoeff, maxcoeff]. Stops after n tries.
Use ixi-matrix in i-th try. The list vars contains the
nc variables which occur in q.

Example:
 ```LIB "ncrat.lib"; ncInit(list("x", "y")); ncrat f = ncratFromString("inv(x*y-y*x)"); ncrep q = ncrepGet(f); ncrepIsDefined(q, list(x, y), 5, 10); ==> [1]: ==> 2 ==> [2]: ==> [1]: ==> x ==> [2]: ==> y ==> [3]: ==> [1]: ==> _[1,1]=0 ==> _[1,2]=-9 ==> _[2,1]=-2 ==> _[2,2]=7 ==> [2]: ==> _[1,1]=8 ==> _[1,2]=-9 ==> _[2,1]=-4 ==> _[2,2]=-2 ncrat g = ncratFromString("inv(x-x)"); ncrep r = ncrepGet(g); ncrepIsDefined(r, list(x), 5, 10); ==> [1]: ==> 0 ==> [2]: ==> [1]: ==> x ==> [3]: ==> empty list ```