##### 7.5.21.0. locStatus

Procedure from library `olga.lib` (see olga_lib).

Usage:
  locStatus(locType, locData), int locType, list/vector/intvec locData

Purpose:
  determine the status of a set of localization data

Assume:

Return:
  list

Note:
  - the first entry is 0 or 1, depending whether the input represents a valid localization
  - the second entry is a string with a status/error message

Example:

    LIB "olga.lib";
    locStatus(42, list(1));
    ==> [1]:
    ==>    0
    ==> [2]:
    ==>    invalid localization: type is 42, valid types are:
    ==> 0 for a monoidal localization
    ==> 1 for a geometric localization
    ==> 2 for a rational localization
    def undef;
    locStatus(0, undef);
    ==> [1]:
    ==>    0
    ==> [2]:
    ==>    uninitialized or invalid localization: locData has to be defined
    string s;
    locStatus(0, s);
    ==> [1]:
    ==>    0
    ==> [2]:
    ==>    for a monoidal localization, locData has to be of type list, but is of\
        type string
    list L;
    locStatus(0, L);
    ==> [1]:
    ==>    0
    ==> [2]:
    ==>    for a monoidal localization, locData has to be a non-empty list
    L = s;
    print(L);
    ==> [1]:
    ==>
    locStatus(0, L);
    ==> [1]:
    ==>    0
    ==> [2]:
    ==>    for a monoidal localization, locData has to be a list of polys, ints o\
       r numbers, but entry 1 is , which is of type string
    ring w = 0,(x,Dx,y,Dy),dp;
    def W = Weyl(1);
    setring W;
    W;
    ==> // coefficients: QQ considered as a field
    ==> // number of vars : 4
    ==> //        block   1 : ordering dp
    ==> //                  : names    x Dx y Dy
    ==> //        block   2 : ordering C
    ==> // noncommutative relations:
    ==> //    Dxx=x*Dx+1
    ==> //    Dyy=y*Dy+1
    locStatus(0, list(x, Dx));
    ==> [1]:
    ==>    0
    ==> [2]:
    ==>    for a monoidal localization, the variables occurring in the polys in l\
       ocData have to induce a commutative polynomial subring of basering
    ring R;
    setring R;
    R;
    ==> // coefficients: ZZ/32003 considered as a field
    ==> // number of vars : 3
    ==> //        block   1 : ordering dp
    ==> //                  : names    x y z
    ==> //        block   2 : ordering C
    locStatus(1, s);
    ==> [1]:
    ==>    0
    ==> [2]:
    ==>    for a geometric localization, basering has to have an even number of v\
       ariables
    setring W;
    locStatus(1, s);
    ==> [1]:
    ==>    0
    ==> [2]:
    ==>    for a geometric localization, the first half of the variables of baser\
       ing has to induce a commutative polynomial subring of basering
    ring t = 0,(x,y,Dx,Dy),dp;
    def T = Weyl();
    setring T;
    T;
    ==> // coefficients: QQ considered as a field
    ==> // number of vars : 4
    ==> //        block   1 : ordering dp
    ==> //                  : names    x y Dx Dy
    ==> //        block   2 : ordering C
    ==> // noncommutative relations:
    ==> //    Dxx=x*Dx+1
    ==> //    Dyy=y*Dy+1
    locStatus(1, s);
    ==> [1]:
    ==>    0
    ==> [2]:
    ==>    for a geometric localization, locData has to be of type ideal, but is \
       of type string
    locStatus(1, ideal(Dx));
    ==> [1]:
    ==>    0
    ==> [2]:
    ==>    for a geometric localization, locData has to be an ideal generated by \
       polynomials containing only variables from the first half of the variable\
       s
    locStatus(2, s);
    ==> [1]:
    ==>    0
    ==> [2]:
    ==>    for a rational localization, locData has to be of type intvec, but is \
       of type string
    intvec v;
    locStatus(2, v);
    ==> [1]:
    ==>    0
    ==> [2]:
    ==>    for a rational localization, locData has to be a non-zero intvec
    locStatus(2, intvec(1,2));
    ==> [1]:
    ==>    1
    ==> [2]:
    ==>    valid localization

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