Skip to content

Latest commit

 

History

History
761 lines (714 loc) · 72.1 KB

README.md

File metadata and controls

761 lines (714 loc) · 72.1 KB

A Generalization to Newton's Method: The DJN ("Djane" aka, DaveJakeNic) Methods

Newton's method uses function and Jacobi evaluations to find a root of a function at a quadratic rate of convergence. Householder's methods, Halley's method, and related methods would converge at a faster rate but require higher derivatives, rendering them impractical.

We propose a novel class of methods that use only function and Jacobi information but converge at higher rates than Newton. We provide one particular candidate of our method class that converges of fourth order.

Review of Newton's Method

Until now, Newton's method is the go-to approach for numerically solving systems of nonlinear equations in practice. Given are an initial guess x0 in R^n and a function F : R^n --> R^n with locally well-defined square regular Jacobi matrix J(x).

Iteration

Given x0, one iteration of Newton's method computes an improved guess x in attempt to solve F(x)=0.

One iteration proceeds as follows:

  1. Evaluate A:=J(x0)
  2. linsolver.compute(A)
  3. Set x=x0
  4. Evaluate b:=F(x)
  5. x=x-linsolver.solve(b) // after the update, x satisfies that ||F(x)|| is in O( ||F(x0)||^2 )

We explain these steps: The first step evaluates the function J at x0 and writes the result in an unspecified format into the storage A. In the second step, a linear system solver compatible with the format of A prepares the solution of linear systems with system matrix A. The third step is for pleasing notation of follow-up analysis only. The fourth step evaluates F at x and writes the result in an unspecified format into the storage of b. The final step decrements x by the solution of the linear system with system matrix A and right-hand side vector b.

An iterative loop would eventually set x0:=x and then repeat the steps all over again until x is sufficiently accurate.

Computational Cost per Iteration

In practical applications, the computational cost of one iteration is typically dominated to >=90% by steps 1 and 2, particularly when n is not tiny.

Convergence per Iteration

Newton's method is known to converge quadratically. If J is local Lipschitz-continuous then F(x) converges locally quadratic. That is, in Landau-notation according to Knuth: ||F(x)|| is in O( ||F(x0)||^2 )

When J is regular in a local neighborhood of the exact root of F then F(x)~x are bijective and hence the order result implies convergence of the error at the same rate.

The Class of DJN Methods

We developed a little symbolic computation code for some other application. We then wondered whether we could not use that code to also find a superior iteration over Newton's method. In particular, we sought for iteration schemes of the following form:

-A * v_k = J(x0+sum_{j=1}^{k-1} alpha_kj v_j) * (sum_{j=1}^{k-1} beta_kj v_j) + F(x0+sum_{j=1}^{k-1} gamma_kj v_j) for k=1,...,m x = x0 + sum_k delta_k v_k

This forms the class of DJN methods. Therein, m is an integer number, v_k are vectors that solve linear systems, x0 is the guess, and x is the improved guess after one iteration. The coefficients alpha, beta, gamma, delta define a particular candidate (aka method) of the method class. Newton is the trivial case m=1, delta_1=1. Certainly desirable are methods that use beta=0, thus the Jacobian needs only be evaluated once --which can be expensive in comparison to linsolver.compute(A) in some applications and is thus attractive to avoid.

A DJN method performs step 2 (and step 1 if beta=0) only once per iteration but replaces the steps 3 to 5 with some other computations of similarly negligible cost. We sought for a DJN method candidate that uses m=3 intermediate steps, uses beta=0, and converges of fourth order. We succeeded. We now show what we did.

Derivation of Candidates

For k=1,...,m you successively develop symbolic Taylor series of F(x0+sum_{j=1}^{k-1} gamma_kj v_j) around x0, and thus obtain an expression of Taylor series for each v_k. You thus obtain a symbolic expression for x0 + sum_k delta_k v_k. Finally, you develop the symbolic Taylor series of F(x0 + sum_k delta_k v_k) around x0 into which you insert that symbolic expression which you had just obtained for sum_k delta_k v_k.

In the resulting formula, you compare terms and try to eliminate as many low-order terms of the Taylor series as possible. The lowest order-term that remains is the order of the resulting method.

Example: For the scheme with m=1 you have -A * v_1 = F(x0) --> v1 = -inv(A) * F0 --> x = x0 - delta * inv(A) * F0 F(x) = F0 - A * delta_1 * inv(A) * F0 + O( ||delta_1 * inv(A) * F0||^2 ) = (1-delta_1) *F0 + O(||F0||^2).

This explains why Newton's method (aka, m=1, delta_1=1) converges locally quadratic. In the same way, you can develop Taylor series of higher orders for F(x0+sum gamma_kj v_j) and for F(x0+sum delta_k v_k).

Result

The symbolic computation of the priorly described instructions (Taylor series of Taylor series) reveals the expressions given in Appendix A.

The expressions until before the fourh-order condition are set to zero when gamma_21=1, gamma_31=0, gamma_32=1, and delta_1=delta_2=delta_3=1. Hence, that ||F(x)|| is in O( ||F(x0)||^4 ) results from choosing the coefficients of gamma and delta like so. The analysis uses the fourth-order Taylor series of F. Thus, the result only holds when the third derivative of F is Lipschitz-continuous.

For the readers' convenience, the method with these coefficients inserted is now written out.

Proposed Iteration

  1. Evaluate A:=J(x0)
  2. linsolver.compute(A)
  3. Set x=x0
  4. Evaluate b:=F(x)
  5. x=x-linsolver.solve(b) // after the update, x satisfies that ||F(x)|| is in O( ||F(x0)||^2 )
  6. Evaluate b:=F(x)
  7. x=x-linsolver.solve(b) // after the update, x satisfies that ||F(x)|| is in O( ||F(x0)||^3 )
  8. Evaluate b:=F(x)
  9. x=x-linsolver.solve(b) // after the update, x satisfies that ||F(x)|| is in O( ||F(x0)||^4 )

