fivePointAlgorithm.cpp

Go to the documentation of this file.
00001 
00015 #include <dlrComputerVision/fivePointAlgorithm.h>
00016 #include <dlrGeometry/utilities3D.h>
00017 
00018 namespace geom = dlr::geometry;
00019 namespace num = dlr::numeric;
00020 
00021 namespace dlr {
00022 
00023   namespace computerVision {
00024 
00025 
00026     double
00027     checkEpipolarConstraint(dlr::numeric::Array2D<double> const& fundamentalMx,
00028                             dlr::numeric::Vector2D& point0,
00029                             dlr::numeric::Vector2D& point1)
00030     {
00031       // Compute matrix-vector product F * q.
00032       double lineCoefficient0 = 
00033         fundamentalMx[0] * point0.x() + fundamentalMx[1] * point0.y()
00034         + fundamentalMx[2];
00035       double lineCoefficient1 = 
00036         fundamentalMx[3] * point0.x() + fundamentalMx[4] * point0.y()
00037         + fundamentalMx[5];
00038       double lineCoefficient2 = 
00039         fundamentalMx[6] * point0.x() + fundamentalMx[7] * point0.y()
00040         + fundamentalMx[8];
00041 
00042       // Get the epipolar line corresponding to point0.
00043       geom::Ray2D ray(lineCoefficient0, lineCoefficient1, lineCoefficient2);
00044 
00045       // Find the squared distance between q' and this ray.
00046       dlr::Vector2D closestPoint = geom::findClosestPoint(point1, ray);
00047       return num::magnitudeSquared(closestPoint - point1);
00048     }
00049     
00050     
00051     dlr::numeric::Transform3D
00052     getCameraMotionFromEssentialMatrix(
00053       dlr::numeric::Array2D<double> const& EE,
00054       dlr::numeric::Vector2D const& testPointCamera0,
00055       dlr::numeric::Vector2D const& testPointCamera1)
00056     {
00057       // Note(xxx): Need to put a comment here explaining why this
00058       // works.  Ref R. Hartley and A. Zisserman, Multiple View
00059       // Geometry in Computer Vision, Cambridge University Press, ISBN
00060       // 0-521-62304-9, 2000.  Or ref R. Tsai and T. Huang, Uniqueness
00061       // and Estimation of Three-Dimensional Motion Parameters of
00062       // Rigid Objects with Curved Surfaces, IEEE Transactions on
00063       // Pattern Analysis and Machine Intelligence, 6(1):13-27, 1984.
00064       num::Array2D<Float64> uArray;
00065       num::Array1D<Float64> sigmaArray;
00066       num::Array2D<Float64> vTransposeArray;
00067       dlr::linearAlgebra::singularValueDecomposition(
00068         EE, uArray, sigmaArray, vTransposeArray);
00069 
00070 #if 0
00071       // Nister's paper outlines the following steps, which are faster
00072       // than what we're actually using below, and exactly equivalent,
00073       // but I haven't had time to test and make sure I've implemented
00074       // them correctly.  Note that the right-handedness check is
00075       // missing from this code.
00076       
00077       // Multiply by D == [[0, 1, 0], [-1, 0, 0], [0, 0, 1]].
00078       vTransposeArray.getRow(0) *= -1.0;
00079       std::swap(vTransposeArray[0], vTransposeArray[3]);
00080       std::swap(vTransposeArray[1], vTransposeArray[4]);
00081       std::swap(vTransposeArray[2], vTransposeArray[5]);
00082       num::Array2D<Float64> rotation0 = matrixMultiply(uArray, vTransposeArray);
00083 
00084       num::Transform3D c1Tc0(
00085         rotation0[0], rotation0[1], rotation0[2], uArray(0, 2),
00086         rotation0[3], rotation0[4], rotation0[5], uArray(1, 2),
00087         rotation0[6], rotation0[7], rotation0[8], uArray(2, 2),
00088         0.0,          0.0,          0.0,          1.0);
00089 
00090       // Note: this call might throw...
00091       num::Vector3D testPoint3D0 = triangulateCalibratedImagePoint(
00092         c1Tc0, testPointCamera1, testPointCamera0);
00093       num::Vector3D testPoint3D1 = c1Tc0 * testPoint3D0;
00094       if((testPoint3D0.z() < 0.0) && (testPoint3D1.z() < 0.0)) {
00095         // 3D position is behind both cameras.
00096         c1Tc0.setTransform(
00097           -rotation0[0], -rotation0[1], -rotation0[2], -uArray(0, 2),
00098           -rotation0[3], -rotation0[4], -rotation0[5], -uArray(1, 2),
00099           -rotation0[6], -rotation0[7], -rotation0[8], -uArray(2, 2),
00100           0.0,          0.0,          0.0,          1.0);
00101       } else if((testPoint3D0.z() * testPoint3D1.z()) < 0.0) {
00102         // 3D position is behind one camera, but not both.
00103         Transform3D Ht(-1.0, 0.0, 0.0, 0.0,
00104                        0.0, -1.0, 0.0, 0.0,
00105                        0.0, 0.0, -1.0, 0.0,
00106                        2*vTransposeArray(2, 0), 2*vTransposeArray(2, 1),
00107                        2*vTransposeArray(2, 1), 1.0);
00108         c1Tc0 = Ht * c1Tc0;
00109         testPoint3D0 = Ht * testPoint3D0;
00110         if((testPoint3D0.z() < 0.0) || (testPoint3D1.z() < 0.0)) {
00111           c1Tc0.setTransform(
00112             -c1Tc0.value<0, 0>(), -c1Tc0.value<0, 1>(),
00113             -c1Tc0.value<0, 2>(), -c1Tc0.value<0, 3>(), 
00114             -c1Tc0.value<1, 0>(), -c1Tc0.value<1, 1>(),
00115             -c1Tc0.value<1, 2>(), -c1Tc0.value<1, 3>(), 
00116             -c1Tc0.value<2, 0>(), -c1Tc0.value<2, 1>(),
00117             -c1Tc0.value<2, 2>(), -c1Tc0.value<2, 3>(),
00118             0.0, 0.0, 0.0, 1.0);            
00119         }
00120       }
00121       return c1Tc0;
00122 #else
00123       // Here's a bonehead version of the above.
00124       
00125       // Multiply by D == [[0, 1, 0], [-1, 0, 0], [0, 0, 1]].
00126       vTransposeArray.getRow(0) *= -1.0;
00127       std::swap(vTransposeArray[0], vTransposeArray[3]);
00128       std::swap(vTransposeArray[1], vTransposeArray[4]);
00129       std::swap(vTransposeArray[2], vTransposeArray[5]);
00130       num::Array2D<Float64> rotation0 = matrixMultiply(uArray, vTransposeArray);
00131 
00132       // Undo previous contortion, and multiply by D == [[0, -1, 0],
00133       // [1, 0, 0], [0, 0, 1]].
00134       vTransposeArray.getRow(0) *= -1.0;
00135       vTransposeArray.getRow(1) *= -1.0;
00136       num::Array2D<Float64> rotation1 = matrixMultiply(uArray, vTransposeArray);
00137 
00138       // SVD could easily return -1 * the rotatin we want.  Of course, this
00139       // would make the resulting coordinate system left handed.  Check for
00140       // this here.
00141       num::Vector3D e0(rotation0(0, 0), rotation0(1, 0), rotation0(2, 0));
00142       num::Vector3D e1(rotation0(0, 1), rotation0(1, 1), rotation0(2, 1));
00143       num::Vector3D e2(rotation0(0, 2), rotation0(1, 2), rotation0(2, 2));
00144       bool isRightHanded = num::dot(num::cross(e0, e1), e2) > 0.0;
00145       if(!isRightHanded) {
00146         rotation0 *= -1.0;
00147         rotation1 *= -1.0;
00148       }
00149 
00150       // Now we have some candidates for rotation.  We'll test them
00151       // using the test point that was passed in.
00152       num::Transform3D c1Tc0_0(
00153         rotation0[0], rotation0[1], rotation0[2], uArray(0, 2),
00154         rotation0[3], rotation0[4], rotation0[5], uArray(1, 2),
00155         rotation0[6], rotation0[7], rotation0[8], uArray(2, 2),
00156         0.0,          0.0,          0.0,          1.0);
00157       num::Transform3D c1Tc0_1(
00158         rotation0[0], rotation0[1], rotation0[2], -uArray(0, 2),
00159         rotation0[3], rotation0[4], rotation0[5], -uArray(1, 2),
00160         rotation0[6], rotation0[7], rotation0[8], -uArray(2, 2),
00161         0.0,          0.0,          0.0,          1.0);
00162 
00163       num::Vector3D testPoint3D1 = triangulateCalibratedImagePoint(
00164         c1Tc0_0, testPointCamera1, testPointCamera0);
00165       num::Vector3D testPoint3D0 = c1Tc0_0.invert() * testPoint3D1;
00166       if((testPoint3D0.z() > 0.0) && (testPoint3D1.z() > 0.0)) {
00167         return c1Tc0_0;
00168       }
00169       if((testPoint3D0.z() < 0.0) && (testPoint3D1.z() < 0.0)) {
00170         return c1Tc0_1;
00171       }
00172 
00173       num::Transform3D c1Tc0_2(
00174         rotation1[0], rotation1[1], rotation1[2], uArray(0, 2),
00175         rotation1[3], rotation1[4], rotation1[5], uArray(1, 2),
00176         rotation1[6], rotation1[7], rotation1[8], uArray(2, 2),
00177         0.0,          0.0,          0.0,          1.0);
00178       num::Transform3D c1Tc0_3(
00179         rotation1[0], rotation1[1], rotation1[2], -uArray(0, 2),
00180         rotation1[3], rotation1[4], rotation1[5], -uArray(1, 2),
00181         rotation1[6], rotation1[7], rotation1[8], -uArray(2, 2),
00182         0.0,          0.0,          0.0,          1.0);
00183       // Note: this call might throw...
00184       testPoint3D1 = triangulateCalibratedImagePoint(
00185         c1Tc0_2, testPointCamera1, testPointCamera0);
00186       testPoint3D0 = c1Tc0_2.invert() * testPoint3D1;
00187       if((testPoint3D0.z() > 0.0) && (testPoint3D1.z() > 0.0)) {
00188         return c1Tc0_2;
00189       }
00190       return c1Tc0_3;
00191 #endif
00192     }
00193     
00194 
00195     dlr::numeric::Vector3D
00196     triangulateCalibratedImagePoint(
00197       dlr::numeric::Transform3D const& c0Tc1,
00198       dlr::numeric::Vector2D const& testPointCamera0,
00199       dlr::numeric::Vector2D const& testPointCamera1)
00200     {
00201       // This triangulation is much less efficient that the approach
00202       // described in [2], but is conceptually clearer, and has nicer
00203       // error characteristics.
00204 
00205       // Each test point defines a ray in the coordinate system of the
00206       // corresponding camera.
00207       geom::Ray3D ray0_0(
00208         num::Vector3D(0.0, 0.0, 0.0),
00209         num::Vector3D(testPointCamera0.x(), testPointCamera0.y(), 1.0));
00210       geom::Ray3D ray1_1(
00211         num::Vector3D(0.0, 0.0, 0.0),
00212         num::Vector3D(testPointCamera1.x(), testPointCamera1.y(), 1.0));
00213 
00214       // Transform one of the two rays from camera1 coordinates to
00215       // camera0 coordinates.
00216       geom::Ray3D ray1_0 = c0Tc1 * ray1_1;
00217 
00218       // And find the closest point of approach between the two rays.
00219       double distance0;
00220       double distance1;
00221       double residual;
00222       return geom::findIntersect(
00223         ray0_0, ray1_0, distance0, distance1, residual);
00224     }
00225     
00226     
00227     // This function is used internally by fivePointAlgorithm() to
00228     // generate a 10x20 matrix of coefficients of polynomial
00229     // constraints.
00230     dlr::numeric::Array2D<double>
00231     generateFivePointConstraintMatrix(
00232       dlr::numeric::Array2D<double> const& E0Array,
00233       dlr::numeric::Array2D<double> const& E1Array,
00234       dlr::numeric::Array2D<double> const& E2Array,
00235       dlr::numeric::Array2D<double> const& E3Array)
00236     {
00237 
00238       /*
00239         =====================================================
00240         ============== Start of long comment ================
00241         =====================================================
00242 
00243         # Here's maxima code that automatically generates our
00244         # constraint equations.  Save this as maximaCode.ma, and
00245         # execute the command
00246         #
00247         #   maxima -b maximaCode.ma
00248         #
00249         # to generate an intermedate text file called
00250         # maximaConstraints.txt, then procede to the python code
00251         # below.
00252 
00253         # ---------------- Start of Maxima code ------------------
00254         
00255         E0:matrix([e0rc00, e0rc01, e0rc02],
00256                   [e0rc10, e0rc11, e0rc12],
00257                   [e0rc20, e0rc21, e0rc22]);
00258         E1:matrix([e1rc00, e1rc01, e1rc02],
00259                   [e1rc10, e1rc11, e1rc12],
00260                   [e1rc20, e1rc21, e1rc22]);
00261         E2:matrix([e2rc00, e2rc01, e2rc02],
00262                   [e2rc10, e2rc11, e2rc12],
00263                   [e2rc20, e2rc21, e2rc22]);
00264         E3:matrix([e3rc00, e3rc01, e3rc02],
00265                   [e3rc10, e3rc11, e3rc12],
00266                   [e3rc20, e3rc21, e3rc22]);
00267         EE:x0*E0 + x1*E1 + x2*E2 + E3;
00268 
00269         C0:determinant(EE);
00270         C0E:expand(C0);
00271         
00272         EExEET:EE . transpose(EE);
00273         ETrace:EExEET[1][1] + EExEET[2][2] + EExEET[3][3];
00274         CC:2 * (EExEET . EE) - (ETrace * EE);
00275         CCE:expand(CC);
00276 
00277         Constraints:[CCE[1][1], CCE[1][2], CCE[1][3],
00278                      CCE[2][1], CCE[2][2], CCE[2][3],
00279                      CCE[3][1], CCE[3][2], CCE[3][3],
00280                      C0E];
00281 
00282         appendfile("maximaConstraints.txt");
00283         grind(Constraints);
00284         
00285         # ----------------- End of Maxima code -------------------
00286 
00287         # Here's python code that parses maximaConstraints.txt
00288         # (generated above) to create code for computing the
00289         # constraints matrix.  Save this code as pythonCode.py, and
00290         # execute the command
00291         #
00292         #   python pythonCode.py > cppSnippet.cpp
00293         # 
00294         # Then copy the contents of cppSnippet.cpp into the cut &
00295         # paste section below.
00296 
00297         # ---------------- Start of Python code ------------------
00298         import re
00299         constraintsRe = re.compile("\[.*\]", re.DOTALL)
00300         
00301         # This regex works as follows:
00302         #   (                  - Starts a group representing the coefficient.
00303         #     [+-]?              - Optional prefix of '+' or '-', as in
00304         #                          '-2*e0rc00'.
00305         #     (?:\d\*)?          - Optional leading multiplier, as in
00306         #                          '2*e0rc00'.
00307         #     e[e0123rc^*]*[0123] - A product of e?rc?? terms, as in
00308         #                           'e0rc00^2*e1rc21'.
00309         #   )                  - Ends the group representing the coefficient.
00310         #   (?:                - Starts a group.
00311         #     \*                 - Group has to start with a "*", as in
00312         #                          '*x0^3'.
00313         #     (x[x0123*^]*)      - A group representing the monomial, as in
00314         #                          'x0^2*x1'.
00315         #   )?                 - Closes the group, and makes it optional.
00316         termRe = re.compile(
00317           "([+-]?(?:\d\*)?e[e0123rc^*]*[0123])(?:\*(x[x0123*^]*))?")
00318         expectedMonomials = ['x0^3', 'x0^2*x1', 'x0^2*x2',
00319                              'x0*x1^2', 'x0*x1*x2', 'x0*x2^2',
00320                              'x1^3', 'x1^2*x2', 'x1*x2^2',
00321                              'x2^3',
00322                              'x0^2', 'x0*x1', 'x0*x2',
00323                              'x1^2', 'x1*x2', 'x2^2',
00324                              'x0', 'x1', 'x2',
00325                              None]
00326         
00327         inputFile = open('maximaConstraints.txt')
00328         inputText = inputFile.read()
00329         
00330         # This array represents the 10x20 constraint matrix.
00331         coefficientArray = map(lambda x: [''] * 20, range(10))
00332         
00333         # We're expecting to find 10 equations: 9 polynomials for the nine
00334         # terms in the "2 * E * transpose(E) * E ..." constraint, and one
00335         # polynomial for the determinant constraint.
00336         constraintsText = constraintsRe.search(inputText).group(0)[1:-1]
00337         constraintsList = constraintsText.split(',')
00338         
00339         # Iterate over all constraints.
00340         constraintNumber = 0
00341         for constraint in constraintsList:
00342           coefficientMap = {}
00343           
00344           # Reset this row of the constraint matrix.
00345           for monomial in expectedMonomials:
00346             coefficientMap[monomial] = ''
00347           # end for
00348           
00349           # Examine all terms of this polynomial, split each term into
00350           # coefficient and monomial parts (where coefficient might be
00351           # something like "e0rc12^2*e2rc21", and monomial might be
00352           # something like "x1*x2^2"), and add the coefficient to the
00353           # total coefficient for the monomial (since there may be
00354           # more than one term associated with each monomial).
00355           startPos = 0
00356           while 1:
00357             termMatch = termRe.search(constraint, startPos)
00358             if not termMatch:
00359               break
00360             # end if
00361             coefficient = termMatch.group(1)
00362             monomial = termMatch.group(2)
00363             if not coefficientMap.has_key(monomial):
00364               raise IOError, 'Unexpected monomial'
00365             # end if
00366             coefficientMap[monomial] = (
00367               coefficientMap[monomial] + coefficient.replace('^', '_'))
00368             startPos = termMatch.end()
00369           # end while
00370           
00371           # Now put the accumulated coefficients into the constraint matrix.
00372           for ii in range(len(expectedMonomials)):
00373             coefficient = coefficientMap[expectedMonomials[ii]]
00374             if coefficient != '':
00375               coefficientArray[constraintNumber][ii] = coefficient
00376             else:
00377               coefficientArray[constraintNumber][ii] = '0.0'
00378             # end if
00379           # end for
00380           constraintNumber = constraintNumber + 1
00381         # end for
00382         
00383         # Send C++ code to standard out.
00384         for ii in range(len(coefficientArray)):
00385           for jj in range(len(expectedMonomials)):
00386             print ('    AMatrix(%d, %d) = %s;'
00387                    % (ii, jj, coefficientArray[ii][jj]))
00388           # end for
00389         # end for
00390                 
00391         # ----------------- End of Python code -------------------
00392         
00393         =====================================================
00394         ==============  End of long comment  ================
00395         =====================================================
00396        */
00397 
00398       // First set up the variables for the auto-generated code...
00399 
00400       // Individual matrix elements.  The name eXrcYZ means the (Y, Z)
00401       // element of matrix E'X'Array.
00402       double e0rc00 = E0Array(0, 0);
00403       double e0rc01 = E0Array(0, 1);
00404       double e0rc02 = E0Array(0, 2);
00405       double e0rc10 = E0Array(1, 0);
00406       double e0rc11 = E0Array(1, 1);
00407       double e0rc12 = E0Array(1, 2);
00408       double e0rc20 = E0Array(2, 0);
00409       double e0rc21 = E0Array(2, 1);
00410       double e0rc22 = E0Array(2, 2);
00411       double e1rc00 = E1Array(0, 0);
00412       double e1rc01 = E1Array(0, 1);
00413       double e1rc02 = E1Array(0, 2);
00414       double e1rc10 = E1Array(1, 0);
00415       double e1rc11 = E1Array(1, 1);
00416       double e1rc12 = E1Array(1, 2);
00417       double e1rc20 = E1Array(2, 0);
00418       double e1rc21 = E1Array(2, 1);
00419       double e1rc22 = E1Array(2, 2);
00420       double e2rc00 = E2Array(0, 0);
00421       double e2rc01 = E2Array(0, 1);
00422       double e2rc02 = E2Array(0, 2);
00423       double e2rc10 = E2Array(1, 0);
00424       double e2rc11 = E2Array(1, 1);
00425       double e2rc12 = E2Array(1, 2);
00426       double e2rc20 = E2Array(2, 0);
00427       double e2rc21 = E2Array(2, 1);
00428       double e2rc22 = E2Array(2, 2);
00429       double e3rc00 = E3Array(0, 0);
00430       double e3rc01 = E3Array(0, 1);
00431       double e3rc02 = E3Array(0, 2);
00432       double e3rc10 = E3Array(1, 0);
00433       double e3rc11 = E3Array(1, 1);
00434       double e3rc12 = E3Array(1, 2);
00435       double e3rc20 = E3Array(2, 0);
00436       double e3rc21 = E3Array(2, 1);
00437       double e3rc22 = E3Array(2, 2);
00438 
00439       // Squares of individual matrix elements.
00440       double e0rc00_2 = e0rc00 * e0rc00;
00441       double e0rc01_2 = e0rc01 * e0rc01;
00442       double e0rc02_2 = e0rc02 * e0rc02;
00443       double e0rc10_2 = e0rc10 * e0rc10;
00444       double e0rc11_2 = e0rc11 * e0rc11;
00445       double e0rc12_2 = e0rc12 * e0rc12;
00446       double e0rc20_2 = e0rc20 * e0rc20;
00447       double e0rc21_2 = e0rc21 * e0rc21;
00448       double e0rc22_2 = e0rc22 * e0rc22;
00449       double e1rc00_2 = e1rc00 * e1rc00;
00450       double e1rc01_2 = e1rc01 * e1rc01;
00451       double e1rc02_2 = e1rc02 * e1rc02;
00452       double e1rc10_2 = e1rc10 * e1rc10;
00453       double e1rc11_2 = e1rc11 * e1rc11;
00454       double e1rc12_2 = e1rc12 * e1rc12;
00455       double e1rc20_2 = e1rc20 * e1rc20;
00456       double e1rc21_2 = e1rc21 * e1rc21;
00457       double e1rc22_2 = e1rc22 * e1rc22;
00458       double e2rc00_2 = e2rc00 * e2rc00;
00459       double e2rc01_2 = e2rc01 * e2rc01;
00460       double e2rc02_2 = e2rc02 * e2rc02;
00461       double e2rc10_2 = e2rc10 * e2rc10;
00462       double e2rc11_2 = e2rc11 * e2rc11;
00463       double e2rc12_2 = e2rc12 * e2rc12;
00464       double e2rc20_2 = e2rc20 * e2rc20;
00465       double e2rc21_2 = e2rc21 * e2rc21;
00466       double e2rc22_2 = e2rc22 * e2rc22;
00467       double e3rc00_2 = e3rc00 * e3rc00;
00468       double e3rc01_2 = e3rc01 * e3rc01;
00469       double e3rc02_2 = e3rc02 * e3rc02;
00470       double e3rc10_2 = e3rc10 * e3rc10;
00471       double e3rc11_2 = e3rc11 * e3rc11;
00472       double e3rc12_2 = e3rc12 * e3rc12;
00473       double e3rc20_2 = e3rc20 * e3rc20;
00474       double e3rc21_2 = e3rc21 * e3rc21;
00475       double e3rc22_2 = e3rc22 * e3rc22;
00476       
00477       // Cubes of individual matrix elements.
00478       double e0rc00_3 = e0rc00_2 * e0rc00;
00479       double e0rc01_3 = e0rc01_2 * e0rc01;
00480       double e0rc02_3 = e0rc02_2 * e0rc02;
00481       double e0rc10_3 = e0rc10_2 * e0rc10;
00482       double e0rc11_3 = e0rc11_2 * e0rc11;
00483       double e0rc12_3 = e0rc12_2 * e0rc12;
00484       double e0rc20_3 = e0rc20_2 * e0rc20;
00485       double e0rc21_3 = e0rc21_2 * e0rc21;
00486       double e0rc22_3 = e0rc22_2 * e0rc22;
00487       double e1rc00_3 = e1rc00_2 * e1rc00;
00488       double e1rc01_3 = e1rc01_2 * e1rc01;
00489       double e1rc02_3 = e1rc02_2 * e1rc02;
00490       double e1rc10_3 = e1rc10_2 * e1rc10;
00491       double e1rc11_3 = e1rc11_2 * e1rc11;
00492       double e1rc12_3 = e1rc12_2 * e1rc12;
00493       double e1rc20_3 = e1rc20_2 * e1rc20;
00494       double e1rc21_3 = e1rc21_2 * e1rc21;
00495       double e1rc22_3 = e1rc22_2 * e1rc22;
00496       double e2rc00_3 = e2rc00_2 * e2rc00;
00497       double e2rc01_3 = e2rc01_2 * e2rc01;
00498       double e2rc02_3 = e2rc02_2 * e2rc02;
00499       double e2rc10_3 = e2rc10_2 * e2rc10;
00500       double e2rc11_3 = e2rc11_2 * e2rc11;
00501       double e2rc12_3 = e2rc12_2 * e2rc12;
00502       double e2rc20_3 = e2rc20_2 * e2rc20;
00503       double e2rc21_3 = e2rc21_2 * e2rc21;
00504       double e2rc22_3 = e2rc22_2 * e2rc22;
00505       double e3rc00_3 = e3rc00_2 * e3rc00;
00506       double e3rc01_3 = e3rc01_2 * e3rc01;
00507       double e3rc02_3 = e3rc02_2 * e3rc02;
00508       double e3rc10_3 = e3rc10_2 * e3rc10;
00509       double e3rc11_3 = e3rc11_2 * e3rc11;
00510       double e3rc12_3 = e3rc12_2 * e3rc12;
00511       double e3rc20_3 = e3rc20_2 * e3rc20;
00512       double e3rc21_3 = e3rc21_2 * e3rc21;
00513       double e3rc22_3 = e3rc22_2 * e3rc22;
00514 
00515       // Big matrix to accept all of the constraint coefficients.
00516       dlr::numeric::Array2D<double> AMatrix(10, 20);
00517 
00518       
00519       // ============= Begin cut & paste section ============= 
00520 
00521     AMatrix(0, 0) = -e0rc00*e0rc22_2+2*e0rc02*e0rc20*e0rc22-e0rc00*e0rc21_2+2*e0rc01*e0rc20*e0rc21+e0rc00*e0rc20_2-e0rc00*e0rc12_2+2*e0rc02*e0rc10*e0rc12-e0rc00*e0rc11_2+2*e0rc01*e0rc10*e0rc11+e0rc00*e0rc10_2+e0rc00*e0rc02_2+e0rc00*e0rc01_2+e0rc00_3;
00522     AMatrix(0, 1) = -2*e0rc00*e0rc22*e1rc22+2*e0rc02*e0rc20*e1rc22-2*e0rc00*e0rc21*e1rc21+2*e0rc01*e0rc20*e1rc21+2*e0rc02*e0rc22*e1rc20+2*e0rc01*e0rc21*e1rc20+2*e0rc00*e0rc20*e1rc20-2*e0rc00*e0rc12*e1rc12+2*e0rc02*e0rc10*e1rc12-2*e0rc00*e0rc11*e1rc11+2*e0rc01*e0rc10*e1rc11+2*e0rc02*e0rc12*e1rc10+2*e0rc01*e0rc11*e1rc10+2*e0rc00*e0rc10*e1rc10+2*e0rc20*e0rc22*e1rc02+2*e0rc10*e0rc12*e1rc02+2*e0rc00*e0rc02*e1rc02+2*e0rc20*e0rc21*e1rc01+2*e0rc10*e0rc11*e1rc01+2*e0rc00*e0rc01*e1rc01-e0rc22_2*e1rc00-e0rc21_2*e1rc00+e0rc20_2*e1rc00-e0rc12_2*e1rc00-e0rc11_2*e1rc00+e0rc10_2*e1rc00+e0rc02_2*e1rc00+e0rc01_2*e1rc00+3*e0rc00_2*e1rc00;
00523     AMatrix(0, 2) = -2*e0rc00*e0rc22*e2rc22+2*e0rc02*e0rc20*e2rc22-2*e0rc00*e0rc21*e2rc21+2*e0rc01*e0rc20*e2rc21+2*e0rc02*e0rc22*e2rc20+2*e0rc01*e0rc21*e2rc20+2*e0rc00*e0rc20*e2rc20-2*e0rc00*e0rc12*e2rc12+2*e0rc02*e0rc10*e2rc12-2*e0rc00*e0rc11*e2rc11+2*e0rc01*e0rc10*e2rc11+2*e0rc02*e0rc12*e2rc10+2*e0rc01*e0rc11*e2rc10+2*e0rc00*e0rc10*e2rc10+2*e0rc20*e0rc22*e2rc02+2*e0rc10*e0rc12*e2rc02+2*e0rc00*e0rc02*e2rc02+2*e0rc20*e0rc21*e2rc01+2*e0rc10*e0rc11*e2rc01+2*e0rc00*e0rc01*e2rc01-e0rc22_2*e2rc00-e0rc21_2*e2rc00+e0rc20_2*e2rc00-e0rc12_2*e2rc00-e0rc11_2*e2rc00+e0rc10_2*e2rc00+e0rc02_2*e2rc00+e0rc01_2*e2rc00+3*e0rc00_2*e2rc00;
00524     AMatrix(0, 3) = -e0rc00*e1rc22_2+2*e0rc02*e1rc20*e1rc22+2*e0rc20*e1rc02*e1rc22-2*e0rc22*e1rc00*e1rc22-e0rc00*e1rc21_2+2*e0rc01*e1rc20*e1rc21+2*e0rc20*e1rc01*e1rc21-2*e0rc21*e1rc00*e1rc21+e0rc00*e1rc20_2+2*e0rc22*e1rc02*e1rc20+2*e0rc21*e1rc01*e1rc20+2*e0rc20*e1rc00*e1rc20-e0rc00*e1rc12_2+2*e0rc02*e1rc10*e1rc12+2*e0rc10*e1rc02*e1rc12-2*e0rc12*e1rc00*e1rc12-e0rc00*e1rc11_2+2*e0rc01*e1rc10*e1rc11+2*e0rc10*e1rc01*e1rc11-2*e0rc11*e1rc00*e1rc11+e0rc00*e1rc10_2+2*e0rc12*e1rc02*e1rc10+2*e0rc11*e1rc01*e1rc10+2*e0rc10*e1rc00*e1rc10+e0rc00*e1rc02_2+2*e0rc02*e1rc00*e1rc02+e0rc00*e1rc01_2+2*e0rc01*e1rc00*e1rc01+3*e0rc00*e1rc00_2;
00525     AMatrix(0, 4) = -2*e0rc00*e1rc22*e2rc22+2*e0rc02*e1rc20*e2rc22+2*e0rc20*e1rc02*e2rc22-2*e0rc22*e1rc00*e2rc22-2*e0rc00*e1rc21*e2rc21+2*e0rc01*e1rc20*e2rc21+2*e0rc20*e1rc01*e2rc21-2*e0rc21*e1rc00*e2rc21+2*e0rc02*e1rc22*e2rc20+2*e0rc01*e1rc21*e2rc20+2*e0rc00*e1rc20*e2rc20+2*e0rc22*e1rc02*e2rc20+2*e0rc21*e1rc01*e2rc20+2*e0rc20*e1rc00*e2rc20-2*e0rc00*e1rc12*e2rc12+2*e0rc02*e1rc10*e2rc12+2*e0rc10*e1rc02*e2rc12-2*e0rc12*e1rc00*e2rc12-2*e0rc00*e1rc11*e2rc11+2*e0rc01*e1rc10*e2rc11+2*e0rc10*e1rc01*e2rc11-2*e0rc11*e1rc00*e2rc11+2*e0rc02*e1rc12*e2rc10+2*e0rc01*e1rc11*e2rc10+2*e0rc00*e1rc10*e2rc10+2*e0rc12*e1rc02*e2rc10+2*e0rc11*e1rc01*e2rc10+2*e0rc10*e1rc00*e2rc10+2*e0rc20*e1rc22*e2rc02+2*e0rc22*e1rc20*e2rc02+2*e0rc10*e1rc12*e2rc02+2*e0rc12*e1rc10*e2rc02+2*e0rc00*e1rc02*e2rc02+2*e0rc02*e1rc00*e2rc02+2*e0rc20*e1rc21*e2rc01+2*e0rc21*e1rc20*e2rc01+2*e0rc10*e1rc11*e2rc01+2*e0rc11*e1rc10*e2rc01+2*e0rc00*e1rc01*e2rc01+2*e0rc01*e1rc00*e2rc01-2*e0rc22*e1rc22*e2rc00-2*e0rc21*e1rc21*e2rc00+2*e0rc20*e1rc20*e2rc00-2*e0rc12*e1rc12*e2rc00-2*e0rc11*e1rc11*e2rc00+2*e0rc10*e1rc10*e2rc00+2*e0rc02*e1rc02*e2rc00+2*e0rc01*e1rc01*e2rc00+6*e0rc00*e1rc00*e2rc00;
00526     AMatrix(0, 5) = -e0rc00*e2rc22_2+2*e0rc02*e2rc20*e2rc22+2*e0rc20*e2rc02*e2rc22-2*e0rc22*e2rc00*e2rc22-e0rc00*e2rc21_2+2*e0rc01*e2rc20*e2rc21+2*e0rc20*e2rc01*e2rc21-2*e0rc21*e2rc00*e2rc21+e0rc00*e2rc20_2+2*e0rc22*e2rc02*e2rc20+2*e0rc21*e2rc01*e2rc20+2*e0rc20*e2rc00*e2rc20-e0rc00*e2rc12_2+2*e0rc02*e2rc10*e2rc12+2*e0rc10*e2rc02*e2rc12-2*e0rc12*e2rc00*e2rc12-e0rc00*e2rc11_2+2*e0rc01*e2rc10*e2rc11+2*e0rc10*e2rc01*e2rc11-2*e0rc11*e2rc00*e2rc11+e0rc00*e2rc10_2+2*e0rc12*e2rc02*e2rc10+2*e0rc11*e2rc01*e2rc10+2*e0rc10*e2rc00*e2rc10+e0rc00*e2rc02_2+2*e0rc02*e2rc00*e2rc02+e0rc00*e2rc01_2+2*e0rc01*e2rc00*e2rc01+3*e0rc00*e2rc00_2;
00527     AMatrix(0, 6) = -e1rc00*e1rc22_2+2*e1rc02*e1rc20*e1rc22-e1rc00*e1rc21_2+2*e1rc01*e1rc20*e1rc21+e1rc00*e1rc20_2-e1rc00*e1rc12_2+2*e1rc02*e1rc10*e1rc12-e1rc00*e1rc11_2+2*e1rc01*e1rc10*e1rc11+e1rc00*e1rc10_2+e1rc00*e1rc02_2+e1rc00*e1rc01_2+e1rc00_3;
00528     AMatrix(0, 7) = -2*e1rc00*e1rc22*e2rc22+2*e1rc02*e1rc20*e2rc22-2*e1rc00*e1rc21*e2rc21+2*e1rc01*e1rc20*e2rc21+2*e1rc02*e1rc22*e2rc20+2*e1rc01*e1rc21*e2rc20+2*e1rc00*e1rc20*e2rc20-2*e1rc00*e1rc12*e2rc12+2*e1rc02*e1rc10*e2rc12-2*e1rc00*e1rc11*e2rc11+2*e1rc01*e1rc10*e2rc11+2*e1rc02*e1rc12*e2rc10+2*e1rc01*e1rc11*e2rc10+2*e1rc00*e1rc10*e2rc10+2*e1rc20*e1rc22*e2rc02+2*e1rc10*e1rc12*e2rc02+2*e1rc00*e1rc02*e2rc02+2*e1rc20*e1rc21*e2rc01+2*e1rc10*e1rc11*e2rc01+2*e1rc00*e1rc01*e2rc01-e1rc22_2*e2rc00-e1rc21_2*e2rc00+e1rc20_2*e2rc00-e1rc12_2*e2rc00-e1rc11_2*e2rc00+e1rc10_2*e2rc00+e1rc02_2*e2rc00+e1rc01_2*e2rc00+3*e1rc00_2*e2rc00;
00529     AMatrix(0, 8) = -e1rc00*e2rc22_2+2*e1rc02*e2rc20*e2rc22+2*e1rc20*e2rc02*e2rc22-2*e1rc22*e2rc00*e2rc22-e1rc00*e2rc21_2+2*e1rc01*e2rc20*e2rc21+2*e1rc20*e2rc01*e2rc21-2*e1rc21*e2rc00*e2rc21+e1rc00*e2rc20_2+2*e1rc22*e2rc02*e2rc20+2*e1rc21*e2rc01*e2rc20+2*e1rc20*e2rc00*e2rc20-e1rc00*e2rc12_2+2*e1rc02*e2rc10*e2rc12+2*e1rc10*e2rc02*e2rc12-2*e1rc12*e2rc00*e2rc12-e1rc00*e2rc11_2+2*e1rc01*e2rc10*e2rc11+2*e1rc10*e2rc01*e2rc11-2*e1rc11*e2rc00*e2rc11+e1rc00*e2rc10_2+2*e1rc12*e2rc02*e2rc10+2*e1rc11*e2rc01*e2rc10+2*e1rc10*e2rc00*e2rc10+e1rc00*e2rc02_2+2*e1rc02*e2rc00*e2rc02+e1rc00*e2rc01_2+2*e1rc01*e2rc00*e2rc01+3*e1rc00*e2rc00_2;
00530     AMatrix(0, 9) = -e2rc00*e2rc22_2+2*e2rc02*e2rc20*e2rc22-e2rc00*e2rc21_2+2*e2rc01*e2rc20*e2rc21+e2rc00*e2rc20_2-e2rc00*e2rc12_2+2*e2rc02*e2rc10*e2rc12-e2rc00*e2rc11_2+2*e2rc01*e2rc10*e2rc11+e2rc00*e2rc10_2+e2rc00*e2rc02_2+e2rc00*e2rc01_2+e2rc00_3;
00531     AMatrix(0, 10) = -2*e0rc00*e0rc22*e3rc22+2*e0rc02*e0rc20*e3rc22-2*e0rc00*e0rc21*e3rc21+2*e0rc01*e0rc20*e3rc21+2*e0rc02*e0rc22*e3rc20+2*e0rc01*e0rc21*e3rc20+2*e0rc00*e0rc20*e3rc20-2*e0rc00*e0rc12*e3rc12+2*e0rc02*e0rc10*e3rc12-2*e0rc00*e0rc11*e3rc11+2*e0rc01*e0rc10*e3rc11+2*e0rc02*e0rc12*e3rc10+2*e0rc01*e0rc11*e3rc10+2*e0rc00*e0rc10*e3rc10+2*e0rc20*e0rc22*e3rc02+2*e0rc10*e0rc12*e3rc02+2*e0rc00*e0rc02*e3rc02+2*e0rc20*e0rc21*e3rc01+2*e0rc10*e0rc11*e3rc01+2*e0rc00*e0rc01*e3rc01-e0rc22_2*e3rc00-e0rc21_2*e3rc00+e0rc20_2*e3rc00-e0rc12_2*e3rc00-e0rc11_2*e3rc00+e0rc10_2*e3rc00+e0rc02_2*e3rc00+e0rc01_2*e3rc00+3*e0rc00_2*e3rc00;
00532     AMatrix(0, 11) = -2*e0rc00*e1rc22*e3rc22+2*e0rc02*e1rc20*e3rc22+2*e0rc20*e1rc02*e3rc22-2*e0rc22*e1rc00*e3rc22-2*e0rc00*e1rc21*e3rc21+2*e0rc01*e1rc20*e3rc21+2*e0rc20*e1rc01*e3rc21-2*e0rc21*e1rc00*e3rc21+2*e0rc02*e1rc22*e3rc20+2*e0rc01*e1rc21*e3rc20+2*e0rc00*e1rc20*e3rc20+2*e0rc22*e1rc02*e3rc20+2*e0rc21*e1rc01*e3rc20+2*e0rc20*e1rc00*e3rc20-2*e0rc00*e1rc12*e3rc12+2*e0rc02*e1rc10*e3rc12+2*e0rc10*e1rc02*e3rc12-2*e0rc12*e1rc00*e3rc12-2*e0rc00*e1rc11*e3rc11+2*e0rc01*e1rc10*e3rc11+2*e0rc10*e1rc01*e3rc11-2*e0rc11*e1rc00*e3rc11+2*e0rc02*e1rc12*e3rc10+2*e0rc01*e1rc11*e3rc10+2*e0rc00*e1rc10*e3rc10+2*e0rc12*e1rc02*e3rc10+2*e0rc11*e1rc01*e3rc10+2*e0rc10*e1rc00*e3rc10+2*e0rc20*e1rc22*e3rc02+2*e0rc22*e1rc20*e3rc02+2*e0rc10*e1rc12*e3rc02+2*e0rc12*e1rc10*e3rc02+2*e0rc00*e1rc02*e3rc02+2*e0rc02*e1rc00*e3rc02+2*e0rc20*e1rc21*e3rc01+2*e0rc21*e1rc20*e3rc01+2*e0rc10*e1rc11*e3rc01+2*e0rc11*e1rc10*e3rc01+2*e0rc00*e1rc01*e3rc01+2*e0rc01*e1rc00*e3rc01-2*e0rc22*e1rc22*e3rc00-2*e0rc21*e1rc21*e3rc00+2*e0rc20*e1rc20*e3rc00-2*e0rc12*e1rc12*e3rc00-2*e0rc11*e1rc11*e3rc00+2*e0rc10*e1rc10*e3rc00+2*e0rc02*e1rc02*e3rc00+2*e0rc01*e1rc01*e3rc00+6*e0rc00*e1rc00*e3rc00;
00533     AMatrix(0, 12) = -2*e0rc00*e2rc22*e3rc22+2*e0rc02*e2rc20*e3rc22+2*e0rc20*e2rc02*e3rc22-2*e0rc22*e2rc00*e3rc22-2*e0rc00*e2rc21*e3rc21+2*e0rc01*e2rc20*e3rc21+2*e0rc20*e2rc01*e3rc21-2*e0rc21*e2rc00*e3rc21+2*e0rc02*e2rc22*e3rc20+2*e0rc01*e2rc21*e3rc20+2*e0rc00*e2rc20*e3rc20+2*e0rc22*e2rc02*e3rc20+2*e0rc21*e2rc01*e3rc20+2*e0rc20*e2rc00*e3rc20-2*e0rc00*e2rc12*e3rc12+2*e0rc02*e2rc10*e3rc12+2*e0rc10*e2rc02*e3rc12-2*e0rc12*e2rc00*e3rc12-2*e0rc00*e2rc11*e3rc11+2*e0rc01*e2rc10*e3rc11+2*e0rc10*e2rc01*e3rc11-2*e0rc11*e2rc00*e3rc11+2*e0rc02*e2rc12*e3rc10+2*e0rc01*e2rc11*e3rc10+2*e0rc00*e2rc10*e3rc10+2*e0rc12*e2rc02*e3rc10+2*e0rc11*e2rc01*e3rc10+2*e0rc10*e2rc00*e3rc10+2*e0rc20*e2rc22*e3rc02+2*e0rc22*e2rc20*e3rc02+2*e0rc10*e2rc12*e3rc02+2*e0rc12*e2rc10*e3rc02+2*e0rc00*e2rc02*e3rc02+2*e0rc02*e2rc00*e3rc02+2*e0rc20*e2rc21*e3rc01+2*e0rc21*e2rc20*e3rc01+2*e0rc10*e2rc11*e3rc01+2*e0rc11*e2rc10*e3rc01+2*e0rc00*e2rc01*e3rc01+2*e0rc01*e2rc00*e3rc01-2*e0rc22*e2rc22*e3rc00-2*e0rc21*e2rc21*e3rc00+2*e0rc20*e2rc20*e3rc00-2*e0rc12*e2rc12*e3rc00-2*e0rc11*e2rc11*e3rc00+2*e0rc10*e2rc10*e3rc00+2*e0rc02*e2rc02*e3rc00+2*e0rc01*e2rc01*e3rc00+6*e0rc00*e2rc00*e3rc00;
00534     AMatrix(0, 13) = -2*e1rc00*e1rc22*e3rc22+2*e1rc02*e1rc20*e3rc22-2*e1rc00*e1rc21*e3rc21+2*e1rc01*e1rc20*e3rc21+2*e1rc02*e1rc22*e3rc20+2*e1rc01*e1rc21*e3rc20+2*e1rc00*e1rc20*e3rc20-2*e1rc00*e1rc12*e3rc12+2*e1rc02*e1rc10*e3rc12-2*e1rc00*e1rc11*e3rc11+2*e1rc01*e1rc10*e3rc11+2*e1rc02*e1rc12*e3rc10+2*e1rc01*e1rc11*e3rc10+2*e1rc00*e1rc10*e3rc10+2*e1rc20*e1rc22*e3rc02+2*e1rc10*e1rc12*e3rc02+2*e1rc00*e1rc02*e3rc02+2*e1rc20*e1rc21*e3rc01+2*e1rc10*e1rc11*e3rc01+2*e1rc00*e1rc01*e3rc01-e1rc22_2*e3rc00-e1rc21_2*e3rc00+e1rc20_2*e3rc00-e1rc12_2*e3rc00-e1rc11_2*e3rc00+e1rc10_2*e3rc00+e1rc02_2*e3rc00+e1rc01_2*e3rc00+3*e1rc00_2*e3rc00;
00535     AMatrix(0, 14) = -2*e1rc00*e2rc22*e3rc22+2*e1rc02*e2rc20*e3rc22+2*e1rc20*e2rc02*e3rc22-2*e1rc22*e2rc00*e3rc22-2*e1rc00*e2rc21*e3rc21+2*e1rc01*e2rc20*e3rc21+2*e1rc20*e2rc01*e3rc21-2*e1rc21*e2rc00*e3rc21+2*e1rc02*e2rc22*e3rc20+2*e1rc01*e2rc21*e3rc20+2*e1rc00*e2rc20*e3rc20+2*e1rc22*e2rc02*e3rc20+2*e1rc21*e2rc01*e3rc20+2*e1rc20*e2rc00*e3rc20-2*e1rc00*e2rc12*e3rc12+2*e1rc02*e2rc10*e3rc12+2*e1rc10*e2rc02*e3rc12-2*e1rc12*e2rc00*e3rc12-2*e1rc00*e2rc11*e3rc11+2*e1rc01*e2rc10*e3rc11+2*e1rc10*e2rc01*e3rc11-2*e1rc11*e2rc00*e3rc11+2*e1rc02*e2rc12*e3rc10+2*e1rc01*e2rc11*e3rc10+2*e1rc00*e2rc10*e3rc10+2*e1rc12*e2rc02*e3rc10+2*e1rc11*e2rc01*e3rc10+2*e1rc10*e2rc00*e3rc10+2*e1rc20*e2rc22*e3rc02+2*e1rc22*e2rc20*e3rc02+2*e1rc10*e2rc12*e3rc02+2*e1rc12*e2rc10*e3rc02+2*e1rc00*e2rc02*e3rc02+2*e1rc02*e2rc00*e3rc02+2*e1rc20*e2rc21*e3rc01+2*e1rc21*e2rc20*e3rc01+2*e1rc10*e2rc11*e3rc01+2*e1rc11*e2rc10*e3rc01+2*e1rc00*e2rc01*e3rc01+2*e1rc01*e2rc00*e3rc01-2*e1rc22*e2rc22*e3rc00-2*e1rc21*e2rc21*e3rc00+2*e1rc20*e2rc20*e3rc00-2*e1rc12*e2rc12*e3rc00-2*e1rc11*e2rc11*e3rc00+2*e1rc10*e2rc10*e3rc00+2*e1rc02*e2rc02*e3rc00+2*e1rc01*e2rc01*e3rc00+6*e1rc00*e2rc00*e3rc00;
00536     AMatrix(0, 15) = -2*e2rc00*e2rc22*e3rc22+2*e2rc02*e2rc20*e3rc22-2*e2rc00*e2rc21*e3rc21+2*e2rc01*e2rc20*e3rc21+2*e2rc02*e2rc22*e3rc20+2*e2rc01*e2rc21*e3rc20+2*e2rc00*e2rc20*e3rc20-2*e2rc00*e2rc12*e3rc12+2*e2rc02*e2rc10*e3rc12-2*e2rc00*e2rc11*e3rc11+2*e2rc01*e2rc10*e3rc11+2*e2rc02*e2rc12*e3rc10+2*e2rc01*e2rc11*e3rc10+2*e2rc00*e2rc10*e3rc10+2*e2rc20*e2rc22*e3rc02+2*e2rc10*e2rc12*e3rc02+2*e2rc00*e2rc02*e3rc02+2*e2rc20*e2rc21*e3rc01+2*e2rc10*e2rc11*e3rc01+2*e2rc00*e2rc01*e3rc01-e2rc22_2*e3rc00-e2rc21_2*e3rc00+e2rc20_2*e3rc00-e2rc12_2*e3rc00-e2rc11_2*e3rc00+e2rc10_2*e3rc00+e2rc02_2*e3rc00+e2rc01_2*e3rc00+3*e2rc00_2*e3rc00;
00537     AMatrix(0, 16) = -e0rc00*e3rc22_2+2*e0rc02*e3rc20*e3rc22+2*e0rc20*e3rc02*e3rc22-2*e0rc22*e3rc00*e3rc22-e0rc00*e3rc21_2+2*e0rc01*e3rc20*e3rc21+2*e0rc20*e3rc01*e3rc21-2*e0rc21*e3rc00*e3rc21+e0rc00*e3rc20_2+2*e0rc22*e3rc02*e3rc20+2*e0rc21*e3rc01*e3rc20+2*e0rc20*e3rc00*e3rc20-e0rc00*e3rc12_2+2*e0rc02*e3rc10*e3rc12+2*e0rc10*e3rc02*e3rc12-2*e0rc12*e3rc00*e3rc12-e0rc00*e3rc11_2+2*e0rc01*e3rc10*e3rc11+2*e0rc10*e3rc01*e3rc11-2*e0rc11*e3rc00*e3rc11+e0rc00*e3rc10_2+2*e0rc12*e3rc02*e3rc10+2*e0rc11*e3rc01*e3rc10+2*e0rc10*e3rc00*e3rc10+e0rc00*e3rc02_2+2*e0rc02*e3rc00*e3rc02+e0rc00*e3rc01_2+2*e0rc01*e3rc00*e3rc01+3*e0rc00*e3rc00_2;
00538     AMatrix(0, 17) = -e1rc00*e3rc22_2+2*e1rc02*e3rc20*e3rc22+2*e1rc20*e3rc02*e3rc22-2*e1rc22*e3rc00*e3rc22-e1rc00*e3rc21_2+2*e1rc01*e3rc20*e3rc21+2*e1rc20*e3rc01*e3rc21-2*e1rc21*e3rc00*e3rc21+e1rc00*e3rc20_2+2*e1rc22*e3rc02*e3rc20+2*e1rc21*e3rc01*e3rc20+2*e1rc20*e3rc00*e3rc20-e1rc00*e3rc12_2+2*e1rc02*e3rc10*e3rc12+2*e1rc10*e3rc02*e3rc12-2*e1rc12*e3rc00*e3rc12-e1rc00*e3rc11_2+2*e1rc01*e3rc10*e3rc11+2*e1rc10*e3rc01*e3rc11-2*e1rc11*e3rc00*e3rc11+e1rc00*e3rc10_2+2*e1rc12*e3rc02*e3rc10+2*e1rc11*e3rc01*e3rc10+2*e1rc10*e3rc00*e3rc10+e1rc00*e3rc02_2+2*e1rc02*e3rc00*e3rc02+e1rc00*e3rc01_2+2*e1rc01*e3rc00*e3rc01+3*e1rc00*e3rc00_2;
00539     AMatrix(0, 18) = -e2rc00*e3rc22_2+2*e2rc02*e3rc20*e3rc22+2*e2rc20*e3rc02*e3rc22-2*e2rc22*e3rc00*e3rc22-e2rc00*e3rc21_2+2*e2rc01*e3rc20*e3rc21+2*e2rc20*e3rc01*e3rc21-2*e2rc21*e3rc00*e3rc21+e2rc00*e3rc20_2+2*e2rc22*e3rc02*e3rc20+2*e2rc21*e3rc01*e3rc20+2*e2rc20*e3rc00*e3rc20-e2rc00*e3rc12_2+2*e2rc02*e3rc10*e3rc12+2*e2rc10*e3rc02*e3rc12-2*e2rc12*e3rc00*e3rc12-e2rc00*e3rc11_2+2*e2rc01*e3rc10*e3rc11+2*e2rc10*e3rc01*e3rc11-2*e2rc11*e3rc00*e3rc11+e2rc00*e3rc10_2+2*e2rc12*e3rc02*e3rc10+2*e2rc11*e3rc01*e3rc10+2*e2rc10*e3rc00*e3rc10+e2rc00*e3rc02_2+2*e2rc02*e3rc00*e3rc02+e2rc00*e3rc01_2+2*e2rc01*e3rc00*e3rc01+3*e2rc00*e3rc00_2;
00540     AMatrix(0, 19) = -e3rc00*e3rc22_2+2*e3rc02*e3rc20*e3rc22-e3rc00*e3rc21_2+2*e3rc01*e3rc20*e3rc21+e3rc00*e3rc20_2-e3rc00*e3rc12_2+2*e3rc02*e3rc10*e3rc12-e3rc00*e3rc11_2+2*e3rc01*e3rc10*e3rc11+e3rc00*e3rc10_2+e3rc00*e3rc02_2+e3rc00*e3rc01_2+e3rc00_3;
00541     AMatrix(1, 0) = -e0rc01*e0rc22_2+2*e0rc02*e0rc21*e0rc22+e0rc01*e0rc21_2+2*e0rc00*e0rc20*e0rc21-e0rc01*e0rc20_2-e0rc01*e0rc12_2+2*e0rc02*e0rc11*e0rc12+e0rc01*e0rc11_2+2*e0rc00*e0rc10*e0rc11-e0rc01*e0rc10_2+e0rc01*e0rc02_2+e0rc01_3+e0rc00_2*e0rc01;
00542     AMatrix(1, 1) = -2*e0rc01*e0rc22*e1rc22+2*e0rc02*e0rc21*e1rc22+2*e0rc02*e0rc22*e1rc21+2*e0rc01*e0rc21*e1rc21+2*e0rc00*e0rc20*e1rc21+2*e0rc00*e0rc21*e1rc20-2*e0rc01*e0rc20*e1rc20-2*e0rc01*e0rc12*e1rc12+2*e0rc02*e0rc11*e1rc12+2*e0rc02*e0rc12*e1rc11+2*e0rc01*e0rc11*e1rc11+2*e0rc00*e0rc10*e1rc11+2*e0rc00*e0rc11*e1rc10-2*e0rc01*e0rc10*e1rc10+2*e0rc21*e0rc22*e1rc02+2*e0rc11*e0rc12*e1rc02+2*e0rc01*e0rc02*e1rc02-e0rc22_2*e1rc01+e0rc21_2*e1rc01-e0rc20_2*e1rc01-e0rc12_2*e1rc01+e0rc11_2*e1rc01-e0rc10_2*e1rc01+e0rc02_2*e1rc01+3*e0rc01_2*e1rc01+e0rc00_2*e1rc01+2*e0rc20*e0rc21*e1rc00+2*e0rc10*e0rc11*e1rc00+2*e0rc00*e0rc01*e1rc00;
00543     AMatrix(1, 2) = -2*e0rc01*e0rc22*e2rc22+2*e0rc02*e0rc21*e2rc22+2*e0rc02*e0rc22*e2rc21+2*e0rc01*e0rc21*e2rc21+2*e0rc00*e0rc20*e2rc21+2*e0rc00*e0rc21*e2rc20-2*e0rc01*e0rc20*e2rc20-2*e0rc01*e0rc12*e2rc12+2*e0rc02*e0rc11*e2rc12+2*e0rc02*e0rc12*e2rc11+2*e0rc01*e0rc11*e2rc11+2*e0rc00*e0rc10*e2rc11+2*e0rc00*e0rc11*e2rc10-2*e0rc01*e0rc10*e2rc10+2*e0rc21*e0rc22*e2rc02+2*e0rc11*e0rc12*e2rc02+2*e0rc01*e0rc02*e2rc02-e0rc22_2*e2rc01+e0rc21_2*e2rc01-e0rc20_2*e2rc01-e0rc12_2*e2rc01+e0rc11_2*e2rc01-e0rc10_2*e2rc01+e0rc02_2*e2rc01+3*e0rc01_2*e2rc01+e0rc00_2*e2rc01+2*e0rc20*e0rc21*e2rc00+2*e0rc10*e0rc11*e2rc00+2*e0rc00*e0rc01*e2rc00;
00544     AMatrix(1, 3) = -e0rc01*e1rc22_2+2*e0rc02*e1rc21*e1rc22+2*e0rc21*e1rc02*e1rc22-2*e0rc22*e1rc01*e1rc22+e0rc01*e1rc21_2+2*e0rc00*e1rc20*e1rc21+2*e0rc22*e1rc02*e1rc21+2*e0rc21*e1rc01*e1rc21+2*e0rc20*e1rc00*e1rc21-e0rc01*e1rc20_2-2*e0rc20*e1rc01*e1rc20+2*e0rc21*e1rc00*e1rc20-e0rc01*e1rc12_2+2*e0rc02*e1rc11*e1rc12+2*e0rc11*e1rc02*e1rc12-2*e0rc12*e1rc01*e1rc12+e0rc01*e1rc11_2+2*e0rc00*e1rc10*e1rc11+2*e0rc12*e1rc02*e1rc11+2*e0rc11*e1rc01*e1rc11+2*e0rc10*e1rc00*e1rc11-e0rc01*e1rc10_2-2*e0rc10*e1rc01*e1rc10+2*e0rc11*e1rc00*e1rc10+e0rc01*e1rc02_2+2*e0rc02*e1rc01*e1rc02+3*e0rc01*e1rc01_2+2*e0rc00*e1rc00*e1rc01+e0rc01*e1rc00_2;
00545     AMatrix(1, 4) = -2*e0rc01*e1rc22*e2rc22+2*e0rc02*e1rc21*e2rc22+2*e0rc21*e1rc02*e2rc22-2*e0rc22*e1rc01*e2rc22+2*e0rc02*e1rc22*e2rc21+2*e0rc01*e1rc21*e2rc21+2*e0rc00*e1rc20*e2rc21+2*e0rc22*e1rc02*e2rc21+2*e0rc21*e1rc01*e2rc21+2*e0rc20*e1rc00*e2rc21+2*e0rc00*e1rc21*e2rc20-2*e0rc01*e1rc20*e2rc20-2*e0rc20*e1rc01*e2rc20+2*e0rc21*e1rc00*e2rc20-2*e0rc01*e1rc12*e2rc12+2*e0rc02*e1rc11*e2rc12+2*e0rc11*e1rc02*e2rc12-2*e0rc12*e1rc01*e2rc12+2*e0rc02*e1rc12*e2rc11+2*e0rc01*e1rc11*e2rc11+2*e0rc00*e1rc10*e2rc11+2*e0rc12*e1rc02*e2rc11+2*e0rc11*e1rc01*e2rc11+2*e0rc10*e1rc00*e2rc11+2*e0rc00*e1rc11*e2rc10-2*e0rc01*e1rc10*e2rc10-2*e0rc10*e1rc01*e2rc10+2*e0rc11*e1rc00*e2rc10+2*e0rc21*e1rc22*e2rc02+2*e0rc22*e1rc21*e2rc02+2*e0rc11*e1rc12*e2rc02+2*e0rc12*e1rc11*e2rc02+2*e0rc01*e1rc02*e2rc02+2*e0rc02*e1rc01*e2rc02-2*e0rc22*e1rc22*e2rc01+2*e0rc21*e1rc21*e2rc01-2*e0rc20*e1rc20*e2rc01-2*e0rc12*e1rc12*e2rc01+2*e0rc11*e1rc11*e2rc01-2*e0rc10*e1rc10*e2rc01+2*e0rc02*e1rc02*e2rc01+6*e0rc01*e1rc01*e2rc01+2*e0rc00*e1rc00*e2rc01+2*e0rc20*e1rc21*e2rc00+2*e0rc21*e1rc20*e2rc00+2*e0rc10*e1rc11*e2rc00+2*e0rc11*e1rc10*e2rc00+2*e0rc00*e1rc01*e2rc00+2*e0rc01*e1rc00*e2rc00;
00546     AMatrix(1, 5) = -e0rc01*e2rc22_2+2*e0rc02*e2rc21*e2rc22+2*e0rc21*e2rc02*e2rc22-2*e0rc22*e2rc01*e2rc22+e0rc01*e2rc21_2+2*e0rc00*e2rc20*e2rc21+2*e0rc22*e2rc02*e2rc21+2*e0rc21*e2rc01*e2rc21+2*e0rc20*e2rc00*e2rc21-e0rc01*e2rc20_2-2*e0rc20*e2rc01*e2rc20+2*e0rc21*e2rc00*e2rc20-e0rc01*e2rc12_2+2*e0rc02*e2rc11*e2rc12+2*e0rc11*e2rc02*e2rc12-2*e0rc12*e2rc01*e2rc12+e0rc01*e2rc11_2+2*e0rc00*e2rc10*e2rc11+2*e0rc12*e2rc02*e2rc11+2*e0rc11*e2rc01*e2rc11+2*e0rc10*e2rc00*e2rc11-e0rc01*e2rc10_2-2*e0rc10*e2rc01*e2rc10+2*e0rc11*e2rc00*e2rc10+e0rc01*e2rc02_2+2*e0rc02*e2rc01*e2rc02+3*e0rc01*e2rc01_2+2*e0rc00*e2rc00*e2rc01+e0rc01*e2rc00_2;
00547     AMatrix(1, 6) = -e1rc01*e1rc22_2+2*e1rc02*e1rc21*e1rc22+e1rc01*e1rc21_2+2*e1rc00*e1rc20*e1rc21-e1rc01*e1rc20_2-e1rc01*e1rc12_2+2*e1rc02*e1rc11*e1rc12+e1rc01*e1rc11_2+2*e1rc00*e1rc10*e1rc11-e1rc01*e1rc10_2+e1rc01*e1rc02_2+e1rc01_3+e1rc00_2*e1rc01;
00548     AMatrix(1, 7) = -2*e1rc01*e1rc22*e2rc22+2*e1rc02*e1rc21*e2rc22+2*e1rc02*e1rc22*e2rc21+2*e1rc01*e1rc21*e2rc21+2*e1rc00*e1rc20*e2rc21+2*e1rc00*e1rc21*e2rc20-2*e1rc01*e1rc20*e2rc20-2*e1rc01*e1rc12*e2rc12+2*e1rc02*e1rc11*e2rc12+2*e1rc02*e1rc12*e2rc11+2*e1rc01*e1rc11*e2rc11+2*e1rc00*e1rc10*e2rc11+2*e1rc00*e1rc11*e2rc10-2*e1rc01*e1rc10*e2rc10+2*e1rc21*e1rc22*e2rc02+2*e1rc11*e1rc12*e2rc02+2*e1rc01*e1rc02*e2rc02-e1rc22_2*e2rc01+e1rc21_2*e2rc01-e1rc20_2*e2rc01-e1rc12_2*e2rc01+e1rc11_2*e2rc01-e1rc10_2*e2rc01+e1rc02_2*e2rc01+3*e1rc01_2*e2rc01+e1rc00_2*e2rc01+2*e1rc20*e1rc21*e2rc00+2*e1rc10*e1rc11*e2rc00+2*e1rc00*e1rc01*e2rc00;
00549     AMatrix(1, 8) = -e1rc01*e2rc22_2+2*e1rc02*e2rc21*e2rc22+2*e1rc21*e2rc02*e2rc22-2*e1rc22*e2rc01*e2rc22+e1rc01*e2rc21_2+2*e1rc00*e2rc20*e2rc21+2*e1rc22*e2rc02*e2rc21+2*e1rc21*e2rc01*e2rc21+2*e1rc20*e2rc00*e2rc21-e1rc01*e2rc20_2-2*e1rc20*e2rc01*e2rc20+2*e1rc21*e2rc00*e2rc20-e1rc01*e2rc12_2+2*e1rc02*e2rc11*e2rc12+2*e1rc11*e2rc02*e2rc12-2*e1rc12*e2rc01*e2rc12+e1rc01*e2rc11_2+2*e1rc00*e2rc10*e2rc11+2*e1rc12*e2rc02*e2rc11+2*e1rc11*e2rc01*e2rc11+2*e1rc10*e2rc00*e2rc11-e1rc01*e2rc10_2-2*e1rc10*e2rc01*e2rc10+2*e1rc11*e2rc00*e2rc10+e1rc01*e2rc02_2+2*e1rc02*e2rc01*e2rc02+3*e1rc01*e2rc01_2+2*e1rc00*e2rc00*e2rc01+e1rc01*e2rc00_2;
00550     AMatrix(1, 9) = -e2rc01*e2rc22_2+2*e2rc02*e2rc21*e2rc22+e2rc01*e2rc21_2+2*e2rc00*e2rc20*e2rc21-e2rc01*e2rc20_2-e2rc01*e2rc12_2+2*e2rc02*e2rc11*e2rc12+e2rc01*e2rc11_2+2*e2rc00*e2rc10*e2rc11-e2rc01*e2rc10_2+e2rc01*e2rc02_2+e2rc01_3+e2rc00_2*e2rc01;
00551     AMatrix(1, 10) = -2*e0rc01*e0rc22*e3rc22+2*e0rc02*e0rc21*e3rc22+2*e0rc02*e0rc22*e3rc21+2*e0rc01*e0rc21*e3rc21+2*e0rc00*e0rc20*e3rc21+2*e0rc00*e0rc21*e3rc20-2*e0rc01*e0rc20*e3rc20-2*e0rc01*e0rc12*e3rc12+2*e0rc02*e0rc11*e3rc12+2*e0rc02*e0rc12*e3rc11+2*e0rc01*e0rc11*e3rc11+2*e0rc00*e0rc10*e3rc11+2*e0rc00*e0rc11*e3rc10-2*e0rc01*e0rc10*e3rc10+2*e0rc21*e0rc22*e3rc02+2*e0rc11*e0rc12*e3rc02+2*e0rc01*e0rc02*e3rc02-e0rc22_2*e3rc01+e0rc21_2*e3rc01-e0rc20_2*e3rc01-e0rc12_2*e3rc01+e0rc11_2*e3rc01-e0rc10_2*e3rc01+e0rc02_2*e3rc01+3*e0rc01_2*e3rc01+e0rc00_2*e3rc01+2*e0rc20*e0rc21*e3rc00+2*e0rc10*e0rc11*e3rc00+2*e0rc00*e0rc01*e3rc00;
00552     AMatrix(1, 11) = -2*e0rc01*e1rc22*e3rc22+2*e0rc02*e1rc21*e3rc22+2*e0rc21*e1rc02*e3rc22-2*e0rc22*e1rc01*e3rc22+2*e0rc02*e1rc22*e3rc21+2*e0rc01*e1rc21*e3rc21+2*e0rc00*e1rc20*e3rc21+2*e0rc22*e1rc02*e3rc21+2*e0rc21*e1rc01*e3rc21+2*e0rc20*e1rc00*e3rc21+2*e0rc00*e1rc21*e3rc20-2*e0rc01*e1rc20*e3rc20-2*e0rc20*e1rc01*e3rc20+2*e0rc21*e1rc00*e3rc20-2*e0rc01*e1rc12*e3rc12+2*e0rc02*e1rc11*e3rc12+2*e0rc11*e1rc02*e3rc12-2*e0rc12*e1rc01*e3rc12+2*e0rc02*e1rc12*e3rc11+2*e0rc01*e1rc11*e3rc11+2*e0rc00*e1rc10*e3rc11+2*e0rc12*e1rc02*e3rc11+2*e0rc11*e1rc01*e3rc11+2*e0rc10*e1rc00*e3rc11+2*e0rc00*e1rc11*e3rc10-2*e0rc01*e1rc10*e3rc10-2*e0rc10*e1rc01*e3rc10+2*e0rc11*e1rc00*e3rc10+2*e0rc21*e1rc22*e3rc02+2*e0rc22*e1rc21*e3rc02+2*e0rc11*e1rc12*e3rc02+2*e0rc12*e1rc11*e3rc02+2*e0rc01*e1rc02*e3rc02+2*e0rc02*e1rc01*e3rc02-2*e0rc22*e1rc22*e3rc01+2*e0rc21*e1rc21*e3rc01-2*e0rc20*e1rc20*e3rc01-2*e0rc12*e1rc12*e3rc01+2*e0rc11*e1rc11*e3rc01-2*e0rc10*e1rc10*e3rc01+2*e0rc02*e1rc02*e3rc01+6*e0rc01*e1rc01*e3rc01+2*e0rc00*e1rc00*e3rc01+2*e0rc20*e1rc21*e3rc00+2*e0rc21*e1rc20*e3rc00+2*e0rc10*e1rc11*e3rc00+2*e0rc11*e1rc10*e3rc00+2*e0rc00*e1rc01*e3rc00+2*e0rc01*e1rc00*e3rc00;
00553     AMatrix(1, 12) = -2*e0rc01*e2rc22*e3rc22+2*e0rc02*e2rc21*e3rc22+2*e0rc21*e2rc02*e3rc22-2*e0rc22*e2rc01*e3rc22+2*e0rc02*e2rc22*e3rc21+2*e0rc01*e2rc21*e3rc21+2*e0rc00*e2rc20*e3rc21+2*e0rc22*e2rc02*e3rc21+2*e0rc21*e2rc01*e3rc21+2*e0rc20*e2rc00*e3rc21+2*e0rc00*e2rc21*e3rc20-2*e0rc01*e2rc20*e3rc20-2*e0rc20*e2rc01*e3rc20+2*e0rc21*e2rc00*e3rc20-2*e0rc01*e2rc12*e3rc12+2*e0rc02*e2rc11*e3rc12+2*e0rc11*e2rc02*e3rc12-2*e0rc12*e2rc01*e3rc12+2*e0rc02*e2rc12*e3rc11+2*e0rc01*e2rc11*e3rc11+2*e0rc00*e2rc10*e3rc11+2*e0rc12*e2rc02*e3rc11+2*e0rc11*e2rc01*e3rc11+2*e0rc10*e2rc00*e3rc11+2*e0rc00*e2rc11*e3rc10-2*e0rc01*e2rc10*e3rc10-2*e0rc10*e2rc01*e3rc10+2*e0rc11*e2rc00*e3rc10+2*e0rc21*e2rc22*e3rc02+2*e0rc22*e2rc21*e3rc02+2*e0rc11*e2rc12*e3rc02+2*e0rc12*e2rc11*e3rc02+2*e0rc01*e2rc02*e3rc02+2*e0rc02*e2rc01*e3rc02-2*e0rc22*e2rc22*e3rc01+2*e0rc21*e2rc21*e3rc01-2*e0rc20*e2rc20*e3rc01-2*e0rc12*e2rc12*e3rc01+2*e0rc11*e2rc11*e3rc01-2*e0rc10*e2rc10*e3rc01+2*e0rc02*e2rc02*e3rc01+6*e0rc01*e2rc01*e3rc01+2*e0rc00*e2rc00*e3rc01+2*e0rc20*e2rc21*e3rc00+2*e0rc21*e2rc20*e3rc00+2*e0rc10*e2rc11*e3rc00+2*e0rc11*e2rc10*e3rc00+2*e0rc00*e2rc01*e3rc00+2*e0rc01*e2rc00*e3rc00;
00554     AMatrix(1, 13) = -2*e1rc01*e1rc22*e3rc22+2*e1rc02*e1rc21*e3rc22+2*e1rc02*e1rc22*e3rc21+2*e1rc01*e1rc21*e3rc21+2*e1rc00*e1rc20*e3rc21+2*e1rc00*e1rc21*e3rc20-2*e1rc01*e1rc20*e3rc20-2*e1rc01*e1rc12*e3rc12+2*e1rc02*e1rc11*e3rc12+2*e1rc02*e1rc12*e3rc11+2*e1rc01*e1rc11*e3rc11+2*e1rc00*e1rc10*e3rc11+2*e1rc00*e1rc11*e3rc10-2*e1rc01*e1rc10*e3rc10+2*e1rc21*e1rc22*e3rc02+2*e1rc11*e1rc12*e3rc02+2*e1rc01*e1rc02*e3rc02-e1rc22_2*e3rc01+e1rc21_2*e3rc01-e1rc20_2*e3rc01-e1rc12_2*e3rc01+e1rc11_2*e3rc01-e1rc10_2*e3rc01+e1rc02_2*e3rc01+3*e1rc01_2*e3rc01+e1rc00_2*e3rc01+2*e1rc20*e1rc21*e3rc00+2*e1rc10*e1rc11*e3rc00+2*e1rc00*e1rc01*e3rc00;
00555     AMatrix(1, 14) = -2*e1rc01*e2rc22*e3rc22+2*e1rc02*e2rc21*e3rc22+2*e1rc21*e2rc02*e3rc22-2*e1rc22*e2rc01*e3rc22+2*e1rc02*e2rc22*e3rc21+2*e1rc01*e2rc21*e3rc21+2*e1rc00*e2rc20*e3rc21+2*e1rc22*e2rc02*e3rc21+2*e1rc21*e2rc01*e3rc21+2*e1rc20*e2rc00*e3rc21+2*e1rc00*e2rc21*e3rc20-2*e1rc01*e2rc20*e3rc20-2*e1rc20*e2rc01*e3rc20+2*e1rc21*e2rc00*e3rc20-2*e1rc01*e2rc12*e3rc12+2*e1rc02*e2rc11*e3rc12+2*e1rc11*e2rc02*e3rc12-2*e1rc12*e2rc01*e3rc12+2*e1rc02*e2rc12*e3rc11+2*e1rc01*e2rc11*e3rc11+2*e1rc00*e2rc10*e3rc11+2*e1rc12*e2rc02*e3rc11+2*e1rc11*e2rc01*e3rc11+2*e1rc10*e2rc00*e3rc11+2*e1rc00*e2rc11*e3rc10-2*e1rc01*e2rc10*e3rc10-2*e1rc10*e2rc01*e3rc10+2*e1rc11*e2rc00*e3rc10+2*e1rc21*e2rc22*e3rc02+2*e1rc22*e2rc21*e3rc02+2*e1rc11*e2rc12*e3rc02+2*e1rc12*e2rc11*e3rc02+2*e1rc01*e2rc02*e3rc02+2*e1rc02*e2rc01*e3rc02-2*e1rc22*e2rc22*e3rc01+2*e1rc21*e2rc21*e3rc01-2*e1rc20*e2rc20*e3rc01-2*e1rc12*e2rc12*e3rc01+2*e1rc11*e2rc11*e3rc01-2*e1rc10*e2rc10*e3rc01+2*e1rc02*e2rc02*e3rc01+6*e1rc01*e2rc01*e3rc01+2*e1rc00*e2rc00*e3rc01+2*e1rc20*e2rc21*e3rc00+2*e1rc21*e2rc20*e3rc00+2*e1rc10*e2rc11*e3rc00+2*e1rc11*e2rc10*e3rc00+2*e1rc00*e2rc01*e3rc00+2*e1rc01*e2rc00*e3rc00;
00556     AMatrix(1, 15) = -2*e2rc01*e2rc22*e3rc22+2*e2rc02*e2rc21*e3rc22+2*e2rc02*e2rc22*e3rc21+2*e2rc01*e2rc21*e3rc21+2*e2rc00*e2rc20*e3rc21+2*e2rc00*e2rc21*e3rc20-2*e2rc01*e2rc20*e3rc20-2*e2rc01*e2rc12*e3rc12+2*e2rc02*e2rc11*e3rc12+2*e2rc02*e2rc12*e3rc11+2*e2rc01*e2rc11*e3rc11+2*e2rc00*e2rc10*e3rc11+2*e2rc00*e2rc11*e3rc10-2*e2rc01*e2rc10*e3rc10+2*e2rc21*e2rc22*e3rc02+2*e2rc11*e2rc12*e3rc02+2*e2rc01*e2rc02*e3rc02-e2rc22_2*e3rc01+e2rc21_2*e3rc01-e2rc20_2*e3rc01-e2rc12_2*e3rc01+e2rc11_2*e3rc01-e2rc10_2*e3rc01+e2rc02_2*e3rc01+3*e2rc01_2*e3rc01+e2rc00_2*e3rc01+2*e2rc20*e2rc21*e3rc00+2*e2rc10*e2rc11*e3rc00+2*e2rc00*e2rc01*e3rc00;
00557     AMatrix(1, 16) = -e0rc01*e3rc22_2+2*e0rc02*e3rc21*e3rc22+2*e0rc21*e3rc02*e3rc22-2*e0rc22*e3rc01*e3rc22+e0rc01*e3rc21_2+2*e0rc00*e3rc20*e3rc21+2*e0rc22*e3rc02*e3rc21+2*e0rc21*e3rc01*e3rc21+2*e0rc20*e3rc00*e3rc21-e0rc01*e3rc20_2-2*e0rc20*e3rc01*e3rc20+2*e0rc21*e3rc00*e3rc20-e0rc01*e3rc12_2+2*e0rc02*e3rc11*e3rc12+2*e0rc11*e3rc02*e3rc12-2*e0rc12*e3rc01*e3rc12+e0rc01*e3rc11_2+2*e0rc00*e3rc10*e3rc11+2*e0rc12*e3rc02*e3rc11+2*e0rc11*e3rc01*e3rc11+2*e0rc10*e3rc00*e3rc11-e0rc01*e3rc10_2-2*e0rc10*e3rc01*e3rc10+2*e0rc11*e3rc00*e3rc10+e0rc01*e3rc02_2+2*e0rc02*e3rc01*e3rc02+3*e0rc01*e3rc01_2+2*e0rc00*e3rc00*e3rc01+e0rc01*e3rc00_2;
00558     AMatrix(1, 17) = -e1rc01*e3rc22_2+2*e1rc02*e3rc21*e3rc22+2*e1rc21*e3rc02*e3rc22-2*e1rc22*e3rc01*e3rc22+e1rc01*e3rc21_2+2*e1rc00*e3rc20*e3rc21+2*e1rc22*e3rc02*e3rc21+2*e1rc21*e3rc01*e3rc21+2*e1rc20*e3rc00*e3rc21-e1rc01*e3rc20_2-2*e1rc20*e3rc01*e3rc20+2*e1rc21*e3rc00*e3rc20-e1rc01*e3rc12_2+2*e1rc02*e3rc11*e3rc12+2*e1rc11*e3rc02*e3rc12-2*e1rc12*e3rc01*e3rc12+e1rc01*e3rc11_2+2*e1rc00*e3rc10*e3rc11+2*e1rc12*e3rc02*e3rc11+2*e1rc11*e3rc01*e3rc11+2*e1rc10*e3rc00*e3rc11-e1rc01*e3rc10_2-2*e1rc10*e3rc01*e3rc10+2*e1rc11*e3rc00*e3rc10+e1rc01*e3rc02_2+2*e1rc02*e3rc01*e3rc02+3*e1rc01*e3rc01_2+2*e1rc00*e3rc00*e3rc01+e1rc01*e3rc00_2;
00559     AMatrix(1, 18) = -e2rc01*e3rc22_2+2*e2rc02*e3rc21*e3rc22+2*e2rc21*e3rc02*e3rc22-2*e2rc22*e3rc01*e3rc22+e2rc01*e3rc21_2+2*e2rc00*e3rc20*e3rc21+2*e2rc22*e3rc02*e3rc21+2*e2rc21*e3rc01*e3rc21+2*e2rc20*e3rc00*e3rc21-e2rc01*e3rc20_2-2*e2rc20*e3rc01*e3rc20+2*e2rc21*e3rc00*e3rc20-e2rc01*e3rc12_2+2*e2rc02*e3rc11*e3rc12+2*e2rc11*e3rc02*e3rc12-2*e2rc12*e3rc01*e3rc12+e2rc01*e3rc11_2+2*e2rc00*e3rc10*e3rc11+2*e2rc12*e3rc02*e3rc11+2*e2rc11*e3rc01*e3rc11+2*e2rc10*e3rc00*e3rc11-e2rc01*e3rc10_2-2*e2rc10*e3rc01*e3rc10+2*e2rc11*e3rc00*e3rc10+e2rc01*e3rc02_2+2*e2rc02*e3rc01*e3rc02+3*e2rc01*e3rc01_2+2*e2rc00*e3rc00*e3rc01+e2rc01*e3rc00_2;
00560     AMatrix(1, 19) = -e3rc01*e3rc22_2+2*e3rc02*e3rc21*e3rc22+e3rc01*e3rc21_2+2*e3rc00*e3rc20*e3rc21-e3rc01*e3rc20_2-e3rc01*e3rc12_2+2*e3rc02*e3rc11*e3rc12+e3rc01*e3rc11_2+2*e3rc00*e3rc10*e3rc11-e3rc01*e3rc10_2+e3rc01*e3rc02_2+e3rc01_3+e3rc00_2*e3rc01;
00561     AMatrix(2, 0) = +e0rc02*e0rc22_2+2*e0rc01*e0rc21*e0rc22+2*e0rc00*e0rc20*e0rc22-e0rc02*e0rc21_2-e0rc02*e0rc20_2+e0rc02*e0rc12_2+2*e0rc01*e0rc11*e0rc12+2*e0rc00*e0rc10*e0rc12-e0rc02*e0rc11_2-e0rc02*e0rc10_2+e0rc02_3+e0rc01_2*e0rc02+e0rc00_2*e0rc02;
00562     AMatrix(2, 1) = +2*e0rc02*e0rc22*e1rc22+2*e0rc01*e0rc21*e1rc22+2*e0rc00*e0rc20*e1rc22+2*e0rc01*e0rc22*e1rc21-2*e0rc02*e0rc21*e1rc21+2*e0rc00*e0rc22*e1rc20-2*e0rc02*e0rc20*e1rc20+2*e0rc02*e0rc12*e1rc12+2*e0rc01*e0rc11*e1rc12+2*e0rc00*e0rc10*e1rc12+2*e0rc01*e0rc12*e1rc11-2*e0rc02*e0rc11*e1rc11+2*e0rc00*e0rc12*e1rc10-2*e0rc02*e0rc10*e1rc10+e0rc22_2*e1rc02-e0rc21_2*e1rc02-e0rc20_2*e1rc02+e0rc12_2*e1rc02-e0rc11_2*e1rc02-e0rc10_2*e1rc02+3*e0rc02_2*e1rc02+e0rc01_2*e1rc02+e0rc00_2*e1rc02+2*e0rc21*e0rc22*e1rc01+2*e0rc11*e0rc12*e1rc01+2*e0rc01*e0rc02*e1rc01+2*e0rc20*e0rc22*e1rc00+2*e0rc10*e0rc12*e1rc00+2*e0rc00*e0rc02*e1rc00;
00563     AMatrix(2, 2) = +2*e0rc02*e0rc22*e2rc22+2*e0rc01*e0rc21*e2rc22+2*e0rc00*e0rc20*e2rc22+2*e0rc01*e0rc22*e2rc21-2*e0rc02*e0rc21*e2rc21+2*e0rc00*e0rc22*e2rc20-2*e0rc02*e0rc20*e2rc20+2*e0rc02*e0rc12*e2rc12+2*e0rc01*e0rc11*e2rc12+2*e0rc00*e0rc10*e2rc12+2*e0rc01*e0rc12*e2rc11-2*e0rc02*e0rc11*e2rc11+2*e0rc00*e0rc12*e2rc10-2*e0rc02*e0rc10*e2rc10+e0rc22_2*e2rc02-e0rc21_2*e2rc02-e0rc20_2*e2rc02+e0rc12_2*e2rc02-e0rc11_2*e2rc02-e0rc10_2*e2rc02+3*e0rc02_2*e2rc02+e0rc01_2*e2rc02+e0rc00_2*e2rc02+2*e0rc21*e0rc22*e2rc01+2*e0rc11*e0rc12*e2rc01+2*e0rc01*e0rc02*e2rc01+2*e0rc20*e0rc22*e2rc00+2*e0rc10*e0rc12*e2rc00+2*e0rc00*e0rc02*e2rc00;
00564     AMatrix(2, 3) = +e0rc02*e1rc22_2+2*e0rc01*e1rc21*e1rc22+2*e0rc00*e1rc20*e1rc22+2*e0rc22*e1rc02*e1rc22+2*e0rc21*e1rc01*e1rc22+2*e0rc20*e1rc00*e1rc22-e0rc02*e1rc21_2-2*e0rc21*e1rc02*e1rc21+2*e0rc22*e1rc01*e1rc21-e0rc02*e1rc20_2-2*e0rc20*e1rc02*e1rc20+2*e0rc22*e1rc00*e1rc20+e0rc02*e1rc12_2+2*e0rc01*e1rc11*e1rc12+2*e0rc00*e1rc10*e1rc12+2*e0rc12*e1rc02*e1rc12+2*e0rc11*e1rc01*e1rc12+2*e0rc10*e1rc00*e1rc12-e0rc02*e1rc11_2-2*e0rc11*e1rc02*e1rc11+2*e0rc12*e1rc01*e1rc11-e0rc02*e1rc10_2-2*e0rc10*e1rc02*e1rc10+2*e0rc12*e1rc00*e1rc10+3*e0rc02*e1rc02_2+2*e0rc01*e1rc01*e1rc02+2*e0rc00*e1rc00*e1rc02+e0rc02*e1rc01_2+e0rc02*e1rc00_2;
00565     AMatrix(2, 4) = +2*e0rc02*e1rc22*e2rc22+2*e0rc01*e1rc21*e2rc22+2*e0rc00*e1rc20*e2rc22+2*e0rc22*e1rc02*e2rc22+2*e0rc21*e1rc01*e2rc22+2*e0rc20*e1rc00*e2rc22+2*e0rc01*e1rc22*e2rc21-2*e0rc02*e1rc21*e2rc21-2*e0rc21*e1rc02*e2rc21+2*e0rc22*e1rc01*e2rc21+2*e0rc00*e1rc22*e2rc20-2*e0rc02*e1rc20*e2rc20-2*e0rc20*e1rc02*e2rc20+2*e0rc22*e1rc00*e2rc20+2*e0rc02*e1rc12*e2rc12+2*e0rc01*e1rc11*e2rc12+2*e0rc00*e1rc10*e2rc12+2*e0rc12*e1rc02*e2rc12+2*e0rc11*e1rc01*e2rc12+2*e0rc10*e1rc00*e2rc12+2*e0rc01*e1rc12*e2rc11-2*e0rc02*e1rc11*e2rc11-2*e0rc11*e1rc02*e2rc11+2*e0rc12*e1rc01*e2rc11+2*e0rc00*e1rc12*e2rc10-2*e0rc02*e1rc10*e2rc10-2*e0rc10*e1rc02*e2rc10+2*e0rc12*e1rc00*e2rc10+2*e0rc22*e1rc22*e2rc02-2*e0rc21*e1rc21*e2rc02-2*e0rc20*e1rc20*e2rc02+2*e0rc12*e1rc12*e2rc02-2*e0rc11*e1rc11*e2rc02-2*e0rc10*e1rc10*e2rc02+6*e0rc02*e1rc02*e2rc02+2*e0rc01*e1rc01*e2rc02+2*e0rc00*e1rc00*e2rc02+2*e0rc21*e1rc22*e2rc01+2*e0rc22*e1rc21*e2rc01+2*e0rc11*e1rc12*e2rc01+2*e0rc12*e1rc11*e2rc01+2*e0rc01*e1rc02*e2rc01+2*e0rc02*e1rc01*e2rc01+2*e0rc20*e1rc22*e2rc00+2*e0rc22*e1rc20*e2rc00+2*e0rc10*e1rc12*e2rc00+2*e0rc12*e1rc10*e2rc00+2*e0rc00*e1rc02*e2rc00+2*e0rc02*e1rc00*e2rc00;
00566     AMatrix(2, 5) = +e0rc02*e2rc22_2+2*e0rc01*e2rc21*e2rc22+2*e0rc00*e2rc20*e2rc22+2*e0rc22*e2rc02*e2rc22+2*e0rc21*e2rc01*e2rc22+2*e0rc20*e2rc00*e2rc22-e0rc02*e2rc21_2-2*e0rc21*e2rc02*e2rc21+2*e0rc22*e2rc01*e2rc21-e0rc02*e2rc20_2-2*e0rc20*e2rc02*e2rc20+2*e0rc22*e2rc00*e2rc20+e0rc02*e2rc12_2+2*e0rc01*e2rc11*e2rc12+2*e0rc00*e2rc10*e2rc12+2*e0rc12*e2rc02*e2rc12+2*e0rc11*e2rc01*e2rc12+2*e0rc10*e2rc00*e2rc12-e0rc02*e2rc11_2-2*e0rc11*e2rc02*e2rc11+2*e0rc12*e2rc01*e2rc11-e0rc02*e2rc10_2-2*e0rc10*e2rc02*e2rc10+2*e0rc12*e2rc00*e2rc10+3*e0rc02*e2rc02_2+2*e0rc01*e2rc01*e2rc02+2*e0rc00*e2rc00*e2rc02+e0rc02*e2rc01_2+e0rc02*e2rc00_2;
00567     AMatrix(2, 6) = +e1rc02*e1rc22_2+2*e1rc01*e1rc21*e1rc22+2*e1rc00*e1rc20*e1rc22-e1rc02*e1rc21_2-e1rc02*e1rc20_2+e1rc02*e1rc12_2+2*e1rc01*e1rc11*e1rc12+2*e1rc00*e1rc10*e1rc12-e1rc02*e1rc11_2-e1rc02*e1rc10_2+e1rc02_3+e1rc01_2*e1rc02+e1rc00_2*e1rc02;
00568     AMatrix(2, 7) = +2*e1rc02*e1rc22*e2rc22+2*e1rc01*e1rc21*e2rc22+2*e1rc00*e1rc20*e2rc22+2*e1rc01*e1rc22*e2rc21-2*e1rc02*e1rc21*e2rc21+2*e1rc00*e1rc22*e2rc20-2*e1rc02*e1rc20*e2rc20+2*e1rc02*e1rc12*e2rc12+2*e1rc01*e1rc11*e2rc12+2*e1rc00*e1rc10*e2rc12+2*e1rc01*e1rc12*e2rc11-2*e1rc02*e1rc11*e2rc11+2*e1rc00*e1rc12*e2rc10-2*e1rc02*e1rc10*e2rc10+e1rc22_2*e2rc02-e1rc21_2*e2rc02-e1rc20_2*e2rc02+e1rc12_2*e2rc02-e1rc11_2*e2rc02-e1rc10_2*e2rc02+3*e1rc02_2*e2rc02+e1rc01_2*e2rc02+e1rc00_2*e2rc02+2*e1rc21*e1rc22*e2rc01+2*e1rc11*e1rc12*e2rc01+2*e1rc01*e1rc02*e2rc01+2*e1rc20*e1rc22*e2rc00+2*e1rc10*e1rc12*e2rc00+2*e1rc00*e1rc02*e2rc00;
00569     AMatrix(2, 8) = +e1rc02*e2rc22_2+2*e1rc01*e2rc21*e2rc22+2*e1rc00*e2rc20*e2rc22+2*e1rc22*e2rc02*e2rc22+2*e1rc21*e2rc01*e2rc22+2*e1rc20*e2rc00*e2rc22-e1rc02*e2rc21_2-2*e1rc21*e2rc02*e2rc21+2*e1rc22*e2rc01*e2rc21-e1rc02*e2rc20_2-2*e1rc20*e2rc02*e2rc20+2*e1rc22*e2rc00*e2rc20+e1rc02*e2rc12_2+2*e1rc01*e2rc11*e2rc12+2*e1rc00*e2rc10*e2rc12+2*e1rc12*e2rc02*e2rc12+2*e1rc11*e2rc01*e2rc12+2*e1rc10*e2rc00*e2rc12-e1rc02*e2rc11_2-2*e1rc11*e2rc02*e2rc11+2*e1rc12*e2rc01*e2rc11-e1rc02*e2rc10_2-2*e1rc10*e2rc02*e2rc10+2*e1rc12*e2rc00*e2rc10+3*e1rc02*e2rc02_2+2*e1rc01*e2rc01*e2rc02+2*e1rc00*e2rc00*e2rc02+e1rc02*e2rc01_2+e1rc02*e2rc00_2;
00570     AMatrix(2, 9) = e2rc02*e2rc22_2+2*e2rc01*e2rc21*e2rc22+2*e2rc00*e2rc20*e2rc22-e2rc02*e2rc21_2-e2rc02*e2rc20_2+e2rc02*e2rc12_2+2*e2rc01*e2rc11*e2rc12+2*e2rc00*e2rc10*e2rc12-e2rc02*e2rc11_2-e2rc02*e2rc10_2+e2rc02_3+e2rc01_2*e2rc02+e2rc00_2*e2rc02;
00571     AMatrix(2, 10) = +2*e0rc02*e0rc22*e3rc22+2*e0rc01*e0rc21*e3rc22+2*e0rc00*e0rc20*e3rc22+2*e0rc01*e0rc22*e3rc21-2*e0rc02*e0rc21*e3rc21+2*e0rc00*e0rc22*e3rc20-2*e0rc02*e0rc20*e3rc20+2*e0rc02*e0rc12*e3rc12+2*e0rc01*e0rc11*e3rc12+2*e0rc00*e0rc10*e3rc12+2*e0rc01*e0rc12*e3rc11-2*e0rc02*e0rc11*e3rc11+2*e0rc00*e0rc12*e3rc10-2*e0rc02*e0rc10*e3rc10+e0rc22_2*e3rc02-e0rc21_2*e3rc02-e0rc20_2*e3rc02+e0rc12_2*e3rc02-e0rc11_2*e3rc02-e0rc10_2*e3rc02+3*e0rc02_2*e3rc02+e0rc01_2*e3rc02+e0rc00_2*e3rc02+2*e0rc21*e0rc22*e3rc01+2*e0rc11*e0rc12*e3rc01+2*e0rc01*e0rc02*e3rc01+2*e0rc20*e0rc22*e3rc00+2*e0rc10*e0rc12*e3rc00+2*e0rc00*e0rc02*e3rc00;
00572     AMatrix(2, 11) = +2*e0rc02*e1rc22*e3rc22+2*e0rc01*e1rc21*e3rc22+2*e0rc00*e1rc20*e3rc22+2*e0rc22*e1rc02*e3rc22+2*e0rc21*e1rc01*e3rc22+2*e0rc20*e1rc00*e3rc22+2*e0rc01*e1rc22*e3rc21-2*e0rc02*e1rc21*e3rc21-2*e0rc21*e1rc02*e3rc21+2*e0rc22*e1rc01*e3rc21+2*e0rc00*e1rc22*e3rc20-2*e0rc02*e1rc20*e3rc20-2*e0rc20*e1rc02*e3rc20+2*e0rc22*e1rc00*e3rc20+2*e0rc02*e1rc12*e3rc12+2*e0rc01*e1rc11*e3rc12+2*e0rc00*e1rc10*e3rc12+2*e0rc12*e1rc02*e3rc12+2*e0rc11*e1rc01*e3rc12+2*e0rc10*e1rc00*e3rc12+2*e0rc01*e1rc12*e3rc11-2*e0rc02*e1rc11*e3rc11-2*e0rc11*e1rc02*e3rc11+2*e0rc12*e1rc01*e3rc11+2*e0rc00*e1rc12*e3rc10-2*e0rc02*e1rc10*e3rc10-2*e0rc10*e1rc02*e3rc10+2*e0rc12*e1rc00*e3rc10+2*e0rc22*e1rc22*e3rc02-2*e0rc21*e1rc21*e3rc02-2*e0rc20*e1rc20*e3rc02+2*e0rc12*e1rc12*e3rc02-2*e0rc11*e1rc11*e3rc02-2*e0rc10*e1rc10*e3rc02+6*e0rc02*e1rc02*e3rc02+2*e0rc01*e1rc01*e3rc02+2*e0rc00*e1rc00*e3rc02+2*e0rc21*e1rc22*e3rc01+2*e0rc22*e1rc21*e3rc01+2*e0rc11*e1rc12*e3rc01+2*e0rc12*e1rc11*e3rc01+2*e0rc01*e1rc02*e3rc01+2*e0rc02*e1rc01*e3rc01+2*e0rc20*e1rc22*e3rc00+2*e0rc22*e1rc20*e3rc00+2*e0rc10*e1rc12*e3rc00+2*e0rc12*e1rc10*e3rc00+2*e0rc00*e1rc02*e3rc00+2*e0rc02*e1rc00*e3rc00;
00573     AMatrix(2, 12) = +2*e0rc02*e2rc22*e3rc22+2*e0rc01*e2rc21*e3rc22+2*e0rc00*e2rc20*e3rc22+2*e0rc22*e2rc02*e3rc22+2*e0rc21*e2rc01*e3rc22+2*e0rc20*e2rc00*e3rc22+2*e0rc01*e2rc22*e3rc21-2*e0rc02*e2rc21*e3rc21-2*e0rc21*e2rc02*e3rc21+2*e0rc22*e2rc01*e3rc21+2*e0rc00*e2rc22*e3rc20-2*e0rc02*e2rc20*e3rc20-2*e0rc20*e2rc02*e3rc20+2*e0rc22*e2rc00*e3rc20+2*e0rc02*e2rc12*e3rc12+2*e0rc01*e2rc11*e3rc12+2*e0rc00*e2rc10*e3rc12+2*e0rc12*e2rc02*e3rc12+2*e0rc11*e2rc01*e3rc12+2*e0rc10*e2rc00*e3rc12+2*e0rc01*e2rc12*e3rc11-2*e0rc02*e2rc11*e3rc11-2*e0rc11*e2rc02*e3rc11+2*e0rc12*e2rc01*e3rc11+2*e0rc00*e2rc12*e3rc10-2*e0rc02*e2rc10*e3rc10-2*e0rc10*e2rc02*e3rc10+2*e0rc12*e2rc00*e3rc10+2*e0rc22*e2rc22*e3rc02-2*e0rc21*e2rc21*e3rc02-2*e0rc20*e2rc20*e3rc02+2*e0rc12*e2rc12*e3rc02-2*e0rc11*e2rc11*e3rc02-2*e0rc10*e2rc10*e3rc02+6*e0rc02*e2rc02*e3rc02+2*e0rc01*e2rc01*e3rc02+2*e0rc00*e2rc00*e3rc02+2*e0rc21*e2rc22*e3rc01+2*e0rc22*e2rc21*e3rc01+2*e0rc11*e2rc12*e3rc01+2*e0rc12*e2rc11*e3rc01+2*e0rc01*e2rc02*e3rc01+2*e0rc02*e2rc01*e3rc01+2*e0rc20*e2rc22*e3rc00+2*e0rc22*e2rc20*e3rc00+2*e0rc10*e2rc12*e3rc00+2*e0rc12*e2rc10*e3rc00+2*e0rc00*e2rc02*e3rc00+2*e0rc02*e2rc00*e3rc00;
00574     AMatrix(2, 13) = +2*e1rc02*e1rc22*e3rc22+2*e1rc01*e1rc21*e3rc22+2*e1rc00*e1rc20*e3rc22+2*e1rc01*e1rc22*e3rc21-2*e1rc02*e1rc21*e3rc21+2*e1rc00*e1rc22*e3rc20-2*e1rc02*e1rc20*e3rc20+2*e1rc02*e1rc12*e3rc12+2*e1rc01*e1rc11*e3rc12+2*e1rc00*e1rc10*e3rc12+2*e1rc01*e1rc12*e3rc11-2*e1rc02*e1rc11*e3rc11+2*e1rc00*e1rc12*e3rc10-2*e1rc02*e1rc10*e3rc10+e1rc22_2*e3rc02-e1rc21_2*e3rc02-e1rc20_2*e3rc02+e1rc12_2*e3rc02-e1rc11_2*e3rc02-e1rc10_2*e3rc02+3*e1rc02_2*e3rc02+e1rc01_2*e3rc02+e1rc00_2*e3rc02+2*e1rc21*e1rc22*e3rc01+2*e1rc11*e1rc12*e3rc01+2*e1rc01*e1rc02*e3rc01+2*e1rc20*e1rc22*e3rc00+2*e1rc10*e1rc12*e3rc00+2*e1rc00*e1rc02*e3rc00;
00575     AMatrix(2, 14) = +2*e1rc02*e2rc22*e3rc22+2*e1rc01*e2rc21*e3rc22+2*e1rc00*e2rc20*e3rc22+2*e1rc22*e2rc02*e3rc22+2*e1rc21*e2rc01*e3rc22+2*e1rc20*e2rc00*e3rc22+2*e1rc01*e2rc22*e3rc21-2*e1rc02*e2rc21*e3rc21-2*e1rc21*e2rc02*e3rc21+2*e1rc22*e2rc01*e3rc21+2*e1rc00*e2rc22*e3rc20-2*e1rc02*e2rc20*e3rc20-2*e1rc20*e2rc02*e3rc20+2*e1rc22*e2rc00*e3rc20+2*e1rc02*e2rc12*e3rc12+2*e1rc01*e2rc11*e3rc12+2*e1rc00*e2rc10*e3rc12+2*e1rc12*e2rc02*e3rc12+2*e1rc11*e2rc01*e3rc12+2*e1rc10*e2rc00*e3rc12+2*e1rc01*e2rc12*e3rc11-2*e1rc02*e2rc11*e3rc11-2*e1rc11*e2rc02*e3rc11+2*e1rc12*e2rc01*e3rc11+2*e1rc00*e2rc12*e3rc10-2*e1rc02*e2rc10*e3rc10-2*e1rc10*e2rc02*e3rc10+2*e1rc12*e2rc00*e3rc10+2*e1rc22*e2rc22*e3rc02-2*e1rc21*e2rc21*e3rc02-2*e1rc20*e2rc20*e3rc02+2*e1rc12*e2rc12*e3rc02-2*e1rc11*e2rc11*e3rc02-2*e1rc10*e2rc10*e3rc02+6*e1rc02*e2rc02*e3rc02+2*e1rc01*e2rc01*e3rc02+2*e1rc00*e2rc00*e3rc02+2*e1rc21*e2rc22*e3rc01+2*e1rc22*e2rc21*e3rc01+2*e1rc11*e2rc12*e3rc01+2*e1rc12*e2rc11*e3rc01+2*e1rc01*e2rc02*e3rc01+2*e1rc02*e2rc01*e3rc01+2*e1rc20*e2rc22*e3rc00+2*e1rc22*e2rc20*e3rc00+2*e1rc10*e2rc12*e3rc00+2*e1rc12*e2rc10*e3rc00+2*e1rc00*e2rc02*e3rc00+2*e1rc02*e2rc00*e3rc00;
00576     AMatrix(2, 15) = +2*e2rc02*e2rc22*e3rc22+2*e2rc01*e2rc21*e3rc22+2*e2rc00*e2rc20*e3rc22+2*e2rc01*e2rc22*e3rc21-2*e2rc02*e2rc21*e3rc21+2*e2rc00*e2rc22*e3rc20-2*e2rc02*e2rc20*e3rc20+2*e2rc02*e2rc12*e3rc12+2*e2rc01*e2rc11*e3rc12+2*e2rc00*e2rc10*e3rc12+2*e2rc01*e2rc12*e3rc11-2*e2rc02*e2rc11*e3rc11+2*e2rc00*e2rc12*e3rc10-2*e2rc02*e2rc10*e3rc10+e2rc22_2*e3rc02-e2rc21_2*e3rc02-e2rc20_2*e3rc02+e2rc12_2*e3rc02-e2rc11_2*e3rc02-e2rc10_2*e3rc02+3*e2rc02_2*e3rc02+e2rc01_2*e3rc02+e2rc00_2*e3rc02+2*e2rc21*e2rc22*e3rc01+2*e2rc11*e2rc12*e3rc01+2*e2rc01*e2rc02*e3rc01+2*e2rc20*e2rc22*e3rc00+2*e2rc10*e2rc12*e3rc00+2*e2rc00*e2rc02*e3rc00;
00577     AMatrix(2, 16) = +e0rc02*e3rc22_2+2*e0rc01*e3rc21*e3rc22+2*e0rc00*e3rc20*e3rc22+2*e0rc22*e3rc02*e3rc22+2*e0rc21*e3rc01*e3rc22+2*e0rc20*e3rc00*e3rc22-e0rc02*e3rc21_2-2*e0rc21*e3rc02*e3rc21+2*e0rc22*e3rc01*e3rc21-e0rc02*e3rc20_2-2*e0rc20*e3rc02*e3rc20+2*e0rc22*e3rc00*e3rc20+e0rc02*e3rc12_2+2*e0rc01*e3rc11*e3rc12+2*e0rc00*e3rc10*e3rc12+2*e0rc12*e3rc02*e3rc12+2*e0rc11*e3rc01*e3rc12+2*e0rc10*e3rc00*e3rc12-e0rc02*e3rc11_2-2*e0rc11*e3rc02*e3rc11+2*e0rc12*e3rc01*e3rc11-e0rc02*e3rc10_2-2*e0rc10*e3rc02*e3rc10+2*e0rc12*e3rc00*e3rc10+3*e0rc02*e3rc02_2+2*e0rc01*e3rc01*e3rc02+2*e0rc00*e3rc00*e3rc02+e0rc02*e3rc01_2+e0rc02*e3rc00_2;
00578     AMatrix(2, 17) = +e1rc02*e3rc22_2+2*e1rc01*e3rc21*e3rc22+2*e1rc00*e3rc20*e3rc22+2*e1rc22*e3rc02*e3rc22+2*e1rc21*e3rc01*e3rc22+2*e1rc20*e3rc00*e3rc22-e1rc02*e3rc21_2-2*e1rc21*e3rc02*e3rc21+2*e1rc22*e3rc01*e3rc21-e1rc02*e3rc20_2-2*e1rc20*e3rc02*e3rc20+2*e1rc22*e3rc00*e3rc20+e1rc02*e3rc12_2+2*e1rc01*e3rc11*e3rc12+2*e1rc00*e3rc10*e3rc12+2*e1rc12*e3rc02*e3rc12+2*e1rc11*e3rc01*e3rc12+2*e1rc10*e3rc00*e3rc12-e1rc02*e3rc11_2-2*e1rc11*e3rc02*e3rc11+2*e1rc12*e3rc01*e3rc11-e1rc02*e3rc10_2-2*e1rc10*e3rc02*e3rc10+2*e1rc12*e3rc00*e3rc10+3*e1rc02*e3rc02_2+2*e1rc01*e3rc01*e3rc02+2*e1rc00*e3rc00*e3rc02+e1rc02*e3rc01_2+e1rc02*e3rc00_2;
00579     AMatrix(2, 18) = +e2rc02*e3rc22_2+2*e2rc01*e3rc21*e3rc22+2*e2rc00*e3rc20*e3rc22+2*e2rc22*e3rc02*e3rc22+2*e2rc21*e3rc01*e3rc22+2*e2rc20*e3rc00*e3rc22-e2rc02*e3rc21_2-2*e2rc21*e3rc02*e3rc21+2*e2rc22*e3rc01*e3rc21-e2rc02*e3rc20_2-2*e2rc20*e3rc02*e3rc20+2*e2rc22*e3rc00*e3rc20+e2rc02*e3rc12_2+2*e2rc01*e3rc11*e3rc12+2*e2rc00*e3rc10*e3rc12+2*e2rc12*e3rc02*e3rc12+2*e2rc11*e3rc01*e3rc12+2*e2rc10*e3rc00*e3rc12-e2rc02*e3rc11_2-2*e2rc11*e3rc02*e3rc11+2*e2rc12*e3rc01*e3rc11-e2rc02*e3rc10_2-2*e2rc10*e3rc02*e3rc10+2*e2rc12*e3rc00*e3rc10+3*e2rc02*e3rc02_2+2*e2rc01*e3rc01*e3rc02+2*e2rc00*e3rc00*e3rc02+e2rc02*e3rc01_2+e2rc02*e3rc00_2;
00580     AMatrix(2, 19) = +e3rc02*e3rc22_2+2*e3rc01*e3rc21*e3rc22+2*e3rc00*e3rc20*e3rc22-e3rc02*e3rc21_2-e3rc02*e3rc20_2+e3rc02*e3rc12_2+2*e3rc01*e3rc11*e3rc12+2*e3rc00*e3rc10*e3rc12-e3rc02*e3rc11_2-e3rc02*e3rc10_2+e3rc02_3+e3rc01_2*e3rc02+e3rc00_2*e3rc02;
00581     AMatrix(3, 0) = -e0rc10*e0rc22_2+2*e0rc12*e0rc20*e0rc22-e0rc10*e0rc21_2+2*e0rc11*e0rc20*e0rc21+e0rc10*e0rc20_2+e0rc10*e0rc12_2+2*e0rc00*e0rc02*e0rc12+e0rc10*e0rc11_2+2*e0rc00*e0rc01*e0rc11+e0rc10_3-e0rc02_2*e0rc10-e0rc01_2*e0rc10+e0rc00_2*e0rc10;
00582     AMatrix(3, 1) = -2*e0rc10*e0rc22*e1rc22+2*e0rc12*e0rc20*e1rc22-2*e0rc10*e0rc21*e1rc21+2*e0rc11*e0rc20*e1rc21+2*e0rc12*e0rc22*e1rc20+2*e0rc11*e0rc21*e1rc20+2*e0rc10*e0rc20*e1rc20+2*e0rc20*e0rc22*e1rc12+2*e0rc10*e0rc12*e1rc12+2*e0rc00*e0rc02*e1rc12+2*e0rc20*e0rc21*e1rc11+2*e0rc10*e0rc11*e1rc11+2*e0rc00*e0rc01*e1rc11-e0rc22_2*e1rc10-e0rc21_2*e1rc10+e0rc20_2*e1rc10+e0rc12_2*e1rc10+e0rc11_2*e1rc10+3*e0rc10_2*e1rc10-e0rc02_2*e1rc10-e0rc01_2*e1rc10+e0rc00_2*e1rc10+2*e0rc00*e0rc12*e1rc02-2*e0rc02*e0rc10*e1rc02+2*e0rc00*e0rc11*e1rc01-2*e0rc01*e0rc10*e1rc01+2*e0rc02*e0rc12*e1rc00+2*e0rc01*e0rc11*e1rc00+2*e0rc00*e0rc10*e1rc00;
00583     AMatrix(3, 2) = -2*e0rc10*e0rc22*e2rc22+2*e0rc12*e0rc20*e2rc22-2*e0rc10*e0rc21*e2rc21+2*e0rc11*e0rc20*e2rc21+2*e0rc12*e0rc22*e2rc20+2*e0rc11*e0rc21*e2rc20+2*e0rc10*e0rc20*e2rc20+2*e0rc20*e0rc22*e2rc12+2*e0rc10*e0rc12*e2rc12+2*e0rc00*e0rc02*e2rc12+2*e0rc20*e0rc21*e2rc11+2*e0rc10*e0rc11*e2rc11+2*e0rc00*e0rc01*e2rc11-e0rc22_2*e2rc10-e0rc21_2*e2rc10+e0rc20_2*e2rc10+e0rc12_2*e2rc10+e0rc11_2*e2rc10+3*e0rc10_2*e2rc10-e0rc02_2*e2rc10-e0rc01_2*e2rc10+e0rc00_2*e2rc10+2*e0rc00*e0rc12*e2rc02-2*e0rc02*e0rc10*e2rc02+2*e0rc00*e0rc11*e2rc01-2*e0rc01*e0rc10*e2rc01+2*e0rc02*e0rc12*e2rc00+2*e0rc01*e0rc11*e2rc00+2*e0rc00*e0rc10*e2rc00;
00584     AMatrix(3, 3) = -e0rc10*e1rc22_2+2*e0rc12*e1rc20*e1rc22+2*e0rc20*e1rc12*e1rc22-2*e0rc22*e1rc10*e1rc22-e0rc10*e1rc21_2+2*e0rc11*e1rc20*e1rc21+2*e0rc20*e1rc11*e1rc21-2*e0rc21*e1rc10*e1rc21+e0rc10*e1rc20_2+2*e0rc22*e1rc12*e1rc20+2*e0rc21*e1rc11*e1rc20+2*e0rc20*e1rc10*e1rc20+e0rc10*e1rc12_2+2*e0rc12*e1rc10*e1rc12+2*e0rc00*e1rc02*e1rc12+2*e0rc02*e1rc00*e1rc12+e0rc10*e1rc11_2+2*e0rc11*e1rc10*e1rc11+2*e0rc00*e1rc01*e1rc11+2*e0rc01*e1rc00*e1rc11+3*e0rc10*e1rc10_2-2*e0rc02*e1rc02*e1rc10-2*e0rc01*e1rc01*e1rc10+2*e0rc00*e1rc00*e1rc10-e0rc10*e1rc02_2+2*e0rc12*e1rc00*e1rc02-e0rc10*e1rc01_2+2*e0rc11*e1rc00*e1rc01+e0rc10*e1rc00_2;
00585     AMatrix(3, 4) = -2*e0rc10*e1rc22*e2rc22+2*e0rc12*e1rc20*e2rc22+2*e0rc20*e1rc12*e2rc22-2*e0rc22*e1rc10*e2rc22-2*e0rc10*e1rc21*e2rc21+2*e0rc11*e1rc20*e2rc21+2*e0rc20*e1rc11*e2rc21-2*e0rc21*e1rc10*e2rc21+2*e0rc12*e1rc22*e2rc20+2*e0rc11*e1rc21*e2rc20+2*e0rc10*e1rc20*e2rc20+2*e0rc22*e1rc12*e2rc20+2*e0rc21*e1rc11*e2rc20+2*e0rc20*e1rc10*e2rc20+2*e0rc20*e1rc22*e2rc12+2*e0rc22*e1rc20*e2rc12+2*e0rc10*e1rc12*e2rc12+2*e0rc12*e1rc10*e2rc12+2*e0rc00*e1rc02*e2rc12+2*e0rc02*e1rc00*e2rc12+2*e0rc20*e1rc21*e2rc11+2*e0rc21*e1rc20*e2rc11+2*e0rc10*e1rc11*e2rc11+2*e0rc11*e1rc10*e2rc11+2*e0rc00*e1rc01*e2rc11+2*e0rc01*e1rc00*e2rc11-2*e0rc22*e1rc22*e2rc10-2*e0rc21*e1rc21*e2rc10+2*e0rc20*e1rc20*e2rc10+2*e0rc12*e1rc12*e2rc10+2*e0rc11*e1rc11*e2rc10+6*e0rc10*e1rc10*e2rc10-2*e0rc02*e1rc02*e2rc10-2*e0rc01*e1rc01*e2rc10+2*e0rc00*e1rc00*e2rc10+2*e0rc00*e1rc12*e2rc02-2*e0rc02*e1rc10*e2rc02-2*e0rc10*e1rc02*e2rc02+2*e0rc12*e1rc00*e2rc02+2*e0rc00*e1rc11*e2rc01-2*e0rc01*e1rc10*e2rc01-2*e0rc10*e1rc01*e2rc01+2*e0rc11*e1rc00*e2rc01+2*e0rc02*e1rc12*e2rc00+2*e0rc01*e1rc11*e2rc00+2*e0rc00*e1rc10*e2rc00+2*e0rc12*e1rc02*e2rc00+2*e0rc11*e1rc01*e2rc00+2*e0rc10*e1rc00*e2rc00;
00586     AMatrix(3, 5) = -e0rc10*e2rc22_2+2*e0rc12*e2rc20*e2rc22+2*e0rc20*e2rc12*e2rc22-2*e0rc22*e2rc10*e2rc22-e0rc10*e2rc21_2+2*e0rc11*e2rc20*e2rc21+2*e0rc20*e2rc11*e2rc21-2*e0rc21*e2rc10*e2rc21+e0rc10*e2rc20_2+2*e0rc22*e2rc12*e2rc20+2*e0rc21*e2rc11*e2rc20+2*e0rc20*e2rc10*e2rc20+e0rc10*e2rc12_2+2*e0rc12*e2rc10*e2rc12+2*e0rc00*e2rc02*e2rc12+2*e0rc02*e2rc00*e2rc12+e0rc10*e2rc11_2+2*e0rc11*e2rc10*e2rc11+2*e0rc00*e2rc01*e2rc11+2*e0rc01*e2rc00*e2rc11+3*e0rc10*e2rc10_2-2*e0rc02*e2rc02*e2rc10-2*e0rc01*e2rc01*e2rc10+2*e0rc00*e2rc00*e2rc10-e0rc10*e2rc02_2+2*e0rc12*e2rc00*e2rc02-e0rc10*e2rc01_2+2*e0rc11*e2rc00*e2rc01+e0rc10*e2rc00_2;
00587     AMatrix(3, 6) = -e1rc10*e1rc22_2+2*e1rc12*e1rc20*e1rc22-e1rc10*e1rc21_2+2*e1rc11*e1rc20*e1rc21+e1rc10*e1rc20_2+e1rc10*e1rc12_2+2*e1rc00*e1rc02*e1rc12+e1rc10*e1rc11_2+2*e1rc00*e1rc01*e1rc11+e1rc10_3-e1rc02_2*e1rc10-e1rc01_2*e1rc10+e1rc00_2*e1rc10;
00588     AMatrix(3, 7) = -2*e1rc10*e1rc22*e2rc22+2*e1rc12*e1rc20*e2rc22-2*e1rc10*e1rc21*e2rc21+2*e1rc11*e1rc20*e2rc21+2*e1rc12*e1rc22*e2rc20+2*e1rc11*e1rc21*e2rc20+2*e1rc10*e1rc20*e2rc20+2*e1rc20*e1rc22*e2rc12+2*e1rc10*e1rc12*e2rc12+2*e1rc00*e1rc02*e2rc12+2*e1rc20*e1rc21*e2rc11+2*e1rc10*e1rc11*e2rc11+2*e1rc00*e1rc01*e2rc11-e1rc22_2*e2rc10-e1rc21_2*e2rc10+e1rc20_2*e2rc10+e1rc12_2*e2rc10+e1rc11_2*e2rc10+3*e1rc10_2*e2rc10-e1rc02_2*e2rc10-e1rc01_2*e2rc10+e1rc00_2*e2rc10+2*e1rc00*e1rc12*e2rc02-2*e1rc02*e1rc10*e2rc02+2*e1rc00*e1rc11*e2rc01-2*e1rc01*e1rc10*e2rc01+2*e1rc02*e1rc12*e2rc00+2*e1rc01*e1rc11*e2rc00+2*e1rc00*e1rc10*e2rc00;
00589     AMatrix(3, 8) = -e1rc10*e2rc22_2+2*e1rc12*e2rc20*e2rc22+2*e1rc20*e2rc12*e2rc22-2*e1rc22*e2rc10*e2rc22-e1rc10*e2rc21_2+2*e1rc11*e2rc20*e2rc21+2*e1rc20*e2rc11*e2rc21-2*e1rc21*e2rc10*e2rc21+e1rc10*e2rc20_2+2*e1rc22*e2rc12*e2rc20+2*e1rc21*e2rc11*e2rc20+2*e1rc20*e2rc10*e2rc20+e1rc10*e2rc12_2+2*e1rc12*e2rc10*e2rc12+2*e1rc00*e2rc02*e2rc12+2*e1rc02*e2rc00*e2rc12+e1rc10*e2rc11_2+2*e1rc11*e2rc10*e2rc11+2*e1rc00*e2rc01*e2rc11+2*e1rc01*e2rc00*e2rc11+3*e1rc10*e2rc10_2-2*e1rc02*e2rc02*e2rc10-2*e1rc01*e2rc01*e2rc10+2*e1rc00*e2rc00*e2rc10-e1rc10*e2rc02_2+2*e1rc12*e2rc00*e2rc02-e1rc10*e2rc01_2+2*e1rc11*e2rc00*e2rc01+e1rc10*e2rc00_2;
00590     AMatrix(3, 9) = -e2rc10*e2rc22_2+2*e2rc12*e2rc20*e2rc22-e2rc10*e2rc21_2+2*e2rc11*e2rc20*e2rc21+e2rc10*e2rc20_2+e2rc10*e2rc12_2+2*e2rc00*e2rc02*e2rc12+e2rc10*e2rc11_2+2*e2rc00*e2rc01*e2rc11+e2rc10_3-e2rc02_2*e2rc10-e2rc01_2*e2rc10+e2rc00_2*e2rc10;
00591     AMatrix(3, 10) = -2*e0rc10*e0rc22*e3rc22+2*e0rc12*e0rc20*e3rc22-2*e0rc10*e0rc21*e3rc21+2*e0rc11*e0rc20*e3rc21+2*e0rc12*e0rc22*e3rc20+2*e0rc11*e0rc21*e3rc20+2*e0rc10*e0rc20*e3rc20+2*e0rc20*e0rc22*e3rc12+2*e0rc10*e0rc12*e3rc12+2*e0rc00*e0rc02*e3rc12+2*e0rc20*e0rc21*e3rc11+2*e0rc10*e0rc11*e3rc11+2*e0rc00*e0rc01*e3rc11-e0rc22_2*e3rc10-e0rc21_2*e3rc10+e0rc20_2*e3rc10+e0rc12_2*e3rc10+e0rc11_2*e3rc10+3*e0rc10_2*e3rc10-e0rc02_2*e3rc10-e0rc01_2*e3rc10+e0rc00_2*e3rc10+2*e0rc00*e0rc12*e3rc02-2*e0rc02*e0rc10*e3rc02+2*e0rc00*e0rc11*e3rc01-2*e0rc01*e0rc10*e3rc01+2*e0rc02*e0rc12*e3rc00+2*e0rc01*e0rc11*e3rc00+2*e0rc00*e0rc10*e3rc00;
00592     AMatrix(3, 11) = -2*e0rc10*e1rc22*e3rc22+2*e0rc12*e1rc20*e3rc22+2*e0rc20*e1rc12*e3rc22-2*e0rc22*e1rc10*e3rc22-2*e0rc10*e1rc21*e3rc21+2*e0rc11*e1rc20*e3rc21+2*e0rc20*e1rc11*e3rc21-2*e0rc21*e1rc10*e3rc21+2*e0rc12*e1rc22*e3rc20+2*e0rc11*e1rc21*e3rc20+2*e0rc10*e1rc20*e3rc20+2*e0rc22*e1rc12*e3rc20+2*e0rc21*e1rc11*e3rc20+2*e0rc20*e1rc10*e3rc20+2*e0rc20*e1rc22*e3rc12+2*e0rc22*e1rc20*e3rc12+2*e0rc10*e1rc12*e3rc12+2*e0rc12*e1rc10*e3rc12+2*e0rc00*e1rc02*e3rc12+2*e0rc02*e1rc00*e3rc12+2*e0rc20*e1rc21*e3rc11+2*e0rc21*e1rc20*e3rc11+2*e0rc10*e1rc11*e3rc11+2*e0rc11*e1rc10*e3rc11+2*e0rc00*e1rc01*e3rc11+2*e0rc01*e1rc00*e3rc11-2*e0rc22*e1rc22*e3rc10-2*e0rc21*e1rc21*e3rc10+2*e0rc20*e1rc20*e3rc10+2*e0rc12*e1rc12*e3rc10+2*e0rc11*e1rc11*e3rc10+6*e0rc10*e1rc10*e3rc10-2*e0rc02*e1rc02*e3rc10-2*e0rc01*e1rc01*e3rc10+2*e0rc00*e1rc00*e3rc10+2*e0rc00*e1rc12*e3rc02-2*e0rc02*e1rc10*e3rc02-2*e0rc10*e1rc02*e3rc02+2*e0rc12*e1rc00*e3rc02+2*e0rc00*e1rc11*e3rc01-2*e0rc01*e1rc10*e3rc01-2*e0rc10*e1rc01*e3rc01+2*e0rc11*e1rc00*e3rc01+2*e0rc02*e1rc12*e3rc00+2*e0rc01*e1rc11*e3rc00+2*e0rc00*e1rc10*e3rc00+2*e0rc12*e1rc02*e3rc00+2*e0rc11*e1rc01*e3rc00+2*e0rc10*e1rc00*e3rc00;
00593     AMatrix(3, 12) = -2*e0rc10*e2rc22*e3rc22+2*e0rc12*e2rc20*e3rc22+2*e0rc20*e2rc12*e3rc22-2*e0rc22*e2rc10*e3rc22-2*e0rc10*e2rc21*e3rc21+2*e0rc11*e2rc20*e3rc21+2*e0rc20*e2rc11*e3rc21-2*e0rc21*e2rc10*e3rc21+2*e0rc12*e2rc22*e3rc20+2*e0rc11*e2rc21*e3rc20+2*e0rc10*e2rc20*e3rc20+2*e0rc22*e2rc12*e3rc20+2*e0rc21*e2rc11*e3rc20+2*e0rc20*e2rc10*e3rc20+2*e0rc20*e2rc22*e3rc12+2*e0rc22*e2rc20*e3rc12+2*e0rc10*e2rc12*e3rc12+2*e0rc12*e2rc10*e3rc12+2*e0rc00*e2rc02*e3rc12+2*e0rc02*e2rc00*e3rc12+2*e0rc20*e2rc21*e3rc11+2*e0rc21*e2rc20*e3rc11+2*e0rc10*e2rc11*e3rc11+2*e0rc11*e2rc10*e3rc11+2*e0rc00*e2rc01*e3rc11+2*e0rc01*e2rc00*e3rc11-2*e0rc22*e2rc22*e3rc10-2*e0rc21*e2rc21*e3rc10+2*e0rc20*e2rc20*e3rc10+2*e0rc12*e2rc12*e3rc10+2*e0rc11*e2rc11*e3rc10+6*e0rc10*e2rc10*e3rc10-2*e0rc02*e2rc02*e3rc10-2*e0rc01*e2rc01*e3rc10+2*e0rc00*e2rc00*e3rc10+2*e0rc00*e2rc12*e3rc02-2*e0rc02*e2rc10*e3rc02-2*e0rc10*e2rc02*e3rc02+2*e0rc12*e2rc00*e3rc02+2*e0rc00*e2rc11*e3rc01-2*e0rc01*e2rc10*e3rc01-2*e0rc10*e2rc01*e3rc01+2*e0rc11*e2rc00*e3rc01+2*e0rc02*e2rc12*e3rc00+2*e0rc01*e2rc11*e3rc00+2*e0rc00*e2rc10*e3rc00+2*e0rc12*e2rc02*e3rc00+2*e0rc11*e2rc01*e3rc00+2*e0rc10*e2rc00*e3rc00;
00594     AMatrix(3, 13) = -2*e1rc10*e1rc22*e3rc22+2*e1rc12*e1rc20*e3rc22-2*e1rc10*e1rc21*e3rc21+2*e1rc11*e1rc20*e3rc21+2*e1rc12*e1rc22*e3rc20+2*e1rc11*e1rc21*e3rc20+2*e1rc10*e1rc20*e3rc20+2*e1rc20*e1rc22*e3rc12+2*e1rc10*e1rc12*e3rc12+2*e1rc00*e1rc02*e3rc12+2*e1rc20*e1rc21*e3rc11+2*e1rc10*e1rc11*e3rc11+2*e1rc00*e1rc01*e3rc11-e1rc22_2*e3rc10-e1rc21_2*e3rc10+e1rc20_2*e3rc10+e1rc12_2*e3rc10+e1rc11_2*e3rc10+3*e1rc10_2*e3rc10-e1rc02_2*e3rc10-e1rc01_2*e3rc10+e1rc00_2*e3rc10+2*e1rc00*e1rc12*e3rc02-2*e1rc02*e1rc10*e3rc02+2*e1rc00*e1rc11*e3rc01-2*e1rc01*e1rc10*e3rc01+2*e1rc02*e1rc12*e3rc00+2*e1rc01*e1rc11*e3rc00+2*e1rc00*e1rc10*e3rc00;
00595     AMatrix(3, 14) = -2*e1rc10*e2rc22*e3rc22+2*e1rc12*e2rc20*e3rc22+2*e1rc20*e2rc12*e3rc22-2*e1rc22*e2rc10*e3rc22-2*e1rc10*e2rc21*e3rc21+2*e1rc11*e2rc20*e3rc21+2*e1rc20*e2rc11*e3rc21-2*e1rc21*e2rc10*e3rc21+2*e1rc12*e2rc22*e3rc20+2*e1rc11*e2rc21*e3rc20+2*e1rc10*e2rc20*e3rc20+2*e1rc22*e2rc12*e3rc20+2*e1rc21*e2rc11*e3rc20+2*e1rc20*e2rc10*e3rc20+2*e1rc20*e2rc22*e3rc12+2*e1rc22*e2rc20*e3rc12+2*e1rc10*e2rc12*e3rc12+2*e1rc12*e2rc10*e3rc12+2*e1rc00*e2rc02*e3rc12+2*e1rc02*e2rc00*e3rc12+2*e1rc20*e2rc21*e3rc11+2*e1rc21*e2rc20*e3rc11+2*e1rc10*e2rc11*e3rc11+2*e1rc11*e2rc10*e3rc11+2*e1rc00*e2rc01*e3rc11+2*e1rc01*e2rc00*e3rc11-2*e1rc22*e2rc22*e3rc10-2*e1rc21*e2rc21*e3rc10+2*e1rc20*e2rc20*e3rc10+2*e1rc12*e2rc12*e3rc10+2*e1rc11*e2rc11*e3rc10+6*e1rc10*e2rc10*e3rc10-2*e1rc02*e2rc02*e3rc10-2*e1rc01*e2rc01*e3rc10+2*e1rc00*e2rc00*e3rc10+2*e1rc00*e2rc12*e3rc02-2*e1rc02*e2rc10*e3rc02-2*e1rc10*e2rc02*e3rc02+2*e1rc12*e2rc00*e3rc02+2*e1rc00*e2rc11*e3rc01-2*e1rc01*e2rc10*e3rc01-2*e1rc10*e2rc01*e3rc01+2*e1rc11*e2rc00*e3rc01+2*e1rc02*e2rc12*e3rc00+2*e1rc01*e2rc11*e3rc00+2*e1rc00*e2rc10*e3rc00+2*e1rc12*e2rc02*e3rc00+2*e1rc11*e2rc01*e3rc00+2*e1rc10*e2rc00*e3rc00;
00596     AMatrix(3, 15) = -2*e2rc10*e2rc22*e3rc22+2*e2rc12*e2rc20*e3rc22-2*e2rc10*e2rc21*e3rc21+2*e2rc11*e2rc20*e3rc21+2*e2rc12*e2rc22*e3rc20+2*e2rc11*e2rc21*e3rc20+2*e2rc10*e2rc20*e3rc20+2*e2rc20*e2rc22*e3rc12+2*e2rc10*e2rc12*e3rc12+2*e2rc00*e2rc02*e3rc12+2*e2rc20*e2rc21*e3rc11+2*e2rc10*e2rc11*e3rc11+2*e2rc00*e2rc01*e3rc11-e2rc22_2*e3rc10-e2rc21_2*e3rc10+e2rc20_2*e3rc10+e2rc12_2*e3rc10+e2rc11_2*e3rc10+3*e2rc10_2*e3rc10-e2rc02_2*e3rc10-e2rc01_2*e3rc10+e2rc00_2*e3rc10+2*e2rc00*e2rc12*e3rc02-2*e2rc02*e2rc10*e3rc02+2*e2rc00*e2rc11*e3rc01-2*e2rc01*e2rc10*e3rc01+2*e2rc02*e2rc12*e3rc00+2*e2rc01*e2rc11*e3rc00+2*e2rc00*e2rc10*e3rc00;
00597     AMatrix(3, 16) = -e0rc10*e3rc22_2+2*e0rc12*e3rc20*e3rc22+2*e0rc20*e3rc12*e3rc22-2*e0rc22*e3rc10*e3rc22-e0rc10*e3rc21_2+2*e0rc11*e3rc20*e3rc21+2*e0rc20*e3rc11*e3rc21-2*e0rc21*e3rc10*e3rc21+e0rc10*e3rc20_2+2*e0rc22*e3rc12*e3rc20+2*e0rc21*e3rc11*e3rc20+2*e0rc20*e3rc10*e3rc20+e0rc10*e3rc12_2+2*e0rc12*e3rc10*e3rc12+2*e0rc00*e3rc02*e3rc12+2*e0rc02*e3rc00*e3rc12+e0rc10*e3rc11_2+2*e0rc11*e3rc10*e3rc11+2*e0rc00*e3rc01*e3rc11+2*e0rc01*e3rc00*e3rc11+3*e0rc10*e3rc10_2-2*e0rc02*e3rc02*e3rc10-2*e0rc01*e3rc01*e3rc10+2*e0rc00*e3rc00*e3rc10-e0rc10*e3rc02_2+2*e0rc12*e3rc00*e3rc02-e0rc10*e3rc01_2+2*e0rc11*e3rc00*e3rc01+e0rc10*e3rc00_2;
00598     AMatrix(3, 17) = -e1rc10*e3rc22_2+2*e1rc12*e3rc20*e3rc22+2*e1rc20*e3rc12*e3rc22-2*e1rc22*e3rc10*e3rc22-e1rc10*e3rc21_2+2*e1rc11*e3rc20*e3rc21+2*e1rc20*e3rc11*e3rc21-2*e1rc21*e3rc10*e3rc21+e1rc10*e3rc20_2+2*e1rc22*e3rc12*e3rc20+2*e1rc21*e3rc11*e3rc20+2*e1rc20*e3rc10*e3rc20+e1rc10*e3rc12_2+2*e1rc12*e3rc10*e3rc12+2*e1rc00*e3rc02*e3rc12+2*e1rc02*e3rc00*e3rc12+e1rc10*e3rc11_2+2*e1rc11*e3rc10*e3rc11+2*e1rc00*e3rc01*e3rc11+2*e1rc01*e3rc00*e3rc11+3*e1rc10*e3rc10_2-2*e1rc02*e3rc02*e3rc10-2*e1rc01*e3rc01*e3rc10+2*e1rc00*e3rc00*e3rc10-e1rc10*e3rc02_2+2*e1rc12*e3rc00*e3rc02-e1rc10*e3rc01_2+2*e1rc11*e3rc00*e3rc01+e1rc10*e3rc00_2;
00599     AMatrix(3, 18) = -e2rc10*e3rc22_2+2*e2rc12*e3rc20*e3rc22+2*e2rc20*e3rc12*e3rc22-2*e2rc22*e3rc10*e3rc22-e2rc10*e3rc21_2+2*e2rc11*e3rc20*e3rc21+2*e2rc20*e3rc11*e3rc21-2*e2rc21*e3rc10*e3rc21+e2rc10*e3rc20_2+2*e2rc22*e3rc12*e3rc20+2*e2rc21*e3rc11*e3rc20+2*e2rc20*e3rc10*e3rc20+e2rc10*e3rc12_2+2*e2rc12*e3rc10*e3rc12+2*e2rc00*e3rc02*e3rc12+2*e2rc02*e3rc00*e3rc12+e2rc10*e3rc11_2+2*e2rc11*e3rc10*e3rc11+2*e2rc00*e3rc01*e3rc11+2*e2rc01*e3rc00*e3rc11+3*e2rc10*e3rc10_2-2*e2rc02*e3rc02*e3rc10-2*e2rc01*e3rc01*e3rc10+2*e2rc00*e3rc00*e3rc10-e2rc10*e3rc02_2+2*e2rc12*e3rc00*e3rc02-e2rc10*e3rc01_2+2*e2rc11*e3rc00*e3rc01+e2rc10*e3rc00_2;
00600     AMatrix(3, 19) = -e3rc10*e3rc22_2+2*e3rc12*e3rc20*e3rc22-e3rc10*e3rc21_2+2*e3rc11*e3rc20*e3rc21+e3rc10*e3rc20_2+e3rc10*e3rc12_2+2*e3rc00*e3rc02*e3rc12+e3rc10*e3rc11_2+2*e3rc00*e3rc01*e3rc11+e3rc10_3-e3rc02_2*e3rc10-e3rc01_2*e3rc10+e3rc00_2*e3rc10;
00601     AMatrix(4, 0) = -e0rc11*e0rc22_2+2*e0rc12*e0rc21*e0rc22+e0rc11*e0rc21_2+2*e0rc10*e0rc20*e0rc21-e0rc11*e0rc20_2+e0rc11*e0rc12_2+2*e0rc01*e0rc02*e0rc12+e0rc11_3+e0rc10_2*e0rc11-e0rc02_2*e0rc11+e0rc01_2*e0rc11-e0rc00_2*e0rc11+2*e0rc00*e0rc01*e0rc10;
00602     AMatrix(4, 1) = -2*e0rc11*e0rc22*e1rc22+2*e0rc12*e0rc21*e1rc22+2*e0rc12*e0rc22*e1rc21+2*e0rc11*e0rc21*e1rc21+2*e0rc10*e0rc20*e1rc21+2*e0rc10*e0rc21*e1rc20-2*e0rc11*e0rc20*e1rc20+2*e0rc21*e0rc22*e1rc12+2*e0rc11*e0rc12*e1rc12+2*e0rc01*e0rc02*e1rc12-e0rc22_2*e1rc11+e0rc21_2*e1rc11-e0rc20_2*e1rc11+e0rc12_2*e1rc11+3*e0rc11_2*e1rc11+e0rc10_2*e1rc11-e0rc02_2*e1rc11+e0rc01_2*e1rc11-e0rc00_2*e1rc11+2*e0rc20*e0rc21*e1rc10+2*e0rc10*e0rc11*e1rc10+2*e0rc00*e0rc01*e1rc10+2*e0rc01*e0rc12*e1rc02-2*e0rc02*e0rc11*e1rc02+2*e0rc02*e0rc12*e1rc01+2*e0rc01*e0rc11*e1rc01+2*e0rc00*e0rc10*e1rc01-2*e0rc00*e0rc11*e1rc00+2*e0rc01*e0rc10*e1rc00;
00603     AMatrix(4, 2) = -2*e0rc11*e0rc22*e2rc22+2*e0rc12*e0rc21*e2rc22+2*e0rc12*e0rc22*e2rc21+2*e0rc11*e0rc21*e2rc21+2*e0rc10*e0rc20*e2rc21+2*e0rc10*e0rc21*e2rc20-2*e0rc11*e0rc20*e2rc20+2*e0rc21*e0rc22*e2rc12+2*e0rc11*e0rc12*e2rc12+2*e0rc01*e0rc02*e2rc12-e0rc22_2*e2rc11+e0rc21_2*e2rc11-e0rc20_2*e2rc11+e0rc12_2*e2rc11+3*e0rc11_2*e2rc11+e0rc10_2*e2rc11-e0rc02_2*e2rc11+e0rc01_2*e2rc11-e0rc00_2*e2rc11+2*e0rc20*e0rc21*e2rc10+2*e0rc10*e0rc11*e2rc10+2*e0rc00*e0rc01*e2rc10+2*e0rc01*e0rc12*e2rc02-2*e0rc02*e0rc11*e2rc02+2*e0rc02*e0rc12*e2rc01+2*e0rc01*e0rc11*e2rc01+2*e0rc00*e0rc10*e2rc01-2*e0rc00*e0rc11*e2rc00+2*e0rc01*e0rc10*e2rc00;
00604     AMatrix(4, 3) = -e0rc11*e1rc22_2+2*e0rc12*e1rc21*e1rc22+2*e0rc21*e1rc12*e1rc22-2*e0rc22*e1rc11*e1rc22+e0rc11*e1rc21_2+2*e0rc10*e1rc20*e1rc21+2*e0rc22*e1rc12*e1rc21+2*e0rc21*e1rc11*e1rc21+2*e0rc20*e1rc10*e1rc21-e0rc11*e1rc20_2-2*e0rc20*e1rc11*e1rc20+2*e0rc21*e1rc10*e1rc20+e0rc11*e1rc12_2+2*e0rc12*e1rc11*e1rc12+2*e0rc01*e1rc02*e1rc12+2*e0rc02*e1rc01*e1rc12+3*e0rc11*e1rc11_2+2*e0rc10*e1rc10*e1rc11-2*e0rc02*e1rc02*e1rc11+2*e0rc01*e1rc01*e1rc11-2*e0rc00*e1rc00*e1rc11+e0rc11*e1rc10_2+2*e0rc00*e1rc01*e1rc10+2*e0rc01*e1rc00*e1rc10-e0rc11*e1rc02_2+2*e0rc12*e1rc01*e1rc02+e0rc11*e1rc01_2+2*e0rc10*e1rc00*e1rc01-e0rc11*e1rc00_2;
00605     AMatrix(4, 4) = -2*e0rc11*e1rc22*e2rc22+2*e0rc12*e1rc21*e2rc22+2*e0rc21*e1rc12*e2rc22-2*e0rc22*e1rc11*e2rc22+2*e0rc12*e1rc22*e2rc21+2*e0rc11*e1rc21*e2rc21+2*e0rc10*e1rc20*e2rc21+2*e0rc22*e1rc12*e2rc21+2*e0rc21*e1rc11*e2rc21+2*e0rc20*e1rc10*e2rc21+2*e0rc10*e1rc21*e2rc20-2*e0rc11*e1rc20*e2rc20-2*e0rc20*e1rc11*e2rc20+2*e0rc21*e1rc10*e2rc20+2*e0rc21*e1rc22*e2rc12+2*e0rc22*e1rc21*e2rc12+2*e0rc11*e1rc12*e2rc12+2*e0rc12*e1rc11*e2rc12+2*e0rc01*e1rc02*e2rc12+2*e0rc02*e1rc01*e2rc12-2*e0rc22*e1rc22*e2rc11+2*e0rc21*e1rc21*e2rc11-2*e0rc20*e1rc20*e2rc11+2*e0rc12*e1rc12*e2rc11+6*e0rc11*e1rc11*e2rc11+2*e0rc10*e1rc10*e2rc11-2*e0rc02*e1rc02*e2rc11+2*e0rc01*e1rc01*e2rc11-2*e0rc00*e1rc00*e2rc11+2*e0rc20*e1rc21*e2rc10+2*e0rc21*e1rc20*e2rc10+2*e0rc10*e1rc11*e2rc10+2*e0rc11*e1rc10*e2rc10+2*e0rc00*e1rc01*e2rc10+2*e0rc01*e1rc00*e2rc10+2*e0rc01*e1rc12*e2rc02-2*e0rc02*e1rc11*e2rc02-2*e0rc11*e1rc02*e2rc02+2*e0rc12*e1rc01*e2rc02+2*e0rc02*e1rc12*e2rc01+2*e0rc01*e1rc11*e2rc01+2*e0rc00*e1rc10*e2rc01+2*e0rc12*e1rc02*e2rc01+2*e0rc11*e1rc01*e2rc01+2*e0rc10*e1rc00*e2rc01-2*e0rc00*e1rc11*e2rc00+2*e0rc01*e1rc10*e2rc00+2*e0rc10*e1rc01*e2rc00-2*e0rc11*e1rc00*e2rc00;
00606     AMatrix(4, 5) = -e0rc11*e2rc22_2+2*e0rc12*e2rc21*e2rc22+2*e0rc21*e2rc12*e2rc22-2*e0rc22*e2rc11*e2rc22+e0rc11*e2rc21_2+2*e0rc10*e2rc20*e2rc21+2*e0rc22*e2rc12*e2rc21+2*e0rc21*e2rc11*e2rc21+2*e0rc20*e2rc10*e2rc21-e0rc11*e2rc20_2-2*e0rc20*e2rc11*e2rc20+2*e0rc21*e2rc10*e2rc20+e0rc11*e2rc12_2+2*e0rc12*e2rc11*e2rc12+2*e0rc01*e2rc02*e2rc12+2*e0rc02*e2rc01*e2rc12+3*e0rc11*e2rc11_2+2*e0rc10*e2rc10*e2rc11-2*e0rc02*e2rc02*e2rc11+2*e0rc01*e2rc01*e2rc11-2*e0rc00*e2rc00*e2rc11+e0rc11*e2rc10_2+2*e0rc00*e2rc01*e2rc10+2*e0rc01*e2rc00*e2rc10-e0rc11*e2rc02_2+2*e0rc12*e2rc01*e2rc02+e0rc11*e2rc01_2+2*e0rc10*e2rc00*e2rc01-e0rc11*e2rc00_2;
00607     AMatrix(4, 6) = -e1rc11*e1rc22_2+2*e1rc12*e1rc21*e1rc22+e1rc11*e1rc21_2+2*e1rc10*e1rc20*e1rc21-e1rc11*e1rc20_2+e1rc11*e1rc12_2+2*e1rc01*e1rc02*e1rc12+e1rc11_3+e1rc10_2*e1rc11-e1rc02_2*e1rc11+e1rc01_2*e1rc11-e1rc00_2*e1rc11+2*e1rc00*e1rc01*e1rc10;
00608     AMatrix(4, 7) = -2*e1rc11*e1rc22*e2rc22+2*e1rc12*e1rc21*e2rc22+2*e1rc12*e1rc22*e2rc21+2*e1rc11*e1rc21*e2rc21+2*e1rc10*e1rc20*e2rc21+2*e1rc10*e1rc21*e2rc20-2*e1rc11*e1rc20*e2rc20+2*e1rc21*e1rc22*e2rc12+2*e1rc11*e1rc12*e2rc12+2*e1rc01*e1rc02*e2rc12-e1rc22_2*e2rc11+e1rc21_2*e2rc11-e1rc20_2*e2rc11+e1rc12_2*e2rc11+3*e1rc11_2*e2rc11+e1rc10_2*e2rc11-e1rc02_2*e2rc11+e1rc01_2*e2rc11-e1rc00_2*e2rc11+2*e1rc20*e1rc21*e2rc10+2*e1rc10*e1rc11*e2rc10+2*e1rc00*e1rc01*e2rc10+2*e1rc01*e1rc12*e2rc02-2*e1rc02*e1rc11*e2rc02+2*e1rc02*e1rc12*e2rc01+2*e1rc01*e1rc11*e2rc01+2*e1rc00*e1rc10*e2rc01-2*e1rc00*e1rc11*e2rc00+2*e1rc01*e1rc10*e2rc00;
00609     AMatrix(4, 8) = -e1rc11*e2rc22_2+2*e1rc12*e2rc21*e2rc22+2*e1rc21*e2rc12*e2rc22-2*e1rc22*e2rc11*e2rc22+e1rc11*e2rc21_2+2*e1rc10*e2rc20*e2rc21+2*e1rc22*e2rc12*e2rc21+2*e1rc21*e2rc11*e2rc21+2*e1rc20*e2rc10*e2rc21-e1rc11*e2rc20_2-2*e1rc20*e2rc11*e2rc20+2*e1rc21*e2rc10*e2rc20+e1rc11*e2rc12_2+2*e1rc12*e2rc11*e2rc12+2*e1rc01*e2rc02*e2rc12+2*e1rc02*e2rc01*e2rc12+3*e1rc11*e2rc11_2+2*e1rc10*e2rc10*e2rc11-2*e1rc02*e2rc02*e2rc11+2*e1rc01*e2rc01*e2rc11-2*e1rc00*e2rc00*e2rc11+e1rc11*e2rc10_2+2*e1rc00*e2rc01*e2rc10+2*e1rc01*e2rc00*e2rc10-e1rc11*e2rc02_2+2*e1rc12*e2rc01*e2rc02+e1rc11*e2rc01_2+2*e1rc10*e2rc00*e2rc01-e1rc11*e2rc00_2;
00610     AMatrix(4, 9) = -e2rc11*e2rc22_2+2*e2rc12*e2rc21*e2rc22+e2rc11*e2rc21_2+2*e2rc10*e2rc20*e2rc21-e2rc11*e2rc20_2+e2rc11*e2rc12_2+2*e2rc01*e2rc02*e2rc12+e2rc11_3+e2rc10_2*e2rc11-e2rc02_2*e2rc11+e2rc01_2*e2rc11-e2rc00_2*e2rc11+2*e2rc00*e2rc01*e2rc10;
00611     AMatrix(4, 10) = -2*e0rc11*e0rc22*e3rc22+2*e0rc12*e0rc21*e3rc22+2*e0rc12*e0rc22*e3rc21+2*e0rc11*e0rc21*e3rc21+2*e0rc10*e0rc20*e3rc21+2*e0rc10*e0rc21*e3rc20-2*e0rc11*e0rc20*e3rc20+2*e0rc21*e0rc22*e3rc12+2*e0rc11*e0rc12*e3rc12+2*e0rc01*e0rc02*e3rc12-e0rc22_2*e3rc11+e0rc21_2*e3rc11-e0rc20_2*e3rc11+e0rc12_2*e3rc11+3*e0rc11_2*e3rc11+e0rc10_2*e3rc11-e0rc02_2*e3rc11+e0rc01_2*e3rc11-e0rc00_2*e3rc11+2*e0rc20*e0rc21*e3rc10+2*e0rc10*e0rc11*e3rc10+2*e0rc00*e0rc01*e3rc10+2*e0rc01*e0rc12*e3rc02-2*e0rc02*e0rc11*e3rc02+2*e0rc02*e0rc12*e3rc01+2*e0rc01*e0rc11*e3rc01+2*e0rc00*e0rc10*e3rc01-2*e0rc00*e0rc11*e3rc00+2*e0rc01*e0rc10*e3rc00;
00612     AMatrix(4, 11) = -2*e0rc11*e1rc22*e3rc22+2*e0rc12*e1rc21*e3rc22+2*e0rc21*e1rc12*e3rc22-2*e0rc22*e1rc11*e3rc22+2*e0rc12*e1rc22*e3rc21+2*e0rc11*e1rc21*e3rc21+2*e0rc10*e1rc20*e3rc21+2*e0rc22*e1rc12*e3rc21+2*e0rc21*e1rc11*e3rc21+2*e0rc20*e1rc10*e3rc21+2*e0rc10*e1rc21*e3rc20-2*e0rc11*e1rc20*e3rc20-2*e0rc20*e1rc11*e3rc20+2*e0rc21*e1rc10*e3rc20+2*e0rc21*e1rc22*e3rc12+2*e0rc22*e1rc21*e3rc12+2*e0rc11*e1rc12*e3rc12+2*e0rc12*e1rc11*e3rc12+2*e0rc01*e1rc02*e3rc12+2*e0rc02*e1rc01*e3rc12-2*e0rc22*e1rc22*e3rc11+2*e0rc21*e1rc21*e3rc11-2*e0rc20*e1rc20*e3rc11+2*e0rc12*e1rc12*e3rc11+6*e0rc11*e1rc11*e3rc11+2*e0rc10*e1rc10*e3rc11-2*e0rc02*e1rc02*e3rc11+2*e0rc01*e1rc01*e3rc11-2*e0rc00*e1rc00*e3rc11+2*e0rc20*e1rc21*e3rc10+2*e0rc21*e1rc20*e3rc10+2*e0rc10*e1rc11*e3rc10+2*e0rc11*e1rc10*e3rc10+2*e0rc00*e1rc01*e3rc10+2*e0rc01*e1rc00*e3rc10+2*e0rc01*e1rc12*e3rc02-2*e0rc02*e1rc11*e3rc02-2*e0rc11*e1rc02*e3rc02+2*e0rc12*e1rc01*e3rc02+2*e0rc02*e1rc12*e3rc01+2*e0rc01*e1rc11*e3rc01+2*e0rc00*e1rc10*e3rc01+2*e0rc12*e1rc02*e3rc01+2*e0rc11*e1rc01*e3rc01+2*e0rc10*e1rc00*e3rc01-2*e0rc00*e1rc11*e3rc00+2*e0rc01*e1rc10*e3rc00+2*e0rc10*e1rc01*e3rc00-2*e0rc11*e1rc00*e3rc00;
00613     AMatrix(4, 12) = -2*e0rc11*e2rc22*e3rc22+2*e0rc12*e2rc21*e3rc22+2*e0rc21*e2rc12*e3rc22-2*e0rc22*e2rc11*e3rc22+2*e0rc12*e2rc22*e3rc21+2*e0rc11*e2rc21*e3rc21+2*e0rc10*e2rc20*e3rc21+2*e0rc22*e2rc12*e3rc21+2*e0rc21*e2rc11*e3rc21+2*e0rc20*e2rc10*e3rc21+2*e0rc10*e2rc21*e3rc20-2*e0rc11*e2rc20*e3rc20-2*e0rc20*e2rc11*e3rc20+2*e0rc21*e2rc10*e3rc20+2*e0rc21*e2rc22*e3rc12+2*e0rc22*e2rc21*e3rc12+2*e0rc11*e2rc12*e3rc12+2*e0rc12*e2rc11*e3rc12+2*e0rc01*e2rc02*e3rc12+2*e0rc02*e2rc01*e3rc12-2*e0rc22*e2rc22*e3rc11+2*e0rc21*e2rc21*e3rc11-2*e0rc20*e2rc20*e3rc11+2*e0rc12*e2rc12*e3rc11+6*e0rc11*e2rc11*e3rc11+2*e0rc10*e2rc10*e3rc11-2*e0rc02*e2rc02*e3rc11+2*e0rc01*e2rc01*e3rc11-2*e0rc00*e2rc00*e3rc11+2*e0rc20*e2rc21*e3rc10+2*e0rc21*e2rc20*e3rc10+2*e0rc10*e2rc11*e3rc10+2*e0rc11*e2rc10*e3rc10+2*e0rc00*e2rc01*e3rc10+2*e0rc01*e2rc00*e3rc10+2*e0rc01*e2rc12*e3rc02-2*e0rc02*e2rc11*e3rc02-2*e0rc11*e2rc02*e3rc02+2*e0rc12*e2rc01*e3rc02+2*e0rc02*e2rc12*e3rc01+2*e0rc01*e2rc11*e3rc01+2*e0rc00*e2rc10*e3rc01+2*e0rc12*e2rc02*e3rc01+2*e0rc11*e2rc01*e3rc01+2*e0rc10*e2rc00*e3rc01-2*e0rc00*e2rc11*e3rc00+2*e0rc01*e2rc10*e3rc00+2*e0rc10*e2rc01*e3rc00-2*e0rc11*e2rc00*e3rc00;
00614     AMatrix(4, 13) = -2*e1rc11*e1rc22*e3rc22+2*e1rc12*e1rc21*e3rc22+2*e1rc12*e1rc22*e3rc21+2*e1rc11*e1rc21*e3rc21+2*e1rc10*e1rc20*e3rc21+2*e1rc10*e1rc21*e3rc20-2*e1rc11*e1rc20*e3rc20+2*e1rc21*e1rc22*e3rc12+2*e1rc11*e1rc12*e3rc12+2*e1rc01*e1rc02*e3rc12-e1rc22_2*e3rc11+e1rc21_2*e3rc11-e1rc20_2*e3rc11+e1rc12_2*e3rc11+3*e1rc11_2*e3rc11+e1rc10_2*e3rc11-e1rc02_2*e3rc11+e1rc01_2*e3rc11-e1rc00_2*e3rc11+2*e1rc20*e1rc21*e3rc10+2*e1rc10*e1rc11*e3rc10+2*e1rc00*e1rc01*e3rc10+2*e1rc01*e1rc12*e3rc02-2*e1rc02*e1rc11*e3rc02+2*e1rc02*e1rc12*e3rc01+2*e1rc01*e1rc11*e3rc01+2*e1rc00*e1rc10*e3rc01-2*e1rc00*e1rc11*e3rc00+2*e1rc01*e1rc10*e3rc00;
00615     AMatrix(4, 14) = -2*e1rc11*e2rc22*e3rc22+2*e1rc12*e2rc21*e3rc22+2*e1rc21*e2rc12*e3rc22-2*e1rc22*e2rc11*e3rc22+2*e1rc12*e2rc22*e3rc21+2*e1rc11*e2rc21*e3rc21+2*e1rc10*e2rc20*e3rc21+2*e1rc22*e2rc12*e3rc21+2*e1rc21*e2rc11*e3rc21+2*e1rc20*e2rc10*e3rc21+2*e1rc10*e2rc21*e3rc20-2*e1rc11*e2rc20*e3rc20-2*e1rc20*e2rc11*e3rc20+2*e1rc21*e2rc10*e3rc20+2*e1rc21*e2rc22*e3rc12+2*e1rc22*e2rc21*e3rc12+2*e1rc11*e2rc12*e3rc12+2*e1rc12*e2rc11*e3rc12+2*e1rc01*e2rc02*e3rc12+2*e1rc02*e2rc01*e3rc12-2*e1rc22*e2rc22*e3rc11+2*e1rc21*e2rc21*e3rc11-2*e1rc20*e2rc20*e3rc11+2*e1rc12*e2rc12*e3rc11+6*e1rc11*e2rc11*e3rc11+2*e1rc10*e2rc10*e3rc11-2*e1rc02*e2rc02*e3rc11+2*e1rc01*e2rc01*e3rc11-2*e1rc00*e2rc00*e3rc11+2*e1rc20*e2rc21*e3rc10+2*e1rc21*e2rc20*e3rc10+2*e1rc10*e2rc11*e3rc10+2*e1rc11*e2rc10*e3rc10+2*e1rc00*e2rc01*e3rc10+2*e1rc01*e2rc00*e3rc10+2*e1rc01*e2rc12*e3rc02-2*e1rc02*e2rc11*e3rc02-2*e1rc11*e2rc02*e3rc02+2*e1rc12*e2rc01*e3rc02+2*e1rc02*e2rc12*e3rc01+2*e1rc01*e2rc11*e3rc01+2*e1rc00*e2rc10*e3rc01+2*e1rc12*e2rc02*e3rc01+2*e1rc11*e2rc01*e3rc01+2*e1rc10*e2rc00*e3rc01-2*e1rc00*e2rc11*e3rc00+2*e1rc01*e2rc10*e3rc00+2*e1rc10*e2rc01*e3rc00-2*e1rc11*e2rc00*e3rc00;
00616     AMatrix(4, 15) = -2*e2rc11*e2rc22*e3rc22+2*e2rc12*e2rc21*e3rc22+2*e2rc12*e2rc22*e3rc21+2*e2rc11*e2rc21*e3rc21+2*e2rc10*e2rc20*e3rc21+2*e2rc10*e2rc21*e3rc20-2*e2rc11*e2rc20*e3rc20+2*e2rc21*e2rc22*e3rc12+2*e2rc11*e2rc12*e3rc12+2*e2rc01*e2rc02*e3rc12-e2rc22_2*e3rc11+e2rc21_2*e3rc11-e2rc20_2*e3rc11+e2rc12_2*e3rc11+3*e2rc11_2*e3rc11+e2rc10_2*e3rc11-e2rc02_2*e3rc11+e2rc01_2*e3rc11-e2rc00_2*e3rc11+2*e2rc20*e2rc21*e3rc10+2*e2rc10*e2rc11*e3rc10+2*e2rc00*e2rc01*e3rc10+2*e2rc01*e2rc12*e3rc02-2*e2rc02*e2rc11*e3rc02+2*e2rc02*e2rc12*e3rc01+2*e2rc01*e2rc11*e3rc01+2*e2rc00*e2rc10*e3rc01-2*e2rc00*e2rc11*e3rc00+2*e2rc01*e2rc10*e3rc00;
00617     AMatrix(4, 16) = -e0rc11*e3rc22_2+2*e0rc12*e3rc21*e3rc22+2*e0rc21*e3rc12*e3rc22-2*e0rc22*e3rc11*e3rc22+e0rc11*e3rc21_2+2*e0rc10*e3rc20*e3rc21+2*e0rc22*e3rc12*e3rc21+2*e0rc21*e3rc11*e3rc21+2*e0rc20*e3rc10*e3rc21-e0rc11*e3rc20_2-2*e0rc20*e3rc11*e3rc20+2*e0rc21*e3rc10*e3rc20+e0rc11*e3rc12_2+2*e0rc12*e3rc11*e3rc12+2*e0rc01*e3rc02*e3rc12+2*e0rc02*e3rc01*e3rc12+3*e0rc11*e3rc11_2+2*e0rc10*e3rc10*e3rc11-2*e0rc02*e3rc02*e3rc11+2*e0rc01*e3rc01*e3rc11-2*e0rc00*e3rc00*e3rc11+e0rc11*e3rc10_2+2*e0rc00*e3rc01*e3rc10+2*e0rc01*e3rc00*e3rc10-e0rc11*e3rc02_2+2*e0rc12*e3rc01*e3rc02+e0rc11*e3rc01_2+2*e0rc10*e3rc00*e3rc01-e0rc11*e3rc00_2;
00618     AMatrix(4, 17) = -e1rc11*e3rc22_2+2*e1rc12*e3rc21*e3rc22+2*e1rc21*e3rc12*e3rc22-2*e1rc22*e3rc11*e3rc22+e1rc11*e3rc21_2+2*e1rc10*e3rc20*e3rc21+2*e1rc22*e3rc12*e3rc21+2*e1rc21*e3rc11*e3rc21+2*e1rc20*e3rc10*e3rc21-e1rc11*e3rc20_2-2*e1rc20*e3rc11*e3rc20+2*e1rc21*e3rc10*e3rc20+e1rc11*e3rc12_2+2*e1rc12*e3rc11*e3rc12+2*e1rc01*e3rc02*e3rc12+2*e1rc02*e3rc01*e3rc12+3*e1rc11*e3rc11_2+2*e1rc10*e3rc10*e3rc11-2*e1rc02*e3rc02*e3rc11+2*e1rc01*e3rc01*e3rc11-2*e1rc00*e3rc00*e3rc11+e1rc11*e3rc10_2+2*e1rc00*e3rc01*e3rc10+2*e1rc01*e3rc00*e3rc10-e1rc11*e3rc02_2+2*e1rc12*e3rc01*e3rc02+e1rc11*e3rc01_2+2*e1rc10*e3rc00*e3rc01-e1rc11*e3rc00_2;
00619     AMatrix(4, 18) = -e2rc11*e3rc22_2+2*e2rc12*e3rc21*e3rc22+2*e2rc21*e3rc12*e3rc22-2*e2rc22*e3rc11*e3rc22+e2rc11*e3rc21_2+2*e2rc10*e3rc20*e3rc21+2*e2rc22*e3rc12*e3rc21+2*e2rc21*e3rc11*e3rc21+2*e2rc20*e3rc10*e3rc21-e2rc11*e3rc20_2-2*e2rc20*e3rc11*e3rc20+2*e2rc21*e3rc10*e3rc20+e2rc11*e3rc12_2+2*e2rc12*e3rc11*e3rc12+2*e2rc01*e3rc02*e3rc12+2*e2rc02*e3rc01*e3rc12+3*e2rc11*e3rc11_2+2*e2rc10*e3rc10*e3rc11-2*e2rc02*e3rc02*e3rc11+2*e2rc01*e3rc01*e3rc11-2*e2rc00*e3rc00*e3rc11+e2rc11*e3rc10_2+2*e2rc00*e3rc01*e3rc10+2*e2rc01*e3rc00*e3rc10-e2rc11*e3rc02_2+2*e2rc12*e3rc01*e3rc02+e2rc11*e3rc01_2+2*e2rc10*e3rc00*e3rc01-e2rc11*e3rc00_2;
00620     AMatrix(4, 19) = -e3rc11*e3rc22_2+2*e3rc12*e3rc21*e3rc22+e3rc11*e3rc21_2+2*e3rc10*e3rc20*e3rc21-e3rc11*e3rc20_2+e3rc11*e3rc12_2+2*e3rc01*e3rc02*e3rc12+e3rc11_3+e3rc10_2*e3rc11-e3rc02_2*e3rc11+e3rc01_2*e3rc11-e3rc00_2*e3rc11+2*e3rc00*e3rc01*e3rc10;
00621     AMatrix(5, 0) = +e0rc12*e0rc22_2+2*e0rc11*e0rc21*e0rc22+2*e0rc10*e0rc20*e0rc22-e0rc12*e0rc21_2-e0rc12*e0rc20_2+e0rc12_3+e0rc11_2*e0rc12+e0rc10_2*e0rc12+e0rc02_2*e0rc12-e0rc01_2*e0rc12-e0rc00_2*e0rc12+2*e0rc01*e0rc02*e0rc11+2*e0rc00*e0rc02*e0rc10;
00622     AMatrix(5, 1) = +2*e0rc12*e0rc22*e1rc22+2*e0rc11*e0rc21*e1rc22+2*e0rc10*e0rc20*e1rc22+2*e0rc11*e0rc22*e1rc21-2*e0rc12*e0rc21*e1rc21+2*e0rc10*e0rc22*e1rc20-2*e0rc12*e0rc20*e1rc20+e0rc22_2*e1rc12-e0rc21_2*e1rc12-e0rc20_2*e1rc12+3*e0rc12_2*e1rc12+e0rc11_2*e1rc12+e0rc10_2*e1rc12+e0rc02_2*e1rc12-e0rc01_2*e1rc12-e0rc00_2*e1rc12+2*e0rc21*e0rc22*e1rc11+2*e0rc11*e0rc12*e1rc11+2*e0rc01*e0rc02*e1rc11+2*e0rc20*e0rc22*e1rc10+2*e0rc10*e0rc12*e1rc10+2*e0rc00*e0rc02*e1rc10+2*e0rc02*e0rc12*e1rc02+2*e0rc01*e0rc11*e1rc02+2*e0rc00*e0rc10*e1rc02-2*e0rc01*e0rc12*e1rc01+2*e0rc02*e0rc11*e1rc01-2*e0rc00*e0rc12*e1rc00+2*e0rc02*e0rc10*e1rc00;
00623     AMatrix(5, 2) = +2*e0rc12*e0rc22*e2rc22+2*e0rc11*e0rc21*e2rc22+2*e0rc10*e0rc20*e2rc22+2*e0rc11*e0rc22*e2rc21-2*e0rc12*e0rc21*e2rc21+2*e0rc10*e0rc22*e2rc20-2*e0rc12*e0rc20*e2rc20+e0rc22_2*e2rc12-e0rc21_2*e2rc12-e0rc20_2*e2rc12+3*e0rc12_2*e2rc12+e0rc11_2*e2rc12+e0rc10_2*e2rc12+e0rc02_2*e2rc12-e0rc01_2*e2rc12-e0rc00_2*e2rc12+2*e0rc21*e0rc22*e2rc11+2*e0rc11*e0rc12*e2rc11+2*e0rc01*e0rc02*e2rc11+2*e0rc20*e0rc22*e2rc10+2*e0rc10*e0rc12*e2rc10+2*e0rc00*e0rc02*e2rc10+2*e0rc02*e0rc12*e2rc02+2*e0rc01*e0rc11*e2rc02+2*e0rc00*e0rc10*e2rc02-2*e0rc01*e0rc12*e2rc01+2*e0rc02*e0rc11*e2rc01-2*e0rc00*e0rc12*e2rc00+2*e0rc02*e0rc10*e2rc00;
00624     AMatrix(5, 3) = +e0rc12*e1rc22_2+2*e0rc11*e1rc21*e1rc22+2*e0rc10*e1rc20*e1rc22+2*e0rc22*e1rc12*e1rc22+2*e0rc21*e1rc11*e1rc22+2*e0rc20*e1rc10*e1rc22-e0rc12*e1rc21_2-2*e0rc21*e1rc12*e1rc21+2*e0rc22*e1rc11*e1rc21-e0rc12*e1rc20_2-2*e0rc20*e1rc12*e1rc20+2*e0rc22*e1rc10*e1rc20+3*e0rc12*e1rc12_2+2*e0rc11*e1rc11*e1rc12+2*e0rc10*e1rc10*e1rc12+2*e0rc02*e1rc02*e1rc12-2*e0rc01*e1rc01*e1rc12-2*e0rc00*e1rc00*e1rc12+e0rc12*e1rc11_2+2*e0rc01*e1rc02*e1rc11+2*e0rc02*e1rc01*e1rc11+e0rc12*e1rc10_2+2*e0rc00*e1rc02*e1rc10+2*e0rc02*e1rc00*e1rc10+e0rc12*e1rc02_2+2*e0rc11*e1rc01*e1rc02+2*e0rc10*e1rc00*e1rc02-e0rc12*e1rc01_2-e0rc12*e1rc00_2;
00625     AMatrix(5, 4) = +2*e0rc12*e1rc22*e2rc22+2*e0rc11*e1rc21*e2rc22+2*e0rc10*e1rc20*e2rc22+2*e0rc22*e1rc12*e2rc22+2*e0rc21*e1rc11*e2rc22+2*e0rc20*e1rc10*e2rc22+2*e0rc11*e1rc22*e2rc21-2*e0rc12*e1rc21*e2rc21-2*e0rc21*e1rc12*e2rc21+2*e0rc22*e1rc11*e2rc21+2*e0rc10*e1rc22*e2rc20-2*e0rc12*e1rc20*e2rc20-2*e0rc20*e1rc12*e2rc20+2*e0rc22*e1rc10*e2rc20+2*e0rc22*e1rc22*e2rc12-2*e0rc21*e1rc21*e2rc12-2*e0rc20*e1rc20*e2rc12+6*e0rc12*e1rc12*e2rc12+2*e0rc11*e1rc11*e2rc12+2*e0rc10*e1rc10*e2rc12+2*e0rc02*e1rc02*e2rc12-2*e0rc01*e1rc01*e2rc12-2*e0rc00*e1rc00*e2rc12+2*e0rc21*e1rc22*e2rc11+2*e0rc22*e1rc21*e2rc11+2*e0rc11*e1rc12*e2rc11+2*e0rc12*e1rc11*e2rc11+2*e0rc01*e1rc02*e2rc11+2*e0rc02*e1rc01*e2rc11+2*e0rc20*e1rc22*e2rc10+2*e0rc22*e1rc20*e2rc10+2*e0rc10*e1rc12*e2rc10+2*e0rc12*e1rc10*e2rc10+2*e0rc00*e1rc02*e2rc10+2*e0rc02*e1rc00*e2rc10+2*e0rc02*e1rc12*e2rc02+2*e0rc01*e1rc11*e2rc02+2*e0rc00*e1rc10*e2rc02+2*e0rc12*e1rc02*e2rc02+2*e0rc11*e1rc01*e2rc02+2*e0rc10*e1rc00*e2rc02-2*e0rc01*e1rc12*e2rc01+2*e0rc02*e1rc11*e2rc01+2*e0rc11*e1rc02*e2rc01-2*e0rc12*e1rc01*e2rc01-2*e0rc00*e1rc12*e2rc00+2*e0rc02*e1rc10*e2rc00+2*e0rc10*e1rc02*e2rc00-2*e0rc12*e1rc00*e2rc00;
00626     AMatrix(5, 5) = +e0rc12*e2rc22_2+2*e0rc11*e2rc21*e2rc22+2*e0rc10*e2rc20*e2rc22+2*e0rc22*e2rc12*e2rc22+2*e0rc21*e2rc11*e2rc22+2*e0rc20*e2rc10*e2rc22-e0rc12*e2rc21_2-2*e0rc21*e2rc12*e2rc21+2*e0rc22*e2rc11*e2rc21-e0rc12*e2rc20_2-2*e0rc20*e2rc12*e2rc20+2*e0rc22*e2rc10*e2rc20+3*e0rc12*e2rc12_2+2*e0rc11*e2rc11*e2rc12+2*e0rc10*e2rc10*e2rc12+2*e0rc02*e2rc02*e2rc12-2*e0rc01*e2rc01*e2rc12-2*e0rc00*e2rc00*e2rc12+e0rc12*e2rc11_2+2*e0rc01*e2rc02*e2rc11+2*e0rc02*e2rc01*e2rc11+e0rc12*e2rc10_2+2*e0rc00*e2rc02*e2rc10+2*e0rc02*e2rc00*e2rc10+e0rc12*e2rc02_2+2*e0rc11*e2rc01*e2rc02+2*e0rc10*e2rc00*e2rc02-e0rc12*e2rc01_2-e0rc12*e2rc00_2;
00627     AMatrix(5, 6) = +e1rc12*e1rc22_2+2*e1rc11*e1rc21*e1rc22+2*e1rc10*e1rc20*e1rc22-e1rc12*e1rc21_2-e1rc12*e1rc20_2+e1rc12_3+e1rc11_2*e1rc12+e1rc10_2*e1rc12+e1rc02_2*e1rc12-e1rc01_2*e1rc12-e1rc00_2*e1rc12+2*e1rc01*e1rc02*e1rc11+2*e1rc00*e1rc02*e1rc10;
00628     AMatrix(5, 7) = +2*e1rc12*e1rc22*e2rc22+2*e1rc11*e1rc21*e2rc22+2*e1rc10*e1rc20*e2rc22+2*e1rc11*e1rc22*e2rc21-2*e1rc12*e1rc21*e2rc21+2*e1rc10*e1rc22*e2rc20-2*e1rc12*e1rc20*e2rc20+e1rc22_2*e2rc12-e1rc21_2*e2rc12-e1rc20_2*e2rc12+3*e1rc12_2*e2rc12+e1rc11_2*e2rc12+e1rc10_2*e2rc12+e1rc02_2*e2rc12-e1rc01_2*e2rc12-e1rc00_2*e2rc12+2*e1rc21*e1rc22*e2rc11+2*e1rc11*e1rc12*e2rc11+2*e1rc01*e1rc02*e2rc11+2*e1rc20*e1rc22*e2rc10+2*e1rc10*e1rc12*e2rc10+2*e1rc00*e1rc02*e2rc10+2*e1rc02*e1rc12*e2rc02+2*e1rc01*e1rc11*e2rc02+2*e1rc00*e1rc10*e2rc02-2*e1rc01*e1rc12*e2rc01+2*e1rc02*e1rc11*e2rc01-2*e1rc00*e1rc12*e2rc00+2*e1rc02*e1rc10*e2rc00;
00629     AMatrix(5, 8) = +e1rc12*e2rc22_2+2*e1rc11*e2rc21*e2rc22+2*e1rc10*e2rc20*e2rc22+2*e1rc22*e2rc12*e2rc22+2*e1rc21*e2rc11*e2rc22+2*e1rc20*e2rc10*e2rc22-e1rc12*e2rc21_2-2*e1rc21*e2rc12*e2rc21+2*e1rc22*e2rc11*e2rc21-e1rc12*e2rc20_2-2*e1rc20*e2rc12*e2rc20+2*e1rc22*e2rc10*e2rc20+3*e1rc12*e2rc12_2+2*e1rc11*e2rc11*e2rc12+2*e1rc10*e2rc10*e2rc12+2*e1rc02*e2rc02*e2rc12-2*e1rc01*e2rc01*e2rc12-2*e1rc00*e2rc00*e2rc12+e1rc12*e2rc11_2+2*e1rc01*e2rc02*e2rc11+2*e1rc02*e2rc01*e2rc11+e1rc12*e2rc10_2+2*e1rc00*e2rc02*e2rc10+2*e1rc02*e2rc00*e2rc10+e1rc12*e2rc02_2+2*e1rc11*e2rc01*e2rc02+2*e1rc10*e2rc00*e2rc02-e1rc12*e2rc01_2-e1rc12*e2rc00_2;
00630     AMatrix(5, 9) = e2rc12*e2rc22_2+2*e2rc11*e2rc21*e2rc22+2*e2rc10*e2rc20*e2rc22-e2rc12*e2rc21_2-e2rc12*e2rc20_2+e2rc12_3+e2rc11_2*e2rc12+e2rc10_2*e2rc12+e2rc02_2*e2rc12-e2rc01_2*e2rc12-e2rc00_2*e2rc12+2*e2rc01*e2rc02*e2rc11+2*e2rc00*e2rc02*e2rc10;
00631     AMatrix(5, 10) = +2*e0rc12*e0rc22*e3rc22+2*e0rc11*e0rc21*e3rc22+2*e0rc10*e0rc20*e3rc22+2*e0rc11*e0rc22*e3rc21-2*e0rc12*e0rc21*e3rc21+2*e0rc10*e0rc22*e3rc20-2*e0rc12*e0rc20*e3rc20+e0rc22_2*e3rc12-e0rc21_2*e3rc12-e0rc20_2*e3rc12+3*e0rc12_2*e3rc12+e0rc11_2*e3rc12+e0rc10_2*e3rc12+e0rc02_2*e3rc12-e0rc01_2*e3rc12-e0rc00_2*e3rc12+2*e0rc21*e0rc22*e3rc11+2*e0rc11*e0rc12*e3rc11+2*e0rc01*e0rc02*e3rc11+2*e0rc20*e0rc22*e3rc10+2*e0rc10*e0rc12*e3rc10+2*e0rc00*e0rc02*e3rc10+2*e0rc02*e0rc12*e3rc02+2*e0rc01*e0rc11*e3rc02+2*e0rc00*e0rc10*e3rc02-2*e0rc01*e0rc12*e3rc01+2*e0rc02*e0rc11*e3rc01-2*e0rc00*e0rc12*e3rc00+2*e0rc02*e0rc10*e3rc00;
00632     AMatrix(5, 11) = +2*e0rc12*e1rc22*e3rc22+2*e0rc11*e1rc21*e3rc22+2*e0rc10*e1rc20*e3rc22+2*e0rc22*e1rc12*e3rc22+2*e0rc21*e1rc11*e3rc22+2*e0rc20*e1rc10*e3rc22+2*e0rc11*e1rc22*e3rc21-2*e0rc12*e1rc21*e3rc21-2*e0rc21*e1rc12*e3rc21+2*e0rc22*e1rc11*e3rc21+2*e0rc10*e1rc22*e3rc20-2*e0rc12*e1rc20*e3rc20-2*e0rc20*e1rc12*e3rc20+2*e0rc22*e1rc10*e3rc20+2*e0rc22*e1rc22*e3rc12-2*e0rc21*e1rc21*e3rc12-2*e0rc20*e1rc20*e3rc12+6*e0rc12*e1rc12*e3rc12+2*e0rc11*e1rc11*e3rc12+2*e0rc10*e1rc10*e3rc12+2*e0rc02*e1rc02*e3rc12-2*e0rc01*e1rc01*e3rc12-2*e0rc00*e1rc00*e3rc12+2*e0rc21*e1rc22*e3rc11+2*e0rc22*e1rc21*e3rc11+2*e0rc11*e1rc12*e3rc11+2*e0rc12*e1rc11*e3rc11+2*e0rc01*e1rc02*e3rc11+2*e0rc02*e1rc01*e3rc11+2*e0rc20*e1rc22*e3rc10+2*e0rc22*e1rc20*e3rc10+2*e0rc10*e1rc12*e3rc10+2*e0rc12*e1rc10*e3rc10+2*e0rc00*e1rc02*e3rc10+2*e0rc02*e1rc00*e3rc10+2*e0rc02*e1rc12*e3rc02+2*e0rc01*e1rc11*e3rc02+2*e0rc00*e1rc10*e3rc02+2*e0rc12*e1rc02*e3rc02+2*e0rc11*e1rc01*e3rc02+2*e0rc10*e1rc00*e3rc02-2*e0rc01*e1rc12*e3rc01+2*e0rc02*e1rc11*e3rc01+2*e0rc11*e1rc02*e3rc01-2*e0rc12*e1rc01*e3rc01-2*e0rc00*e1rc12*e3rc00+2*e0rc02*e1rc10*e3rc00+2*e0rc10*e1rc02*e3rc00-2*e0rc12*e1rc00*e3rc00;
00633     AMatrix(5, 12) = +2*e0rc12*e2rc22*e3rc22+2*e0rc11*e2rc21*e3rc22+2*e0rc10*e2rc20*e3rc22+2*e0rc22*e2rc12*e3rc22+2*e0rc21*e2rc11*e3rc22+2*e0rc20*e2rc10*e3rc22+2*e0rc11*e2rc22*e3rc21-2*e0rc12*e2rc21*e3rc21-2*e0rc21*e2rc12*e3rc21+2*e0rc22*e2rc11*e3rc21+2*e0rc10*e2rc22*e3rc20-2*e0rc12*e2rc20*e3rc20-2*e0rc20*e2rc12*e3rc20+2*e0rc22*e2rc10*e3rc20+2*e0rc22*e2rc22*e3rc12-2*e0rc21*e2rc21*e3rc12-2*e0rc20*e2rc20*e3rc12+6*e0rc12*e2rc12*e3rc12+2*e0rc11*e2rc11*e3rc12+2*e0rc10*e2rc10*e3rc12+2*e0rc02*e2rc02*e3rc12-2*e0rc01*e2rc01*e3rc12-2*e0rc00*e2rc00*e3rc12+2*e0rc21*e2rc22*e3rc11+2*e0rc22*e2rc21*e3rc11+2*e0rc11*e2rc12*e3rc11+2*e0rc12*e2rc11*e3rc11+2*e0rc01*e2rc02*e3rc11+2*e0rc02*e2rc01*e3rc11+2*e0rc20*e2rc22*e3rc10+2*e0rc22*e2rc20*e3rc10+2*e0rc10*e2rc12*e3rc10+2*e0rc12*e2rc10*e3rc10+2*e0rc00*e2rc02*e3rc10+2*e0rc02*e2rc00*e3rc10+2*e0rc02*e2rc12*e3rc02+2*e0rc01*e2rc11*e3rc02+2*e0rc00*e2rc10*e3rc02+2*e0rc12*e2rc02*e3rc02+2*e0rc11*e2rc01*e3rc02+2*e0rc10*e2rc00*e3rc02-2*e0rc01*e2rc12*e3rc01+2*e0rc02*e2rc11*e3rc01+2*e0rc11*e2rc02*e3rc01-2*e0rc12*e2rc01*e3rc01-2*e0rc00*e2rc12*e3rc00+2*e0rc02*e2rc10*e3rc00+2*e0rc10*e2rc02*e3rc00-2*e0rc12*e2rc00*e3rc00;
00634     AMatrix(5, 13) = +2*e1rc12*e1rc22*e3rc22+2*e1rc11*e1rc21*e3rc22+2*e1rc10*e1rc20*e3rc22+2*e1rc11*e1rc22*e3rc21-2*e1rc12*e1rc21*e3rc21+2*e1rc10*e1rc22*e3rc20-2*e1rc12*e1rc20*e3rc20+e1rc22_2*e3rc12-e1rc21_2*e3rc12-e1rc20_2*e3rc12+3*e1rc12_2*e3rc12+e1rc11_2*e3rc12+e1rc10_2*e3rc12+e1rc02_2*e3rc12-e1rc01_2*e3rc12-e1rc00_2*e3rc12+2*e1rc21*e1rc22*e3rc11+2*e1rc11*e1rc12*e3rc11+2*e1rc01*e1rc02*e3rc11+2*e1rc20*e1rc22*e3rc10+2*e1rc10*e1rc12*e3rc10+2*e1rc00*e1rc02*e3rc10+2*e1rc02*e1rc12*e3rc02+2*e1rc01*e1rc11*e3rc02+2*e1rc00*e1rc10*e3rc02-2*e1rc01*e1rc12*e3rc01+2*e1rc02*e1rc11*e3rc01-2*e1rc00*e1rc12*e3rc00+2*e1rc02*e1rc10*e3rc00;
00635     AMatrix(5, 14) = +2*e1rc12*e2rc22*e3rc22+2*e1rc11*e2rc21*e3rc22+2*e1rc10*e2rc20*e3rc22+2*e1rc22*e2rc12*e3rc22+2*e1rc21*e2rc11*e3rc22+2*e1rc20*e2rc10*e3rc22+2*e1rc11*e2rc22*e3rc21-2*e1rc12*e2rc21*e3rc21-2*e1rc21*e2rc12*e3rc21+2*e1rc22*e2rc11*e3rc21+2*e1rc10*e2rc22*e3rc20-2*e1rc12*e2rc20*e3rc20-2*e1rc20*e2rc12*e3rc20+2*e1rc22*e2rc10*e3rc20+2*e1rc22*e2rc22*e3rc12-2*e1rc21*e2rc21*e3rc12-2*e1rc20*e2rc20*e3rc12+6*e1rc12*e2rc12*e3rc12+2*e1rc11*e2rc11*e3rc12+2*e1rc10*e2rc10*e3rc12+2*e1rc02*e2rc02*e3rc12-2*e1rc01*e2rc01*e3rc12-2*e1rc00*e2rc00*e3rc12+2*e1rc21*e2rc22*e3rc11+2*e1rc22*e2rc21*e3rc11+2*e1rc11*e2rc12*e3rc11+2*e1rc12*e2rc11*e3rc11+2*e1rc01*e2rc02*e3rc11+2*e1rc02*e2rc01*e3rc11+2*e1rc20*e2rc22*e3rc10+2*e1rc22*e2rc20*e3rc10+2*e1rc10*e2rc12*e3rc10+2*e1rc12*e2rc10*e3rc10+2*e1rc00*e2rc02*e3rc10+2*e1rc02*e2rc00*e3rc10+2*e1rc02*e2rc12*e3rc02+2*e1rc01*e2rc11*e3rc02+2*e1rc00*e2rc10*e3rc02+2*e1rc12*e2rc02*e3rc02+2*e1rc11*e2rc01*e3rc02+2*e1rc10*e2rc00*e3rc02-2*e1rc01*e2rc12*e3rc01+2*e1rc02*e2rc11*e3rc01+2*e1rc11*e2rc02*e3rc01-2*e1rc12*e2rc01*e3rc01-2*e1rc00*e2rc12*e3rc00+2*e1rc02*e2rc10*e3rc00+2*e1rc10*e2rc02*e3rc00-2*e1rc12*e2rc00*e3rc00;
00636     AMatrix(5, 15) = +2*e2rc12*e2rc22*e3rc22+2*e2rc11*e2rc21*e3rc22+2*e2rc10*e2rc20*e3rc22+2*e2rc11*e2rc22*e3rc21-2*e2rc12*e2rc21*e3rc21+2*e2rc10*e2rc22*e3rc20-2*e2rc12*e2rc20*e3rc20+e2rc22_2*e3rc12-e2rc21_2*e3rc12-e2rc20_2*e3rc12+3*e2rc12_2*e3rc12+e2rc11_2*e3rc12+e2rc10_2*e3rc12+e2rc02_2*e3rc12-e2rc01_2*e3rc12-e2rc00_2*e3rc12+2*e2rc21*e2rc22*e3rc11+2*e2rc11*e2rc12*e3rc11+2*e2rc01*e2rc02*e3rc11+2*e2rc20*e2rc22*e3rc10+2*e2rc10*e2rc12*e3rc10+2*e2rc00*e2rc02*e3rc10+2*e2rc02*e2rc12*e3rc02+2*e2rc01*e2rc11*e3rc02+2*e2rc00*e2rc10*e3rc02-2*e2rc01*e2rc12*e3rc01+2*e2rc02*e2rc11*e3rc01-2*e2rc00*e2rc12*e3rc00+2*e2rc02*e2rc10*e3rc00;
00637     AMatrix(5, 16) = +e0rc12*e3rc22_2+2*e0rc11*e3rc21*e3rc22+2*e0rc10*e3rc20*e3rc22+2*e0rc22*e3rc12*e3rc22+2*e0rc21*e3rc11*e3rc22+2*e0rc20*e3rc10*e3rc22-e0rc12*e3rc21_2-2*e0rc21*e3rc12*e3rc21+2*e0rc22*e3rc11*e3rc21-e0rc12*e3rc20_2-2*e0rc20*e3rc12*e3rc20+2*e0rc22*e3rc10*e3rc20+3*e0rc12*e3rc12_2+2*e0rc11*e3rc11*e3rc12+2*e0rc10*e3rc10*e3rc12+2*e0rc02*e3rc02*e3rc12-2*e0rc01*e3rc01*e3rc12-2*e0rc00*e3rc00*e3rc12+e0rc12*e3rc11_2+2*e0rc01*e3rc02*e3rc11+2*e0rc02*e3rc01*e3rc11+e0rc12*e3rc10_2+2*e0rc00*e3rc02*e3rc10+2*e0rc02*e3rc00*e3rc10+e0rc12*e3rc02_2+2*e0rc11*e3rc01*e3rc02+2*e0rc10*e3rc00*e3rc02-e0rc12*e3rc01_2-e0rc12*e3rc00_2;
00638     AMatrix(5, 17) = +e1rc12*e3rc22_2+2*e1rc11*e3rc21*e3rc22+2*e1rc10*e3rc20*e3rc22+2*e1rc22*e3rc12*e3rc22+2*e1rc21*e3rc11*e3rc22+2*e1rc20*e3rc10*e3rc22-e1rc12*e3rc21_2-2*e1rc21*e3rc12*e3rc21+2*e1rc22*e3rc11*e3rc21-e1rc12*e3rc20_2-2*e1rc20*e3rc12*e3rc20+2*e1rc22*e3rc10*e3rc20+3*e1rc12*e3rc12_2+2*e1rc11*e3rc11*e3rc12+2*e1rc10*e3rc10*e3rc12+2*e1rc02*e3rc02*e3rc12-2*e1rc01*e3rc01*e3rc12-2*e1rc00*e3rc00*e3rc12+e1rc12*e3rc11_2+2*e1rc01*e3rc02*e3rc11+2*e1rc02*e3rc01*e3rc11+e1rc12*e3rc10_2+2*e1rc00*e3rc02*e3rc10+2*e1rc02*e3rc00*e3rc10+e1rc12*e3rc02_2+2*e1rc11*e3rc01*e3rc02+2*e1rc10*e3rc00*e3rc02-e1rc12*e3rc01_2-e1rc12*e3rc00_2;
00639     AMatrix(5, 18) = +e2rc12*e3rc22_2+2*e2rc11*e3rc21*e3rc22+2*e2rc10*e3rc20*e3rc22+2*e2rc22*e3rc12*e3rc22+2*e2rc21*e3rc11*e3rc22+2*e2rc20*e3rc10*e3rc22-e2rc12*e3rc21_2-2*e2rc21*e3rc12*e3rc21+2*e2rc22*e3rc11*e3rc21-e2rc12*e3rc20_2-2*e2rc20*e3rc12*e3rc20+2*e2rc22*e3rc10*e3rc20+3*e2rc12*e3rc12_2+2*e2rc11*e3rc11*e3rc12+2*e2rc10*e3rc10*e3rc12+2*e2rc02*e3rc02*e3rc12-2*e2rc01*e3rc01*e3rc12-2*e2rc00*e3rc00*e3rc12+e2rc12*e3rc11_2+2*e2rc01*e3rc02*e3rc11+2*e2rc02*e3rc01*e3rc11+e2rc12*e3rc10_2+2*e2rc00*e3rc02*e3rc10+2*e2rc02*e3rc00*e3rc10+e2rc12*e3rc02_2+2*e2rc11*e3rc01*e3rc02+2*e2rc10*e3rc00*e3rc02-e2rc12*e3rc01_2-e2rc12*e3rc00_2;
00640     AMatrix(5, 19) = +e3rc12*e3rc22_2+2*e3rc11*e3rc21*e3rc22+2*e3rc10*e3rc20*e3rc22-e3rc12*e3rc21_2-e3rc12*e3rc20_2+e3rc12_3+e3rc11_2*e3rc12+e3rc10_2*e3rc12+e3rc02_2*e3rc12-e3rc01_2*e3rc12-e3rc00_2*e3rc12+2*e3rc01*e3rc02*e3rc11+2*e3rc00*e3rc02*e3rc10;
00641     AMatrix(6, 0) = +e0rc20*e0rc22_2+2*e0rc10*e0rc12*e0rc22+2*e0rc00*e0rc02*e0rc22+e0rc20*e0rc21_2+2*e0rc10*e0rc11*e0rc21+2*e0rc00*e0rc01*e0rc21+e0rc20_3-e0rc12_2*e0rc20-e0rc11_2*e0rc20+e0rc10_2*e0rc20-e0rc02_2*e0rc20-e0rc01_2*e0rc20+e0rc00_2*e0rc20;
00642     AMatrix(6, 1) = +2*e0rc20*e0rc22*e1rc22+2*e0rc10*e0rc12*e1rc22+2*e0rc00*e0rc02*e1rc22+2*e0rc20*e0rc21*e1rc21+2*e0rc10*e0rc11*e1rc21+2*e0rc00*e0rc01*e1rc21+e0rc22_2*e1rc20+e0rc21_2*e1rc20+3*e0rc20_2*e1rc20-e0rc12_2*e1rc20-e0rc11_2*e1rc20+e0rc10_2*e1rc20-e0rc02_2*e1rc20-e0rc01_2*e1rc20+e0rc00_2*e1rc20+2*e0rc10*e0rc22*e1rc12-2*e0rc12*e0rc20*e1rc12+2*e0rc10*e0rc21*e1rc11-2*e0rc11*e0rc20*e1rc11+2*e0rc12*e0rc22*e1rc10+2*e0rc11*e0rc21*e1rc10+2*e0rc10*e0rc20*e1rc10+2*e0rc00*e0rc22*e1rc02-2*e0rc02*e0rc20*e1rc02+2*e0rc00*e0rc21*e1rc01-2*e0rc01*e0rc20*e1rc01+2*e0rc02*e0rc22*e1rc00+2*e0rc01*e0rc21*e1rc00+2*e0rc00*e0rc20*e1rc00;
00643     AMatrix(6, 2) = +2*e0rc20*e0rc22*e2rc22+2*e0rc10*e0rc12*e2rc22+2*e0rc00*e0rc02*e2rc22+2*e0rc20*e0rc21*e2rc21+2*e0rc10*e0rc11*e2rc21+2*e0rc00*e0rc01*e2rc21+e0rc22_2*e2rc20+e0rc21_2*e2rc20+3*e0rc20_2*e2rc20-e0rc12_2*e2rc20-e0rc11_2*e2rc20+e0rc10_2*e2rc20-e0rc02_2*e2rc20-e0rc01_2*e2rc20+e0rc00_2*e2rc20+2*e0rc10*e0rc22*e2rc12-2*e0rc12*e0rc20*e2rc12+2*e0rc10*e0rc21*e2rc11-2*e0rc11*e0rc20*e2rc11+2*e0rc12*e0rc22*e2rc10+2*e0rc11*e0rc21*e2rc10+2*e0rc10*e0rc20*e2rc10+2*e0rc00*e0rc22*e2rc02-2*e0rc02*e0rc20*e2rc02+2*e0rc00*e0rc21*e2rc01-2*e0rc01*e0rc20*e2rc01+2*e0rc02*e0rc22*e2rc00+2*e0rc01*e0rc21*e2rc00+2*e0rc00*e0rc20*e2rc00;
00644     AMatrix(6, 3) = +e0rc20*e1rc22_2+2*e0rc22*e1rc20*e1rc22+2*e0rc10*e1rc12*e1rc22+2*e0rc12*e1rc10*e1rc22+2*e0rc00*e1rc02*e1rc22+2*e0rc02*e1rc00*e1rc22+e0rc20*e1rc21_2+2*e0rc21*e1rc20*e1rc21+2*e0rc10*e1rc11*e1rc21+2*e0rc11*e1rc10*e1rc21+2*e0rc00*e1rc01*e1rc21+2*e0rc01*e1rc00*e1rc21+3*e0rc20*e1rc20_2-2*e0rc12*e1rc12*e1rc20-2*e0rc11*e1rc11*e1rc20+2*e0rc10*e1rc10*e1rc20-2*e0rc02*e1rc02*e1rc20-2*e0rc01*e1rc01*e1rc20+2*e0rc00*e1rc00*e1rc20-e0rc20*e1rc12_2+2*e0rc22*e1rc10*e1rc12-e0rc20*e1rc11_2+2*e0rc21*e1rc10*e1rc11+e0rc20*e1rc10_2-e0rc20*e1rc02_2+2*e0rc22*e1rc00*e1rc02-e0rc20*e1rc01_2+2*e0rc21*e1rc00*e1rc01+e0rc20*e1rc00_2;
00645     AMatrix(6, 4) = +2*e0rc20*e1rc22*e2rc22+2*e0rc22*e1rc20*e2rc22+2*e0rc10*e1rc12*e2rc22+2*e0rc12*e1rc10*e2rc22+2*e0rc00*e1rc02*e2rc22+2*e0rc02*e1rc00*e2rc22+2*e0rc20*e1rc21*e2rc21+2*e0rc21*e1rc20*e2rc21+2*e0rc10*e1rc11*e2rc21+2*e0rc11*e1rc10*e2rc21+2*e0rc00*e1rc01*e2rc21+2*e0rc01*e1rc00*e2rc21+2*e0rc22*e1rc22*e2rc20+2*e0rc21*e1rc21*e2rc20+6*e0rc20*e1rc20*e2rc20-2*e0rc12*e1rc12*e2rc20-2*e0rc11*e1rc11*e2rc20+2*e0rc10*e1rc10*e2rc20-2*e0rc02*e1rc02*e2rc20-2*e0rc01*e1rc01*e2rc20+2*e0rc00*e1rc00*e2rc20+2*e0rc10*e1rc22*e2rc12-2*e0rc12*e1rc20*e2rc12-2*e0rc20*e1rc12*e2rc12+2*e0rc22*e1rc10*e2rc12+2*e0rc10*e1rc21*e2rc11-2*e0rc11*e1rc20*e2rc11-2*e0rc20*e1rc11*e2rc11+2*e0rc21*e1rc10*e2rc11+2*e0rc12*e1rc22*e2rc10+2*e0rc11*e1rc21*e2rc10+2*e0rc10*e1rc20*e2rc10+2*e0rc22*e1rc12*e2rc10+2*e0rc21*e1rc11*e2rc10+2*e0rc20*e1rc10*e2rc10+2*e0rc00*e1rc22*e2rc02-2*e0rc02*e1rc20*e2rc02-2*e0rc20*e1rc02*e2rc02+2*e0rc22*e1rc00*e2rc02+2*e0rc00*e1rc21*e2rc01-2*e0rc01*e1rc20*e2rc01-2*e0rc20*e1rc01*e2rc01+2*e0rc21*e1rc00*e2rc01+2*e0rc02*e1rc22*e2rc00+2*e0rc01*e1rc21*e2rc00+2*e0rc00*e1rc20*e2rc00+2*e0rc22*e1rc02*e2rc00+2*e0rc21*e1rc01*e2rc00+2*e0rc20*e1rc00*e2rc00;
00646     AMatrix(6, 5) = +e0rc20*e2rc22_2+2*e0rc22*e2rc20*e2rc22+2*e0rc10*e2rc12*e2rc22+2*e0rc12*e2rc10*e2rc22+2*e0rc00*e2rc02*e2rc22+2*e0rc02*e2rc00*e2rc22+e0rc20*e2rc21_2+2*e0rc21*e2rc20*e2rc21+2*e0rc10*e2rc11*e2rc21+2*e0rc11*e2rc10*e2rc21+2*e0rc00*e2rc01*e2rc21+2*e0rc01*e2rc00*e2rc21+3*e0rc20*e2rc20_2-2*e0rc12*e2rc12*e2rc20-2*e0rc11*e2rc11*e2rc20+2*e0rc10*e2rc10*e2rc20-2*e0rc02*e2rc02*e2rc20-2*e0rc01*e2rc01*e2rc20+2*e0rc00*e2rc00*e2rc20-e0rc20*e2rc12_2+2*e0rc22*e2rc10*e2rc12-e0rc20*e2rc11_2+2*e0rc21*e2rc10*e2rc11+e0rc20*e2rc10_2-e0rc20*e2rc02_2+2*e0rc22*e2rc00*e2rc02-e0rc20*e2rc01_2+2*e0rc21*e2rc00*e2rc01+e0rc20*e2rc00_2;
00647     AMatrix(6, 6) = +e1rc20*e1rc22_2+2*e1rc10*e1rc12*e1rc22+2*e1rc00*e1rc02*e1rc22+e1rc20*e1rc21_2+2*e1rc10*e1rc11*e1rc21+2*e1rc00*e1rc01*e1rc21+e1rc20_3-e1rc12_2*e1rc20-e1rc11_2*e1rc20+e1rc10_2*e1rc20-e1rc02_2*e1rc20-e1rc01_2*e1rc20+e1rc00_2*e1rc20;
00648     AMatrix(6, 7) = +2*e1rc20*e1rc22*e2rc22+2*e1rc10*e1rc12*e2rc22+2*e1rc00*e1rc02*e2rc22+2*e1rc20*e1rc21*e2rc21+2*e1rc10*e1rc11*e2rc21+2*e1rc00*e1rc01*e2rc21+e1rc22_2*e2rc20+e1rc21_2*e2rc20+3*e1rc20_2*e2rc20-e1rc12_2*e2rc20-e1rc11_2*e2rc20+e1rc10_2*e2rc20-e1rc02_2*e2rc20-e1rc01_2*e2rc20+e1rc00_2*e2rc20+2*e1rc10*e1rc22*e2rc12-2*e1rc12*e1rc20*e2rc12+2*e1rc10*e1rc21*e2rc11-2*e1rc11*e1rc20*e2rc11+2*e1rc12*e1rc22*e2rc10+2*e1rc11*e1rc21*e2rc10+2*e1rc10*e1rc20*e2rc10+2*e1rc00*e1rc22*e2rc02-2*e1rc02*e1rc20*e2rc02+2*e1rc00*e1rc21*e2rc01-2*e1rc01*e1rc20*e2rc01+2*e1rc02*e1rc22*e2rc00+2*e1rc01*e1rc21*e2rc00+2*e1rc00*e1rc20*e2rc00;
00649     AMatrix(6, 8) = +e1rc20*e2rc22_2+2*e1rc22*e2rc20*e2rc22+2*e1rc10*e2rc12*e2rc22+2*e1rc12*e2rc10*e2rc22+2*e1rc00*e2rc02*e2rc22+2*e1rc02*e2rc00*e2rc22+e1rc20*e2rc21_2+2*e1rc21*e2rc20*e2rc21+2*e1rc10*e2rc11*e2rc21+2*e1rc11*e2rc10*e2rc21+2*e1rc00*e2rc01*e2rc21+2*e1rc01*e2rc00*e2rc21+3*e1rc20*e2rc20_2-2*e1rc12*e2rc12*e2rc20-2*e1rc11*e2rc11*e2rc20+2*e1rc10*e2rc10*e2rc20-2*e1rc02*e2rc02*e2rc20-2*e1rc01*e2rc01*e2rc20+2*e1rc00*e2rc00*e2rc20-e1rc20*e2rc12_2+2*e1rc22*e2rc10*e2rc12-e1rc20*e2rc11_2+2*e1rc21*e2rc10*e2rc11+e1rc20*e2rc10_2-e1rc20*e2rc02_2+2*e1rc22*e2rc00*e2rc02-e1rc20*e2rc01_2+2*e1rc21*e2rc00*e2rc01+e1rc20*e2rc00_2;
00650     AMatrix(6, 9) = e2rc20*e2rc22_2+2*e2rc10*e2rc12*e2rc22+2*e2rc00*e2rc02*e2rc22+e2rc20*e2rc21_2+2*e2rc10*e2rc11*e2rc21+2*e2rc00*e2rc01*e2rc21+e2rc20_3-e2rc12_2*e2rc20-e2rc11_2*e2rc20+e2rc10_2*e2rc20-e2rc02_2*e2rc20-e2rc01_2*e2rc20+e2rc00_2*e2rc20;
00651     AMatrix(6, 10) = +2*e0rc20*e0rc22*e3rc22+2*e0rc10*e0rc12*e3rc22+2*e0rc00*e0rc02*e3rc22+2*e0rc20*e0rc21*e3rc21+2*e0rc10*e0rc11*e3rc21+2*e0rc00*e0rc01*e3rc21+e0rc22_2*e3rc20+e0rc21_2*e3rc20+3*e0rc20_2*e3rc20-e0rc12_2*e3rc20-e0rc11_2*e3rc20+e0rc10_2*e3rc20-e0rc02_2*e3rc20-e0rc01_2*e3rc20+e0rc00_2*e3rc20+2*e0rc10*e0rc22*e3rc12-2*e0rc12*e0rc20*e3rc12+2*e0rc10*e0rc21*e3rc11-2*e0rc11*e0rc20*e3rc11+2*e0rc12*e0rc22*e3rc10+2*e0rc11*e0rc21*e3rc10+2*e0rc10*e0rc20*e3rc10+2*e0rc00*e0rc22*e3rc02-2*e0rc02*e0rc20*e3rc02+2*e0rc00*e0rc21*e3rc01-2*e0rc01*e0rc20*e3rc01+2*e0rc02*e0rc22*e3rc00+2*e0rc01*e0rc21*e3rc00+2*e0rc00*e0rc20*e3rc00;
00652     AMatrix(6, 11) = +2*e0rc20*e1rc22*e3rc22+2*e0rc22*e1rc20*e3rc22+2*e0rc10*e1rc12*e3rc22+2*e0rc12*e1rc10*e3rc22+2*e0rc00*e1rc02*e3rc22+2*e0rc02*e1rc00*e3rc22+2*e0rc20*e1rc21*e3rc21+2*e0rc21*e1rc20*e3rc21+2*e0rc10*e1rc11*e3rc21+2*e0rc11*e1rc10*e3rc21+2*e0rc00*e1rc01*e3rc21+2*e0rc01*e1rc00*e3rc21+2*e0rc22*e1rc22*e3rc20+2*e0rc21*e1rc21*e3rc20+6*e0rc20*e1rc20*e3rc20-2*e0rc12*e1rc12*e3rc20-2*e0rc11*e1rc11*e3rc20+2*e0rc10*e1rc10*e3rc20-2*e0rc02*e1rc02*e3rc20-2*e0rc01*e1rc01*e3rc20+2*e0rc00*e1rc00*e3rc20+2*e0rc10*e1rc22*e3rc12-2*e0rc12*e1rc20*e3rc12-2*e0rc20*e1rc12*e3rc12+2*e0rc22*e1rc10*e3rc12+2*e0rc10*e1rc21*e3rc11-2*e0rc11*e1rc20*e3rc11-2*e0rc20*e1rc11*e3rc11+2*e0rc21*e1rc10*e3rc11+2*e0rc12*e1rc22*e3rc10+2*e0rc11*e1rc21*e3rc10+2*e0rc10*e1rc20*e3rc10+2*e0rc22*e1rc12*e3rc10+2*e0rc21*e1rc11*e3rc10+2*e0rc20*e1rc10*e3rc10+2*e0rc00*e1rc22*e3rc02-2*e0rc02*e1rc20*e3rc02-2*e0rc20*e1rc02*e3rc02+2*e0rc22*e1rc00*e3rc02+2*e0rc00*e1rc21*e3rc01-2*e0rc01*e1rc20*e3rc01-2*e0rc20*e1rc01*e3rc01+2*e0rc21*e1rc00*e3rc01+2*e0rc02*e1rc22*e3rc00+2*e0rc01*e1rc21*e3rc00+2*e0rc00*e1rc20*e3rc00+2*e0rc22*e1rc02*e3rc00+2*e0rc21*e1rc01*e3rc00+2*e0rc20*e1rc00*e3rc00;
00653     AMatrix(6, 12) = +2*e0rc20*e2rc22*e3rc22+2*e0rc22*e2rc20*e3rc22+2*e0rc10*e2rc12*e3rc22+2*e0rc12*e2rc10*e3rc22+2*e0rc00*e2rc02*e3rc22+2*e0rc02*e2rc00*e3rc22+2*e0rc20*e2rc21*e3rc21+2*e0rc21*e2rc20*e3rc21+2*e0rc10*e2rc11*e3rc21+2*e0rc11*e2rc10*e3rc21+2*e0rc00*e2rc01*e3rc21+2*e0rc01*e2rc00*e3rc21+2*e0rc22*e2rc22*e3rc20+2*e0rc21*e2rc21*e3rc20+6*e0rc20*e2rc20*e3rc20-2*e0rc12*e2rc12*e3rc20-2*e0rc11*e2rc11*e3rc20+2*e0rc10*e2rc10*e3rc20-2*e0rc02*e2rc02*e3rc20-2*e0rc01*e2rc01*e3rc20+2*e0rc00*e2rc00*e3rc20+2*e0rc10*e2rc22*e3rc12-2*e0rc12*e2rc20*e3rc12-2*e0rc20*e2rc12*e3rc12+2*e0rc22*e2rc10*e3rc12+2*e0rc10*e2rc21*e3rc11-2*e0rc11*e2rc20*e3rc11-2*e0rc20*e2rc11*e3rc11+2*e0rc21*e2rc10*e3rc11+2*e0rc12*e2rc22*e3rc10+2*e0rc11*e2rc21*e3rc10+2*e0rc10*e2rc20*e3rc10+2*e0rc22*e2rc12*e3rc10+2*e0rc21*e2rc11*e3rc10+2*e0rc20*e2rc10*e3rc10+2*e0rc00*e2rc22*e3rc02-2*e0rc02*e2rc20*e3rc02-2*e0rc20*e2rc02*e3rc02+2*e0rc22*e2rc00*e3rc02+2*e0rc00*e2rc21*e3rc01-2*e0rc01*e2rc20*e3rc01-2*e0rc20*e2rc01*e3rc01+2*e0rc21*e2rc00*e3rc01+2*e0rc02*e2rc22*e3rc00+2*e0rc01*e2rc21*e3rc00+2*e0rc00*e2rc20*e3rc00+2*e0rc22*e2rc02*e3rc00+2*e0rc21*e2rc01*e3rc00+2*e0rc20*e2rc00*e3rc00;
00654     AMatrix(6, 13) = +2*e1rc20*e1rc22*e3rc22+2*e1rc10*e1rc12*e3rc22+2*e1rc00*e1rc02*e3rc22+2*e1rc20*e1rc21*e3rc21+2*e1rc10*e1rc11*e3rc21+2*e1rc00*e1rc01*e3rc21+e1rc22_2*e3rc20+e1rc21_2*e3rc20+3*e1rc20_2*e3rc20-e1rc12_2*e3rc20-e1rc11_2*e3rc20+e1rc10_2*e3rc20-e1rc02_2*e3rc20-e1rc01_2*e3rc20+e1rc00_2*e3rc20+2*e1rc10*e1rc22*e3rc12-2*e1rc12*e1rc20*e3rc12+2*e1rc10*e1rc21*e3rc11-2*e1rc11*e1rc20*e3rc11+2*e1rc12*e1rc22*e3rc10+2*e1rc11*e1rc21*e3rc10+2*e1rc10*e1rc20*e3rc10+2*e1rc00*e1rc22*e3rc02-2*e1rc02*e1rc20*e3rc02+2*e1rc00*e1rc21*e3rc01-2*e1rc01*e1rc20*e3rc01+2*e1rc02*e1rc22*e3rc00+2*e1rc01*e1rc21*e3rc00+2*e1rc00*e1rc20*e3rc00;
00655     AMatrix(6, 14) = +2*e1rc20*e2rc22*e3rc22+2*e1rc22*e2rc20*e3rc22+2*e1rc10*e2rc12*e3rc22+2*e1rc12*e2rc10*e3rc22+2*e1rc00*e2rc02*e3rc22+2*e1rc02*e2rc00*e3rc22+2*e1rc20*e2rc21*e3rc21+2*e1rc21*e2rc20*e3rc21+2*e1rc10*e2rc11*e3rc21+2*e1rc11*e2rc10*e3rc21+2*e1rc00*e2rc01*e3rc21+2*e1rc01*e2rc00*e3rc21+2*e1rc22*e2rc22*e3rc20+2*e1rc21*e2rc21*e3rc20+6*e1rc20*e2rc20*e3rc20-2*e1rc12*e2rc12*e3rc20-2*e1rc11*e2rc11*e3rc20+2*e1rc10*e2rc10*e3rc20-2*e1rc02*e2rc02*e3rc20-2*e1rc01*e2rc01*e3rc20+2*e1rc00*e2rc00*e3rc20+2*e1rc10*e2rc22*e3rc12-2*e1rc12*e2rc20*e3rc12-2*e1rc20*e2rc12*e3rc12+2*e1rc22*e2rc10*e3rc12+2*e1rc10*e2rc21*e3rc11-2*e1rc11*e2rc20*e3rc11-2*e1rc20*e2rc11*e3rc11+2*e1rc21*e2rc10*e3rc11+2*e1rc12*e2rc22*e3rc10+2*e1rc11*e2rc21*e3rc10+2*e1rc10*e2rc20*e3rc10+2*e1rc22*e2rc12*e3rc10+2*e1rc21*e2rc11*e3rc10+2*e1rc20*e2rc10*e3rc10+2*e1rc00*e2rc22*e3rc02-2*e1rc02*e2rc20*e3rc02-2*e1rc20*e2rc02*e3rc02+2*e1rc22*e2rc00*e3rc02+2*e1rc00*e2rc21*e3rc01-2*e1rc01*e2rc20*e3rc01-2*e1rc20*e2rc01*e3rc01+2*e1rc21*e2rc00*e3rc01+2*e1rc02*e2rc22*e3rc00+2*e1rc01*e2rc21*e3rc00+2*e1rc00*e2rc20*e3rc00+2*e1rc22*e2rc02*e3rc00+2*e1rc21*e2rc01*e3rc00+2*e1rc20*e2rc00*e3rc00;
00656     AMatrix(6, 15) = +2*e2rc20*e2rc22*e3rc22+2*e2rc10*e2rc12*e3rc22+2*e2rc00*e2rc02*e3rc22+2*e2rc20*e2rc21*e3rc21+2*e2rc10*e2rc11*e3rc21+2*e2rc00*e2rc01*e3rc21+e2rc22_2*e3rc20+e2rc21_2*e3rc20+3*e2rc20_2*e3rc20-e2rc12_2*e3rc20-e2rc11_2*e3rc20+e2rc10_2*e3rc20-e2rc02_2*e3rc20-e2rc01_2*e3rc20+e2rc00_2*e3rc20+2*e2rc10*e2rc22*e3rc12-2*e2rc12*e2rc20*e3rc12+2*e2rc10*e2rc21*e3rc11-2*e2rc11*e2rc20*e3rc11+2*e2rc12*e2rc22*e3rc10+2*e2rc11*e2rc21*e3rc10+2*e2rc10*e2rc20*e3rc10+2*e2rc00*e2rc22*e3rc02-2*e2rc02*e2rc20*e3rc02+2*e2rc00*e2rc21*e3rc01-2*e2rc01*e2rc20*e3rc01+2*e2rc02*e2rc22*e3rc00+2*e2rc01*e2rc21*e3rc00+2*e2rc00*e2rc20*e3rc00;
00657     AMatrix(6, 16) = +e0rc20*e3rc22_2+2*e0rc22*e3rc20*e3rc22+2*e0rc10*e3rc12*e3rc22+2*e0rc12*e3rc10*e3rc22+2*e0rc00*e3rc02*e3rc22+2*e0rc02*e3rc00*e3rc22+e0rc20*e3rc21_2+2*e0rc21*e3rc20*e3rc21+2*e0rc10*e3rc11*e3rc21+2*e0rc11*e3rc10*e3rc21+2*e0rc00*e3rc01*e3rc21+2*e0rc01*e3rc00*e3rc21+3*e0rc20*e3rc20_2-2*e0rc12*e3rc12*e3rc20-2*e0rc11*e3rc11*e3rc20+2*e0rc10*e3rc10*e3rc20-2*e0rc02*e3rc02*e3rc20-2*e0rc01*e3rc01*e3rc20+2*e0rc00*e3rc00*e3rc20-e0rc20*e3rc12_2+2*e0rc22*e3rc10*e3rc12-e0rc20*e3rc11_2+2*e0rc21*e3rc10*e3rc11+e0rc20*e3rc10_2-e0rc20*e3rc02_2+2*e0rc22*e3rc00*e3rc02-e0rc20*e3rc01_2+2*e0rc21*e3rc00*e3rc01+e0rc20*e3rc00_2;
00658     AMatrix(6, 17) = +e1rc20*e3rc22_2+2*e1rc22*e3rc20*e3rc22+2*e1rc10*e3rc12*e3rc22+2*e1rc12*e3rc10*e3rc22+2*e1rc00*e3rc02*e3rc22+2*e1rc02*e3rc00*e3rc22+e1rc20*e3rc21_2+2*e1rc21*e3rc20*e3rc21+2*e1rc10*e3rc11*e3rc21+2*e1rc11*e3rc10*e3rc21+2*e1rc00*e3rc01*e3rc21+2*e1rc01*e3rc00*e3rc21+3*e1rc20*e3rc20_2-2*e1rc12*e3rc12*e3rc20-2*e1rc11*e3rc11*e3rc20+2*e1rc10*e3rc10*e3rc20-2*e1rc02*e3rc02*e3rc20-2*e1rc01*e3rc01*e3rc20+2*e1rc00*e3rc00*e3rc20-e1rc20*e3rc12_2+2*e1rc22*e3rc10*e3rc12-e1rc20*e3rc11_2+2*e1rc21*e3rc10*e3rc11+e1rc20*e3rc10_2-e1rc20*e3rc02_2+2*e1rc22*e3rc00*e3rc02-e1rc20*e3rc01_2+2*e1rc21*e3rc00*e3rc01+e1rc20*e3rc00_2;
00659     AMatrix(6, 18) = +e2rc20*e3rc22_2+2*e2rc22*e3rc20*e3rc22+2*e2rc10*e3rc12*e3rc22+2*e2rc12*e3rc10*e3rc22+2*e2rc00*e3rc02*e3rc22+2*e2rc02*e3rc00*e3rc22+e2rc20*e3rc21_2+2*e2rc21*e3rc20*e3rc21+2*e2rc10*e3rc11*e3rc21+2*e2rc11*e3rc10*e3rc21+2*e2rc00*e3rc01*e3rc21+2*e2rc01*e3rc00*e3rc21+3*e2rc20*e3rc20_2-2*e2rc12*e3rc12*e3rc20-2*e2rc11*e3rc11*e3rc20+2*e2rc10*e3rc10*e3rc20-2*e2rc02*e3rc02*e3rc20-2*e2rc01*e3rc01*e3rc20+2*e2rc00*e3rc00*e3rc20-e2rc20*e3rc12_2+2*e2rc22*e3rc10*e3rc12-e2rc20*e3rc11_2+2*e2rc21*e3rc10*e3rc11+e2rc20*e3rc10_2-e2rc20*e3rc02_2+2*e2rc22*e3rc00*e3rc02-e2rc20*e3rc01_2+2*e2rc21*e3rc00*e3rc01+e2rc20*e3rc00_2;
00660     AMatrix(6, 19) = +e3rc20*e3rc22_2+2*e3rc10*e3rc12*e3rc22+2*e3rc00*e3rc02*e3rc22+e3rc20*e3rc21_2+2*e3rc10*e3rc11*e3rc21+2*e3rc00*e3rc01*e3rc21+e3rc20_3-e3rc12_2*e3rc20-e3rc11_2*e3rc20+e3rc10_2*e3rc20-e3rc02_2*e3rc20-e3rc01_2*e3rc20+e3rc00_2*e3rc20;
00661     AMatrix(7, 0) = +e0rc21*e0rc22_2+2*e0rc11*e0rc12*e0rc22+2*e0rc01*e0rc02*e0rc22+e0rc21_3+e0rc20_2*e0rc21-e0rc12_2*e0rc21+e0rc11_2*e0rc21-e0rc10_2*e0rc21-e0rc02_2*e0rc21+e0rc01_2*e0rc21-e0rc00_2*e0rc21+2*e0rc10*e0rc11*e0rc20+2*e0rc00*e0rc01*e0rc20;
00662     AMatrix(7, 1) = +2*e0rc21*e0rc22*e1rc22+2*e0rc11*e0rc12*e1rc22+2*e0rc01*e0rc02*e1rc22+e0rc22_2*e1rc21+3*e0rc21_2*e1rc21+e0rc20_2*e1rc21-e0rc12_2*e1rc21+e0rc11_2*e1rc21-e0rc10_2*e1rc21-e0rc02_2*e1rc21+e0rc01_2*e1rc21-e0rc00_2*e1rc21+2*e0rc20*e0rc21*e1rc20+2*e0rc10*e0rc11*e1rc20+2*e0rc00*e0rc01*e1rc20+2*e0rc11*e0rc22*e1rc12-2*e0rc12*e0rc21*e1rc12+2*e0rc12*e0rc22*e1rc11+2*e0rc11*e0rc21*e1rc11+2*e0rc10*e0rc20*e1rc11-2*e0rc10*e0rc21*e1rc10+2*e0rc11*e0rc20*e1rc10+2*e0rc01*e0rc22*e1rc02-2*e0rc02*e0rc21*e1rc02+2*e0rc02*e0rc22*e1rc01+2*e0rc01*e0rc21*e1rc01+2*e0rc00*e0rc20*e1rc01-2*e0rc00*e0rc21*e1rc00+2*e0rc01*e0rc20*e1rc00;
00663     AMatrix(7, 2) = +2*e0rc21*e0rc22*e2rc22+2*e0rc11*e0rc12*e2rc22+2*e0rc01*e0rc02*e2rc22+e0rc22_2*e2rc21+3*e0rc21_2*e2rc21+e0rc20_2*e2rc21-e0rc12_2*e2rc21+e0rc11_2*e2rc21-e0rc10_2*e2rc21-e0rc02_2*e2rc21+e0rc01_2*e2rc21-e0rc00_2*e2rc21+2*e0rc20*e0rc21*e2rc20+2*e0rc10*e0rc11*e2rc20+2*e0rc00*e0rc01*e2rc20+2*e0rc11*e0rc22*e2rc12-2*e0rc12*e0rc21*e2rc12+2*e0rc12*e0rc22*e2rc11+2*e0rc11*e0rc21*e2rc11+2*e0rc10*e0rc20*e2rc11-2*e0rc10*e0rc21*e2rc10+2*e0rc11*e0rc20*e2rc10+2*e0rc01*e0rc22*e2rc02-2*e0rc02*e0rc21*e2rc02+2*e0rc02*e0rc22*e2rc01+2*e0rc01*e0rc21*e2rc01+2*e0rc00*e0rc20*e2rc01-2*e0rc00*e0rc21*e2rc00+2*e0rc01*e0rc20*e2rc00;
00664     AMatrix(7, 3) = +e0rc21*e1rc22_2+2*e0rc22*e1rc21*e1rc22+2*e0rc11*e1rc12*e1rc22+2*e0rc12*e1rc11*e1rc22+2*e0rc01*e1rc02*e1rc22+2*e0rc02*e1rc01*e1rc22+3*e0rc21*e1rc21_2+2*e0rc20*e1rc20*e1rc21-2*e0rc12*e1rc12*e1rc21+2*e0rc11*e1rc11*e1rc21-2*e0rc10*e1rc10*e1rc21-2*e0rc02*e1rc02*e1rc21+2*e0rc01*e1rc01*e1rc21-2*e0rc00*e1rc00*e1rc21+e0rc21*e1rc20_2+2*e0rc10*e1rc11*e1rc20+2*e0rc11*e1rc10*e1rc20+2*e0rc00*e1rc01*e1rc20+2*e0rc01*e1rc00*e1rc20-e0rc21*e1rc12_2+2*e0rc22*e1rc11*e1rc12+e0rc21*e1rc11_2+2*e0rc20*e1rc10*e1rc11-e0rc21*e1rc10_2-e0rc21*e1rc02_2+2*e0rc22*e1rc01*e1rc02+e0rc21*e1rc01_2+2*e0rc20*e1rc00*e1rc01-e0rc21*e1rc00_2;
00665     AMatrix(7, 4) = +2*e0rc21*e1rc22*e2rc22+2*e0rc22*e1rc21*e2rc22+2*e0rc11*e1rc12*e2rc22+2*e0rc12*e1rc11*e2rc22+2*e0rc01*e1rc02*e2rc22+2*e0rc02*e1rc01*e2rc22+2*e0rc22*e1rc22*e2rc21+6*e0rc21*e1rc21*e2rc21+2*e0rc20*e1rc20*e2rc21-2*e0rc12*e1rc12*e2rc21+2*e0rc11*e1rc11*e2rc21-2*e0rc10*e1rc10*e2rc21-2*e0rc02*e1rc02*e2rc21+2*e0rc01*e1rc01*e2rc21-2*e0rc00*e1rc00*e2rc21+2*e0rc20*e1rc21*e2rc20+2*e0rc21*e1rc20*e2rc20+2*e0rc10*e1rc11*e2rc20+2*e0rc11*e1rc10*e2rc20+2*e0rc00*e1rc01*e2rc20+2*e0rc01*e1rc00*e2rc20+2*e0rc11*e1rc22*e2rc12-2*e0rc12*e1rc21*e2rc12-2*e0rc21*e1rc12*e2rc12+2*e0rc22*e1rc11*e2rc12+2*e0rc12*e1rc22*e2rc11+2*e0rc11*e1rc21*e2rc11+2*e0rc10*e1rc20*e2rc11+2*e0rc22*e1rc12*e2rc11+2*e0rc21*e1rc11*e2rc11+2*e0rc20*e1rc10*e2rc11-2*e0rc10*e1rc21*e2rc10+2*e0rc11*e1rc20*e2rc10+2*e0rc20*e1rc11*e2rc10-2*e0rc21*e1rc10*e2rc10+2*e0rc01*e1rc22*e2rc02-2*e0rc02*e1rc21*e2rc02-2*e0rc21*e1rc02*e2rc02+2*e0rc22*e1rc01*e2rc02+2*e0rc02*e1rc22*e2rc01+2*e0rc01*e1rc21*e2rc01+2*e0rc00*e1rc20*e2rc01+2*e0rc22*e1rc02*e2rc01+2*e0rc21*e1rc01*e2rc01+2*e0rc20*e1rc00*e2rc01-2*e0rc00*e1rc21*e2rc00+2*e0rc01*e1rc20*e2rc00+2*e0rc20*e1rc01*e2rc00-2*e0rc21*e1rc00*e2rc00;
00666     AMatrix(7, 5) = +e0rc21*e2rc22_2+2*e0rc22*e2rc21*e2rc22+2*e0rc11*e2rc12*e2rc22+2*e0rc12*e2rc11*e2rc22+2*e0rc01*e2rc02*e2rc22+2*e0rc02*e2rc01*e2rc22+3*e0rc21*e2rc21_2+2*e0rc20*e2rc20*e2rc21-2*e0rc12*e2rc12*e2rc21+2*e0rc11*e2rc11*e2rc21-2*e0rc10*e2rc10*e2rc21-2*e0rc02*e2rc02*e2rc21+2*e0rc01*e2rc01*e2rc21-2*e0rc00*e2rc00*e2rc21+e0rc21*e2rc20_2+2*e0rc10*e2rc11*e2rc20+2*e0rc11*e2rc10*e2rc20+2*e0rc00*e2rc01*e2rc20+2*e0rc01*e2rc00*e2rc20-e0rc21*e2rc12_2+2*e0rc22*e2rc11*e2rc12+e0rc21*e2rc11_2+2*e0rc20*e2rc10*e2rc11-e0rc21*e2rc10_2-e0rc21*e2rc02_2+2*e0rc22*e2rc01*e2rc02+e0rc21*e2rc01_2+2*e0rc20*e2rc00*e2rc01-e0rc21*e2rc00_2;
00667     AMatrix(7, 6) = +e1rc21*e1rc22_2+2*e1rc11*e1rc12*e1rc22+2*e1rc01*e1rc02*e1rc22+e1rc21_3+e1rc20_2*e1rc21-e1rc12_2*e1rc21+e1rc11_2*e1rc21-e1rc10_2*e1rc21-e1rc02_2*e1rc21+e1rc01_2*e1rc21-e1rc00_2*e1rc21+2*e1rc10*e1rc11*e1rc20+2*e1rc00*e1rc01*e1rc20;
00668     AMatrix(7, 7) = +2*e1rc21*e1rc22*e2rc22+2*e1rc11*e1rc12*e2rc22+2*e1rc01*e1rc02*e2rc22+e1rc22_2*e2rc21+3*e1rc21_2*e2rc21+e1rc20_2*e2rc21-e1rc12_2*e2rc21+e1rc11_2*e2rc21-e1rc10_2*e2rc21-e1rc02_2*e2rc21+e1rc01_2*e2rc21-e1rc00_2*e2rc21+2*e1rc20*e1rc21*e2rc20+2*e1rc10*e1rc11*e2rc20+2*e1rc00*e1rc01*e2rc20+2*e1rc11*e1rc22*e2rc12-2*e1rc12*e1rc21*e2rc12+2*e1rc12*e1rc22*e2rc11+2*e1rc11*e1rc21*e2rc11+2*e1rc10*e1rc20*e2rc11-2*e1rc10*e1rc21*e2rc10+2*e1rc11*e1rc20*e2rc10+2*e1rc01*e1rc22*e2rc02-2*e1rc02*e1rc21*e2rc02+2*e1rc02*e1rc22*e2rc01+2*e1rc01*e1rc21*e2rc01+2*e1rc00*e1rc20*e2rc01-2*e1rc00*e1rc21*e2rc00+2*e1rc01*e1rc20*e2rc00;
00669     AMatrix(7, 8) = +e1rc21*e2rc22_2+2*e1rc22*e2rc21*e2rc22+2*e1rc11*e2rc12*e2rc22+2*e1rc12*e2rc11*e2rc22+2*e1rc01*e2rc02*e2rc22+2*e1rc02*e2rc01*e2rc22+3*e1rc21*e2rc21_2+2*e1rc20*e2rc20*e2rc21-2*e1rc12*e2rc12*e2rc21+2*e1rc11*e2rc11*e2rc21-2*e1rc10*e2rc10*e2rc21-2*e1rc02*e2rc02*e2rc21+2*e1rc01*e2rc01*e2rc21-2*e1rc00*e2rc00*e2rc21+e1rc21*e2rc20_2+2*e1rc10*e2rc11*e2rc20+2*e1rc11*e2rc10*e2rc20+2*e1rc00*e2rc01*e2rc20+2*e1rc01*e2rc00*e2rc20-e1rc21*e2rc12_2+2*e1rc22*e2rc11*e2rc12+e1rc21*e2rc11_2+2*e1rc20*e2rc10*e2rc11-e1rc21*e2rc10_2-e1rc21*e2rc02_2+2*e1rc22*e2rc01*e2rc02+e1rc21*e2rc01_2+2*e1rc20*e2rc00*e2rc01-e1rc21*e2rc00_2;
00670     AMatrix(7, 9) = e2rc21*e2rc22_2+2*e2rc11*e2rc12*e2rc22+2*e2rc01*e2rc02*e2rc22+e2rc21_3+e2rc20_2*e2rc21-e2rc12_2*e2rc21+e2rc11_2*e2rc21-e2rc10_2*e2rc21-e2rc02_2*e2rc21+e2rc01_2*e2rc21-e2rc00_2*e2rc21+2*e2rc10*e2rc11*e2rc20+2*e2rc00*e2rc01*e2rc20;
00671     AMatrix(7, 10) = +2*e0rc21*e0rc22*e3rc22+2*e0rc11*e0rc12*e3rc22+2*e0rc01*e0rc02*e3rc22+e0rc22_2*e3rc21+3*e0rc21_2*e3rc21+e0rc20_2*e3rc21-e0rc12_2*e3rc21+e0rc11_2*e3rc21-e0rc10_2*e3rc21-e0rc02_2*e3rc21+e0rc01_2*e3rc21-e0rc00_2*e3rc21+2*e0rc20*e0rc21*e3rc20+2*e0rc10*e0rc11*e3rc20+2*e0rc00*e0rc01*e3rc20+2*e0rc11*e0rc22*e3rc12-2*e0rc12*e0rc21*e3rc12+2*e0rc12*e0rc22*e3rc11+2*e0rc11*e0rc21*e3rc11+2*e0rc10*e0rc20*e3rc11-2*e0rc10*e0rc21*e3rc10+2*e0rc11*e0rc20*e3rc10+2*e0rc01*e0rc22*e3rc02-2*e0rc02*e0rc21*e3rc02+2*e0rc02*e0rc22*e3rc01+2*e0rc01*e0rc21*e3rc01+2*e0rc00*e0rc20*e3rc01-2*e0rc00*e0rc21*e3rc00+2*e0rc01*e0rc20*e3rc00;
00672     AMatrix(7, 11) = +2*e0rc21*e1rc22*e3rc22+2*e0rc22*e1rc21*e3rc22+2*e0rc11*e1rc12*e3rc22+2*e0rc12*e1rc11*e3rc22+2*e0rc01*e1rc02*e3rc22+2*e0rc02*e1rc01*e3rc22+2*e0rc22*e1rc22*e3rc21+6*e0rc21*e1rc21*e3rc21+2*e0rc20*e1rc20*e3rc21-2*e0rc12*e1rc12*e3rc21+2*e0rc11*e1rc11*e3rc21-2*e0rc10*e1rc10*e3rc21-2*e0rc02*e1rc02*e3rc21+2*e0rc01*e1rc01*e3rc21-2*e0rc00*e1rc00*e3rc21+2*e0rc20*e1rc21*e3rc20+2*e0rc21*e1rc20*e3rc20+2*e0rc10*e1rc11*e3rc20+2*e0rc11*e1rc10*e3rc20+2*e0rc00*e1rc01*e3rc20+2*e0rc01*e1rc00*e3rc20+2*e0rc11*e1rc22*e3rc12-2*e0rc12*e1rc21*e3rc12-2*e0rc21*e1rc12*e3rc12+2*e0rc22*e1rc11*e3rc12+2*e0rc12*e1rc22*e3rc11+2*e0rc11*e1rc21*e3rc11+2*e0rc10*e1rc20*e3rc11+2*e0rc22*e1rc12*e3rc11+2*e0rc21*e1rc11*e3rc11+2*e0rc20*e1rc10*e3rc11-2*e0rc10*e1rc21*e3rc10+2*e0rc11*e1rc20*e3rc10+2*e0rc20*e1rc11*e3rc10-2*e0rc21*e1rc10*e3rc10+2*e0rc01*e1rc22*e3rc02-2*e0rc02*e1rc21*e3rc02-2*e0rc21*e1rc02*e3rc02+2*e0rc22*e1rc01*e3rc02+2*e0rc02*e1rc22*e3rc01+2*e0rc01*e1rc21*e3rc01+2*e0rc00*e1rc20*e3rc01+2*e0rc22*e1rc02*e3rc01+2*e0rc21*e1rc01*e3rc01+2*e0rc20*e1rc00*e3rc01-2*e0rc00*e1rc21*e3rc00+2*e0rc01*e1rc20*e3rc00+2*e0rc20*e1rc01*e3rc00-2*e0rc21*e1rc00*e3rc00;
00673     AMatrix(7, 12) = +2*e0rc21*e2rc22*e3rc22+2*e0rc22*e2rc21*e3rc22+2*e0rc11*e2rc12*e3rc22+2*e0rc12*e2rc11*e3rc22+2*e0rc01*e2rc02*e3rc22+2*e0rc02*e2rc01*e3rc22+2*e0rc22*e2rc22*e3rc21+6*e0rc21*e2rc21*e3rc21+2*e0rc20*e2rc20*e3rc21-2*e0rc12*e2rc12*e3rc21+2*e0rc11*e2rc11*e3rc21-2*e0rc10*e2rc10*e3rc21-2*e0rc02*e2rc02*e3rc21+2*e0rc01*e2rc01*e3rc21-2*e0rc00*e2rc00*e3rc21+2*e0rc20*e2rc21*e3rc20+2*e0rc21*e2rc20*e3rc20+2*e0rc10*e2rc11*e3rc20+2*e0rc11*e2rc10*e3rc20+2*e0rc00*e2rc01*e3rc20+2*e0rc01*e2rc00*e3rc20+2*e0rc11*e2rc22*e3rc12-2*e0rc12*e2rc21*e3rc12-2*e0rc21*e2rc12*e3rc12+2*e0rc22*e2rc11*e3rc12+2*e0rc12*e2rc22*e3rc11+2*e0rc11*e2rc21*e3rc11+2*e0rc10*e2rc20*e3rc11+2*e0rc22*e2rc12*e3rc11+2*e0rc21*e2rc11*e3rc11+2*e0rc20*e2rc10*e3rc11-2*e0rc10*e2rc21*e3rc10+2*e0rc11*e2rc20*e3rc10+2*e0rc20*e2rc11*e3rc10-2*e0rc21*e2rc10*e3rc10+2*e0rc01*e2rc22*e3rc02-2*e0rc02*e2rc21*e3rc02-2*e0rc21*e2rc02*e3rc02+2*e0rc22*e2rc01*e3rc02+2*e0rc02*e2rc22*e3rc01+2*e0rc01*e2rc21*e3rc01+2*e0rc00*e2rc20*e3rc01+2*e0rc22*e2rc02*e3rc01+2*e0rc21*e2rc01*e3rc01+2*e0rc20*e2rc00*e3rc01-2*e0rc00*e2rc21*e3rc00+2*e0rc01*e2rc20*e3rc00+2*e0rc20*e2rc01*e3rc00-2*e0rc21*e2rc00*e3rc00;
00674     AMatrix(7, 13) = +2*e1rc21*e1rc22*e3rc22+2*e1rc11*e1rc12*e3rc22+2*e1rc01*e1rc02*e3rc22+e1rc22_2*e3rc21+3*e1rc21_2*e3rc21+e1rc20_2*e3rc21-e1rc12_2*e3rc21+e1rc11_2*e3rc21-e1rc10_2*e3rc21-e1rc02_2*e3rc21+e1rc01_2*e3rc21-e1rc00_2*e3rc21+2*e1rc20*e1rc21*e3rc20+2*e1rc10*e1rc11*e3rc20+2*e1rc00*e1rc01*e3rc20+2*e1rc11*e1rc22*e3rc12-2*e1rc12*e1rc21*e3rc12+2*e1rc12*e1rc22*e3rc11+2*e1rc11*e1rc21*e3rc11+2*e1rc10*e1rc20*e3rc11-2*e1rc10*e1rc21*e3rc10+2*e1rc11*e1rc20*e3rc10+2*e1rc01*e1rc22*e3rc02-2*e1rc02*e1rc21*e3rc02+2*e1rc02*e1rc22*e3rc01+2*e1rc01*e1rc21*e3rc01+2*e1rc00*e1rc20*e3rc01-2*e1rc00*e1rc21*e3rc00+2*e1rc01*e1rc20*e3rc00;
00675     AMatrix(7, 14) = +2*e1rc21*e2rc22*e3rc22+2*e1rc22*e2rc21*e3rc22+2*e1rc11*e2rc12*e3rc22+2*e1rc12*e2rc11*e3rc22+2*e1rc01*e2rc02*e3rc22+2*e1rc02*e2rc01*e3rc22+2*e1rc22*e2rc22*e3rc21+6*e1rc21*e2rc21*e3rc21+2*e1rc20*e2rc20*e3rc21-2*e1rc12*e2rc12*e3rc21+2*e1rc11*e2rc11*e3rc21-2*e1rc10*e2rc10*e3rc21-2*e1rc02*e2rc02*e3rc21+2*e1rc01*e2rc01*e3rc21-2*e1rc00*e2rc00*e3rc21+2*e1rc20*e2rc21*e3rc20+2*e1rc21*e2rc20*e3rc20+2*e1rc10*e2rc11*e3rc20+2*e1rc11*e2rc10*e3rc20+2*e1rc00*e2rc01*e3rc20+2*e1rc01*e2rc00*e3rc20+2*e1rc11*e2rc22*e3rc12-2*e1rc12*e2rc21*e3rc12-2*e1rc21*e2rc12*e3rc12+2*e1rc22*e2rc11*e3rc12+2*e1rc12*e2rc22*e3rc11+2*e1rc11*e2rc21*e3rc11+2*e1rc10*e2rc20*e3rc11+2*e1rc22*e2rc12*e3rc11+2*e1rc21*e2rc11*e3rc11+2*e1rc20*e2rc10*e3rc11-2*e1rc10*e2rc21*e3rc10+2*e1rc11*e2rc20*e3rc10+2*e1rc20*e2rc11*e3rc10-2*e1rc21*e2rc10*e3rc10+2*e1rc01*e2rc22*e3rc02-2*e1rc02*e2rc21*e3rc02-2*e1rc21*e2rc02*e3rc02+2*e1rc22*e2rc01*e3rc02+2*e1rc02*e2rc22*e3rc01+2*e1rc01*e2rc21*e3rc01+2*e1rc00*e2rc20*e3rc01+2*e1rc22*e2rc02*e3rc01+2*e1rc21*e2rc01*e3rc01+2*e1rc20*e2rc00*e3rc01-2*e1rc00*e2rc21*e3rc00+2*e1rc01*e2rc20*e3rc00+2*e1rc20*e2rc01*e3rc00-2*e1rc21*e2rc00*e3rc00;
00676     AMatrix(7, 15) = +2*e2rc21*e2rc22*e3rc22+2*e2rc11*e2rc12*e3rc22+2*e2rc01*e2rc02*e3rc22+e2rc22_2*e3rc21+3*e2rc21_2*e3rc21+e2rc20_2*e3rc21-e2rc12_2*e3rc21+e2rc11_2*e3rc21-e2rc10_2*e3rc21-e2rc02_2*e3rc21+e2rc01_2*e3rc21-e2rc00_2*e3rc21+2*e2rc20*e2rc21*e3rc20+2*e2rc10*e2rc11*e3rc20+2*e2rc00*e2rc01*e3rc20+2*e2rc11*e2rc22*e3rc12-2*e2rc12*e2rc21*e3rc12+2*e2rc12*e2rc22*e3rc11+2*e2rc11*e2rc21*e3rc11+2*e2rc10*e2rc20*e3rc11-2*e2rc10*e2rc21*e3rc10+2*e2rc11*e2rc20*e3rc10+2*e2rc01*e2rc22*e3rc02-2*e2rc02*e2rc21*e3rc02+2*e2rc02*e2rc22*e3rc01+2*e2rc01*e2rc21*e3rc01+2*e2rc00*e2rc20*e3rc01-2*e2rc00*e2rc21*e3rc00+2*e2rc01*e2rc20*e3rc00;
00677     AMatrix(7, 16) = +e0rc21*e3rc22_2+2*e0rc22*e3rc21*e3rc22+2*e0rc11*e3rc12*e3rc22+2*e0rc12*e3rc11*e3rc22+2*e0rc01*e3rc02*e3rc22+2*e0rc02*e3rc01*e3rc22+3*e0rc21*e3rc21_2+2*e0rc20*e3rc20*e3rc21-2*e0rc12*e3rc12*e3rc21+2*e0rc11*e3rc11*e3rc21-2*e0rc10*e3rc10*e3rc21-2*e0rc02*e3rc02*e3rc21+2*e0rc01*e3rc01*e3rc21-2*e0rc00*e3rc00*e3rc21+e0rc21*e3rc20_2+2*e0rc10*e3rc11*e3rc20+2*e0rc11*e3rc10*e3rc20+2*e0rc00*e3rc01*e3rc20+2*e0rc01*e3rc00*e3rc20-e0rc21*e3rc12_2+2*e0rc22*e3rc11*e3rc12+e0rc21*e3rc11_2+2*e0rc20*e3rc10*e3rc11-e0rc21*e3rc10_2-e0rc21*e3rc02_2+2*e0rc22*e3rc01*e3rc02+e0rc21*e3rc01_2+2*e0rc20*e3rc00*e3rc01-e0rc21*e3rc00_2;
00678     AMatrix(7, 17) = +e1rc21*e3rc22_2+2*e1rc22*e3rc21*e3rc22+2*e1rc11*e3rc12*e3rc22+2*e1rc12*e3rc11*e3rc22+2*e1rc01*e3rc02*e3rc22+2*e1rc02*e3rc01*e3rc22+3*e1rc21*e3rc21_2+2*e1rc20*e3rc20*e3rc21-2*e1rc12*e3rc12*e3rc21+2*e1rc11*e3rc11*e3rc21-2*e1rc10*e3rc10*e3rc21-2*e1rc02*e3rc02*e3rc21+2*e1rc01*e3rc01*e3rc21-2*e1rc00*e3rc00*e3rc21+e1rc21*e3rc20_2+2*e1rc10*e3rc11*e3rc20+2*e1rc11*e3rc10*e3rc20+2*e1rc00*e3rc01*e3rc20+2*e1rc01*e3rc00*e3rc20-e1rc21*e3rc12_2+2*e1rc22*e3rc11*e3rc12+e1rc21*e3rc11_2+2*e1rc20*e3rc10*e3rc11-e1rc21*e3rc10_2-e1rc21*e3rc02_2+2*e1rc22*e3rc01*e3rc02+e1rc21*e3rc01_2+2*e1rc20*e3rc00*e3rc01-e1rc21*e3rc00_2;
00679     AMatrix(7, 18) = +e2rc21*e3rc22_2+2*e2rc22*e3rc21*e3rc22+2*e2rc11*e3rc12*e3rc22+2*e2rc12*e3rc11*e3rc22+2*e2rc01*e3rc02*e3rc22+2*e2rc02*e3rc01*e3rc22+3*e2rc21*e3rc21_2+2*e2rc20*e3rc20*e3rc21-2*e2rc12*e3rc12*e3rc21+2*e2rc11*e3rc11*e3rc21-2*e2rc10*e3rc10*e3rc21-2*e2rc02*e3rc02*e3rc21+2*e2rc01*e3rc01*e3rc21-2*e2rc00*e3rc00*e3rc21+e2rc21*e3rc20_2+2*e2rc10*e3rc11*e3rc20+2*e2rc11*e3rc10*e3rc20+2*e2rc00*e3rc01*e3rc20+2*e2rc01*e3rc00*e3rc20-e2rc21*e3rc12_2+2*e2rc22*e3rc11*e3rc12+e2rc21*e3rc11_2+2*e2rc20*e3rc10*e3rc11-e2rc21*e3rc10_2-e2rc21*e3rc02_2+2*e2rc22*e3rc01*e3rc02+e2rc21*e3rc01_2+2*e2rc20*e3rc00*e3rc01-e2rc21*e3rc00_2;
00680     AMatrix(7, 19) = +e3rc21*e3rc22_2+2*e3rc11*e3rc12*e3rc22+2*e3rc01*e3rc02*e3rc22+e3rc21_3+e3rc20_2*e3rc21-e3rc12_2*e3rc21+e3rc11_2*e3rc21-e3rc10_2*e3rc21-e3rc02_2*e3rc21+e3rc01_2*e3rc21-e3rc00_2*e3rc21+2*e3rc10*e3rc11*e3rc20+2*e3rc00*e3rc01*e3rc20;
00681     AMatrix(8, 0) = +e0rc22_3+e0rc21_2*e0rc22+e0rc20_2*e0rc22+e0rc12_2*e0rc22-e0rc11_2*e0rc22-e0rc10_2*e0rc22+e0rc02_2*e0rc22-e0rc01_2*e0rc22-e0rc00_2*e0rc22+2*e0rc11*e0rc12*e0rc21+2*e0rc01*e0rc02*e0rc21+2*e0rc10*e0rc12*e0rc20+2*e0rc00*e0rc02*e0rc20;
00682     AMatrix(8, 1) = +3*e0rc22_2*e1rc22+e0rc21_2*e1rc22+e0rc20_2*e1rc22+e0rc12_2*e1rc22-e0rc11_2*e1rc22-e0rc10_2*e1rc22+e0rc02_2*e1rc22-e0rc01_2*e1rc22-e0rc00_2*e1rc22+2*e0rc21*e0rc22*e1rc21+2*e0rc11*e0rc12*e1rc21+2*e0rc01*e0rc02*e1rc21+2*e0rc20*e0rc22*e1rc20+2*e0rc10*e0rc12*e1rc20+2*e0rc00*e0rc02*e1rc20+2*e0rc12*e0rc22*e1rc12+2*e0rc11*e0rc21*e1rc12+2*e0rc10*e0rc20*e1rc12-2*e0rc11*e0rc22*e1rc11+2*e0rc12*e0rc21*e1rc11-2*e0rc10*e0rc22*e1rc10+2*e0rc12*e0rc20*e1rc10+2*e0rc02*e0rc22*e1rc02+2*e0rc01*e0rc21*e1rc02+2*e0rc00*e0rc20*e1rc02-2*e0rc01*e0rc22*e1rc01+2*e0rc02*e0rc21*e1rc01-2*e0rc00*e0rc22*e1rc00+2*e0rc02*e0rc20*e1rc00;
00683     AMatrix(8, 2) = +3*e0rc22_2*e2rc22+e0rc21_2*e2rc22+e0rc20_2*e2rc22+e0rc12_2*e2rc22-e0rc11_2*e2rc22-e0rc10_2*e2rc22+e0rc02_2*e2rc22-e0rc01_2*e2rc22-e0rc00_2*e2rc22+2*e0rc21*e0rc22*e2rc21+2*e0rc11*e0rc12*e2rc21+2*e0rc01*e0rc02*e2rc21+2*e0rc20*e0rc22*e2rc20+2*e0rc10*e0rc12*e2rc20+2*e0rc00*e0rc02*e2rc20+2*e0rc12*e0rc22*e2rc12+2*e0rc11*e0rc21*e2rc12+2*e0rc10*e0rc20*e2rc12-2*e0rc11*e0rc22*e2rc11+2*e0rc12*e0rc21*e2rc11-2*e0rc10*e0rc22*e2rc10+2*e0rc12*e0rc20*e2rc10+2*e0rc02*e0rc22*e2rc02+2*e0rc01*e0rc21*e2rc02+2*e0rc00*e0rc20*e2rc02-2*e0rc01*e0rc22*e2rc01+2*e0rc02*e0rc21*e2rc01-2*e0rc00*e0rc22*e2rc00+2*e0rc02*e0rc20*e2rc00;
00684     AMatrix(8, 3) = +3*e0rc22*e1rc22_2+2*e0rc21*e1rc21*e1rc22+2*e0rc20*e1rc20*e1rc22+2*e0rc12*e1rc12*e1rc22-2*e0rc11*e1rc11*e1rc22-2*e0rc10*e1rc10*e1rc22+2*e0rc02*e1rc02*e1rc22-2*e0rc01*e1rc01*e1rc22-2*e0rc00*e1rc00*e1rc22+e0rc22*e1rc21_2+2*e0rc11*e1rc12*e1rc21+2*e0rc12*e1rc11*e1rc21+2*e0rc01*e1rc02*e1rc21+2*e0rc02*e1rc01*e1rc21+e0rc22*e1rc20_2+2*e0rc10*e1rc12*e1rc20+2*e0rc12*e1rc10*e1rc20+2*e0rc00*e1rc02*e1rc20+2*e0rc02*e1rc00*e1rc20+e0rc22*e1rc12_2+2*e0rc21*e1rc11*e1rc12+2*e0rc20*e1rc10*e1rc12-e0rc22*e1rc11_2-e0rc22*e1rc10_2+e0rc22*e1rc02_2+2*e0rc21*e1rc01*e1rc02+2*e0rc20*e1rc00*e1rc02-e0rc22*e1rc01_2-e0rc22*e1rc00_2;
00685     AMatrix(8, 4) = +6*e0rc22*e1rc22*e2rc22+2*e0rc21*e1rc21*e2rc22+2*e0rc20*e1rc20*e2rc22+2*e0rc12*e1rc12*e2rc22-2*e0rc11*e1rc11*e2rc22-2*e0rc10*e1rc10*e2rc22+2*e0rc02*e1rc02*e2rc22-2*e0rc01*e1rc01*e2rc22-2*e0rc00*e1rc00*e2rc22+2*e0rc21*e1rc22*e2rc21+2*e0rc22*e1rc21*e2rc21+2*e0rc11*e1rc12*e2rc21+2*e0rc12*e1rc11*e2rc21+2*e0rc01*e1rc02*e2rc21+2*e0rc02*e1rc01*e2rc21+2*e0rc20*e1rc22*e2rc20+2*e0rc22*e1rc20*e2rc20+2*e0rc10*e1rc12*e2rc20+2*e0rc12*e1rc10*e2rc20+2*e0rc00*e1rc02*e2rc20+2*e0rc02*e1rc00*e2rc20+2*e0rc12*e1rc22*e2rc12+2*e0rc11*e1rc21*e2rc12+2*e0rc10*e1rc20*e2rc12+2*e0rc22*e1rc12*e2rc12+2*e0rc21*e1rc11*e2rc12+2*e0rc20*e1rc10*e2rc12-2*e0rc11*e1rc22*e2rc11+2*e0rc12*e1rc21*e2rc11+2*e0rc21*e1rc12*e2rc11-2*e0rc22*e1rc11*e2rc11-2*e0rc10*e1rc22*e2rc10+2*e0rc12*e1rc20*e2rc10+2*e0rc20*e1rc12*e2rc10-2*e0rc22*e1rc10*e2rc10+2*e0rc02*e1rc22*e2rc02+2*e0rc01*e1rc21*e2rc02+2*e0rc00*e1rc20*e2rc02+2*e0rc22*e1rc02*e2rc02+2*e0rc21*e1rc01*e2rc02+2*e0rc20*e1rc00*e2rc02-2*e0rc01*e1rc22*e2rc01+2*e0rc02*e1rc21*e2rc01+2*e0rc21*e1rc02*e2rc01-2*e0rc22*e1rc01*e2rc01-2*e0rc00*e1rc22*e2rc00+2*e0rc02*e1rc20*e2rc00+2*e0rc20*e1rc02*e2rc00-2*e0rc22*e1rc00*e2rc00;
00686     AMatrix(8, 5) = +3*e0rc22*e2rc22_2+2*e0rc21*e2rc21*e2rc22+2*e0rc20*e2rc20*e2rc22+2*e0rc12*e2rc12*e2rc22-2*e0rc11*e2rc11*e2rc22-2*e0rc10*e2rc10*e2rc22+2*e0rc02*e2rc02*e2rc22-2*e0rc01*e2rc01*e2rc22-2*e0rc00*e2rc00*e2rc22+e0rc22*e2rc21_2+2*e0rc11*e2rc12*e2rc21+2*e0rc12*e2rc11*e2rc21+2*e0rc01*e2rc02*e2rc21+2*e0rc02*e2rc01*e2rc21+e0rc22*e2rc20_2+2*e0rc10*e2rc12*e2rc20+2*e0rc12*e2rc10*e2rc20+2*e0rc00*e2rc02*e2rc20+2*e0rc02*e2rc00*e2rc20+e0rc22*e2rc12_2+2*e0rc21*e2rc11*e2rc12+2*e0rc20*e2rc10*e2rc12-e0rc22*e2rc11_2-e0rc22*e2rc10_2+e0rc22*e2rc02_2+2*e0rc21*e2rc01*e2rc02+2*e0rc20*e2rc00*e2rc02-e0rc22*e2rc01_2-e0rc22*e2rc00_2;
00687     AMatrix(8, 6) = +e1rc22_3+e1rc21_2*e1rc22+e1rc20_2*e1rc22+e1rc12_2*e1rc22-e1rc11_2*e1rc22-e1rc10_2*e1rc22+e1rc02_2*e1rc22-e1rc01_2*e1rc22-e1rc00_2*e1rc22+2*e1rc11*e1rc12*e1rc21+2*e1rc01*e1rc02*e1rc21+2*e1rc10*e1rc12*e1rc20+2*e1rc00*e1rc02*e1rc20;
00688     AMatrix(8, 7) = +3*e1rc22_2*e2rc22+e1rc21_2*e2rc22+e1rc20_2*e2rc22+e1rc12_2*e2rc22-e1rc11_2*e2rc22-e1rc10_2*e2rc22+e1rc02_2*e2rc22-e1rc01_2*e2rc22-e1rc00_2*e2rc22+2*e1rc21*e1rc22*e2rc21+2*e1rc11*e1rc12*e2rc21+2*e1rc01*e1rc02*e2rc21+2*e1rc20*e1rc22*e2rc20+2*e1rc10*e1rc12*e2rc20+2*e1rc00*e1rc02*e2rc20+2*e1rc12*e1rc22*e2rc12+2*e1rc11*e1rc21*e2rc12+2*e1rc10*e1rc20*e2rc12-2*e1rc11*e1rc22*e2rc11+2*e1rc12*e1rc21*e2rc11-2*e1rc10*e1rc22*e2rc10+2*e1rc12*e1rc20*e2rc10+2*e1rc02*e1rc22*e2rc02+2*e1rc01*e1rc21*e2rc02+2*e1rc00*e1rc20*e2rc02-2*e1rc01*e1rc22*e2rc01+2*e1rc02*e1rc21*e2rc01-2*e1rc00*e1rc22*e2rc00+2*e1rc02*e1rc20*e2rc00;
00689     AMatrix(8, 8) = +3*e1rc22*e2rc22_2+2*e1rc21*e2rc21*e2rc22+2*e1rc20*e2rc20*e2rc22+2*e1rc12*e2rc12*e2rc22-2*e1rc11*e2rc11*e2rc22-2*e1rc10*e2rc10*e2rc22+2*e1rc02*e2rc02*e2rc22-2*e1rc01*e2rc01*e2rc22-2*e1rc00*e2rc00*e2rc22+e1rc22*e2rc21_2+2*e1rc11*e2rc12*e2rc21+2*e1rc12*e2rc11*e2rc21+2*e1rc01*e2rc02*e2rc21+2*e1rc02*e2rc01*e2rc21+e1rc22*e2rc20_2+2*e1rc10*e2rc12*e2rc20+2*e1rc12*e2rc10*e2rc20+2*e1rc00*e2rc02*e2rc20+2*e1rc02*e2rc00*e2rc20+e1rc22*e2rc12_2+2*e1rc21*e2rc11*e2rc12+2*e1rc20*e2rc10*e2rc12-e1rc22*e2rc11_2-e1rc22*e2rc10_2+e1rc22*e2rc02_2+2*e1rc21*e2rc01*e2rc02+2*e1rc20*e2rc00*e2rc02-e1rc22*e2rc01_2-e1rc22*e2rc00_2;
00690     AMatrix(8, 9) = e2rc22_3+e2rc21_2*e2rc22+e2rc20_2*e2rc22+e2rc12_2*e2rc22-e2rc11_2*e2rc22-e2rc10_2*e2rc22+e2rc02_2*e2rc22-e2rc01_2*e2rc22-e2rc00_2*e2rc22+2*e2rc11*e2rc12*e2rc21+2*e2rc01*e2rc02*e2rc21+2*e2rc10*e2rc12*e2rc20+2*e2rc00*e2rc02*e2rc20;
00691     AMatrix(8, 10) = +3*e0rc22_2*e3rc22+e0rc21_2*e3rc22+e0rc20_2*e3rc22+e0rc12_2*e3rc22-e0rc11_2*e3rc22-e0rc10_2*e3rc22+e0rc02_2*e3rc22-e0rc01_2*e3rc22-e0rc00_2*e3rc22+2*e0rc21*e0rc22*e3rc21+2*e0rc11*e0rc12*e3rc21+2*e0rc01*e0rc02*e3rc21+2*e0rc20*e0rc22*e3rc20+2*e0rc10*e0rc12*e3rc20+2*e0rc00*e0rc02*e3rc20+2*e0rc12*e0rc22*e3rc12+2*e0rc11*e0rc21*e3rc12+2*e0rc10*e0rc20*e3rc12-2*e0rc11*e0rc22*e3rc11+2*e0rc12*e0rc21*e3rc11-2*e0rc10*e0rc22*e3rc10+2*e0rc12*e0rc20*e3rc10+2*e0rc02*e0rc22*e3rc02+2*e0rc01*e0rc21*e3rc02+2*e0rc00*e0rc20*e3rc02-2*e0rc01*e0rc22*e3rc01+2*e0rc02*e0rc21*e3rc01-2*e0rc00*e0rc22*e3rc00+2*e0rc02*e0rc20*e3rc00;
00692     AMatrix(8, 11) = +6*e0rc22*e1rc22*e3rc22+2*e0rc21*e1rc21*e3rc22+2*e0rc20*e1rc20*e3rc22+2*e0rc12*e1rc12*e3rc22-2*e0rc11*e1rc11*e3rc22-2*e0rc10*e1rc10*e3rc22+2*e0rc02*e1rc02*e3rc22-2*e0rc01*e1rc01*e3rc22-2*e0rc00*e1rc00*e3rc22+2*e0rc21*e1rc22*e3rc21+2*e0rc22*e1rc21*e3rc21+2*e0rc11*e1rc12*e3rc21+2*e0rc12*e1rc11*e3rc21+2*e0rc01*e1rc02*e3rc21+2*e0rc02*e1rc01*e3rc21+2*e0rc20*e1rc22*e3rc20+2*e0rc22*e1rc20*e3rc20+2*e0rc10*e1rc12*e3rc20+2*e0rc12*e1rc10*e3rc20+2*e0rc00*e1rc02*e3rc20+2*e0rc02*e1rc00*e3rc20+2*e0rc12*e1rc22*e3rc12+2*e0rc11*e1rc21*e3rc12+2*e0rc10*e1rc20*e3rc12+2*e0rc22*e1rc12*e3rc12+2*e0rc21*e1rc11*e3rc12+2*e0rc20*e1rc10*e3rc12-2*e0rc11*e1rc22*e3rc11+2*e0rc12*e1rc21*e3rc11+2*e0rc21*e1rc12*e3rc11-2*e0rc22*e1rc11*e3rc11-2*e0rc10*e1rc22*e3rc10+2*e0rc12*e1rc20*e3rc10+2*e0rc20*e1rc12*e3rc10-2*e0rc22*e1rc10*e3rc10+2*e0rc02*e1rc22*e3rc02+2*e0rc01*e1rc21*e3rc02+2*e0rc00*e1rc20*e3rc02+2*e0rc22*e1rc02*e3rc02+2*e0rc21*e1rc01*e3rc02+2*e0rc20*e1rc00*e3rc02-2*e0rc01*e1rc22*e3rc01+2*e0rc02*e1rc21*e3rc01+2*e0rc21*e1rc02*e3rc01-2*e0rc22*e1rc01*e3rc01-2*e0rc00*e1rc22*e3rc00+2*e0rc02*e1rc20*e3rc00+2*e0rc20*e1rc02*e3rc00-2*e0rc22*e1rc00*e3rc00;
00693     AMatrix(8, 12) = +6*e0rc22*e2rc22*e3rc22+2*e0rc21*e2rc21*e3rc22+2*e0rc20*e2rc20*e3rc22+2*e0rc12*e2rc12*e3rc22-2*e0rc11*e2rc11*e3rc22-2*e0rc10*e2rc10*e3rc22+2*e0rc02*e2rc02*e3rc22-2*e0rc01*e2rc01*e3rc22-2*e0rc00*e2rc00*e3rc22+2*e0rc21*e2rc22*e3rc21+2*e0rc22*e2rc21*e3rc21+2*e0rc11*e2rc12*e3rc21+2*e0rc12*e2rc11*e3rc21+2*e0rc01*e2rc02*e3rc21+2*e0rc02*e2rc01*e3rc21+2*e0rc20*e2rc22*e3rc20+2*e0rc22*e2rc20*e3rc20+2*e0rc10*e2rc12*e3rc20+2*e0rc12*e2rc10*e3rc20+2*e0rc00*e2rc02*e3rc20+2*e0rc02*e2rc00*e3rc20+2*e0rc12*e2rc22*e3rc12+2*e0rc11*e2rc21*e3rc12+2*e0rc10*e2rc20*e3rc12+2*e0rc22*e2rc12*e3rc12+2*e0rc21*e2rc11*e3rc12+2*e0rc20*e2rc10*e3rc12-2*e0rc11*e2rc22*e3rc11+2*e0rc12*e2rc21*e3rc11+2*e0rc21*e2rc12*e3rc11-2*e0rc22*e2rc11*e3rc11-2*e0rc10*e2rc22*e3rc10+2*e0rc12*e2rc20*e3rc10+2*e0rc20*e2rc12*e3rc10-2*e0rc22*e2rc10*e3rc10+2*e0rc02*e2rc22*e3rc02+2*e0rc01*e2rc21*e3rc02+2*e0rc00*e2rc20*e3rc02+2*e0rc22*e2rc02*e3rc02+2*e0rc21*e2rc01*e3rc02+2*e0rc20*e2rc00*e3rc02-2*e0rc01*e2rc22*e3rc01+2*e0rc02*e2rc21*e3rc01+2*e0rc21*e2rc02*e3rc01-2*e0rc22*e2rc01*e3rc01-2*e0rc00*e2rc22*e3rc00+2*e0rc02*e2rc20*e3rc00+2*e0rc20*e2rc02*e3rc00-2*e0rc22*e2rc00*e3rc00;
00694     AMatrix(8, 13) = +3*e1rc22_2*e3rc22+e1rc21_2*e3rc22+e1rc20_2*e3rc22+e1rc12_2*e3rc22-e1rc11_2*e3rc22-e1rc10_2*e3rc22+e1rc02_2*e3rc22-e1rc01_2*e3rc22-e1rc00_2*e3rc22+2*e1rc21*e1rc22*e3rc21+2*e1rc11*e1rc12*e3rc21+2*e1rc01*e1rc02*e3rc21+2*e1rc20*e1rc22*e3rc20+2*e1rc10*e1rc12*e3rc20+2*e1rc00*e1rc02*e3rc20+2*e1rc12*e1rc22*e3rc12+2*e1rc11*e1rc21*e3rc12+2*e1rc10*e1rc20*e3rc12-2*e1rc11*e1rc22*e3rc11+2*e1rc12*e1rc21*e3rc11-2*e1rc10*e1rc22*e3rc10+2*e1rc12*e1rc20*e3rc10+2*e1rc02*e1rc22*e3rc02+2*e1rc01*e1rc21*e3rc02+2*e1rc00*e1rc20*e3rc02-2*e1rc01*e1rc22*e3rc01+2*e1rc02*e1rc21*e3rc01-2*e1rc00*e1rc22*e3rc00+2*e1rc02*e1rc20*e3rc00;
00695     AMatrix(8, 14) = +6*e1rc22*e2rc22*e3rc22+2*e1rc21*e2rc21*e3rc22+2*e1rc20*e2rc20*e3rc22+2*e1rc12*e2rc12*e3rc22-2*e1rc11*e2rc11*e3rc22-2*e1rc10*e2rc10*e3rc22+2*e1rc02*e2rc02*e3rc22-2*e1rc01*e2rc01*e3rc22-2*e1rc00*e2rc00*e3rc22+2*e1rc21*e2rc22*e3rc21+2*e1rc22*e2rc21*e3rc21+2*e1rc11*e2rc12*e3rc21+2*e1rc12*e2rc11*e3rc21+2*e1rc01*e2rc02*e3rc21+2*e1rc02*e2rc01*e3rc21+2*e1rc20*e2rc22*e3rc20+2*e1rc22*e2rc20*e3rc20+2*e1rc10*e2rc12*e3rc20+2*e1rc12*e2rc10*e3rc20+2*e1rc00*e2rc02*e3rc20+2*e1rc02*e2rc00*e3rc20+2*e1rc12*e2rc22*e3rc12+2*e1rc11*e2rc21*e3rc12+2*e1rc10*e2rc20*e3rc12+2*e1rc22*e2rc12*e3rc12+2*e1rc21*e2rc11*e3rc12+2*e1rc20*e2rc10*e3rc12-2*e1rc11*e2rc22*e3rc11+2*e1rc12*e2rc21*e3rc11+2*e1rc21*e2rc12*e3rc11-2*e1rc22*e2rc11*e3rc11-2*e1rc10*e2rc22*e3rc10+2*e1rc12*e2rc20*e3rc10+2*e1rc20*e2rc12*e3rc10-2*e1rc22*e2rc10*e3rc10+2*e1rc02*e2rc22*e3rc02+2*e1rc01*e2rc21*e3rc02+2*e1rc00*e2rc20*e3rc02+2*e1rc22*e2rc02*e3rc02+2*e1rc21*e2rc01*e3rc02+2*e1rc20*e2rc00*e3rc02-2*e1rc01*e2rc22*e3rc01+2*e1rc02*e2rc21*e3rc01+2*e1rc21*e2rc02*e3rc01-2*e1rc22*e2rc01*e3rc01-2*e1rc00*e2rc22*e3rc00+2*e1rc02*e2rc20*e3rc00+2*e1rc20*e2rc02*e3rc00-2*e1rc22*e2rc00*e3rc00;
00696     AMatrix(8, 15) = +3*e2rc22_2*e3rc22+e2rc21_2*e3rc22+e2rc20_2*e3rc22+e2rc12_2*e3rc22-e2rc11_2*e3rc22-e2rc10_2*e3rc22+e2rc02_2*e3rc22-e2rc01_2*e3rc22-e2rc00_2*e3rc22+2*e2rc21*e2rc22*e3rc21+2*e2rc11*e2rc12*e3rc21+2*e2rc01*e2rc02*e3rc21+2*e2rc20*e2rc22*e3rc20+2*e2rc10*e2rc12*e3rc20+2*e2rc00*e2rc02*e3rc20+2*e2rc12*e2rc22*e3rc12+2*e2rc11*e2rc21*e3rc12+2*e2rc10*e2rc20*e3rc12-2*e2rc11*e2rc22*e3rc11+2*e2rc12*e2rc21*e3rc11-2*e2rc10*e2rc22*e3rc10+2*e2rc12*e2rc20*e3rc10+2*e2rc02*e2rc22*e3rc02+2*e2rc01*e2rc21*e3rc02+2*e2rc00*e2rc20*e3rc02-2*e2rc01*e2rc22*e3rc01+2*e2rc02*e2rc21*e3rc01-2*e2rc00*e2rc22*e3rc00+2*e2rc02*e2rc20*e3rc00;
00697     AMatrix(8, 16) = +3*e0rc22*e3rc22_2+2*e0rc21*e3rc21*e3rc22+2*e0rc20*e3rc20*e3rc22+2*e0rc12*e3rc12*e3rc22-2*e0rc11*e3rc11*e3rc22-2*e0rc10*e3rc10*e3rc22+2*e0rc02*e3rc02*e3rc22-2*e0rc01*e3rc01*e3rc22-2*e0rc00*e3rc00*e3rc22+e0rc22*e3rc21_2+2*e0rc11*e3rc12*e3rc21+2*e0rc12*e3rc11*e3rc21+2*e0rc01*e3rc02*e3rc21+2*e0rc02*e3rc01*e3rc21+e0rc22*e3rc20_2+2*e0rc10*e3rc12*e3rc20+2*e0rc12*e3rc10*e3rc20+2*e0rc00*e3rc02*e3rc20+2*e0rc02*e3rc00*e3rc20+e0rc22*e3rc12_2+2*e0rc21*e3rc11*e3rc12+2*e0rc20*e3rc10*e3rc12-e0rc22*e3rc11_2-e0rc22*e3rc10_2+e0rc22*e3rc02_2+2*e0rc21*e3rc01*e3rc02+2*e0rc20*e3rc00*e3rc02-e0rc22*e3rc01_2-e0rc22*e3rc00_2;
00698     AMatrix(8, 17) = +3*e1rc22*e3rc22_2+2*e1rc21*e3rc21*e3rc22+2*e1rc20*e3rc20*e3rc22+2*e1rc12*e3rc12*e3rc22-2*e1rc11*e3rc11*e3rc22-2*e1rc10*e3rc10*e3rc22+2*e1rc02*e3rc02*e3rc22-2*e1rc01*e3rc01*e3rc22-2*e1rc00*e3rc00*e3rc22+e1rc22*e3rc21_2+2*e1rc11*e3rc12*e3rc21+2*e1rc12*e3rc11*e3rc21+2*e1rc01*e3rc02*e3rc21+2*e1rc02*e3rc01*e3rc21+e1rc22*e3rc20_2+2*e1rc10*e3rc12*e3rc20+2*e1rc12*e3rc10*e3rc20+2*e1rc00*e3rc02*e3rc20+2*e1rc02*e3rc00*e3rc20+e1rc22*e3rc12_2+2*e1rc21*e3rc11*e3rc12+2*e1rc20*e3rc10*e3rc12-e1rc22*e3rc11_2-e1rc22*e3rc10_2+e1rc22*e3rc02_2+2*e1rc21*e3rc01*e3rc02+2*e1rc20*e3rc00*e3rc02-e1rc22*e3rc01_2-e1rc22*e3rc00_2;
00699     AMatrix(8, 18) = +3*e2rc22*e3rc22_2+2*e2rc21*e3rc21*e3rc22+2*e2rc20*e3rc20*e3rc22+2*e2rc12*e3rc12*e3rc22-2*e2rc11*e3rc11*e3rc22-2*e2rc10*e3rc10*e3rc22+2*e2rc02*e3rc02*e3rc22-2*e2rc01*e3rc01*e3rc22-2*e2rc00*e3rc00*e3rc22+e2rc22*e3rc21_2+2*e2rc11*e3rc12*e3rc21+2*e2rc12*e3rc11*e3rc21+2*e2rc01*e3rc02*e3rc21+2*e2rc02*e3rc01*e3rc21+e2rc22*e3rc20_2+2*e2rc10*e3rc12*e3rc20+2*e2rc12*e3rc10*e3rc20+2*e2rc00*e3rc02*e3rc20+2*e2rc02*e3rc00*e3rc20+e2rc22*e3rc12_2+2*e2rc21*e3rc11*e3rc12+2*e2rc20*e3rc10*e3rc12-e2rc22*e3rc11_2-e2rc22*e3rc10_2+e2rc22*e3rc02_2+2*e2rc21*e3rc01*e3rc02+2*e2rc20*e3rc00*e3rc02-e2rc22*e3rc01_2-e2rc22*e3rc00_2;
00700     AMatrix(8, 19) = +e3rc22_3+e3rc21_2*e3rc22+e3rc20_2*e3rc22+e3rc12_2*e3rc22-e3rc11_2*e3rc22-e3rc10_2*e3rc22+e3rc02_2*e3rc22-e3rc01_2*e3rc22-e3rc00_2*e3rc22+2*e3rc11*e3rc12*e3rc21+2*e3rc01*e3rc02*e3rc21+2*e3rc10*e3rc12*e3rc20+2*e3rc00*e3rc02*e3rc20;
00701     AMatrix(9, 0) = +e0rc00*e0rc11*e0rc22-e0rc01*e0rc10*e0rc22-e0rc00*e0rc12*e0rc21+e0rc02*e0rc10*e0rc21+e0rc01*e0rc12*e0rc20-e0rc02*e0rc11*e0rc20;
00702     AMatrix(9, 1) = +e0rc00*e0rc11*e1rc22-e0rc01*e0rc10*e1rc22-e0rc00*e0rc12*e1rc21+e0rc02*e0rc10*e1rc21+e0rc01*e0rc12*e1rc20-e0rc02*e0rc11*e1rc20-e0rc00*e0rc21*e1rc12+e0rc01*e0rc20*e1rc12+e0rc00*e0rc22*e1rc11-e0rc02*e0rc20*e1rc11-e0rc01*e0rc22*e1rc10+e0rc02*e0rc21*e1rc10+e0rc10*e0rc21*e1rc02-e0rc11*e0rc20*e1rc02-e0rc10*e0rc22*e1rc01+e0rc12*e0rc20*e1rc01+e0rc11*e0rc22*e1rc00-e0rc12*e0rc21*e1rc00;
00703     AMatrix(9, 2) = +e0rc00*e0rc11*e2rc22-e0rc01*e0rc10*e2rc22-e0rc00*e0rc12*e2rc21+e0rc02*e0rc10*e2rc21+e0rc01*e0rc12*e2rc20-e0rc02*e0rc11*e2rc20-e0rc00*e0rc21*e2rc12+e0rc01*e0rc20*e2rc12+e0rc00*e0rc22*e2rc11-e0rc02*e0rc20*e2rc11-e0rc01*e0rc22*e2rc10+e0rc02*e0rc21*e2rc10+e0rc10*e0rc21*e2rc02-e0rc11*e0rc20*e2rc02-e0rc10*e0rc22*e2rc01+e0rc12*e0rc20*e2rc01+e0rc11*e0rc22*e2rc00-e0rc12*e0rc21*e2rc00;
00704     AMatrix(9, 3) = +e0rc00*e1rc11*e1rc22-e0rc01*e1rc10*e1rc22-e0rc10*e1rc01*e1rc22+e0rc11*e1rc00*e1rc22-e0rc00*e1rc12*e1rc21+e0rc02*e1rc10*e1rc21+e0rc10*e1rc02*e1rc21-e0rc12*e1rc00*e1rc21+e0rc01*e1rc12*e1rc20-e0rc02*e1rc11*e1rc20-e0rc11*e1rc02*e1rc20+e0rc12*e1rc01*e1rc20+e0rc20*e1rc01*e1rc12-e0rc21*e1rc00*e1rc12-e0rc20*e1rc02*e1rc11+e0rc22*e1rc00*e1rc11+e0rc21*e1rc02*e1rc10-e0rc22*e1rc01*e1rc10;
00705     AMatrix(9, 4) = +e0rc00*e1rc11*e2rc22-e0rc01*e1rc10*e2rc22-e0rc10*e1rc01*e2rc22+e0rc11*e1rc00*e2rc22-e0rc00*e1rc12*e2rc21+e0rc02*e1rc10*e2rc21+e0rc10*e1rc02*e2rc21-e0rc12*e1rc00*e2rc21+e0rc01*e1rc12*e2rc20-e0rc02*e1rc11*e2rc20-e0rc11*e1rc02*e2rc20+e0rc12*e1rc01*e2rc20-e0rc00*e1rc21*e2rc12+e0rc01*e1rc20*e2rc12+e0rc20*e1rc01*e2rc12-e0rc21*e1rc00*e2rc12+e0rc00*e1rc22*e2rc11-e0rc02*e1rc20*e2rc11-e0rc20*e1rc02*e2rc11+e0rc22*e1rc00*e2rc11-e0rc01*e1rc22*e2rc10+e0rc02*e1rc21*e2rc10+e0rc21*e1rc02*e2rc10-e0rc22*e1rc01*e2rc10+e0rc10*e1rc21*e2rc02-e0rc11*e1rc20*e2rc02-e0rc20*e1rc11*e2rc02+e0rc21*e1rc10*e2rc02-e0rc10*e1rc22*e2rc01+e0rc12*e1rc20*e2rc01+e0rc20*e1rc12*e2rc01-e0rc22*e1rc10*e2rc01+e0rc11*e1rc22*e2rc00-e0rc12*e1rc21*e2rc00-e0rc21*e1rc12*e2rc00+e0rc22*e1rc11*e2rc00;
00706     AMatrix(9, 5) = +e0rc00*e2rc11*e2rc22-e0rc01*e2rc10*e2rc22-e0rc10*e2rc01*e2rc22+e0rc11*e2rc00*e2rc22-e0rc00*e2rc12*e2rc21+e0rc02*e2rc10*e2rc21+e0rc10*e2rc02*e2rc21-e0rc12*e2rc00*e2rc21+e0rc01*e2rc12*e2rc20-e0rc02*e2rc11*e2rc20-e0rc11*e2rc02*e2rc20+e0rc12*e2rc01*e2rc20+e0rc20*e2rc01*e2rc12-e0rc21*e2rc00*e2rc12-e0rc20*e2rc02*e2rc11+e0rc22*e2rc00*e2rc11+e0rc21*e2rc02*e2rc10-e0rc22*e2rc01*e2rc10;
00707     AMatrix(9, 6) = +e1rc00*e1rc11*e1rc22-e1rc01*e1rc10*e1rc22-e1rc00*e1rc12*e1rc21+e1rc02*e1rc10*e1rc21+e1rc01*e1rc12*e1rc20-e1rc02*e1rc11*e1rc20;
00708     AMatrix(9, 7) = +e1rc00*e1rc11*e2rc22-e1rc01*e1rc10*e2rc22-e1rc00*e1rc12*e2rc21+e1rc02*e1rc10*e2rc21+e1rc01*e1rc12*e2rc20-e1rc02*e1rc11*e2rc20-e1rc00*e1rc21*e2rc12+e1rc01*e1rc20*e2rc12+e1rc00*e1rc22*e2rc11-e1rc02*e1rc20*e2rc11-e1rc01*e1rc22*e2rc10+e1rc02*e1rc21*e2rc10+e1rc10*e1rc21*e2rc02-e1rc11*e1rc20*e2rc02-e1rc10*e1rc22*e2rc01+e1rc12*e1rc20*e2rc01+e1rc11*e1rc22*e2rc00-e1rc12*e1rc21*e2rc00;
00709     AMatrix(9, 8) = +e1rc00*e2rc11*e2rc22-e1rc01*e2rc10*e2rc22-e1rc10*e2rc01*e2rc22+e1rc11*e2rc00*e2rc22-e1rc00*e2rc12*e2rc21+e1rc02*e2rc10*e2rc21+e1rc10*e2rc02*e2rc21-e1rc12*e2rc00*e2rc21+e1rc01*e2rc12*e2rc20-e1rc02*e2rc11*e2rc20-e1rc11*e2rc02*e2rc20+e1rc12*e2rc01*e2rc20+e1rc20*e2rc01*e2rc12-e1rc21*e2rc00*e2rc12-e1rc20*e2rc02*e2rc11+e1rc22*e2rc00*e2rc11+e1rc21*e2rc02*e2rc10-e1rc22*e2rc01*e2rc10;
00710     AMatrix(9, 9) = e2rc00*e2rc11*e2rc22-e2rc01*e2rc10*e2rc22-e2rc00*e2rc12*e2rc21+e2rc02*e2rc10*e2rc21+e2rc01*e2rc12*e2rc20-e2rc02*e2rc11*e2rc20;
00711     AMatrix(9, 10) = +e0rc00*e0rc11*e3rc22-e0rc01*e0rc10*e3rc22-e0rc00*e0rc12*e3rc21+e0rc02*e0rc10*e3rc21+e0rc01*e0rc12*e3rc20-e0rc02*e0rc11*e3rc20-e0rc00*e0rc21*e3rc12+e0rc01*e0rc20*e3rc12+e0rc00*e0rc22*e3rc11-e0rc02*e0rc20*e3rc11-e0rc01*e0rc22*e3rc10+e0rc02*e0rc21*e3rc10+e0rc10*e0rc21*e3rc02-e0rc11*e0rc20*e3rc02-e0rc10*e0rc22*e3rc01+e0rc12*e0rc20*e3rc01+e0rc11*e0rc22*e3rc00-e0rc12*e0rc21*e3rc00;
00712     AMatrix(9, 11) = +e0rc00*e1rc11*e3rc22-e0rc01*e1rc10*e3rc22-e0rc10*e1rc01*e3rc22+e0rc11*e1rc00*e3rc22-e0rc00*e1rc12*e3rc21+e0rc02*e1rc10*e3rc21+e0rc10*e1rc02*e3rc21-e0rc12*e1rc00*e3rc21+e0rc01*e1rc12*e3rc20-e0rc02*e1rc11*e3rc20-e0rc11*e1rc02*e3rc20+e0rc12*e1rc01*e3rc20-e0rc00*e1rc21*e3rc12+e0rc01*e1rc20*e3rc12+e0rc20*e1rc01*e3rc12-e0rc21*e1rc00*e3rc12+e0rc00*e1rc22*e3rc11-e0rc02*e1rc20*e3rc11-e0rc20*e1rc02*e3rc11+e0rc22*e1rc00*e3rc11-e0rc01*e1rc22*e3rc10+e0rc02*e1rc21*e3rc10+e0rc21*e1rc02*e3rc10-e0rc22*e1rc01*e3rc10+e0rc10*e1rc21*e3rc02-e0rc11*e1rc20*e3rc02-e0rc20*e1rc11*e3rc02+e0rc21*e1rc10*e3rc02-e0rc10*e1rc22*e3rc01+e0rc12*e1rc20*e3rc01+e0rc20*e1rc12*e3rc01-e0rc22*e1rc10*e3rc01+e0rc11*e1rc22*e3rc00-e0rc12*e1rc21*e3rc00-e0rc21*e1rc12*e3rc00+e0rc22*e1rc11*e3rc00;
00713     AMatrix(9, 12) = +e0rc00*e2rc11*e3rc22-e0rc01*e2rc10*e3rc22-e0rc10*e2rc01*e3rc22+e0rc11*e2rc00*e3rc22-e0rc00*e2rc12*e3rc21+e0rc02*e2rc10*e3rc21+e0rc10*e2rc02*e3rc21-e0rc12*e2rc00*e3rc21+e0rc01*e2rc12*e3rc20-e0rc02*e2rc11*e3rc20-e0rc11*e2rc02*e3rc20+e0rc12*e2rc01*e3rc20-e0rc00*e2rc21*e3rc12+e0rc01*e2rc20*e3rc12+e0rc20*e2rc01*e3rc12-e0rc21*e2rc00*e3rc12+e0rc00*e2rc22*e3rc11-e0rc02*e2rc20*e3rc11-e0rc20*e2rc02*e3rc11+e0rc22*e2rc00*e3rc11-e0rc01*e2rc22*e3rc10+e0rc02*e2rc21*e3rc10+e0rc21*e2rc02*e3rc10-e0rc22*e2rc01*e3rc10+e0rc10*e2rc21*e3rc02-e0rc11*e2rc20*e3rc02-e0rc20*e2rc11*e3rc02+e0rc21*e2rc10*e3rc02-e0rc10*e2rc22*e3rc01+e0rc12*e2rc20*e3rc01+e0rc20*e2rc12*e3rc01-e0rc22*e2rc10*e3rc01+e0rc11*e2rc22*e3rc00-e0rc12*e2rc21*e3rc00-e0rc21*e2rc12*e3rc00+e0rc22*e2rc11*e3rc00;
00714     AMatrix(9, 13) = +e1rc00*e1rc11*e3rc22-e1rc01*e1rc10*e3rc22-e1rc00*e1rc12*e3rc21+e1rc02*e1rc10*e3rc21+e1rc01*e1rc12*e3rc20-e1rc02*e1rc11*e3rc20-e1rc00*e1rc21*e3rc12+e1rc01*e1rc20*e3rc12+e1rc00*e1rc22*e3rc11-e1rc02*e1rc20*e3rc11-e1rc01*e1rc22*e3rc10+e1rc02*e1rc21*e3rc10+e1rc10*e1rc21*e3rc02-e1rc11*e1rc20*e3rc02-e1rc10*e1rc22*e3rc01+e1rc12*e1rc20*e3rc01+e1rc11*e1rc22*e3rc00-e1rc12*e1rc21*e3rc00;
00715     AMatrix(9, 14) = +e1rc00*e2rc11*e3rc22-e1rc01*e2rc10*e3rc22-e1rc10*e2rc01*e3rc22+e1rc11*e2rc00*e3rc22-e1rc00*e2rc12*e3rc21+e1rc02*e2rc10*e3rc21+e1rc10*e2rc02*e3rc21-e1rc12*e2rc00*e3rc21+e1rc01*e2rc12*e3rc20-e1rc02*e2rc11*e3rc20-e1rc11*e2rc02*e3rc20+e1rc12*e2rc01*e3rc20-e1rc00*e2rc21*e3rc12+e1rc01*e2rc20*e3rc12+e1rc20*e2rc01*e3rc12-e1rc21*e2rc00*e3rc12+e1rc00*e2rc22*e3rc11-e1rc02*e2rc20*e3rc11-e1rc20*e2rc02*e3rc11+e1rc22*e2rc00*e3rc11-e1rc01*e2rc22*e3rc10+e1rc02*e2rc21*e3rc10+e1rc21*e2rc02*e3rc10-e1rc22*e2rc01*e3rc10+e1rc10*e2rc21*e3rc02-e1rc11*e2rc20*e3rc02-e1rc20*e2rc11*e3rc02+e1rc21*e2rc10*e3rc02-e1rc10*e2rc22*e3rc01+e1rc12*e2rc20*e3rc01+e1rc20*e2rc12*e3rc01-e1rc22*e2rc10*e3rc01+e1rc11*e2rc22*e3rc00-e1rc12*e2rc21*e3rc00-e1rc21*e2rc12*e3rc00+e1rc22*e2rc11*e3rc00;
00716     AMatrix(9, 15) = +e2rc00*e2rc11*e3rc22-e2rc01*e2rc10*e3rc22-e2rc00*e2rc12*e3rc21+e2rc02*e2rc10*e3rc21+e2rc01*e2rc12*e3rc20-e2rc02*e2rc11*e3rc20-e2rc00*e2rc21*e3rc12+e2rc01*e2rc20*e3rc12+e2rc00*e2rc22*e3rc11-e2rc02*e2rc20*e3rc11-e2rc01*e2rc22*e3rc10+e2rc02*e2rc21*e3rc10+e2rc10*e2rc21*e3rc02-e2rc11*e2rc20*e3rc02-e2rc10*e2rc22*e3rc01+e2rc12*e2rc20*e3rc01+e2rc11*e2rc22*e3rc00-e2rc12*e2rc21*e3rc00;
00717     AMatrix(9, 16) = +e0rc00*e3rc11*e3rc22-e0rc01*e3rc10*e3rc22-e0rc10*e3rc01*e3rc22+e0rc11*e3rc00*e3rc22-e0rc00*e3rc12*e3rc21+e0rc02*e3rc10*e3rc21+e0rc10*e3rc02*e3rc21-e0rc12*e3rc00*e3rc21+e0rc01*e3rc12*e3rc20-e0rc02*e3rc11*e3rc20-e0rc11*e3rc02*e3rc20+e0rc12*e3rc01*e3rc20+e0rc20*e3rc01*e3rc12-e0rc21*e3rc00*e3rc12-e0rc20*e3rc02*e3rc11+e0rc22*e3rc00*e3rc11+e0rc21*e3rc02*e3rc10-e0rc22*e3rc01*e3rc10;
00718     AMatrix(9, 17) = +e1rc00*e3rc11*e3rc22-e1rc01*e3rc10*e3rc22-e1rc10*e3rc01*e3rc22+e1rc11*e3rc00*e3rc22-e1rc00*e3rc12*e3rc21+e1rc02*e3rc10*e3rc21+e1rc10*e3rc02*e3rc21-e1rc12*e3rc00*e3rc21+e1rc01*e3rc12*e3rc20-e1rc02*e3rc11*e3rc20-e1rc11*e3rc02*e3rc20+e1rc12*e3rc01*e3rc20+e1rc20*e3rc01*e3rc12-e1rc21*e3rc00*e3rc12-e1rc20*e3rc02*e3rc11+e1rc22*e3rc00*e3rc11+e1rc21*e3rc02*e3rc10-e1rc22*e3rc01*e3rc10;
00719     AMatrix(9, 18) = +e2rc00*e3rc11*e3rc22-e2rc01*e3rc10*e3rc22-e2rc10*e3rc01*e3rc22+e2rc11*e3rc00*e3rc22-e2rc00*e3rc12*e3rc21+e2rc02*e3rc10*e3rc21+e2rc10*e3rc02*e3rc21-e2rc12*e3rc00*e3rc21+e2rc01*e3rc12*e3rc20-e2rc02*e3rc11*e3rc20-e2rc11*e3rc02*e3rc20+e2rc12*e3rc01*e3rc20+e2rc20*e3rc01*e3rc12-e2rc21*e3rc00*e3rc12-e2rc20*e3rc02*e3rc11+e2rc22*e3rc00*e3rc11+e2rc21*e3rc02*e3rc10-e2rc22*e3rc01*e3rc10;
00720     AMatrix(9, 19) = +e3rc00*e3rc11*e3rc22-e3rc01*e3rc10*e3rc22-e3rc00*e3rc12*e3rc21+e3rc02*e3rc10*e3rc21+e3rc01*e3rc12*e3rc20-e3rc02*e3rc11*e3rc20;
00721 
00722       
00723       // ============= End cut & paste section =============
00724 
00725       // Warning(xxx): The action matrix in Stewenius & Nister's paper
00726       // doesn't appear to correspond to degree-then-lexicographic
00727       // order of monomials.  The right solution to this is to
00728       // generate the correct action matrix in fivePointAlgorithm.h,
00729       // but instead we temporarily shuffle the columns of our
00730       // constraint matrix to match the action matrix.
00731       num::Array2D<double> A2Matrix(AMatrix.rows(), AMatrix.columns());
00732       num::Array1D<int> shuffle(
00733         "[0, 1, 3, 6, 2, 4, 7, 5, 8, 9, 10, 11, 13, 12, 14, 15, 16, 17, 18, 19]"
00734         );
00735       for(size_t rowIndex = 0; rowIndex < AMatrix.rows(); ++rowIndex) {
00736         for(size_t columnIndex = 0; columnIndex < AMatrix.columns();
00737             ++columnIndex) {
00738           A2Matrix(rowIndex, columnIndex) =
00739             AMatrix(rowIndex, shuffle[columnIndex]);
00740         }
00741       }
00742       return A2Matrix;
00743     }
00744 
00745   } // namespace computerVision
00746     
00747 } // namespace dlr

Generated on Wed Nov 25 12:15:05 2009 for dlrComputerVision Utility Library by  doxygen 1.5.8