# Singular          #### D.5.3.4 parametrizeOrbit

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

Usage:
parametrizeOrbit(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) many of them.

Return:
list, with four entries
- int, dimension of the orbit
- matrix A over the basering giving a parametrization of the orbit of v under the action of exp(<L>).
- list of integers, with the (row)-indices of entries which can be deleted by the action
- the variables of the parametrization to solve for

Theory:
We apply the theorem of Chevalley-Rosenlicht. First we determine tangent space generators, then apply `matrixExp` to the generators, and finally take the product to obtain the parametrization.

Example:
 ```LIB "orbitparam.lib"; ring R = 0,(t(1..3)),dp; matrix L1 = 0,1,0, 0,0,0, 0,0,0; matrix L2 = 0,0,1, 0,0,0, 0,0,0; matrix L3 = 0,1,1, 0,0,1, 0,0,0; list L = L1,L2,L3; matrix v = 1,2,3; parametrizeOrbit(L,v); ==> : ==> 2 ==> : ==> _[1,1]=1/6*t(1)^2+5/3*t(1)+t(2)+1 ==> _[2,1]=t(1)+2 ==> _[3,1]=3 ==> : ==> : ==> 2 ==> : ==> 1 ==> : ==> : ==> t(1) ==> : ==> t(2) ring R1 = 0,(t(1..2)),dp; matrix L1 = 0,1,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0; matrix L2 = 0,0,1,0, 0,0,0,1, 0,0,0,0, 0,0,0,0; list L = L1,L2; matrix v = 1,2,3,4; parametrizeOrbit(L,v); ==> : ==> 2 ==> : ==> _[1,1]=1/4*t(1)*t(2)+1/2*t(1)+3/4*t(2)+1 ==> _[2,1]=t(2)+2 ==> _[3,1]=t(1)+3 ==> _[4,1]=4 ==> : ==> : ==> 3 ==> : ==> 2 ==> : ==> : ==> t(1) ==> : ==> t(2) ```

### Misc 