This is one iteration of our proposed DJN method candidate. By mere coincidence, one iteration of our proposed method coincides with exactly three iterations of Chord's method.

Conclusion

We have presented a class of methods that is roughly of the same cost as Newton's method per iteration. However, methods of our class can converge of much higher rate than Newton's method.

Practical Implications

There was a time when people would solve differential equations numerically via Euler's method. These times are over since the advent of Runge-Kutta methods. Likewise, the time where people would solve nonlinear equation systems via Newton's method might be over now. And at the time of this publication there are a few hundreds of million devices out there that run Newton iterations every second.

Outlook

For a JDN method that yields fifth order, there result 16 equations that must be solved by the chosen coefficients. We have been unable to solve these equations because they are 1.7e+5 lines of code and we fail at finding a compiler that compiles the file. We hence cannot even evaluate the residuals in order to check whether a trivial extension of the above method would be of fifth order. A trivial extension is a method with beta=0, delta=1, and gamma a lower-left-shifted identity matrix.

Proof of Ownership

The following hash is the SHA256 digest of a text that states the discoverer's identity. aedea59b60118791775472f12293e1a70a7dcb9c39031a5a2e084bdc4c56e85f If you want to use any work from this page then cite this URL.

Remark

We actually developed the code to develop numerical schemes for linearly implicit ODEs of the form -M(y,t) * y'(t) = f(y,t) with M regular in a local neighborhood of the unique solution y(t).

The below single-step method is of third order, with the attractive feature of only requiring one matrix factorization per single-step:

  1. linsolver.compute( func_M(y0,t0) );
  2. v1 = -linsolver.solve( func_f(y0 ,t0 ) );
  3. v2 = -linsolver.solve( func_M(y0+h2/3v1 ,t0+h2/3) * v1 + func_f(y0+h2/3v1,t0+h2/3) );
  4. v3 = -linsolver.solve( func_M(y0+h2 v1+hv2,t0+h4/3) * 2 * v2 + func_f(y0+h4/3v2,t0 ) );
  5. t = t0 + h;
  6. y = y0 + h/16 * (13v1+18v2+3*v3);

Appendix A: Order equations up to third Taylor term

The residuals y_ab are for the b-th condition of the a-th order. For instance, the first and second order have one conditional equation; whereas the third order has three conditional equations. The reader can verify that the above choice for gamma and delta yields all residuals to zero. While we publish the residuals, we do not publish our code because there is no reason or need. Readers may choose to reproduce and confirm all our results independently from the descriptions.

y11 = ...
  +  ( 1 )                                                          										...
  -  ( delta_1 )                                                    										...
  -  ( delta_2 )                                                    										...
  +  ( delta_2 .* gamma21 )                                         										...
  -  ( delta_3 )                                                    										...
  +  ( delta_3 .* gamma31 )                                         										...
  +  ( delta_3 .* gamma32 )                                         										...
  -  ( delta_3 .* gamma32 .* gamma21 )                              										;

y21 = ...
  +  ( delta_1 .* delta_1 )                                                 								...
  +  ( delta_1 .* delta_2 )                                                 								...
  -  ( delta_1 .* delta_2 .* gamma21 )                                      								...
  +  ( delta_1 .* delta_3 )                                                 								...
  -  ( delta_1 .* delta_3 .* gamma31 )                                      								...
  -  ( delta_1 .* delta_3 .* gamma32 )                                      								...
  +  ( delta_1 .* delta_3 .* gamma32 .* gamma21 )                           								...
  +  ( delta_2 .* delta_1 )                                                 								...
  +  ( delta_2 .* delta_2 )                                                 								...
  -  ( delta_2 .* delta_2 .* gamma21 )                                      								...
  +  ( delta_2 .* delta_3 )                                                 								...
  -  ( delta_2 .* delta_3 .* gamma31 )                                      								...
  -  ( delta_2 .* delta_3 .* gamma32 )                                      								...
  +  ( delta_2 .* delta_3 .* gamma32 .* gamma21 )                           								...
  -  ( delta_2 .* gamma21 .* delta_1 )                                      								...
  -  ( delta_2 .* gamma21 .* delta_2 )                                      								...
  +  ( delta_2 .* gamma21 .* delta_2 .* gamma21 )                           								...
  -  ( delta_2 .* gamma21 .* delta_3 )                                      								...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma31 )                           								...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma32 )                           								...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )                								...
  -  ( delta_2 .* gamma21 .* gamma21 )                                      								...
  +  ( delta_3 .* delta_1 )                                                 								...
  +  ( delta_3 .* delta_2 )                                                 								...
  -  ( delta_3 .* delta_2 .* gamma21 )                                      								...
  +  ( delta_3 .* delta_3 )                                                 								...
  -  ( delta_3 .* delta_3 .* gamma31 )                                      								...
  -  ( delta_3 .* delta_3 .* gamma32 )                                      								...
  +  ( delta_3 .* delta_3 .* gamma32 .* gamma21 )                           								...
  -  ( delta_3 .* gamma31 .* delta_1 )                                      								...
  -  ( delta_3 .* gamma31 .* delta_2 )                                      								...
  +  ( delta_3 .* gamma31 .* delta_2 .* gamma21 )                           								...
  -  ( delta_3 .* gamma31 .* delta_3 )                                      								...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma31 )                           								...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma32 )                           								...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 )                								...
  -  ( delta_3 .* gamma31 .* gamma31 )                                      								...
  -  ( delta_3 .* gamma31 .* gamma32 )                                      								...
  +  ( delta_3 .* gamma31 .* gamma32 .* gamma21 )                           								...
  -  ( delta_3 .* gamma32 .* delta_1 )                                      								...
  -  ( delta_3 .* gamma32 .* delta_2 )                                      								...
  +  ( delta_3 .* gamma32 .* delta_2 .* gamma21 )                           								...
  -  ( delta_3 .* gamma32 .* delta_3 )                                      								...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma31 )                           								...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma32 )                           								...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 )                								...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_1 )                           								...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_2 )                           								...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 )                								...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 )                           								...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 )                								...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 )                								...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )     								...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma21 )                           								...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma31 )                           								...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma32 )                           								...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 )                								...
  -  ( delta_3 .* gamma32 .* gamma31 )                                      								...
  -  ( delta_3 .* gamma32 .* gamma32 )                                      								...
  +  ( delta_3 .* gamma32 .* gamma32 .* gamma21 )                           								;

