You are now following this question
- You will see updates in your followed content feed.
- You may receive emails, depending on your communication preferences.
Avoid the Optimization crash
30 views (last 30 days)
Show older comments
Dear,
I am trying to do a tracking system
y1 and y2 are my prestored measurement data
v1q and v2q are my real time measurement data (assume)
i am trying to use optimization and interpolation together to solve this problem.
The solution is fine. In this case, it can compute the position is [4,3] which is correct.
The problem is when the program run for a while (like 1min), the system starts not responding.
I suspect that it might be the issue of computational power, so i also install the parallel computing toolbox, but the speed is still not fast and easy to be collasped.
I did some research showing that running program in gpa can increase the speed, but seems optimization is not allowed for gpu
Is there any way that i can avoid the crash?
Or can anyone tell me why it happens?
Thank you very much!!
function [out]= Untitled3(v1q,v2q,currentPandO)
%vertical coil
y1 = [3.24272914125766,2.83593179463819,2.44752064552654,2.05924203430804;
3.56186924377538,2.99624019270884,2.55850166648457,2.25064722251426;
3.57300859267674,2.90086878942227,2.48641813065078,2.19590225245865;
2.90037026793495,2.46229273094783,2.24971289753428,2.07094182706089];
%horizontal coil
y2 = [1.47213024926091,1.86376922289994,1.96744782910615,1.98366932726146;
1.65117827228894,2.08559296236809,2.31269691938603,2.28466504171977;
2.00030563764438,2.54342676501796,2.71125667257210,2.66662804271614;
2.84018880472288,3.15941792534719,3.21539885401633,3.12483330616169];
x = currentPandO(1);
y = currentPandO(2);
out = abs(interp2(y1,x,y) - v1q) + abs(interp2(y2,x,y) - v2q) ;
end
options = optimoptions(@patternsearch,'InitialMeshSize',1,'MaxFunctionEvaluations',1000,'MaxIterations',1000,'TimeLimit',0.1,'MeshTolerance',1.0000e-16,'StepTolerance',1e-16','UseParallel', true, 'UseCompletePoll', true, 'UseVectorized', false );
v1q = 2.19590225245865;
v2q = 2.66662804271614;
while(1)
disp(v1q);
disp(v2q);
solve = @(currentPandO)Untitled3(v1q,v2q,currentPandO);
A = [];
b = [];
Aeq = [];
beq = [];
lb = [1,1];
ub = [4,4];
nonlcon = [];
solution = patternsearch(solve, [1,1],A,b,Aeq,beq,lb,ub,nonlcon,options);
axes('xlim',[1 5 ], 'ylim',[1 5], 'zlim', [1 5])
view(3)
grid on
hold on
xlabel('x')
ylabel('y')
zlabel('z')
disp(v1q);
disp(v2q);
h2 = plot3(solution(1),solution(2),1,'.','color','red','MarkerSize',20);
pause(0.1)
delete(h2)
end
7 Comments
Walter Roberson
on 18 Mar 2022
GPU can be used from your function Untitled3 .
However, the inputs to the function will not be gpuArray, and the output must not be gpuArray, so you may have to use gpuArray() to copy some values into the GPU, and near the end you would need to gather() the results from the GPU.
Walter Roberson
on 18 Mar 2022
It is common for some optimizations to take days. Or even months.
Chun Wai KO
on 18 Mar 2022
Thanks for your reply
i tried to use gpuArray
it shows error:
The following error occurred converting from gpuArray to double:
Conversion to double from gpuArray is not possible.
function [out]= Untitled3(v1q,v2q,currentPandO)
%vertical coil
y1 = [3.24272914125766,2.83593179463819,2.44752064552654,2.05924203430804;
3.56186924377538,2.99624019270884,2.55850166648457,2.25064722251426;
3.57300859267674,2.90086878942227,2.48641813065078,2.19590225245865;
2.90037026793495,2.46229273094783,2.24971289753428,2.07094182706089];
%horizontal coil
y2 = [1.47213024926091,1.86376922289994,1.96744782910615,1.98366932726146;
1.65117827228894,2.08559296236809,2.31269691938603,2.28466504171977;
2.00030563764438,2.54342676501796,2.71125667257210,2.66662804271614;
2.84018880472288,3.15941792534719,3.21539885401633,3.12483330616169];
y1 = gpuArray(y1);
y2 = gpuArray(y2);
x = currentPandO(1);
y = currentPandO(2);
x = gpuArray(x);
y = gpuArray(y);
v1q = gpuArray(v1q);
v2q = gpuArray(v2q);
out = abs(interp2(y1,x,y) - v1q) + abs(interp2(y2,x,y) - v2q) ;
gather(out);
end
Chun Wai KO
on 18 Mar 2022
and i also checked the task manager when i run my program (without gpuArray), (with parallel)
the cpu used 50%
the memory used 90%
the gpu used 80%
i can't imagine that this short code brings this big load to my computer.
So there is no way to solve it instead of getting a better computer?
Walter Roberson
on 18 Mar 2022
Change
gather(out);
to
out = gather(out);
Walter Roberson
on 18 Mar 2022
What variables are you optimizing over?
Chun Wai KO
on 18 Mar 2022
changing the gather(out) to out = gather(out)
now the program can run
i found that it performs well for first 20 seconds, but then it will be slowing down.
even if i stop the program, and re-run the program, the speed cannot be as fast as it was.
i need to close the Matlab and wait for a while (for example 1min) (like cooling down)
then open the matlab and run the program
then it can run fast in 20 seconds again
For my optimiation, the solve is the objective function and my initial guess is [1,1] for x and y
so basically it is trying to find the (x and y) to minimize the out
out = abs(interp2(y1,x,y) - v1q) + abs(interp2(y2,x,y) - v2q) ;
Answers (1)
Walter Roberson
on 19 Mar 2022
This is a proof of concept, that shows if you are willing to modify the cost from sum of abs() to sum of squares, then you can calculate the optimal position.
This particular version of the example deals with the possibility that x and y are both between 1 and 2, and does the bilinear interpolation mathematically, and then optimizes the query values.
The overall calculation would involve calculating for the nine 2 x 2 sub-arrays of y1 and y2 that are induced by taking the integer part of x and y to extract the relevant section of the matrices to be interpolated over.
To phrase that a different way: you can pre-calculate the cubic roots and square root formulas that would apply for each potential x and y combination according to what would be interpolated over; and then having done that pre-calculation, then given particular numeric x and y values, you would floor() those and use those to index the matrix of solutions -- a lookup table rather than an optimization at run-time.
It might be worth exploring to see whether only the first of the 5 potential solutions will be real-valued as hinted at when I substitute in random v1q and v2q, if you know the range of v1q and v2q.
y1 = [3.24272914125766,2.83593179463819,2.44752064552654,2.05924203430804;
3.56186924377538,2.99624019270884,2.55850166648457,2.25064722251426;
3.57300859267674,2.90086878942227,2.48641813065078,2.19590225245865;
2.90037026793495,2.46229273094783,2.24971289753428,2.07094182706089];
%horizontal coil
y2 = [1.47213024926091,1.86376922289994,1.96744782910615,1.98366932726146;
1.65117827228894,2.08559296236809,2.31269691938603,2.28466504171977;
2.00030563764438,2.54342676501796,2.71125667257210,2.66662804271614;
2.84018880472288,3.15941792534719,3.21539885401633,3.12483330616169];
syms x y v1q v2q real
assume(x >= 1 & y >=1)
weighted1 = ([2-x,x-1]+[0:2;0:-1:-2].') * y1(1:2,1:2).' * ([2-y;y-1]+[0:2;0:-1:-2]);
weighted2 = ([2-x,x-1]+[0:2;0:-1:-2].') * y2(1:2,1:2).' * ([2-y;y-1]+[0:2;0:-1:-2]);
out = (weighted1(1,1) - v1q).^2 + abs(weighted2(1,1) - v2q).^2
out =

dx = simplify(diff(out, x))
dx =
partialx = simplify(solve(dx, x))
Warning: Solutions are only valid under certain conditions. To include parameters and conditions in the solution, specify the 'ReturnConditions' value as 'true'.
partialx =

outx = subs(out, x, partialx)
outx =

dy = simplify(diff(outx,y))
dy =

bestyinfo = solve(dy, y, 'returnconditions', true)
bestyinfo = struct with fields:
y: [5×1 sym]
parameters: [1×0 sym]
conditions: [5×1 sym]
besty = bestyinfo.y;
bestx = simplify(subs(partialx, y, besty), 'steps', 20);
vpa(bestx)
ans =

vpa(besty)
ans =

vpa(bestyinfo.conditions)
ans =

V1Q = rand() * 3 + 1
V1Q = 1.0523
V2Q = rand() * 3 + 1
V2Q = 2.3850
vpa(subs(bestx, {v1q, v2q}, {V1Q, V2Q}))
ans =

vpa(subs(besty, {v1q, v2q}, {V1Q, V2Q}))
ans =

13 Comments
Chun Wai KO
on 19 Mar 2022
Sorry, i don't have any knowledge on symbolic programming.
Can you explain a little bit more about the look up table?
i wanted to use look up table at first place, but seems matlab doesn't have this kind of function, only simulink does, so i gave up and use optimization with interpolation.
My aim is to find the position by comparing the v1q with y1 and v2q with y2
For insance, if v1q = 2.99624019270884, and v2q = 2.08559296236809
i expect a solution [2,2] (row 2 and column 2 in the table)
Also, if v1q = 2.25064722251426, v2q = 2.28466504171977
i expect a solution [4,2] (row 2 and column 4 in the table)
y1 = [3.24272914125766,2.83593179463819,2.44752064552654,2.05924203430804;
3.56186924377538,2.99624019270884,2.55850166648457,2.25064722251426;
3.57300859267674,2.90086878942227,2.48641813065078,2.19590225245865;
2.90037026793495,2.46229273094783,2.24971289753428,2.07094182706089];
%horizontal coil
y2 = [1.47213024926091,1.86376922289994,1.96744782910615,1.98366932726146;
1.65117827228894,2.08559296236809,2.31269691938603,2.28466504171977;
2.00030563764438,2.54342676501796,2.71125667257210,2.66662804271614;
2.84018880472288,3.15941792534719,3.21539885401633,3.12483330616169];
Can your code perform this function?
How to expand the dimension of x and y? i.e x and y are both between 1 to 4(based on the table dimension)
I tried to substitute V1q = 2.99624019270884 V2q = 2.08559296236809 in your code
( expected answer is [2,2])
I can see the corrent solution in the 5 potential solutions, but it is not the first solution(it is the fith one for both x and y)
ans =
3.5520317888804520402490548530229
2.1095160934096312475405997768539 - 2.7849004901302893934080371218512i
2.1095160934096312475405997768539 + 2.7849004901302893934080371218512i
6.3547864428930402755495249798541
2.0
ans =
-0.98345820388842210490454919875175
- 2.5189780110641320295434893670074 - 2.9644529186302378196109783589575i
- 2.5189780110641320295434893670074 + 2.9644529186302378196109783589575i
-2.635554996093128293727328775192
2.0
also for x, there are more than one solution that are real value, if this happen, how can i determine which solution is correct? It seems that the fifth one will be the correct solution as i tested for [1,1] [1,2] ] [2,1] [2,2].
Really thank you for your effort, it helps me a lot
Walter Roberson
on 19 Mar 2022
Suppose you have inputs x and y, and input arrays y1 and y2, and you calculate
Xb = floor(x); Yb = floor(y);
X = x - Xb; Y = y - Yb;
Y1 = y1(Yb:Yb+1, Xb:Xb+1);
Y2 = y2(Yb:Yb+1, Xb:Xb+1);
What you are doing here is breaking up the arrays y1 and y2 into 2 x 2 blocks, and using the integer part of x and y to select the appropriate 2 x 2 block out of y1 and y2. Then X and Y are the part of x and y that are "left over" relative to the beginning of the block, and x and y are both in the range 0 (inclusive) to 1 (exclusive).
Why? Well, this has to do with how interp2() works. interp2() works by doing bilinear interpolation. It effectively finds the right 2 x 2 box in the data, and then calculates the interpolated value based upon distances from the previous x and y boundary to the next x and y boundary.
Now within that 2 x 2 you are interpolating over the box [0,0] to [1,1] . Look at https://en.wikipedia.org/wiki/Bilinear_interpolation#Alternative_matrix_form in particular the information how how to calculate over the unit square. We can replicate that calculation easily over a symbolic 2 x 2
syms Y1 [2 2] real
syms Y2 [2 2] real
syms X Y v1q v2q real
weighted1 = [1-X,X] * Y1 * [1-Y;Y];
weighted2 = [1-X,X] * Y2 * [1-Y;Y];
out = (weighted1 - v1q).^2 + (weighted2(1,1) - v2q).^2
out is now your generic cost function, once you have selected the right 2 x 2 section from y1 and y2.
Now that we have a cost function, we can consider how to minimize the cost. out is a multinomial in x and y, so we can proceed by way of calculus: find the derivative and solve the derivative for 0
dx = diff(out, X)
partialx = solve(dx, X)
and substitute the optimal x from that back into the cost function; the result will have no x in it. You can do calculus on it again to find the optimal y
outx = subs(out, X, partialx)
dy = diff(outx,Y)
bestyinfo = solve(dy, Y, 'returnconditions', true)
If you were using numeric y1 and y2 then the solution for the best y would be in terms of the input v1q and v2q and would involve roots of a polynomial, and would make some kind of sense. But when you use completely symbolic y1 and y2 instead, then what you will see in bestyinfo is that y is the set of values that meet a particular set of conditions.
Most of the conditions are of the form (something ~= something) -- those are expressing the degenerate cases that cause the mathematics to fall part. But, purely symbolically anyhow, one of the conditions is a polynomial of degree 5:
poly_to_solve = children(bestyinfo.conditions, 3);
poly_solutions = solve(poly_to_solve, bestyinfo.parameters);
and that would be a list of five root() -- the 5 roots of a polynomial of degree 5.
What is a more convenient way to express the polynomial? Well, it will always be a polynomial in z for this purpose, so...
C = coeffs(children(poly_solutions), sym('z'), 'all');
C = simplify(C(:), 'steps', 100);
C is the vector of coefficients of the polynomial. If you had numeric values for v1q, v2q, and the y1 and y2 matrices, then with the expressions on hand, you could drop the coefficients into roots() to get numeric solutions without any symbolic work. The coefficients will be posted below (they slow the editor down a LOT!)
Then with the polynomial solutions for y in hand, substitute into the partial form for x:
besty = poly_solutions;
bestx = subs(partialx, Y, besty);
bestx and besty here depend upon the y1 and y2 values (that are appropriate for their section of the interpolation matrix), and upon the v1q and v2q value.
But here's the thing: if you are always going to be working with the same y1 and y2 matrix, then you can substitute those in to the bestx and besty, getting out expressions that depend only on v1q and v2q. And you can prepare 9 of those sets, one for each x range (1-2, 2-3, 3-4) and y range (1-2, 2-3, 3-4) combination and just pick the appropriate one according to the Xb and Yb that I showed at the beginning. You would not have to do any optimization run: you would only have to substitute in the v1q, v2q values to get the list of x and y candidates.
You would then proceed to remove any complex-valued solutions. Substitute the real-valued candidates into the expression for out and compare the magnitudes to find the best one; if there was an even number of candidates one should probably be the maximum and the other the minima.
Walter Roberson
on 19 Mar 2022
The coefficients for the roots() to calculate the best Y will have to be split because of their combined length
z5c = -(Y11_1*Y22_1 - Y12_1*Y21_1 - Y11_1*Y22_2 - Y11_2*Y22_1 + Y12_1*Y21_2 + Y12_2*Y21_1 + Y11_2*Y22_2 - Y12_2*Y21_2)^2*(2*Y11_1*Y12_2 - 2*Y11_1*Y12_1 - 2*Y11_1*Y11_2 + 2*Y11_2*Y12_1 - 2*Y11_2*Y12_2 - 2*Y12_1*Y12_2 - 2*Y21_1*Y21_2 - 2*Y21_1*Y22_1 + 2*Y21_1*Y22_2 + 2*Y21_2*Y22_1 - 2*Y21_2*Y22_2 - 2*Y22_1*Y22_2 + Y11_1^2 + Y11_2^2 + Y12_1^2 + Y12_2^2 + Y21_1^2 + Y21_2^2 + Y22_1^2 + Y22_2^2)
These are in descending order of power, z^5, z^4, z^3, z^2, z^1, 1 -- standard order for use by roots()
In these, Y11_1 is Y1(1,1), Y21_2 is Y2(1,2) and so on. This relative Y1 and Y2 being the appropriate 2 x 2 subsection extracted from y1 and y2.
Walter Roberson
on 19 Mar 2022
z4c = (Y11_1*Y22_1 - Y12_1*Y21_1 - Y11_1*Y22_2 - Y11_2*Y22_1 + Y12_1*Y21_2 + Y12_2*Y21_1 + Y11_2*Y22_2 - Y12_2*Y21_2)*(5*Y11_1*Y22_1^3 - 5*Y12_1*Y21_1^3 + 5*Y11_1^3*Y22_1 - 5*Y12_1^3*Y21_1 - Y11_1*Y22_2^3 - 4*Y11_2*Y22_1^3 + Y12_1*Y21_2^3 + 4*Y12_2*Y21_1^3 - 4*Y11_1^3*Y22_2 - Y11_2^3*Y22_1 + 4*Y12_1^3*Y21_2 + Y12_2^3*Y21_1 - Y11_1^3*v2q + Y11_2^3*v2q + Y12_1^3*v2q - Y12_2^3*v2q + Y21_1^3*v1q - Y21_2^3*v1q - Y22_1^3*v1q + Y22_2^3*v1q + 10*Y11_1*Y12_1^2*Y21_1 - 5*Y11_1^2*Y12_1*Y21_1 + 7*Y11_1*Y11_2^2*Y22_1 - 8*Y11_1*Y12_1^2*Y21_2 + 5*Y11_1*Y12_2^2*Y21_1 - 7*Y11_2*Y12_1^2*Y21_1 - 11*Y11_1^2*Y11_2*Y22_1 + 4*Y11_1^2*Y12_1*Y21_2 + 4*Y11_1^2*Y12_2*Y21_1 - 2*Y11_2^2*Y12_1*Y21_1 - 4*Y11_1*Y11_2^2*Y22_2 - 3*Y11_1*Y12_2^2*Y21_2 + 5*Y11_2*Y12_1^2*Y21_2 - 2*Y11_2*Y12_2^2*Y21_1 + 8*Y11_1^2*Y11_2*Y22_2 - 3*Y11_1^2*Y12_2*Y21_2 + Y11_2^2*Y12_1*Y21_2 + Y11_2^2*Y12_2*Y21_1 + 5*Y11_1*Y12_1^2*Y22_1 - 10*Y11_1^2*Y12_1*Y22_1 - 4*Y11_1*Y12_1^2*Y22_2 + 2*Y11_1*Y12_2^2*Y22_1 - 4*Y11_2*Y12_1^2*Y22_1 - 7*Y12_1*Y12_2^2*Y21_1 + 8*Y11_1^2*Y12_1*Y22_2 + 7*Y11_1^2*Y12_2*Y22_1 - 5*Y11_2^2*Y12_1*Y22_1 + 11*Y12_1^2*Y12_2*Y21_1 - Y11_1*Y12_2^2*Y22_2 + 3*Y11_2*Y12_1^2*Y22_2 - Y11_2*Y12_2^2*Y22_1 + 4*Y12_1*Y12_2^2*Y21_2 - 5*Y11_1^2*Y12_2*Y22_2 + 3*Y11_2^2*Y12_1*Y22_2 + 2*Y11_2^2*Y12_2*Y22_1 - 8*Y12_1^2*Y12_2*Y21_2 - 10*Y11_1*Y21_1*Y22_1^2 + 5*Y11_1*Y21_1^2*Y22_1 - 5*Y11_1*Y21_1*Y22_2^2 + 7*Y11_1*Y21_2*Y22_1^2 - 4*Y11_1*Y21_1^2*Y22_2 + 2*Y11_1*Y21_2^2*Y22_1 + 8*Y11_2*Y21_1*Y22_1^2 - 4*Y11_2*Y21_1^2*Y22_1 - 7*Y12_1*Y21_1*Y21_2^2 + 11*Y12_1*Y21_1^2*Y21_2 + 2*Y11_1*Y21_2*Y22_2^2 - Y11_1*Y21_2^2*Y22_2 + 3*Y11_2*Y21_1*Y22_2^2 - 5*Y11_2*Y21_2*Y22_1^2 + 3*Y11_2*Y21_1^2*Y22_2 - Y11_2*Y21_2^2*Y22_1 + 4*Y12_2*Y21_1*Y21_2^2 - 8*Y12_2*Y21_1^2*Y21_2 - 5*Y12_1*Y21_1*Y22_1^2 + 10*Y12_1*Y21_1^2*Y22_1 + 7*Y11_1*Y22_1*Y22_2^2 - 11*Y11_1*Y22_1^2*Y22_2 - 2*Y12_1*Y21_1*Y22_2^2 + 4*Y12_1*Y21_2*Y22_1^2 - 7*Y12_1*Y21_1^2*Y22_2 + 5*Y12_1*Y21_2^2*Y22_1 + 4*Y12_2*Y21_1*Y22_1^2 - 8*Y12_2*Y21_1^2*Y22_1 - 4*Y11_2*Y22_1*Y22_2^2 + 8*Y11_2*Y22_1^2*Y22_2 + Y12_1*Y21_2*Y22_2^2 - 2*Y12_1*Y21_2^2*Y22_2 + Y12_2*Y21_1*Y22_2^2 - 3*Y12_2*Y21_2*Y22_1^2 + 5*Y12_2*Y21_1^2*Y22_2 - 3*Y12_2*Y21_2^2*Y22_1 - 3*Y11_1*Y11_2^2*v2q + 3*Y11_1^2*Y11_2*v2q - 3*Y11_1*Y12_1^2*v2q + 3*Y11_1^2*Y12_1*v2q - 3*Y11_1*Y12_2^2*v2q + 3*Y11_2*Y12_1^2*v2q - 3*Y11_1^2*Y12_2*v2q + 3*Y11_2^2*Y12_1*v2q + 3*Y11_2*Y12_2^2*v2q - 3*Y11_2^2*Y12_2*v2q + 3*Y12_1*Y12_2^2*v2q - 3*Y12_1^2*Y12_2*v2q + Y11_1^2*Y21_1*v1q - Y11_1*Y21_1^2*v2q - Y11_1^2*Y21_2*v1q + Y11_2^2*Y21_1*v1q - Y11_1*Y21_2^2*v2q + Y11_2*Y21_1^2*v2q - Y11_2^2*Y21_2*v1q + Y11_2*Y21_2^2*v2q - Y11_1^2*Y22_1*v1q + Y12_1^2*Y21_1*v1q - Y11_1*Y22_1^2*v2q + Y12_1*Y21_1^2*v2q + Y11_1^2*Y22_2*v1q - Y11_2^2*Y22_1*v1q - Y12_1^2*Y21_2*v1q + Y12_2^2*Y21_1*v1q - Y11_1*Y22_2^2*v2q + Y11_2*Y22_1^2*v2q + Y12_1*Y21_2^2*v2q - Y12_2*Y21_1^2*v2q + Y11_2^2*Y22_2*v1q - Y12_2^2*Y21_2*v1q + Y11_2*Y22_2^2*v2q - Y12_2*Y21_2^2*v2q - Y12_1^2*Y22_1*v1q + Y12_1*Y22_1^2*v2q + Y12_1^2*Y22_2*v1q - Y12_2^2*Y22_1*v1q + Y12_1*Y22_2^2*v2q - Y12_2*Y22_1^2*v2q + Y12_2^2*Y22_2*v1q - Y12_2*Y22_2^2*v2q + 3*Y21_1*Y21_2^2*v1q - 3*Y21_1^2*Y21_2*v1q + 3*Y21_1*Y22_1^2*v1q - 3*Y21_1^2*Y22_1*v1q + 3*Y21_1*Y22_2^2*v1q - 3*Y21_2*Y22_1^2*v1q + 3*Y21_1^2*Y22_2*v1q - 3*Y21_2^2*Y22_1*v1q - 3*Y21_2*Y22_2^2*v1q + 3*Y21_2^2*Y22_2*v1q - 3*Y22_1*Y22_2^2*v1q + 3*Y22_1^2*Y22_2*v1q + 7*Y11_1*Y11_2*Y12_1*Y21_1 - 5*Y11_1*Y11_2*Y12_1*Y21_2 - 5*Y11_1*Y11_2*Y12_2*Y21_1 + 3*Y11_1*Y11_2*Y12_2*Y21_2 + 15*Y11_1*Y11_2*Y12_1*Y22_1 - 15*Y11_1*Y12_1*Y12_2*Y21_1 - 11*Y11_1*Y11_2*Y12_1*Y22_2 - 9*Y11_1*Y11_2*Y12_2*Y22_1 + 11*Y11_1*Y12_1*Y12_2*Y21_2 + 9*Y11_2*Y12_1*Y12_2*Y21_1 + 5*Y11_1*Y11_2*Y12_2*Y22_2 - 5*Y11_2*Y12_1*Y12_2*Y21_2 - 7*Y11_1*Y12_1*Y12_2*Y22_1 + 5*Y11_1*Y12_1*Y12_2*Y22_2 + 5*Y11_2*Y12_1*Y12_2*Y22_1 - 3*Y11_2*Y12_1*Y12_2*Y22_2 - 7*Y11_1*Y21_1*Y21_2*Y22_1 + 5*Y11_1*Y21_1*Y21_2*Y22_2 + 5*Y11_2*Y21_1*Y21_2*Y22_1 - 3*Y11_2*Y21_1*Y21_2*Y22_2 + 15*Y11_1*Y21_1*Y22_1*Y22_2 - 15*Y12_1*Y21_1*Y21_2*Y22_1 - 9*Y11_1*Y21_2*Y22_1*Y22_2 - 11*Y11_2*Y21_1*Y22_1*Y22_2 + 9*Y12_1*Y21_1*Y21_2*Y22_2 + 11*Y12_2*Y21_1*Y21_2*Y22_1 + 5*Y11_2*Y21_2*Y22_1*Y22_2 - 5*Y12_2*Y21_1*Y21_2*Y22_2 + 7*Y12_1*Y21_1*Y22_1*Y22_2 - 5*Y12_1*Y21_2*Y22_1*Y22_2 - 5*Y12_2*Y21_1*Y22_1*Y22_2 + 3*Y12_2*Y21_2*Y22_1*Y22_2 - 6*Y11_1*Y11_2*Y12_1*v2q + 6*Y11_1*Y11_2*Y12_2*v2q + 6*Y11_1*Y12_1*Y12_2*v2q - 6*Y11_2*Y12_1*Y12_2*v2q - 2*Y11_1*Y11_2*Y21_1*v1q + 2*Y11_1*Y11_2*Y21_2*v1q - 2*Y11_1*Y12_1*Y21_1*v1q + 2*Y11_1*Y11_2*Y22_1*v1q + 2*Y11_1*Y12_1*Y21_2*v1q + 2*Y11_1*Y12_2*Y21_1*v1q + 2*Y11_2*Y12_1*Y21_1*v1q - 2*Y11_1*Y11_2*Y22_2*v1q - 2*Y11_1*Y12_2*Y21_2*v1q - 2*Y11_2*Y12_1*Y21_2*v1q - 2*Y11_2*Y12_2*Y21_1*v1q + 2*Y11_2*Y12_2*Y21_2*v1q + 2*Y11_1*Y12_1*Y22_1*v1q - 2*Y11_1*Y12_1*Y22_2*v1q - 2*Y11_1*Y12_2*Y22_1*v1q - 2*Y11_2*Y12_1*Y22_1*v1q - 2*Y12_1*Y12_2*Y21_1*v1q + 2*Y11_1*Y12_2*Y22_2*v1q + 2*Y11_2*Y12_1*Y22_2*v1q + 2*Y11_2*Y12_2*Y22_1*v1q + 2*Y12_1*Y12_2*Y21_2*v1q - 2*Y11_2*Y12_2*Y22_2*v1q + 2*Y12_1*Y12_2*Y22_1*v1q - 2*Y12_1*Y12_2*Y22_2*v1q + 2*Y11_1*Y21_1*Y21_2*v2q - 2*Y11_2*Y21_1*Y21_2*v2q + 2*Y11_1*Y21_1*Y22_1*v2q - 2*Y11_1*Y21_1*Y22_2*v2q - 2*Y11_1*Y21_2*Y22_1*v2q - 2*Y11_2*Y21_1*Y22_1*v2q - 2*Y12_1*Y21_1*Y21_2*v2q + 2*Y11_1*Y21_2*Y22_2*v2q + 2*Y11_2*Y21_1*Y22_2*v2q + 2*Y11_2*Y21_2*Y22_1*v2q + 2*Y12_2*Y21_1*Y21_2*v2q - 2*Y11_2*Y21_2*Y22_2*v2q - 2*Y12_1*Y21_1*Y22_1*v2q + 2*Y11_1*Y22_1*Y22_2*v2q + 2*Y12_1*Y21_1*Y22_2*v2q + 2*Y12_1*Y21_2*Y22_1*v2q + 2*Y12_2*Y21_1*Y22_1*v2q - 2*Y11_2*Y22_1*Y22_2*v2q - 2*Y12_1*Y21_2*Y22_2*v2q - 2*Y12_2*Y21_1*Y22_2*v2q - 2*Y12_2*Y21_2*Y22_1*v2q + 2*Y12_2*Y21_2*Y22_2*v2q - 2*Y12_1*Y22_1*Y22_2*v2q + 2*Y12_2*Y22_1*Y22_2*v2q + 6*Y21_1*Y21_2*Y22_1*v1q - 6*Y21_1*Y21_2*Y22_2*v1q - 6*Y21_1*Y22_1*Y22_2*v1q + 6*Y21_2*Y22_1*Y22_2*v1q)
Walter Roberson
on 19 Mar 2022
z3c = -2*(Y11_1*Y22_1 - Y12_1*Y21_1 - Y11_1*Y22_2 - Y11_2*Y22_1 + Y12_1*Y21_2 + Y12_2*Y21_1 + Y11_2*Y22_2 - Y12_2*Y21_2)*(5*Y11_1*Y22_1^3 - 5*Y12_1*Y21_1^3 + 5*Y11_1^3*Y22_1 - 5*Y12_1^3*Y21_1 - 3*Y11_2*Y22_1^3 + 3*Y12_2*Y21_1^3 - 3*Y11_1^3*Y22_2 + 3*Y12_1^3*Y21_2 - 2*Y11_1^3*v2q + 2*Y12_1^3*v2q + 2*Y21_1^3*v1q - 2*Y22_1^3*v1q + 10*Y11_1*Y12_1^2*Y21_1 - 5*Y11_1^2*Y12_1*Y21_1 + 2*Y11_1*Y11_2^2*Y22_1 - 6*Y11_1*Y12_1^2*Y21_2 + 2*Y11_1*Y12_2^2*Y21_1 - 4*Y11_2*Y12_1^2*Y21_1 - 7*Y11_1^2*Y11_2*Y22_1 + 3*Y11_1^2*Y12_1*Y21_2 + 3*Y11_1^2*Y12_2*Y21_1 + 2*Y11_2*Y12_1^2*Y21_2 + 3*Y11_1^2*Y11_2*Y22_2 - Y11_1^2*Y12_2*Y21_2 + 5*Y11_1*Y12_1^2*Y22_1 - 10*Y11_1^2*Y12_1*Y22_1 - 3*Y11_1*Y12_1^2*Y22_2 - 3*Y11_2*Y12_1^2*Y22_1 - 2*Y12_1*Y12_2^2*Y21_1 + 6*Y11_1^2*Y12_1*Y22_2 + 4*Y11_1^2*Y12_2*Y22_1 - 2*Y11_2^2*Y12_1*Y22_1 + 7*Y12_1^2*Y12_2*Y21_1 + Y11_2*Y12_1^2*Y22_2 - 2*Y11_1^2*Y12_2*Y22_2 - 3*Y12_1^2*Y12_2*Y21_2 - 10*Y11_1*Y21_1*Y22_1^2 + 5*Y11_1*Y21_1^2*Y22_1 - 2*Y11_1*Y21_1*Y22_2^2 + 4*Y11_1*Y21_2*Y22_1^2 - 3*Y11_1*Y21_1^2*Y22_2 + 6*Y11_2*Y21_1*Y22_1^2 - 3*Y11_2*Y21_1^2*Y22_1 - 2*Y12_1*Y21_1*Y21_2^2 + 7*Y12_1*Y21_1^2*Y21_2 - 2*Y11_2*Y21_2*Y22_1^2 + Y11_2*Y21_1^2*Y22_2 - 3*Y12_2*Y21_1^2*Y21_2 - 5*Y12_1*Y21_1*Y22_1^2 + 10*Y12_1*Y21_1^2*Y22_1 + 2*Y11_1*Y22_1*Y22_2^2 - 7*Y11_1*Y22_1^2*Y22_2 + 3*Y12_1*Y21_2*Y22_1^2 - 4*Y12_1*Y21_1^2*Y22_2 + 2*Y12_1*Y21_2^2*Y22_1 + 3*Y12_2*Y21_1*Y22_1^2 - 6*Y12_2*Y21_1^2*Y22_1 + 3*Y11_2*Y22_1^2*Y22_2 - Y12_2*Y21_2*Y22_1^2 + 2*Y12_2*Y21_1^2*Y22_2 - 2*Y11_1*Y11_2^2*v2q + 4*Y11_1^2*Y11_2*v2q - 6*Y11_1*Y12_1^2*v2q + 6*Y11_1^2*Y12_1*v2q - 2*Y11_1*Y12_2^2*v2q + 4*Y11_2*Y12_1^2*v2q - 4*Y11_1^2*Y12_2*v2q + 2*Y11_2^2*Y12_1*v2q + 2*Y12_1*Y12_2^2*v2q - 4*Y12_1^2*Y12_2*v2q + 2*Y11_1^2*Y21_1*v1q - 2*Y11_1*Y21_1^2*v2q - 2*Y11_1^2*Y21_2*v1q + 2*Y11_2*Y21_1^2*v2q - 2*Y11_1^2*Y22_1*v1q + 2*Y12_1^2*Y21_1*v1q - 2*Y11_1*Y22_1^2*v2q + 2*Y12_1*Y21_1^2*v2q + 2*Y11_1^2*Y22_2*v1q - 2*Y12_1^2*Y21_2*v1q + 2*Y11_2*Y22_1^2*v2q - 2*Y12_2*Y21_1^2*v2q - 2*Y12_1^2*Y22_1*v1q + 2*Y12_1*Y22_1^2*v2q + 2*Y12_1^2*Y22_2*v1q - 2*Y12_2*Y22_1^2*v2q + 2*Y21_1*Y21_2^2*v1q - 4*Y21_1^2*Y21_2*v1q + 6*Y21_1*Y22_1^2*v1q - 6*Y21_1^2*Y22_1*v1q + 2*Y21_1*Y22_2^2*v1q - 4*Y21_2*Y22_1^2*v1q + 4*Y21_1^2*Y22_2*v1q - 2*Y21_2^2*Y22_1*v1q - 2*Y22_1*Y22_2^2*v1q + 4*Y22_1^2*Y22_2*v1q + 4*Y11_1*Y11_2*Y12_1*Y21_1 - 2*Y11_1*Y11_2*Y12_1*Y21_2 - 2*Y11_1*Y11_2*Y12_2*Y21_1 + 10*Y11_1*Y11_2*Y12_1*Y22_1 - 10*Y11_1*Y12_1*Y12_2*Y21_1 - 4*Y11_1*Y11_2*Y12_1*Y22_2 - 2*Y11_1*Y11_2*Y12_2*Y22_1 + 4*Y11_1*Y12_1*Y12_2*Y21_2 + 2*Y11_2*Y12_1*Y12_2*Y21_1 - 4*Y11_1*Y12_1*Y12_2*Y22_1 + 2*Y11_1*Y12_1*Y12_2*Y22_2 + 2*Y11_2*Y12_1*Y12_2*Y22_1 - 4*Y11_1*Y21_1*Y21_2*Y22_1 + 2*Y11_1*Y21_1*Y21_2*Y22_2 + 2*Y11_2*Y21_1*Y21_2*Y22_1 + 10*Y11_1*Y21_1*Y22_1*Y22_2 - 10*Y12_1*Y21_1*Y21_2*Y22_1 - 2*Y11_1*Y21_2*Y22_1*Y22_2 - 4*Y11_2*Y21_1*Y22_1*Y22_2 + 2*Y12_1*Y21_1*Y21_2*Y22_2 + 4*Y12_2*Y21_1*Y21_2*Y22_1 + 4*Y12_1*Y21_1*Y22_1*Y22_2 - 2*Y12_1*Y21_2*Y22_1*Y22_2 - 2*Y12_2*Y21_1*Y22_1*Y22_2 - 8*Y11_1*Y11_2*Y12_1*v2q + 4*Y11_1*Y11_2*Y12_2*v2q + 8*Y11_1*Y12_1*Y12_2*v2q - 4*Y11_2*Y12_1*Y12_2*v2q - 2*Y11_1*Y11_2*Y21_1*v1q + 2*Y11_1*Y11_2*Y21_2*v1q - 4*Y11_1*Y12_1*Y21_1*v1q + 2*Y11_1*Y11_2*Y22_1*v1q + 4*Y11_1*Y12_1*Y21_2*v1q + 2*Y11_1*Y12_2*Y21_1*v1q + 2*Y11_2*Y12_1*Y21_1*v1q - 2*Y11_1*Y11_2*Y22_2*v1q - 2*Y11_1*Y12_2*Y21_2*v1q - 2*Y11_2*Y12_1*Y21_2*v1q + 4*Y11_1*Y12_1*Y22_1*v1q - 4*Y11_1*Y12_1*Y22_2*v1q - 2*Y11_1*Y12_2*Y22_1*v1q - 2*Y11_2*Y12_1*Y22_1*v1q - 2*Y12_1*Y12_2*Y21_1*v1q + 2*Y11_1*Y12_2*Y22_2*v1q + 2*Y11_2*Y12_1*Y22_2*v1q + 2*Y12_1*Y12_2*Y21_2*v1q + 2*Y12_1*Y12_2*Y22_1*v1q - 2*Y12_1*Y12_2*Y22_2*v1q + 2*Y11_1*Y21_1*Y21_2*v2q - 2*Y11_2*Y21_1*Y21_2*v2q + 4*Y11_1*Y21_1*Y22_1*v2q - 2*Y11_1*Y21_1*Y22_2*v2q - 2*Y11_1*Y21_2*Y22_1*v2q - 4*Y11_2*Y21_1*Y22_1*v2q - 2*Y12_1*Y21_1*Y21_2*v2q + 2*Y11_2*Y21_1*Y22_2*v2q + 2*Y11_2*Y21_2*Y22_1*v2q + 2*Y12_2*Y21_1*Y21_2*v2q - 4*Y12_1*Y21_1*Y22_1*v2q + 2*Y11_1*Y22_1*Y22_2*v2q + 2*Y12_1*Y21_1*Y22_2*v2q + 2*Y12_1*Y21_2*Y22_1*v2q + 4*Y12_2*Y21_1*Y22_1*v2q - 2*Y11_2*Y22_1*Y22_2*v2q - 2*Y12_2*Y21_1*Y22_2*v2q - 2*Y12_2*Y21_2*Y22_1*v2q - 2*Y12_1*Y22_1*Y22_2*v2q + 2*Y12_2*Y22_1*Y22_2*v2q + 8*Y21_1*Y21_2*Y22_1*v1q - 4*Y21_1*Y21_2*Y22_2*v1q - 8*Y21_1*Y22_1*Y22_2*v1q + 4*Y21_2*Y22_1*Y22_2*v1q)
Walter Roberson
on 19 Mar 2022
z2c = 10*Y11_1^2*Y22_1^4 + 10*Y11_1^4*Y22_1^2 + 10*Y12_1^2*Y21_1^4 + 10*Y12_1^4*Y21_1^2 + 4*Y11_2^2*Y22_1^4 + 4*Y11_1^4*Y22_2^2 + 4*Y12_2^2*Y21_1^4 + 4*Y12_1^4*Y21_2^2 - 20*Y11_1*Y12_1^3*Y21_1^2 - 8*Y11_1*Y12_1^3*Y21_2^2 + Y11_1*Y12_2^3*Y21_1^2 + 2*Y11_2*Y12_1^3*Y21_1^2 - 16*Y11_1^3*Y11_2*Y22_1^2 + Y11_2*Y12_1^3*Y21_2^2 - 4*Y11_1^3*Y11_2*Y22_2^2 - 20*Y11_1^3*Y12_1*Y22_1^2 - 8*Y11_1^3*Y12_1*Y22_2^2 + 2*Y11_1^3*Y12_2*Y22_1^2 + Y11_2^3*Y12_1*Y22_1^2 - 16*Y12_1^3*Y12_2*Y21_1^2 + Y11_1^3*Y12_2*Y22_2^2 - 4*Y12_1^3*Y12_2*Y21_2^2 - 20*Y11_1^2*Y21_1*Y22_1^3 + Y11_1^2*Y21_1*Y22_2^3 + 2*Y11_1^2*Y21_2*Y22_1^3 - 8*Y11_2^2*Y21_1*Y22_1^3 - 16*Y12_1^2*Y21_1^3*Y21_2 + Y11_2^2*Y21_2*Y22_1^3 - 4*Y12_2^2*Y21_1^3*Y21_2 - 20*Y12_1^2*Y21_1^3*Y22_1 - 16*Y11_1^2*Y22_1^3*Y22_2 + 2*Y12_1^2*Y21_1^3*Y22_2 + Y12_1^2*Y21_2^3*Y22_1 - 8*Y12_2^2*Y21_1^3*Y22_1 - 4*Y11_2^2*Y22_1^3*Y22_2 + Y12_2^2*Y21_1^3*Y22_2 - 6*Y11_1^3*Y22_1^2*v1q - 6*Y12_1^3*Y21_1^2*v1q - 6*Y11_1^2*Y22_1^3*v2q - 5*Y11_1^3*Y22_2^2*v1q - Y11_2^3*Y22_1^2*v1q - 6*Y12_1^2*Y21_1^3*v2q - 5*Y12_1^3*Y21_2^2*v1q - Y12_2^3*Y21_1^2*v1q - Y11_1^2*Y22_2^3*v2q - 5*Y11_2^2*Y22_1^3*v2q - Y12_1^2*Y21_2^3*v2q - 5*Y12_2^2*Y21_1^3*v2q + 10*Y11_1^2*Y12_1^2*Y21_1^2 + 6*Y11_1^2*Y11_2^2*Y22_1^2 + 4*Y11_1^2*Y12_1^2*Y21_2^2 + 4*Y11_1^2*Y12_2^2*Y21_1^2 - 2*Y11_2^2*Y12_1^2*Y21_1^2 + 10*Y11_1^2*Y12_1^2*Y22_1^2 + 4*Y11_1^2*Y12_1^2*Y22_2^2 - 2*Y11_1^2*Y12_2^2*Y22_1^2 + 4*Y11_2^2*Y12_1^2*Y22_1^2 + 6*Y12_1^2*Y12_2^2*Y21_1^2 + 10*Y11_1^2*Y21_1^2*Y22_1^2 + 4*Y11_1^2*Y21_1^2*Y22_2^2 - 2*Y11_1^2*Y21_2^2*Y22_1^2 + 4*Y11_2^2*Y21_1^2*Y22_1^2 + 6*Y12_1^2*Y21_1^2*Y21_2^2 + 10*Y12_1^2*Y21_1^2*Y22_1^2 + 6*Y11_1^2*Y22_1^2*Y22_2^2 - 2*Y12_1^2*Y21_1^2*Y22_2^2 + 4*Y12_1^2*Y21_2^2*Y22_1^2 + 4*Y12_2^2*Y21_1^2*Y22_1^2 + Y11_1^2*Y21_2^2*v1q^2 - Y11_2^2*Y21_1^2*v1q^2 - Y11_1^2*Y21_2^2*v2q^2 + Y11_2^2*Y21_1^2*v2q^2 + Y11_1^2*Y22_2^2*v1q^2 - Y11_2^2*Y22_1^2*v1q^2 + Y12_1^2*Y21_2^2*v1q^2 - Y12_2^2*Y21_1^2*v1q^2 - Y11_1^2*Y22_2^2*v2q^2 + Y11_2^2*Y22_1^2*v2q^2 - Y12_1^2*Y21_2^2*v2q^2 + Y12_2^2*Y21_1^2*v2q^2 + Y12_1^2*Y22_2^2*v1q^2 - Y12_2^2*Y22_1^2*v1q^2 - Y12_1^2*Y22_2^2*v2q^2 + Y12_2^2*Y22_1^2*v2q^2 - 14*Y11_1*Y11_2*Y22_1^4 - 14*Y12_1*Y12_2*Y21_1^4 - 14*Y12_1^4*Y21_1*Y21_2 - 14*Y11_1^4*Y22_1*Y22_2 - 6*Y11_1*Y22_1^4*v1q - 6*Y12_1*Y21_1^4*v1q + 6*Y11_2*Y22_1^4*v1q + 6*Y12_2*Y21_1^4*v1q - 6*Y11_1^4*Y22_1*v2q - 6*Y12_1^4*Y21_1*v2q + 6*Y11_1^4*Y22_2*v2q + 6*Y12_1^4*Y21_2*v2q + 28*Y11_1*Y11_2*Y21_1*Y22_1^3 + 28*Y11_1*Y12_1^3*Y21_1*Y21_2 - 4*Y11_1*Y11_2*Y21_2*Y22_1^3 - 4*Y11_2*Y12_1^3*Y21_1*Y21_2 - 20*Y11_1*Y12_1*Y21_1*Y22_1^3 - 20*Y11_1*Y12_1*Y21_1^3*Y22_1 - 20*Y11_1*Y12_1^3*Y21_1*Y22_1 - 20*Y11_1^3*Y12_1*Y21_1*Y22_1 - Y11_1*Y12_1*Y21_1*Y22_2^3 + 14*Y11_1*Y12_1*Y21_2*Y22_1^3 + 14*Y11_1*Y12_1*Y21_1^3*Y22_2 - Y11_1*Y12_1*Y21_2^3*Y22_1 + 14*Y11_1*Y12_2*Y21_1*Y22_1^3 + 14*Y11_1*Y12_2*Y21_1^3*Y22_1 + 14*Y11_1*Y12_1^3*Y21_1*Y22_2 + 14*Y11_1*Y12_1^3*Y21_2*Y22_1 - Y11_1*Y12_2^3*Y21_1*Y22_1 + 14*Y11_2*Y12_1*Y21_1*Y22_1^3 + 14*Y11_2*Y12_1*Y21_1^3*Y22_1 + 14*Y11_2*Y12_1^3*Y21_1*Y22_1 + 14*Y11_1^3*Y12_1*Y21_1*Y22_2 + 14*Y11_1^3*Y12_1*Y21_2*Y22_1 + 14*Y11_1^3*Y12_2*Y21_1*Y22_1 - Y11_2^3*Y12_1*Y21_1*Y22_1 + 20*Y11_1*Y11_2*Y22_1^3*Y22_2 - 8*Y11_1*Y12_2*Y21_2*Y22_1^3 - 8*Y11_1*Y12_2*Y21_1^3*Y22_2 - 8*Y11_1*Y12_1^3*Y21_2*Y22_2 - 8*Y11_2*Y12_1*Y21_2*Y22_1^3 - 8*Y11_2*Y12_1*Y21_1^3*Y22_2 - 8*Y11_2*Y12_2*Y21_1*Y22_1^3 - 8*Y11_2*Y12_2*Y21_1^3*Y22_1 - 8*Y11_2*Y12_1^3*Y21_1*Y22_2 - 8*Y11_2*Y12_1^3*Y21_2*Y22_1 + 20*Y12_1*Y12_2*Y21_1^3*Y21_2 + 20*Y11_1^3*Y11_2*Y22_1*Y22_2 - 8*Y11_1^3*Y12_1*Y21_2*Y22_2 - 8*Y11_1^3*Y12_2*Y21_1*Y22_2 - 8*Y11_1^3*Y12_2*Y21_2*Y22_1 + 20*Y12_1^3*Y12_2*Y21_1*Y21_2 + 3*Y11_2*Y12_2*Y21_2*Y22_1^3 + 3*Y11_2*Y12_2*Y21_1^3*Y22_2 + 3*Y11_2*Y12_1^3*Y21_2*Y22_2 + 3*Y11_1^3*Y12_2*Y21_2*Y22_2 + 28*Y12_1*Y12_2*Y21_1^3*Y22_1 + 28*Y11_1^3*Y12_1*Y22_1*Y22_2 - 4*Y12_1*Y12_2*Y21_1^3*Y22_2 - 4*Y11_1^3*Y12_2*Y22_1*Y22_2 + 6*Y11_1*Y12_1*Y21_1^3*v2q + 18*Y11_1*Y12_1^3*Y21_1*v2q + 6*Y11_1^3*Y12_1*Y21_1*v2q + 12*Y11_1*Y11_2*Y22_1^3*v2q + Y11_1*Y12_1*Y21_2^3*v2q - 6*Y11_1*Y12_2*Y21_1^3*v2q - 18*Y11_1*Y12_1^3*Y21_2*v2q - Y11_1*Y12_2^3*Y21_1*v2q - 6*Y11_2*Y12_1*Y21_1^3*v2q - 6*Y11_2*Y12_1^3*Y21_1*v2q + 12*Y11_1^3*Y11_2*Y22_1*v2q - 6*Y11_1^3*Y12_1*Y21_2*v2q - 6*Y11_1^3*Y12_2*Y21_1*v2q + Y11_2^3*Y12_1*Y21_1*v2q + 5*Y11_2*Y12_2*Y21_1^3*v2q + 7*Y11_2*Y12_1^3*Y21_2*v2q - 12*Y11_1^3*Y11_2*Y22_2*v2q + 5*Y11_1^3*Y12_2*Y21_2*v2q + 6*Y11_1*Y12_1*Y22_1^3*v2q + 6*Y11_1*Y12_1^3*Y22_1*v2q + 18*Y11_1^3*Y12_1*Y22_1*v2q + Y11_1*Y12_1*Y22_2^3*v2q - 6*Y11_1*Y12_2*Y22_1^3*v2q - 6*Y11_1*Y12_1^3*Y22_2*v2q + Y11_1*Y12_2^3*Y22_1*v2q - 6*Y11_2*Y12_1*Y22_1^3*v2q - 6*Y11_2*Y12_1^3*Y22_1*v2q + 12*Y12_1*Y12_2*Y21_1^3*v2q - 18*Y11_1^3*Y12_1*Y22_2*v2q - 6*Y11_1^3*Y12_2*Y22_1*v2q - Y11_2^3*Y12_1*Y22_1*v2q + 12*Y12_1^3*Y12_2*Y21_1*v2q + 5*Y11_2*Y12_2*Y22_1^3*v2q + 5*Y11_2*Y12_1^3*Y22_2*v2q + 7*Y11_1^3*Y12_2*Y22_2*v2q - 12*Y12_1^3*Y12_2*Y21_2*v2q + 18*Y11_1*Y21_1*Y22_1^3*v1q + 6*Y11_1*Y21_1^3*Y22_1*v1q + 6*Y11_1^3*Y21_1*Y22_1*v1q - Y11_1*Y21_1*Y22_2^3*v1q - 6*Y11_1*Y21_2*Y22_1^3*v1q - 6*Y11_1*Y21_1^3*Y22_2*v1q + Y11_1*Y21_2^3*Y22_1*v1q - 18*Y11_2*Y21_1*Y22_1^3*v1q - 6*Y11_2*Y21_1^3*Y22_1*v1q + 12*Y12_1*Y21_1^3*Y21_2*v1q - 6*Y11_1^3*Y21_1*Y22_2*v1q - 6*Y11_1^3*Y21_2*Y22_1*v1q + Y11_2^3*Y21_1*Y22_1*v1q + 12*Y12_1^3*Y21_1*Y21_2*v1q + 7*Y11_2*Y21_2*Y22_1^3*v1q + 5*Y11_2*Y21_1^3*Y22_2*v1q - 12*Y12_2*Y21_1^3*Y21_2*v1q + 5*Y11_1^3*Y21_2*Y22_2*v1q + 6*Y12_1*Y21_1*Y22_1^3*v1q + 18*Y12_1*Y21_1^3*Y22_1*v1q + 6*Y12_1^3*Y21_1*Y22_1*v1q + 12*Y11_1*Y22_1^3*Y22_2*v1q + Y12_1*Y21_1*Y22_2^3*v1q - 6*Y12_1*Y21_2*Y22_1^3*v1q - 6*Y12_1*Y21_1^3*Y22_2*v1q - Y12_1*Y21_2^3*Y22_1*v1q - 6*Y12_2*Y21_1*Y22_1^3*v1q - 18*Y12_2*Y21_1^3*Y22_1*v1q + 12*Y11_1^3*Y22_1*Y22_2*v1q - 6*Y12_1^3*Y21_1*Y22_2*v1q - 6*Y12_1^3*Y21_2*Y22_1*v1q + Y12_2^3*Y21_1*Y22_1*v1q - 12*Y11_2*Y22_1^3*Y22_2*v1q + 5*Y12_2*Y21_2*Y22_1^3*v1q + 7*Y12_2*Y21_1^3*Y22_2*v1q + 5*Y12_1^3*Y21_2*Y22_2*v1q - Y11_1*Y21_2^3*v1q*v2q + Y11_2*Y21_1^3*v1q*v2q + Y11_1^3*Y21_2*v1q*v2q - Y11_2^3*Y21_1*v1q*v2q + Y11_1*Y22_2^3*v1q*v2q - Y11_2*Y22_1^3*v1q*v2q + Y12_1*Y21_2^3*v1q*v2q - Y12_2*Y21_1^3*v1q*v2q - Y11_1^3*Y22_2*v1q*v2q + Y11_2^3*Y22_1*v1q*v2q - Y12_1^3*Y21_2*v1q*v2q + Y12_2^3*Y21_1*v1q*v2q - Y12_1*Y22_2^3*v1q*v2q + Y12_2*Y22_1^3*v1q*v2q + Y12_1^3*Y22_2*v1q*v2q - Y12_2^3*Y22_1*v1q*v2q - 2*Y11_1*Y11_2*Y12_1^2*Y21_1^2 - Y11_1*Y11_2*Y12_1^2*Y21_2^2 - Y11_1*Y11_2*Y12_2^2*Y21_1^2 - 14*Y11_1*Y11_2*Y12_1^2*Y22_1^2 - 12*Y11_1*Y12_1*Y12_2^2*Y21_1^2 - 12*Y11_1*Y11_2^2*Y12_1*Y22_1^2 + 30*Y11_1*Y12_1^2*Y12_2*Y21_1^2 + 30*Y11_1^2*Y11_2*Y12_1*Y22_1^2 - 14*Y11_1^2*Y12_1*Y12_2*Y21_1^2 - 3*Y11_1*Y11_2*Y12_1^2*Y22_2^2 + Y11_1*Y11_2*Y12_2^2*Y22_1^2 - Y11_1*Y11_2^2*Y12_2*Y22_1^2 + 7*Y11_1*Y12_1^2*Y12_2*Y21_2^2 - Y11_2*Y12_1*Y12_2^2*Y21_1^2 + 7*Y11_1^2*Y11_2*Y12_1*Y22_2^2 - 3*Y11_1^2*Y12_1*Y12_2*Y21_2^2 + Y11_2^2*Y12_1*Y12_2*Y21_1^2 - 2*Y11_1^2*Y12_1*Y12_2*Y22_1^2 - Y11_1^2*Y12_1*Y12_2*Y22_2^2 - Y11_2^2*Y12_1*Y12_2*Y22_1^2 - 14*Y11_1*Y11_2*Y21_1^2*Y22_1^2 - 14*Y11_1^2*Y12_1^2*Y21_1*Y21_2 - 3*Y11_1*Y11_2*Y21_1^2*Y22_2^2 + Y11_1*Y11_2*Y21_2^2*Y22_1^2 - 3*Y11_1^2*Y12_2^2*Y21_1*Y21_2 + Y11_2^2*Y12_1^2*Y21_1*Y21_2 + 40*Y11_1*Y12_1*Y21_1^2*Y22_1^2 + 40*Y11_1^2*Y12_1^2*Y21_1*Y22_1 + 4*Y11_1*Y12_1*Y21_1^2*Y22_2^2 + 4*Y11_1*Y12_1*Y21_2^2*Y22_1^2 - 28*Y11_1*Y12_2*Y21_1^2*Y22_1^2 - 28*Y11_2*Y12_1*Y21_1^2*Y22_1^2 - 28*Y11_1^2*Y12_1^2*Y21_1*Y22_2 - 28*Y11_1^2*Y12_1^2*Y21_2*Y22_1 + 4*Y11_1^2*Y12_2^2*Y21_1*Y22_1 + 4*Y11_2^2*Y12_1^2*Y21_1*Y22_1 - 6*Y11_1*Y11_2*Y22_1^2*Y22_2^2 - 2*Y11_1*Y12_2*Y21_1^2*Y22_2^2 - 2*Y11_1*Y12_2*Y21_2^2*Y22_1^2 - 2*Y11_2*Y12_1*Y21_1^2*Y22_2^2 - 2*Y11_2*Y12_1*Y21_2^2*Y22_1^2 + 16*Y11_2*Y12_2*Y21_1^2*Y22_1^2 - 6*Y12_1*Y12_2*Y21_1^2*Y21_2^2 - 6*Y11_1^2*Y11_2^2*Y22_1*Y22_2 + 16*Y11_1^2*Y12_1^2*Y21_2*Y22_2 - 2*Y11_1^2*Y12_2^2*Y21_1*Y22_2 - 2*Y11_1^2*Y12_2^2*Y21_2*Y22_1 - 2*Y11_2^2*Y12_1^2*Y21_1*Y22_2 - 2*Y11_2^2*Y12_1^2*Y21_2*Y22_1 - 6*Y12_1^2*Y12_2^2*Y21_1*Y21_2 - 14*Y12_1*Y12_2*Y21_1^2*Y22_1^2 - 14*Y11_1^2*Y12_1^2*Y22_1*Y22_2 + Y12_1*Y12_2*Y21_1^2*Y22_2^2 - 3*Y12_1*Y12_2*Y21_2^2*Y22_1^2 + Y11_1^2*Y12_2^2*Y22_1*Y22_2 - 3*Y11_2^2*Y12_1^2*Y22_1*Y22_2 - 2*Y11_1^2*Y21_1*Y21_2*Y22_1^2 - Y11_1^2*Y21_1*Y21_2*Y22_2^2 - Y11_2^2*Y21_1*Y21_2*Y22_1^2 - 12*Y11_1^2*Y21_1*Y22_1*Y22_2^2 + 30*Y11_1^2*Y21_1*Y22_1^2*Y22_2 - 14*Y11_1^2*Y21_1^2*Y22_1*Y22_2 - 14*Y12_1^2*Y21_1*Y21_2*Y22_1^2 - 12*Y12_1^2*Y21_1*Y21_2^2*Y22_1 + 30*Y12_1^2*Y21_1^2*Y21_2*Y22_1 - Y11_1^2*Y21_2*Y22_1*Y22_2^2 + Y11_1^2*Y21_2^2*Y22_1*Y22_2 + 7*Y11_2^2*Y21_1*Y22_1^2*Y22_2 - 3*Y11_2^2*Y21_1^2*Y22_1*Y22_2 + Y12_1^2*Y21_1*Y21_2*Y22_2^2 - Y12_1^2*Y21_1*Y21_2^2*Y22_2 - 3*Y12_2^2*Y21_1*Y21_2*Y22_1^2 + 7*Y12_2^2*Y21_1^2*Y21_2*Y22_1 - 2*Y12_1^2*Y21_1^2*Y22_1*Y22_2 - Y12_1^2*Y21_2^2*Y22_1*Y22_2 - Y12_2^2*Y21_1^2*Y22_1*Y22_2 + Y11_1*Y11_2*Y21_1^2*v1q^2 - Y11_1*Y11_2*Y21_1^2*v2q^2 - Y11_1*Y11_2*Y21_2^2*v1q^2 + Y11_1*Y11_2*Y21_2^2*v2q^2 + 12*Y11_1*Y12_1^2*Y21_1^2*v1q - 6*Y11_1^2*Y12_1*Y21_1^2*v1q + Y11_1*Y11_2*Y22_1^2*v1q^2 - 2*Y11_1*Y12_1*Y21_2^2*v1q^2 - Y11_1*Y12_2*Y21_1^2*v1q^2 + Y11_1*Y11_2^2*Y22_1^2*v1q + 10*Y11_1*Y12_1^2*Y21_2^2*v1q + 2*Y11_1*Y12_2^2*Y21_1^2*v1q - Y11_2*Y12_1*Y21_1^2*v1q^2 + 6*Y11_1^2*Y11_2*Y22_1^2*v1q - 5*Y11_1^2*Y12_1*Y21_2^2*v1q + 6*Y11_1^2*Y12_2*Y21_1^2*v1q - 18*Y11_1^2*Y12_1^2*Y21_1*v2q + 3*Y11_2^2*Y12_1*Y21_1^2*v1q - Y11_1*Y11_2*Y22_1^2*v2q^2 - Y11_1*Y11_2*Y22_2^2*v1q^2 + 2*Y11_1*Y12_1*Y21_2^2*v2q^2 + Y11_1*Y12_2*Y21_1^2*v2q^2 + Y11_1*Y12_2*Y21_2^2*v1q^2 + Y11_2*Y12_1*Y21_1^2*v2q^2 + Y11_2*Y12_1*Y21_2^2*v1q^2 + 2*Y11_2*Y12_2*Y21_1^2*v1q^2 - 2*Y11_2*Y12_1^2*Y21_2^2*v1q + 2*Y11_2*Y12_2^2*Y21_1^2*v1q + 5*Y11_1^2*Y11_2*Y22_2^2*v1q + 3*Y11_1^2*Y12_2*Y21_2^2*v1q - 6*Y11_1^2*Y11_2^2*Y22_1*v2q + 18*Y11_1^2*Y12_1^2*Y21_2*v2q - 7*Y11_1^2*Y12_2^2*Y21_1*v2q - Y11_2^2*Y12_2*Y21_1^2*v1q + Y11_2^2*Y12_1^2*Y21_1*v2q + Y11_1*Y11_2*Y22_2^2*v2q^2 - Y11_1*Y12_2*Y21_2^2*v2q^2 - Y11_2*Y12_1*Y21_2^2*v2q^2 - 2*Y11_2*Y12_2*Y21_1^2*v2q^2 + 6*Y11_1^2*Y11_2^2*Y22_2*v2q + 5*Y11_1^2*Y12_2^2*Y21_2*v2q + Y11_2^2*Y12_1^2*Y21_2*v2q - 6*Y11_1*Y12_1^2*Y22_1^2*v1q + 12*Y11_1^2*Y12_1*Y22_1^2*v1q - 2*Y11_1*Y12_1*Y22_2^2*v1q^2 - Y11_1*Y12_2*Y22_1^2*v1q^2 - 5*Y11_1*Y12_1^2*Y22_2^2*v1q + 3*Y11_1*Y12_2^2*Y22_1^2*v1q - Y11_2*Y12_1*Y22_1^2*v1q^2 + 6*Y11_2*Y12_1^2*Y22_1^2*v1q + Y12_1*Y12_2*Y21_1^2*v1q^2 + Y12_1*Y12_2^2*Y21_1^2*v1q + 10*Y11_1^2*Y12_1*Y22_2^2*v1q - 18*Y11_1^2*Y12_1^2*Y22_1*v2q + 2*Y11_2^2*Y12_1*Y22_1^2*v1q + 6*Y12_1^2*Y12_2*Y21_1^2*v1q + 2*Y11_1*Y12_1*Y22_2^2*v2q^2 + Y11_1*Y12_2*Y22_1^2*v2q^2 + Y11_1*Y12_2*Y22_2^2*v1q^2 + Y11_2*Y12_1*Y22_1^2*v2q^2 + Y11_2*Y12_1*Y22_2^2*v1q^2 + 2*Y11_2*Y12_2*Y22_1^2*v1q^2 + 3*Y11_2*Y12_1^2*Y22_2^2*v1q - Y11_2*Y12_2^2*Y22_1^2*v1q - Y12_1*Y12_2*Y21_1^2*v2q^2 - Y12_1*Y12_2*Y21_2^2*v1q^2 - 2*Y11_1^2*Y12_2*Y22_2^2*v1q + 18*Y11_1^2*Y12_1^2*Y22_2*v2q + Y11_1^2*Y12_2^2*Y22_1*v2q + 2*Y11_2^2*Y12_2*Y22_1^2*v1q - 7*Y11_2^2*Y12_1^2*Y22_1*v2q + 5*Y12_1^2*Y12_2*Y21_2^2*v1q - 6*Y12_1^2*Y12_2^2*Y21_1*v2q - Y11_1*Y12_2*Y22_2^2*v2q^2 - Y11_2*Y12_1*Y22_2^2*v2q^2 - 2*Y11_2*Y12_2*Y22_1^2*v2q^2 + Y12_1*Y12_2*Y21_2^2*v2q^2 + Y11_1^2*Y12_2^2*Y22_2*v2q + 5*Y11_2^2*Y12_1^2*Y22_2*v2q + 6*Y12_1^2*Y12_2^2*Y21_2*v2q + Y12_1*Y12_2*Y22_1^2*v1q^2 - Y12_1*Y12_2*Y22_1^2*v2q^2 - Y12_1*Y12_2*Y22_2^2*v1q^2 + Y12_1*Y12_2*Y22_2^2*v2q^2 - Y11_1^2*Y21_1*Y21_2*v1q^2 + Y11_1^2*Y21_1*Y21_2*v2q^2 + Y11_2^2*Y21_1*Y21_2*v1q^2 - Y11_2^2*Y21_1*Y21_2*v2q^2 - 18*Y11_1*Y21_1^2*Y22_1^2*v1q - 7*Y11_1*Y21_1^2*Y22_2^2*v1q + Y11_1*Y21_2^2*Y22_1^2*v1q + 18*Y11_2*Y21_1^2*Y22_1^2*v1q - 6*Y12_1*Y21_1^2*Y21_2^2*v1q + Y11_1^2*Y21_1*Y22_2*v1q^2 + 12*Y11_1^2*Y21_1*Y22_1^2*v2q + Y11_1^2*Y21_2*Y22_1*v1q^2 - 6*Y11_1^2*Y21_1^2*Y22_1*v2q + 2*Y11_2^2*Y21_1*Y22_1*v1q^2 - Y12_1^2*Y21_1*Y21_2*v1q^2 + 5*Y11_2*Y21_1^2*Y22_2^2*v1q + Y11_2*Y21_2^2*Y22_1^2*v1q + 6*Y12_2*Y21_1^2*Y21_2^2*v1q - Y11_1^2*Y21_1*Y22_2*v2q^2 + 2*Y11_1^2*Y21_1*Y22_2^2*v2q - Y11_1^2*Y21_2*Y22_1*v2q^2 - 2*Y11_1^2*Y21_2*Y22_2*v1q^2 + 6*Y11_1^2*Y21_1^2*Y22_2*v2q + 3*Y11_1^2*Y21_2^2*Y22_1*v2q - 2*Y11_2^2*Y21_1*Y22_1*v2q^2 - Y11_2^2*Y21_1*Y22_2*v1q^2 + 10*Y11_2^2*Y21_1*Y22_1^2*v2q - Y11_2^2*Y21_2*Y22_1*v1q^2 - 5*Y11_2^2*Y21_1^2*Y22_1*v2q + Y12_1^2*Y21_1*Y21_2*v2q^2 + Y12_1^2*Y21_1*Y21_2^2*v2q + 6*Y12_1^2*Y21_1^2*Y21_2*v2q + Y12_2^2*Y21_1*Y21_2*v1q^2 + 2*Y11_1^2*Y21_2*Y22_2*v2q^2 + 2*Y11_1^2*Y21_2*Y22_2^2*v2q - Y11_1^2*Y21_2^2*Y22_2*v2q + Y11_2^2*Y21_1*Y22_2*v2q^2 + Y11_2^2*Y21_2*Y22_1*v2q^2 - 2*Y11_2^2*Y21_2*Y22_1^2*v2q + 3*Y11_2^2*Y21_1^2*Y22_2*v2q - Y12_2^2*Y21_1*Y21_2*v2q^2 + 5*Y12_2^2*Y21_1^2*Y21_2*v2q - 18*Y12_1*Y21_1^2*Y22_1^2*v1q - 6*Y11_1*Y22_1^2*Y22_2^2*v1q + Y12_1*Y21_1^2*Y22_2^2*v1q - 7*Y12_1*Y21_2^2*Y22_1^2*v1q + 18*Y12_2*Y21_1^2*Y22_1^2*v1q - Y11_1^2*Y22_1*Y22_2*v1q^2 + Y12_1^2*Y21_1*Y22_2*v1q^2 - 6*Y12_1^2*Y21_1*Y22_1^2*v2q + Y12_1^2*Y21_2*Y22_1*v1q^2 + 12*Y12_1^2*Y21_1^2*Y22_1*v2q + 2*Y12_2^2*Y21_1*Y22_1*v1q^2 + 6*Y11_2*Y22_1^2*Y22_2^2*v1q + Y12_2*Y21_1^2*Y22_2^2*v1q + 5*Y12_2*Y21_2^2*Y22_1^2*v1q + Y11_1^2*Y22_1*Y22_2*v2q^2 + Y11_1^2*Y22_1*Y22_2^2*v2q + 6*Y11_1^2*Y22_1^2*Y22_2*v2q + Y11_2^2*Y22_1*Y22_2*v1q^2 - Y12_1^2*Y21_1*Y22_2*v2q^2 + 3*Y12_1^2*Y21_1*Y22_2^2*v2q - Y12_1^2*Y21_2*Y22_1*v2q^2 - 2*Y12_1^2*Y21_2*Y22_2*v1q^2 + 6*Y12_1^2*Y21_2*Y22_1^2*v2q + 2*Y12_1^2*Y21_2^2*Y22_1*v2q - 2*Y12_2^2*Y21_1*Y22_1*v2q^2 - Y12_2^2*Y21_1*Y22_2*v1q^2 - 5*Y12_2^2*Y21_1*Y22_1^2*v2q - Y12_2^2*Y21_2*Y22_1*v1q^2 + 10*Y12_2^2*Y21_1^2*Y22_1*v2q - Y11_2^2*Y22_1*Y22_2*v2q^2 + 5*Y11_2^2*Y22_1^2*Y22_2*v2q + 2*Y12_1^2*Y21_2*Y22_2*v2q^2 - Y12_1^2*Y21_2*Y22_2^2*v2q + 2*Y12_1^2*Y21_2^2*Y22_2*v2q + Y12_2^2*Y21_1*Y22_2*v2q^2 + Y12_2^2*Y21_2*Y22_1*v2q^2 + 3*Y12_2^2*Y21_2*Y22_1^2*v2q - 2*Y12_2^2*Y21_1^2*Y22_2*v2q - Y12_1^2*Y22_1*Y22_2*v1q^2 + Y12_1^2*Y22_1*Y22_2*v2q^2 + Y12_2^2*Y22_1*Y22_2*v1q^2 - Y12_2^2*Y22_1*Y22_2*v2q^2 + 4*Y11_1*Y11_2*Y12_1*Y12_2*Y21_1^2 + 4*Y11_1*Y11_2*Y12_1*Y12_2*Y22_1^2 + 4*Y11_1*Y11_2*Y12_1^2*Y21_1*Y21_2 - 32*Y11_1*Y11_2*Y12_1^2*Y21_1*Y22_1 + 18*Y11_1^2*Y11_2*Y12_1*Y21_1*Y22_1 + 20*Y11_1*Y11_2*Y12_1^2*Y21_1*Y22_2 + 20*Y11_1*Y11_2*Y12_1^2*Y21_2*Y22_1 + 10*Y11_1*Y12_1*Y12_2^2*Y21_1*Y21_2 + Y11_1*Y11_2^2*Y12_1*Y21_1*Y22_2 + Y11_1*Y11_2^2*Y12_1*Y21_2*Y22_1 + Y11_1*Y11_2^2*Y12_2*Y21_1*Y22_1 - 36*Y11_1*Y12_1^2*Y12_2*Y21_1*Y21_2 - 12*Y11_1^2*Y11_2*Y12_1*Y21_1*Y22_2 - 12*Y11_1^2*Y11_2*Y12_1*Y21_2*Y22_1 - 12*Y11_1^2*Y11_2*Y12_2*Y21_1*Y22_1 + 16*Y11_1^2*Y12_1*Y12_2*Y21_1*Y21_2 - 8*Y11_1*Y11_2*Y12_1^2*Y21_2*Y22_2 + 2*Y11_2*Y12_1^2*Y12_2*Y21_1*Y21_2 + 5*Y11_1^2*Y11_2*Y12_1*Y21_2*Y22_2 + 5*Y11_1^2*Y11_2*Y12_2*Y21_1*Y22_2 + 5*Y11_1^2*Y11_2*Y12_2*Y21_2*Y22_1 + 18*Y11_1*Y12_1^2*Y12_2*Y21_1*Y22_1 - 32*Y11_1^2*Y12_1*Y12_2*Y21_1*Y22_1 + 16*Y11_1*Y11_2*Y12_1^2*Y22_1*Y22_2 + Y11_1*Y12_1*Y12_2^2*Y21_1*Y22_2 + Y11_1*Y12_1*Y12_2^2*Y21_2*Y22_1 + 10*Y11_1*Y11_2^2*Y12_1*Y22_1*Y22_2 - 12*Y11_1*Y12_1^2*Y12_2*Y21_1*Y22_2 - 12*Y11_1*Y12_1^2*Y12_2*Y21_2*Y22_1 + Y11_2*Y12_1*Y12_2^2*Y21_1*Y22_1 - 12*Y11_2*Y12_1^2*Y12_2*Y21_1*Y22_1 - 36*Y11_1^2*Y11_2*Y12_1*Y22_1*Y22_2 + 20*Y11_1^2*Y12_1*Y12_2*Y21_1*Y22_2 + 20*Y11_1^2*Y12_1*Y12_2*Y21_2*Y22_1 + 5*Y11_1*Y12_1^2*Y12_2*Y21_2*Y22_2 + 5*Y11_2*Y12_1^2*Y12_2*Y21_1*Y22_2 + 5*Y11_2*Y12_1^2*Y12_2*Y21_2*Y22_1 + 2*Y11_1^2*Y11_2*Y12_2*Y22_1*Y22_2 - 8*Y11_1^2*Y12_1*Y12_2*Y21_2*Y22_2 + 4*Y11_1^2*Y12_1*Y12_2*Y22_1*Y22_2 + 4*Y11_1*Y11_2*Y21_1*Y21_2*Y22_1^2 - 32*Y11_1*Y12_1*Y21_1*Y21_2*Y22_1^2 + 18*Y11_1*Y12_1*Y21_1^2*Y21_2*Y22_1 + 10*Y11_1*Y11_2*Y21_1*Y22_1*Y22_2^2 - 36*Y11_1*Y11_2*Y21_1*Y22_1^2*Y22_2 + 16*Y11_1*Y11_2*Y21_1^2*Y22_1*Y22_2 + Y11_1*Y12_1*Y21_1*Y21_2^2*Y22_2 - 12*Y11_1*Y12_1*Y21_1^2*Y21_2*Y22_2 + 20*Y11_1*Y12_2*Y21_1*Y21_2*Y22_1^2 + Y11_1*Y12_2*Y21_1*Y21_2^2*Y22_1 - 12*Y11_1*Y12_2*Y21_1^2*Y21_2*Y22_1 + 20*Y11_2*Y12_1*Y21_1*Y21_2*Y22_1^2 + Y11_2*Y12_1*Y21_1*Y21_2^2*Y22_1 - 12*Y11_2*Y12_1*Y21_1^2*Y21_2*Y22_1 + 2*Y11_1*Y11_2*Y21_2*Y22_1^2*Y22_2 + 5*Y11_1*Y12_2*Y21_1^2*Y21_2*Y22_2 + 5*Y11_2*Y12_1*Y21_1^2*Y21_2*Y22_2 - 8*Y11_2*Y12_2*Y21_1*Y21_2*Y22_1^2 + 5*Y11_2*Y12_2*Y21_1^2*Y21_2*Y22_1 + 18*Y11_1*Y12_1*Y21_1*Y22_1^2*Y22_2 - 32*Y11_1*Y12_1*Y21_1^2*Y22_1*Y22_2 + Y11_1*Y12_1*Y21_2*Y22_1*Y22_2^2 - 12*Y11_1*Y12_1*Y21_2*Y22_1^2*Y22_2 + Y11_1*Y12_2*Y21_1*Y22_1*Y22_2^2 - 12*Y11_1*Y12_2*Y21_1*Y22_1^2*Y22_2 + 20*Y11_1*Y12_2*Y21_1^2*Y22_1*Y22_2 + Y11_2*Y12_1*Y21_1*Y22_1*Y22_2^2 - 12*Y11_2*Y12_1*Y21_1*Y22_1^2*Y22_2 + 20*Y11_2*Y12_1*Y21_1^2*Y22_1*Y22_2 + 16*Y12_1*Y12_2*Y21_1*Y21_2*Y22_1^2 + 10*Y12_1*Y12_2*Y21_1*Y21_2^2*Y22_1 - 36*Y12_1*Y12_2*Y21_1^2*Y21_2*Y22_1 + 5*Y11_1*Y12_2*Y21_2*Y22_1^2*Y22_2 + 5*Y11_2*Y12_1*Y21_2*Y22_1^2*Y22_2 + 5*Y11_2*Y12_2*Y21_1*Y22_1^2*Y22_2 - 8*Y11_2*Y12_2*Y21_1^2*Y22_1*Y22_2 + 2*Y12_1*Y12_2*Y21_1^2*Y21_2*Y22_2 + 4*Y12_1*Y12_2*Y21_1^2*Y22_1*Y22_2 + 4*Y11_1^2*Y21_1*Y21_2*Y22_1*Y22_2 + 4*Y12_1^2*Y21_1*Y21_2*Y22_1*Y22_2 + 2*Y11_1*Y11_2*Y12_1*Y21_2^2*v1q - 2*Y11_1*Y11_2*Y12_2*Y21_1^2*v1q + 12*Y11_1*Y11_2*Y12_1^2*Y21_1*v2q - Y11_1*Y11_2^2*Y12_1*Y21_1*v2q - 6*Y11_1^2*Y11_2*Y12_1*Y21_1*v2q - 14*Y11_1*Y11_2*Y12_1^2*Y21_2*v2q + 2*Y11_1*Y11_2*Y12_2^2*Y21_1*v2q - Y11_1*Y11_2^2*Y12_1*Y21_2*v2q - Y11_1*Y11_2^2*Y12_2*Y21_1*v2q + 7*Y11_1^2*Y11_2*Y12_1*Y21_2*v2q + 7*Y11_1^2*Y11_2*Y12_2*Y21_1*v2q - 5*Y11_1^2*Y11_2*Y12_2*Y21_2*v2q - 12*Y11_1*Y11_2*Y12_1*Y22_1^2*v1q - 12*Y11_1*Y12_1*Y12_2*Y21_1^2*v1q - 8*Y11_1*Y11_2*Y12_1*Y22_2^2*v1q - 4*Y11_1*Y11_2*Y12_2*Y22_1^2*v1q + 24*Y11_1*Y11_2*Y12_1^2*Y22_1*v2q - 8*Y11_1*Y12_1*Y12_2*Y21_2^2*v1q + 13*Y11_1*Y12_1*Y12_2^2*Y21_1*v2q + 13*Y11_1*Y11_2^2*Y12_1*Y22_1*v2q - 30*Y11_1*Y12_1^2*Y12_2*Y21_1*v2q - 4*Y11_2*Y12_1*Y12_2*Y21_1^2*v1q - 30*Y11_1^2*Y11_2*Y12_1*Y22_1*v2q + 24*Y11_1^2*Y12_1*Y12_2*Y21_1*v2q - 22*Y11_1*Y11_2*Y12_1^2*Y22_2*v2q - 2*Y11_1*Y11_2*Y12_2^2*Y22_1*v2q - 11*Y11_1*Y12_1*Y12_2^2*Y21_2*v2q - 11*Y11_1*Y11_2^2*Y12_1*Y22_2*v2q + Y11_1*Y11_2^2*Y12_2*Y22_1*v2q + 29*Y11_1*Y12_1^2*Y12_2*Y21_2*v2q + Y11_2*Y12_1*Y12_2^2*Y21_1*v2q + 5*Y11_2*Y12_1^2*Y12_2*Y21_1*v2q + 29*Y11_1^2*Y11_2*Y12_1*Y22_2*v2q + 5*Y11_1^2*Y11_2*Y12_2*Y22_1*v2q - 22*Y11_1^2*Y12_1*Y12_2*Y21_2*v2q - 2*Y11_2^2*Y12_1*Y12_2*Y21_1*v2q - 7*Y11_2*Y12_1^2*Y12_2*Y21_2*v2q - 7*Y11_1^2*Y11_2*Y12_2*Y22_2*v2q + 2*Y11_1*Y12_1*Y12_2*Y22_2^2*v1q - Y11_1*Y12_1*Y12_2^2*Y22_1*v2q - 6*Y11_1*Y12_1^2*Y12_2*Y22_1*v2q - 2*Y11_2*Y12_1*Y12_2*Y22_1^2*v1q + 12*Y11_1^2*Y12_1*Y12_2*Y22_1*v2q - Y11_1*Y12_1*Y12_2^2*Y22_2*v2q + 7*Y11_1*Y12_1^2*Y12_2*Y22_2*v2q - Y11_2*Y12_1*Y12_2^2*Y22_1*v2q + 7*Y11_2*Y12_1^2*Y12_2*Y22_1*v2q - 14*Y11_1^2*Y12_1*Y12_2*Y22_2*v2q + 2*Y11_2^2*Y12_1*Y12_2*Y22_1*v2q - 5*Y11_2*Y12_1^2*Y12_2*Y22_2*v2q - 2*Y11_1*Y11_2*Y21_1*Y22_1*v1q^2 + 2*Y11_1*Y12_1*Y21_1*Y21_2*v1q^2 - Y11_1*Y11_2^2*Y21_1*Y22_1*v1q - 24*Y11_1*Y12_1^2*Y21_1*Y21_2*v1q - 6*Y11_1^2*Y11_2*Y21_1*Y22_1*v1q + 12*Y11_1^2*Y12_1*Y21_1*Y21_2*v1q + 2*Y11_1*Y11_2*Y21_1*Y22_1*v2q^2 - 24*Y11_1*Y11_2*Y21_1*Y22_1^2*v2q + 12*Y11_1*Y11_2*Y21_1^2*Y22_1*v2q - 2*Y11_1*Y12_1*Y21_1*Y21_2*v2q^2 - Y11_1*Y12_1*Y21_1*Y21_2^2*v2q - 6*Y11_1*Y12_1*Y21_1^2*Y21_2*v2q - Y11_1*Y11_2^2*Y21_1*Y22_2*v1q - Y11_1*Y11_2^2*Y21_2*Y22_1*v1q - 4*Y11_1*Y12_2^2*Y21_1*Y21_2*v1q + 4*Y11_2*Y12_1^2*Y21_1*Y21_2*v1q + 7*Y11_1^2*Y11_2*Y21_1*Y22_2*v1q + 7*Y11_1^2*Y11_2*Y21_2*Y22_1*v1q - 10*Y11_1^2*Y12_2*Y21_1*Y21_2*v1q - 2*Y11_2^2*Y12_1*Y21_1*Y21_2*v1q - 4*Y11_1*Y11_2*Y21_1*Y22_2^2*v2q + 2*Y11_1*Y11_2*Y21_2*Y22_2*v1q^2 + 4*Y11_1*Y11_2*Y21_2*Y22_1^2*v2q - 10*Y11_1*Y11_2*Y21_1^2*Y22_2*v2q - 2*Y11_1*Y11_2*Y21_2^2*Y22_1*v2q - Y11_1*Y12_2*Y21_1*Y21_2^2*v2q + 7*Y11_1*Y12_2*Y21_1^2*Y21_2*v2q - Y11_2*Y12_1*Y21_1*Y21_2^2*v2q + 7*Y11_2*Y12_1*Y21_1^2*Y21_2*v2q - 2*Y11_2*Y12_2*Y21_1*Y21_2*v1q^2 - 5*Y11_1^2*Y11_2*Y21_2*Y22_2*v1q - 2*Y11_1*Y11_2*Y21_2*Y22_2*v2q^2 + 2*Y11_2*Y12_2*Y21_1*Y21_2*v2q^2 - 5*Y11_2*Y12_2*Y21_1^2*Y21_2*v2q - 6*Y11_1*Y12_1^2*Y21_1*Y22_1*v1q - 6*Y11_1^2*Y12_1*Y21_1*Y22_1*v1q - 2*Y11_1*Y12_1*Y21_1*Y22_2*v1q^2 - 6*Y11_1*Y12_1*Y21_1*Y22_1^2*v2q - 2*Y11_1*Y12_1*Y21_2*Y22_1*v1q^2 - 6*Y11_1*Y12_1*Y21_1^2*Y22_1*v2q + 2*Y11_1*Y12_2*Y21_1*Y22_1*v1q^2 + 6*Y11_1*Y12_1^2*Y21_1*Y22_2*v1q + 6*Y11_1*Y12_1^2*Y21_2*Y22_1*v1q - 5*Y11_1*Y12_2^2*Y21_1*Y22_1*v1q + 2*Y11_2*Y12_1*Y21_1*Y22_1*v1q^2 - 6*Y11_2*Y12_1^2*Y21_1*Y22_1*v1q + 6*Y11_1^2*Y12_1*Y21_1*Y22_2*v1q + 6*Y11_1^2*Y12_1*Y21_2*Y22_1*v1q - 6*Y11_1^2*Y12_2*Y21_1*Y22_1*v1q - 5*Y11_2^2*Y12_1*Y21_1*Y22_1*v1q + 2*Y11_1*Y12_1*Y21_1*Y22_2*v2q^2 - 5*Y11_1*Y12_1*Y21_1*Y22_2^2*v2q + 2*Y11_1*Y12_1*Y21_2*Y22_1*v2q^2 + 4*Y11_1*Y12_1*Y21_2*Y22_2*v1q^2 - 6*Y11_1*Y12_1*Y21_2*Y22_1^2*v2q - 6*Y11_1*Y12_1*Y21_1^2*Y22_2*v2q - 5*Y11_1*Y12_1*Y21_2^2*Y22_1*v2q - 2*Y11_1*Y12_2*Y21_1*Y22_1*v2q^2 + 6*Y11_1*Y12_2*Y21_1*Y22_1^2*v2q + 6*Y11_1*Y12_2*Y21_1^2*Y22_1*v2q + 2*Y11_1*Y11_2^2*Y22_1*Y22_2*v1q - 5*Y11_1*Y12_1^2*Y21_2*Y22_2*v1q + 3*Y11_1*Y12_2^2*Y21_1*Y22_2*v1q + 3*Y11_1*Y12_2^2*Y21_2*Y22_1*v1q - 2*Y11_2*Y12_1*Y21_1*Y22_1*v2q^2 + 6*Y11_2*Y12_1*Y21_1*Y22_1^2*v2q + 6*Y11_2*Y12_1*Y21_1^2*Y22_1*v2q - 4*Y11_2*Y12_2*Y21_1*Y22_1*v1q^2 + 3*Y11_2*Y12_1^2*Y21_1*Y22_2*v1q + 3*Y11_2*Y12_1^2*Y21_2*Y22_1*v1q - Y11_2*Y12_2^2*Y21_1*Y22_1*v1q + 2*Y12_1*Y12_2^2*Y21_1*Y21_2*v1q - 14*Y11_1^2*Y11_2*Y22_1*Y22_2*v1q - 5*Y11_1^2*Y12_1*Y21_2*Y22_2*v1q + 3*Y11_1^2*Y12_2*Y21_1*Y22_2*v1q + 3*Y11_1^2*Y12_2*Y21_2*Y22_1*v1q + 3*Y11_2^2*Y12_1*Y21_1*Y22_2*v1q + 3*Y11_2^2*Y12_1*Y21_2*Y22_1*v1q - Y11_2^2*Y12_2*Y21_1*Y22_1*v1q - 14*Y12_1^2*Y12_2*Y21_1*Y21_2*v1q + 2*Y11_1*Y11_2*Y22_1*Y22_2^2*v2q - 14*Y11_1*Y11_2*Y22_1^2*Y22_2*v2q - 4*Y11_1*Y12_1*Y21_2*Y22_2*v2q^2 - Y11_1*Y12_1*Y21_2*Y22_2^2*v2q - Y11_1*Y12_1*Y21_2^2*Y22_2*v2q + 3*Y11_1*Y12_2*Y21_1*Y22_2^2*v2q - 2*Y11_1*Y12_2*Y21_2*Y22_2*v1q^2 + 3*Y11_1*Y12_2*Y21_2*Y22_1^2*v2q + 3*Y11_1*Y12_2*Y21_1^2*Y22_2*v2q + 3*Y11_1*Y12_2*Y21_2^2*Y22_1*v2q + 3*Y11_2*Y12_1*Y21_1*Y22_2^2*v2q - 2*Y11_2*Y12_1*Y21_2*Y22_2*v1q^2 + 3*Y11_2*Y12_1*Y21_2*Y22_1^2*v2q + 3*Y11_2*Y12_1*Y21_1^2*Y22_2*v2q + 3*Y11_2*Y12_1*Y21_2^2*Y22_1*v2q + 4*Y11_2*Y12_2*Y21_1*Y22_1*v2q^2 + 2*Y11_2*Y12_2*Y21_1*Y22_2*v1q^2 - 5*Y11_2*Y12_2*Y21_1*Y22_1^2*v2q + 2*Y11_2*Y12_2*Y21_2*Y22_1*v1q^2 - 5*Y11_2*Y12_2*Y21_1^2*Y22_1*v2q - Y11_2*Y12_1^2*Y21_2*Y22_2*v1q + 2*Y12_1*Y12_2*Y21_1*Y21_2^2*v2q - 14*Y12_1*Y12_2*Y21_1^2*Y21_2*v2q - Y11_1^2*Y12_2*Y21_2*Y22_2*v1q + 2*Y11_1*Y12_2*Y21_2*Y22_2*v2q^2 + 2*Y11_2*Y12_1*Y21_2*Y22_2*v2q^2 - 2*Y11_2*Y12_2*Y21_1*Y22_2*v2q^2 - 2*Y11_2*Y12_2*Y21_2*Y22_1*v2q^2 - Y11_2*Y12_2*Y21_2*Y22_1^2*v2q - Y11_2*Y12_2*Y21_1^2*Y22_2*v2q + 2*Y11_1*Y12_1*Y22_1*Y22_2*v1q^2 + 12*Y11_1*Y12_1^2*Y22_1*Y22_2*v1q - 2*Y12_1*Y12_2*Y21_1*Y22_1*v1q^2 - Y12_1*Y12_2^2*Y21_1*Y22_1*v1q - 24*Y11_1^2*Y12_1*Y22_1*Y22_2*v1q - 6*Y12_1^2*Y12_2*Y21_1*Y22_1*v1q - 2*Y11_1*Y12_1*Y22_1*Y22_2*v2q^2 - Y11_1*Y12_1*Y22_1*Y22_2^2*v2q - 6*Y11_1*Y12_1*Y22_1^2*Y22_2*v2q - 2*Y11_1*Y12_2^2*Y22_1*Y22_2*v1q - 10*Y11_2*Y12_1^2*Y22_1*Y22_2*v1q + 2*Y12_1*Y12_2*Y21_1*Y22_1*v2q^2 + 12*Y12_1*Y12_2*Y21_1*Y22_1^2*v2q - 24*Y12_1*Y12_2*Y21_1^2*Y22_1*v2q - Y12_1*Y12_2^2*Y21_1*Y22_2*v1q - Y12_1*Y12_2^2*Y21_2*Y22_1*v1q + 4*Y11_1^2*Y12_2*Y22_1*Y22_2*v1q - 4*Y11_2^2*Y12_1*Y22_1*Y22_2*v1q + 7*Y12_1^2*Y12_2*Y21_1*Y22_2*v1q + 7*Y12_1^2*Y12_2*Y21_2*Y22_1*v1q - Y11_1*Y12_2*Y22_1*Y22_2^2*v2q + 7*Y11_1*Y12_2*Y22_1^2*Y22_2*v2q - Y11_2*Y12_1*Y22_1*Y22_2^2*v2q + 7*Y11_2*Y12_1*Y22_1^2*Y22_2*v2q - 2*Y11_2*Y12_2*Y22_1*Y22_2*v1q^2 - 2*Y12_1*Y12_2*Y21_1*Y22_2^2*v2q + 2*Y12_1*Y12_2*Y21_2*Y22_2*v1q^2 - 10*Y12_1*Y12_2*Y21_2*Y22_1^2*v2q + 4*Y12_1*Y12_2*Y21_1^2*Y22_2*v2q - 4*Y12_1*Y12_2*Y21_2^2*Y22_1*v2q - 5*Y12_1^2*Y12_2*Y21_2*Y22_2*v1q + 2*Y11_2*Y12_2*Y22_1*Y22_2*v2q^2 - 5*Y11_2*Y12_2*Y22_1^2*Y22_2*v2q - 2*Y12_1*Y12_2*Y21_2*Y22_2*v2q^2 + 12*Y11_1*Y21_1*Y21_2*Y22_1^2*v1q - Y11_1*Y21_1*Y21_2^2*Y22_1*v1q - 6*Y11_1*Y21_1^2*Y21_2*Y22_1*v1q + 2*Y11_1*Y21_1*Y21_2*Y22_2^2*v1q - Y11_1*Y21_1*Y21_2^2*Y22_2*v1q + 7*Y11_1*Y21_1^2*Y21_2*Y22_2*v1q - 14*Y11_2*Y21_1*Y21_2*Y22_1^2*v1q - Y11_2*Y21_1*Y21_2^2*Y22_1*v1q + 7*Y11_2*Y21_1^2*Y21_2*Y22_1*v1q - 5*Y11_2*Y21_1^2*Y21_2*Y22_2*v1q - 2*Y11_1^2*Y21_1*Y21_2*Y22_2*v2q + 2*Y11_2^2*Y21_1*Y21_2*Y22_1*v2q + 13*Y11_1*Y21_1*Y22_1*Y22_2^2*v1q - 30*Y11_1*Y21_1*Y22_1^2*Y22_2*v1q + 24*Y11_1*Y21_1^2*Y22_1*Y22_2*v1q + 24*Y12_1*Y21_1*Y21_2*Y22_1^2*v1q + 13*Y12_1*Y21_1*Y21_2^2*Y22_1*v1q - 30*Y12_1*Y21_1^2*Y21_2*Y22_1*v1q + Y11_1*Y21_2*Y22_1*Y22_2^2*v1q + 5*Y11_1*Y21_2*Y22_1^2*Y22_2*v1q - 2*Y11_1*Y21_2^2*Y22_1*Y22_2*v1q - 11*Y11_2*Y21_1*Y22_1*Y22_2^2*v1q + 29*Y11_2*Y21_1*Y22_1^2*Y22_2*v1q - 22*Y11_2*Y21_1^2*Y22_1*Y22_2*v1q - 2*Y12_1*Y21_1*Y21_2*Y22_2^2*v1q + Y12_1*Y21_1*Y21_2^2*Y22_2*v1q + 5*Y12_1*Y21_1^2*Y21_2*Y22_2*v1q - 22*Y12_2*Y21_1*Y21_2*Y22_1^2*v1q - 11*Y12_2*Y21_1*Y21_2^2*Y22_1*v1q + 29*Y12_2*Y21_1^2*Y21_2*Y22_1*v1q - 12*Y11_1^2*Y21_1*Y22_1*Y22_2*v2q - 12*Y12_1^2*Y21_1*Y21_2*Y22_1*v2q - 7*Y11_2*Y21_2*Y22_1^2*Y22_2*v1q - 7*Y12_2*Y21_1^2*Y21_2*Y22_2*v1q - 4*Y11_1^2*Y21_2*Y22_1*Y22_2*v2q - 8*Y11_2^2*Y21_1*Y22_1*Y22_2*v2q - 4*Y12_1^2*Y21_1*Y21_2*Y22_2*v2q - 8*Y12_2^2*Y21_1*Y21_2*Y22_1*v2q - Y12_1*Y21_1*Y22_1*Y22_2^2*v1q - 6*Y12_1*Y21_1*Y22_1^2*Y22_2*v1q + 12*Y12_1*Y21_1^2*Y22_1*Y22_2*v1q - Y12_1*Y21_2*Y22_1*Y22_2^2*v1q + 7*Y12_1*Y21_2*Y22_1^2*Y22_2*v1q + 2*Y12_1*Y21_2^2*Y22_1*Y22_2*v1q - Y12_2*Y21_1*Y22_1*Y22_2^2*v1q + 7*Y12_2*Y21_1*Y22_1^2*Y22_2*v1q - 14*Y12_2*Y21_1^2*Y22_1*Y22_2*v1q - 5*Y12_2*Y21_2*Y22_1^2*Y22_2*v1q - 2*Y12_1^2*Y21_2*Y22_1*Y22_2*v2q + 2*Y12_2^2*Y21_1*Y22_1*Y22_2*v2q + 2*Y11_1*Y11_2^2*Y21_1*v1q*v2q - Y11_1^2*Y11_2*Y21_1*v1q*v2q + Y11_1*Y11_2^2*Y21_2*v1q*v2q - 2*Y11_1^2*Y11_2*Y21_2*v1q*v2q - 2*Y11_1*Y11_2^2*Y22_1*v1q*v2q + 3*Y11_1*Y12_1^2*Y21_2*v1q*v2q + 2*Y11_1*Y12_2^2*Y21_1*v1q*v2q - Y11_2*Y12_1^2*Y21_1*v1q*v2q + Y11_1^2*Y11_2*Y22_1*v1q*v2q - 3*Y11_1^2*Y12_1*Y21_2*v1q*v2q + Y11_1^2*Y12_2*Y21_1*v1q*v2q - 2*Y11_2^2*Y12_1*Y21_1*v1q*v2q - Y11_1*Y11_2^2*Y22_2*v1q*v2q + Y11_1*Y12_2^2*Y21_2*v1q*v2q - 2*Y11_2*Y12_1^2*Y21_2*v1q*v2q - 3*Y11_2*Y12_2^2*Y21_1*v1q*v2q + 2*Y11_1^2*Y11_2*Y22_2*v1q*v2q + 2*Y11_1^2*Y12_2*Y21_2*v1q*v2q - Y11_2^2*Y12_1*Y21_2*v1q*v2q + 3*Y11_2^2*Y12_2*Y21_1*v1q*v2q - 3*Y11_1*Y12_1^2*Y22_2*v1q*v2q - 2*Y11_1*Y12_2^2*Y22_1*v1q*v2q + Y11_2*Y12_1^2*Y22_1*v1q*v2q - 2*Y12_1*Y12_2^2*Y21_1*v1q*v2q + 3*Y11_1^2*Y12_1*Y22_2*v1q*v2q - Y11_1^2*Y12_2*Y22_1*v1q*v2q + 2*Y11_2^2*Y12_1*Y22_1*v1q*v2q + Y12_1^2*Y12_2*Y21_1*v1q*v2q - Y11_1*Y12_2^2*Y22_2*v1q*v2q + 2*Y11_2*Y12_1^2*Y22_2*v1q*v2q + 3*Y11_2*Y12_2^2*Y22_1*v1q*v2q - Y12_1*Y12_2^2*Y21_2*v1q*v2q - 2*Y11_1^2*Y12_2*Y22_2*v1q*v2q + Y11_2^2*Y12_1*Y22_2*v1q*v2q - 3*Y11_2^2*Y12_2*Y22_1*v1q*v2q + 2*Y12_1^2*Y12_2*Y21_2*v1q*v2q + 2*Y12_1*Y12_2^2*Y22_1*v1q*v2q - Y12_1^2*Y12_2*Y22_1*v1q*v2q + Y12_1*Y12_2^2*Y22_2*v1q*v2q - 2*Y12_1^2*Y12_2*Y22_2*v1q*v2q + 2*Y11_1*Y21_1*Y21_2^2*v1q*v2q - Y11_1*Y21_1^2*Y21_2*v1q*v2q + Y11_2*Y21_1*Y21_2^2*v1q*v2q - 2*Y11_2*Y21_1^2*Y21_2*v1q*v2q + 2*Y11_1*Y21_1*Y22_2^2*v1q*v2q - Y11_1*Y21_2*Y22_1^2*v1q*v2q + Y11_1*Y21_1^2*Y22_2*v1q*v2q - 2*Y11_1*Y21_2^2*Y22_1*v1q*v2q + 3*Y11_2*Y21_1*Y22_1^2*v1q*v2q - 3*Y11_2*Y21_1^2*Y22_1*v1q*v2q - 2*Y12_1*Y21_1*Y21_2^2*v1q*v2q + Y12_1*Y21_1^2*Y21_2*v1q*v2q - 3*Y11_1*Y21_2*Y22_2^2*v1q*v2q + 3*Y11_1*Y21_2^2*Y22_2*v1q*v2q + Y11_2*Y21_1*Y22_2^2*v1q*v2q - 2*Y11_2*Y21_2*Y22_1^2*v1q*v2q + 2*Y11_2*Y21_1^2*Y22_2*v1q*v2q - Y11_2*Y21_2^2*Y22_1*v1q*v2q - Y12_2*Y21_1*Y21_2^2*v1q*v2q + 2*Y12_2*Y21_1^2*Y21_2*v1q*v2q - 2*Y11_1*Y22_1*Y22_2^2*v1q*v2q + Y11_1*Y22_1^2*Y22_2*v1q*v2q - 2*Y12_1*Y21_1*Y22_2^2*v1q*v2q + Y12_1*Y21_2*Y22_1^2*v1q*v2q - Y12_1*Y21_1^2*Y22_2*v1q*v2q + 2*Y12_1*Y21_2^2*Y22_1*v1q*v2q - 3*Y12_2*Y21_1*Y22_1^2*v1q*v2q + 3*Y12_2*Y21_1^2*Y22_1*v1q*v2q - Y11_2*Y22_1*Y22_2^2*v1q*v2q + 2*Y11_2*Y22_1^2*Y22_2*v1q*v2q + 3*Y12_1*Y21_2*Y22_2^2*v1q*v2q - 3*Y12_1*Y21_2^2*Y22_2*v1q*v2q - Y12_2*Y21_1*Y22_2^2*v1q*v2q + 2*Y12_2*Y21_2*Y22_1^2*v1q*v2q - 2*Y12_2*Y21_1^2*Y22_2*v1q*v2q + Y12_2*Y21_2^2*Y22_1*v1q*v2q + 2*Y12_1*Y22_1*Y22_2^2*v1q*v2q - Y12_1*Y22_1^2*Y22_2*v1q*v2q + Y12_2*Y22_1*Y22_2^2*v1q*v2q - 2*Y12_2*Y22_1^2*Y22_2*v1q*v2q - 4*Y11_1*Y11_2*Y12_1*Y12_2*Y21_1*Y21_2 + 16*Y11_1*Y11_2*Y12_1*Y12_2*Y21_1*Y22_1 - 8*Y11_1*Y11_2*Y12_1*Y12_2*Y21_1*Y22_2 - 8*Y11_1*Y11_2*Y12_1*Y12_2*Y21_2*Y22_1 - 4*Y11_1*Y11_2*Y12_1*Y12_2*Y22_1*Y22_2 - 4*Y11_1*Y11_2*Y21_1*Y21_2*Y22_1*Y22_2 + 16*Y11_1*Y12_1*Y21_1*Y21_2*Y22_1*Y22_2 - 8*Y11_1*Y12_2*Y21_1*Y21_2*Y22_1*Y22_2 - 8*Y11_2*Y12_1*Y21_1*Y21_2*Y22_1*Y22_2 - 4*Y12_1*Y12_2*Y21_1*Y21_2*Y22_1*Y22_2 - 12*Y11_1*Y11_2*Y12_1*Y12_2*Y21_1*v2q + 12*Y11_1*Y11_2*Y12_1*Y12_2*Y21_2*v2q - 12*Y11_1*Y11_2*Y12_1*Y12_2*Y22_1*v2q + 12*Y11_1*Y11_2*Y12_1*Y12_2*Y22_2*v2q - 4*Y11_1*Y11_2*Y12_1*Y21_1*Y21_2*v1q + 4*Y11_1*Y11_2*Y12_2*Y21_1*Y21_2*v1q + 12*Y11_1*Y11_2*Y12_1*Y21_1*Y22_1*v1q - 10*Y11_1*Y11_2*Y12_1*Y21_1*Y22_2*v1q - 10*Y11_1*Y11_2*Y12_1*Y21_2*Y22_1*v1q + 6*Y11_1*Y11_2*Y12_2*Y21_1*Y22_1*v1q + 24*Y11_1*Y12_1*Y12_2*Y21_1*Y21_2*v1q + 6*Y11_1*Y11_2*Y12_1*Y21_2*Y22_2*v1q - 2*Y11_1*Y11_2*Y12_2*Y21_1*Y22_2*v1q - 2*Y11_1*Y11_2*Y12_2*Y21_2*Y22_1*v1q + 12*Y11_1*Y12_1*Y12_2*Y21_1*Y22_1*v1q + 24*Y11_1*Y11_2*Y12_1*Y22_1*Y22_2*v1q - 10*Y11_1*Y12_1*Y12_2*Y21_1*Y22_2*v1q - 10*Y11_1*Y12_1*Y12_2*Y21_2*Y22_1*v1q + 6*Y11_2*Y12_1*Y12_2*Y21_1*Y22_1*v1q + 6*Y11_1*Y12_1*Y12_2*Y21_2*Y22_2*v1q - 2*Y11_2*Y12_1*Y12_2*Y21_1*Y22_2*v1q - 2*Y11_2*Y12_1*Y12_2*Y21_2*Y22_1*v1q - 4*Y11_1*Y12_1*Y12_2*Y22_1*Y22_2*v1q + 4*Y11_2*Y12_1*Y12_2*Y22_1*Y22_2*v1q - 4*Y11_1*Y11_2*Y21_1*Y21_2*Y22_1*v2q + 4*Y11_1*Y11_2*Y21_1*Y21_2*Y22_2*v2q + 12*Y11_1*Y12_1*Y21_1*Y21_2*Y22_1*v2q + 24*Y11_1*Y11_2*Y21_1*Y22_1*Y22_2*v2q + 6*Y11_1*Y12_1*Y21_1*Y21_2*Y22_2*v2q - 10*Y11_1*Y12_2*Y21_1*Y21_2*Y22_1*v2q - 10*Y11_2*Y12_1*Y21_1*Y21_2*Y22_1*v2q - 2*Y11_1*Y12_2*Y21_1*Y21_2*Y22_2*v2q - 2*Y11_2*Y12_1*Y21_1*Y21_2*Y22_2*v2q + 6*Y11_2*Y12_2*Y21_1*Y21_2*Y22_1*v2q + 12*Y11_1*Y12_1*Y21_1*Y22_1*Y22_2*v2q + 6*Y11_1*Y12_1*Y21_2*Y22_1*Y22_2*v2q - 10*Y11_1*Y12_2*Y21_1*Y22_1*Y22_2*v2q - 10*Y11_2*Y12_1*Y21_1*Y22_1*Y22_2*v2q + 24*Y12_1*Y12_2*Y21_1*Y21_2*Y22_1*v2q - 2*Y11_1*Y12_2*Y21_2*Y22_1*Y22_2*v2q - 2*Y11_2*Y12_1*Y21_2*Y22_1*Y22_2*v2q + 6*Y11_2*Y12_2*Y21_1*Y22_1*Y22_2*v2q - 4*Y12_1*Y12_2*Y21_1*Y22_1*Y22_2*v2q + 4*Y12_1*Y12_2*Y21_2*Y22_1*Y22_2*v2q - 12*Y11_1*Y21_1*Y21_2*Y22_1*Y22_2*v1q + 12*Y11_2*Y21_1*Y21_2*Y22_1*Y22_2*v1q - 12*Y12_1*Y21_1*Y21_2*Y22_1*Y22_2*v1q + 12*Y12_2*Y21_1*Y21_2*Y22_1*Y22_2*v1q + 2*Y11_1*Y11_2*Y12_1*Y21_1*v1q*v2q + 4*Y11_1*Y11_2*Y12_1*Y21_2*v1q*v2q - 4*Y11_1*Y11_2*Y12_2*Y21_1*v1q*v2q - 2*Y11_1*Y11_2*Y12_2*Y21_2*v1q*v2q - 2*Y11_1*Y11_2*Y12_1*Y22_1*v1q*v2q - 2*Y11_1*Y12_1*Y12_2*Y21_1*v1q*v2q - 4*Y11_1*Y11_2*Y12_1*Y22_2*v1q*v2q + 4*Y11_1*Y11_2*Y12_2*Y22_1*v1q*v2q - 4*Y11_1*Y12_1*Y12_2*Y21_2*v1q*v2q + 4*Y11_2*Y12_1*Y12_2*Y21_1*v1q*v2q + 2*Y11_1*Y11_2*Y12_2*Y22_2*v1q*v2q + 2*Y11_2*Y12_1*Y12_2*Y21_2*v1q*v2q + 2*Y11_1*Y12_1*Y12_2*Y22_1*v1q*v2q + 4*Y11_1*Y12_1*Y12_2*Y22_2*v1q*v2q - 4*Y11_2*Y12_1*Y12_2*Y22_1*v1q*v2q - 2*Y11_2*Y12_1*Y12_2*Y22_2*v1q*v2q + 2*Y11_1*Y21_1*Y21_2*Y22_1*v1q*v2q - 4*Y11_1*Y21_1*Y21_2*Y22_2*v1q*v2q + 4*Y11_2*Y21_1*Y21_2*Y22_1*v1q*v2q - 2*Y11_2*Y21_1*Y21_2*Y22_2*v1q*v2q - 2*Y11_1*Y21_1*Y22_1*Y22_2*v1q*v2q - 2*Y12_1*Y21_1*Y21_2*Y22_1*v1q*v2q + 4*Y11_1*Y21_2*Y22_1*Y22_2*v1q*v2q - 4*Y11_2*Y21_1*Y22_1*Y22_2*v1q*v2q + 4*Y12_1*Y21_1*Y21_2*Y22_2*v1q*v2q - 4*Y12_2*Y21_1*Y21_2*Y22_1*v1q*v2q + 2*Y11_2*Y21_2*Y22_1*Y22_2*v1q*v2q + 2*Y12_2*Y21_1*Y21_2*Y22_2*v1q*v2q + 2*Y12_1*Y21_1*Y22_1*Y22_2*v1q*v2q - 4*Y12_1*Y21_2*Y22_1*Y22_2*v1q*v2q + 4*Y12_2*Y21_1*Y22_1*Y22_2*v1q*v2q - 2*Y12_2*Y21_2*Y22_1*Y22_2*v1q*v2q
Walter Roberson
on 19 Mar 2022
z1c = 10*Y11_1*Y12_1^3*Y21_1^2 - 5*Y11_1^4*Y22_1^2 - 5*Y12_1^2*Y21_1^4 - 5*Y12_1^4*Y21_1^2 - Y11_2^2*Y22_1^4 - Y11_1^4*Y22_2^2 - Y12_2^2*Y21_1^4 - Y12_1^4*Y21_2^2 - 5*Y11_1^2*Y22_1^4 + 2*Y11_1*Y12_1^3*Y21_2^2 + 2*Y11_2*Y12_1^3*Y21_1^2 + 4*Y11_1^3*Y11_2*Y22_1^2 + 10*Y11_1^3*Y12_1*Y22_1^2 + 2*Y11_1^3*Y12_1*Y22_2^2 + 2*Y11_1^3*Y12_2*Y22_1^2 + 4*Y12_1^3*Y12_2*Y21_1^2 + 10*Y11_1^2*Y21_1*Y22_1^3 + 2*Y11_1^2*Y21_2*Y22_1^3 + 2*Y11_2^2*Y21_1*Y22_1^3 + 4*Y12_1^2*Y21_1^3*Y21_2 + 10*Y12_1^2*Y21_1^3*Y22_1 + 4*Y11_1^2*Y22_1^3*Y22_2 + 2*Y12_1^2*Y21_1^3*Y22_2 + 2*Y12_2^2*Y21_1^3*Y22_1 + 4*Y11_1^3*Y22_1^2*v1q + 4*Y12_1^3*Y21_1^2*v1q + 4*Y11_1^2*Y22_1^3*v2q + 2*Y11_1^3*Y22_2^2*v1q + 4*Y12_1^2*Y21_1^3*v2q + 2*Y12_1^3*Y21_2^2*v1q + 2*Y11_2^2*Y22_1^3*v2q + 2*Y12_2^2*Y21_1^3*v2q - 5*Y11_1^2*Y12_1^2*Y21_1^2 - Y11_1^2*Y12_1^2*Y21_2^2 - Y11_1^2*Y12_2^2*Y21_1^2 + Y11_2^2*Y12_1^2*Y21_1^2 - 5*Y11_1^2*Y12_1^2*Y22_1^2 - Y11_1^2*Y12_1^2*Y22_2^2 + Y11_1^2*Y12_2^2*Y22_1^2 - Y11_2^2*Y12_1^2*Y22_1^2 - 5*Y11_1^2*Y21_1^2*Y22_1^2 - Y11_1^2*Y21_1^2*Y22_2^2 + Y11_1^2*Y21_2^2*Y22_1^2 - Y11_2^2*Y21_1^2*Y22_1^2 - 5*Y12_1^2*Y21_1^2*Y22_1^2 + Y12_1^2*Y21_1^2*Y22_2^2 - Y12_1^2*Y21_2^2*Y22_1^2 - Y12_2^2*Y21_1^2*Y22_1^2 - Y11_1^2*Y21_2^2*v1q^2 + Y11_2^2*Y21_1^2*v1q^2 + Y11_1^2*Y21_2^2*v2q^2 - Y11_2^2*Y21_1^2*v2q^2 - Y11_1^2*Y22_2^2*v1q^2 + Y11_2^2*Y22_1^2*v1q^2 - Y12_1^2*Y21_2^2*v1q^2 + Y12_2^2*Y21_1^2*v1q^2 + Y11_1^2*Y22_2^2*v2q^2 - Y11_2^2*Y22_1^2*v2q^2 + Y12_1^2*Y21_2^2*v2q^2 - Y12_2^2*Y21_1^2*v2q^2 - Y12_1^2*Y22_2^2*v1q^2 + Y12_2^2*Y22_1^2*v1q^2 + Y12_1^2*Y22_2^2*v2q^2 - Y12_2^2*Y22_1^2*v2q^2 + 6*Y11_1*Y11_2*Y22_1^4 + 6*Y12_1*Y12_2*Y21_1^4 + 6*Y12_1^4*Y21_1*Y21_2 + 6*Y11_1^4*Y22_1*Y22_2 + 4*Y11_1*Y22_1^4*v1q + 4*Y12_1*Y21_1^4*v1q - 4*Y11_2*Y22_1^4*v1q - 4*Y12_2*Y21_1^4*v1q + 4*Y11_1^4*Y22_1*v2q + 4*Y12_1^4*Y21_1*v2q - 4*Y11_1^4*Y22_2*v2q - 4*Y12_1^4*Y21_2*v2q - 12*Y11_1*Y11_2*Y21_1*Y22_1^3 - 12*Y11_1*Y12_1^3*Y21_1*Y21_2 + 10*Y11_1*Y12_1*Y21_1*Y22_1^3 + 10*Y11_1*Y12_1*Y21_1^3*Y22_1 + 10*Y11_1*Y12_1^3*Y21_1*Y22_1 + 10*Y11_1^3*Y12_1*Y21_1*Y22_1 - 6*Y11_1*Y12_1*Y21_2*Y22_1^3 - 6*Y11_1*Y12_1*Y21_1^3*Y22_2 - 6*Y11_1*Y12_2*Y21_1*Y22_1^3 - 6*Y11_1*Y12_2*Y21_1^3*Y22_1 - 6*Y11_1*Y12_1^3*Y21_1*Y22_2 - 6*Y11_1*Y12_1^3*Y21_2*Y22_1 - 6*Y11_2*Y12_1*Y21_1*Y22_1^3 - 6*Y11_2*Y12_1*Y21_1^3*Y22_1 - 6*Y11_2*Y12_1^3*Y21_1*Y22_1 - 6*Y11_1^3*Y12_1*Y21_1*Y22_2 - 6*Y11_1^3*Y12_1*Y21_2*Y22_1 - 6*Y11_1^3*Y12_2*Y21_1*Y22_1 - 4*Y11_1*Y11_2*Y22_1^3*Y22_2 + 2*Y11_1*Y12_2*Y21_2*Y22_1^3 + 2*Y11_1*Y12_2*Y21_1^3*Y22_2 + 2*Y11_1*Y12_1^3*Y21_2*Y22_2 + 2*Y11_2*Y12_1*Y21_2*Y22_1^3 + 2*Y11_2*Y12_1*Y21_1^3*Y22_2 + 2*Y11_2*Y12_2*Y21_1*Y22_1^3 + 2*Y11_2*Y12_2*Y21_1^3*Y22_1 + 2*Y11_2*Y12_1^3*Y21_1*Y22_2 + 2*Y11_2*Y12_1^3*Y21_2*Y22_1 - 4*Y12_1*Y12_2*Y21_1^3*Y21_2 - 4*Y11_1^3*Y11_2*Y22_1*Y22_2 + 2*Y11_1^3*Y12_1*Y21_2*Y22_2 + 2*Y11_1^3*Y12_2*Y21_1*Y22_2 + 2*Y11_1^3*Y12_2*Y21_2*Y22_1 - 4*Y12_1^3*Y12_2*Y21_1*Y21_2 - 12*Y12_1*Y12_2*Y21_1^3*Y22_1 - 12*Y11_1^3*Y12_1*Y22_1*Y22_2 - 4*Y11_1*Y12_1*Y21_1^3*v2q - 12*Y11_1*Y12_1^3*Y21_1*v2q - 4*Y11_1^3*Y12_1*Y21_1*v2q - 8*Y11_1*Y11_2*Y22_1^3*v2q + 4*Y11_1*Y12_2*Y21_1^3*v2q + 12*Y11_1*Y12_1^3*Y21_2*v2q + 4*Y11_2*Y12_1*Y21_1^3*v2q - 4*Y11_1^3*Y11_2*Y22_1*v2q + 4*Y11_1^3*Y12_1*Y21_2*v2q + 4*Y11_1^3*Y12_2*Y21_1*v2q - 2*Y11_2*Y12_2*Y21_1^3*v2q - 2*Y11_2*Y12_1^3*Y21_2*v2q + 4*Y11_1^3*Y11_2*Y22_2*v2q - 2*Y11_1^3*Y12_2*Y21_2*v2q - 4*Y11_1*Y12_1*Y22_1^3*v2q - 4*Y11_1*Y12_1^3*Y22_1*v2q - 12*Y11_1^3*Y12_1*Y22_1*v2q + 4*Y11_1*Y12_2*Y22_1^3*v2q + 4*Y11_1*Y12_1^3*Y22_2*v2q + 4*Y11_2*Y12_1*Y22_1^3*v2q + 4*Y11_2*Y12_1^3*Y22_1*v2q - 8*Y12_1*Y12_2*Y21_1^3*v2q + 12*Y11_1^3*Y12_1*Y22_2*v2q - 4*Y12_1^3*Y12_2*Y21_1*v2q - 2*Y11_2*Y12_2*Y22_1^3*v2q - 2*Y11_2*Y12_1^3*Y22_2*v2q - 2*Y11_1^3*Y12_2*Y22_2*v2q + 4*Y12_1^3*Y12_2*Y21_2*v2q - 12*Y11_1*Y21_1*Y22_1^3*v1q - 4*Y11_1*Y21_1^3*Y22_1*v1q - 4*Y11_1^3*Y21_1*Y22_1*v1q + 4*Y11_1*Y21_1^3*Y22_2*v1q + 12*Y11_2*Y21_1*Y22_1^3*v1q + 4*Y11_2*Y21_1^3*Y22_1*v1q - 4*Y12_1*Y21_1^3*Y21_2*v1q + 4*Y11_1^3*Y21_1*Y22_2*v1q + 4*Y11_1^3*Y21_2*Y22_1*v1q - 8*Y12_1^3*Y21_1*Y21_2*v1q - 2*Y11_2*Y21_2*Y22_1^3*v1q - 2*Y11_2*Y21_1^3*Y22_2*v1q + 4*Y12_2*Y21_1^3*Y21_2*v1q - 2*Y11_1^3*Y21_2*Y22_2*v1q - 4*Y12_1*Y21_1*Y22_1^3*v1q - 12*Y12_1*Y21_1^3*Y22_1*v1q - 4*Y12_1^3*Y21_1*Y22_1*v1q - 4*Y11_1*Y22_1^3*Y22_2*v1q + 4*Y12_1*Y21_2*Y22_1^3*v1q + 4*Y12_2*Y21_1*Y22_1^3*v1q + 12*Y12_2*Y21_1^3*Y22_1*v1q - 8*Y11_1^3*Y22_1*Y22_2*v1q + 4*Y12_1^3*Y21_1*Y22_2*v1q + 4*Y12_1^3*Y21_2*Y22_1*v1q + 4*Y11_2*Y22_1^3*Y22_2*v1q - 2*Y12_2*Y21_2*Y22_1^3*v1q - 2*Y12_2*Y21_1^3*Y22_2*v1q - 2*Y12_1^3*Y21_2*Y22_2*v1q - 2*Y11_2*Y21_1^3*v1q*v2q - 2*Y11_1^3*Y21_2*v1q*v2q + 2*Y11_2*Y22_1^3*v1q*v2q + 2*Y12_2*Y21_1^3*v1q*v2q + 2*Y11_1^3*Y22_2*v1q*v2q + 2*Y12_1^3*Y21_2*v1q*v2q - 2*Y12_2*Y22_1^3*v1q*v2q - 2*Y12_1^3*Y22_2*v1q*v2q - 2*Y11_1*Y11_2*Y12_1^2*Y21_1^2 + 6*Y11_1*Y11_2*Y12_1^2*Y22_1^2 + 2*Y11_1*Y12_1*Y12_2^2*Y21_1^2 + 2*Y11_1*Y11_2^2*Y12_1*Y22_1^2 - 10*Y11_1*Y12_1^2*Y12_2*Y21_1^2 - 10*Y11_1^2*Y11_2*Y12_1*Y22_1^2 + 6*Y11_1^2*Y12_1*Y12_2*Y21_1^2 - 2*Y11_2*Y12_1^2*Y12_2*Y21_1^2 - 2*Y11_1^2*Y11_2*Y12_2*Y22_1^2 - 2*Y11_1^2*Y12_1*Y12_2*Y22_1^2 + 6*Y11_1*Y11_2*Y21_1^2*Y22_1^2 + 6*Y11_1^2*Y12_1^2*Y21_1*Y21_2 - 20*Y11_1*Y12_1*Y21_1^2*Y22_1^2 - 20*Y11_1^2*Y12_1^2*Y21_1*Y22_1 + 12*Y11_1*Y12_2*Y21_1^2*Y22_1^2 + 12*Y11_2*Y12_1*Y21_1^2*Y22_1^2 + 12*Y11_1^2*Y12_1^2*Y21_1*Y22_2 + 12*Y11_1^2*Y12_1^2*Y21_2*Y22_1 - 4*Y11_2*Y12_2*Y21_1^2*Y22_1^2 - 4*Y11_1^2*Y12_1^2*Y21_2*Y22_2 + 6*Y12_1*Y12_2*Y21_1^2*Y22_1^2 + 6*Y11_1^2*Y12_1^2*Y22_1*Y22_2 - 2*Y11_1^2*Y21_1*Y21_2*Y22_1^2 + 2*Y11_1^2*Y21_1*Y22_1*Y22_2^2 - 10*Y11_1^2*Y21_1*Y22_1^2*Y22_2 + 6*Y11_1^2*Y21_1^2*Y22_1*Y22_2 + 6*Y12_1^2*Y21_1*Y21_2*Y22_1^2 + 2*Y12_1^2*Y21_1*Y21_2^2*Y22_1 - 10*Y12_1^2*Y21_1^2*Y21_2*Y22_1 - 2*Y11_1^2*Y21_2*Y22_1^2*Y22_2 - 2*Y12_1^2*Y21_1^2*Y21_2*Y22_2 - 2*Y12_1^2*Y21_1^2*Y22_1*Y22_2 - 2*Y11_1*Y11_2*Y21_1^2*v1q^2 + 2*Y11_1*Y11_2*Y21_1^2*v2q^2 - 8*Y11_1*Y12_1^2*Y21_1^2*v1q + 4*Y11_1^2*Y12_1*Y21_1^2*v1q - 2*Y11_1*Y11_2*Y22_1^2*v1q^2 + 2*Y11_1*Y12_1*Y21_2^2*v1q^2 + 2*Y11_1*Y12_2*Y21_1^2*v1q^2 - 2*Y11_1*Y11_2^2*Y22_1^2*v1q - 4*Y11_1*Y12_1^2*Y21_2^2*v1q + 2*Y11_2*Y12_1*Y21_1^2*v1q^2 - 4*Y11_2*Y12_1^2*Y21_1^2*v1q + 2*Y11_1^2*Y12_1*Y21_2^2*v1q - 4*Y11_1^2*Y12_2*Y21_1^2*v1q + 12*Y11_1^2*Y12_1^2*Y21_1*v2q - 2*Y11_2^2*Y12_1*Y21_1^2*v1q + 2*Y11_1*Y11_2*Y22_1^2*v2q^2 - 2*Y11_1*Y12_1*Y21_2^2*v2q^2 - 2*Y11_1*Y12_2*Y21_1^2*v2q^2 - 2*Y11_2*Y12_1*Y21_1^2*v2q^2 - 2*Y11_2*Y12_2*Y21_1^2*v1q^2 - 12*Y11_1^2*Y12_1^2*Y21_2*v2q + 2*Y11_1^2*Y12_2^2*Y21_1*v2q - 2*Y11_2^2*Y12_1^2*Y21_1*v2q + 2*Y11_2*Y12_2*Y21_1^2*v2q^2 + 4*Y11_1*Y12_1^2*Y22_1^2*v1q - 8*Y11_1^2*Y12_1*Y22_1^2*v1q + 2*Y11_1*Y12_1*Y22_2^2*v1q^2 + 2*Y11_1*Y12_2*Y22_1^2*v1q^2 + 2*Y11_1*Y12_1^2*Y22_2^2*v1q - 2*Y11_1*Y12_2^2*Y22_1^2*v1q + 2*Y11_2*Y12_1*Y22_1^2*v1q^2 - 4*Y11_2*Y12_1^2*Y22_1^2*v1q - 2*Y12_1*Y12_2*Y21_1^2*v1q^2 - 2*Y12_1*Y12_2^2*Y21_1^2*v1q - 4*Y11_1^2*Y12_1*Y22_2^2*v1q - 4*Y11_1^2*Y12_2*Y22_1^2*v1q + 12*Y11_1^2*Y12_1^2*Y22_1*v2q - 2*Y11_1*Y12_1*Y22_2^2*v2q^2 - 2*Y11_1*Y12_2*Y22_1^2*v2q^2 - 2*Y11_2*Y12_1*Y22_1^2*v2q^2 - 2*Y11_2*Y12_2*Y22_1^2*v1q^2 + 2*Y12_1*Y12_2*Y21_1^2*v2q^2 - 12*Y11_1^2*Y12_1^2*Y22_2*v2q - 2*Y11_1^2*Y12_2^2*Y22_1*v2q + 2*Y11_2^2*Y12_1^2*Y22_1*v2q + 2*Y11_2*Y12_2*Y22_1^2*v2q^2 - 2*Y12_1*Y12_2*Y22_1^2*v1q^2 + 2*Y12_1*Y12_2*Y22_1^2*v2q^2 + 2*Y11_1^2*Y21_1*Y21_2*v1q^2 - 2*Y11_1^2*Y21_1*Y21_2*v2q^2 + 12*Y11_1*Y21_1^2*Y22_1^2*v1q + 2*Y11_1*Y21_1^2*Y22_2^2*v1q - 2*Y11_1*Y21_2^2*Y22_1^2*v1q - 12*Y11_2*Y21_1^2*Y22_1^2*v1q - 2*Y11_1^2*Y21_1*Y22_2*v1q^2 - 8*Y11_1^2*Y21_1*Y22_1^2*v2q - 2*Y11_1^2*Y21_2*Y22_1*v1q^2 + 4*Y11_1^2*Y21_1^2*Y22_1*v2q - 2*Y11_2^2*Y21_1*Y22_1*v1q^2 + 2*Y12_1^2*Y21_1*Y21_2*v1q^2 + 2*Y11_1^2*Y21_1*Y22_2*v2q^2 + 2*Y11_1^2*Y21_2*Y22_1*v2q^2 + 2*Y11_1^2*Y21_2*Y22_2*v1q^2 - 4*Y11_1^2*Y21_2*Y22_1^2*v2q - 4*Y11_1^2*Y21_1^2*Y22_2*v2q - 2*Y11_1^2*Y21_2^2*Y22_1*v2q + 2*Y11_2^2*Y21_1*Y22_1*v2q^2 - 4*Y11_2^2*Y21_1*Y22_1^2*v2q + 2*Y11_2^2*Y21_1^2*Y22_1*v2q - 2*Y12_1^2*Y21_1*Y21_2*v2q^2 - 2*Y12_1^2*Y21_1*Y21_2^2*v2q - 2*Y11_1^2*Y21_2*Y22_2*v2q^2 + 12*Y12_1*Y21_1^2*Y22_1^2*v1q - 2*Y12_1*Y21_1^2*Y22_2^2*v1q + 2*Y12_1*Y21_2^2*Y22_1^2*v1q - 12*Y12_2*Y21_1^2*Y22_1^2*v1q + 2*Y11_1^2*Y22_1*Y22_2*v1q^2 - 2*Y12_1^2*Y21_1*Y22_2*v1q^2 + 4*Y12_1^2*Y21_1*Y22_1^2*v2q - 2*Y12_1^2*Y21_2*Y22_1*v1q^2 - 8*Y12_1^2*Y21_1^2*Y22_1*v2q - 2*Y12_2^2*Y21_1*Y22_1*v1q^2 - 2*Y11_1^2*Y22_1*Y22_2*v2q^2 - 2*Y11_1^2*Y22_1*Y22_2^2*v2q + 2*Y12_1^2*Y21_1*Y22_2*v2q^2 - 2*Y12_1^2*Y21_1*Y22_2^2*v2q + 2*Y12_1^2*Y21_2*Y22_1*v2q^2 + 2*Y12_1^2*Y21_2*Y22_2*v1q^2 - 4*Y12_1^2*Y21_2*Y22_1^2*v2q - 4*Y12_1^2*Y21_1^2*Y22_2*v2q + 2*Y12_2^2*Y21_1*Y22_1*v2q^2 + 2*Y12_2^2*Y21_1*Y22_1^2*v2q - 4*Y12_2^2*Y21_1^2*Y22_1*v2q - 2*Y12_1^2*Y21_2*Y22_2*v2q^2 + 2*Y12_1^2*Y22_1*Y22_2*v1q^2 - 2*Y12_1^2*Y22_1*Y22_2*v2q^2 + 8*Y11_1*Y11_2*Y12_1^2*Y21_1*Y22_1 - 2*Y11_1*Y11_2^2*Y12_1*Y21_1*Y22_1 - 2*Y11_1^2*Y11_2*Y12_1*Y21_1*Y22_1 - 4*Y11_1*Y11_2*Y12_1^2*Y21_1*Y22_2 - 4*Y11_1*Y11_2*Y12_1^2*Y21_2*Y22_1 + 8*Y11_1*Y12_1^2*Y12_2*Y21_1*Y21_2 + 2*Y11_1^2*Y11_2*Y12_1*Y21_1*Y22_2 + 2*Y11_1^2*Y11_2*Y12_1*Y21_2*Y22_1 + 2*Y11_1^2*Y11_2*Y12_2*Y21_1*Y22_1 - 4*Y11_1^2*Y12_1*Y12_2*Y21_1*Y21_2 - 2*Y11_1*Y12_1*Y12_2^2*Y21_1*Y22_1 - 2*Y11_1*Y12_1^2*Y12_2*Y21_1*Y22_1 + 8*Y11_1^2*Y12_1*Y12_2*Y21_1*Y22_1 - 4*Y11_1*Y11_2*Y12_1^2*Y22_1*Y22_2 + 2*Y11_1*Y12_1^2*Y12_2*Y21_1*Y22_2 + 2*Y11_1*Y12_1^2*Y12_2*Y21_2*Y22_1 + 2*Y11_2*Y12_1^2*Y12_2*Y21_1*Y22_1 + 8*Y11_1^2*Y11_2*Y12_1*Y22_1*Y22_2 - 4*Y11_1^2*Y12_1*Y12_2*Y21_1*Y22_2 - 4*Y11_1^2*Y12_1*Y12_2*Y21_2*Y22_1 + 8*Y11_1*Y12_1*Y21_1*Y21_2*Y22_1^2 - 2*Y11_1*Y12_1*Y21_1*Y21_2^2*Y22_1 - 2*Y11_1*Y12_1*Y21_1^2*Y21_2*Y22_1 + 8*Y11_1*Y11_2*Y21_1*Y22_1^2*Y22_2 - 4*Y11_1*Y11_2*Y21_1^2*Y22_1*Y22_2 + 2*Y11_1*Y12_1*Y21_1^2*Y21_2*Y22_2 - 4*Y11_1*Y12_2*Y21_1*Y21_2*Y22_1^2 + 2*Y11_1*Y12_2*Y21_1^2*Y21_2*Y22_1 - 4*Y11_2*Y12_1*Y21_1*Y21_2*Y22_1^2 + 2*Y11_2*Y12_1*Y21_1^2*Y21_2*Y22_1 - 2*Y11_1*Y12_1*Y21_1*Y22_1*Y22_2^2 - 2*Y11_1*Y12_1*Y21_1*Y22_1^2*Y22_2 + 8*Y11_1*Y12_1*Y21_1^2*Y22_1*Y22_2 + 2*Y11_1*Y12_1*Y21_2*Y22_1^2*Y22_2 + 2*Y11_1*Y12_2*Y21_1*Y22_1^2*Y22_2 - 4*Y11_1*Y12_2*Y21_1^2*Y22_1*Y22_2 + 2*Y11_2*Y12_1*Y21_1*Y22_1^2*Y22_2 - 4*Y11_2*Y12_1*Y21_1^2*Y22_1*Y22_2 - 4*Y12_1*Y12_2*Y21_1*Y21_2*Y22_1^2 + 8*Y12_1*Y12_2*Y21_1^2*Y21_2*Y22_1 + 4*Y11_1*Y11_2*Y12_1*Y21_1^2*v1q + 2*Y11_1*Y11_2^2*Y12_1*Y21_1*v2q + 4*Y11_1*Y11_2*Y12_1^2*Y21_2*v2q - 2*Y11_1^2*Y11_2*Y12_1*Y21_2*v2q - 2*Y11_1^2*Y11_2*Y12_2*Y21_1*v2q + 4*Y11_1*Y11_2*Y12_1*Y22_1^2*v1q + 4*Y11_1*Y12_1*Y12_2*Y21_1^2*v1q + 4*Y11_1*Y11_2*Y12_2*Y22_1^2*v1q - 12*Y11_1*Y11_2*Y12_1^2*Y22_1*v2q - 2*Y11_1*Y12_1*Y12_2^2*Y21_1*v2q - 2*Y11_1*Y11_2^2*Y12_1*Y22_1*v2q + 12*Y11_1*Y12_1^2*Y12_2*Y21_1*v2q + 4*Y11_2*Y12_1*Y12_2*Y21_1^2*v1q + 12*Y11_1^2*Y11_2*Y12_1*Y22_1*v2q - 12*Y11_1^2*Y12_1*Y12_2*Y21_1*v2q + 8*Y11_1*Y11_2*Y12_1^2*Y22_2*v2q - 10*Y11_1*Y12_1^2*Y12_2*Y21_2*v2q + 2*Y11_2*Y12_1^2*Y12_2*Y21_1*v2q - 10*Y11_1^2*Y11_2*Y12_1*Y22_2*v2q + 2*Y11_1^2*Y11_2*Y12_2*Y22_1*v2q + 8*Y11_1^2*Y12_1*Y12_2*Y21_2*v2q + 4*Y11_1*Y12_1*Y12_2*Y22_1^2*v1q + 2*Y11_1*Y12_1*Y12_2^2*Y22_1*v2q - 2*Y11_1*Y12_1^2*Y12_2*Y22_2*v2q - 2*Y11_2*Y12_1^2*Y12_2*Y22_1*v2q + 4*Y11_1^2*Y12_1*Y12_2*Y22_2*v2q + 4*Y11_1*Y11_2*Y21_1*Y22_1*v1q^2 - 4*Y11_1*Y12_1*Y21_1*Y21_2*v1q^2 + 2*Y11_1*Y11_2^2*Y21_1*Y22_1*v1q + 16*Y11_1*Y12_1^2*Y21_1*Y21_2*v1q - 8*Y11_1^2*Y12_1*Y21_1*Y21_2*v1q - 4*Y11_1*Y11_2*Y21_1*Y22_1*v2q^2 + 16*Y11_1*Y11_2*Y21_1*Y22_1^2*v2q - 8*Y11_1*Y11_2*Y21_1^2*Y22_1*v2q + 4*Y11_1*Y12_1*Y21_1*Y21_2*v2q^2 + 2*Y11_1*Y12_1*Y21_1*Y21_2^2*v2q - 2*Y11_1^2*Y11_2*Y21_1*Y22_2*v1q - 2*Y11_1^2*Y11_2*Y21_2*Y22_1*v1q + 4*Y11_1^2*Y12_2*Y21_1*Y21_2*v1q + 4*Y11_1*Y11_2*Y21_1^2*Y22_2*v2q - 2*Y11_1*Y12_2*Y21_1^2*Y21_2*v2q - 2*Y11_2*Y12_1*Y21_1^2*Y21_2*v2q + 4*Y11_1*Y12_1^2*Y21_1*Y22_1*v1q + 4*Y11_1^2*Y12_1*Y21_1*Y22_1*v1q + 4*Y11_1*Y12_1*Y21_1*Y22_2*v1q^2 + 4*Y11_1*Y12_1*Y21_1*Y22_1^2*v2q + 4*Y11_1*Y12_1*Y21_2*Y22_1*v1q^2 + 4*Y11_1*Y12_1*Y21_1^2*Y22_1*v2q - 4*Y11_1*Y12_2*Y21_1*Y22_1*v1q^2 - 4*Y11_1*Y12_1^2*Y21_1*Y22_2*v1q - 4*Y11_1*Y12_1^2*Y21_2*Y22_1*v1q + 2*Y11_1*Y12_2^2*Y21_1*Y22_1*v1q - 4*Y11_2*Y12_1*Y21_1*Y22_1*v1q^2 + 8*Y11_2*Y12_1^2*Y21_1*Y22_1*v1q - 4*Y11_1^2*Y12_1*Y21_1*Y22_2*v1q - 4*Y11_1^2*Y12_1*Y21_2*Y22_1*v1q + 8*Y11_1^2*Y12_2*Y21_1*Y22_1*v1q + 2*Y11_2^2*Y12_1*Y21_1*Y22_1*v1q - 4*Y11_1*Y12_1*Y21_1*Y22_2*v2q^2 + 2*Y11_1*Y12_1*Y21_1*Y22_2^2*v2q - 4*Y11_1*Y12_1*Y21_2*Y22_1*v2q^2 - 4*Y11_1*Y12_1*Y21_2*Y22_2*v1q^2 + 8*Y11_1*Y12_1*Y21_2*Y22_1^2*v2q + 8*Y11_1*Y12_1*Y21_1^2*Y22_2*v2q + 2*Y11_1*Y12_1*Y21_2^2*Y22_1*v2q + 4*Y11_1*Y12_2*Y21_1*Y22_1*v2q^2 - 4*Y11_1*Y12_2*Y21_1*Y22_1^2*v2q - 4*Y11_1*Y12_2*Y21_1^2*Y22_1*v2q + 2*Y11_1*Y12_1^2*Y21_2*Y22_2*v1q + 4*Y11_2*Y12_1*Y21_1*Y22_1*v2q^2 - 4*Y11_2*Y12_1*Y21_1*Y22_1^2*v2q - 4*Y11_2*Y12_1*Y21_1^2*Y22_1*v2q + 4*Y11_2*Y12_2*Y21_1*Y22_1*v1q^2 - 2*Y11_2*Y12_1^2*Y21_1*Y22_2*v1q - 2*Y11_2*Y12_1^2*Y21_2*Y22_1*v1q + 4*Y11_1^2*Y11_2*Y22_1*Y22_2*v1q + 2*Y11_1^2*Y12_1*Y21_2*Y22_2*v1q - 2*Y11_1^2*Y12_2*Y21_1*Y22_2*v1q - 2*Y11_1^2*Y12_2*Y21_2*Y22_1*v1q + 4*Y12_1^2*Y12_2*Y21_1*Y21_2*v1q + 4*Y11_1*Y11_2*Y22_1^2*Y22_2*v2q + 4*Y11_1*Y12_1*Y21_2*Y22_2*v2q^2 - 2*Y11_1*Y12_2*Y21_2*Y22_1^2*v2q - 2*Y11_1*Y12_2*Y21_1^2*Y22_2*v2q - 2*Y11_2*Y12_1*Y21_2*Y22_1^2*v2q - 2*Y11_2*Y12_1*Y21_1^2*Y22_2*v2q - 4*Y11_2*Y12_2*Y21_1*Y22_1*v2q^2 + 2*Y11_2*Y12_2*Y21_1*Y22_1^2*v2q + 2*Y11_2*Y12_2*Y21_1^2*Y22_1*v2q + 4*Y12_1*Y12_2*Y21_1^2*Y21_2*v2q - 4*Y11_1*Y12_1*Y22_1*Y22_2*v1q^2 - 8*Y11_1*Y12_1^2*Y22_1*Y22_2*v1q + 4*Y12_1*Y12_2*Y21_1*Y22_1*v1q^2 + 2*Y12_1*Y12_2^2*Y21_1*Y22_1*v1q + 16*Y11_1^2*Y12_1*Y22_1*Y22_2*v1q + 4*Y11_1*Y12_1*Y22_1*Y22_2*v2q^2 + 2*Y11_1*Y12_1*Y22_1*Y22_2^2*v2q + 4*Y11_2*Y12_1^2*Y22_1*Y22_2*v1q - 4*Y12_1*Y12_2*Y21_1*Y22_1*v2q^2 - 8*Y12_1*Y12_2*Y21_1*Y22_1^2*v2q + 16*Y12_1*Y12_2*Y21_1^2*Y22_1*v2q - 2*Y12_1^2*Y12_2*Y21_1*Y22_2*v1q - 2*Y12_1^2*Y12_2*Y21_2*Y22_1*v1q - 2*Y11_1*Y12_2*Y22_1^2*Y22_2*v2q - 2*Y11_2*Y12_1*Y22_1^2*Y22_2*v2q + 4*Y12_1*Y12_2*Y21_2*Y22_1^2*v2q + 2*Y11_1*Y21_1*Y21_2^2*Y22_1*v1q - 2*Y11_1*Y21_1^2*Y21_2*Y22_2*v1q + 4*Y11_2*Y21_1*Y21_2*Y22_1^2*v1q - 2*Y11_2*Y21_1^2*Y21_2*Y22_1*v1q + 4*Y11_1^2*Y21_1*Y21_2*Y22_1*v2q - 2*Y11_1*Y21_1*Y22_1*Y22_2^2*v1q + 12*Y11_1*Y21_1*Y22_1^2*Y22_2*v1q - 12*Y11_1*Y21_1^2*Y22_1*Y22_2*v1q - 12*Y12_1*Y21_1*Y21_2*Y22_1^2*v1q - 2*Y12_1*Y21_1*Y21_2^2*Y22_1*v1q + 12*Y12_1*Y21_1^2*Y21_2*Y22_1*v1q + 2*Y11_1*Y21_2*Y22_1^2*Y22_2*v1q - 10*Y11_2*Y21_1*Y22_1^2*Y22_2*v1q + 8*Y11_2*Y21_1^2*Y22_1*Y22_2*v1q + 2*Y12_1*Y21_1^2*Y21_2*Y22_2*v1q + 8*Y12_2*Y21_1*Y21_2*Y22_1^2*v1q - 10*Y12_2*Y21_1^2*Y21_2*Y22_1*v1q + 4*Y11_1^2*Y21_1*Y22_1*Y22_2*v2q + 4*Y12_1^2*Y21_1*Y21_2*Y22_1*v2q + 4*Y11_1^2*Y21_2*Y22_1*Y22_2*v2q + 4*Y12_1^2*Y21_1*Y21_2*Y22_2*v2q + 2*Y12_1*Y21_1*Y22_1*Y22_2^2*v1q - 2*Y12_1*Y21_2*Y22_1^2*Y22_2*v1q - 2*Y12_2*Y21_1*Y22_1^2*Y22_2*v1q + 4*Y12_2*Y21_1^2*Y22_1*Y22_2*v1q + 4*Y12_1^2*Y21_1*Y22_1*Y22_2*v2q - 2*Y11_1*Y11_2^2*Y21_1*v1q*v2q + 2*Y11_1^2*Y11_2*Y21_1*v1q*v2q + 2*Y11_1^2*Y11_2*Y21_2*v1q*v2q + 2*Y11_1*Y11_2^2*Y22_1*v1q*v2q - 6*Y11_1*Y12_1^2*Y21_2*v1q*v2q - 2*Y11_1*Y12_2^2*Y21_1*v1q*v2q + 2*Y11_2*Y12_1^2*Y21_1*v1q*v2q - 2*Y11_1^2*Y11_2*Y22_1*v1q*v2q + 6*Y11_1^2*Y12_1*Y21_2*v1q*v2q - 2*Y11_1^2*Y12_2*Y21_1*v1q*v2q + 2*Y11_2^2*Y12_1*Y21_1*v1q*v2q + 2*Y11_2*Y12_1^2*Y21_2*v1q*v2q - 2*Y11_1^2*Y11_2*Y22_2*v1q*v2q - 2*Y11_1^2*Y12_2*Y21_2*v1q*v2q + 6*Y11_1*Y12_1^2*Y22_2*v1q*v2q + 2*Y11_1*Y12_2^2*Y22_1*v1q*v2q - 2*Y11_2*Y12_1^2*Y22_1*v1q*v2q + 2*Y12_1*Y12_2^2*Y21_1*v1q*v2q - 6*Y11_1^2*Y12_1*Y22_2*v1q*v2q + 2*Y11_1^2*Y12_2*Y22_1*v1q*v2q - 2*Y11_2^2*Y12_1*Y22_1*v1q*v2q - 2*Y12_1^2*Y12_2*Y21_1*v1q*v2q - 2*Y11_2*Y12_1^2*Y22_2*v1q*v2q + 2*Y11_1^2*Y12_2*Y22_2*v1q*v2q - 2*Y12_1^2*Y12_2*Y21_2*v1q*v2q - 2*Y12_1*Y12_2^2*Y22_1*v1q*v2q + 2*Y12_1^2*Y12_2*Y22_1*v1q*v2q + 2*Y12_1^2*Y12_2*Y22_2*v1q*v2q - 2*Y11_1*Y21_1*Y21_2^2*v1q*v2q + 2*Y11_1*Y21_1^2*Y21_2*v1q*v2q + 2*Y11_2*Y21_1^2*Y21_2*v1q*v2q - 2*Y11_1*Y21_1*Y22_2^2*v1q*v2q + 2*Y11_1*Y21_2*Y22_1^2*v1q*v2q - 2*Y11_1*Y21_1^2*Y22_2*v1q*v2q + 2*Y11_1*Y21_2^2*Y22_1*v1q*v2q - 6*Y11_2*Y21_1*Y22_1^2*v1q*v2q + 6*Y11_2*Y21_1^2*Y22_1*v1q*v2q + 2*Y12_1*Y21_1*Y21_2^2*v1q*v2q - 2*Y12_1*Y21_1^2*Y21_2*v1q*v2q + 2*Y11_2*Y21_2*Y22_1^2*v1q*v2q - 2*Y11_2*Y21_1^2*Y22_2*v1q*v2q - 2*Y12_2*Y21_1^2*Y21_2*v1q*v2q + 2*Y11_1*Y22_1*Y22_2^2*v1q*v2q - 2*Y11_1*Y22_1^2*Y22_2*v1q*v2q + 2*Y12_1*Y21_1*Y22_2^2*v1q*v2q - 2*Y12_1*Y21_2*Y22_1^2*v1q*v2q + 2*Y12_1*Y21_1^2*Y22_2*v1q*v2q - 2*Y12_1*Y21_2^2*Y22_1*v1q*v2q + 6*Y12_2*Y21_1*Y22_1^2*v1q*v2q - 6*Y12_2*Y21_1^2*Y22_1*v1q*v2q - 2*Y11_2*Y22_1^2*Y22_2*v1q*v2q - 2*Y12_2*Y21_2*Y22_1^2*v1q*v2q + 2*Y12_2*Y21_1^2*Y22_2*v1q*v2q - 2*Y12_1*Y22_1*Y22_2^2*v1q*v2q + 2*Y12_1*Y22_1^2*Y22_2*v1q*v2q + 2*Y12_2*Y22_1^2*Y22_2*v1q*v2q - 8*Y11_1*Y11_2*Y12_1*Y21_1*Y22_1*v1q + 4*Y11_1*Y11_2*Y12_1*Y21_1*Y22_2*v1q + 4*Y11_1*Y11_2*Y12_1*Y21_2*Y22_1*v1q - 4*Y11_1*Y11_2*Y12_2*Y21_1*Y22_1*v1q - 8*Y11_1*Y12_1*Y12_2*Y21_1*Y21_2*v1q - 8*Y11_1*Y12_1*Y12_2*Y21_1*Y22_1*v1q - 8*Y11_1*Y11_2*Y12_1*Y22_1*Y22_2*v1q + 4*Y11_1*Y12_1*Y12_2*Y21_1*Y22_2*v1q + 4*Y11_1*Y12_1*Y12_2*Y21_2*Y22_1*v1q - 4*Y11_2*Y12_1*Y12_2*Y21_1*Y22_1*v1q - 8*Y11_1*Y12_1*Y21_1*Y21_2*Y22_1*v2q - 8*Y11_1*Y11_2*Y21_1*Y22_1*Y22_2*v2q - 4*Y11_1*Y12_1*Y21_1*Y21_2*Y22_2*v2q + 4*Y11_1*Y12_2*Y21_1*Y21_2*Y22_1*v2q + 4*Y11_2*Y12_1*Y21_1*Y21_2*Y22_1*v2q - 8*Y11_1*Y12_1*Y21_1*Y22_1*Y22_2*v2q - 4*Y11_1*Y12_1*Y21_2*Y22_1*Y22_2*v2q + 4*Y11_1*Y12_2*Y21_1*Y22_1*Y22_2*v2q + 4*Y11_2*Y12_1*Y21_1*Y22_1*Y22_2*v2q - 8*Y12_1*Y12_2*Y21_1*Y21_2*Y22_1*v2q - 4*Y11_1*Y11_2*Y12_1*Y21_1*v1q*v2q - 4*Y11_1*Y11_2*Y12_1*Y21_2*v1q*v2q + 4*Y11_1*Y11_2*Y12_2*Y21_1*v1q*v2q + 4*Y11_1*Y11_2*Y12_1*Y22_1*v1q*v2q + 4*Y11_1*Y12_1*Y12_2*Y21_1*v1q*v2q + 4*Y11_1*Y11_2*Y12_1*Y22_2*v1q*v2q - 4*Y11_1*Y11_2*Y12_2*Y22_1*v1q*v2q + 4*Y11_1*Y12_1*Y12_2*Y21_2*v1q*v2q - 4*Y11_2*Y12_1*Y12_2*Y21_1*v1q*v2q - 4*Y11_1*Y12_1*Y12_2*Y22_1*v1q*v2q - 4*Y11_1*Y12_1*Y12_2*Y22_2*v1q*v2q + 4*Y11_2*Y12_1*Y12_2*Y22_1*v1q*v2q - 4*Y11_1*Y21_1*Y21_2*Y22_1*v1q*v2q + 4*Y11_1*Y21_1*Y21_2*Y22_2*v1q*v2q - 4*Y11_2*Y21_1*Y21_2*Y22_1*v1q*v2q + 4*Y11_1*Y21_1*Y22_1*Y22_2*v1q*v2q + 4*Y12_1*Y21_1*Y21_2*Y22_1*v1q*v2q - 4*Y11_1*Y21_2*Y22_1*Y22_2*v1q*v2q + 4*Y11_2*Y21_1*Y22_1*Y22_2*v1q*v2q - 4*Y12_1*Y21_1*Y21_2*Y22_2*v1q*v2q + 4*Y12_2*Y21_1*Y21_2*Y22_1*v1q*v2q - 4*Y12_1*Y21_1*Y22_1*Y22_2*v1q*v2q + 4*Y12_1*Y21_2*Y22_1*Y22_2*v1q*v2q - 4*Y12_2*Y21_1*Y22_1*Y22_2*v1q*v2q
Walter Roberson
on 19 Mar 2022
z0c = (Y11_1*Y22_1 - Y12_1*Y21_1 - Y11_1*v2q + Y12_1*v2q + Y21_1*v1q - Y22_1*v1q)*(Y11_1*Y22_1^3 - Y12_1*Y21_1^3 + Y11_1^3*Y22_1 - Y12_1^3*Y21_1 - Y11_2*Y22_1^3 + Y12_2*Y21_1^3 - Y11_1^3*Y22_2 + Y12_1^3*Y21_2 + 2*Y11_1*Y12_1^2*Y21_1 - Y11_1^2*Y12_1*Y21_1 - 2*Y11_1*Y12_1^2*Y21_2 + Y11_2*Y12_1^2*Y21_1 + Y11_1^2*Y12_1*Y21_2 + Y11_1^2*Y12_2*Y21_1 + Y11_1*Y12_1^2*Y22_1 - 2*Y11_1^2*Y12_1*Y22_1 - Y11_1*Y12_1^2*Y22_2 - Y11_2*Y12_1^2*Y22_1 + 2*Y11_1^2*Y12_1*Y22_2 - Y11_1^2*Y12_2*Y22_1 - 2*Y11_1*Y21_1*Y22_1^2 + Y11_1*Y21_1^2*Y22_1 - Y11_1*Y21_2*Y22_1^2 - Y11_1*Y21_1^2*Y22_2 + 2*Y11_2*Y21_1*Y22_1^2 - Y11_2*Y21_1^2*Y22_1 - Y12_1*Y21_1*Y22_1^2 + 2*Y12_1*Y21_1^2*Y22_1 + Y12_1*Y21_2*Y22_1^2 + Y12_1*Y21_1^2*Y22_2 + Y12_2*Y21_1*Y22_1^2 - 2*Y12_2*Y21_1^2*Y22_1 - Y11_1^2*Y21_2*v1q + Y11_2*Y21_1^2*v2q + Y11_1^2*Y22_2*v1q - Y12_1^2*Y21_2*v1q + Y11_2*Y22_1^2*v2q - Y12_2*Y21_1^2*v2q + Y12_1^2*Y22_2*v1q - Y12_2*Y22_1^2*v2q - Y11_1*Y11_2*Y12_1*Y21_1 + Y11_1*Y11_2*Y12_1*Y22_1 - Y11_1*Y12_1*Y12_2*Y21_1 + Y11_1*Y12_1*Y12_2*Y22_1 + Y11_1*Y21_1*Y21_2*Y22_1 + Y11_1*Y21_1*Y22_1*Y22_2 - Y12_1*Y21_1*Y21_2*Y22_1 - Y12_1*Y21_1*Y22_1*Y22_2 + Y11_1*Y11_2*Y21_1*v1q - Y11_1*Y11_2*Y22_1*v1q + 2*Y11_1*Y12_1*Y21_2*v1q - Y11_1*Y12_2*Y21_1*v1q - Y11_2*Y12_1*Y21_1*v1q - 2*Y11_1*Y12_1*Y22_2*v1q + Y11_1*Y12_2*Y22_1*v1q + Y11_2*Y12_1*Y22_1*v1q + Y12_1*Y12_2*Y21_1*v1q - Y12_1*Y12_2*Y22_1*v1q - Y11_1*Y21_1*Y21_2*v2q + Y11_1*Y21_1*Y22_2*v2q + Y11_1*Y21_2*Y22_1*v2q - 2*Y11_2*Y21_1*Y22_1*v2q + Y12_1*Y21_1*Y21_2*v2q - Y11_1*Y22_1*Y22_2*v2q - Y12_1*Y21_1*Y22_2*v2q - Y12_1*Y21_2*Y22_1*v2q + 2*Y12_2*Y21_1*Y22_1*v2q + Y12_1*Y22_1*Y22_2*v2q)
Chun Wai KO
on 19 Mar 2022
Your code is quite complicated to me.. do you think that is there any easier way to perform the inverse interpolation? What I want to do is like f(x,y) = z Given z, I want to find x and y
Walter Roberson
on 19 Mar 2022
Why do you have the infinite loop of calculating the same thing over and over again?
When I test, my system takes only a few seconds per iteration, indefinitely.
options = optimoptions(@patternsearch, ...
'Display', 'none', ...
'InitialMeshSize', 1, ...
'MaxFunctionEvaluations', 1000, ...
'MaxIterations', 1000, ...
'TimeLimit', 10, ...
'MeshTolerance', 1.0000e-16, ...
'StepTolerance', 1e-16', ...
'UseParallel', true, ...
'UseCompletePoll', true, ...
'UseVectorized', false );
%v1q = 2.19590225245865; v2q = 2.66662804271614;
%v1q = 2.99624019270884;
%v2q = 2.08559296236809;
axes('xlim',[1 5 ], 'ylim',[1 5], 'zlim', [1 5])
view(3)
grid on
hold on
xlabel('x')
ylabel('y')
zlabel('z')
while true
v1q = rand() * 5;
v2q = rand() * 5;
solve = @(currentPandO)Untitled3(v1q,v2q,currentPandO);
A = [];
b = [];
Aeq = [];
beq = [];
lb = [1,1];
ub = [4,4];
nonlcon = [];
solution = patternsearch(solve, [1,1],A,b,Aeq,beq,lb,ub,nonlcon,options);
disp(v1q);
disp(v2q);
disp(solution)
h2 = plot3(solution(1),solution(2),1,'.','color','red','MarkerSize',20);
drawnow()
end
function [out]= Untitled3(v1q,v2q,currentPandO)
%vertical coil
y1 = [3.24272914125766,2.83593179463819,2.44752064552654,2.05924203430804;
3.56186924377538,2.99624019270884,2.55850166648457,2.25064722251426;
3.57300859267674,2.90086878942227,2.48641813065078,2.19590225245865;
2.90037026793495,2.46229273094783,2.24971289753428,2.07094182706089];
%horizontal coil
y2 = [1.47213024926091,1.86376922289994,1.96744782910615,1.98366932726146;
1.65117827228894,2.08559296236809,2.31269691938603,2.28466504171977;
2.00030563764438,2.54342676501796,2.71125667257210,2.66662804271614;
2.84018880472288,3.15941792534719,3.21539885401633,3.12483330616169];
x = currentPandO(1);
y = currentPandO(2);
out = abs(interp2(y1,x,y) - v1q) + abs(interp2(y2,x,y) - v2q) ;
end
Chun Wai KO
on 20 Mar 2022
Few seconds are not suitable for my application.
The v1q and v2q are not a constant in real practice. They actually keep changing. My program is just a demonstration to show the output.
We may not use rand for v1q and v2q to test the program. Because I am trying to find the array index(x and y; column and row) by comparing the v1q with y1 And v2q with y2
y1 and y2 are constant table data But v1q and v2q will keep varying I have to find the varying x and y in real time
The TimeLimit can only be around 0.1s because it is a real time tracking system, the update rate should be very fast so that I can track the position.
Chun Wai KO
on 20 Mar 2022
I am actually interested in your look up table method.
Because I read a paper about tracking system and they used look up table to solve the problem.
They used LabView to generate the look up table instead of Matlab.
I am just curious that how to implement a look up table or inverse interpolation in matlab (1D,2D,3D) so that I can find x and y (array index) by matching the v1q with y1 and v2q with y2
Chun Wai KO
on 20 Mar 2022
What I want to do is like “contour” function Find the x and y coordinate from f(x,y) (with interpolation)
But contour is just for 2D I need a 3D model.
See Also
Categories
Find more on Matrices and Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!An Error Occurred
Unable to complete the action because of changes made to the page. Reload the page to see its updated state.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom(English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)