#### 7.10.6.27 ncrepIsRegular

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

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

Return:
  list(k, list vars, list(a1, ..., ak)), where:
  If k = 1 then there are scalars (1x1-matrices) a1, ..., ak such that q is defined at a = (a1, ..., ak), i.e.,
  q.mat is invertible at a.
  If k = 0 then no such point was found.

Note:
  Test whether q.mat is invertible via evaluation
  at random integers in [-maxcoeff, maxcoeff].
  Stops after n tries. 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);
    ncrepIsRegular(q, list(x, y), 10, 100);
    ==> [1]:
    ==>    0
    ==> [2]:
    ==>    [1]:
    ==>       x
    ==>    [2]:
    ==>       y
    ==> [3]:
    ==>    empty list
    ncrat g = ncratFromString("inv(1+x*y-y*x)");
    ncrep r = ncrepGet(g);
    ncrepIsRegular(r, list(x, y), 10, 100);
    ==> [1]:
    ==>    1
    ==> [2]:
    ==>    [1]:
    ==>       x
    ==>    [2]:
    ==>       y
    ==> [3]:
    ==>    [1]:
    ==>       _[1,1]=-55
    ==>    [2]:
    ==>       _[1,1]=-24

User manual for Singular version 4.4.1, 2025, generated by texi2html.