y31 = ...
  +  ( delta_1 .* delta_2 .* gamma21 .* gamma21 )                                            				...
  +  ( delta_1 .* delta_3 .* gamma31 .* gamma31 )                                            				...
  +  ( delta_1 .* delta_3 .* gamma31 .* gamma32 )                                            				...
  -  ( delta_1 .* delta_3 .* gamma31 .* gamma32 .* gamma21 )                                 				...
  -  ( delta_1 .* delta_3 .* gamma32 .* gamma21 .* gamma21 )                                 				...
  -  ( delta_1 .* delta_3 .* gamma32 .* gamma21 .* gamma31 )                                 				...
  -  ( delta_1 .* delta_3 .* gamma32 .* gamma21 .* gamma32 )                                 				...
  +  ( delta_1 .* delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 )                      				...
  +  ( delta_1 .* delta_3 .* gamma32 .* gamma31 )                                            				...
  +  ( delta_1 .* delta_3 .* gamma32 .* gamma32 )                                            				...
  -  ( delta_1 .* delta_3 .* gamma32 .* gamma32 .* gamma21 )                                 				...
  +  ( delta_2 .* delta_2 .* gamma21 .* gamma21 )                                            				...
  +  ( delta_2 .* delta_3 .* gamma31 .* gamma31 )                                            				...
  +  ( delta_2 .* delta_3 .* gamma31 .* gamma32 )                                            				...
  -  ( delta_2 .* delta_3 .* gamma31 .* gamma32 .* gamma21 )                                 				...
  -  ( delta_2 .* delta_3 .* gamma32 .* gamma21 .* gamma21 )                                 				...
  -  ( delta_2 .* delta_3 .* gamma32 .* gamma21 .* gamma31 )                                 				...
  -  ( delta_2 .* delta_3 .* gamma32 .* gamma21 .* gamma32 )                                 				...
  +  ( delta_2 .* delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 )                      				...
  +  ( delta_2 .* delta_3 .* gamma32 .* gamma31 )                                            				...
  +  ( delta_2 .* delta_3 .* gamma32 .* gamma32 )                                            				...
  -  ( delta_2 .* delta_3 .* gamma32 .* gamma32 .* gamma21 )                                 				...
  -  ( delta_2 .* gamma21 .* delta_2 .* gamma21 .* gamma21 )                                 				...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma31 .* gamma31 )                                 				...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma31 .* gamma32 )                                 				...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma31 .* gamma32 .* gamma21 )                      				...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* gamma21 )                      				...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* gamma31 )                      				...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* gamma32 )                      				...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 )           				...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma31 )                                 				...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma32 )                                 				...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma32 .* gamma21 )                      				...
  +  ( delta_3 .* delta_2 .* gamma21 .* gamma21 )                                            				...
  +  ( delta_3 .* delta_3 .* gamma31 .* gamma31 )                                            				...
  +  ( delta_3 .* delta_3 .* gamma31 .* gamma32 )                                            				...
  -  ( delta_3 .* delta_3 .* gamma31 .* gamma32 .* gamma21 )                                 				...
  -  ( delta_3 .* delta_3 .* gamma32 .* gamma21 .* gamma21 )                                 				...
  -  ( delta_3 .* delta_3 .* gamma32 .* gamma21 .* gamma31 )                                 				...
  -  ( delta_3 .* delta_3 .* gamma32 .* gamma21 .* gamma32 )                                 				...
  +  ( delta_3 .* delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 )                      				...
  +  ( delta_3 .* delta_3 .* gamma32 .* gamma31 )                                            				...
  +  ( delta_3 .* delta_3 .* gamma32 .* gamma32 )                                            				...
  -  ( delta_3 .* delta_3 .* gamma32 .* gamma32 .* gamma21 )                                 				...
  -  ( delta_3 .* gamma31 .* delta_2 .* gamma21 .* gamma21 )                                 				...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma31 .* gamma31 )                                 				...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma31 .* gamma32 )                                 				...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma31 .* gamma32 .* gamma21 )                      				...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 .* gamma21 )                      				...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 .* gamma31 )                      				...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 .* gamma32 )                      				...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 )           				...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma31 )                                 				...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma32 )                                 				...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma32 .* gamma21 )                      				...
  -  ( delta_3 .* gamma31 .* gamma32 .* gamma21 .* gamma21 )                                 				...
  -  ( delta_3 .* gamma32 .* delta_2 .* gamma21 .* gamma21 )                                 				...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma31 .* gamma31 )                                 				...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma31 .* gamma32 )                                 				...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma31 .* gamma32 .* gamma21 )                      				...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 .* gamma21 )                      				...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 .* gamma31 )                      				...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 .* gamma32 )                      				...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 )           				...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma31 )                                 				...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma32 )                                 				...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma32 .* gamma21 )                      				...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 .* gamma21 )                      				...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 .* gamma31 )                      				...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 .* gamma32 )                      				...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 .* gamma32 .* gamma21 )           				...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* gamma21 )           				...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* gamma31 )           				...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* gamma32 )           				...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 )				...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma31 )                      				...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma32 )                      				...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma32 .* gamma21 )           				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 .* gamma21 )                      				...
  -  ( delta_3 .* gamma32 .* gamma32 .* gamma21 .* gamma21 )                                 				;

