# Singular

#### D.5.3.5 maxZeros

Procedure from library `orbitparam.lib` (see orbitparam_lib).

Usage:
maxZeros(L,v); L list, v matrix.

Assume:
L is a list of strictly upper triangular n x n matrices of same size. The vector space <L> genererated by the elements of L should be closed under the Lie bracket.

v is matrix of constants of size n x 1.

The basering has at least size(L) variables. However we will only use tangentGens(L,v)[1] many of them.

Return:
matrix of constants over the basering giving an element in the orbit of v under the action of exp(<L>) with (at least) as many zeros as the dimension of the orbit.

Theory:
We apply `parametrizeOrbit` to obtain a parametrization of the orbit according to the theorem of Chevalley-Rosenlicht. By determining the parameters from bottom to top we find an element in the orbit with (at least) as many zeros as the dimension of the orbit.

Example:
 ```LIB "orbitparam.lib"; ring R = 0,(x),dp; matrix L1[3][3] = 0,1,0, 0,0,0, 0,0,0; matrix L2[3][3] = 0,0,1, 0,0,0, 0,0,0; matrix L3[3][3] = 0,1,1, 0,0,1, 0,0,0; list L = L1,L2,L3; matrix v[3][1] = 1,2,3; maxZeros(L,v); ==> _[1,1]=0 ==> _[2,1]=0 ==> _[3,1]=3 ring R1 = 0,(x),dp; matrix L1[4][4] = 0,1,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0; matrix L2[4][4] = 0,0,1,0, 0,0,0,1, 0,0,0,0, 0,0,0,0; list L = L1,L2; matrix v[4][1] = 1,2,3,4; maxZeros(L,v); ==> _[1,1]=-1/2 ==> _[2,1]=0 ==> _[3,1]=0 ==> _[4,1]=4 ```