# Singular

##### 7.5.23.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 ==> // 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 ==> // 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 ==> // 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