y32 = ...
  +  ( delta_2 .* gamma21 .* gamma21 .* delta_1 )                                            				...
  +  ( delta_2 .* gamma21 .* gamma21 .* delta_2 )                                            				...
  -  ( delta_2 .* gamma21 .* gamma21 .* delta_2 .* gamma21 )                                 				...
  +  ( delta_2 .* gamma21 .* gamma21 .* delta_3 )                                            				...
  -  ( delta_2 .* gamma21 .* gamma21 .* delta_3 .* gamma31 )                                 				...
  -  ( delta_2 .* gamma21 .* gamma21 .* delta_3 .* gamma32 )                                 				...
  +  ( delta_2 .* gamma21 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )                      				...
  +  ( delta_3 .* gamma31 .* gamma31 .* delta_1 )                                            				...
  +  ( delta_3 .* gamma31 .* gamma31 .* delta_2 )                                            				...
  -  ( delta_3 .* gamma31 .* gamma31 .* delta_2 .* gamma21 )                                 				...
  +  ( delta_3 .* gamma31 .* gamma31 .* delta_3 )                                            				...
  -  ( delta_3 .* gamma31 .* gamma31 .* delta_3 .* gamma31 )                                 				...
  -  ( delta_3 .* gamma31 .* gamma31 .* delta_3 .* gamma32 )                                 				...
  +  ( delta_3 .* gamma31 .* gamma31 .* delta_3 .* gamma32 .* gamma21 )                      				...
  +  ( delta_3 .* gamma31 .* gamma32 .* delta_1 )                                            				...
  +  ( delta_3 .* gamma31 .* gamma32 .* delta_2 )                                            				...
  -  ( delta_3 .* gamma31 .* gamma32 .* delta_2 .* gamma21 )                                 				...
  +  ( delta_3 .* gamma31 .* gamma32 .* delta_3 )                                            				...
  -  ( delta_3 .* gamma31 .* gamma32 .* delta_3 .* gamma31 )                                 				...
  -  ( delta_3 .* gamma31 .* gamma32 .* delta_3 .* gamma32 )                                 				...
  +  ( delta_3 .* gamma31 .* gamma32 .* delta_3 .* gamma32 .* gamma21 )                      				...
  -  ( delta_3 .* gamma31 .* gamma32 .* gamma21 .* delta_1 )                                 				...
  -  ( delta_3 .* gamma31 .* gamma32 .* gamma21 .* delta_2 )                                 				...
  +  ( delta_3 .* gamma31 .* gamma32 .* gamma21 .* delta_2 .* gamma21 )                      				...
  -  ( delta_3 .* gamma31 .* gamma32 .* gamma21 .* delta_3 )                                 				...
  +  ( delta_3 .* gamma31 .* gamma32 .* gamma21 .* delta_3 .* gamma31 )                      				...
  +  ( delta_3 .* gamma31 .* gamma32 .* gamma21 .* delta_3 .* gamma32 )                      				...
  -  ( delta_3 .* gamma31 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )           				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma21 .* delta_1 )                                 				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma21 .* delta_2 )                                 				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma21 .* delta_2 .* gamma21 )                      				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma21 .* delta_3 )                                 				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma21 .* delta_3 .* gamma31 )                      				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma21 .* delta_3 .* gamma32 )                      				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )           				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma21 .* gamma31 )                                 				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma21 .* gamma32 )                                 				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma21 .* gamma32 .* gamma21 )                      				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma31 .* delta_1 )                                 				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma31 .* delta_2 )                                 				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma31 .* delta_2 .* gamma21 )                      				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma31 .* delta_3 )                                 				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma31 .* delta_3 .* gamma31 )                      				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma31 .* delta_3 .* gamma32 )                      				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma31 .* delta_3 .* gamma32 .* gamma21 )           				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* delta_1 )                                 				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* delta_2 )                                 				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* delta_2 .* gamma21 )                      				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* delta_3 )                                 				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* delta_3 .* gamma31 )                      				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* delta_3 .* gamma32 )                      				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* delta_3 .* gamma32 .* gamma21 )           				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 .* delta_1 )                      				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 .* delta_2 )                      				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 .* delta_2 .* gamma21 )           				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 .* delta_3 )                      				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 .* delta_3 .* gamma31 )           				...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 .* delta_3 .* gamma32 )           				...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )				...
  +  ( delta_3 .* gamma32 .* gamma31 .* delta_1 )                                            				...
  +  ( delta_3 .* gamma32 .* gamma31 .* delta_2 )                                            				...
  -  ( delta_3 .* gamma32 .* gamma31 .* delta_2 .* gamma21 )                                 				...
  +  ( delta_3 .* gamma32 .* gamma31 .* delta_3 )                                            				...
  -  ( delta_3 .* gamma32 .* gamma31 .* delta_3 .* gamma31 )                                 				...
  -  ( delta_3 .* gamma32 .* gamma31 .* delta_3 .* gamma32 )                                 				...
  +  ( delta_3 .* gamma32 .* gamma31 .* delta_3 .* gamma32 .* gamma21 )                      				...
  +  ( delta_3 .* gamma32 .* gamma32 .* delta_1 )                                            				...
  +  ( delta_3 .* gamma32 .* gamma32 .* delta_2 )                                            				...
  -  ( delta_3 .* gamma32 .* gamma32 .* delta_2 .* gamma21 )                                 				...
  +  ( delta_3 .* gamma32 .* gamma32 .* delta_3 )                                            				...
  -  ( delta_3 .* gamma32 .* gamma32 .* delta_3 .* gamma31 )                                 				...
  -  ( delta_3 .* gamma32 .* gamma32 .* delta_3 .* gamma32 )                                 				...
  +  ( delta_3 .* gamma32 .* gamma32 .* delta_3 .* gamma32 .* gamma21 )                      				...
  -  ( delta_3 .* gamma32 .* gamma32 .* gamma21 .* delta_1 )                                 				...
  -  ( delta_3 .* gamma32 .* gamma32 .* gamma21 .* delta_2 )                                 				...
  +  ( delta_3 .* gamma32 .* gamma32 .* gamma21 .* delta_2 .* gamma21 )                      				...
  -  ( delta_3 .* gamma32 .* gamma32 .* gamma21 .* delta_3 )                                 				...
  +  ( delta_3 .* gamma32 .* gamma32 .* gamma21 .* delta_3 .* gamma31 )                      				...
  +  ( delta_3 .* gamma32 .* gamma32 .* gamma21 .* delta_3 .* gamma32 )                      				...
  -  ( delta_3 .* gamma32 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )           				;

