### `lex_hensel_gsl`, `tolex_gsl`, `tolex_gsl_d`

lex_hensel_gsl(plist,vlist1,order,vlist2,homo)
::Computation of an GSL form ideal basis
tolex_gsl(plist,vlist1,order,vlist2,homo)
tolex_gsl_d(plist,vlist1,order,vlist2,homo,procs)
:: Computation of an GSL form ideal basis stating from a Groebner basis
return
list
plist, vlist1, vlist2, procs
list
order
number, list or matrix
homo
flag
• `lex_hensel_gsl()` and `lex_hensel()` are variants of `tolex_gsl()` and `tolex()` respectively. The results are Groebner basis or a kind of ideal basis, called GSL form. `tolex_gsl_d()` does basis computations in parallel on child processes specified in `procs`.
• If the input is zero-dimensional and a lex order Groebner basis has the form `[f0,x1-f1,...,xn-fn]` (`f0`,...,`fn` are univariate polynomials of `x0`; SL form), then this these functions return a list such as `[[x1,g1,d1],...,[xn,gn,dn],[x0,f0,f0']]` (GSL form). In this list `gi` is a univariate polynomial of `x0` such that `di*f0'*fi-gi` divides `f0` and the roots of the input ideal is `[x1=g1/(d1*f0'),...,xn=gn/(dn*f0')]` for `x0` such that `f0(x0)=0`. If the lex order Groebner basis does not have the above form, these functions return a lex order Groebner basis computed by `tolex()`.
• Though an ideal basis represented as GSL form is not a Groebner basis we can expect that the coefficients are much smaller than those in a Groebner basis and that the computation is efficient. The CPU time shown after an execution of `tolex_gsl_d()` indicates that of the master process, and it does not include the time in child processes.
``` K=katsura(5)\$
 V=[u5,u4,u3,u2,u1,u0]\$
 G0=gr(K,V,0)\$
 GSL=tolex_gsl(G0,V,0,V)\$
 GSL;
[u1,8635837421130477667200000000*u0^31-...]
 GSL;
[u2,10352277157007342793600000000*u0^31-...]
 GSL;
[u0,11771021876193064124640000000*u0^32-...,376672700038178051988480000000*u0^31-...]
```
References
section `lex_hensel`, `lex_tl`, `tolex`, `tolex_d`, `tolex_tl`, section Distributed computation