y33 = ...
  +  ( delta_1 .* delta_1 .* delta_1 )                                                                  	...
  +  ( delta_1 .* delta_1 .* delta_2 )                                                                  	...
  -  ( delta_1 .* delta_1 .* delta_2 .* gamma21 )                                                       	...
  +  ( delta_1 .* delta_1 .* delta_3 )                                                                  	...
  -  ( delta_1 .* delta_1 .* delta_3 .* gamma31 )                                                       	...
  -  ( delta_1 .* delta_1 .* delta_3 .* gamma32 )                                                       	...
  +  ( delta_1 .* delta_1 .* delta_3 .* gamma32 .* gamma21 )                                            	...
  +  ( delta_1 .* delta_2 .* delta_1 )                                                                  	...
  +  ( delta_1 .* delta_2 .* delta_2 )                                                                  	...
  -  ( delta_1 .* delta_2 .* delta_2 .* gamma21 )                                                       	...
  +  ( delta_1 .* delta_2 .* delta_3 )                                                                  	...
  -  ( delta_1 .* delta_2 .* delta_3 .* gamma31 )                                                       	...
  -  ( delta_1 .* delta_2 .* delta_3 .* gamma32 )                                                       	...
  +  ( delta_1 .* delta_2 .* delta_3 .* gamma32 .* gamma21 )                                            	...
  -  ( delta_1 .* delta_2 .* gamma21 .* delta_1 )                                                       	...
  -  ( delta_1 .* delta_2 .* gamma21 .* delta_2 )                                                       	...
  +  ( delta_1 .* delta_2 .* gamma21 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_1 .* delta_2 .* gamma21 .* delta_3 )                                                       	...
  +  ( delta_1 .* delta_2 .* gamma21 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_1 .* delta_2 .* gamma21 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_1 .* delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  +  ( delta_1 .* delta_3 .* delta_1 )                                                                  	...
  +  ( delta_1 .* delta_3 .* delta_2 )                                                                  	...
  -  ( delta_1 .* delta_3 .* delta_2 .* gamma21 )                                                       	...
  +  ( delta_1 .* delta_3 .* delta_3 )                                                                  	...
  -  ( delta_1 .* delta_3 .* delta_3 .* gamma31 )                                                       	...
  -  ( delta_1 .* delta_3 .* delta_3 .* gamma32 )                                                       	...
  +  ( delta_1 .* delta_3 .* delta_3 .* gamma32 .* gamma21 )                                            	...
  -  ( delta_1 .* delta_3 .* gamma31 .* delta_1 )                                                       	...
  -  ( delta_1 .* delta_3 .* gamma31 .* delta_2 )                                                       	...
  +  ( delta_1 .* delta_3 .* gamma31 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_1 .* delta_3 .* gamma31 .* delta_3 )                                                       	...
  +  ( delta_1 .* delta_3 .* gamma31 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_1 .* delta_3 .* gamma31 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_1 .* delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  -  ( delta_1 .* delta_3 .* gamma32 .* delta_1 )                                                       	...
  -  ( delta_1 .* delta_3 .* gamma32 .* delta_2 )                                                       	...
  +  ( delta_1 .* delta_3 .* gamma32 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_1 .* delta_3 .* gamma32 .* delta_3 )                                                       	...
  +  ( delta_1 .* delta_3 .* gamma32 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_1 .* delta_3 .* gamma32 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_1 .* delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  +  ( delta_1 .* delta_3 .* gamma32 .* gamma21 .* delta_1 )                                            	...
  +  ( delta_1 .* delta_3 .* gamma32 .* gamma21 .* delta_2 )                                            	...
  -  ( delta_1 .* delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_1 .* delta_3 .* gamma32 .* gamma21 .* delta_3 )                                            	...
  -  ( delta_1 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_1 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_1 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )                      	...
  +  ( delta_2 .* delta_1 .* delta_1 )                                                                  	...
  +  ( delta_2 .* delta_1 .* delta_2 )                                                                  	...
  -  ( delta_2 .* delta_1 .* delta_2 .* gamma21 )                                                       	...
  +  ( delta_2 .* delta_1 .* delta_3 )                                                                  	...
  -  ( delta_2 .* delta_1 .* delta_3 .* gamma31 )                                                       	...
  -  ( delta_2 .* delta_1 .* delta_3 .* gamma32 )                                                       	...
  +  ( delta_2 .* delta_1 .* delta_3 .* gamma32 .* gamma21 )                                            	...
  +  ( delta_2 .* delta_2 .* delta_1 )                                                                  	...
  +  ( delta_2 .* delta_2 .* delta_2 )                                                                  	...
  -  ( delta_2 .* delta_2 .* delta_2 .* gamma21 )                                                       	...
  +  ( delta_2 .* delta_2 .* delta_3 )                                                                  	...
  -  ( delta_2 .* delta_2 .* delta_3 .* gamma31 )                                                       	...
  -  ( delta_2 .* delta_2 .* delta_3 .* gamma32 )                                                       	...
  +  ( delta_2 .* delta_2 .* delta_3 .* gamma32 .* gamma21 )                                            	...
  -  ( delta_2 .* delta_2 .* gamma21 .* delta_1 )                                                       	...
  -  ( delta_2 .* delta_2 .* gamma21 .* delta_2 )                                                       	...
  +  ( delta_2 .* delta_2 .* gamma21 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_2 .* delta_2 .* gamma21 .* delta_3 )                                                       	...
  +  ( delta_2 .* delta_2 .* gamma21 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_2 .* delta_2 .* gamma21 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_2 .* delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  +  ( delta_2 .* delta_3 .* delta_1 )                                                                  	...
  +  ( delta_2 .* delta_3 .* delta_2 )                                                                  	...
  -  ( delta_2 .* delta_3 .* delta_2 .* gamma21 )                                                       	...
  +  ( delta_2 .* delta_3 .* delta_3 )                                                                  	...
  -  ( delta_2 .* delta_3 .* delta_3 .* gamma31 )                                                       	...
  -  ( delta_2 .* delta_3 .* delta_3 .* gamma32 )                                                       	...
  +  ( delta_2 .* delta_3 .* delta_3 .* gamma32 .* gamma21 )                                            	...
  -  ( delta_2 .* delta_3 .* gamma31 .* delta_1 )                                                       	...
  -  ( delta_2 .* delta_3 .* gamma31 .* delta_2 )                                                       	...
  +  ( delta_2 .* delta_3 .* gamma31 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_2 .* delta_3 .* gamma31 .* delta_3 )                                                       	...
  +  ( delta_2 .* delta_3 .* gamma31 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_2 .* delta_3 .* gamma31 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_2 .* delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  -  ( delta_2 .* delta_3 .* gamma32 .* delta_1 )                                                       	...
  -  ( delta_2 .* delta_3 .* gamma32 .* delta_2 )                                                       	...
  +  ( delta_2 .* delta_3 .* gamma32 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_2 .* delta_3 .* gamma32 .* delta_3 )                                                       	...
  +  ( delta_2 .* delta_3 .* gamma32 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_2 .* delta_3 .* gamma32 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_2 .* delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  +  ( delta_2 .* delta_3 .* gamma32 .* gamma21 .* delta_1 )                                            	...
  +  ( delta_2 .* delta_3 .* gamma32 .* gamma21 .* delta_2 )                                            	...
  -  ( delta_2 .* delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_2 .* delta_3 .* gamma32 .* gamma21 .* delta_3 )                                            	...
  -  ( delta_2 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_2 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_2 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )                      	...
  -  ( delta_2 .* gamma21 .* delta_1 .* delta_1 )                                                       	...
  -  ( delta_2 .* gamma21 .* delta_1 .* delta_2 )                                                       	...
  +  ( delta_2 .* gamma21 .* delta_1 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_2 .* gamma21 .* delta_1 .* delta_3 )                                                       	...
  +  ( delta_2 .* gamma21 .* delta_1 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_2 .* gamma21 .* delta_1 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_2 .* gamma21 .* delta_1 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  -  ( delta_2 .* gamma21 .* delta_2 .* delta_1 )                                                       	...
  -  ( delta_2 .* gamma21 .* delta_2 .* delta_2 )                                                       	...
  +  ( delta_2 .* gamma21 .* delta_2 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_2 .* gamma21 .* delta_2 .* delta_3 )                                                       	...
  +  ( delta_2 .* gamma21 .* delta_2 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_2 .* gamma21 .* delta_2 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_2 .* gamma21 .* delta_2 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  +  ( delta_2 .* gamma21 .* delta_2 .* gamma21 .* delta_1 )                                            	...
  +  ( delta_2 .* gamma21 .* delta_2 .* gamma21 .* delta_2 )                                            	...
  -  ( delta_2 .* gamma21 .* delta_2 .* gamma21 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_2 .* gamma21 .* delta_2 .* gamma21 .* delta_3 )                                            	...
  -  ( delta_2 .* gamma21 .* delta_2 .* gamma21 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_2 .* gamma21 .* delta_2 .* gamma21 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_2 .* gamma21 .* delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )                      	...
  -  ( delta_2 .* gamma21 .* delta_3 .* delta_1 )                                                       	...
  -  ( delta_2 .* gamma21 .* delta_3 .* delta_2 )                                                       	...
  +  ( delta_2 .* gamma21 .* delta_3 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_2 .* gamma21 .* delta_3 .* delta_3 )                                                       	...
  +  ( delta_2 .* gamma21 .* delta_3 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_2 .* gamma21 .* delta_3 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_2 .* gamma21 .* delta_3 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma31 .* delta_1 )                                            	...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma31 .* delta_2 )                                            	...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma31 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma31 .* delta_3 )                                            	...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma31 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma31 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 )                      	...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* delta_1 )                                            	...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* delta_2 )                                            	...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* delta_3 )                                            	...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 )                      	...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_1 )                                 	...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_2 )                                 	...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 )                      	...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_3 )                                 	...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 )                      	...
  +  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 )                      	...
  -  ( delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )           	...
  -  ( delta_2 .* gamma21 .* gamma21 .* gamma21 )                                                       	...
  +  ( delta_3 .* delta_1 .* delta_1 )                                                                  	...
  +  ( delta_3 .* delta_1 .* delta_2 )                                                                  	...
  -  ( delta_3 .* delta_1 .* delta_2 .* gamma21 )                                                       	...
  +  ( delta_3 .* delta_1 .* delta_3 )                                                                  	...
  -  ( delta_3 .* delta_1 .* delta_3 .* gamma31 )                                                       	...
  -  ( delta_3 .* delta_1 .* delta_3 .* gamma32 )                                                       	...
  +  ( delta_3 .* delta_1 .* delta_3 .* gamma32 .* gamma21 )                                            	...
  +  ( delta_3 .* delta_2 .* delta_1 )                                                                  	...
  +  ( delta_3 .* delta_2 .* delta_2 )                                                                  	...
  -  ( delta_3 .* delta_2 .* delta_2 .* gamma21 )                                                       	...
  +  ( delta_3 .* delta_2 .* delta_3 )                                                                  	...
  -  ( delta_3 .* delta_2 .* delta_3 .* gamma31 )                                                       	...
  -  ( delta_3 .* delta_2 .* delta_3 .* gamma32 )                                                       	...
  +  ( delta_3 .* delta_2 .* delta_3 .* gamma32 .* gamma21 )                                            	...
  -  ( delta_3 .* delta_2 .* gamma21 .* delta_1 )                                                       	...
  -  ( delta_3 .* delta_2 .* gamma21 .* delta_2 )                                                       	...
  +  ( delta_3 .* delta_2 .* gamma21 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_3 .* delta_2 .* gamma21 .* delta_3 )                                                       	...
  +  ( delta_3 .* delta_2 .* gamma21 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_3 .* delta_2 .* gamma21 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_3 .* delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  +  ( delta_3 .* delta_3 .* delta_1 )                                                                  	...
  +  ( delta_3 .* delta_3 .* delta_2 )                                                                  	...
  -  ( delta_3 .* delta_3 .* delta_2 .* gamma21 )                                                       	...
  +  ( delta_3 .* delta_3 .* delta_3 )                                                                  	...
  -  ( delta_3 .* delta_3 .* delta_3 .* gamma31 )                                                       	...
  -  ( delta_3 .* delta_3 .* delta_3 .* gamma32 )                                                       	...
  +  ( delta_3 .* delta_3 .* delta_3 .* gamma32 .* gamma21 )                                            	...
  -  ( delta_3 .* delta_3 .* gamma31 .* delta_1 )                                                       	...
  -  ( delta_3 .* delta_3 .* gamma31 .* delta_2 )                                                       	...
  +  ( delta_3 .* delta_3 .* gamma31 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_3 .* delta_3 .* gamma31 .* delta_3 )                                                       	...
  +  ( delta_3 .* delta_3 .* gamma31 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_3 .* delta_3 .* gamma31 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_3 .* delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  -  ( delta_3 .* delta_3 .* gamma32 .* delta_1 )                                                       	...
  -  ( delta_3 .* delta_3 .* gamma32 .* delta_2 )                                                       	...
  +  ( delta_3 .* delta_3 .* gamma32 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_3 .* delta_3 .* gamma32 .* delta_3 )                                                       	...
  +  ( delta_3 .* delta_3 .* gamma32 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_3 .* delta_3 .* gamma32 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_3 .* delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  +  ( delta_3 .* delta_3 .* gamma32 .* gamma21 .* delta_1 )                                            	...
  +  ( delta_3 .* delta_3 .* gamma32 .* gamma21 .* delta_2 )                                            	...
  -  ( delta_3 .* delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_3 .* delta_3 .* gamma32 .* gamma21 .* delta_3 )                                            	...
  -  ( delta_3 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_3 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_3 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )                      	...
  -  ( delta_3 .* gamma31 .* delta_1 .* delta_1 )                                                       	...
  -  ( delta_3 .* gamma31 .* delta_1 .* delta_2 )                                                       	...
  +  ( delta_3 .* gamma31 .* delta_1 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_3 .* gamma31 .* delta_1 .* delta_3 )                                                       	...
  +  ( delta_3 .* gamma31 .* delta_1 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_3 .* gamma31 .* delta_1 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_3 .* gamma31 .* delta_1 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  -  ( delta_3 .* gamma31 .* delta_2 .* delta_1 )                                                       	...
  -  ( delta_3 .* gamma31 .* delta_2 .* delta_2 )                                                       	...
  +  ( delta_3 .* gamma31 .* delta_2 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_3 .* gamma31 .* delta_2 .* delta_3 )                                                       	...
  +  ( delta_3 .* gamma31 .* delta_2 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_3 .* gamma31 .* delta_2 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_3 .* gamma31 .* delta_2 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  +  ( delta_3 .* gamma31 .* delta_2 .* gamma21 .* delta_1 )                                            	...
  +  ( delta_3 .* gamma31 .* delta_2 .* gamma21 .* delta_2 )                                            	...
  -  ( delta_3 .* gamma31 .* delta_2 .* gamma21 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_3 .* gamma31 .* delta_2 .* gamma21 .* delta_3 )                                            	...
  -  ( delta_3 .* gamma31 .* delta_2 .* gamma21 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_3 .* gamma31 .* delta_2 .* gamma21 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_3 .* gamma31 .* delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )                      	...
  -  ( delta_3 .* gamma31 .* delta_3 .* delta_1 )                                                       	...
  -  ( delta_3 .* gamma31 .* delta_3 .* delta_2 )                                                       	...
  +  ( delta_3 .* gamma31 .* delta_3 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_3 .* gamma31 .* delta_3 .* delta_3 )                                                       	...
  +  ( delta_3 .* gamma31 .* delta_3 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_3 .* gamma31 .* delta_3 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_3 .* gamma31 .* delta_3 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma31 .* delta_1 )                                            	...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma31 .* delta_2 )                                            	...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma31 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma31 .* delta_3 )                                            	...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma31 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma31 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 )                      	...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* delta_1 )                                            	...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* delta_2 )                                            	...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* delta_3 )                                            	...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 )                      	...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 .* delta_1 )                                 	...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 .* delta_2 )                                 	...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 )                      	...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 .* delta_3 )                                 	...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 )                      	...
  +  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 )                      	...
  -  ( delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )           	...
  -  ( delta_3 .* gamma31 .* gamma31 .* gamma31 )                                                       	...
  -  ( delta_3 .* gamma31 .* gamma31 .* gamma32 )                                                       	...
  +  ( delta_3 .* gamma31 .* gamma31 .* gamma32 .* gamma21 )                                            	...
  +  ( delta_3 .* gamma31 .* gamma32 .* gamma21 .* gamma31 )                                            	...
  +  ( delta_3 .* gamma31 .* gamma32 .* gamma21 .* gamma32 )                                            	...
  -  ( delta_3 .* gamma31 .* gamma32 .* gamma21 .* gamma32 .* gamma21 )                                 	...
  -  ( delta_3 .* gamma31 .* gamma32 .* gamma31 )                                                       	...
  -  ( delta_3 .* gamma31 .* gamma32 .* gamma32 )                                                       	...
  +  ( delta_3 .* gamma31 .* gamma32 .* gamma32 .* gamma21 )                                            	...
  -  ( delta_3 .* gamma32 .* delta_1 .* delta_1 )                                                       	...
  -  ( delta_3 .* gamma32 .* delta_1 .* delta_2 )                                                       	...
  +  ( delta_3 .* gamma32 .* delta_1 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_3 .* gamma32 .* delta_1 .* delta_3 )                                                       	...
  +  ( delta_3 .* gamma32 .* delta_1 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_3 .* gamma32 .* delta_1 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_3 .* gamma32 .* delta_1 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  -  ( delta_3 .* gamma32 .* delta_2 .* delta_1 )                                                       	...
  -  ( delta_3 .* gamma32 .* delta_2 .* delta_2 )                                                       	...
  +  ( delta_3 .* gamma32 .* delta_2 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_3 .* gamma32 .* delta_2 .* delta_3 )                                                       	...
  +  ( delta_3 .* gamma32 .* delta_2 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_3 .* gamma32 .* delta_2 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_3 .* gamma32 .* delta_2 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  +  ( delta_3 .* gamma32 .* delta_2 .* gamma21 .* delta_1 )                                            	...
  +  ( delta_3 .* gamma32 .* delta_2 .* gamma21 .* delta_2 )                                            	...
  -  ( delta_3 .* gamma32 .* delta_2 .* gamma21 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_3 .* gamma32 .* delta_2 .* gamma21 .* delta_3 )                                            	...
  -  ( delta_3 .* gamma32 .* delta_2 .* gamma21 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_3 .* gamma32 .* delta_2 .* gamma21 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_3 .* gamma32 .* delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )                      	...
  -  ( delta_3 .* gamma32 .* delta_3 .* delta_1 )                                                       	...
  -  ( delta_3 .* gamma32 .* delta_3 .* delta_2 )                                                       	...
  +  ( delta_3 .* gamma32 .* delta_3 .* delta_2 .* gamma21 )                                            	...
  -  ( delta_3 .* gamma32 .* delta_3 .* delta_3 )                                                       	...
  +  ( delta_3 .* gamma32 .* delta_3 .* delta_3 .* gamma31 )                                            	...
  +  ( delta_3 .* gamma32 .* delta_3 .* delta_3 .* gamma32 )                                            	...
  -  ( delta_3 .* gamma32 .* delta_3 .* delta_3 .* gamma32 .* gamma21 )                                 	...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma31 .* delta_1 )                                            	...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma31 .* delta_2 )                                            	...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma31 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma31 .* delta_3 )                                            	...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma31 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma31 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 )                      	...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* delta_1 )                                            	...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* delta_2 )                                            	...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* delta_3 )                                            	...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 )                      	...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 .* delta_1 )                                 	...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 .* delta_2 )                                 	...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 )                      	...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 .* delta_3 )                                 	...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 )                      	...
  +  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 )                      	...
  -  ( delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )           	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_1 .* delta_1 )                                            	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_1 .* delta_2 )                                            	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_1 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_1 .* delta_3 )                                            	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_1 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_1 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_1 .* delta_3 .* gamma32 .* gamma21 )                      	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* delta_1 )                                            	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* delta_2 )                                            	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* delta_3 )                                            	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* delta_3 .* gamma32 .* gamma21 )                      	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 .* delta_1 )                                 	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 .* delta_2 )                                 	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 .* delta_2 .* gamma21 )                      	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 .* delta_3 )                                 	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 .* delta_3 .* gamma31 )                      	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 .* delta_3 .* gamma32 )                      	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )           	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* delta_1 )                                            	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* delta_2 )                                            	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* delta_2 .* gamma21 )                                 	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* delta_3 )                                            	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* delta_3 .* gamma31 )                                 	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* delta_3 .* gamma32 )                                 	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* delta_3 .* gamma32 .* gamma21 )                      	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 .* delta_1 )                                 	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 .* delta_2 )                                 	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 .* delta_2 .* gamma21 )                      	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 .* delta_3 )                                 	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 .* delta_3 .* gamma31 )                      	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 .* delta_3 .* gamma32 )                      	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 .* delta_3 .* gamma32 .* gamma21 )           	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* delta_1 )                                 	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* delta_2 )                                 	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* delta_2 .* gamma21 )                      	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* delta_3 )                                 	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* delta_3 .* gamma31 )                      	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* delta_3 .* gamma32 )                      	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* delta_3 .* gamma32 .* gamma21 )           	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_1 )                      	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_2 )                      	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_2 .* gamma21 )           	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_3 )                      	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma31 )           	...
  -  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 )           	...
  +  ( delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 .* delta_3 .* gamma32 .* gamma21 )	...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma21 .* gamma21 )                                            	...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma31 .* gamma31 )                                            	...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma31 .* gamma32 )                                            	...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma31 .* gamma32 .* gamma21 )                                 	...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 .* gamma31 )                                 	...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 .* gamma32 )                                 	...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma21 .* gamma32 .* gamma21 )                      	...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma31 )                                            	...
  +  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma32 )                                            	...
  -  ( delta_3 .* gamma32 .* gamma21 .* gamma32 .* gamma32 .* gamma21 )                                 	...
  -  ( delta_3 .* gamma32 .* gamma31 .* gamma31 )                                                       	...
  -  ( delta_3 .* gamma32 .* gamma31 .* gamma32 )                                                       	...
  +  ( delta_3 .* gamma32 .* gamma31 .* gamma32 .* gamma21 )                                            	...
  +  ( delta_3 .* gamma32 .* gamma32 .* gamma21 .* gamma31 )                                            	...
  +  ( delta_3 .* gamma32 .* gamma32 .* gamma21 .* gamma32 )                                            	...
  -  ( delta_3 .* gamma32 .* gamma32 .* gamma21 .* gamma32 .* gamma21 )                                 	...
  -  ( delta_3 .* gamma32 .* gamma32 .* gamma31 )                                                       	...
  -  ( delta_3 .* gamma32 .* gamma32 .* gamma32 )                                                       	...
  +  ( delta_3 .* gamma32 .* gamma32 .* gamma32 .* gamma21 )                                            	;