TAPs 0.7.7.3
TAPsExtendedOpenGLPNTriangleVolPresModel.cpp
Go to the documentation of this file.
00001 /******************************************************************************
00002 TAPsExtendedOpenGLPNTriangleVolPresModel.cpp
00003 
00004 Class TAPsExtendedOpenGLVolPresPolygonalModel is for a deformable mesh model with 
00005 volume preservation.
00006 It memorizes its original shape -- original vertex positions
00007 
00008 SUKITTI PUNAK   (05/19/2005)
00009 UPDATE          (05/30/2008)
00010 ******************************************************************************/
00011 #include "TAPsExtendedOpenGLPNTriangleVolPresModel.hpp"
00012 // Using Inclusion Model (i.e. definitions are included in declarations)
00013 //                       (this name.cpp is included in name.hpp)
00014 // Each friend is defined directly inside its declaration.
00015 
00016 BEGIN_NAMESPACE_TAPs__OpenGL
00017 //=============================================================================
00018 //-----------------------------------------------------------------------------
00019 // default constructor
00020 template <typename T>
00021 ExtendedOpenGLPNTriangleVolPresModel<T>::ExtendedOpenGLPNTriangleVolPresModel()
00022     : OpenGLPNTriangleVolPresModel<T>(), 
00023       m_prOrigVertexPos( NULL ),
00024       m_pbFaceFixed( NULL ),
00025       m_pbVertexFixed( NULL )
00026 {
00027     #ifdef  TAPs_DEBUG_MODE
00028     std::cout << "ExtendedOpenGLPNTriangleVolPresModel<" << typeid(T).name() << "> constructor\n";
00029     #endif//TAPs_DEBUG_MODE
00030 }
00031 //-----------------------------------------------------------------------------
00032 // destructor
00033 template <typename T>
00034 ExtendedOpenGLPNTriangleVolPresModel<T>::~ExtendedOpenGLPNTriangleVolPresModel()
00035 {
00036     if ( m_prOrigVertexPos != NULL ) {
00037         delete [] m_prOrigVertexPos;
00038         m_prOrigVertexPos = NULL;
00039     }
00040     if ( m_pbFaceFixed != NULL ) {
00041         delete [] m_pbFaceFixed;
00042         m_pbFaceFixed = NULL;
00043     }
00044     if ( m_pbVertexFixed != NULL ) {
00045         delete [] m_pbVertexFixed;
00046         m_pbVertexFixed = NULL;
00047     }
00048 
00049     #ifdef  TAPs_DEBUG_MODE
00050     std::cout << "ExtendedOpenGLPNTriangleVolPresModel<" << typeid(T).name() << "> destructor\n";
00051     #endif//TAPs_DEBUG_MODE
00052 }
00053 //-----------------------------------------------------------------------------
00054 // Initialize
00055 template <typename T>
00056 void ExtendedOpenGLPNTriangleVolPresModel<T>::Initialize ()
00057 {
00058     #ifdef  TAPs_DEBUG_MODE
00059     std::cout << "An ExtendedOpenGLPNTriangleVolPresModel Initialization\n";
00060     #endif//TAPs_DEBUG_MODE
00061     //----------------------------------------------------------------
00062     // Model Initialization
00063     OpenGLPNTriangleVolPresModel<T>::Initialize();
00064     SetOrigVertexPositions();
00065     SetFacesToUnFixed();
00066     SetVerticesToUnFixed();
00067 }
00068 //-----------------------------------------------------------------------------
00069 // Set Original Vertex Positions
00070 template <typename T>
00071 void ExtendedOpenGLPNTriangleVolPresModel<T>::SetOrigVertexPositions ()
00072 {
00073     if ( !m_prOrigVertexPos )
00074         m_prOrigVertexPos = new Vector3<T>[ GetNoVertices() ];
00075     if ( !m_prOrigVertexPos ) {
00076         return;
00077     }
00078     for ( int i = 0; i < GetNoVertices(); ++i ) {
00079         m_prOrigVertexPos[i] = m_prXVertex[i].GetPosition();
00080     }
00081 }
00082 //-----------------------------------------------------------------------------
00083 // Set Face Fixed/Unfixed Status
00084 template <typename T>
00085 void ExtendedOpenGLPNTriangleVolPresModel<T>::SetFacesToUnFixed ()
00086 {
00087     if ( !m_pbFaceFixed )
00088         m_pbFaceFixed = new bool[ GetNoFaces() ];
00089     if ( !m_pbFaceFixed ) {
00090         std::cerr << "ERROR: Cannot allocate memory for m_pbFaceFixed!" << std::endl;
00091         return;
00092     }
00093     for ( int i = 0; i < GetNoFaces(); ++i ) {
00094         m_pbFaceFixed[i] = false;
00095     }
00096 }
00097 //-----------------------------------------------------------------------------
00098 // Set Vertex Fixed/Unfixed Status
00099 template <typename T>
00100 void ExtendedOpenGLPNTriangleVolPresModel<T>::SetVerticesToUnFixed ()
00101 {
00102     if ( !m_pbVertexFixed )
00103         m_pbVertexFixed = new bool[ GetNoVertices() ];
00104     if ( !m_pbVertexFixed ) {
00105         std::cerr << "ERROR: Cannot allocate memory for m_pbVertexFixed!" << std::endl;
00106         return;
00107     }
00108     for ( int i = 0; i < GetNoVertices(); ++i ) {
00109         m_pbVertexFixed[i] = false;
00110     }
00111 }
00112 //-----------------------------------------------------------------------------
00113 
00115 // START: a function for bouncing //
00116 //-----------------------------------------------------------------------------
00117 template <typename T>
00118 T ExtendedOpenGLPNTriangleVolPresModel<T>::FlatCollisionDetectionWithElasticity( T groundHeight )
00119 {
00120     bool isChanged = true;
00121     T volForce = 0;
00122     //T distance = Center[1] + m_paBoundingAABB[0][1] - groundHeight;
00123     T centerY = GetTransform().GetTranslation( 1 );
00124     T distance = centerY + m_paBoundingAABB[0][1] - groundHeight;
00125     //----------------------------------------------------------------
00126     // No collision
00127     if ( distance >= 0.0 ) {
00128         return 0;
00129     }
00130     //----------------------------------------------------------------
00131     // Handle Collision
00132     for ( int i = 0; i < GetNoVertices(); ++i ) {
00133         m_bFlagFixed[i] = m_pbVertexFixed[i];
00134         T newHeight = groundHeight - centerY ;
00135         if ( groundHeight > centerY + m_prOrigVertexPos[i][1] ) {
00136             isChanged = true;
00137             m_prXVertex[i][1] = newHeight;
00138             m_bFlagFixed[i] = true;
00139         }
00140         else if ( m_prXVertex[i][1] != m_prOrigVertexPos[i][1] ) {
00141             isChanged = true;
00142             m_prXVertex[i][0] = m_prOrigVertexPos[i][0];
00143             m_prXVertex[i][1] = m_prOrigVertexPos[i][1];
00144             m_prXVertex[i][2] = m_prOrigVertexPos[i][2];
00145         }
00146         else {
00147 
00148         }
00149     }
00150     //----------------------------------------------------------------
00151     if ( m_bFlagVolPresMode && isChanged ) {
00152         //PreserveVolume( weight );
00153         PreserveVolumeByVertexNormals( weight );
00154         // Recalculate Normals
00155         CalAndSetFaceNormalsNotNormalized();
00156         CalAndSetVertexNormals();
00157         NormalizeFaceNormals();
00158         //volForce = m_tVolume - totalVolume;
00159     }
00160     return volForce;
00161 }
00162 //-----------------------------------------------------------------------------
00163 // END: a function for bouncing //
00165 
00166 //-----------------------------------------------------------------------------
00167 // Reset Fn inherited from Model class
00168 template <typename T>
00169 void ExtendedOpenGLPNTriangleVolPresModel<T>::Reset ()
00170 {
00171     for ( int i = 0; i < GetNoVertices(); ++i ) {
00172         m_prXVertex[i].SetPosition( m_prOrigVertexPos[i] );
00173     }
00174     GetTransform().SetTranslation( 0, 0, 0 );
00175 
00176     //CalAndSetFaceNormalsNotNormalized();
00177     //CalAndSetVertexNormals();
00178     //NormalizeFaceNormals();
00179     CalAndSetNormals();
00180     
00181     //Center[0] = Center[1] = Center[2] = 0;
00182     //Initialize();
00183 }
00184 /*
00185 //-----------------------------------------------------------------------------
00186 //void DisplayGL()
00187 template <typename T>
00188 void ExtendedOpenGLPNTriangleVolPresModel<T>::DisplayGL( OpenGL::Enum::DrawMode DM )
00189 {
00190     switch (DM) {
00191     case OpenGL::Enum::POLYGON:
00192         DrawGL( GL_POLYGON );
00193         break;
00194     case OpenGL::Enum::WIRE_FRAME:
00195         DrawGL( GL_LINE_LOOP );
00196         break;
00197     case OpenGL::Enum::POINT:
00198         DrawGL( GL_POINTS );
00199         break;
00200     case OpenGL::Enum:: POLYGON_WITH_WIRE_FRAME:
00201         // Draw the object with GL_POLYGON_OFFSET enabled
00202         glEnable( GL_POLYGON_OFFSET_FILL );
00203         glPolygonOffset( 1.0, 1.0 );
00204         DrawGL( GL_POLYGON );
00205         glDisable( GL_POLYGON_OFFSET_FILL );
00206         // Draw the wire frame of the object
00207         glDisable( GL_LIGHTING );
00208         glColor3ub( 255, 200, 0 );
00209         DrawGL( GL_LINE_LOOP );
00210         glEnable( GL_LIGHTING );
00211         break;
00212     }
00213 }
00214 //*/
00215 //-----------------------------------------------------------------------------
00216 //void DisplayGLText()
00217 template <typename T>
00218 void ExtendedOpenGLPNTriangleVolPresModel<T>::DisplayGLText( T x, T y, T z )
00219 {
00220     char str[128] = "";
00221     int count = 0;
00222     T volume = CalVolume(); // for calculating centroid
00223     sprintf( str, "Centroid: (%10.4f, %10.4f, %10.4f)", m_vtCentroid[0], m_vtCentroid[1], m_vtCentroid[2] );
00224     Fn::DrawGLText( str, x, y-count++, z );
00225     sprintf( str, "Volume (Tetra): %g", volume );
00226     Fn::DrawGLText( str, x, y-count++, z );
00227     CalVolume2();
00228     sprintf( str, "Volume (Exact): %g", m_tVolume );
00229     Fn::DrawGLText( str, x, y-count++, z );
00230     sprintf( str, "Volume (PNTri): %g", CalVolumeOfPNTriangleMesh() );
00231     Fn::DrawGLText( str, x, y-count++, z );
00232     sprintf( str, "Volume (PNApx): %g", CalVolumeOfL2Approximation() );
00233     Fn::DrawGLText( str, x, y-count++, z );
00234 //  sprintf( str, "weight0: %g", weight[0] );
00235     Fn::DrawGLText( str, x, y-count++, z );
00236 //  sprintf( str, "weight1: %g", weight[1] );
00237 //  Fn::DrawGLText( str, x, y-2*count++, z );
00238 //  sprintf( str, "weight2: %g", weight[2] );
00239 //  Fn::DrawGLText( str, x, y-2*count++, z );
00240 //  sprintf( str, "weight3: %g", weight[3] );
00241 //  Fn::DrawGLText( str, x, y-2*count++, z );
00242     if ( m_bFlagSpringForceMode ) {
00243         sprintf( str, "Spring Force: ON" );
00244     }
00245     else {
00246         sprintf( str, "Spring Force: OFF" );
00247     }
00248     Fn::DrawGLText( str, x, y-count++, z );
00249     if ( m_bFlagVolPresMode ) {
00250         sprintf( str, "VolPres: ON" );
00251     }
00252     else {
00253         sprintf( str, "VolPres: OFF" );
00254     }
00255     Fn::DrawGLText( str, x, y-count++, z );
00256 }
00257 //-----------------------------------------------------------------------------
00258 // Helper Fn
00259 // void DrawGL()
00260 template <typename T>
00261 void ExtendedOpenGLPNTriangleVolPresModel<T>::DrawGL ( GLenum drawMode )
00262 {
00263     OpenGLPNTriangleVolPresModel<T>::DrawGL( drawMode );
00264     /*
00265     glPushMatrix();
00266 
00267     
00268     glTranslatef(   static_cast<float>( Center[0] ), 
00269                     static_cast<float>( Center[1] ), 
00270                     static_cast<float>( Center[2] ) );
00271     
00272     //glRotatef(        static_cast<float>( Rotation[0] ), 
00273     //              static_cast<float>( 1 ), 
00274     //              static_cast<float>( 0 ), 
00275     //              static_cast<float>( 0 ) );
00276     //glRotatef(        static_cast<float>( Rotation[1] ), 
00277     //              static_cast<float>( 0 ), 
00278     //              static_cast<float>( 1 ), 
00279     //              static_cast<float>( 0 ) );
00280     //glRotatef(        static_cast<float>( Rotation[2] ), 
00281     //              static_cast<float>( 0 ), 
00282     //              static_cast<float>( 0 ), 
00283     //              static_cast<float>( 1 ) );
00284     //glScalef(     static_cast<float>( Scale[0]/2 ), 
00285     //              static_cast<float>( Scale[1]/2 ), 
00286     //              static_cast<float>( Scale[2] )  );
00287     
00288     //ModelTransformationByTranslationRatationAndScale();
00289 
00290     //-------------------------------------------------------------------------
00291     // StepSimulation
00292     int count;
00293     if ( bRunSimulation ) {
00295         for ( count = 0; count < 5; count++ ) {
00296             StepSimulation( 0.01 );
00297         }
00298     }
00299 
00300     if ( isFacetShading ) {
00301         // Draw the object
00302         //glEnable( GL_TEXTURE_2D );
00303         for ( int i = 0; i < m_iNoFaces; i++ )
00304         {
00305             glBegin( drawMode );
00306             for ( int j = 0; j < m_prFace[i].GetNoVertices(); ++j )
00307             {
00308                 // Draw texture
00309                 if ( m_prFace[i].GetNoTexCoords() != 0 ) {
00310                     glTexCoord2f( static_cast<float>( m_prFace[i].GetTexCoordHalfNo( j*2 ) ), 
00311                                 static_cast<float>( m_prFace[i].GetTexCoordHalfNo( j*2+1 ) ) );
00312                 }
00313                 // Normal of the face
00314                 glNormal3f ( static_cast<float>( m_prFace[i].GetNormal()[0] ), 
00315                              static_cast<float>( m_prFace[i].GetNormal()[1] ), 
00316                              static_cast<float>( m_prFace[i].GetNormal()[2] ) );
00317                 // Draw the vertex
00318                 glVertex3f ( 
00319                     static_cast<float>( m_prXVertex[ m_prFace[i].GetVertexNo( j ) ][0] ), 
00320                     static_cast<float>( m_prXVertex[ m_prFace[i].GetVertexNo( j ) ][1] ), 
00321                     static_cast<float>( m_prXVertex[ m_prFace[i].GetVertexNo( j ) ][2] ) );
00322             }
00323             glEnd();
00324         }
00325         //glDisable( GL_TEXTURE_2D );
00326     }
00327     else {
00328         // Draw the object
00329         //glEnable( GL_TEXTURE_2D );
00330         for ( int i = 0; i < m_iNoFaces; i++ )
00331         {
00332             GLfloat ambient[4];
00333             // Change ambient color
00334             if ( m_pbFaceFixed[i] ) {
00335                 material.GetAmbient( ambient );
00336                 material.SetAmbient( 0, ambient[0]+0.5 );
00337                 material.ApplyAmbient();
00338             }
00339 
00340             // Draw all faces
00341             glBegin( drawMode );
00342             for ( int j = 0; j < m_prFace[i].GetNoVertices(); ++j )
00343             {
00344                 // Draw texture
00345                 if ( m_prFace[i].GetNoTexCoords() != 0 ) {
00346                     glTexCoord2f( static_cast<float>( m_prFace[i].GetTexCoordHalfNo( j*2 ) ), 
00347                                   static_cast<float>( m_prFace[i].GetTexCoordHalfNo( j*2+1 ) ) );
00348                 }
00349                 // Normal of the vertex
00350                 glNormal3f ( static_cast<float>( m_prXVertex[ m_prFace[i].GetVertexNo( j ) ].GetNormal()[0] ), 
00351                              static_cast<float>( m_prXVertex[ m_prFace[i].GetVertexNo( j ) ].GetNormal()[1] ), 
00352                              static_cast<float>( m_prXVertex[ m_prFace[i].GetVertexNo( j ) ].GetNormal()[2] ) ); 
00353                 // Draw the vertex
00354                 glVertex3f ( 
00355                     static_cast<float>( m_prXVertex[ m_prFace[i].GetVertexNo( j ) ][0] ), 
00356                     static_cast<float>( m_prXVertex[ m_prFace[i].GetVertexNo( j ) ][1] ), 
00357                     static_cast<float>( m_prXVertex[ m_prFace[i].GetVertexNo( j ) ][2] ) );
00358             }
00359             glEnd();
00360 
00361             // Restore ambient color
00362             if ( m_pbFaceFixed[i] ) {
00363                 material.SetAmbient( ambient );
00364                 material.ApplyAmbient();
00365             }
00366 
00367         }
00368         //glDisable( GL_TEXTURE_2D );
00369     }
00370 
00371     // Display vertex normals
00372     if ( bFlagShowVertexNormals ) {
00373         DisplayGL_ParticleNormals();
00374     }
00375     // Display vertex rings
00376     if ( bFlagShowVertexRings ) {
00377         DisplayGL_VertexRings();
00378     }
00379     // Display the deformed face
00380     if ( bFlagShowDeformedFace ) {
00381         DisplayGL_DeformedFaceNo();
00382     }
00383 
00384     // Display Volume and Centroid
00385     glDisable( GL_LIGHTING );
00386     glPushAttrib(GL_ALL_ATTRIB_BITS);
00387     glColor3ub( 200, 185, 0 );
00388 
00389     // Draw Bounding Volume(s)
00390     //DrawBoundingAABB();
00391     //DrawBoundingSphere();
00392 
00393     glPopAttrib();
00394     glEnable( GL_LIGHTING );
00395 
00396     glPopMatrix();
00397     */
00398 }
00399 //-----------------------------------------------------------------------------
00400 // Picking Fns
00401 template <typename T>
00402 void ExtendedOpenGLPNTriangleVolPresModel<T>::SelectATriangle ( 
00403     GLuint BUFSIZE, GLuint selectBuf[], GLint &hits, 
00404     GLdouble x, GLdouble y, 
00405     GLdouble dLeft,     GLdouble dRight, 
00406     GLdouble dBottom,   GLdouble dTop, 
00407     GLdouble dNear,     GLdouble dFar
00408 )
00409 {
00410 //  GLuint BUFSIZE = 512;
00411 //  GLint selectBuf[ BUFSIZE ];
00412 //  GLint hits;
00413     GLint viewport[4];
00414     glGetIntegerv( GL_VIEWPORT, viewport );
00415     glSelectBuffer( BUFSIZE, selectBuf );
00416     (void) glRenderMode( GL_SELECT );
00417     glInitNames();
00418     glPushName( 0 );
00419     glMatrixMode( GL_PROJECTION );
00420     glPushMatrix();
00421     glLoadIdentity();
00422     // Create 5x5 pixel picking region near cursor location
00423     gluPickMatrix( x, viewport[3] - y, 1.0, 1.0, viewport );
00424     glOrtho( left, right, bottom, top, near, far );
00425     glMatrixMode( GL_MODELVIEW );
00426     glPushMatrix();
00427     glLoadIdentity();
00428     // Draw All Faces
00429     for ( int i = 0; i < m_iNoFaces; i++ )
00430     {
00431         glLoadName(i);
00432         glBegin( OpenGL::Enum::POLYGON );
00433         for ( int j = 0; j < m_prFace[i].GetNoVertices(); ++j )
00434         {
00435             // Draw the vertex
00436             glVertex3f ( 
00437                 static_cast<float>( m_prXVertex[ m_prFace[i].GetVertexNo( j ) ][0] ), 
00438                 static_cast<float>( m_prXVertex[ m_prFace[i].GetVertexNo( j ) ][1] ), 
00439                 static_cast<float>( m_prXVertex[ m_prFace[i].GetVertexNo( j ) ][2] ) );
00440         }
00441         glEnd();
00442     }
00443     glPopMatrix();
00444     glMatrixMode( GL_PROJECTION );
00445     glPopMatrix();
00446     glMatrixMode( GL_MODELVIEW );
00447 
00448     hits = glRenderMode( GL_RENDER );
00449     ProcessHits( hits, selectBuf );
00450     glutPostRedisplay();
00451 }
00452 //-----------------------------------------------------------------------------
00453 // Process Hits
00454 template <typename T>
00455 void ExtendedOpenGLPNTriangleVolPresModel<T>::ProcessHits ( GLint hits, GLuint buffer[] ) 
00456 {
00457     GLuint names, *ptr;
00458     ptr = (GLuint *) buffer;
00459     for ( int i = 0; i < hits; ++i ) {
00460         names = *ptr;
00461         ++ptr;
00462         ++ptr;
00463         ++ptr;
00464         for ( int j = 0; j < static_cast<int>(names); ++j ) {
00465             m_pbFaceFixed[*ptr] = true;
00466             for ( int k = 0; k < m_prFace[*ptr].GetNoVertices(); ++k ) {
00467                 m_pbVertexFixed[ m_prFace[*ptr].GetVertexNo(k) ] = true;
00468             }
00469             ++ptr;
00470         }
00471     }
00472 }
00473 //-----------------------------------------------------------------------------
00474 
00475 //-----------------------------------------------------------------------------
00476 // Override PreserveVolumeByVertexNormals fns of class TAPsVolPresPolygonalModel
00477 //-----------------------------------------------------------------------------
00478 // Preserve Volume using Vertex Normals
00479 // If not a triangle face find the center (average) point, then virtually crete 
00480 // triangle fan from the center point for volume calculations
00481 // Using d3mom0 ( v, dv, wgt ) subroutine to calculate a volume contribution by 
00482 // the triangle(s), dv zeroes mean the point is fixed, else the point will have 
00483 // to be moved in order to preserve the volume of the model.
00484 template <typename T>
00485 void ExtendedOpenGLPNTriangleVolPresModel<T>::PreserveVolumeByVertexNormals ( T wgt[4] )
00486 {
00487     wgt[0] = wgt[1] = wgt[2] = wgt[3] = 0;
00488     T  v[3][3];
00489     T dv[3][3];
00490 
00491     for ( int i = 0; i < m_iNoFaces; ++i ) {
00492         // Tri Face
00493         if ( m_prFace[i].GetNoVertices() == 3 ) {
00494             v[0][0] = m_prXVertex[ m_prFace[i].GetVertexNo(0) ][0];
00495             v[0][1] = m_prXVertex[ m_prFace[i].GetVertexNo(0) ][1];
00496             v[0][2] = m_prXVertex[ m_prFace[i].GetVertexNo(0) ][2];
00497             v[1][0] = m_prXVertex[ m_prFace[i].GetVertexNo(1) ][0];
00498             v[1][1] = m_prXVertex[ m_prFace[i].GetVertexNo(1) ][1];
00499             v[1][2] = m_prXVertex[ m_prFace[i].GetVertexNo(1) ][2];
00500             v[2][0] = m_prXVertex[ m_prFace[i].GetVertexNo(2) ][0];
00501             v[2][1] = m_prXVertex[ m_prFace[i].GetVertexNo(2) ][1];
00502             v[2][2] = m_prXVertex[ m_prFace[i].GetVertexNo(2) ][2];
00503             //if ( true ) {
00504             if ( !m_bFlagFixed[ m_prFace[i].GetVertexNo(0) ] ) {
00505                 dv[0][0] = m_prXVertex[ m_prFace[i].GetVertexNo(0) ].GetNormal().GetX();
00506                 dv[0][1] = m_prXVertex[ m_prFace[i].GetVertexNo(0) ].GetNormal().GetY();
00507                 dv[0][2] = m_prXVertex[ m_prFace[i].GetVertexNo(0) ].GetNormal().GetZ();
00508             }
00509             else {
00510                 dv[0][0] = dv[0][1] = dv[0][2] = Math<T>::ZERO;
00511             }
00512             //if ( true ) {
00513             if ( !m_bFlagFixed[ m_prFace[i].GetVertexNo(1) ] ) {
00514                 dv[1][0] = m_prXVertex[ m_prFace[i].GetVertexNo(1) ].GetNormal().GetX();
00515                 dv[1][1] = m_prXVertex[ m_prFace[i].GetVertexNo(1) ].GetNormal().GetY();
00516                 dv[1][2] = m_prXVertex[ m_prFace[i].GetVertexNo(1) ].GetNormal().GetZ();
00517             }
00518             else {
00519                 dv[1][0] = dv[1][1] = dv[1][2] = Math<T>::ZERO;
00520             }
00521             //if ( true ) {
00522             if ( !m_bFlagFixed[ m_prFace[i].GetVertexNo(2) ] ) {
00523                 dv[2][0] = m_prXVertex[ m_prFace[i].GetVertexNo(2) ].GetNormal().GetX();
00524                 dv[2][1] = m_prXVertex[ m_prFace[i].GetVertexNo(2) ].GetNormal().GetY();
00525                 dv[2][2] = m_prXVertex[ m_prFace[i].GetVertexNo(2) ].GetNormal().GetZ();
00526             }
00527             else {
00528                 dv[2][0] = dv[2][1] = dv[2][2] = Math<T>::ZERO;
00529             }
00530             d3mom0 ( v, dv, wgt );  // call subroutine
00531         }
00532         // Not Tri Face
00533         else {
00534             //----------------------------------------------
00535             // Find the avg (center) vertex of the face
00536             XVertex<T> avgXVertex;  // default ctor --> position and normal are zeros
00537             bool isOneFixed = false;    // if at least a vertex of the face is fixed,
00538                                         // then fix all other vertices of the faces
00539             for ( int j = 0; j < m_prFace[i].GetNoVertices(); ++j ) {
00540                 if ( !isOneFixed ) {
00541                     isOneFixed = m_bFlagFixed[m_prFace[i].GetVertexNo(j)];
00542                 }
00543                 avgXVertex.SetPosition(   avgXVertex.GetPosition() 
00544                                         + m_prXVertex[m_prFace[i].GetVertexNo(j)].GetPosition() );
00545                 avgXVertex.SetNormal(     avgXVertex.GetNormal() 
00546                                         + m_prXVertex[m_prFace[i].GetVertexNo(j)].GetNormal() );
00547             }
00548             avgXVertex.SetPosition( avgXVertex.GetPosition() / static_cast<T>(m_prFace[i].GetNoVertices()) );
00549             avgXVertex.GetNormal().Normalized();
00550             if ( !isOneFixed ) {
00551                 //----------------------------------------------
00552                 int k = m_prFace[i].GetNoVertices() - 1;
00553                 for ( int j = 0; j < m_prFace[i].GetNoVertices(); ++j ) {
00554                     v[0][0] = m_prXVertex[ m_prFace[i].GetVertexNo(k) ][0];
00555                     v[0][1] = m_prXVertex[ m_prFace[i].GetVertexNo(k) ][1];
00556                     v[0][2] = m_prXVertex[ m_prFace[i].GetVertexNo(k) ][2];
00557                     v[1][0] = m_prXVertex[ m_prFace[i].GetVertexNo(j) ][0];
00558                     v[1][1] = m_prXVertex[ m_prFace[i].GetVertexNo(j) ][1];
00559                     v[1][2] = m_prXVertex[ m_prFace[i].GetVertexNo(j) ][2];
00560                     v[2][0] = avgXVertex[0];
00561                     v[2][1] = avgXVertex[1];
00562                     v[2][2] = avgXVertex[2];
00563 
00564                     dv[0][0] = m_prXVertex[ m_prFace[i].GetVertexNo(k) ].GetNormal().GetX();
00565                     dv[0][1] = m_prXVertex[ m_prFace[i].GetVertexNo(k) ].GetNormal().GetY();
00566                     dv[0][2] = m_prXVertex[ m_prFace[i].GetVertexNo(k) ].GetNormal().GetZ();
00567                     dv[1][0] = m_prXVertex[ m_prFace[i].GetVertexNo(j) ].GetNormal().GetX();
00568                     dv[1][1] = m_prXVertex[ m_prFace[i].GetVertexNo(j) ].GetNormal().GetY();
00569                     dv[1][2] = m_prXVertex[ m_prFace[i].GetVertexNo(j) ].GetNormal().GetZ();
00570                     dv[2][0] = avgXVertex.GetNormal().GetX();
00571                     dv[2][1] = avgXVertex.GetNormal().GetY();
00572                     dv[2][2] = avgXVertex.GetNormal().GetZ();
00573 
00574                     d3mom0 ( v, dv, wgt );  // call subroutine
00575                     k = j;
00576                 }
00577             }
00578             else {
00579                 //----------------------------------------------
00580                 int k = m_prFace[i].GetNoVertices() - 1;
00581                 for ( int j = 0; j < m_prFace[i].GetNoVertices(); ++j ) {
00582                     m_bFlagFixed[ m_prFace[i].GetVertexNo(j) ] = true;
00583                     v[0][0] = m_prXVertex[ m_prFace[i].GetVertexNo(k) ][0];
00584                     v[0][1] = m_prXVertex[ m_prFace[i].GetVertexNo(k) ][1];
00585                     v[0][2] = m_prXVertex[ m_prFace[i].GetVertexNo(k) ][2];
00586                     v[1][0] = m_prXVertex[ m_prFace[i].GetVertexNo(j) ][0];
00587                     v[1][1] = m_prXVertex[ m_prFace[i].GetVertexNo(j) ][1];
00588                     v[1][2] = m_prXVertex[ m_prFace[i].GetVertexNo(j) ][2];
00589                     v[2][0] = avgXVertex[0];
00590                     v[2][1] = avgXVertex[1];
00591                     v[2][2] = avgXVertex[2];
00592 
00593                     dv[0][0] = dv[0][1] = dv[0][2] =
00594                     dv[1][0] = dv[1][1] = dv[1][2] =
00595                     dv[2][0] = dv[2][1] = dv[2][2] = Math<T>::ZERO;
00596 
00597                     d3mom0 ( v, dv, wgt );  // call subroutine
00598                     k = j;
00599                 }
00600             }
00601         }
00602     }
00603 
00604     T diffVolume = wgt[0] - m_tVolume;
00605     if ( diffVolume != 0 ) {
00606     //if ( fabs( diffVolume ) > Math<T>::ROUND_ERROR ) {
00607         T sigma = SP_Maths::rootOfCubicPolynomial( wgt[3], wgt[2], wgt[1], diffVolume, 1 );
00608         for ( int i = 0; i < m_iNoVertices; ++i ) {
00609             if ( !m_bFlagFixed[i] ) {
00610                 m_prXVertex[i].SetPosition( m_prXVertex[i].GetPosition() + sigma * m_prXVertex[i].GetNormal() );
00611             }
00612         }
00613     }
00614     
00615     // Recalculate Normals
00616     CalAndSetFaceNormalsNotNormalized();
00617     CalAndSetVertexNormals();
00618     NormalizeFaceNormals();
00619     // Recalculate PN-Triangles
00620     CalculatePNTriangleCoefficients();
00621     CalculatePNTriangleNormals();
00622 
00623     // FOR CHECKING
00624     //CalVolume2();
00625 }
00626 //-----------------------------------------------------------------------------
00627 // CalVolumeOfPNTriangleMesh
00628 // Call CalCubicTriPatchVolume ( v, dv, wgt ) subroutine to calculate a volume 
00629 // contribution by the (cubic Bezier) triangle(s) with all dv zeroes (zero moment)
00630 template <typename T>
00631 T ExtendedOpenGLPNTriangleVolPresModel<T>::CalVolumeOfPNTriangleMesh ()
00632 {
00633     //-------------------------------------------------------------------------
00634     int faceIdx, normIdx;
00635     T wgt[4] = { 0, 0, 0, 0 };
00636     T  v[10][3];
00637 //  T dv[10][3];
00638     //-------------------------------------------------------------------------
00639     for ( int i = 0; i < m_iNoFaces; ++i ) {
00640         faceIdx = i*30;
00641         normIdx = i*18;
00642         //----------------------------------------------------------------------
00643         // Tri Face
00645         for ( int p = 0; p < 10; ++p ) {
00646             v[p][0] = m_prPNTriCoef[ faceIdx + p*3     ];
00647             v[p][1] = m_prPNTriCoef[ faceIdx + p*3 + 1 ];
00648             v[p][2] = m_prPNTriCoef[ faceIdx + p*3 + 2 ];
00649         }
00650         //*/
00651 
00652         /*
00653         for ( int n = 0; n < 6; ++n ) {
00654             dv[n][0] = m_prPNTriNormal[ normIdx + n     ];
00655             dv[n][1] = m_prPNTriNormal[ normIdx + n + 1 ];
00656             dv[n][2] = m_prPNTriNormal[ normIdx + n + 2 ];
00657         }
00658         */
00659         //----------------------------------------------------------------
00660         //CalCubicTriPatchVolume ( v, dv, wgt );    // call subroutine
00661         wgt[0] += CalCubicTriPatchVolume ( v );     // call subroutine
00662     }
00663 
00664     //m_tVolume = wgt[0];   // update the volume of the model
00665     return wgt[0];
00666 }
00667 //-----------------------------------------------------------------------------
00668 // IN : coefficients  v  of degree  3  patch
00669 //   and coefficients dv  of the pertubation
00670 //   (the smaller dv  the harder it is to move v)
00671 // OUT: weights   wgt  of moment 0: 
00672 //    vol = wgt[0]+wgt[1]*s+wgt[2]*s^2+wgt[3]*s^3 
00673 // generated by Jorg Peters and Maple
00674 template <typename T>
00675 T ExtendedOpenGLPNTriangleVolPresModel<T>::CalCubicTriPatchVolume (
00676     T v[10][3]      // I/P: 10 Bezier Ctrl Pts
00677 )
00678 {
00679     T t[505];
00680     //--------------------------------------------
00681       t[1] = v[5][0]*v[7][1];
00682       t[3] = v[8][0]*v[4][1];
00683       t[5] = v[4][0]*v[8][1];
00684       t[7] = v[7][0]*v[5][1];
00685       t[10] = 3.0/2.0*v[1][0]*v[9][1];
00686       t[12] = 3.0/2.0*v[9][0]*v[1][1];
00687       t[13] = v[6][0]*v[7][1];
00688       t[15] = v[8][0]*v[5][1];
00689       t[17] = v[5][0]*v[8][1];
00690       t[19] = v[7][0]*v[6][1];
00691       t[22] = 3.0/2.0*v[2][0]*v[9][1];
00692       t[23] = v[2][0]*v[7][1];
00693       t[24] = 3.0/2.0*t[23];
00694       t[25] = v[6][0]*v[4][1];
00695       t[27] = v[8][0]*v[1][1];
00696       t[28] = 3.0/2.0*t[27];
00697       t[29] = v[1][0]*v[8][1];
00698       t[30] = 3.0/2.0*t[29];
00699       t[31] = v[4][0]*v[6][1];
00700       t[34] = 3.0/2.0*v[9][0]*v[2][1];
00701       t[35] = v[7][0]*v[2][1];
00702       t[36] = 3.0/2.0*t[35];
00703       t[37] = -3.0/2.0*t[1]+3.0*t[3]-3.0*t[5]+3.0/2.0*t[7]-t[10]+t[12]+3.0*t[13]-3.0/2.0*t[15]+
00704 3.0/2.0*t[17]-3.0*t[19]+t[22]-t[24]-3.0*t[25]-t[28]+t[30]+3.0*t[31]-t[34]+t[36];
00705       t[41] = v[5][0]*v[9][1];
00706       t[42] = v[7][0]*v[8][1];
00707       t[43] = v[8][0]*v[7][1];
00708       t[45] = v[9][0]*v[5][1];
00709       t[46] = v[6][0]*v[9][1]-t[13]-t[41]-t[15]-t[42]+t[43]+t[17]-v[9][0]*v[6][1]+t[45]+t[19];
00710       t[49] = v[1][0]*v[6][1];
00711       t[54] = 3.0/2.0*v[0][0]*v[6][1];
00712       t[55] = v[2][0]*v[5][1];
00713       t[59] = v[1][0]*v[5][1];
00714       t[62] = 3.0/2.0*v[3][0]*v[4][1];
00715       t[65] = v[2][0]*v[4][1];
00716       t[68] = 3.0/2.0*v[4][0]*v[3][1];
00717       t[69] = v[4][0]*v[2][1];
00718       t[73] = v[5][0]*v[2][1];
00719       t[75] = v[5][0]*v[1][1];
00720       t[77] = v[6][0]*v[1][1];
00721       t[80] = 3.0/2.0*v[6][0]*v[0][1];
00722       t[81] = 3.0/2.0*t[49]+9.0/2.0*v[1][0]*v[2][1]-t[54]+6.0*t[55]-9.0/2.0*v[2][0]*v
00723 [1][1]-6.0*t[59]+t[62]-3.0/2.0*v[3][0]*v[0][1]-3.0/2.0*t[65]-t[68]+3.0/2.0*t[69]+3.0/2.0*
00724 v[0][0]*v[3][1]-6.0*t[73]+6.0*t[75]-3.0/2.0*t[77]+t[80];
00725       t[87] = 3.0/2.0*v[3][0]*v[7][1];
00726       t[90] = v[6][0]*v[5][1];
00727       t[95] = v[8][0]*v[2][1];
00728       t[99] = v[2][0]*v[8][1];
00729       t[102] = v[5][0]*v[6][1];
00730       t[107] = 3.0/2.0*v[7][0]*v[3][1];
00731       t[108] = 3.0/2.0*v[3][0]*v[9][1]-t[87]-t[22]+9.0/2.0*v[6][0]*v[8][1]-6.0*t[90]
00732 -6.0*t[17]-9.0/2.0*v[8][0]*v[6][1]-3.0/2.0*t[95]-3.0/2.0*t[19]+3.0/2.0*t[13]+3.0/2.0*
00733 t[99]+6.0*t[15]+6.0*t[102]-3.0/2.0*v[9][0]*v[3][1]+t[34]+t[107];
00734       t[113] = 3.0/2.0*t[25];
00735       t[116] = 3.0/2.0*t[31];
00736       t[125] = -t[24]+t[113]+3.0*t[27]-3.0*t[29]-t[116]+t[36]+t[87]+3.0/2.0*t[90]-3.0*t[95]+3.0*t[99]
00737 -3.0/2.0*t[102]-t[107]-3.0/2.0*t[55]-t[62]+3.0/2.0*t[73]-3.0*t[77]+3.0*t[49]+t[68];
00738       t[129] = v[3][0]*v[5][1];
00739       t[130] = v[6][0]*v[2][1];
00740       t[131] = v[2][0]*v[6][1];
00741       t[133] = v[5][0]*v[3][1];
00742       t[134] = v[3][0]*v[8][1]-t[129]-t[99]-t[130]-t[102]+t[90]+t[131]-v[8][0]*v[3][1]+t[95]+
00743 t[133];
00744       t[137] = v[1][0]*v[7][1];
00745       t[142] = v[5][0]*v[4][1];
00746       t[148] = 3.0/2.0*v[8][0]*v[0][1];
00747       t[153] = 3.0/2.0*v[0][0]*v[8][1];
00748       t[155] = v[4][0]*v[5][1];
00749       t[159] = v[7][0]*v[1][1];
00750       t[161] = t[10]-3.0/2.0*t[137]-3.0/2.0*v[0][0]*v[9][1]+6.0*t[1]-6.0*t[142]-9.0/2.0*v
00751 [4][0]*v[7][1]+3.0/2.0*t[3]-t[148]+9.0/2.0*v[7][0]*v[4][1]-3.0/2.0*t[5]+t[153]-6.0*t[7]+
00752 6.0*t[155]-t[12]+3.0/2.0*v[9][0]*v[0][1]+3.0/2.0*t[159];
00753       t[170] = t[41]-t[1]-v[4][0]*v[9][1]+t[43]-t[3]-t[42]+t[5]-t[45]+v[9][0]*v[4][1]+t[7];
00754       t[179] = v[8][0]*v[9][1]-t[43]-v[7][0]*v[9][1]-v[9][0]*v[8][1]+v[9][0]*v[7]
00755 [1]+t[42];
00756       t[184] = t[131]-t[49]+t[129]-v[3][0]*v[1][1]-t[55]-t[133]+t[73]+v[1][0]*v[3][1]-t[130]+
00757 t[77];
00758       t[195] = v[5][2]*t[37]/210.0+v[1][2]*t[46]/280.0+v[7][2]*t[81]/840.0+v[2][2]*t[108]
00759 /420.0+v[2][2]*t[37]/420.0+v[9][2]*t[125]/630.0+v[9][2]*t[134]/140.0+v[9][2]*t[161]/
00760 252.0+v[9][2]*t[37]/252.0+v[9][2]*t[108]/252.0+v[9][2]*t[170]/28.0+v[9][2]*t[46]/28.0+v
00761 [9][2]*t[179]/8.0+3.0/560.0*v[4][2]*t[184]+v[4][2]*t[81]/420.0+v[3][2]*t[179]/280.0+v
00762 [0][2]*t[108]/2520.0+v[1][2]*t[161]/420.0;
00763       t[228] = -3.0*t[137]+3.0/2.0*t[142]+t[148]-t[153]-3.0/2.0*t[155]+3.0*t[159]+3.0*t[23]+
00764 t[113]-t[28]+t[30]-t[116]-3.0*t[35]+3.0/2.0*t[59]-3.0*t[65]-3.0/2.0*t[75]-t[80]+t[54]+3.0*t[69];
00765       t[235] = v[1][0]*v[4][1];
00766       t[237] = v[5][0]*v[0][1];
00767       t[238] = v[0][0]*v[5][1];
00768       t[240] = v[4][0]*v[1][1];
00769       t[241] = t[137]-t[235]-v[0][0]*v[7][1]+t[142]-t[237]-t[155]+t[238]-t[159]+v[7][0]*v[0][1]
00770 +t[240];
00771       t[254] = v[3][0]*v[6][1]-v[3][0]*v[2][1]-t[131]-v[6][0]*v[3][1]+t[130]+v[2][0]*
00772 v[3][1];
00773       t[257] = v[2][2]*t[179]/280.0+v[1][2]*t[37]/420.0+v[1][2]*t[108]/840.0+v[2][2]*
00774 t[161]/840.0+v[0][2]*t[170]/140.0+3.0/560.0*v[7][2]*t[134]+v[5][2]*t[170]/70.0+v[1][2]*
00775 t[179]/280.0+v[0][2]*t[179]/280.0+v[3][2]*t[170]/560.0+v[2][2]*t[170]/280.0+v[0][2]*
00776 t[228]/252.0+3.0/560.0*v[1][2]*t[170]+v[0][2]*t[46]/560.0+v[5][2]*t[241]/70.0+v[4][2]*
00777 t[134]/280.0+v[4][2]*t[228]/210.0+v[4][2]*t[241]/28.0+3.0/56.0*v[6][2]*t[254];
00778       t[275] = t[59]-t[238]+t[65]-v[2][0]*v[0][1]-t[235]-t[69]+t[240]+v[0][0]*v[2][1]-t[75]+
00779 t[237];
00780       t[284] = t[235]-v[1][0]*v[0][1]-v[0][0]*v[4][1]-t[240]+v[4][0]*v[0][1]+v[0][0]*
00781 v[1][1];
00782       t[305] = v[6][2]*t[184]/56.0+v[6][2]*t[81]/420.0+v[5][2]*t[254]/56.0+v[5][2]*t[184]
00783 /70.0+v[3][2]*t[108]/252.0+v[5][2]*t[81]/280.0+v[3][2]*t[37]/630.0+v[5][2]*t[275]/70.0+
00784 v[3][2]*t[161]/2520.0+v[5][2]*t[284]/56.0+v[4][2]*t[254]/280.0+v[6][2]*t[241]/280.0+v
00785 [5][2]*t[134]/70.0+v[5][2]*t[125]/210.0+v[0][2]*t[125]/630.0+v[5][2]*t[228]/210.0+v[1]
00786 [2]*t[125]/280.0+v[1][2]*t[134]/140.0+v[1][2]*t[228]/210.0;
00787       t[344] = v[0][2]*t[134]/560.0+v[1][2]*t[241]/56.0+v[0][2]*t[161]/252.0+v[0][2]*
00788 t[37]/630.0+v[2][2]*t[125]/210.0+v[2][2]*t[134]/56.0+v[3][2]*t[241]/560.0+v[2][2]*t[228]/
00789 280.0+v[3][2]*t[228]/630.0+v[3][2]*t[125]/252.0+v[3][2]*t[134]/28.0+v[2][2]*t[241]/
00790 140.0+v[3][2]*t[46]/140.0+v[4][2]*t[37]/280.0+v[4][2]*t[161]/140.0+v[6][2]*t[134]/28.0+
00791 v[6][2]*t[125]/210.0+v[6][2]*t[228]/420.0+3.0/560.0*v[2][2]*t[46];
00792       t[383] = v[6][2]*t[161]/840.0+v[5][2]*t[108]/280.0+v[5][2]*t[161]/280.0+v[4][2]*
00793 t[108]/840.0+v[4][2]*t[275]/56.0+3.0/56.0*v[4][2]*t[284]+3.0/560.0*v[6][2]*t[275]+v[6]
00794 [2]*t[284]/280.0+v[9][2]*t[228]/630.0+v[9][2]*t[241]/140.0+v[9][2]*t[254]/280.0+v[9][2]
00795 *t[184]/560.0+v[9][2]*t[81]/2520.0+v[9][2]*t[275]/560.0+v[9][2]*t[284]/280.0+3.0/56.0*v
00796 [8][2]*t[179]+3.0/56.0*v[7][2]*t[179]+v[8][2]*t[46]/28.0;
00797       t[422] = v[8][2]*t[170]/56.0+v[7][2]*t[46]/56.0+v[7][2]*t[170]/28.0+v[8][2]*t[108]/
00798 140.0+v[8][2]*t[37]/210.0+v[8][2]*t[161]/420.0+v[7][2]*t[108]/420.0+v[7][2]*t[37]/210.0
00799 +v[7][2]*t[161]/140.0+3.0/140.0*v[8][2]*t[134]+v[8][2]*t[125]/280.0+v[8][2]*t[228]/
00800 420.0+3.0/560.0*v[8][2]*t[241]+v[7][2]*t[125]/420.0+v[7][2]*t[228]/280.0+3.0/140.0*v
00801 [7][2]*t[241]+v[8][2]*t[254]/56.0+v[8][2]*t[184]/140.0+v[8][2]*t[81]/840.0;
00802       t[462] = v[8][2]*t[275]/280.0+v[8][2]*t[284]/280.0+v[7][2]*t[254]/280.0+v[7][2]*
00803 t[184]/280.0+v[7][2]*t[275]/140.0+v[7][2]*t[284]/56.0+v[6][2]*t[179]/56.0+v[5][2]*t[179]/
00804 56.0+v[4][2]*t[179]/56.0+3.0/140.0*v[6][2]*t[46]+v[6][2]*t[170]/140.0+v[5][2]*t[46]/
00805 70.0+v[0][2]*t[284]/8.0+v[0][2]*t[275]/28.0+v[4][2]*t[46]/140.0+3.0/140.0*v[4][2]*
00806 t[170]+v[6][2]*t[108]/140.0+v[6][2]*t[37]/280.0+v[0][2]*t[81]/252.0;
00807       t[501] = v[0][2]*t[184]/140.0+v[0][2]*t[254]/280.0+3.0/56.0*v[1][2]*t[284]+v[1]
00808 [2]*t[275]/28.0+v[1][2]*t[81]/140.0+3.0/140.0*v[1][2]*t[184]+v[1][2]*t[254]/56.0+v[2]
00809 [2]*t[284]/56.0+3.0/140.0*v[2][2]*t[275]+v[2][2]*t[81]/140.0+v[2][2]*t[184]/28.0+3.0/
00810 56.0*v[2][2]*t[254]+v[3][2]*t[284]/280.0+v[3][2]*t[275]/140.0+v[3][2]*t[81]/252.0+v[3]
00811 [2]*t[184]/28.0+v[3][2]*t[254]/8.0+v[0][2]*t[241]/28.0+v[4][2]*t[125]/420.0;
00812       t[504] = t[195]+t[257]+t[305]+t[344]+t[383]+t[422]+t[462]+t[501];
00813     //----------------------------
00814     return t[504];
00815 }
00816 //-----------------------------------------------------------------------------
00817 // IN : coefficients  v  of degree  3  patch
00818 //   and coefficients dv  of the pertubation
00819 //   (the smaller dv  the harder it is to move v)
00820 // OUT: weights   wgt  of moment 0: 
00821 //    vol = wgt[0]+wgt[1]*s+wgt[2]*s^2+wgt[3]*s^3 
00822 // generated by Jorg Peters and Maple
00823 template <typename T>
00824 void ExtendedOpenGLPNTriangleVolPresModel<T>::CalCubicTriPatchVolume (
00825     T v[10][3],     // I/P: 10 Bezier Ctrl Pts
00826     T dv[10][3],    // I/P: 10 Normals
00827     T wgt[4]        // O/P: weight
00828 )
00829 {
00830     T t[9910], s1;
00831     /*wgt[0] ----------------------------------------- */
00832       t[1] = v[5][2];
00833       t[2] = v[0][0];
00834       t[3] = t[1]*t[2];
00835       t[4] = v[3][1];
00836       t[7] = v[1][2];
00837       t[8] = t[7]*t[2];
00838       t[9] = v[8][1];
00839       t[12] = v[2][2];
00840       t[13] = v[5][0];
00841       t[14] = t[12]*t[13];
00842       t[17] = v[9][2];
00843       t[18] = v[3][0];
00844       t[19] = t[17]*t[18];
00845       t[20] = v[4][1];
00846       t[23] = v[4][2];
00847       t[24] = v[8][0];
00848       t[25] = t[23]*t[24];
00849       t[26] = v[7][1];
00850       t[29] = v[3][2];
00851       t[30] = v[6][0];
00852       t[31] = t[29]*t[30];
00853       t[34] = v[4][0];
00854       t[35] = t[12]*t[34];
00855       t[38] = v[6][2];
00856       t[39] = v[9][0];
00857       t[40] = t[38]*t[39];
00858       t[43] = v[7][2];
00859       t[44] = t[43]*t[13];
00860       t[45] = v[1][1];
00861       t[48] = t[43]*t[24];
00862       t[51] = v[2][0];
00863       t[52] = t[29]*t[51];
00864       t[53] = v[9][1];
00865       t[56] = t[12]*t[2];
00866       t[59] = 3.0/560.0*t[3]*t[4]-t[8]*t[9]/280.0-t[14]*t[4]/56.0-t[19]*t[20]/560.0+3.0/280.0*t[25]
00867 *t[26]+t[31]*t[26]/280.0-t[35]*t[4]/280.0-t[40]*t[9]/56.0-3.0/560.0*t[44]*t[45]-3.0/280.0*t[48]*t[20]
00868 -t[52]*t[53]/280.0-t[56]*t[53]/560.0;
00869       t[60] = v[7][0];
00870       t[61] = t[17]*t[60];
00871       t[62] = v[6][1];
00872       t[65] = v[0][2];
00873       t[66] = t[65]*t[39];
00874       t[69] = t[7]*t[34];
00875       t[72] = v[8][2];
00876       t[73] = t[72]*t[2];
00877       t[76] = t[65]*t[13];
00878       t[79] = t[43]*t[39];
00879       t[82] = t[7]*t[51];
00880       t[85] = t[1]*t[34];
00881       t[86] = v[0][1];
00882       t[91] = t[43]*t[30];
00883       t[94] = t[7]*t[18];
00884       t[95] = v[2][1];
00885       t[98] = v[1][0];
00886       t[99] = t[7]*t[98];
00887       t[102] = t[61]*t[62]/56.0-t[66]*t[4]/1680.0-3.0/560.0*t[69]*t[4]-t[73]*t[20]/280.0+3.0/
00888 560.0*t[76]*t[53]+t[79]*t[20]/28.0-9.0/280.0*t[82]*t[45]+t[85]*t[86]/56.0+t[61]*t[20]/56.0+3.0/
00889 280.0*t[91]*t[9]-t[94]*t[95]/56.0+9.0/280.0*t[99]*t[95];
00890       t[106] = t[1]*t[30];
00891       t[109] = t[72]*t[18];
00892       t[112] = t[65]*t[30];
00893       t[115] = t[23]*t[30];
00894       t[118] = t[23]*t[60];
00895       t[121] = t[38]*t[24];
00896       t[124] = t[65]*t[2];
00897       t[127] = t[65]*t[34];
00898       t[130] = t[7]*t[60];
00899       t[133] = t[43]*t[98];
00900       t[136] = t[38]*t[51];
00901       t[139] = -3.0/56.0*t[79]*t[9]-t[106]*t[86]/560.0-t[109]*t[95]/56.0-3.0/560.0*t[112]*t[95]-
00902 t[115]*t[4]/280.0+t[118]*t[86]/28.0+3.0/560.0*t[121]*t[45]+t[124]*t[45]/8.0-t[127]*t[53]/140.0-t[130]
00903 *t[53]/280.0+3.0/560.0*t[133]*t[9]-3.0/560.0*t[136]*t[26];
00904       t[140] = t[1]*t[24];
00905       t[143] = t[17]*t[13];
00906       t[146] = t[72]*t[30];
00907       t[149] = t[72]*t[39];
00908       t[158] = t[17]*t[2];
00909       t[163] = t[65]*t[24];
00910       t[166] = t[12]*t[98];
00911       t[171] = -3.0/560.0*t[140]*t[95]+t[143]*t[62]/70.0-3.0/280.0*t[146]*t[95]-3.0/280.0*
00912 t[149]*t[4]+3.0/56.0*t[79]*t[26]+t[133]*t[4]/280.0-t[79]*t[45]/280.0+t[158]*t[4]/1680.0-3.0/560.0*
00913 t[143]*t[86]-t[163]*t[95]/280.0+9.0/280.0*t[166]*t[95]+t[158]*t[62]/560.0;
00914       t[176] = t[17]*t[51];
00915       t[179] = t[65]*t[60];
00916       t[186] = t[38]*t[98];
00917       t[189] = t[7]*t[30];
00918       t[190] = v[5][1];
00919       t[195] = t[65]*t[51];
00920       t[198] = t[7]*t[39];
00921       t[203] = t[17]*t[34];
00922       t[206] = 3.0/56.0*t[149]*t[26]-t[176]*t[20]/280.0-t[179]*t[62]/280.0-t[76]*t[62]/560.0-3.0/
00923 560.0*t[56]*t[62]-3.0/560.0*t[186]*t[20]+3.0/560.0*t[189]*t[190]+t[76]*t[26]/70.0+3.0/560.0*
00924 t[195]*t[62]+3.0/560.0*t[198]*t[20]+t[44]*t[53]/56.0+t[203]*t[62]/140.0;
00925       t[213] = t[29]*t[24];
00926       t[220] = t[7]*t[13];
00927       t[227] = t[23]*t[2];
00928       t[230] = t[72]*t[13];
00929       t[235] = -t[66]*t[95]/560.0-3.0/56.0*t[8]*t[20]+t[146]*t[53]/28.0+t[213]*t[190]/70.0-t[85]*
00930 t[53]/70.0-3.0/560.0*t[35]*t[62]-9.0/560.0*t[220]*t[95]-t[3]*t[9]/560.0-3.0/560.0*t[35]*t[190]
00931 -3.0/56.0*t[227]*t[20]-3.0/560.0*t[230]*t[20]-3.0/560.0*t[76]*t[4];
00932       t[243] = t[72]*t[34];
00933       t[248] = t[38]*t[34];
00934       t[251] = t[38]*t[13];
00935       t[256] = t[38]*t[2];
00936       t[259] = t[1]*t[98];
00937       t[266] = -3.0/560.0*t[186]*t[190]-t[179]*t[95]/140.0-t[52]*t[9]/56.0+t[243]*t[86]/280.0-
00938 t[124]*t[26]/28.0-3.0/560.0*t[248]*t[26]+3.0/280.0*t[251]*t[95]+t[213]*t[45]/140.0+t[256]*t[45]/
00939 280.0+t[259]*t[4]/70.0+3.0/280.0*t[82]*t[62]-t[19]*t[95]/280.0;
00940       t[271] = t[23]*t[39];
00941       t[274] = t[12]*t[60];
00942       t[279] = t[17]*t[98];
00943       t[282] = t[23]*t[51];
00944       t[289] = t[43]*t[2];
00945       t[292] = t[29]*t[39];
00946       t[295] = t[1]*t[60];
00947       t[298] = t[227]*t[190]/56.0+t[195]*t[9]/280.0-t[271]*t[95]/280.0+3.0/560.0*t[274]*t[20]-
00948 t[109]*t[45]/140.0-3.0/560.0*t[279]*t[20]+3.0/560.0*t[282]*t[190]+t[112]*t[9]/560.0+t[149]*t[45]/
00949 280.0-3.0/140.0*t[289]*t[26]-t[292]*t[62]/140.0+3.0/560.0*t[295]*t[45];
00950       t[302] = t[12]*t[24];
00951       t[305] = t[29]*t[34];
00952       t[320] = t[65]*t[18];
00953       t[329] = 3.0/560.0*t[302]*t[45]+3.0/560.0*t[305]*t[45]+t[248]*t[4]/280.0-t[76]*t[45]/56.0-
00954 t[25]*t[4]/280.0+t[198]*t[26]/280.0-t[195]*t[45]/56.0-3.0/280.0*t[136]*t[190]-t[320]*t[86]/168.0-
00955 t[112]*t[45]/280.0-t[198]*t[95]/560.0+t[195]*t[53]/560.0;
00956       t[334] = t[1]*t[51];
00957       t[341] = t[7]*t[24];
00958       t[350] = t[23]*t[98];
00959       t[357] = 3.0/560.0*t[82]*t[26]+t[94]*t[26]/280.0+t[334]*t[53]/560.0+t[94]*t[53]/560.0-t[334]*
00960 t[86]/70.0-3.0/560.0*t[341]*t[62]-t[52]*t[20]/280.0-t[56]*t[26]/140.0+t[195]*t[26]/140.0+3.0/
00961 280.0*t[350]*t[95]-t[179]*t[4]/560.0-3.0/560.0*t[220]*t[62];
00962       t[371] = t[12]*t[30];
00963       t[374] = t[1]*t[18];
00964       t[379] = t[17]*t[39];
00965       t[386] = t[3]*t[95]/70.0-t[198]*t[4]/560.0+t[248]*t[86]/280.0+t[149]*t[95]/280.0+t[112]*t[53]/
00966 560.0-3.0/560.0*t[48]*t[45]+3.0/560.0*t[371]*t[26]-t[374]*t[20]/560.0-3.0/560.0*t[166]*t[9]+
00967 t[379]*t[26]/8.0+t[3]*t[45]/56.0-t[82]*t[86]/28.0;
00968       t[391] = t[12]*t[39];
00969       t[396] = t[29]*t[98];
00970       t[403] = t[12]*t[18];
00971       t[408] = t[65]*t[98];
00972       t[411] = t[17]*t[30];
00973       t[416] = -t[8]*t[62]/280.0+3.0/280.0*t[371]*t[9]-t[391]*t[4]/280.0+t[374]*t[9]/70.0-t[396]*
00974 t[53]/560.0-3.0/560.0*t[274]*t[62]+3.0/280.0*t[220]*t[20]-3.0/280.0*t[403]*t[86]+t[289]*t[4]/
00975 560.0+t[408]*t[4]/140.0-t[411]*t[190]/70.0-t[52]*t[45]/56.0;
00976       t[427] = t[43]*t[18];
00977       t[432] = t[38]*t[18];
00978       t[435] = t[29]*t[60];
00979       t[446] = -t[256]*t[26]/280.0+t[158]*t[95]/560.0-t[411]*t[4]/280.0+t[19]*t[9]/140.0-t[427]*t[20]
00980 /560.0+t[320]*t[26]/560.0-t[432]*t[26]/280.0-t[435]*t[53]/280.0-t[109]*t[86]/560.0-t[256]*t[190]/
00981 560.0+9.0/560.0*t[259]*t[95]-t[379]*t[9]/8.0;
00982       t[449] = t[43]*t[51];
00983       t[458] = t[17]*t[24];
00984       t[473] = -t[61]*t[53]/8.0-3.0/560.0*t[449]*t[20]-3.0/280.0*t[40]*t[4]-3.0/560.0*t[118]*
00985 t[95]+t[61]*t[4]/280.0-3.0/56.0*t[458]*t[26]-3.0/560.0*t[179]*t[9]+t[163]*t[20]/280.0-3.0/280.0*
00986 t[136]*t[45]-t[458]*t[62]/56.0+t[143]*t[9]/56.0-t[130]*t[4]/280.0;
00987       t[477] = t[29]*t[13];
00988       t[496] = t[12]*t[51];
00989       t[501] = t[143]*t[95]/560.0-3.0/560.0*t[477]*t[53]-t[458]*t[190]/56.0-t[411]*t[26]/56.0+
00990 t[251]*t[86]/560.0-t[282]*t[86]/56.0+t[379]*t[86]/168.0-t[203]*t[53]/28.0+3.0/56.0*t[61]*t[9]-3.0/
00991 56.0*t[350]*t[86]+3.0/56.0*t[496]*t[4]-t[109]*t[190]/70.0;
00992       t[504] = t[72]*t[60];
00993       t[511] = t[38]*t[60];
00994       t[518] = t[29]*t[18];
00995       t[521] = t[72]*t[51];
00996       t[524] = t[23]*t[18];
00997       t[533] = t[341]*t[86]/280.0+3.0/560.0*t[504]*t[95]-t[391]*t[9]/280.0+3.0/560.0*t[334]*t[9]+
00998 3.0/560.0*t[511]*t[45]-t[56]*t[190]/70.0-3.0/560.0*t[186]*t[9]-t[518]*t[45]/28.0-3.0/560.0*t[521]
00999 *t[45]+t[524]*t[26]/560.0-3.0/280.0*t[136]*t[9]+t[374]*t[26]/560.0-3.0/560.0*t[66]*t[190];
01000       t[562] = -t[127]*t[26]/56.0-t[477]*t[9]/70.0-t[432]*t[45]/56.0+t[477]*t[95]/56.0-t[305]*t[62]/
01001 280.0-t[435]*t[62]/280.0-t[305]*t[9]/280.0-t[195]*t[86]/28.0+t[524]*t[190]/560.0-t[396]*t[9]/140.0
01002 -3.0/280.0*t[511]*t[9]+3.0/280.0*t[85]*t[45];
01003       t[567] = t[72]*t[98];
01004       t[588] = -3.0/560.0*t[449]*t[45]-3.0/560.0*t[106]*t[45]-t[567]*t[86]/280.0+t[227]*t[4]/
01005 280.0+9.0/560.0*t[295]*t[20]-3.0/56.0*t[99]*t[86]+t[305]*t[95]/280.0+t[391]*t[86]/560.0+3.0/
01006 56.0*t[31]*t[95]-t[295]*t[4]/560.0-t[396]*t[62]/56.0-t[52]*t[190]/56.0;
01007       t[614] = -t[458]*t[20]/56.0+3.0/560.0*t[567]*t[95]+3.0/560.0*t[292]*t[190]+3.0/560.0*
01008 t[256]*t[95]-3.0/560.0*t[136]*t[86]+3.0/56.0*t[8]*t[45]+3.0/56.0*t[69]*t[86]+9.0/560.0*t[82]*t[190]
01009 -t[8]*t[53]/280.0+3.0/280.0*t[186]*t[95]-3.0/560.0*t[3]*t[53]+t[256]*t[4]/280.0;
01010       t[625] = t[23]*t[34];
01011       t[634] = t[23]*t[13];
01012       t[641] = t[227]*t[62]/280.0-t[432]*t[86]/280.0+3.0/280.0*t[504]*t[190]+t[82]*t[53]/560.0-
01013 t[432]*t[190]/56.0-3.0/140.0*t[625]*t[53]+3.0/560.0*t[511]*t[190]-t[176]*t[86]/560.0-t[432]*t[20]/
01014 280.0-3.0/280.0*t[634]*t[45]-t[143]*t[20]/70.0-t[186]*t[53]/280.0;
01015       t[664] = t[72]*t[24];
01016       t[669] = -t[163]*t[62]/560.0-t[320]*t[45]/140.0+3.0/560.0*t[504]*t[4]-t[274]*t[53]/280.0+
01017 3.0/280.0*t[8]*t[4]+t[149]*t[190]/56.0-t[256]*t[20]/280.0-t[256]*t[9]/560.0+3.0/560.0*t[230]*t[95]+
01018 3.0/560.0*t[176]*t[62]+3.0/56.0*t[664]*t[53]-t[127]*t[95]/56.0;
01019       t[674] = t[1]*t[39];
01020       t[695] = -3.0/560.0*t[411]*t[95]-t[320]*t[95]/280.0+3.0/560.0*t[674]*t[86]-t[403]*t[45]/
01021 28.0-t[143]*t[26]/56.0-3.0/560.0*t[396]*t[20]-t[56]*t[9]/280.0+3.0/280.0*t[44]*t[9]-t[203]*t[26]/
01022 56.0-3.0/560.0*t[259]*t[26]-3.0/560.0*t[130]*t[190]+t[292]*t[26]/280.0;
01023       t[721] = -t[379]*t[4]/168.0+3.0/560.0*t[350]*t[9]+3.0/560.0*t[243]*t[45]+t[61]*t[190]/56.0-
01024 t[19]*t[45]/560.0+t[320]*t[20]/280.0-t[408]*t[86]/8.0-3.0/560.0*t[567]*t[26]-t[458]*t[95]/280.0-3.0
01025 /280.0*t[282]*t[45]+t[195]*t[4]/280.0+t[220]*t[86]/56.0;
01026       t[748] = -9.0/560.0*t[44]*t[20]+t[279]*t[190]/560.0-3.0/280.0*t[146]*t[26]-t[179]*t[45]/
01027 56.0-t[248]*t[53]/140.0-t[133]*t[86]/56.0-t[146]*t[86]/560.0+t[176]*t[9]/280.0-3.0/560.0*t[69]*
01028 t[53]-3.0/280.0*t[189]*t[95]-t[186]*t[86]/280.0-t[3]*t[26]/70.0+t[279]*t[4]/560.0;
01029       t[776] = 3.0/560.0*t[106]*t[26]-t[305]*t[190]/560.0-t[411]*t[86]/560.0-3.0/560.0*t[136]*
01030 t[20]-t[243]*t[53]/56.0-t[140]*t[4]/70.0-t[634]*t[4]/560.0-t[158]*t[20]/280.0+t[403]*t[9]/56.0+3.0/
01031 280.0*t[130]*t[20]+3.0/56.0*t[48]*t[53]+t[435]*t[95]/280.0;
01032       t[801] = t[140]*t[86]/560.0-t[19]*t[26]/280.0+t[289]*t[190]/70.0+3.0/560.0*t[371]*t[20]+
01033 t[203]*t[190]/70.0+t[61]*t[45]/280.0+3.0/560.0*t[158]*t[190]+3.0/560.0*t[203]*t[45]+t[203]*t[95]/
01034 280.0-t[176]*t[26]/280.0+3.0/560.0*t[121]*t[20]-t[411]*t[20]/140.0;
01035       t[815] = t[29]*t[2];
01036       t[828] = t[94]*t[9]/140.0-3.0/560.0*t[91]*t[20]-t[305]*t[26]/560.0+t[435]*t[20]/560.0+9.0/
01037 560.0*t[230]*t[62]-t[396]*t[26]/280.0-t[815]*t[53]/1680.0-t[815]*t[9]/560.0+t[435]*t[45]/280.0+3.0/
01038 560.0*t[341]*t[26]+9.0/560.0*t[121]*t[190]-t[230]*t[53]/56.0;
01039       t[853] = 3.0/560.0*t[350]*t[53]+t[195]*t[20]/56.0-t[8]*t[190]/56.0+t[3]*t[62]/560.0-t[251]*
01040 t[53]/70.0-t[79]*t[4]/280.0-t[79]*t[62]/56.0-9.0/560.0*t[118]*t[190]+t[295]*t[86]/70.0-t[458]*t[45]/
01041 280.0-t[25]*t[86]/280.0+t[112]*t[26]/280.0;
01042       t[880] = t[66]*t[20]/140.0+t[76]*t[9]/560.0-t[524]*t[86]/280.0-3.0/280.0*t[48]*t[62]-t[176]*
01043 t[45]/560.0+t[524]*t[62]/280.0+t[815]*t[4]/168.0+t[302]*t[86]/280.0+t[567]*t[4]/140.0+t[158]*t[9]/
01044 280.0+t[8]*t[95]/28.0+t[121]*t[86]/560.0;
01045       t[903] = t[43]*t[60];
01046       t[906] = -t[634]*t[86]/56.0+t[127]*t[86]/8.0+t[391]*t[45]/560.0-3.0/280.0*t[69]*t[190]-t[427]
01047 *t[45]/280.0-3.0/560.0*t[25]*t[95]-t[289]*t[20]/56.0+t[124]*t[4]/168.0+t[189]*t[53]/280.0+t[391]*
01048 t[20]/280.0-t[518]*t[86]/168.0+3.0/140.0*t[903]*t[86];
01049       t[932] = 3.0/560.0*t[44]*t[62]+t[427]*t[62]/280.0-3.0/140.0*t[664]*t[4]-t[73]*t[53]/280.0
01050 -3.0/56.0*t[432]*t[95]-t[127]*t[4]/280.0+t[179]*t[86]/28.0-t[567]*t[53]/280.0-3.0/280.0*t[243]*
01051 t[26]+3.0/560.0*t[302]*t[26]+t[213]*t[20]/280.0+3.0/560.0*t[243]*t[62];
01052       t[959] = -3.0/560.0*t[146]*t[20]-3.0/560.0*t[521]*t[20]+t[521]*t[4]/56.0-3.0/560.0*t[48]*
01053 t[95]-t[3]*t[20]/56.0-3.0/560.0*t[48]*t[86]-t[230]*t[86]/560.0-t[127]*t[62]/280.0-t[91]*t[4]/280.0-
01054 t[674]*t[9]/56.0-t[295]*t[53]/56.0+t[140]*t[53]/56.0+3.0/140.0*t[109]*t[9];
01055       t[973] = t[38]*t[30];
01056       t[988] = t[43]*t[34];
01057       t[991] = t[40]*t[20]/140.0+t[271]*t[26]/56.0-t[118]*t[53]/56.0+t[25]*t[53]/56.0+3.0/140.0*
01058 t[973]*t[53]-t[511]*t[53]/56.0+3.0/280.0*t[121]*t[26]+t[121]*t[53]/56.0+t[176]*t[4]/280.0-t[449]*t[86]/
01059 140.0+3.0/560.0*t[133]*t[95]+t[988]*t[4]/560.0;
01060       t[1016] = 3.0/560.0*t[133]*t[62]-t[302]*t[4]/56.0-t[815]*t[26]/560.0+t[408]*t[190]/56.0+t[40]
01061 *t[45]/280.0+t[815]*t[45]/280.0-3.0/560.0*t[91]*t[190]-t[396]*t[86]/280.0+3.0/560.0*t[477]*t[86]+
01062 t[82]*t[4]/56.0-3.0/560.0*t[815]*t[190]-3.0/56.0*t[403]*t[95];
01063       t[1042] = 3.0/56.0*t[403]*t[62]+t[458]*t[53]/8.0-3.0/56.0*t[371]*t[4]+t[251]*t[4]/56.0-t[213]
01064 *t[4]/28.0+3.0/56.0*t[625]*t[86]+t[52]*t[4]/8.0+t[674]*t[20]/70.0-3.0/280.0*t[295]*t[9]+t[341]*t[53]/
01065 280.0-3.0/560.0*t[521]*t[190]+3.0/280.0*t[140]*t[26];
01066       t[1067] = -t[66]*t[45]/280.0+t[408]*t[53]/280.0-3.0/140.0*t[94]*t[45]-t[121]*t[4]/28.0+t[432]
01067 *t[9]/28.0-t[189]*t[4]/56.0-t[163]*t[4]/560.0+3.0/280.0*t[271]*t[86]-3.0/280.0*t[227]*t[53]+9.0/
01068 280.0*t[118]*t[20]+t[130]*t[86]/56.0-t[8]*t[26]/56.0;
01069       t[1094] = t[66]*t[26]/280.0-3.0/140.0*t[496]*t[86]+3.0/560.0*t[163]*t[26]-3.0/560.0*
01070 t[271]*t[45]-t[220]*t[4]/70.0+3.0/280.0*t[334]*t[62]+t[524]*t[53]/560.0-t[179]*t[53]/280.0+t[73]*t[95]/
01071 280.0+3.0/560.0*t[115]*t[26]+t[14]*t[86]/70.0+t[158]*t[45]/280.0;
01072       t[1119] = -9.0/560.0*t[85]*t[26]-3.0/560.0*t[85]*t[9]+t[166]*t[4]/28.0+t[403]*t[190]/56.0+
01073 3.0/560.0*t[40]*t[95]-3.0/560.0*t[115]*t[45]+t[112]*t[20]/280.0+9.0/280.0*t[973]*t[9]-t[14]*t[53]/
01074 560.0+t[31]*t[9]/56.0+3.0/560.0*t[350]*t[4]-3.0/560.0*t[524]*t[45];
01075       t[1145] = -t[127]*t[190]/56.0+t[56]*t[45]/56.0+3.0/280.0*t[35]*t[45]+t[674]*t[26]/56.0+t[35]*
01076 t[86]/56.0-t[56]*t[20]/56.0-t[292]*t[4]/168.0-3.0/560.0*t[91]*t[95]-t[213]*t[62]/56.0-t[374]*t[45]/
01077 70.0+3.0/560.0*t[504]*t[86]-t[374]*t[95]/56.0;
01078       t[1170] = t[396]*t[95]/56.0+t[477]*t[45]/70.0-t[521]*t[86]/280.0-3.0/56.0*t[52]*t[62]-t[66]*
01079 t[62]/560.0-3.0/560.0*t[35]*t[9]+t[133]*t[53]/280.0+3.0/560.0*t[115]*t[9]+3.0/280.0*t[988]*t[45]
01080 -9.0/560.0*t[251]*t[9]+3.0/560.0*t[449]*t[9]-t[19]*t[86]/1680.0;
01081       t[1198] = -3.0/560.0*t[341]*t[95]+t[213]*t[95]/56.0-3.0/560.0*t[130]*t[9]-3.0/280.0*
01082 t[118]*t[45]-t[124]*t[20]/8.0+3.0/560.0*t[988]*t[95]-9.0/560.0*t[166]*t[190]-3.0/560.0*t[69]*t[62]+
01083 t[274]*t[86]/140.0-3.0/140.0*t[40]*t[62]+t[391]*t[190]/560.0+t[243]*t[4]/280.0;
01084       t[1223] = -3.0/280.0*t[94]*t[86]-3.0/560.0*t[73]*t[26]+3.0/560.0*t[259]*t[62]+t[203]*t[4]/
01085 560.0-3.0/560.0*t[295]*t[62]-3.0/560.0*t[130]*t[95]+t[203]*t[9]/56.0+3.0/56.0*t[227]*t[45]-3.0/
01086 560.0*t[146]*t[45]+t[403]*t[53]/280.0-t[305]*t[53]/560.0-3.0/560.0*t[136]*t[53];
01087       t[1249] = -3.0/280.0*t[289]*t[53]-t[477]*t[26]/560.0+t[66]*t[86]/168.0-t[118]*t[4]/560.0+
01088 t[320]*t[62]/280.0+t[292]*t[45]/560.0-3.0/560.0*t[634]*t[95]-t[66]*t[9]/280.0+3.0/280.0*t[521]*
01089 t[62]-9.0/280.0*t[625]*t[26]+3.0/560.0*t[282]*t[26]-3.0/280.0*t[118]*t[9];
01090       t[1274] = t[289]*t[95]/140.0+3.0/560.0*t[634]*t[9]-t[458]*t[4]/140.0-t[458]*t[86]/280.0+3.0
01091 /56.0*t[136]*t[4]-3.0/560.0*t[109]*t[26]+3.0/560.0*t[213]*t[26]+t[179]*t[20]/56.0-t[271]*t[62]/
01092 140.0-3.0/280.0*t[69]*t[26]+t[31]*t[20]/280.0+3.0/140.0*t[99]*t[4];
01093       t[1301] = -t[163]*t[45]/280.0-t[279]*t[26]/280.0-t[106]*t[4]/56.0-3.0/560.0*t[435]*t[9]-
01094 t[341]*t[4]/140.0+t[305]*t[86]/280.0+t[379]*t[20]/28.0+t[427]*t[53]/280.0+9.0/560.0*t[634]*t[26]+
01095 t[302]*t[53]/280.0-3.0/280.0*t[106]*t[95]+3.0/560.0*t[14]*t[20];
01096       t[1326] = t[106]*t[53]/70.0-3.0/280.0*t[166]*t[62]-t[158]*t[26]/140.0-t[227]*t[26]/28.0-
01097 t[411]*t[45]/280.0+3.0/560.0*t[449]*t[62]-3.0/560.0*t[91]*t[45]-t[674]*t[62]/70.0-9.0/280.0*
01098 t[664]*t[62]-3.0/560.0*t[374]*t[86]+t[213]*t[86]/560.0+t[149]*t[86]/280.0;
01099       t[1352] = -9.0/560.0*t[140]*t[62]-9.0/280.0*t[988]*t[26]+3.0/560.0*t[248]*t[45]+3.0/
01100 280.0*t[56]*t[4]+3.0/280.0*t[82]*t[20]-t[271]*t[9]/56.0+t[203]*t[86]/280.0-t[35]*t[53]/280.0-t[158]*
01101 t[53]/168.0-t[31]*t[4]/8.0+3.0/560.0*t[511]*t[95]-3.0/560.0*t[25]*t[190];
01102       t[1379] = t[19]*t[62]/280.0+t[31]*t[190]/56.0+t[396]*t[4]/28.0+3.0/560.0*t[189]*t[20]+t[230]*
01103 t[4]/70.0-t[274]*t[4]/280.0-t[198]*t[9]/280.0+3.0/280.0*t[371]*t[190]+3.0/560.0*t[189]*t[26]-3.0/
01104 560.0*t[674]*t[4]+t[449]*t[53]/280.0-t[163]*t[190]/560.0+t[403]*t[20]/280.0;
01105       t[1408] = t[40]*t[190]/70.0+t[289]*t[62]/280.0+3.0/560.0*t[220]*t[26]+3.0/560.0*t[140]*
01106 t[20]-3.0/560.0*t[14]*t[9]+3.0/280.0*t[109]*t[53]+3.0/280.0*t[350]*t[26]-3.0/280.0*t[166]*t[20]+
01107 3.0/560.0*t[341]*t[20]+t[44]*t[4]/560.0-t[427]*t[86]/560.0+3.0/560.0*t[82]*t[9];
01108       t[1433] = t[634]*t[53]/70.0+t[279]*t[95]/560.0-3.0/560.0*t[69]*t[9]-t[176]*t[190]/560.0-
01109 t[256]*t[53]/560.0+t[76]*t[20]/56.0-t[292]*t[9]/280.0-t[179]*t[190]/70.0-t[815]*t[62]/280.0-3.0/
01110 560.0*t[248]*t[9]+t[94]*t[190]/70.0-3.0/560.0*t[274]*t[9];
01111       t[1459] = 3.0/560.0*t[374]*t[53]+3.0/280.0*t[432]*t[53]+t[511]*t[4]/280.0-t[427]*t[190]/
01112 560.0+9.0/560.0*t[988]*t[190]-t[518]*t[95]/8.0-3.0/560.0*t[25]*t[45]+3.0/560.0*t[251]*t[45]+3.0
01113 /560.0*t[988]*t[62]-9.0/280.0*t[121]*t[62]-3.0/56.0*t[149]*t[9]+t[198]*t[86]/280.0;
01114       t[1484] = 3.0/560.0*t[371]*t[53]-t[124]*t[53]/168.0+t[411]*t[53]/28.0-t[143]*t[45]/560.0+
01115 3.0/280.0*t[988]*t[9]+t[61]*t[95]/280.0+t[289]*t[45]/56.0+t[988]*t[86]/56.0+t[518]*t[9]/28.0-t[259]*
01116 t[86]/56.0-3.0/280.0*t[14]*t[62]+t[213]*t[53]/280.0;
01117       t[1511] = -t[149]*t[62]/28.0+t[435]*t[86]/560.0+t[320]*t[53]/1680.0+t[391]*t[26]/280.0-t[815]
01118 *t[20]/280.0+3.0/560.0*t[189]*t[9]+t[73]*t[190]/560.0+t[220]*t[53]/560.0-t[166]*t[86]/56.0+t[227]*
01119 t[95]/56.0+3.0/560.0*t[289]*t[9]+t[195]*t[190]/70.0;
01120       t[1536] = t[279]*t[62]/280.0+3.0/560.0*t[243]*t[190]+9.0/280.0*t[146]*t[9]+t[189]*t[86]/
01121 280.0+t[518]*t[62]/8.0+3.0/560.0*t[248]*t[95]+3.0/560.0*t[282]*t[62]+9.0/560.0*t[14]*t[45]-3.0/
01122 56.0*t[903]*t[53]-t[112]*t[4]/280.0+t[518]*t[53]/168.0-3.0/280.0*t[133]*t[20];
01123       t[1562] = -3.0/560.0*t[251]*t[26]+3.0/280.0*t[350]*t[190]-t[109]*t[20]/280.0+t[292]*t[86]/
01124 1680.0+3.0/560.0*t[511]*t[20]+3.0/560.0*t[133]*t[190]+t[85]*t[4]/560.0+3.0/560.0*t[143]*t[4]+
01125 t[109]*t[62]/56.0-t[477]*t[62]/56.0+3.0/560.0*t[243]*t[95]-t[198]*t[190]/560.0;
01126       t[1589] = -3.0/560.0*t[19]*t[190]+t[73]*t[45]/280.0+t[61]*t[86]/140.0-3.0/560.0*t[48]*t[4]
01127 -9.0/560.0*t[334]*t[45]-3.0/560.0*t[186]*t[26]+t[149]*t[20]/56.0-t[427]*t[95]/280.0+3.0/280.0*
01128 t[504]*t[20]-t[146]*t[4]/56.0+t[292]*t[95]/280.0-t[988]*t[53]/28.0-t[271]*t[4]/560.0;
01129       t[1617] = t[124]*t[95]/28.0+t[403]*t[26]/280.0-3.0/280.0*t[230]*t[26]-3.0/560.0*t[25]*t[62]
01130 +t[292]*t[20]/560.0+t[31]*t[86]/280.0+t[31]*t[45]/56.0-t[166]*t[53]/560.0+t[408]*t[9]/280.0+t[411]*t[9]
01131 /56.0+3.0/560.0*t[274]*t[45]-3.0/560.0*t[391]*t[62];
01132       t[1642] = -3.0/560.0*t[130]*t[62]-3.0/560.0*t[115]*t[95]+t[227]*t[9]/280.0+t[435]*t[190]/
01133 560.0+3.0/280.0*t[371]*t[45]+t[91]*t[53]/56.0-3.0/560.0*t[334]*t[20]+3.0/560.0*t[302]*t[190]-
01134 t[79]*t[95]/280.0+3.0/560.0*t[320]*t[190]+t[40]*t[86]/560.0+3.0/140.0*t[271]*t[20];
01135       t[1668] = -t[91]*t[86]/280.0+t[73]*t[62]/560.0+t[408]*t[95]/56.0+t[163]*t[53]/280.0+t[477]*
01136 t[20]/560.0+t[449]*t[4]/280.0+9.0/280.0*t[903]*t[20]-t[44]*t[86]/70.0+t[408]*t[26]/56.0+t[511]*t[86]/
01137 280.0-t[271]*t[190]/70.0-t[279]*t[86]/280.0;
01138       t[1693] = 3.0/560.0*t[504]*t[45]+3.0/560.0*t[350]*t[62]+t[334]*t[4]/56.0-3.0/560.0*t[166]
01139 *t[26]-3.0/56.0*t[973]*t[4]+3.0/560.0*t[567]*t[62]+3.0/140.0*t[56]*t[95]-t[524]*t[95]/280.0+t[815]*
01140 t[95]/140.0+3.0/56.0*t[408]*t[20]+3.0/280.0*t[79]*t[86]-3.0/56.0*t[504]*t[53];
01141       t[1720] = t[374]*t[62]/56.0+t[94]*t[62]/56.0+t[112]*t[190]/560.0+t[279]*t[9]/280.0-t[115]*t[86]
01142 /280.0-t[127]*t[9]/280.0+t[19]*t[53]/168.0-t[396]*t[190]/70.0-9.0/560.0*t[146]*t[190]-9.0/280.0
01143 *t[496]*t[45]-t[259]*t[53]/560.0+3.0/560.0*t[302]*t[20];
01144       t[1745] = -3.0/56.0*t[127]*t[45]-t[52]*t[26]/280.0+3.0/56.0*t[432]*t[62]+t[282]*t[53]/280.0
01145 -t[52]*t[86]/140.0-3.0/560.0*t[567]*t[20]-3.0/280.0*t[302]*t[62]+t[674]*t[45]/560.0+3.0/560.0*
01146 t[282]*t[9]-t[79]*t[190]/56.0-3.0/560.0*t[118]*t[62]+t[31]*t[53]/140.0;
01147       t[1771] = -3.0/560.0*t[35]*t[26]+t[282]*t[4]/280.0+t[186]*t[4]/56.0+t[320]*t[9]/560.0-t[379]*
01148 t[62]/28.0+3.0/560.0*t[427]*t[9]-3.0/280.0*t[48]*t[190]+3.0/280.0*t[504]*t[62]-t[76]*t[95]/70.0+
01149 3.0/280.0*t[121]*t[95]+t[73]*t[4]/560.0-t[198]*t[62]/280.0;
01150       t[1798] = -t[674]*t[95]/560.0+t[524]*t[9]/280.0+3.0/560.0*t[85]*t[95]+t[40]*t[26]/56.0+t[408]
01151 *t[62]/280.0-3.0/280.0*t[69]*t[95]+3.0/560.0*t[94]*t[20]-t[521]*t[53]/280.0-3.0/560.0*t[521]*
01152 t[26]+9.0/560.0*t[106]*t[9]-3.0/280.0*t[259]*t[20]+3.0/560.0*t[371]*t[86]+t[115]*t[53]/140.0;
01153 //-----------------------------------------------------------------------------
01154       wgt[0] = t[1562]+t[416]+t[102]+t[1589]+t[501]+t[1145]+t[1720]+t[991]+t[1016]+t[1042]+t[721]+
01155 t[695]+t[59]+t[357]+t[235]+t[1223]+t[588]+t[562]+t[1170]+t[906]+t[329]+t[880]+t[1536]+t[776]+t[298]+t[1249]+
01156 t[1617]+t[1745]+t[748]+t[386]+t[446]+t[1067]+t[1484]+t[473]+t[1771]+t[1198]+t[266]+t[1326]+t[1642]+t[1798]+
01157 t[932]+t[1408]+t[1352]+t[1094]+t[641]+t[1668]+t[614]+t[801]+t[1379]+t[1301]+t[828]+t[139]+t[853]+t[533]+
01158 t[959]+t[206]+t[669]+t[1119]+t[1274]+t[1433]+t[1693]+t[1459]+t[1511]+t[171];
01159       t[1804] = dv[1][1];
01160       t[1805] = t[30]*t[1804];
01161       t[1807] = dv[5][0];
01162       t[1808] = t[1807]*t[95];
01163       t[1810] = dv[2][1];
01164       t[1811] = t[13]*t[1810];
01165       t[1813] = dv[3][0];
01166       t[1815] = 3.0/2.0*t[1813]*t[20];
01167       t[1816] = dv[4][1];
01168       t[1818] = 3.0/2.0*t[18]*t[1816];
01169       t[1819] = dv[5][1];
01170       t[1820] = t[51]*t[1819];
01171       t[1822] = dv[0][0];
01172       t[1824] = 3.0/2.0*t[1822]*t[62];
01173       t[1825] = dv[1][0];
01174       t[1826] = t[1825]*t[190];
01175       t[1828] = t[98]*t[1819];
01176       t[1830] = dv[2][0];
01177       t[1831] = t[1830]*t[20];
01178       t[1833] = t[51]*t[1816];
01179       t[1835] = t[13]*t[1804];
01180       t[1837] = dv[6][0];
01181       t[1838] = t[1837]*t[45];
01182       t[1840] = dv[4][0];
01183       t[1841] = t[1840]*t[95];
01184       t[1843] = t[1830]*t[190];
01185       t[1845] = t[34]*t[1810];
01186       t[1847] = -3.0/2.0*t[1805]-6.0*t[1808]-6.0*t[1811]+t[1815]+t[1818]+6.0*t[1820]-t[1824]
01187 -6.0*t[1826]-6.0*t[1828]-3.0/2.0*t[1831]-3.0/2.0*t[1833]+6.0*t[1835]-3.0/2.0*t[1838]+3.0/
01188 2.0*t[1841]+6.0*t[1843]+3.0/2.0*t[1845];
01189       t[1848] = t[1807]*t[45];
01190       t[1854] = dv[3][1];
01191       t[1859] = dv[0][1];
01192       t[1867] = 3.0/2.0*t[34]*t[1854];
01193       t[1869] = 3.0/2.0*t[1840]*t[4];
01194       t[1870] = t[1825]*t[62];
01195       t[1874] = dv[6][1];
01196       t[1875] = t[98]*t[1874];
01197       t[1878] = 3.0/2.0*t[30]*t[1859];
01198       t[1880] = 3.0/2.0*t[1837]*t[86];
01199       t[1882] = 3.0/2.0*t[2]*t[1874];
01200       t[1883] = 6.0*t[1848]+3.0/2.0*t[1822]*t[4]-3.0/2.0*t[1813]*t[86]+3.0/2.0*t[2]*t[1854]-9.0
01201 /2.0*t[1830]*t[45]-3.0/2.0*t[18]*t[1859]+9.0/2.0*t[1825]*t[95]-9.0/2.0*t[51]*t[1804]-t[1867]-
01202 t[1869]+3.0/2.0*t[1870]+9.0/2.0*t[98]*t[1810]+3.0/2.0*t[1875]+t[1878]+t[1880]-t[1882];
01203       t[1884] = t[1883]+t[1847];
01204       t[1887] = t[1813]*t[190];
01205       t[1890] = t[30]*t[1810];
01206       t[1891] = t[18]*t[1819];
01207       t[1892] = t[13]*t[1854];
01208       t[1893] = t[51]*t[1874];
01209       t[1894] = t[1830]*t[62];
01210       t[1897] = t[1807]*t[4];
01211       t[1898] = t[1837]*t[95];
01212       t[1899] = t[1805]-t[1875]-t[1870]+t[1838]+t[1887]-t[1820]-t[1843]-t[18]*t[1804]+t[1811]+t[1808]+
01213 t[98]*t[1854]-t[1890]+t[1891]-t[1892]+t[1893]+t[1894]+t[1825]*t[4]-t[1813]*t[45]-t[1897]-t[1898];
01214       t[1900] = 9.0/2.0*t[1899];
01215       t[1907] = t[34]*t[1804];
01216       t[1908] = t[1840]*t[45];
01217       t[1911] = t[98]*t[1816];
01218       t[1912] = t[1825]*t[20];
01219       t[1915] = -t[1822]*t[20]-t[98]*t[1859]+t[34]*t[1859]+t[2]*t[1804]-t[1907]-t[1908]+t[1840]*t[86]-t[2]*
01220 t[1816]+t[1911]+t[1912]+t[1822]*t[45]-t[1825]*t[86];
01221       t[1916] = 9.0*t[1915];
01222       t[1919] = dv[4][2];
01223       t[1922] = t[34]*t[45];
01224       t[1925] = t[98]*t[20];
01225       t[1927] = -9.0*t[2]*t[20]+9.0*t[34]*t[86]-9.0*t[1922]-9.0*t[98]*t[86]+9.0*t[2]*t[45]+9.0*
01226 t[1925];
01227       t[1930] = dv[1][2];
01228       t[1931] = t[24]*t[26];
01229       t[1932] = t[24]*t[190];
01230       t[1933] = t[60]*t[9];
01231       t[1935] = t[30]*t[26];
01232       t[1936] = t[60]*t[62];
01233       t[1937] = t[13]*t[53];
01234       t[1938] = t[39]*t[190];
01235       t[1940] = t[13]*t[9];
01236       t[1942] = 9.0/2.0*t[1931]-9.0/2.0*t[1932]-9.0/2.0*t[1933]+9.0/2.0*t[30]*t[53]-9.0/2.0
01237 *t[1935]+9.0/2.0*t[1936]-9.0/2.0*t[1937]+9.0/2.0*t[1938]-9.0/2.0*t[39]*t[62]+9.0/2.0*t[1940];
01238       t[1945] = dv[0][2];
01239       t[1950] = dv[3][2];
01240       t[1956] = 9.0*t[24]*t[53]-9.0*t[1931]-9.0*t[60]*t[53]-9.0*t[39]*t[9]+9.0*t[39]*t[26]+9.0*
01241 t[1933];
01242       t[1959] = dv[7][1];
01243       t[1961] = dv[9][0];
01244       t[1963] = dv[9][1];
01245       t[1965] = t[24]*t[1959];
01246       t[1967] = dv[8][0];
01247       t[1968] = t[1967]*t[26];
01248       t[1970] = dv[7][0];
01249       t[1972] = t[1970]*t[9];
01250       t[1974] = dv[8][1];
01251       t[1976] = t[60]*t[1974];
01252       t[1977] = t[39]*t[1959]+t[1961]*t[26]+t[24]*t[1963]-t[1965]-t[1961]*t[9]-t[1968]-t[60]*t[1963]-
01253 t[1970]*t[53]+t[1972]+t[1967]*t[53]-t[39]*t[1974]+t[1976];
01254       t[1978] = 9.0*t[1977];
01255       t[1981] = dv[2][2];
01256       t[1986] = t[98]*t[190];
01257       t[1988] = t[51]*t[20];
01258       t[1990] = t[13]*t[45];
01259       t[1993] = 3.0/2.0*t[30]*t[86];
01260       t[1995] = 3.0/2.0*t[2]*t[62];
01261       t[1996] = t[34]*t[95];
01262       t[2002] = t[30]*t[45];
01263       t[2004] = t[98]*t[62];
01264       t[2008] = t[51]*t[190];
01265       t[2011] = 3.0/2.0*t[18]*t[20];
01266       t[2012] = t[13]*t[95];
01267       t[2015] = 3.0/2.0*t[34]*t[4];
01268       t[2018] = -6.0*t[1986]-3.0/2.0*t[1988]+6.0*t[1990]+t[1993]-t[1995]+3.0/2.0*t[1996]-9.0/
01269 2.0*t[51]*t[45]-3.0/2.0*t[18]*t[86]-3.0/2.0*t[2002]+3.0/2.0*t[2004]+3.0/2.0*t[2]*t[4]+6.0*t[2008]
01270 +t[2011]-6.0*t[2012]-t[2015]+9.0/2.0*t[98]*t[95];
01271       t[2023] = t[30]*t[1819];
01272       t[2025] = t[30]*t[1959];
01273       t[2028] = 3.0/2.0*t[1970]*t[4];
01274       t[2042] = 3.0/2.0*t[1813]*t[26];
01275       t[2043] = t[1970]*t[62];
01276       t[2045] = t[60]*t[1874];
01277       t[2048] = 3.0/2.0*t[1830]*t[53];
01278       t[2049] = t[24]*t[1819];
01279       t[2051] = t[1967]*t[190];
01280       t[2053] = -3.0/2.0*t[39]*t[1854]-6.0*t[2023]+3.0/2.0*t[2025]+t[2028]+9.0/2.0*t[30]*
01281 t[1974]+3.0/2.0*t[1813]*t[53]-3.0/2.0*t[1961]*t[4]-9.0/2.0*t[1967]*t[62]+9.0/2.0*t[1837]*t[9]-9.0
01282 /2.0*t[24]*t[1874]-t[2042]-3.0/2.0*t[2043]-3.0/2.0*t[2045]-t[2048]+6.0*t[2049]+6.0*t[2051];
01283       t[2054] = t[13]*t[1974];
01284       t[2058] = t[1807]*t[9];
01285       t[2060] = t[1830]*t[9];
01286       t[2063] = 3.0/2.0*t[18]*t[1959];
01287       t[2065] = 3.0/2.0*t[39]*t[1810];
01288       t[2067] = 3.0/2.0*t[1961]*t[95];
01289       t[2068] = t[1967]*t[95];
01290       t[2070] = t[24]*t[1810];
01291       t[2073] = 3.0/2.0*t[60]*t[1854];
01292       t[2074] = t[13]*t[1874];
01293       t[2076] = t[1807]*t[62];
01294       t[2078] = t[51]*t[1974];
01295       t[2080] = t[1837]*t[26];
01296       t[2082] = t[1837]*t[190];
01297       t[2085] = 3.0/2.0*t[51]*t[1963];
01298       t[2086] = -6.0*t[2054]+3.0/2.0*t[18]*t[1963]-6.0*t[2058]+3.0/2.0*t[2060]-t[2063]+t[2065]+
01299 t[2067]-3.0/2.0*t[2068]-3.0/2.0*t[2070]+t[2073]+6.0*t[2074]+6.0*t[2076]+3.0/2.0*t[2078]+3.0/
01300 2.0*t[2080]-6.0*t[2082]-t[2085];
01301       t[2087] = t[2086]+t[2053];
01302       t[2090] = t[1840]*t[190];
01303       t[2091] = t[98]*t[1959];
01304       t[2092] = t[1825]*t[26];
01305       t[2093] = t[34]*t[1819];
01306       t[2094] = t[13]*t[1859];
01307       t[2097] = t[2]*t[1819];
01308       t[2098] = t[1822]*t[190];
01309       t[2100] = t[60]*t[1804];
01310       t[2102] = t[1970]*t[45];
01311       t[2103] = t[13]*t[1816];
01312       t[2104] = t[1807]*t[20];
01313       t[2105] = t[1807]*t[86];
01314       t[2106] = -t[2090]+t[2091]+t[2092]-t[2093]-t[2094]+t[60]*t[1859]+t[1970]*t[86]+t[2097]+t[2098]-
01315 t[1822]*t[26]+t[1907]-t[2100]-t[2]*t[1959]-t[2102]-t[1911]+t[2103]+t[2104]-t[2105]+t[1908]-t[1912];
01316       t[2107] = 9.0/2.0*t[2106];
01317       t[2110] = t[24]*t[1816];
01318       t[2113] = t[34]*t[1974];
01319       t[2114] = t[1840]*t[9];
01320       t[2115] = t[1967]*t[20];
01321       t[2116] = t[13]*t[1959];
01322       t[2117] = t[39]*t[1819];
01323       t[2119] = t[13]*t[1963];
01324       t[2120] = t[1961]*t[190];
01325       t[2121] = t[1807]*t[53];
01326       t[2122] = t[1807]*t[26];
01327       t[2123] = t[1970]*t[190];
01328       t[2125] = t[60]*t[1819];
01329       t[2126] = t[1965]+t[1968]-t[2110]-t[1976]-t[34]*t[1963]-t[1840]*t[53]+t[2113]+t[2114]-t[2115]-
01330 t[1972]-t[2116]-t[2117]+t[39]*t[1816]+t[2119]-t[2120]+t[2121]-t[2122]+t[2123]+t[1961]*t[20]+t[2125];
01331       t[2127] = 9.0/2.0*t[2126];
01332       t[2132] = t[60]*t[190];
01333       t[2133] = t[13]*t[26];
01334       t[2135] = t[24]*t[20];
01335       t[2136] = t[34]*t[9];
01336       t[2139] = 9.0/2.0*t[1931]+9.0/2.0*t[2132]-9.0/2.0*t[1933]+9.0/2.0*t[1937]-9.0/2.0*
01337 t[2133]-9.0/2.0*t[34]*t[53]-9.0/2.0*t[2135]+9.0/2.0*t[2136]-9.0/2.0*t[1938]+9.0/2.0*t[39]*t[20]
01338 ;
01339       t[2150] = -t[18]*t[1810]+t[1890]+t[1898]-t[1813]*t[95]-t[1893]-t[1894]+t[1813]*t[62]-t[1837]*t[4]+
01340 t[18]*t[1874]+t[1830]*t[4]-t[30]*t[1854]+t[51]*t[1854];
01341       t[2151] = 9.0*t[2150];
01342       t[2154] = t[65]*t[1884]/252.0+t[65]*t[1900]/630.0+t[23]*t[1916]/168.0+t[1919]*t[1927]/168.0
01343 +t[1930]*t[1942]/1260.0+t[1945]*t[1927]/72.0+t[65]*t[1916]/72.0+t[1950]*t[1956]/2520.0+t[12]*
01344 t[1978]/2520.0+t[1981]*t[1956]/2520.0+t[29]*t[1978]/2520.0+t[1945]*t[2018]/252.0+t[72]*t[2087]/
01345 140.0+t[17]*t[2107]/630.0+t[12]*t[2127]/1260.0+t[72]*t[1884]/840.0+t[1981]*t[2139]/1260.0+t[43]*
01346 t[2151]/2520.0;
01347       t[2160] = 3.0/2.0*t[51]*t[53];
01348       t[2161] = t[51]*t[26];
01349       t[2162] = 3.0/2.0*t[2161];
01350       t[2169] = t[60]*t[95];
01351       t[2170] = 3.0/2.0*t[2169];
01352       t[2171] = t[24]*t[45];
01353       t[2172] = 3.0/2.0*t[2171];
01354       t[2174] = 3.0/2.0*t[98]*t[53];
01355       t[2176] = 3.0/2.0*t[39]*t[95];
01356       t[2177] = t[30]*t[20];
01357       t[2179] = t[98]*t[9];
01358       t[2180] = 3.0/2.0*t[2179];
01359       t[2182] = 3.0/2.0*t[39]*t[45];
01360       t[2183] = t[34]*t[62];
01361       t[2185] = 3.0*t[1935]-3.0/2.0*t[1932]+t[2160]-t[2162]+3.0/2.0*t[1940]-3.0*t[1936]-3.0*
01362 t[2136]+3.0/2.0*t[2132]-3.0/2.0*t[2133]+3.0*t[2135]+t[2170]-t[2172]-t[2174]-t[2176]-3.0*t[2177]+
01363 t[2180]+t[2182]+3.0*t[2183];
01364       t[2190] = dv[8][2];
01365       t[2192] = 3.0/2.0*t[60]*t[4];
01366       t[2194] = 3.0/2.0*t[18]*t[26];
01367       t[2199] = t[24]*t[95];
01368       t[2203] = t[30]*t[190];
01369       t[2207] = t[51]*t[9];
01370       t[2209] = t[13]*t[62];
01371       t[2215] = t[2192]-t[2194]+3.0/2.0*t[1935]+6.0*t[1932]+3.0/2.0*t[18]*t[53]-3.0/2.0*t[2199]
01372 +9.0/2.0*t[30]*t[9]-6.0*t[2203]-9.0/2.0*t[24]*t[62]+t[2176]+3.0/2.0*t[2207]+6.0*t[2209]-3.0/2.0
01373 *t[39]*t[4]-6.0*t[1940]-3.0/2.0*t[1936]-t[2160];
01374       t[2220] = dv[9][2];
01375       t[2221] = t[98]*t[26];
01376       t[2223] = t[13]*t[20];
01377       t[2225] = t[34]*t[190];
01378       t[2226] = t[60]*t[45];
01379       t[2227] = t[13]*t[86];
01380       t[2228] = t[2]*t[190];
01381       t[2230] = 9.0/2.0*t[2221]-9.0/2.0*t[2]*t[26]+9.0/2.0*t[2223]+9.0/2.0*t[60]*t[86]-9.0/
01382 2.0*t[2225]-9.0/2.0*t[2226]-9.0/2.0*t[1925]-9.0/2.0*t[2227]+9.0/2.0*t[2228]+9.0/2.0*t[1922]
01383 ;
01384       t[2237] = t[1965]-t[1972]-t[39]*t[1874]+t[2117]-t[2051]+t[2120]-t[2119]-t[2121]-t[1976]+t[1837]*
01385 t[53]+t[1968]+t[2058]-t[2025]+t[2045]+t[2043]+t[30]*t[1963]-t[2049]+t[2054]-t[1961]*t[62]-t[2080];
01386       t[2238] = 9.0/2.0*t[2237];
01387       t[2248] = t[1825]*t[9];
01388       t[2249] = 3.0/2.0*t[2248];
01389       t[2252] = t[51]*t[1959];
01390       t[2253] = 3.0/2.0*t[2252];
01391       t[2257] = 3.0/2.0*t[1825]*t[53];
01392       t[2261] = t[34]*t[1874];
01393       t[2263] = t[1840]*t[62];
01394       t[2265] = 3.0*t[2025]+3.0/2.0*t[2125]+3.0/2.0*t[2123]-3.0*t[2114]+3.0*t[2115]+t[2249]
01395 -3.0*t[2043]+3.0*t[2110]-t[2253]-3.0*t[2045]+t[2048]-3.0/2.0*t[2049]-t[2257]-3.0/2.0*t[2051]+
01396 3.0/2.0*t[2054]+3.0/2.0*t[2058]+3.0*t[2261]+3.0*t[2263];
01397       t[2266] = t[1967]*t[45];
01398       t[2267] = 3.0/2.0*t[2266];
01399       t[2268] = t[98]*t[1974];
01400       t[2269] = 3.0/2.0*t[2268];
01401       t[2270] = t[1837]*t[20];
01402       t[2272] = t[24]*t[1804];
01403       t[2273] = 3.0/2.0*t[2272];
01404       t[2274] = t[30]*t[1816];
01405       t[2276] = t[1830]*t[26];
01406       t[2277] = 3.0/2.0*t[2276];
01407       t[2278] = t[1970]*t[95];
01408       t[2279] = 3.0/2.0*t[2278];
01409       t[2281] = t[60]*t[1810];
01410       t[2282] = 3.0/2.0*t[2281];
01411       t[2284] = 3.0/2.0*t[1961]*t[45];
01412       t[2286] = 3.0/2.0*t[98]*t[1963];
01413       t[2290] = 3.0/2.0*t[39]*t[1804];
01414       t[2292] = -t[2267]+t[2269]-3.0*t[2270]-t[2273]-3.0*t[2274]-t[2277]-t[2065]-t[2067]+t[2279]
01415 -3.0/2.0*t[2122]+t[2282]+t[2284]-t[2286]+3.0*t[2080]-3.0/2.0*t[2116]+t[2085]+t[2290]-3.0*t[2113];
01416       t[2293] = t[2292]+t[2265];
01417       t[2298] = 3.0/2.0*t[2177];
01418       t[2302] = 3.0/2.0*t[24]*t[86];
01419       t[2304] = 3.0/2.0*t[2]*t[9];
01420       t[2309] = 3.0/2.0*t[2183];
01421       t[2312] = 3.0*t[1996]+3.0*t[2161]+t[2298]-3.0*t[2221]+3.0/2.0*t[2223]+t[2302]-t[2304]-3.0
01422 /2.0*t[2225]+3.0/2.0*t[1986]-3.0*t[1988]-3.0/2.0*t[1990]-t[1993]+t[1995]+t[2180]-t[2309]-t[2172]
01423 -3.0*t[2169]+3.0*t[2226];
01424       t[2328] = 3.0/2.0*t[2]*t[1974];
01425       t[2330] = 3.0/2.0*t[1822]*t[9];
01426       t[2335] = t[1824]+3.0/2.0*t[1826]+3.0/2.0*t[1828]-3.0*t[1831]-3.0*t[1833]-3.0/2.0*
01427 t[1835]+3.0*t[1841]+3.0*t[1845]-3.0/2.0*t[1848]-t[1878]-t[2328]-t[1880]+t[2249]-t[2330]-3.0/2.0*
01428 t[2093]-3.0/2.0*t[2090]+3.0*t[2102]+3.0*t[2100];
01429       t[2341] = 3.0/2.0*t[2261];
01430       t[2342] = 3.0/2.0*t[2263];
01431       t[2343] = 3.0/2.0*t[2270];
01432       t[2344] = 3.0/2.0*t[2274];
01433       t[2348] = 3.0/2.0*t[24]*t[1859];
01434       t[2351] = 3.0/2.0*t[1967]*t[86];
01435       t[2352] = 3.0/2.0*t[2103]+3.0/2.0*t[2104]-3.0*t[2091]-3.0*t[2092]+3.0*t[2252]-t[2341]-
01436 t[2342]-t[2267]+t[2269]+t[2343]-t[2273]+t[2344]+3.0*t[2276]+t[1882]-3.0*t[2278]+t[2348]-3.0*t[2281]+
01437 t[2351];
01438       t[2353] = t[2352]+t[2335];
01439       t[2366] = dv[7][2];
01440       t[2369] = t[1945]*t[2139]/630.0+t[1950]*t[2185]/630.0+t[43]*t[2127]/126.0+t[2190]*t[2215]/
01441 140.0+t[1930]*t[2185]/420.0+t[2220]*t[2230]/630.0+t[12]*t[2238]/840.0+t[43]*t[2238]/252.0+t[65]*
01442 t[2293]/630.0+t[2220]*t[2312]/630.0+t[1981]*t[1942]/840.0+t[17]*t[2127]/126.0+t[17]*t[2353]/630.0
01443 +t[29]*t[2127]/2520.0+t[7]*t[2293]/420.0+t[72]*t[2127]/252.0+t[1930]*t[2215]/840.0+t[1]*t[2293]/
01444 210.0+t[2366]*t[1942]/252.0;
01445       t[2393] = -t[2192]-3.0/2.0*t[2008]+t[2015]-t[2162]+t[2298]+3.0*t[2171]-3.0*t[2179]-t[2309]+
01446 3.0/2.0*t[2012]+t[2194]+t[2170]-t[2011]-3.0*t[2199]-3.0*t[2002]+3.0*t[2004]+3.0/2.0*t[2203]+3.0
01447 *t[2207]-3.0/2.0*t[2209];
01448       t[2403] = 9.0/2.0*t[2227]-9.0/2.0*t[2228]+9.0/2.0*t[1922]+9.0/2.0*t[1986]+9.0/2.0*
01449 t[1988]-9.0/2.0*t[1990]-9.0/2.0*t[1996]-9.0/2.0*t[51]*t[86]-9.0/2.0*t[1925]+9.0/2.0*t[2]*t[95];
01450       t[2416] = -3.0*t[1805]+3.0/2.0*t[1808]+3.0/2.0*t[1811]-t[1815]-t[1818]-3.0/2.0*t[1820]
01451 -3.0*t[1838]-3.0/2.0*t[1843]+t[1867]+t[1869]+3.0*t[1870]+3.0*t[1875]+3.0/2.0*t[2023]-t[2028]+
01452 t[2042]-3.0*t[2248]-t[2253]-t[2341];
01453       t[2427] = -t[2342]+3.0*t[2266]-3.0*t[2268]+t[2343]+3.0*t[2060]+3.0*t[2272]+t[2344]-t[2277]+
01454 t[2063]+t[2279]-3.0*t[2068]-3.0*t[2070]+t[2282]-t[2073]-3.0/2.0*t[2074]-3.0/2.0*t[2076]+3.0*
01455 t[2078]+3.0/2.0*t[2082];
01456       t[2428] = t[2427]+t[2416];
01457       t[2431] = dv[5][2];
01458       t[2448] = 6.0*t[2133]-9.0/2.0*t[34]*t[26]+3.0/2.0*t[2135]+9.0/2.0*t[60]*t[20]-3.0/2.0*
01459 t[2136]-6.0*t[2132]+t[2174]-3.0/2.0*t[2221]-3.0/2.0*t[2]*t[53]-6.0*t[2223]-t[2302]+t[2304]+6.0*
01460 t[2225]-t[2182]+3.0/2.0*t[39]*t[86]+3.0/2.0*t[2226];
01461       t[2457] = t[18]*t[190];
01462       t[2458] = t[30]*t[95];
01463       t[2459] = t[51]*t[62];
01464       t[2460] = t[13]*t[4];
01465       t[2464] = -9.0/2.0*t[2008]+9.0/2.0*t[2002]-9.0/2.0*t[2004]+9.0/2.0*t[2457]-9.0/2.0*
01466 t[2458]+9.0/2.0*t[2459]-9.0/2.0*t[2460]-9.0/2.0*t[18]*t[45]+9.0/2.0*t[2012]+9.0/2.0*t[98]*t[4];
01467       t[2471] = t[1813]*t[9]+t[2082]-t[2060]+t[2023]-t[2074]-t[2076]-t[1890]+t[1897]+t[2068]+t[1893]-
01468 t[2078]+t[2070]-t[1898]-t[24]*t[1854]+t[18]*t[1974]-t[1891]+t[1892]-t[1887]+t[1894]-t[1967]*t[4];
01469       t[2472] = 9.0/2.0*t[2471];
01470       t[2479] = t[7]*t[1978]/2520.0+t[1930]*t[1956]/2520.0+t[65]*t[1978]/2520.0+t[1945]*t[1956]/
01471 2520.0+t[1930]*t[2139]/840.0+t[7]*t[2238]/1260.0+t[2220]*t[2393]/630.0+t[1945]*t[1942]/2520.0+
01472 t[65]*t[2127]/630.0+t[1945]*t[2403]/126.0+t[17]*t[2428]/630.0+t[2431]*t[2448]/280.0+t[2190]*t[2139]
01473 /252.0+t[2190]*t[2185]/210.0+t[65]*t[2238]/2520.0+t[1945]*t[2464]/630.0+t[17]*t[2472]/630.0+t[7]*
01474 t[2087]/840.0+t[29]*t[2238]/630.0;
01475       t[2490] = t[1907]-t[2097]-t[2098]+t[1826]-t[1911]+t[1908]+t[1833]+t[2094]+t[2105]-t[1912]-t[1848]
01476 +t[1828]-t[1830]*t[86]-t[1835]+t[1831]-t[1845]-t[1841]+t[2]*t[1810]-t[51]*t[1859]+t[1822]*t[95];
01477       t[2491] = 9.0/2.0*t[2490];
01478       t[2507] = 9.0*t[2458]-9.0*t[2459]-9.0*t[30]*t[4]+9.0*t[51]*t[4]+9.0*t[18]*t[62]-9.0*t[18]*t[95]
01479 ;
01480       t[2519] = -9.0/2.0*t[2457]-9.0/2.0*t[2458]+9.0/2.0*t[2459]+9.0/2.0*t[18]*t[9]+9.0/2.0
01481 *t[2203]+9.0/2.0*t[2199]-9.0/2.0*t[2207]-9.0/2.0*t[24]*t[4]+9.0/2.0*t[2460]-9.0/2.0*t[2209];
01482       t[2528] = dv[6][2];
01483       t[2535] = t[1950]*t[2139]/2520.0+t[1930]*t[2018]/140.0+t[1930]*t[2403]/126.0+t[7]*t[2491]/
01484 126.0+t[72]*t[2238]/126.0+t[65]*t[2491]/126.0+t[1950]*t[1942]/630.0+t[38]*t[2353]/420.0+t[2366]*
01485 t[2507]/2520.0+t[2190]*t[1942]/126.0+t[7]*t[1884]/140.0+t[2220]*t[2139]/126.0+t[2220]*t[2519]/
01486 630.0+t[2190]*t[1927]/2520.0+t[2366]*t[1956]/168.0+t[38]*t[2428]/210.0+t[2528]*t[2393]/210.0+
01487 t[43]*t[1978]/168.0+t[7]*t[2127]/840.0;
01488       t[2574] = t[2328]-6.0*t[2125]-6.0*t[2123]-3.0/2.0*t[2114]+3.0/2.0*t[2115]+9.0/2.0*t[60]
01489 *t[1816]+9.0/2.0*t[1970]*t[20]-9.0/2.0*t[1840]*t[26]+3.0/2.0*t[39]*t[1859]+t[2330]+6.0*t[2093]+
01490 6.0*t[2090]+3.0/2.0*t[2110]+3.0/2.0*t[2102]+3.0/2.0*t[2100]-6.0*t[2103];
01491       t[2589] = -6.0*t[2104]+3.0/2.0*t[1961]*t[86]-3.0/2.0*t[2091]-3.0/2.0*t[2092]-3.0/2.0*
01492 t[2]*t[1963]-3.0/2.0*t[1822]*t[53]+t[2257]-9.0/2.0*t[34]*t[1959]+6.0*t[2122]-t[2348]-t[2284]+t[2286]+
01493 6.0*t[2116]-t[2290]-3.0/2.0*t[2113]-t[2351];
01494       t[2590] = t[2589]+t[2574];
01495       t[2609] = t[38]*t[2293]/280.0+t[1930]*t[2393]/280.0+t[38]*t[2472]/126.0+t[2528]*t[2519]/
01496 126.0+t[72]*t[1916]/2520.0+t[72]*t[1978]/168.0+t[17]*t[2491]/2520.0+t[65]*t[2087]/2520.0+t[1945]*
01497 t[2215]/2520.0+t[7]*t[2590]/420.0+t[12]*t[2107]/630.0+t[1950]*t[2448]/2520.0+t[17]*t[1916]/2520.0
01498 +t[2190]*t[1956]/168.0+t[2220]*t[2403]/2520.0+t[43]*t[2293]/210.0+t[1]*t[2590]/280.0+t[29]*t[2590]/
01499 2520.0;
01500       t[2648] = t[2220]*t[1927]/2520.0+t[17]*t[1884]/2520.0+t[2220]*t[2018]/2520.0+t[12]*t[2293]/
01501 420.0+t[29]*t[2293]/630.0+t[17]*t[1900]/2520.0+t[2220]*t[2464]/2520.0+t[17]*t[2238]/126.0+t[1981]
01502 *t[2185]/420.0+t[1930]*t[2448]/420.0+t[17]*t[2151]/2520.0+t[2220]*t[2507]/2520.0+t[1981]*t[2018]/
01503 140.0+t[2366]*t[2139]/126.0+t[2528]*t[2312]/420.0+t[2431]*t[2519]/315.0+t[38]*t[2107]/1260.0+
01504 t[2528]*t[2230]/1260.0+t[23]*t[2491]/252.0;
01505       t[2688] = t[1919]*t[2403]/252.0+t[2220]*t[1956]/72.0+t[12]*t[1884]/140.0+t[1919]*t[2185]/
01506 280.0+t[1981]*t[2215]/420.0+t[2220]*t[1942]/126.0+t[23]*t[2293]/280.0+t[1919]*t[2448]/140.0+t[72]
01507 *t[2353]/420.0+t[1981]*t[2230]/630.0+t[17]*t[2590]/252.0+t[2220]*t[2448]/252.0+t[17]*t[2293]/
01508 252.0+t[2220]*t[2185]/252.0+t[17]*t[2087]/252.0+t[2220]*t[2215]/252.0+t[2528]*t[2185]/280.0+
01509 t[2431]*t[2393]/210.0+t[1]*t[2472]/315.0;
01510       t[2727] = t[1]*t[2107]/315.0+t[2431]*t[2230]/315.0+t[2528]*t[2507]/168.0+t[38]*t[2151]/
01511 168.0+t[1]*t[2353]/210.0+t[23]*t[2353]/210.0+t[1919]*t[2312]/210.0+t[23]*t[2428]/420.0+t[12]*
01512 t[2590]/840.0+t[1981]*t[2448]/840.0+t[7]*t[2472]/630.0+t[1981]*t[2403]/210.0+t[1930]*t[2312]/
01513 210.0+t[7]*t[2353]/210.0+t[23]*t[2107]/126.0+t[1919]*t[2230]/126.0+t[38]*t[1916]/2520.0+t[2528]*
01514 t[1927]/2520.0+t[38]*t[1884]/420.0;
01515       t[2767] = t[2528]*t[2018]/420.0+t[38]*t[1900]/252.0+t[2528]*t[2464]/252.0+t[1930]*t[2519]/
01516 630.0+t[2431]*t[2312]/210.0+t[1]*t[2428]/210.0+t[1919]*t[2519]/1260.0+t[1919]*t[2393]/420.0+t[23]
01517 *t[2472]/1260.0+t[1930]*t[2230]/252.0+t[12]*t[1916]/504.0+t[7]*t[2107]/252.0+t[1950]*t[2519]/
01518 126.0+t[29]*t[2472]/126.0+t[1950]*t[2393]/252.0+t[12]*t[2151]/168.0+t[29]*t[2428]/252.0+t[1950]*
01519 t[2403]/630.0;
01520       t[2806] = t[2190]*t[2312]/420.0+t[72]*t[2428]/280.0+t[2190]*t[2393]/280.0+t[43]*t[2491]/
01521 630.0+t[2366]*t[2403]/630.0+t[1]*t[1978]/504.0+t[2431]*t[1956]/504.0+t[38]*t[1978]/504.0+t[2528]*
01522 t[1956]/504.0+t[43]*t[1916]/504.0+t[2366]*t[1927]/504.0+t[38]*t[2238]/210.0+t[2528]*t[1942]/210.0
01523 +t[23]*t[1978]/504.0+t[29]*t[1900]/126.0+t[2431]*t[2507]/504.0+t[38]*t[2491]/840.0+t[2528]*t[2403]/
01524 840.0+t[7]*t[1916]/168.0;
01525       t[2846] = t[1930]*t[1927]/168.0+t[1]*t[2151]/504.0+t[2431]*t[2464]/315.0+t[72]*t[2472]/
01526 210.0+t[12]*t[2491]/210.0+t[1981]*t[1927]/504.0+t[1]*t[1884]/280.0+t[17]*t[1978]/72.0+t[2431]*
01527 t[2018]/280.0+t[2190]*t[2519]/210.0+t[1]*t[1900]/315.0+t[1945]*t[2507]/2520.0+t[12]*t[1900]/126.0
01528 +t[43]*t[2590]/140.0+t[1]*t[1916]/504.0+t[2431]*t[1927]/504.0+t[29]*t[2087]/252.0+t[1950]*t[2215]/
01529 252.0+t[12]*t[2087]/420.0;
01530       t[2885] = t[23]*t[1884]/420.0+t[23]*t[2087]/840.0+t[23]*t[2590]/140.0+t[1945]*t[2519]/
01531 2520.0+t[65]*t[2151]/2520.0+t[1]*t[2491]/315.0+t[2431]*t[2403]/315.0+t[1919]*t[2215]/840.0+t[38]*
01532 t[2590]/840.0+t[2528]*t[2448]/840.0+t[65]*t[2472]/2520.0+t[7]*t[2151]/504.0+t[1930]*t[2507]/504.0
01533 +t[1945]*t[2393]/630.0+t[7]*t[1900]/210.0+t[65]*t[2428]/630.0+t[1950]*t[2018]/252.0+t[23]*t[2151]/
01534 2520.0+t[1919]*t[2507]/2520.0;
01535       t[2924] = t[23]*t[1900]/840.0+t[1919]*t[2464]/840.0+t[1930]*t[2464]/210.0+t[1919]*t[2018]/
01536 420.0+t[1]*t[2087]/280.0+t[2431]*t[2215]/280.0+t[72]*t[2590]/420.0+t[2190]*t[2448]/420.0+t[2366]*
01537 t[2215]/420.0+t[65]*t[2590]/252.0+t[1945]*t[2448]/252.0+t[23]*t[2238]/630.0+t[1919]*t[1942]/630.0
01538 +t[1]*t[2127]/315.0+t[1950]*t[2507]/72.0+t[29]*t[2151]/72.0+t[1950]*t[2464]/126.0+t[2366]*t[2185]/
01539 210.0;
01540       t[2963] = t[29]*t[1884]/252.0+t[43]*t[2087]/420.0+t[23]*t[2127]/210.0+t[1919]*t[2139]/210.0
01541 +t[1981]*t[2519]/252.0+t[2528]*t[2215]/140.0+t[2366]*t[2448]/140.0+t[72]*t[2293]/210.0+t[29]*
01542 t[2353]/630.0+t[1950]*t[2312]/630.0+t[29]*t[2491]/630.0+t[29]*t[1916]/2520.0+t[1950]*t[2230]/
01543 2520.0+t[1950]*t[1927]/2520.0+t[29]*t[2107]/2520.0+t[12]*t[2472]/252.0+t[1981]*t[2464]/126.0+
01544 t[1981]*t[2312]/280.0+t[12]*t[2353]/280.0;
01545       t[3003] = t[43]*t[1884]/840.0+t[1945]*t[2185]/630.0+t[38]*t[2087]/140.0+t[7]*t[2428]/280.0+
01546 t[1981]*t[2507]/168.0+t[2431]*t[2185]/210.0+t[1981]*t[2393]/210.0+t[12]*t[2428]/210.0+t[1919]*
01547 t[1956]/504.0+t[65]*t[2107]/126.0+t[1945]*t[2230]/126.0+t[43]*t[2472]/840.0+t[38]*t[2127]/630.0+
01548 t[2528]*t[2139]/630.0+t[2431]*t[2139]/315.0+t[1]*t[2238]/315.0+t[2431]*t[1942]/315.0+t[2366]*
01549 t[2464]/1260.0+t[2190]*t[2230]/840.0;
01550       t[3042] = t[43]*t[2353]/280.0+t[2366]*t[2312]/280.0+t[43]*t[2428]/420.0+t[2366]*t[2393]/
01551 420.0+t[2190]*t[2018]/840.0+t[1945]*t[2312]/252.0+t[72]*t[1900]/630.0+t[72]*t[2107]/840.0+t[43]*
01552 t[2107]/210.0+t[2366]*t[2230]/210.0+t[2366]*t[2519]/840.0+t[2190]*t[2403]/1260.0+t[2190]*t[2464]/
01553 630.0+t[72]*t[2151]/504.0+t[2190]*t[2507]/504.0+t[2366]*t[2018]/840.0+t[43]*t[1900]/1260.0+t[65]*
01554 t[2353]/252.0+t[72]*t[2491]/1260.0;
01555 //-----------------------------------------------------------------------------
01556       wgt[1] = t[3042]+t[3003]+t[2963]+t[2924]+t[2885]+t[2846]+t[2806]+t[2767]+t[2727]+t[2688]+
01557 t[2648]+t[2609]+t[2535]+t[2479]+t[2369]+t[2154];
01558       t[3046] = t[2220]*t[39];
01559       t[3049] = t[1981]*t[1967];
01560       t[3052] = t[1919]*t[30];
01561       t[3055] = t[2431]*t[2];
01562       t[3058] = t[2431]*t[60];
01563       t[3061] = t[1945]*t[51];
01564       t[3064] = t[2431]*t[34];
01565       t[3067] = t[2431]*t[1822];
01566       t[3070] = t[2431]*t[1970];
01567       t[3075] = t[2431]*t[1825];
01568       t[3078] = t[2431]*t[98];
01569       t[3081] = t[23]*t[1830];
01570       t[3084] = t[7]*t[1830];
01571       t[3087] = t[7]*t[1813];
01572       t[3090] = t[7]*t[1822];
01573       t[3093] = t[7]*t[1807];
01574       t[3096] = t[1]*t[1967];
01575       t[3099] = t[3046]*t[1816]/28.0+3.0/560.0*t[3049]*t[20]+3.0/560.0*t[3052]*t[1959]-t[3055]*
01576 t[1959]/70.0+3.0/560.0*t[3058]*t[1804]+t[3061]*t[1974]/280.0+3.0/280.0*t[3064]*t[1804]-t[3067]*
01577 t[26]/70.0+t[3070]*t[86]/70.0+t[3058]*t[1859]/70.0-3.0/560.0*t[3075]*t[26]-3.0/560.0*t[3078]*
01578 t[1959]+3.0/560.0*t[3081]*t[1819]-t[3084]*t[1859]/28.0+t[3087]*t[1963]/560.0-t[3090]*t[1819]/56.0
01579 +t[3093]*t[1859]/56.0-t[3096]*t[1854]/70.0;
01580       t[3100] = t[1]*t[1813];
01581       t[3103] = t[2431]*t[18];
01582       t[3106] = t[72]*t[1813];
01583       t[3113] = t[29]*t[1830];
01584       t[3116] = t[2431]*t[1813];
01585       t[3119] = t[1950]*t[1822];
01586       t[3126] = t[1950]*t[39];
01587       t[3129] = t[2431]*t[1837];
01588       t[3138] = t[2431]*t[1840];
01589       t[3141] = t[1]*t[1837];
01590       t[3144] = t[12]*t[1837];
01591       t[3147] = t[3100]*t[1974]/70.0+t[3103]*t[1959]/560.0-3.0/560.0*t[3106]*t[1959]-t[3058]*
01592 t[1854]/560.0-t[3070]*t[4]/560.0-t[3113]*t[1859]/140.0+t[3116]*t[26]/560.0-t[3119]*t[26]/560.0-
01593 t[3103]*t[1816]/560.0-t[3116]*t[20]/560.0+t[3126]*t[1810]/280.0-3.0/560.0*t[3129]*t[45]+3.0/
01594 560.0*t[3078]*t[1874]+3.0/560.0*t[3075]*t[62]+t[3126]*t[1859]/1680.0+t[3138]*t[4]/560.0-3.0/
01595 560.0*t[3141]*t[1804]+3.0/280.0*t[3144]*t[1804];
01596       t[3149] = t[1]*t[1840];
01597       t[3156] = t[1950]*t[24];
01598       t[3161] = t[65]*t[1825];
01599       t[3164] = t[1]*t[1970];
01600       t[3167] = t[1]*t[1830];
01601       t[3170] = t[2220]*t[60];
01602       t[3175] = t[2431]*t[1967];
01603       t[3178] = t[2431]*t[1830];
01604       t[3181] = t[2528]*t[1967];
01605       t[3186] = t[2431]*t[24];
01606       t[3189] = t[43]*t[1830];
01607       t[3194] = t[2220]*t[1807];
01608       t[3197] = t[3149]*t[1854]/560.0-t[3100]*t[1816]/560.0+t[3100]*t[1959]/560.0+t[3156]*t[1804]
01609 /140.0+9.0/560.0*t[3078]*t[1810]+t[3161]*t[1874]/280.0-t[3164]*t[1854]/560.0+3.0/560.0*
01610 t[3167]*t[1974]+t[3170]*t[1804]/280.0+t[3156]*t[1816]/280.0-t[3175]*t[4]/70.0+3.0/280.0*t[3178]*
01611 t[62]+3.0/560.0*t[3181]*t[45]+t[3103]*t[1974]/70.0-t[3186]*t[1854]/70.0+t[3189]*t[1854]/280.0-3.0
01612 /280.0*t[3129]*t[95]-3.0/560.0*t[3194]*t[86];
01613       t[3198] = t[38]*t[1807];
01614       t[3203] = t[1945]*t[1837];
01615       t[3206] = t[2431]*t[51];
01616       t[3209] = t[1930]*t[1840];
01617       t[3212] = t[1981]*t[18];
01618       t[3215] = t[12]*t[1961];
01619       t[3220] = t[2528]*t[98];
01620       t[3223] = t[2528]*t[1825];
01621       t[3226] = t[2220]*t[18];
01622       t[3231] = t[2528]*t[1961];
01623       t[3240] = t[7]*t[1837];
01624       t[3243] = t[1981]*t[39];
01625       t[3246] = -t[3198]*t[1963]/70.0-3.0/560.0*t[3186]*t[1810]-t[3203]*t[45]/280.0+3.0/280.0
01626 *t[3206]*t[1874]-3.0/560.0*t[3209]*t[62]-3.0/280.0*t[3212]*t[1859]-t[3215]*t[1854]/280.0-3.0/
01627 560.0*t[3175]*t[95]-3.0/560.0*t[3220]*t[1816]-3.0/560.0*t[3223]*t[20]-t[3226]*t[1816]/560.0-
01628 t[3226]*t[1959]/280.0-3.0/280.0*t[3231]*t[4]+3.0/280.0*t[3138]*t[45]-3.0/280.0*t[3078]*t[1816]+
01629 3.0/560.0*t[3070]*t[45]-3.0/280.0*t[3240]*t[1810]-t[3243]*t[1974]/280.0;
01630       t[3249] = t[72]*t[1825];
01631       t[3252] = t[1930]*t[30];
01632       t[3257] = t[23]*t[1837];
01633       t[3260] = t[43]*t[1840];
01634       t[3265] = t[2220]*t[1813];
01635       t[3272] = t[2431]*t[30];
01636       t[3275] = t[12]*t[1807];
01637       t[3286] = t[1930]*t[1830];
01638       t[3293] = t[3249]*t[1854]/140.0+3.0/560.0*t[3252]*t[1819]+3.0/560.0*t[3081]*t[1874]-3.0
01639 /560.0*t[3257]*t[1810]+3.0/280.0*t[3260]*t[1974]-3.0/560.0*t[3206]*t[1816]-t[3265]*t[20]/560.0
01640 -3.0/560.0*t[3178]*t[20]-t[3055]*t[1974]/560.0-t[3272]*t[1859]/560.0-3.0/560.0*t[3275]*t[1974]-
01641 t[3129]*t[86]/560.0+t[3055]*t[1874]/560.0+t[3067]*t[62]/560.0+3.0/560.0*t[3064]*t[1810]+9.0/
01642 560.0*t[3286]*t[190]-3.0/560.0*t[3167]*t[1816]+3.0/560.0*t[3149]*t[1810];
01643       t[3294] = t[1]*t[1822];
01644       t[3299] = t[2190]*t[30];
01645       t[3304] = t[17]*t[1807];
01646       t[3309] = t[2528]*t[51];
01647       t[3312] = t[2220]*t[1837];
01648       t[3315] = t[1981]*t[1825];
01649       t[3318] = t[2528]*t[30];
01650       t[3321] = t[65]*t[1840];
01651       t[3324] = t[1930]*t[18];
01652       t[3327] = t[2528]*t[1830];
01653       t[3330] = t[1930]*t[1961];
01654       t[3333] = t[2528]*t[18];
01655       t[3336] = t[2528]*t[1837];
01656       t[3339] = t[2528]*t[1813];
01657       t[3342] = t[1919]*t[13];
01658       t[3345] = t[3294]*t[1874]/560.0-t[3141]*t[1859]/560.0-t[3299]*t[1859]/560.0-t[3294]*t[1974]
01659 /560.0+t[3304]*t[1974]/56.0+t[3096]*t[1859]/560.0+3.0/56.0*t[3309]*t[1854]-t[3312]*t[190]/70.0-
01660 t[3315]*t[53]/560.0-3.0/56.0*t[3318]*t[1854]-t[3321]*t[1963]/140.0+t[3324]*t[1959]/280.0+3.0/
01661 56.0*t[3327]*t[4]-t[3330]*t[190]/560.0+3.0/56.0*t[3333]*t[1874]-3.0/56.0*t[3336]*t[4]+3.0/56.0*
01662 t[3339]*t[62]+3.0/560.0*t[3342]*t[1974];
01663       t[3349] = t[2528]*t[1970];
01664       t[3352] = t[38]*t[1830];
01665       t[3355] = t[38]*t[1837];
01666       t[3358] = t[1]*t[1825];
01667       t[3363] = t[65]*t[1970];
01668       t[3368] = t[23]*t[1813];
01669       t[3379] = t[1981]*t[1961];
01670       t[3382] = t[2528]*t[2];
01671       t[3385] = t[1930]*t[2];
01672       t[3388] = t[2220]*t[24];
01673       t[3391] = t[1919]*t[1825];
01674       t[3394] = -3.0/56.0*t[3339]*t[95]+3.0/560.0*t[3349]*t[190]+3.0/56.0*t[3352]*t[1854]-3.0
01675 /56.0*t[3355]*t[1854]-3.0/280.0*t[3358]*t[1816]+3.0/280.0*t[3149]*t[1804]-3.0/560.0*t[3363]*
01676 t[1974]-t[3342]*t[1859]/56.0+t[3368]*t[1959]/560.0+t[3164]*t[1859]/70.0-t[3294]*t[1959]/70.0-
01677 t[3075]*t[53]/560.0-3.0/280.0*t[3075]*t[20]-t[3379]*t[9]/280.0+3.0/560.0*t[3382]*t[1810]+3.0/
01678 280.0*t[3385]*t[1854]-t[3388]*t[1854]/140.0+3.0/280.0*t[3391]*t[190];
01679       t[3395] = t[2220]*t[30];
01680       t[3398] = t[1919]*t[1970];
01681       t[3407] = t[1919]*t[1837];
01682       t[3410] = t[1919]*t[1822];
01683       t[3413] = t[1950]*t[30];
01684       t[3416] = t[23]*t[1822];
01685       t[3419] = t[1919]*t[51];
01686       t[3426] = t[1919]*t[1830];
01687       t[3429] = t[1919]*t[24];
01688       t[3432] = t[1919]*t[1967];
01689       t[3435] = t[1981]*t[1837];
01690       t[3440] = t[38]*t[1840];
01691       t[3443] = t[1919]*t[60];
01692       t[3446] = t[3395]*t[1963]/28.0-3.0/280.0*t[3398]*t[45]-t[3052]*t[1859]/280.0-t[3265]*t[86]/
01693 1680.0+t[3286]*t[53]/560.0-t[3407]*t[86]/280.0+t[3410]*t[62]/280.0+t[3413]*t[1959]/280.0+t[3416]*
01694 t[1974]/280.0+3.0/560.0*t[3419]*t[1959]-3.0/560.0*t[3189]*t[1816]-9.0/560.0*t[3206]*t[1804]+
01695 3.0/560.0*t[3426]*t[26]-3.0/560.0*t[3429]*t[1804]-3.0/560.0*t[3432]*t[45]+3.0/560.0*t[3435]*
01696 t[86]-3.0/560.0*t[3398]*t[95]+3.0/560.0*t[3440]*t[1810]-3.0/560.0*t[3443]*t[1810];
01697       t[3450] = t[1919]*t[18];
01698       t[3453] = t[43]*t[1967];
01699       t[3456] = t[1930]*t[1807];
01700       t[3461] = t[17]*t[1970];
01701       t[3470] = t[2190]*t[1961];
01702       t[3475] = t[29]*t[1813];
01703       t[3478] = t[1945]*t[39];
01704       t[3481] = t[72]*t[1822];
01705       t[3484] = t[2220]*t[13];
01706       t[3487] = t[12]*t[1967];
01707       t[3492] = t[17]*t[1840];
01708       t[3497] = t[3450]*t[1959]/560.0-3.0/280.0*t[3453]*t[1819]+t[3456]*t[53]/560.0-t[3339]*t[20]
01709 /280.0+t[3461]*t[1819]/56.0+3.0/560.0*t[3391]*t[9]-t[3443]*t[1854]/560.0-t[3398]*t[4]/560.0+
01710 t[3470]*t[190]/56.0-3.0/560.0*t[3265]*t[190]-t[3475]*t[1859]/168.0+t[3478]*t[1859]/168.0-t[3481]*
01711 t[1816]/280.0+t[3484]*t[1874]/70.0-3.0/280.0*t[3487]*t[1874]+3.0/560.0*t[3419]*t[1819]+t[3492]*
01712 t[1810]/280.0-3.0/560.0*t[3342]*t[1810];
01713       t[3498] = t[1919]*t[1807];
01714       t[3501] = t[1919]*t[98];
01715       t[3506] = t[2366]*t[1837];
01716       t[3509] = t[23]*t[1825];
01717       t[3512] = t[43]*t[1961];
01718       t[3515] = t[1945]*t[1813];
01719       t[3518] = t[2190]*t[18];
01720       t[3521] = t[1981]*t[1822];
01721       t[3524] = t[23]*t[1970];
01722       t[3527] = t[23]*t[1967];
01723       t[3530] = t[1950]*t[1837];
01724       t[3537] = t[29]*t[1967];
01725       t[3544] = t[65]*t[1961];
01726       t[3547] = -3.0/560.0*t[3498]*t[95]+3.0/560.0*t[3501]*t[1874]+3.0/560.0*t[3391]*t[62]+
01727 t[3506]*t[53]/56.0+3.0/560.0*t[3509]*t[1974]+3.0/56.0*t[3512]*t[1959]-t[3515]*t[95]/280.0-t[3518]
01728 *t[1810]/56.0+t[3521]*t[45]/56.0-3.0/560.0*t[3524]*t[1810]-3.0/560.0*t[3527]*t[1804]+t[3530]*
01729 t[20]/280.0+3.0/560.0*t[3081]*t[1959]-t[3432]*t[4]/280.0+3.0/560.0*t[3537]*t[1959]+3.0/560.0*
01730 t[3426]*t[62]+t[3450]*t[1819]/560.0-t[3544]*t[1810]/560.0;
01731       t[3549] = t[1981]*t[24];
01732       t[3562] = t[1950]*t[34];
01733       t[3567] = t[1930]*t[51];
01734       t[3570] = t[2528]*t[24];
01735       t[3573] = t[2528]*t[60];
01736       t[3576] = t[1981]*t[1970];
01737       t[3585] = t[1919]*t[1813];
01738       t[3592] = 3.0/560.0*t[3549]*t[1816]+t[3450]*t[1974]/280.0-3.0/56.0*t[3333]*t[1810]-
01739 t[3429]*t[1854]/280.0-3.0/560.0*t[3407]*t[95]-3.0/560.0*t[3429]*t[1810]-t[3562]*t[1819]/560.0
01740 -3.0/560.0*t[3432]*t[95]+t[3567]*t[1963]/560.0+3.0/280.0*t[3570]*t[1810]+3.0/560.0*t[3573]*
01741 t[1810]-t[3576]*t[53]/280.0-3.0/560.0*t[3052]*t[1810]+3.0/560.0*t[3426]*t[9]-t[3524]*t[1963]/56.0
01742 +t[3585]*t[9]/280.0-t[3527]*t[1854]/280.0-3.0/560.0*t[3527]*t[1810];
01743       t[3599] = t[23]*t[1807];
01744       t[3604] = t[1950]*t[2];
01745       t[3609] = t[1930]*t[1822];
01746       t[3612] = t[1945]*t[1807];
01747       t[3615] = t[1945]*t[13];
01748       t[3618] = t[1945]*t[1970];
01749       t[3621] = t[1945]*t[2];
01750       t[3624] = t[1945]*t[1822];
01751       t[3629] = t[1945]*t[60];
01752       t[3632] = t[1945]*t[34];
01753       t[3635] = t[1945]*t[1825];
01754       t[3638] = t[1945]*t[1840];
01755       t[3641] = -t[3113]*t[1816]/280.0+3.0/280.0*t[3509]*t[1959]+t[3368]*t[1819]/560.0-t[3599]*
01756 t[1854]/560.0-9.0/560.0*t[3315]*t[190]+t[3604]*t[1854]/168.0+3.0/560.0*t[3081]*t[1974]-3.0/
01757 56.0*t[3609]*t[20]+t[3612]*t[20]/56.0+t[3615]*t[1816]/56.0-t[3618]*t[45]/56.0-t[3621]*t[1959]/28.0-
01758 t[3624]*t[26]/28.0+t[3618]*t[86]/28.0+t[3629]*t[1859]/28.0-t[3632]*t[1819]/56.0+t[3635]*t[26]/56.0-
01759 t[3638]*t[190]/56.0;
01760       t[3644] = t[1981]*t[60];
01761       t[3647] = t[1981]*t[34];
01762       t[3650] = t[65]*t[1807];
01763       t[3653] = t[1981]*t[2];
01764       t[3664] = t[72]*t[1961];
01765       t[3667] = t[17]*t[1961];
01766       t[3670] = t[1981]*t[1840];
01767       t[3675] = t[1950]*t[1825];
01768       t[3680] = t[7]*t[1967];
01769       t[3687] = t[38]*t[1970];
01770       t[3690] = 3.0/560.0*t[3644]*t[1804]-3.0/560.0*t[3647]*t[1819]+t[3650]*t[1974]/560.0-
01771 t[3653]*t[1974]/280.0+t[3549]*t[1859]/280.0-t[3521]*t[9]/280.0+t[3243]*t[1859]/560.0-3.0/560.0*
01772 t[3647]*t[1959]+3.0/56.0*t[3664]*t[1959]-t[3667]*t[1874]/28.0-3.0/560.0*t[3670]*t[26]+3.0/560.0
01773 *t[3419]*t[1974]-3.0/560.0*t[3675]*t[20]+3.0/560.0*t[3644]*t[1816]+t[3680]*t[1963]/280.0+3.0/
01774 560.0*t[3576]*t[20]-t[3521]*t[53]/560.0+3.0/560.0*t[3687]*t[1804];
01775       t[3691] = t[2366]*t[1840];
01776       t[3706] = t[2190]*t[98];
01777       t[3711] = t[1945]*t[18];
01778       t[3716] = t[1981]*t[1807];
01779       t[3719] = t[29]*t[1970];
01780       t[3730] = t[1981]*t[13];
01781       t[3733] = 3.0/560.0*t[3691]*t[95]+t[3212]*t[1816]/280.0-t[3653]*t[1963]/560.0+3.0/560.0
01782 *t[3419]*t[1874]-t[3498]*t[4]/560.0-3.0/560.0*t[3315]*t[26]-t[3260]*t[1963]/28.0-t[3706]*t[1963]/
01783 280.0+t[3635]*t[62]/280.0+t[3711]*t[1959]/560.0+t[3379]*t[86]/560.0+3.0/560.0*t[3716]*t[20]-
01784 t[3719]*t[1963]/280.0-t[3719]*t[1874]/280.0+t[3537]*t[1963]/280.0-3.0/560.0*t[3527]*t[1874]-
01785 t[3644]*t[1963]/280.0+3.0/560.0*t[3730]*t[1816];
01786       t[3741] = t[12]*t[1840];
01787       t[3744] = t[12]*t[1822];
01788       t[3747] = t[17]*t[1967];
01789       t[3754] = t[12]*t[1970];
01790       t[3763] = t[1919]*t[2];
01791       t[3768] = t[17]*t[1813];
01792       t[3771] = t[2220]*t[1825];
01793       t[3776] = t[1950]*t[18];
01794       t[3779] = 3.0/560.0*t[3576]*t[45]+t[3138]*t[86]/56.0+t[3161]*t[1819]/56.0-3.0/560.0*
01795 t[3741]*t[1819]-t[3744]*t[1974]/280.0-t[3747]*t[1810]/280.0-3.0/560.0*t[3741]*t[1959]+3.0/560.0
01796 *t[3275]*t[1816]+3.0/560.0*t[3754]*t[1804]+t[3585]*t[190]/560.0-t[3744]*t[1963]/560.0+3.0/560.0
01797 *t[3754]*t[1816]+t[3763]*t[1974]/280.0-t[3429]*t[1859]/280.0+t[3768]*t[1874]/280.0+t[3771]*t[95]/
01798 560.0-t[3432]*t[86]/280.0-t[3776]*t[1810]/8.0;
01799       t[3788] = t[29]*t[1961];
01800       t[3791] = t[29]*t[1807];
01801       t[3802] = t[29]*t[1837];
01802       t[3821] = -t[3388]*t[1804]/280.0+t[3410]*t[9]/280.0-3.0/280.0*t[3443]*t[1804]+t[3413]*
01803 t[1819]/56.0-t[3788]*t[1854]/168.0-t[3791]*t[1874]/56.0+t[3537]*t[1810]/56.0-t[3537]*t[1874]/56.0
01804 -t[3113]*t[1974]/56.0-t[3333]*t[1859]/280.0+t[3802]*t[1819]/56.0+t[3149]*t[1859]/56.0+t[3294]*
01805 t[1804]/56.0-t[3294]*t[1816]/56.0+t[3450]*t[1874]/280.0-t[3407]*t[4]/280.0-t[3576]*t[4]/280.0+
01806 t[3585]*t[62]/280.0-t[3585]*t[95]/280.0;
01807       t[3836] = t[12]*t[1825];
01808       t[3841] = t[12]*t[1813];
01809       t[3846] = t[12]*t[1830];
01810       t[3849] = t[29]*t[1840];
01811       t[3852] = t[2366]*t[1822];
01812       t[3861] = t[65]*t[1837];
01813       t[3866] = t[7]*t[1970];
01814       t[3869] = t[3294]*t[1810]/70.0+t[3067]*t[45]/56.0+t[3055]*t[1804]/56.0-t[3078]*t[1859]/56.0
01815 -t[3067]*t[20]/56.0-3.0/280.0*t[3836]*t[1874]-9.0/560.0*t[3836]*t[1819]-3.0/280.0*t[3841]*
01816 t[1859]+9.0/560.0*t[3275]*t[1804]-9.0/280.0*t[3846]*t[1804]-t[3849]*t[1959]/560.0-t[3852]*t[20]/
01817 56.0+t[3841]*t[1816]/280.0-t[3741]*t[1854]/280.0+9.0/280.0*t[3836]*t[1810]-t[3861]*t[1854]/
01818 280.0-3.0/560.0*t[3103]*t[1859]-3.0/560.0*t[3866]*t[1974];
01819       t[3870] = t[2366]*t[39];
01820       t[3901] = t[2366]*t[24];
01821       t[3908] = 3.0/56.0*t[3870]*t[1959]-9.0/560.0*t[3178]*t[45]+3.0/560.0*t[3055]*t[1854]
01822 -3.0/560.0*t[3116]*t[86]+3.0/560.0*t[3067]*t[4]+3.0/560.0*t[3294]*t[1854]+3.0/560.0*t[3426]*
01823 t[190]-3.0/560.0*t[3100]*t[1859]-9.0/560.0*t[3167]*t[1804]+9.0/560.0*t[3358]*t[1810]+t[3067]*
01824 t[95]/70.0-t[3206]*t[1859]/70.0+t[3055]*t[1810]/70.0-t[3178]*t[86]/70.0-t[3116]*t[45]/70.0-3.0/
01825 560.0*t[3901]*t[1804]+t[3075]*t[4]/70.0-t[3103]*t[1804]/70.0;
01826       t[3916] = t[1945]*t[30];
01827       t[3929] = t[7]*t[1840];
01828       t[3934] = t[7]*t[1825];
01829       t[3939] = t[2528]*t[1822];
01830       t[3946] = t[38]*t[1822];
01831       t[3951] = t[3358]*t[1854]/70.0-t[3629]*t[1804]/56.0-t[3100]*t[1804]/70.0-t[3916]*t[1854]/
01832 280.0+t[3711]*t[1874]/280.0+3.0/560.0*t[3788]*t[1819]+t[3078]*t[1854]/70.0+3.0/280.0*t[3866]*
01833 t[1816]+t[3515]*t[62]/280.0+3.0/56.0*t[3929]*t[1859]+3.0/56.0*t[3090]*t[1804]-3.0/56.0*t[3934]*
01834 t[1859]-3.0/56.0*t[3090]*t[1816]+3.0/560.0*t[3939]*t[95]-3.0/560.0*t[3327]*t[86]-3.0/560.0*
01835 t[3352]*t[1859]+3.0/560.0*t[3946]*t[1810]-t[3272]*t[1854]/56.0;
01836       t[3980] = t[38]*t[1813];
01837       t[3983] = t[72]*t[1830];
01838       t[3986] = t[38]*t[1825];
01839       t[3991] = t[3103]*t[1874]/56.0-t[3129]*t[4]/56.0+t[3116]*t[62]/56.0-t[3116]*t[95]/56.0-
01840 t[3103]*t[1810]/56.0+t[3167]*t[1854]/56.0-t[3621]*t[1963]/168.0+t[3100]*t[1874]/56.0-3.0/280.0*
01841 t[3352]*t[1819]-t[3339]*t[45]/56.0+t[3223]*t[4]/56.0-t[3333]*t[1819]/56.0-t[3333]*t[1804]/56.0-
01842 t[3339]*t[190]/56.0-t[3980]*t[1819]/56.0-3.0/560.0*t[3983]*t[1819]+t[3986]*t[1854]/56.0-t[3980]*
01843 t[1804]/56.0;
01844       t[4022] = t[2528]*t[1840];
01845       t[4031] = 3.0/280.0*t[3220]*t[1810]-3.0/280.0*t[3309]*t[1804]+3.0/280.0*t[3223]*t[95]+
01846 t[3382]*t[1854]/280.0-t[3339]*t[86]/280.0+t[3946]*t[1854]/280.0-t[3980]*t[1859]/280.0+3.0/280.0
01847 *t[3986]*t[1810]+t[3440]*t[1859]/280.0+t[3946]*t[1804]/280.0-t[3986]*t[1859]/280.0+t[3939]*t[45]/
01848 280.0-t[3382]*t[1816]/280.0-t[3647]*t[1963]/280.0+t[4022]*t[86]/280.0-3.0/560.0*t[3189]*t[1804]
01849 +t[3382]*t[1804]/280.0-3.0/560.0*t[3744]*t[1874];
01850       t[4032] = t[2528]*t[34];
01851       t[4045] = t[1930]*t[1825];
01852       t[4050] = t[1950]*t[1807];
01853       t[4059] = t[1930]*t[34];
01854       t[4062] = t[1930]*t[98];
01855       t[4071] = t[2528]*t[39];
01856       t[4074] = t[4032]*t[1859]/280.0-t[3220]*t[1859]/280.0-t[3763]*t[1959]/28.0+t[3443]*t[1859]/
01857 28.0+t[3524]*t[1859]/28.0-t[3416]*t[1959]/28.0-3.0/56.0*t[4045]*t[86]+9.0/560.0*t[3075]*t[95]
01858 -3.0/560.0*t[4050]*t[53]+3.0/56.0*t[3609]*t[45]+3.0/56.0*t[3209]*t[86]+3.0/56.0*t[3385]*t[1804]
01859 +3.0/56.0*t[4059]*t[1859]-3.0/56.0*t[4062]*t[1859]+3.0/280.0*t[3501]*t[1959]-9.0/560.0*
01860 t[3198]*t[1974]-3.0/560.0*t[3352]*t[1963]+t[4071]*t[1859]/560.0;
01861       t[4076] = t[2528]*t[1807];
01862       t[4079] = t[2528]*t[13];
01863       t[4090] = t[2366]*t[1967];
01864       t[4103] = t[2220]*t[34];
01865       t[4116] = -3.0/560.0*t[4076]*t[26]-3.0/560.0*t[4079]*t[1959]-3.0/560.0*t[4032]*t[1959]
01866 -3.0/560.0*t[4022]*t[9]+3.0/560.0*t[3181]*t[20]-3.0/560.0*t[4022]*t[26]-3.0/280.0*t[4090]*
01867 t[190]+3.0/560.0*t[3570]*t[1816]+3.0/560.0*t[3349]*t[20]-t[3220]*t[1963]/280.0-t[3939]*t[53]/
01868 560.0-t[3382]*t[1963]/560.0+t[4103]*t[1874]/140.0+t[3231]*t[45]/280.0-t[3321]*t[1959]/56.0+
01869 t[4071]*t[1804]/280.0-t[3223]*t[53]/280.0+3.0/560.0*t[3573]*t[1819];
01870       t[4117] = t[1950]*t[98];
01871       t[4120] = t[38]*t[1967];
01872       t[4125] = t[1945]*t[1961];
01873       t[4132] = t[38]*t[1961];
01874       t[4155] = t[2431]*t[1961];
01875       t[4160] = -t[4117]*t[1859]/280.0+3.0/560.0*t[4120]*t[1816]+3.0/140.0*t[3521]*t[95]-
01876 t[4125]*t[9]/280.0-t[3986]*t[1963]/280.0+3.0/560.0*t[3240]*t[1819]+t[4132]*t[1859]/560.0-3.0/
01877 560.0*t[3440]*t[1959]-3.0/560.0*t[3198]*t[1959]+t[4132]*t[1804]/280.0+3.0/560.0*t[3116]*t[53]+
01878 9.0/560.0*t[3272]*t[1974]+3.0/280.0*t[3167]*t[1874]-9.0/560.0*t[3186]*t[1874]+9.0/560.0*
01879 t[3129]*t[9]-3.0/560.0*t[3070]*t[62]+t[3178]*t[53]/560.0-t[4155]*t[95]/560.0-3.0/280.0*t[3498]*
01880 t[45];
01881       t[4164] = t[2431]*t[39];
01882       t[4179] = t[1]*t[1961];
01883       t[4188] = t[2220]*t[1840];
01884       t[4197] = t[1930]*t[60];
01885       t[4200] = t[2366]*t[1961];
01886       t[4205] = -t[4164]*t[1810]/560.0+3.0/560.0*t[3103]*t[1963]+t[3206]*t[1963]/560.0-3.0/
01887 560.0*t[4155]*t[4]-3.0/560.0*t[4164]*t[1854]+3.0/560.0*t[3129]*t[26]-3.0/560.0*t[3544]*t[1819]-
01888 t[4179]*t[1810]/560.0+3.0/560.0*t[3141]*t[1959]-3.0/560.0*t[4179]*t[1854]+t[3167]*t[1963]/560.0
01889 -t[4188]*t[26]/56.0-9.0/560.0*t[3096]*t[1874]+3.0/560.0*t[3100]*t[1963]-3.0/280.0*t[3419]*
01890 t[1804]-3.0/560.0*t[4197]*t[1874]+t[4200]*t[20]/28.0+3.0/280.0*t[3391]*t[95];
01891       t[4228] = t[65]*t[1813];
01892       t[4239] = t[2366]*t[34];
01893       t[4242] = t[2220]*t[2];
01894       t[4245] = t[3615]*t[1974]/560.0-t[3450]*t[1859]/280.0-3.0/280.0*t[3426]*t[45]+t[3763]*
01895 t[1854]/280.0-t[3585]*t[86]/280.0+t[3410]*t[4]/280.0+3.0/280.0*t[3084]*t[1874]+t[3087]*t[1819]/
01896 70.0+3.0/140.0*t[3934]*t[1854]-t[3093]*t[1854]/70.0-3.0/140.0*t[3087]*t[1804]+t[4228]*t[1874]/
01897 280.0+t[3939]*t[4]/280.0+t[3475]*t[1963]/168.0-t[3265]*t[45]/560.0-t[3512]*t[1874]/56.0+3.0/
01898 560.0*t[4239]*t[1810]+t[4242]*t[1974]/280.0;
01899       t[4261] = t[2366]*t[60];
01900       t[4270] = t[2220]*t[1967];
01901       t[4281] = t[1950]*t[1967];
01902       t[4286] = -3.0/560.0*t[3585]*t[45]+3.0/560.0*t[3391]*t[4]+3.0/560.0*t[3501]*t[1854]-3.0
01903 /560.0*t[3450]*t[1804]+3.0/560.0*t[3509]*t[1854]-3.0/560.0*t[3368]*t[1804]-t[3257]*t[1854]/
01904 280.0-3.0/56.0*t[4261]*t[1963]+3.0/560.0*t[3687]*t[1816]-t[3368]*t[1810]/280.0-3.0/280.0*
01905 t[3599]*t[1804]-t[4270]*t[45]/280.0+t[3368]*t[1874]/280.0-t[3629]*t[1854]/560.0+3.0/560.0*t[3509]
01906 *t[1963]-t[3156]*t[1874]/56.0-t[4281]*t[62]/56.0+t[3530]*t[26]/280.0;
01907       t[4297] = t[1950]*t[1961];
01908       t[4302] = t[2366]*t[18];
01909       t[4307] = t[1981]*t[98];
01910       t[4312] = t[43]*t[1822];
01911       t[4321] = t[1950]*t[1830];
01912       t[4328] = -3.0/280.0*t[3327]*t[45]+t[3776]*t[1963]/168.0+t[3530]*t[190]/56.0+t[3635]*t[95]/
01913 56.0+t[4281]*t[95]/56.0-t[4297]*t[4]/168.0-t[3358]*t[1859]/56.0-t[4302]*t[1819]/560.0+t[3215]*
01914 t[1859]/560.0+9.0/280.0*t[4307]*t[1810]-3.0/280.0*t[3315]*t[62]+t[4312]*t[1874]/280.0+t[3612]*
01915 t[9]/560.0-t[3670]*t[4]/280.0-t[3470]*t[62]/28.0-t[4321]*t[53]/280.0+3.0/280.0*t[3744]*t[1854]+
01916 9.0/280.0*t[3315]*t[95];
01917       t[4335] = t[1981]*t[1813];
01918       t[4348] = t[2220]*t[51];
01919       t[4369] = 3.0/280.0*t[3653]*t[1854]-3.0/280.0*t[3275]*t[1874]-3.0/280.0*t[4335]*t[86]+
01920 t[4188]*t[86]/280.0+3.0/280.0*t[3521]*t[4]+9.0/560.0*t[3716]*t[45]+3.0/560.0*t[4164]*t[1859]
01921 -3.0/560.0*t[3138]*t[9]-t[4348]*t[1816]/280.0+3.0/560.0*t[3175]*t[20]+3.0/560.0*t[3186]*t[1816]
01922 +9.0/560.0*t[3070]*t[20]-3.0/560.0*t[3067]*t[53]-3.0/560.0*t[3055]*t[1963]+3.0/560.0*t[4155]*
01923 t[86]+t[4164]*t[1804]/560.0+3.0/560.0*t[3096]*t[1816]-t[3358]*t[1963]/560.0;
01924       t[4406] = 3.0/560.0*t[4179]*t[1859]-9.0/560.0*t[3149]*t[1959]+t[4179]*t[1804]/560.0-3.0
01925 /560.0*t[3294]*t[1963]-3.0/560.0*t[3149]*t[1974]+9.0/560.0*t[3164]*t[1816]+t[3841]*t[1819]/56.0
01926 +t[3836]*t[1854]/28.0-t[3275]*t[1854]/56.0-t[3841]*t[1804]/28.0-3.0/560.0*t[3836]*t[1959]-3.0/
01927 280.0*t[3315]*t[20]+3.0/280.0*t[3670]*t[45]+t[3716]*t[86]/70.0-3.0/280.0*t[4307]*t[1816]-3.0/
01928 280.0*t[3730]*t[1874]-t[3653]*t[1959]/140.0+3.0/280.0*t[3647]*t[1804];
01929       t[4434] = t[43]*t[1970];
01930       t[4439] = t[1930]*t[1813];
01931       t[4446] = -t[3521]*t[190]/70.0-t[3653]*t[1819]/70.0+t[3576]*t[86]/140.0+t[3644]*t[1859]/
01932 140.0+t[3730]*t[1859]/70.0-9.0/560.0*t[4079]*t[1974]+9.0/560.0*t[3181]*t[190]+9.0/560.0*
01933 t[3570]*t[1819]-3.0/560.0*t[3327]*t[53]+3.0/560.0*t[3231]*t[95]-3.0/560.0*t[3309]*t[1963]+9.0/
01934 560.0*t[4120]*t[1819]+3.0/560.0*t[4132]*t[1810]+9.0/280.0*t[4434]*t[1816]+3.0/280.0*t[3501]*
01935 t[1810]+t[4439]*t[53]/560.0+9.0/560.0*t[3342]*t[1959]+t[3512]*t[1816]/28.0;
01936       t[4451] = t[1919]*t[39];
01937       t[4480] = t[1945]*t[98];
01938       t[4487] = t[3470]*t[95]/280.0+3.0/560.0*t[3501]*t[1963]-3.0/560.0*t[4451]*t[1804]+9.0/
01939 560.0*t[3599]*t[1959]+t[3419]*t[1963]/280.0+t[3861]*t[1963]/560.0+3.0/560.0*t[3391]*t[53]-9.0/
01940 560.0*t[3443]*t[1819]-3.0/280.0*t[4312]*t[1963]+t[3061]*t[1816]/56.0+3.0/560.0*t[3407]*t[26]+
01941 t[3398]*t[86]/28.0+t[3664]*t[1810]/280.0-3.0/560.0*t[3527]*t[1819]+3.0/560.0*t[3257]*t[1959]
01942 -3.0/560.0*t[3629]*t[1974]+3.0/56.0*t[4480]*t[1816]-3.0/560.0*t[3866]*t[1874]-3.0/560.0*
01943 t[3524]*t[1874];
01944       t[4495] = t[23]*t[1961];
01945       t[4506] = t[1981]*t[30];
01946       t[4523] = t[2366]*t[13];
01947       t[4528] = t[1945]*t[24];
01948       t[4533] = 3.0/280.0*t[3429]*t[1959]-3.0/560.0*t[4495]*t[1804]-9.0/560.0*t[3524]*t[1819]
01949 -3.0/280.0*t[3836]*t[1816]+9.0/560.0*t[3730]*t[1804]-9.0/560.0*t[4307]*t[1819]+3.0/560.0*
01950 t[4506]*t[1859]-3.0/560.0*t[3521]*t[62]+t[4335]*t[20]/280.0+t[3368]*t[1974]/280.0+3.0/280.0*
01951 t[3435]*t[45]-3.0/280.0*t[4307]*t[1874]-t[3675]*t[190]/70.0-t[3515]*t[86]/168.0+t[4523]*t[1854]/
01952 560.0-t[3632]*t[1963]/140.0+t[4528]*t[1816]/280.0-t[3385]*t[1959]/56.0;
01953       t[4558] = t[1930]*t[1837];
01954       t[4569] = t[1981]*t[51];
01955       t[4572] = -t[3609]*t[26]/56.0+t[3983]*t[1854]/56.0+t[4197]*t[1859]/56.0+t[3866]*t[1859]/
01956 56.0+t[3186]*t[1859]/560.0+t[3741]*t[1859]/56.0-t[3836]*t[1859]/56.0-t[3315]*t[86]/56.0+t[3670]*
01957 t[86]/56.0+t[3653]*t[1804]/56.0-t[4307]*t[1859]/56.0+t[3252]*t[1859]/280.0+t[4558]*t[86]/280.0-
01958 t[3385]*t[1874]/280.0-t[3203]*t[4]/280.0-t[3609]*t[62]/280.0+3.0/140.0*t[3744]*t[1810]-3.0/
01959 140.0*t[4569]*t[1859];
01960       t[4576] = t[1981]*t[1830];
01961       t[4581] = t[1919]*t[34];
01962       t[4584] = t[1919]*t[1840];
01963       t[4599] = t[1919]*t[1961];
01964       t[4604] = t[23]*t[1840];
01965       t[4615] = 3.0/140.0*t[3653]*t[1810]-3.0/140.0*t[4576]*t[86]+3.0/280.0*t[4451]*t[1859]
01966 -9.0/280.0*t[4581]*t[1959]-9.0/280.0*t[4584]*t[26]+t[3687]*t[1859]/280.0+9.0/280.0*t[3443]*
01967 t[1816]+9.0/280.0*t[3398]*t[20]-3.0/280.0*t[3410]*t[53]-3.0/280.0*t[3763]*t[1963]-3.0/56.0*
01968 t[3416]*t[1816]+3.0/280.0*t[4599]*t[86]+3.0/280.0*t[4495]*t[1859]-9.0/280.0*t[4604]*t[1959]-3.0
01969 /280.0*t[3416]*t[1963]-t[4120]*t[1854]/28.0+t[3980]*t[1974]/28.0+9.0/560.0*t[3567]*t[1819];
01970       t[4620] = t[1930]*t[13];
01971       t[4645] = t[2366]*t[1813];
01972       t[4654] = 3.0/560.0*t[3324]*t[1816]+3.0/560.0*t[4439]*t[20]-9.0/560.0*t[4620]*t[1810]
01973 -9.0/560.0*t[3456]*t[95]+3.0/560.0*t[3052]*t[1974]+t[3680]*t[1859]/280.0-3.0/560.0*t[3429]*
01974 t[1874]+3.0/560.0*t[3407]*t[9]-t[4439]*t[95]/56.0-3.0/560.0*t[3432]*t[62]-3.0/560.0*t[3680]*
01975 t[1810]-t[3395]*t[1854]/280.0+t[3450]*t[1963]/560.0-t[3181]*t[4]/28.0+t[4645]*t[62]/280.0-t[3506]*
01976 t[4]/280.0+3.0/560.0*t[3435]*t[20]-t[4599]*t[4]/560.0;
01977       t[4667] = t[1930]*t[1967];
01978       t[4680] = t[1930]*t[24];
01979       t[4695] = t[3368]*t[1963]/560.0+3.0/560.0*t[3257]*t[1974]+t[3771]*t[190]/560.0-t[3680]*
01980 t[1854]/140.0+t[3087]*t[1974]/140.0-t[4667]*t[4]/140.0+3.0/280.0*t[3286]*t[62]-3.0/560.0*
01981 t[3618]*t[9]+t[4439]*t[190]/70.0-t[4620]*t[1854]/70.0+t[3324]*t[1819]/70.0-t[4680]*t[1854]/140.0
01982 -3.0/280.0*t[4558]*t[95]+3.0/280.0*t[3567]*t[1874]-t[3456]*t[4]/70.0-3.0/560.0*t[4599]*t[45]
01983 -3.0/280.0*t[3252]*t[1810]+3.0/560.0*t[3498]*t[9];
01984       t[4732] = -3.0/560.0*t[3432]*t[190]-3.0/560.0*t[3398]*t[62]-3.0/560.0*t[3443]*t[1874]+
01985 t[3426]*t[53]/280.0-t[4599]*t[95]/280.0-t[3410]*t[26]/28.0-t[4050]*t[26]/560.0-t[4451]*t[1810]/
01986 280.0-t[3638]*t[62]/280.0-t[3632]*t[1874]/280.0-t[3629]*t[1810]/140.0+t[3635]*t[9]/280.0-3.0/
01987 140.0*t[4439]*t[45]+3.0/140.0*t[4062]*t[1854]+3.0/280.0*t[4239]*t[1974]-3.0/140.0*t[3324]*
01988 t[1804]-3.0/560.0*t[3407]*t[45]+t[3084]*t[1854]/56.0;
01989       t[4744] = t[7]*t[1961];
01990       t[4761] = t[65]*t[1967];
01991       t[4764] = t[1945]*t[1967];
01992       t[4771] = t[2190]*t[1830];
01993       t[4774] = 3.0/560.0*t[4188]*t[45]-t[3087]*t[1810]/56.0+t[3567]*t[1854]/56.0-t[3252]*t[1854]
01994 /56.0+t[3286]*t[4]/56.0-t[4744]*t[1854]/560.0+t[3763]*t[1819]/56.0+t[3324]*t[1874]/56.0+3.0/
01995 560.0*t[3087]*t[1816]-t[4558]*t[4]/56.0+t[4439]*t[62]/56.0-t[3324]*t[1810]/56.0+t[4188]*t[95]/280.0
01996 -t[4761]*t[1854]/560.0-t[4764]*t[4]/560.0-t[3090]*t[1959]/56.0+3.0/560.0*t[3178]*t[9]+3.0/280.0
01997 *t[4771]*t[62];
01998       t[4783] = t[2366]*t[98];
01999       t[4814] = -t[3632]*t[1959]/56.0+t[3084]*t[1963]/560.0+t[3049]*t[53]/280.0-t[3450]*t[1810]/
02000 280.0+3.0/560.0*t[4783]*t[1874]+3.0/280.0*t[3181]*t[95]-t[4348]*t[1959]/280.0+t[3711]*t[1974]/
02001 560.0-t[3570]*t[1854]/28.0+t[3339]*t[9]/28.0-t[3629]*t[1819]/70.0+t[4125]*t[20]/140.0-t[3618]*
02002 t[190]/70.0+t[3478]*t[1816]/140.0+t[3615]*t[1959]/70.0+3.0/560.0*t[3084]*t[1974]-t[3946]*t[1819]/
02003 560.0+t[4071]*t[1959]/56.0+t[4764]*t[20]/280.0;
02004       t[4828] = t[1930]*t[1970];
02005       t[4831] = t[2220]*t[1822];
02006       t[4836] = t[43]*t[1825];
02007       t[4839] = t[1950]*t[13];
02008       t[4854] = t[43]*t[1837];
02009       t[4859] = -t[3638]*t[9]/280.0+t[3081]*t[1963]/280.0-t[3215]*t[1974]/280.0-t[3632]*t[1974]/
02010 280.0-t[3638]*t[53]/140.0+t[4828]*t[86]/56.0+t[4831]*t[9]/280.0-3.0/560.0*t[3576]*t[9]+3.0/
02011 560.0*t[4836]*t[1874]+t[4839]*t[1804]/70.0-t[4451]*t[1854]/560.0-t[3638]*t[26]/56.0-3.0/560.0*
02012 t[3719]*t[1974]+t[4125]*t[86]/168.0-3.0/56.0*t[3632]*t[1804]-3.0/560.0*t[3670]*t[190]-t[4854]*
02013 t[1859]/280.0-t[4125]*t[45]/280.0;
02014       t[4896] = -3.0/280.0*t[3309]*t[1974]-3.0/56.0*t[3638]*t[45]+t[4188]*t[9]/56.0+t[3231]*t[86]
02015 /560.0-t[3478]*t[1804]/280.0-t[4321]*t[45]/56.0+t[3635]*t[53]/280.0+9.0/280.0*t[4062]*t[1810]+
02016 9.0/280.0*t[4045]*t[95]-3.0/280.0*t[3324]*t[1859]+t[3413]*t[1974]/56.0-3.0/280.0*t[4439]*t[86]+
02017 3.0/280.0*t[3609]*t[4]-3.0/560.0*t[4059]*t[1974]+t[3061]*t[1959]/140.0+t[3916]*t[1816]/280.0+
02018 t[3456]*t[86]/56.0-t[4528]*t[1804]/280.0;
02019       t[4910] = t[72]*t[1970];
02020       t[4927] = t[2190]*t[1840];
02021       t[4936] = t[4480]*t[1974]/280.0-t[4117]*t[1874]/56.0+t[3549]*t[1963]/280.0+t[3333]*t[1974]/
02022 28.0-t[3788]*t[1974]/280.0+3.0/560.0*t[3144]*t[1963]+3.0/560.0*t[4910]*t[1859]-t[4188]*t[53]/
02023 28.0-t[4764]*t[45]/280.0+3.0/56.0*t[4335]*t[62]-t[3223]*t[86]/280.0-9.0/280.0*t[3260]*t[1959]+
02024 t[3771]*t[4]/560.0-t[4528]*t[1854]/560.0+3.0/560.0*t[4927]*t[95]-t[3624]*t[53]/168.0-3.0/560.0*
02025 t[3453]*t[1810]+t[3612]*t[26]/70.0;
02026       t[4939] = t[72]*t[1837];
02027       t[4946] = t[1950]*t[1813];
02028       t[4955] = t[29]*t[1822];
02029       t[4958] = t[29]*t[1825];
02030       t[4977] = -t[3518]*t[1819]/70.0-3.0/280.0*t[4939]*t[1810]+t[3624]*t[4]/168.0-t[3156]*
02031 t[1854]/28.0+t[4946]*t[9]/28.0-t[3537]*t[1854]/28.0+t[3475]*t[1974]/28.0+t[3530]*t[9]/56.0+t[4955]*
02032 t[1854]/168.0-t[4958]*t[1819]/70.0-t[4955]*t[1874]/280.0+t[3791]*t[1804]/70.0+t[3802]*t[1859]/
02033 280.0-t[3113]*t[1804]/56.0+t[4117]*t[1810]/56.0+t[3719]*t[1859]/560.0+t[4958]*t[1810]/56.0+
02034 t[4958]*t[1854]/28.0;
02035       t[5010] = t[2366]*t[51];
02036       t[5013] = t[1950]*t[51];
02037       t[5018] = -3.0/560.0*t[3215]*t[1874]+t[3802]*t[1804]/56.0-t[3113]*t[1819]/56.0+t[3791]*
02038 t[1810]/56.0+t[3419]*t[1854]/280.0-t[4946]*t[45]/28.0+t[3675]*t[4]/28.0+t[4117]*t[1854]/28.0-
02039 t[3776]*t[1804]/28.0+t[3113]*t[1854]/8.0-t[3802]*t[1854]/8.0-t[3475]*t[1810]/8.0+t[3475]*t[1874]/
02040 8.0-3.0/56.0*t[3113]*t[1874]-t[3768]*t[1810]/280.0+t[5010]*t[1854]/280.0+t[5013]*t[1854]/8.0+
02041 t[4321]*t[4]/8.0;
02042       t[5049] = t[72]*t[1840];
02043       t[5052] = t[2366]*t[1825];
02044       t[5057] = t[3776]*t[1874]/8.0-t[3530]*t[4]/8.0+t[4946]*t[62]/8.0-3.0/56.0*t[4321]*t[62]-3.0
02045 /56.0*t[5013]*t[1874]-t[4946]*t[95]/8.0+3.0/56.0*t[3413]*t[1810]-t[4495]*t[1819]/70.0-3.0/560.0
02046 *t[3670]*t[9]-t[4495]*t[1874]/140.0-3.0/280.0*t[3524]*t[1974]+3.0/280.0*t[3527]*t[1959]-t[4599]*
02047 t[62]/140.0-t[3249]*t[1859]/280.0+t[3481]*t[1804]/280.0+t[5049]*t[1859]/280.0+t[5052]*t[53]/280.0
02048 -t[3870]*t[1804]/280.0;
02049       t[5063] = t[2366]*t[2];
02050       t[5068] = t[2366]*t[1970];
02051       t[5091] = t[2366]*t[1830];
02052       t[5096] = t[72]*t[1967];
02053       t[5099] = -t[4200]*t[45]/280.0+3.0/280.0*t[4200]*t[86]-3.0/280.0*t[5063]*t[1963]-3.0/
02054 280.0*t[3852]*t[53]+9.0/280.0*t[5068]*t[20]+9.0/280.0*t[4261]*t[1816]-9.0/280.0*t[3691]*t[26]
02055 -9.0/280.0*t[4239]*t[1959]+3.0/280.0*t[3870]*t[1859]+t[4836]*t[1963]/280.0+t[3189]*t[1963]/
02056 280.0-t[3512]*t[1804]/280.0-t[3512]*t[1810]/280.0+t[5010]*t[1963]/280.0-t[3870]*t[1810]/280.0+
02057 t[5091]*t[53]/280.0+3.0/140.0*t[3106]*t[1974]-3.0/140.0*t[5096]*t[1854];
02058       t[5100] = t[2190]*t[24];
02059       t[5103] = t[2190]*t[1967];
02060       t[5108] = t[43]*t[1813];
02061       t[5117] = t[72]*t[1807];
02062       t[5124] = t[2190]*t[1825];
02063       t[5127] = t[2190]*t[60];
02064       t[5130] = t[2190]*t[1822];
02065       t[5135] = t[2190]*t[1970];
02066       t[5138] = t[2190]*t[13];
02067       t[5141] = t[2190]*t[1807];
02068       t[5148] = -3.0/140.0*t[5100]*t[1854]-3.0/140.0*t[5103]*t[4]+3.0/280.0*t[3512]*t[1859]+
02069 3.0/560.0*t[5108]*t[1974]-3.0/560.0*t[3453]*t[1854]+3.0/560.0*t[4910]*t[1804]-3.0/560.0*
02070 t[3249]*t[1959]-3.0/560.0*t[5117]*t[1816]+3.0/560.0*t[4927]*t[190]-3.0/560.0*t[3706]*t[1959]
02071 -3.0/560.0*t[5124]*t[26]+3.0/560.0*t[5127]*t[1859]-3.0/560.0*t[5130]*t[26]+3.0/560.0*t[5127]*
02072 t[1804]+3.0/560.0*t[5135]*t[45]-3.0/560.0*t[5138]*t[1816]-3.0/560.0*t[5141]*t[20]+3.0/560.0*
02073 t[4910]*t[1810]+3.0/560.0*t[5049]*t[1874];
02074       t[5177] = t[2366]*t[30];
02075       t[5190] = -3.0/560.0*t[4939]*t[1816]-3.0/560.0*t[3983]*t[1959]+3.0/280.0*t[4854]*
02076 t[1974]+t[5108]*t[1963]/280.0-3.0/280.0*t[3453]*t[1874]-t[3512]*t[1854]/280.0-t[3870]*t[1854]/
02077 280.0-t[4200]*t[4]/280.0+t[4302]*t[1963]/280.0-3.0/280.0*t[4090]*t[62]+3.0/280.0*t[3506]*t[9]
02078 -3.0/280.0*t[3901]*t[1874]+3.0/280.0*t[5177]*t[1974]+t[4645]*t[53]/280.0+3.0/280.0*t[4910]*
02079 t[1816]-t[3481]*t[1963]/280.0+t[3664]*t[1804]/280.0-3.0/280.0*t[5049]*t[1959];
02080       t[5197] = t[2190]*t[2];
02081       t[5206] = t[2190]*t[34];
02082       t[5209] = t[2190]*t[39];
02083       t[5230] = t[3664]*t[1859]/280.0-t[3249]*t[1963]/280.0+t[3470]*t[86]/280.0-t[5197]*t[1963]/
02084 280.0-t[5130]*t[53]/280.0+3.0/280.0*t[5135]*t[20]-3.0/280.0*t[4927]*t[26]-3.0/280.0*t[5206]*
02085 t[1959]+t[5209]*t[1859]/280.0-3.0/280.0*t[3352]*t[1804]+t[3052]*t[1963]/140.0+3.0/280.0*t[3432]
02086 *t[26]-t[3078]*t[1963]/560.0+t[3407]*t[53]/140.0-3.0/280.0*t[3443]*t[1974]+t[3087]*t[1874]/56.0+
02087 t[3498]*t[53]/70.0+t[3342]*t[1963]/70.0;
02088       t[5246] = t[65]*t[1822];
02089       t[5259] = t[1950]*t[1840];
02090       t[5270] = -t[4599]*t[190]/70.0-t[4451]*t[1819]/70.0-3.0/280.0*t[3398]*t[9]+t[3650]*t[1816]/
02091 56.0-3.0/56.0*t[3512]*t[1974]-t[3363]*t[1804]/56.0+t[3161]*t[1959]/56.0-t[5246]*t[1963]/168.0-
02092 t[5013]*t[1816]/280.0-3.0/560.0*t[3836]*t[1974]-t[4321]*t[20]/280.0-t[4117]*t[1819]/70.0+t[3413]*
02093 t[1859]/280.0-t[5259]*t[62]/280.0-t[5138]*t[1859]/560.0+t[3530]*t[86]/280.0-t[3604]*t[1874]/280.0
02094 -t[5013]*t[1819]/56.0;
02095       t[5307] = t[4839]*t[1810]/56.0+t[4050]*t[95]/56.0+t[3413]*t[1804]/56.0-t[3675]*t[62]/56.0+
02096 t[4281]*t[20]/280.0-t[5013]*t[1804]/56.0+t[3675]*t[95]/56.0-t[3776]*t[1859]/168.0-t[4946]*t[86]/
02097 168.0+t[3119]*t[4]/168.0+t[4050]*t[45]/70.0+t[3562]*t[1810]/280.0-t[4321]*t[190]/56.0+t[5259]*t[95]
02098 /280.0+t[3629]*t[1816]/56.0+t[3618]*t[20]/56.0+t[4480]*t[1963]/280.0+3.0/560.0*t[4836]*t[1819];
02099       t[5324] = t[2366]*t[1807];
02100       t[5347] = -t[3744]*t[1819]/70.0+3.0/560.0*t[5049]*t[1819]+3.0/560.0*t[4836]*t[1810]-3.0
02101 /560.0*t[5091]*t[20]-t[5091]*t[86]/140.0+3.0/560.0*t[4783]*t[1819]+t[3324]*t[1963]/560.0-3.0/
02102 560.0*t[5324]*t[45]-t[4523]*t[1859]/70.0-3.0/560.0*t[5010]*t[1816]+t[3178]*t[4]/56.0-3.0/280.0*
02103 t[4783]*t[1816]+3.0/560.0*t[5052]*t[190]+t[3852]*t[190]/70.0+t[5063]*t[1819]/70.0+3.0/280.0*
02104 t[4239]*t[1804]-t[4335]*t[45]/28.0+t[3315]*t[4]/28.0;
02105       t[5384] = t[4307]*t[1854]/28.0+t[3754]*t[1859]/140.0-t[3212]*t[1804]/28.0+3.0/56.0*
02106 t[4569]*t[1854]-3.0/56.0*t[4506]*t[1854]+3.0/56.0*t[4576]*t[4]-3.0/56.0*t[3435]*t[4]-3.0/56.0*
02107 t[4335]*t[95]-3.0/56.0*t[3212]*t[1810]+3.0/56.0*t[3846]*t[1854]-3.0/56.0*t[3144]*t[1854]-3.0/
02108 56.0*t[3841]*t[1810]+3.0/56.0*t[3841]*t[1874]-3.0/280.0*t[4132]*t[1854]-9.0/280.0*t[4120]*
02109 t[1874]+3.0/280.0*t[3980]*t[1963]+3.0/140.0*t[4599]*t[20]+3.0/140.0*t[4451]*t[1816];
02110       t[5422] = -3.0/140.0*t[4584]*t[53]-3.0/140.0*t[4581]*t[1963]-3.0/140.0*t[4604]*t[1963]+
02111 3.0/140.0*t[4495]*t[1816]+3.0/280.0*t[3339]*t[53]+9.0/280.0*t[3318]*t[1974]+t[4480]*t[1874]/
02112 280.0-9.0/280.0*t[3570]*t[1874]+9.0/280.0*t[3336]*t[9]-9.0/560.0*t[3175]*t[62]-9.0/280.0*
02113 t[3181]*t[62]+3.0/280.0*t[3333]*t[1963]-3.0/280.0*t[4071]*t[1854]-t[3487]*t[1854]/56.0+t[3841]*
02114 t[1974]/56.0-t[3049]*t[4]/56.0-t[4495]*t[1854]/560.0+t[3212]*t[1974]/56.0;
02115       t[5441] = t[1950]*t[1970];
02116       t[5444] = t[1950]*t[60];
02117       t[5463] = -t[3549]*t[1854]/56.0-t[3716]*t[4]/56.0+t[4335]*t[9]/56.0+t[3849]*t[1859]/280.0-
02118 t[4958]*t[1859]/280.0-t[4955]*t[1816]/280.0-t[3604]*t[1959]/560.0-3.0/560.0*t[5177]*t[1804]-
02119 t[3524]*t[1854]/560.0+t[5441]*t[86]/560.0+t[5444]*t[1859]/560.0-t[4955]*t[1959]/560.0-t[3675]*t[86]
02120 /280.0+t[3119]*t[45]/280.0+t[5259]*t[86]/280.0+t[3604]*t[1804]/280.0-t[3119]*t[20]/280.0-3.0/
02121 560.0*t[4958]*t[1816]+t[4955]*t[1810]/140.0;
02122       t[5503] = 3.0/560.0*t[3849]*t[1804]-3.0/560.0*t[4955]*t[1819]+t[3119]*t[95]/140.0-t[5013]
02123 *t[1859]/140.0+t[3604]*t[1810]/140.0-t[4321]*t[86]/140.0+3.0/560.0*t[4050]*t[86]+3.0/560.0*
02124 t[4839]*t[1859]+3.0/560.0*t[5259]*t[45]-3.0/560.0*t[4117]*t[1816]-3.0/560.0*t[3604]*t[1819]-
02125 t[4281]*t[4]/28.0+t[3776]*t[1974]/28.0+t[3156]*t[1810]/56.0-t[4958]*t[1874]/56.0+t[4188]*t[190]/
02126 70.0-t[4495]*t[1974]/56.0-3.0/140.0*t[3231]*t[62];
02127       t[5540] = 3.0/140.0*t[3318]*t[1963]+3.0/140.0*t[3336]*t[53]-t[4076]*t[53]/70.0-t[4079]*
02128 t[1963]/70.0+t[3231]*t[190]/70.0+t[4071]*t[1819]/70.0-3.0/140.0*t[4071]*t[1874]+3.0/140.0*
02129 t[4045]*t[4]-3.0/56.0*t[3747]*t[1959]+t[4132]*t[1819]/70.0+t[4836]*t[1854]/280.0-3.0/140.0*
02130 t[4132]*t[1874]+t[3260]*t[1859]/56.0+t[4312]*t[1804]/56.0-t[4836]*t[1859]/56.0-t[4312]*t[1816]/56.0
02131 -3.0/280.0*t[3573]*t[1974]-t[4071]*t[1974]/56.0;
02132       t[5568] = t[2190]*t[1837];
02133       t[5579] = -t[5259]*t[26]/560.0+t[3181]*t[53]/56.0-3.0/280.0*t[3349]*t[9]-t[3573]*t[1963]/
02134 56.0+3.0/280.0*t[3181]*t[26]-t[3231]*t[9]/56.0+3.0/280.0*t[3570]*t[1959]+t[3570]*t[1963]/56.0+
02135 t[3231]*t[26]/56.0+3.0/280.0*t[4120]*t[1959]-t[3687]*t[1963]/56.0+t[4132]*t[1959]/56.0-t[3106]*
02136 t[1804]/140.0-t[5568]*t[86]/560.0-t[4132]*t[1974]/56.0-3.0/280.0*t[3687]*t[1974]-t[4164]*t[1974]/
02137 56.0+t[3175]*t[53]/56.0;
02138       t[5612] = t[43]*t[1807];
02139       t[5619] = -3.0/280.0*t[3070]*t[9]-t[3058]*t[1963]/56.0+3.0/280.0*t[3175]*t[26]+t[3186]*
02140 t[1963]/56.0+t[4155]*t[26]/56.0+t[4164]*t[1959]/56.0+3.0/280.0*t[3096]*t[1959]+t[3096]*t[1963]/
02141 56.0+t[3203]*t[53]/560.0+t[4179]*t[1959]/56.0-3.0/280.0*t[3164]*t[1974]-3.0/280.0*t[4836]*
02142 t[1816]-t[3189]*t[1859]/140.0+t[4312]*t[1810]/140.0+3.0/280.0*t[3260]*t[1804]+t[4312]*t[1819]/
02143 70.0-t[5612]*t[1859]/70.0+t[3852]*t[45]/56.0-t[5063]*t[1816]/56.0;
02144       t[5658] = t[3691]*t[86]/56.0-3.0/560.0*t[4667]*t[62]+3.0/560.0*t[4680]*t[1816]+t[3719]*
02145 t[1819]/560.0+t[5063]*t[1804]/56.0+t[4239]*t[1859]/56.0-t[4783]*t[1859]/56.0-t[5108]*t[1816]/
02146 560.0+t[3260]*t[1854]/560.0+3.0/560.0*t[4071]*t[1810]-3.0/560.0*t[5177]*t[1819]+3.0/560.0*
02147 t[5091]*t[9]-3.0/560.0*t[3506]*t[95]+t[5324]*t[4]/560.0-t[4645]*t[45]/280.0+t[5052]*t[4]/280.0+3.0/
02148 560.0*t[5091]*t[62]+3.0/560.0*t[5010]*t[1874];
02149       t[5695] = -3.0/560.0*t[5177]*t[1810]+t[4783]*t[1854]/280.0-t[4302]*t[1804]/280.0-3.0/
02150 560.0*t[3506]*t[45]+3.0/560.0*t[5052]*t[62]+3.0/560.0*t[3189]*t[1874]-3.0/560.0*t[4854]*t[1810]
02151 +t[4228]*t[1816]/280.0+t[5612]*t[1854]/560.0-t[5108]*t[1804]/280.0-t[3067]*t[9]/560.0-t[4179]*
02152 t[1874]/70.0+t[4155]*t[20]/70.0+t[4164]*t[1816]/70.0-t[3138]*t[53]/70.0-t[3064]*t[1963]/70.0-
02153 t[3149]*t[1963]/70.0+t[3573]*t[1854]/280.0;
02154       t[5733] = t[3231]*t[20]/140.0+t[4071]*t[1816]/140.0-t[4022]*t[53]/140.0+3.0/280.0*t[4910]
02155 *t[1874]-t[4032]*t[1963]/140.0-t[3440]*t[1963]/140.0+t[4132]*t[1816]/140.0-t[4155]*t[62]/70.0+
02156 t[3272]*t[1963]/70.0+t[3129]*t[53]/70.0-t[4164]*t[1874]/70.0+t[3363]*t[1859]/28.0+3.0/280.0*
02157 t[3691]*t[9]+t[3220]*t[1854]/56.0-t[5246]*t[1959]/28.0-t[4451]*t[1974]/56.0+t[3432]*t[53]/56.0-
02158 t[3398]*t[53]/56.0;
02159       t[5744] = t[2190]*t[51];
02160       t[5751] = t[2190]*t[1813];
02161       t[5774] = -t[4599]*t[9]/56.0+3.0/560.0*t[3126]*t[1819]+t[3429]*t[1963]/56.0+t[4599]*t[26]/
02162 56.0+t[4495]*t[1959]/56.0-3.0/560.0*t[5744]*t[1804]-3.0/560.0*t[4771]*t[45]+t[5197]*t[1854]/
02163 560.0-t[5751]*t[86]/560.0+3.0/560.0*t[5206]*t[1810]-3.0/560.0*t[4771]*t[190]-3.0/560.0*
02164 t[4854]*t[1819]+3.0/560.0*t[3189]*t[1974]+3.0/560.0*t[5612]*t[1874]+3.0/560.0*t[5063]*t[1974]
02165 -3.0/560.0*t[3901]*t[1859]-9.0/280.0*t[4569]*t[1804]-3.0/560.0*t[4090]*t[86]+3.0/560.0*
02166 t[3852]*t[9];
02167       t[5817] = -3.0/560.0*t[5177]*t[1816]+3.0/560.0*t[4783]*t[1974]+3.0/560.0*t[3691]*t[62]+
02168 3.0/560.0*t[4239]*t[1874]+3.0/560.0*t[5052]*t[9]-t[3506]*t[86]/280.0+t[5063]*t[1874]/280.0+
02169 t[3852]*t[62]/280.0-3.0/560.0*t[4854]*t[1816]+3.0/560.0*t[4312]*t[1974]-3.0/280.0*t[3929]*
02170 t[1810]+3.0/560.0*t[4836]*t[1974]+3.0/560.0*t[3260]*t[1874]+t[3265]*t[9]/140.0-3.0/560.0*
02171 t[3453]*t[1804]-3.0/560.0*t[3453]*t[1859]-9.0/560.0*t[5324]*t[20]-9.0/560.0*t[4523]*t[1816];
02172       t[5854] = -3.0/140.0*t[5063]*t[1959]-3.0/140.0*t[3852]*t[26]+3.0/140.0*t[5068]*t[86]+
02173 3.0/140.0*t[4261]*t[1859]+9.0/560.0*t[3691]*t[190]+9.0/560.0*t[3260]*t[1819]-9.0/560.0*
02174 t[5612]*t[1816]+3.0/140.0*t[4434]*t[1859]-3.0/560.0*t[4090]*t[4]+3.0/560.0*t[4302]*t[1974]-3.0/
02175 560.0*t[3901]*t[1854]-3.0/560.0*t[3901]*t[1810]+3.0/560.0*t[5010]*t[1974]-3.0/560.0*t[4090]*
02176 t[95]+3.0/560.0*t[5324]*t[62]+3.0/560.0*t[4523]*t[1874]+t[5130]*t[62]/560.0-3.0/560.0*t[5744]*
02177 t[1819];
02178       t[5892] = -t[5751]*t[20]/280.0+3.0/560.0*t[5138]*t[1810]-3.0/560.0*t[3299]*t[1804]-3.0/
02179 560.0*t[5568]*t[45]+3.0/560.0*t[3706]*t[1810]+3.0/560.0*t[5124]*t[62]+t[4927]*t[4]/280.0+3.0/
02180 560.0*t[5117]*t[1810]+t[5091]*t[4]/280.0-t[3653]*t[1816]/56.0+t[5197]*t[1874]/560.0-t[5108]*t[1859]
02181 /560.0-t[3100]*t[1810]/56.0-t[3443]*t[1963]/56.0-t[5177]*t[1854]/280.0+t[5130]*t[190]/560.0-
02182 t[3321]*t[1819]/56.0-3.0/560.0*t[5612]*t[1804];
02183       t[5929] = -t[4117]*t[1974]/140.0+t[3788]*t[1959]/280.0+t[3106]*t[1874]/56.0-3.0/280.0*
02184 t[5568]*t[95]+t[5141]*t[4]/70.0-t[5751]*t[45]/140.0+t[5124]*t[4]/140.0+3.0/280.0*t[5744]*t[1874]+
02185 t[5138]*t[1854]/70.0-3.0/280.0*t[3299]*t[1810]+t[3706]*t[1854]/140.0-t[3518]*t[1804]/140.0-
02186 t[5751]*t[190]/70.0+3.0/280.0*t[3983]*t[1874]-t[3106]*t[1819]/70.0-3.0/560.0*t[4939]*t[1804]-
02187 t[5108]*t[1810]/280.0+t[5108]*t[1874]/280.0;
02188       t[5968] = t[3481]*t[1854]/560.0+t[3481]*t[1874]/560.0-t[3106]*t[1859]/560.0-3.0/560.0*
02189 t[3983]*t[1804]-t[3106]*t[1816]/280.0+t[5049]*t[1854]/280.0+3.0/560.0*t[3249]*t[1810]+t[5130]*t[95]
02190 /280.0-t[5744]*t[1859]/280.0+t[5197]*t[1810]/280.0-t[4771]*t[86]/280.0-t[5141]*t[86]/560.0+
02191 t[5197]*t[1819]/560.0-3.0/560.0*t[3249]*t[1816]+3.0/560.0*t[5049]*t[1804]+t[3481]*t[1819]/560.0
02192 -t[5117]*t[1859]/560.0-t[5124]*t[86]/280.0;
02193       t[6005] = t[5130]*t[45]/280.0+t[3275]*t[1859]/70.0-3.0/560.0*t[5124]*t[20]+t[3243]*t[1804]/
02194 560.0-3.0/560.0*t[3706]*t[1816]-t[5197]*t[1816]/280.0+t[4927]*t[86]/280.0+3.0/560.0*t[4927]*
02195 t[45]-t[3312]*t[45]/280.0+3.0/560.0*t[5206]*t[1804]+t[5197]*t[1804]/280.0+t[5206]*t[1859]/280.0-
02196 t[3141]*t[1854]/56.0-t[3706]*t[1859]/280.0-t[5130]*t[20]/280.0-t[4645]*t[20]/560.0+3.0/560.0*
02197 t[4783]*t[1810]+t[4239]*t[1854]/560.0;
02198       t[6043] = -3.0/560.0*t[5010]*t[1804]-3.0/560.0*t[5091]*t[45]+t[3852]*t[4]/560.0+t[5744]*
02199 t[1854]/56.0-t[3299]*t[1854]/56.0+t[4771]*t[4]/56.0+3.0/280.0*t[5612]*t[1974]+t[3518]*t[1874]/
02200 56.0-t[5568]*t[4]/56.0+t[5751]*t[62]/56.0-t[5751]*t[95]/56.0-t[3106]*t[1810]/56.0-t[4854]*t[1854]/
02201 280.0-t[4302]*t[1810]/280.0+t[3081]*t[1854]/280.0+3.0/560.0*t[3240]*t[1816]-t[5141]*t[53]/56.0+
02202 t[3061]*t[1854]/280.0;
02203       t[6044] = t[2220]*t[98];
02204       t[6083] = -3.0/560.0*t[6044]*t[1816]-t[3946]*t[1959]/280.0+3.0/140.0*t[3518]*t[1974]-
02205 t[4744]*t[1810]/560.0+t[3515]*t[9]/560.0-t[3321]*t[1974]/280.0+t[3621]*t[1804]/8.0-3.0/560.0*
02206 t[3506]*t[190]+3.0/560.0*t[3156]*t[1959]-t[3330]*t[4]/560.0-t[3527]*t[1859]/280.0+9.0/560.0*
02207 t[4239]*t[1819]-t[5444]*t[1963]/280.0-3.0/560.0*t[3576]*t[62]-3.0/560.0*t[3612]*t[4]-t[5324]*t[86]/
02208 70.0+t[3849]*t[1810]/280.0+t[5612]*t[1963]/56.0+3.0/280.0*t[3691]*t[45];
02209       t[6123] = -t[3946]*t[1963]/560.0+3.0/560.0*t[5206]*t[1819]-9.0/560.0*t[3299]*t[1819]+
02210 3.0/560.0*t[5206]*t[1874]+t[4451]*t[1959]/56.0+t[5441]*t[45]/280.0+3.0/560.0*t[3198]*t[1804]
02211 -9.0/280.0*t[3567]*t[1804]-t[3052]*t[1854]/280.0-3.0/560.0*t[3680]*t[1874]-t[4228]*t[1810]/
02212 280.0+t[3049]*t[86]/280.0+3.0/280.0*t[3286]*t[20]+3.0/560.0*t[3144]*t[1959]-3.0/280.0*t[3901]
02213 *t[1816]+3.0/560.0*t[3049]*t[190]+t[3562]*t[1859]/280.0-t[3349]*t[53]/56.0;
02214       t[6132] = t[1945]*t[1830];
02215       t[6161] = -t[3382]*t[1819]/560.0-9.0/560.0*t[4076]*t[9]-3.0/560.0*t[3257]*t[1804]-3.0/
02216 560.0*t[4620]*t[1874]+t[6132]*t[26]/140.0-t[3747]*t[1859]/280.0+t[3650]*t[1959]/70.0-3.0/560.0*
02217 t[3223]*t[190]-3.0/560.0*t[3866]*t[1819]-t[3498]*t[86]/56.0-t[4528]*t[1810]/280.0+3.0/560.0*
02218 t[3240]*t[1959]+3.0/560.0*t[3501]*t[1974]-9.0/560.0*t[5568]*t[190]-t[3866]*t[1854]/280.0+t[3064]*
02219 t[1854]/560.0-t[3730]*t[1854]/56.0-3.0/560.0*t[3209]*t[4];
02220       t[6199] = -3.0/560.0*t[3478]*t[1819]-3.0/280.0*t[5209]*t[1854]+t[5324]*t[53]/56.0+t[4831]
02221 *t[62]/560.0-3.0/560.0*t[3647]*t[1874]+9.0/280.0*t[3524]*t[1816]-t[3342]*t[1854]/560.0+t[3492]*
02222 t[1874]/140.0-t[4103]*t[1963]/28.0-9.0/280.0*t[5096]*t[1874]-t[5013]*t[1963]/280.0+t[3744]*
02223 t[1804]/56.0+t[4281]*t[86]/560.0-t[3983]*t[1859]/280.0+t[4297]*t[26]/280.0+3.0/56.0*t[3212]*
02224 t[1874]+t[5209]*t[1819]/56.0+3.0/560.0*t[3456]*t[26];
02225       t[6218] = t[17]*t[1830];
02226       t[6237] = t[4242]*t[1874]/560.0-t[3791]*t[1974]/70.0+3.0/280.0*t[3435]*t[9]-3.0/560.0*
02227 t[3730]*t[1974]-t[3744]*t[1816]/56.0-3.0/560.0*t[4828]*t[62]-t[3716]*t[53]/560.0-3.0/560.0*
02228 t[4059]*t[1854]-3.0/560.0*t[3164]*t[1874]+3.0/560.0*t[6218]*t[1874]-3.0/560.0*t[3119]*t[190]
02229 -3.0/560.0*t[3429]*t[1819]+t[4335]*t[26]/280.0-3.0/560.0*t[3916]*t[1810]+t[3492]*t[1974]/56.0
02230 -3.0/560.0*t[4197]*t[1819]+t[3116]*t[9]/70.0-t[3849]*t[1974]/280.0;
02231       t[6276] = t[3240]*t[1963]/280.0+t[3802]*t[1974]/56.0+t[3841]*t[1963]/280.0+3.0/560.0*
02232 t[3286]*t[9]+t[4281]*t[190]/70.0-t[5138]*t[1963]/56.0-t[3647]*t[1854]/280.0+3.0/560.0*t[3687]*
02233 t[1819]-t[5441]*t[53]/280.0+t[3212]*t[1963]/280.0+t[4022]*t[4]/280.0-t[4939]*t[1854]/56.0+t[3691]*
02234 t[4]/560.0+t[3206]*t[1854]/56.0+t[3852]*t[95]/140.0+t[4281]*t[45]/140.0+t[3198]*t[1854]/56.0+
02235 t[4335]*t[53]/280.0;
02236       t[6277] = t[17]*t[1822];
02237       t[6314] = -t[6277]*t[1963]/168.0-t[3946]*t[1816]/280.0-3.0/280.0*t[3327]*t[9]+t[3788]*
02238 t[1859]/1680.0+t[5117]*t[1854]/70.0-t[5013]*t[1974]/56.0-3.0/560.0*t[4680]*t[1810]-t[3618]*t[4]/
02239 560.0+3.0/560.0*t[3252]*t[1974]-3.0/280.0*t[5052]*t[20]-t[3475]*t[1804]/28.0-t[3312]*t[26]/56.0
02240 +t[4480]*t[1959]/56.0+t[3544]*t[1859]/168.0-9.0/560.0*t[3138]*t[26]-t[3939]*t[20]/280.0+t[3544]*
02241 t[1816]/140.0-t[3304]*t[1959]/56.0;
02242       t[6352] = t[3064]*t[1859]/56.0-3.0/560.0*t[3220]*t[1819]+3.0/560.0*t[3061]*t[1874]-3.0/
02243 560.0*t[3315]*t[9]+t[3530]*t[45]/56.0+t[3203]*t[20]/280.0-3.0/560.0*t[4197]*t[1810]-t[6044]*t[1859]
02244 /280.0-3.0/56.0*t[3410]*t[20]+t[3243]*t[1819]/560.0-t[4645]*t[86]/560.0+3.0/560.0*t[5052]*t[95]
02245 +t[5063]*t[1854]/560.0-t[3836]*t[1963]/560.0+t[3585]*t[26]/560.0+t[3487]*t[1859]/280.0+t[3481]*
02246 t[1810]/280.0+t[4103]*t[1810]/280.0;
02247       t[6367] = t[2220]*t[1970];
02248       t[6392] = t[3916]*t[1959]/280.0+t[5130]*t[4]/560.0+3.0/560.0*t[3252]*t[1959]-3.0/280.0*
02249 t[3327]*t[190]-t[4348]*t[1859]/560.0+t[4120]*t[1859]/560.0+t[4480]*t[1819]/56.0+t[6367]*t[190]/56.0
02250 +t[3212]*t[1819]/56.0+3.0/560.0*t[4927]*t[62]+t[4831]*t[95]/560.0-t[3768]*t[1816]/560.0-3.0/
02251 560.0*t[5197]*t[1959]+3.0/560.0*t[3144]*t[1859]-3.0/560.0*t[3929]*t[1874]+t[3330]*t[26]/280.0+
02252 3.0/56.0*t[3416]*t[1804]+9.0/280.0*t[3934]*t[1810]-3.0/560.0*t[3064]*t[1974];
02253       t[6421] = t[17]*t[1825];
02254       t[6434] = t[3240]*t[1859]/280.0-3.0/560.0*t[4854]*t[1804]+t[4335]*t[190]/56.0-t[3194]*t[26]
02255 /56.0-3.0/560.0*t[4523]*t[1804]+3.0/560.0*t[3084]*t[1959]+3.0/560.0*t[3567]*t[1959]+3.0/
02256 560.0*t[4558]*t[20]-t[3791]*t[1959]/560.0-t[4125]*t[95]/560.0+3.0/560.0*t[3706]*t[1874]-3.0/
02257 140.0*t[3846]*t[1859]+t[6421]*t[1974]/280.0+3.0/56.0*t[3802]*t[1810]-t[4939]*t[1859]/560.0+9.0/
02258 560.0*t[3498]*t[26]-t[3521]*t[26]/140.0-t[4197]*t[1854]/280.0;
02259       t[6471] = 3.0/560.0*t[5124]*t[95]+t[4946]*t[53]/168.0-t[3226]*t[1810]/280.0+t[4228]*t[1974]
02260 /560.0-t[3240]*t[1854]/56.0-t[3612]*t[95]/70.0-t[6044]*t[1959]/280.0+t[3664]*t[1819]/56.0+t[3175]
02261 *t[86]/560.0+3.0/560.0*t[3260]*t[1810]+3.0/280.0*t[5127]*t[1816]-9.0/280.0*t[4576]*t[45]+
02262 t[3802]*t[1963]/140.0-t[5052]*t[86]/56.0+t[3257]*t[1963]/140.0+3.0/280.0*t[3509]*t[1819]-t[3849]*
02263 t[1874]/280.0+t[3170]*t[1854]/280.0;
02264       t[6509] = t[4939]*t[1963]/28.0-t[3615]*t[1874]/560.0+t[3599]*t[1963]/70.0-3.0/560.0*
02265 t[3223]*t[9]-t[5246]*t[1816]/8.0+3.0/560.0*t[3272]*t[1959]+t[4076]*t[4]/56.0+3.0/560.0*t[3562]*
02266 t[1804]+t[4744]*t[1859]/280.0-3.0/560.0*t[3506]*t[20]-t[4302]*t[1816]/560.0-3.0/280.0*t[3299]*
02267 t[1959]+t[4120]*t[1963]/56.0-3.0/280.0*t[4059]*t[1810]-t[4050]*t[62]/56.0+t[4302]*t[1874]/280.0-
02268 t[4480]*t[1859]/8.0+t[3126]*t[1959]/280.0;
02269       t[6546] = -3.0/560.0*t[4032]*t[1974]-t[3711]*t[1810]/280.0+t[3763]*t[1874]/280.0+3.0/
02270 560.0*t[3650]*t[1963]-3.0/560.0*t[4059]*t[1874]+3.0/560.0*t[3249]*t[1874]+t[4783]*t[1963]/280.0
02271 -3.0/280.0*t[3272]*t[1810]-t[3426]*t[86]/56.0+t[4439]*t[9]/140.0+9.0/280.0*t[3355]*t[1974]-3.0/
02272 560.0*t[3226]*t[1819]-3.0/560.0*t[4771]*t[26]-3.0/560.0*t[3866]*t[1810]-t[3226]*t[1859]/1680.0-
02273 t[4321]*t[9]/56.0+t[6132]*t[4]/280.0+3.0/280.0*t[3741]*t[1804];
02274       t[6585] = t[3484]*t[1810]/560.0-t[4645]*t[95]/280.0-3.0/560.0*t[3093]*t[1874]-t[3395]*
02275 t[1959]/56.0-t[3265]*t[26]/280.0+9.0/560.0*t[3141]*t[1974]+3.0/560.0*t[3138]*t[95]+3.0/560.0*
02276 t[3680]*t[1816]-3.0/560.0*t[3309]*t[1859]-t[3521]*t[20]/56.0-t[3055]*t[1816]/56.0+t[3585]*t[53]/
02277 560.0-t[6277]*t[1959]/140.0-3.0/560.0*t[3327]*t[20]-t[3164]*t[1963]/56.0-t[4155]*t[9]/56.0-9.0/
02278 560.0*t[3064]*t[1959]+3.0/140.0*t[5751]*t[9];
02279       t[6622] = 3.0/560.0*t[3252]*t[1816]+t[3203]*t[190]/560.0-t[3916]*t[1804]/280.0-3.0/
02280 560.0*t[3309]*t[1959]+3.0/560.0*t[3286]*t[26]-t[3478]*t[1810]/560.0+t[3861]*t[1974]/560.0-t[5117]
02281 *t[1963]/56.0+3.0/560.0*t[3573]*t[1816]+3.0/56.0*t[3530]*t[95]+3.0/140.0*t[3355]*t[1963]+3.0/
02282 560.0*t[3240]*t[1974]-t[3363]*t[1819]/70.0-3.0/560.0*t[3096]*t[1810]-3.0/280.0*t[3141]*t[1810]-
02283 t[3518]*t[1816]/280.0-3.0/56.0*t[3321]*t[1804]+t[3141]*t[1963]/70.0;
02284       t[6648] = t[1930]*t[39];
02285       t[6659] = t[2220]*t[1961];
02286       t[6662] = 3.0/560.0*t[5049]*t[1810]+t[3537]*t[1816]/280.0-t[4302]*t[1859]/560.0-t[3395]*
02287 t[1804]/280.0+t[3093]*t[1963]/560.0+t[5206]*t[1854]/280.0+3.0/560.0*t[3049]*t[45]+t[3410]*t[190]/
02288 56.0+3.0/560.0*t[3791]*t[1859]-t[5108]*t[1819]/560.0-9.0/560.0*t[4939]*t[1819]-3.0/280.0*
02289 t[3209]*t[190]-t[6648]*t[1854]/560.0-t[3119]*t[53]/1680.0-t[3604]*t[1816]/280.0-t[3562]*t[1874]/
02290 280.0-t[3518]*t[1859]/560.0+t[6659]*t[26]/8.0;
02291       t[6701] = -3.0/56.0*t[4270]*t[26]-3.0/280.0*t[5141]*t[26]-t[3638]*t[95]/56.0-t[3075]*t[86]/
02292 56.0+3.0/560.0*t[4667]*t[20]-t[4839]*t[1959]/560.0-t[4179]*t[1974]/56.0-t[4955]*t[1974]/560.0-
02293 t[5444]*t[1874]/280.0-3.0/560.0*t[4090]*t[45]+3.0/280.0*t[3186]*t[1959]-3.0/560.0*t[4828]*t[95]
02294 +3.0/280.0*t[3391]*t[26]+3.0/560.0*t[3599]*t[1974]-t[6648]*t[1874]/280.0-t[3330]*t[95]/560.0
02295 -3.0/560.0*t[5751]*t[26]+t[3573]*t[1859]/280.0-3.0/56.0*t[3980]*t[1810];
02296       t[6741] = -t[4831]*t[20]/280.0-t[3167]*t[1859]/70.0+t[5063]*t[1810]/140.0+3.0/560.0*
02297 t[3358]*t[1874]-t[4645]*t[190]/560.0+3.0/280.0*t[3144]*t[1974]+3.0/280.0*t[3144]*t[1819]+t[3841]*
02298 t[1959]/280.0-3.0/560.0*t[3754]*t[1874]+3.0/560.0*t[4506]*t[1959]+3.0/560.0*t[3435]*t[26]+3.0
02299 /280.0*t[4506]*t[1819]-t[3243]*t[1854]/280.0-t[3379]*t[4]/280.0-3.0/280.0*t[3716]*t[62]+3.0/
02300 280.0*t[3435]*t[190]+t[3212]*t[1959]/280.0-3.0/560.0*t[3644]*t[1874];
02301       t[6778] = 3.0/560.0*t[3549]*t[1819]-3.0/280.0*t[3049]*t[62]-3.0/280.0*t[3549]*t[1874]+
02302 3.0/280.0*t[4506]*t[1974]-3.0/560.0*t[3272]*t[1804]-3.0/560.0*t[6421]*t[1816]-t[4958]*t[1963]/
02303 560.0-t[4831]*t[26]/140.0-3.0/560.0*t[3983]*t[1816]+3.0/560.0*t[3487]*t[1819]-3.0/56.0*
02304 t[4910]*t[1963]-3.0/560.0*t[3358]*t[1959]-3.0/56.0*t[3385]*t[1816]+3.0/560.0*t[4761]*t[1959]
02305 -3.0/560.0*t[5744]*t[1816]+t[4955]*t[1804]/280.0+t[3478]*t[1959]/280.0-t[3624]*t[20]/8.0;
02306       t[6816] = 3.0/560.0*t[3711]*t[1819]-t[3754]*t[1854]/280.0-3.0/560.0*t[3058]*t[1874]-
02307 t[6648]*t[1810]/560.0-t[3744]*t[1959]/140.0+t[3635]*t[190]/56.0+t[3156]*t[1963]/280.0-3.0/560.0
02308 *t[3456]*t[62]+3.0/560.0*t[3206]*t[1974]+t[4761]*t[1816]/280.0-t[5010]*t[1859]/140.0-3.0/560.0*
02309 t[4307]*t[1959]-t[4200]*t[95]/280.0+t[3194]*t[9]/56.0-3.0/56.0*t[5209]*t[1974]-t[3861]*t[1804]/
02310 280.0-t[5177]*t[1859]/280.0-t[3333]*t[1959]/280.0;
02311       t[6853] = -3.0/560.0*t[4771]*t[20]-3.0/280.0*t[3524]*t[1804]+t[3861]*t[1819]/560.0-
02312 t[4495]*t[1810]/280.0-3.0/560.0*t[3653]*t[1874]+t[3647]*t[1859]/56.0-t[3980]*t[1959]/280.0+
02313 t[4079]*t[1854]/56.0+t[4439]*t[26]/280.0+3.0/560.0*t[4558]*t[9]+3.0/560.0*t[3093]*t[1959]+3.0/
02314 560.0*t[4558]*t[26]+t[4103]*t[1859]/280.0+3.0/56.0*t[3980]*t[1874]-3.0/280.0*t[3087]*t[1859]-
02315 t[4828]*t[4]/280.0-t[3413]*t[1854]/8.0+t[3087]*t[1959]/280.0;
02316       t[6892] = t[3687]*t[1854]/280.0-3.0/560.0*t[4680]*t[1874]+t[3527]*t[1963]/56.0+t[4155]*
02317 t[45]/560.0-3.0/560.0*t[3052]*t[1804]+3.0/560.0*t[5135]*t[86]-3.0/560.0*t[3243]*t[1874]-t[3644]
02318 *t[1854]/280.0+t[3570]*t[1859]/560.0+t[5177]*t[1963]/56.0-t[6218]*t[1959]/280.0-3.0/280.0*
02319 t[3901]*t[1819]+3.0/560.0*t[3567]*t[1974]+3.0/560.0*t[5135]*t[4]-t[4451]*t[1874]/140.0-3.0/
02320 560.0*t[3209]*t[9]-9.0/560.0*t[3398]*t[190]+t[4179]*t[1816]/70.0;
02321       t[6929] = -3.0/280.0*t[4939]*t[1959]-t[4200]*t[62]/56.0-3.0/560.0*t[3929]*t[1974]+3.0/
02322 560.0*t[4620]*t[1959]+t[4348]*t[1974]/280.0+t[3870]*t[1816]/28.0-3.0/560.0*t[3716]*t[9]+t[4297]*
02323 t[45]/560.0+3.0/56.0*t[4581]*t[1859]+3.0/560.0*t[4645]*t[9]+3.0/560.0*t[3164]*t[1804]+t[4281]*
02324 t[53]/280.0+9.0/560.0*t[3058]*t[1816]+t[3537]*t[1819]/70.0-t[3126]*t[1854]/168.0+t[3156]*t[1819]/
02325 70.0-3.0/140.0*t[4312]*t[1959]-3.0/560.0*t[4828]*t[190];
02326       t[6933] = t[2220]*t[1830];
02327       t[6968] = -3.0/560.0*t[4667]*t[95]-t[6933]*t[26]/280.0+3.0/280.0*t[4506]*t[1804]+3.0/
02328 560.0*t[4558]*t[190]-t[4839]*t[1874]/56.0+t[4103]*t[1819]/70.0-3.0/280.0*t[3058]*t[1974]-3.0/
02329 560.0*t[3481]*t[1959]-9.0/280.0*t[3286]*t[45]+3.0/560.0*t[3144]*t[1816]-3.0/560.0*t[3741]*
02330 t[1974]+t[3215]*t[1804]/560.0+3.0/560.0*t[3487]*t[1816]-3.0/560.0*t[3741]*t[1874]+3.0/560.0*
02331 t[3487]*t[1804]+t[3379]*t[45]/560.0-t[4307]*t[1963]/560.0-3.0/560.0*t[3647]*t[1974];
02332       t[7007] = -3.0/560.0*t[3670]*t[62]-3.0/560.0*t[4307]*t[1974]+3.0/560.0*t[3549]*t[1804]+
02333 3.0/560.0*t[4506]*t[1816]+t[3719]*t[1816]/560.0+3.0/560.0*t[4281]*t[26]-t[4955]*t[1963]/1680.0-
02334 t[4958]*t[1959]/280.0+t[3788]*t[1804]/560.0+t[3719]*t[1804]/280.0+t[3791]*t[1816]/560.0+t[3537]*
02335 t[1859]/560.0-t[3849]*t[1819]/560.0+t[5441]*t[190]/560.0+t[5444]*t[1819]/560.0-t[3675]*t[53]/
02336 560.0+t[5444]*t[1804]/280.0+t[4839]*t[1816]/560.0+t[4050]*t[20]/560.0;
02337       t[7049] = t[3126]*t[1804]/560.0+t[4297]*t[86]/1680.0-t[4117]*t[1959]/280.0-t[3675]*t[26]/
02338 280.0-t[3604]*t[1963]/1680.0-t[4117]*t[1963]/560.0+t[5441]*t[20]/560.0+t[5444]*t[1816]/560.0-
02339 t[3562]*t[1974]/280.0-t[5259]*t[9]/280.0-t[3562]*t[1959]/560.0-t[3119]*t[9]/560.0+t[3156]*t[1859]/
02340 560.0-t[3604]*t[1974]/560.0-t[5259]*t[190]/560.0+3.0/560.0*t[3680]*t[1959]-t[4744]*t[1819]/
02341 560.0+3.0/560.0*t[4744]*t[1816];
02342       t[7052] = t[65]*t[1830];
02343       t[7067] = t[17]*t[1837];
02344       t[7088] = -3.0/560.0*t[3440]*t[1974]+t[7052]*t[1854]/280.0-t[6421]*t[1959]/280.0+t[3363]*
02345 t[1816]/56.0+t[3090]*t[1810]/28.0+3.0/280.0*t[4620]*t[1816]-t[3618]*t[95]/140.0-t[3388]*t[1816]/
02346 56.0-t[7067]*t[1804]/280.0+t[3426]*t[4]/280.0-t[3484]*t[1804]/560.0+t[3416]*t[1810]/56.0+3.0/
02347 560.0*t[5141]*t[95]+t[4667]*t[86]/280.0-3.0/560.0*t[3929]*t[1963]-t[3544]*t[1874]/560.0-t[3363]*
02348 t[1874]/280.0+t[3861]*t[1959]/280.0;
02349       t[7126] = -t[4761]*t[1819]/560.0+3.0/560.0*t[4528]*t[1959]-t[3478]*t[1874]/560.0-t[4764]*
02350 t[190]/560.0-3.0/560.0*t[4125]*t[190]+3.0/560.0*t[3615]*t[1963]+3.0/560.0*t[3612]*t[53]+3.0/
02351 560.0*t[4764]*t[26]-t[3629]*t[1874]/280.0-t[3618]*t[62]/280.0+t[3916]*t[1963]/560.0-t[4528]*t[1819]
02352 /560.0-t[4125]*t[62]/560.0+t[3203]*t[26]/280.0+t[7052]*t[1816]/56.0-t[3321]*t[1810]/56.0+t[5246]*
02353 t[1810]/28.0-t[7052]*t[1859]/28.0;
02354       t[7163] = 3.0/56.0*t[3161]*t[1816]-t[3650]*t[1804]/56.0+t[3161]*t[1963]/280.0+t[7052]*
02355 t[1963]/560.0+t[3861]*t[1816]/280.0+t[3161]*t[1974]/280.0-t[3544]*t[1804]/280.0-t[3321]*t[1874]/
02356 280.0+t[7052]*t[1959]/140.0-t[4761]*t[1804]/280.0-t[3363]*t[1810]/140.0+3.0/560.0*t[3549]*
02357 t[1959]+t[3379]*t[190]/560.0-t[3730]*t[1963]/560.0-3.0/560.0*t[3644]*t[1974]+3.0/560.0*t[3435]*
02358 t[53]+3.0/560.0*t[3049]*t[26]+3.0/560.0*t[4506]*t[1963];
02359       t[7202] = -3.0/560.0*t[3379]*t[62]-t[3113]*t[1963]/280.0+t[3802]*t[1816]/280.0-t[4958]*
02360 t[1974]/140.0+t[3788]*t[1810]/280.0-t[3113]*t[1959]/280.0+t[3802]*t[1959]/280.0+t[3537]*t[1804]/
02361 140.0+t[3719]*t[1810]/280.0-t[3675]*t[9]/140.0+t[5444]*t[1810]/280.0+t[5441]*t[95]/280.0+t[3413]*
02362 t[1816]/280.0-t[4321]*t[26]/280.0+t[4297]*t[95]/280.0-t[5013]*t[1959]/280.0-t[5441]*t[62]/280.0-
02363 t[4839]*t[1974]/70.0;
02364       t[7239] = -t[4050]*t[9]/70.0-t[3670]*t[53]/280.0+t[3243]*t[1816]/280.0+t[3379]*t[20]/280.0-
02365 t[3275]*t[1963]/560.0+3.0/560.0*t[3487]*t[1959]-3.0/560.0*t[3754]*t[1974]+t[3215]*t[1819]/560.0
02366 +3.0/560.0*t[4680]*t[1959]-3.0/560.0*t[4828]*t[9]-t[6648]*t[1819]/560.0+t[4620]*t[1963]/560.0
02367 -3.0/560.0*t[4197]*t[1974]+t[4558]*t[53]/280.0+3.0/560.0*t[4667]*t[26]+t[3252]*t[1963]/280.0-
02368 t[3330]*t[62]/280.0+t[3215]*t[1816]/280.0;
02369       t[7277] = -t[3741]*t[1963]/280.0-t[3650]*t[1810]/70.0+t[7052]*t[1819]/70.0+t[3161]*t[1810]/
02370 56.0-t[3321]*t[1854]/280.0-t[7052]*t[1804]/56.0-t[4228]*t[1859]/168.0+t[5246]*t[1854]/168.0-
02371 t[4744]*t[1874]/280.0+t[4312]*t[1854]/560.0+3.0/56.0*t[3635]*t[20]-t[3612]*t[45]/56.0-t[6132]*t[86]
02372 /28.0-t[3615]*t[1804]/56.0+t[6132]*t[20]/56.0-t[3632]*t[1810]/56.0+t[3621]*t[1810]/28.0-t[3061]*
02373 t[1859]/28.0;
02374       t[7316] = t[3624]*t[95]/28.0+3.0/560.0*t[6277]*t[1819]+t[3461]*t[1859]/140.0+3.0/560.0*
02375 t[3492]*t[1804]+t[3461]*t[1804]/280.0-t[3304]*t[1816]/70.0+t[3492]*t[1819]/70.0-3.0/560.0*t[3304]
02376 *t[1859]-t[3771]*t[26]/280.0-3.0/560.0*t[3484]*t[1859]+t[3170]*t[1859]/140.0+t[6367]*t[86]/140.0+
02377 3.0/560.0*t[4242]*t[1819]+3.0/560.0*t[4831]*t[190]+3.0/560.0*t[4103]*t[1804]-t[4242]*t[1959]/
02378 140.0+t[6367]*t[45]/280.0-t[3484]*t[1816]/70.0-t[3194]*t[20]/70.0;
02379       t[7356] = -3.0/560.0*t[3771]*t[20]-t[3747]*t[1804]/280.0+t[3461]*t[1810]/280.0+t[6277]*
02380 t[1974]/280.0-t[7067]*t[1816]/140.0-t[7067]*t[1859]/560.0-t[3304]*t[1804]/560.0+t[6277]*t[1874]/
02381 560.0+t[6421]*t[1819]/560.0-t[6218]*t[1816]/280.0-t[3194]*t[45]/560.0-t[3312]*t[86]/560.0-t[3395]
02382 *t[1859]/560.0+t[3771]*t[9]/280.0+t[3170]*t[1810]/280.0+t[6367]*t[95]/280.0+t[4188]*t[62]/140.0+
02383 t[6044]*t[1974]/280.0;
02384       t[7393] = -t[3312]*t[20]/140.0-t[3395]*t[1816]/140.0-t[4270]*t[86]/280.0-t[3388]*t[1859]/
02385 280.0+t[6044]*t[1819]/560.0-t[6933]*t[20]/280.0+t[3304]*t[1874]/70.0+t[6218]*t[1974]/280.0+
02386 t[6421]*t[1874]/280.0+t[3461]*t[1854]/280.0-t[3768]*t[1959]/280.0-t[6218]*t[1819]/560.0-t[7067]*
02387 t[1819]/70.0+t[3304]*t[1810]/560.0+t[3492]*t[1854]/560.0-t[6933]*t[190]/560.0+t[4103]*t[1854]/
02388 560.0+t[4188]*t[4]/560.0;
02389       t[7431] = t[3771]*t[62]/280.0+t[6044]*t[1874]/280.0+t[3194]*t[95]/560.0-t[4348]*t[1819]/
02390 560.0-t[3395]*t[1819]/70.0+t[6367]*t[4]/280.0+t[3194]*t[62]/70.0-t[4270]*t[95]/280.0-t[3388]*
02391 t[1810]/280.0+t[6933]*t[9]/280.0-3.0/560.0*t[7067]*t[1810]+t[3768]*t[1974]/140.0+3.0/560.0*
02392 t[3304]*t[1854]-3.0/560.0*t[3768]*t[1819]-t[3747]*t[1854]/140.0-3.0/560.0*t[3395]*t[1810]+3.0/
02393 560.0*t[3194]*t[4]+3.0/560.0*t[4348]*t[1874];
02394       t[7468] = -3.0/560.0*t[3312]*t[95]+t[3226]*t[1974]/140.0+3.0/560.0*t[3484]*t[1854]+3.0/
02395 560.0*t[6933]*t[62]-t[4270]*t[4]/140.0+t[3461]*t[1816]/56.0-t[3492]*t[1959]/56.0+t[3667]*t[1859]/
02396 168.0-t[3747]*t[1816]/56.0+t[3170]*t[1819]/56.0+t[6659]*t[86]/168.0-t[4242]*t[1963]/168.0-t[4831]
02397 *t[53]/168.0+t[6367]*t[20]/56.0+t[3170]*t[1816]/56.0-t[4270]*t[20]/56.0+t[4103]*t[1974]/56.0-
02398 t[4103]*t[1959]/56.0;
02399       t[7507] = -t[3484]*t[1959]/56.0+t[3046]*t[1859]/168.0+t[3461]*t[1874]/56.0-t[7067]*t[1959]/
02400 56.0-t[3747]*t[1819]/56.0+t[3170]*t[1874]/56.0+t[6367]*t[62]/56.0-t[3388]*t[1819]/56.0-t[4270]*
02401 t[190]/56.0+t[3484]*t[1974]/56.0+t[7067]*t[1974]/56.0+t[3768]*t[1963]/168.0-t[3747]*t[1874]/56.0-
02402 t[3667]*t[1854]/168.0-t[3046]*t[1854]/168.0-t[6659]*t[4]/168.0+t[3226]*t[1963]/168.0-t[4270]*t[62]/
02403 56.0;
02404       t[7544] = t[3312]*t[9]/56.0-t[3388]*t[1874]/56.0+t[3395]*t[1974]/56.0+t[3265]*t[53]/168.0+
02405 3.0/56.0*t[3461]*t[1974]+t[3667]*t[1816]/28.0-t[3492]*t[1963]/28.0-3.0/56.0*t[3388]*t[1959]+3.0
02406 /56.0*t[3170]*t[1974]+3.0/56.0*t[6367]*t[9]+t[6659]*t[20]/28.0+t[7067]*t[1963]/28.0-t[3046]*t[1874]
02407 /28.0+t[3312]*t[53]/28.0-t[6659]*t[62]/28.0-t[3667]*t[1974]/8.0+t[3667]*t[1959]/8.0-t[3070]*t[53]/
02408 56.0;
02409       t[7582] = -t[3461]*t[1963]/8.0+t[3747]*t[1963]/8.0+t[3046]*t[1959]/8.0+t[3388]*t[1963]/8.0-
02410 t[6659]*t[9]/8.0-t[3170]*t[1963]/8.0-t[6367]*t[53]/8.0+t[4270]*t[53]/8.0-t[3046]*t[1974]/8.0-9.0/
02411 560.0*t[3093]*t[1810]+9.0/560.0*t[3084]*t[1819]-3.0/560.0*t[3929]*t[1854]-9.0/280.0*t[3084]*
02412 t[1804]-t[3090]*t[1874]/280.0+3.0/280.0*t[3090]*t[1854]+3.0/280.0*t[3084]*t[1816]+3.0/560.0*
02413 t[3515]*t[190]+t[3061]*t[1819]/70.0;
02414       t[7621] = t[6132]*t[190]/70.0-t[3711]*t[1804]/140.0-t[3615]*t[1810]/70.0+t[4480]*t[1854]/
02415 140.0-3.0/560.0*t[3615]*t[1854]+3.0/560.0*t[6132]*t[62]+t[3635]*t[4]/140.0-t[3515]*t[45]/140.0
02416 -3.0/560.0*t[3203]*t[95]-t[4228]*t[1804]/140.0-3.0/560.0*t[3650]*t[1854]+t[3161]*t[1854]/140.0
02417 -3.0/560.0*t[3861]*t[1810]+3.0/560.0*t[4228]*t[1819]+3.0/560.0*t[7052]*t[1874]+9.0/280.0*
02418 t[4939]*t[1974]+3.0/280.0*t[3106]*t[1963]+9.0/560.0*t[5117]*t[1874]-t[3983]*t[1963]/280.0;
02419       t[7662] = -3.0/280.0*t[3664]*t[1854]+3.0/560.0*t[4910]*t[1854]-3.0/280.0*t[5568]*t[26]
02420 -3.0/280.0*t[3470]*t[4]+3.0/560.0*t[5127]*t[1854]+9.0/560.0*t[5138]*t[1874]+9.0/560.0*t[5141]
02421 *t[62]-3.0/560.0*t[3518]*t[1959]-t[5744]*t[1963]/280.0+3.0/280.0*t[3518]*t[1963]+t[5209]*t[1810]/
02422 280.0-t[4771]*t[53]/280.0+3.0/280.0*t[5127]*t[1874]+3.0/280.0*t[5135]*t[62]-9.0/280.0*t[5103]
02423 *t[62]+9.0/280.0*t[5568]*t[9]-9.0/280.0*t[5100]*t[1874]+9.0/280.0*t[3299]*t[1974];
02424       t[7699] = 3.0/280.0*t[5751]*t[53]-3.0/280.0*t[3453]*t[1816]-t[3512]*t[1819]/56.0-t[4239]*
02425 t[1963]/28.0-t[3691]*t[53]/28.0-3.0/280.0*t[4090]*t[20]-t[3870]*t[1819]/56.0+t[4523]*t[1963]/56.0
02426 -t[4200]*t[190]/56.0+t[4854]*t[1963]/56.0-t[3870]*t[1874]/56.0+3.0/280.0*t[5324]*t[9]+3.0/280.0
02427 *t[4523]*t[1974]+t[3664]*t[1816]/56.0+3.0/280.0*t[4910]*t[1819]-3.0/280.0*t[5117]*t[1959]-t[5049]
02428 *t[1963]/56.0-t[5206]*t[1963]/56.0;
02429       t[7737] = -t[4927]*t[53]/56.0-3.0/280.0*t[5138]*t[1959]+t[5209]*t[1816]/56.0+3.0/280.0*
02430 t[5135]*t[190]+t[3470]*t[20]/56.0+3.0/280.0*t[5127]*t[1819]-t[3664]*t[1874]/28.0-t[5209]*t[1874]/
02431 28.0+t[5568]*t[53]/28.0+t[3299]*t[1963]/28.0-3.0/56.0*t[4434]*t[1963]+3.0/56.0*t[3453]*t[1963]+
02432 3.0/56.0*t[4200]*t[26]+3.0/56.0*t[3901]*t[1963]-3.0/56.0*t[4200]*t[9]-3.0/56.0*t[5068]*t[53]+
02433 3.0/56.0*t[4090]*t[53]-3.0/56.0*t[3870]*t[1974];
02434       t[7774] = -3.0/56.0*t[3664]*t[1974]+3.0/56.0*t[5096]*t[1963]+3.0/56.0*t[5209]*t[1959]+
02435 3.0/56.0*t[3470]*t[26]+3.0/56.0*t[5100]*t[1963]-3.0/56.0*t[3470]*t[9]-3.0/56.0*t[5127]*t[1963]
02436 -3.0/56.0*t[5135]*t[53]+3.0/56.0*t[5103]*t[53]-t[6277]*t[1816]/280.0-t[6421]*t[1859]/280.0+
02437 t[6277]*t[1804]/280.0+t[3492]*t[1859]/280.0+t[4242]*t[1804]/280.0-t[4242]*t[1816]/280.0+t[4831]*
02438 t[45]/280.0-t[3771]*t[86]/280.0+t[6277]*t[1810]/560.0;
02439       t[7813] = -t[6218]*t[1859]/560.0-t[6933]*t[86]/560.0+t[4242]*t[1810]/560.0+t[6421]*t[1810]/
02440 560.0-t[6218]*t[1804]/560.0-t[3768]*t[1859]/1680.0+t[6277]*t[1854]/1680.0+t[4831]*t[4]/1680.0+
02441 t[4242]*t[1854]/1680.0-t[6933]*t[45]/560.0-t[4348]*t[1804]/560.0+t[6044]*t[1810]/560.0-t[3768]*
02442 t[1804]/560.0+t[6421]*t[1854]/560.0-t[3226]*t[1804]/560.0+t[6044]*t[1854]/560.0-t[7067]*t[1854]/
02443 280.0+t[6218]*t[1854]/280.0;
02444       t[7850] = -t[3265]*t[95]/280.0+t[3265]*t[62]/280.0-t[3312]*t[4]/280.0+t[3226]*t[1874]/280.0
02445 +t[6933]*t[4]/280.0+t[4348]*t[1854]/280.0-t[5124]*t[53]/280.0+t[5209]*t[1804]/280.0+t[3470]*t[45]/
02446 280.0+3.0/560.0*t[5127]*t[1810]+3.0/560.0*t[5135]*t[95]-3.0/560.0*t[5568]*t[20]-3.0/560.0*
02447 t[3299]*t[1816]-3.0/560.0*t[5744]*t[1959]-t[3599]*t[1859]/56.0+t[3416]*t[1819]/56.0-t[3081]*t[1859]
02448 /56.0+3.0/280.0*t[3501]*t[1819];
02449       t[7888] = -3.0/280.0*t[3342]*t[1804]+t[3763]*t[1810]/56.0-t[3419]*t[1859]/56.0+t[3410]*
02450 t[95]/56.0-3.0/560.0*t[3599]*t[1810]+3.0/280.0*t[3509]*t[1810]-3.0/280.0*t[3081]*t[1804]-
02451 t[3257]*t[1859]/280.0-t[3368]*t[1859]/280.0+t[3416]*t[1874]/280.0+t[3416]*t[1854]/280.0+3.0/
02452 560.0*t[3509]*t[1874]+t[3632]*t[1859]/8.0+t[3638]*t[86]/8.0-t[3621]*t[1816]/8.0+t[3624]*t[45]/8.0-
02453 t[3635]*t[86]/8.0-3.0/56.0*t[3509]*t[1859];
02454       t[7927] = 3.0/56.0*t[4604]*t[1859]-3.0/56.0*t[3501]*t[1859]+3.0/56.0*t[3763]*t[1804]+
02455 3.0/56.0*t[4584]*t[86]-3.0/56.0*t[3763]*t[1816]+3.0/56.0*t[3410]*t[45]-3.0/56.0*t[3391]*t[86]-
02456 t[3161]*t[1859]/8.0+t[5246]*t[1804]/8.0+t[3321]*t[1859]/8.0-t[4297]*t[9]/280.0-3.0/560.0*t[5441]*
02457 t[9]-t[3126]*t[1974]/280.0-3.0/560.0*t[5444]*t[1974]+t[3215]*t[1959]/280.0-t[3754]*t[1963]/280.0+
02458 t[3487]*t[1963]/280.0+t[3243]*t[1959]/280.0+t[3379]*t[26]/280.0;
02459       t[7967] = t[3621]*t[1854]/168.0-t[6132]*t[45]/56.0-t[3711]*t[1859]/168.0-t[3061]*t[1804]/
02460 56.0-t[3632]*t[1854]/280.0-t[3638]*t[4]/280.0+t[4480]*t[1810]/56.0+t[3515]*t[20]/280.0+t[3711]*
02461 t[1816]/280.0-t[4744]*t[1974]/280.0-t[3119]*t[62]/280.0+t[4744]*t[1959]/280.0-t[3866]*t[1963]/
02462 280.0+t[6648]*t[1959]/280.0+t[4680]*t[1963]/280.0-t[3330]*t[9]/280.0-t[4197]*t[1963]/280.0-
02463 t[4828]*t[53]/280.0;
02464       t[8004] = t[4667]*t[53]/280.0-t[6648]*t[1974]/280.0-t[3544]*t[1974]/280.0+t[3544]*t[1959]/
02465 280.0-t[3363]*t[1963]/280.0+t[4761]*t[1963]/280.0+t[4125]*t[26]/280.0+t[4528]*t[1963]/280.0-
02466 t[3629]*t[1963]/280.0-t[3618]*t[53]/280.0+t[4764]*t[53]/280.0-t[3478]*t[1974]/280.0-3.0/560.0*
02467 t[4059]*t[1963]-3.0/560.0*t[3209]*t[53]+3.0/560.0*t[6648]*t[1816]+3.0/560.0*t[3330]*t[20]-3.0/
02468 560.0*t[3791]*t[1963]-t[3788]*t[1874]/140.0;
02469       t[8042] = -t[3126]*t[1874]/140.0+3.0/560.0*t[4297]*t[190]-3.0/560.0*t[4839]*t[1963]+
02470 t[3530]*t[53]/140.0+t[3413]*t[1963]/140.0-t[4297]*t[62]/140.0+t[3788]*t[1816]/560.0-t[3849]*t[1963]
02471 /560.0-t[3562]*t[1963]/560.0-t[5259]*t[53]/560.0+t[3126]*t[1816]/560.0+t[4297]*t[20]/560.0-
02472 t[3385]*t[1819]/56.0-t[3609]*t[190]/56.0+3.0/280.0*t[3567]*t[1816]+t[4620]*t[1859]/56.0-t[3286]*
02473 t[86]/28.0-3.0/280.0*t[3209]*t[95];
02474       t[8081] = t[3385]*t[1810]/28.0-t[3567]*t[1859]/28.0+t[3609]*t[95]/28.0-3.0/560.0*t[3352]*
02475 t[1959]-3.0/280.0*t[3352]*t[1974]+3.0/560.0*t[4120]*t[1804]+3.0/560.0*t[3687]*t[1810]-3.0/
02476 560.0*t[3986]*t[1974]-t[3980]*t[1816]/280.0+3.0/280.0*t[3198]*t[1810]+t[3440]*t[1854]/280.0+3.0
02477 /280.0*t[4120]*t[1810]+t[4032]*t[1854]/280.0+3.0/280.0*t[4076]*t[95]+3.0/280.0*t[4079]*t[1810]-
02478 t[3333]*t[1816]/280.0-3.0/280.0*t[3309]*t[1819]-t[3339]*t[26]/280.0+t[3349]*t[4]/280.0;
02479       t[8120] = 3.0/560.0*t[3349]*t[95]-3.0/560.0*t[3220]*t[1974]+3.0/560.0*t[3570]*t[1804]
02480 -3.0/560.0*t[3327]*t[26]+t[7052]*t[1974]/280.0+t[4228]*t[1963]/1680.0+t[4228]*t[1959]/560.0-
02481 t[4761]*t[1874]/560.0-t[4761]*t[1810]/280.0-t[3650]*t[1874]/560.0-t[3544]*t[1854]/1680.0-t[3363]*
02482 t[1854]/560.0+t[3515]*t[26]/560.0+t[3916]*t[1819]/560.0-t[3478]*t[1854]/1680.0-t[4125]*t[4]/
02483 1680.0-t[3612]*t[62]/560.0-t[4764]*t[95]/280.0;
02484       t[8157] = t[6132]*t[9]/280.0+t[3061]*t[1963]/560.0+t[3711]*t[1963]/1680.0+t[6132]*t[53]/
02485 560.0-t[4764]*t[62]/560.0+t[3203]*t[9]/560.0-t[4528]*t[1874]/560.0+t[3916]*t[1974]/560.0+t[3515]*
02486 t[53]/1680.0-t[3090]*t[1963]/280.0+3.0/280.0*t[3093]*t[1816]-3.0/280.0*t[3929]*t[1959]-t[3090]*
02487 t[1974]/280.0-3.0/280.0*t[3929]*t[1819]+3.0/280.0*t[3456]*t[20]+t[3330]*t[86]/280.0-t[3385]*
02488 t[1963]/280.0-t[3609]*t[53]/280.0;
02489       t[8195] = 3.0/280.0*t[4828]*t[20]+3.0/280.0*t[4197]*t[1816]-3.0/280.0*t[3209]*t[26]-3.0
02490 /280.0*t[4059]*t[1959]+t[6648]*t[1859]/280.0-t[3609]*t[9]/280.0+t[4680]*t[1859]/280.0-t[3385]*
02491 t[1974]/280.0-3.0/280.0*t[4059]*t[1819]-3.0/560.0*t[3986]*t[1959]-t[3946]*t[1974]/560.0-3.0/
02492 560.0*t[3986]*t[1819]-3.0/560.0*t[3352]*t[1816]+3.0/560.0*t[4022]*t[95]+3.0/560.0*t[4032]*
02493 t[1810]+3.0/560.0*t[4076]*t[45]+3.0/560.0*t[3349]*t[45]+3.0/560.0*t[3573]*t[1804];
02494       t[8234] = -3.0/560.0*t[3220]*t[1959]-3.0/560.0*t[3223]*t[26]-t[3939]*t[9]/560.0+t[3181]*
02495 t[86]/560.0-t[3382]*t[1974]/560.0-3.0/560.0*t[3309]*t[1816]+3.0/560.0*t[4079]*t[1804]+t[3324]*
02496 t[1974]/140.0+3.0/560.0*t[3440]*t[1804]-3.0/560.0*t[3986]*t[1816]+t[3198]*t[1859]/560.0+t[4079]
02497 *t[1859]/560.0+t[3349]*t[86]/280.0-t[3939]*t[190]/560.0-t[3939]*t[26]/280.0+3.0/560.0*t[4032]*
02498 t[1804]-t[3382]*t[1959]/280.0+t[4076]*t[86]/560.0+3.0/560.0*t[4022]*t[45];
02499       s1 = t[4774]+t[4572]+t[4487]+t[3951]+t[8042]+t[3733]+t[4160]+t[4654]+t[7239]+t[5270]+t[6083]+
02500 t[3821]+t[6546]+t[5579]+t[7393]+t[4936]+t[7544]+t[6471]+t[6662]+t[4286]+t[5774]+t[3197]+t[6853]+t[7088]+
02501 t[6352]+t[6199]+t[4814]+t[3592]+t[5018]+t[3099]+t[5658]+t[6892]+t[3293]+t[5099]+t[4328]+t[3908]+t[6392]+
02502 t[6005]+t[5057]+t[6968]+t[4695]+t[4533]+t[5307]+t[4031]+t[4116]+t[3779]+t[3869]+t[6929]+t[3690]+t[4977]+
02503 t[7888]+t[7277]+t[5190]+t[4859]+t[6585]+t[7468]+t[7737]+t[5854]+t[6123]+t[4205]+t[7967]+t[6276]+t[8081]+
02504 t[6701];
02505 //-----------------------------------------------------------------------------
02506       wgt[2] = s1+t[7582]+t[6314]+t[5695]+t[3446]+t[6816]+t[3246]+t[3394]+t[4732]+t[5347]+t[3345]+
02507 t[3147]+t[8195]+t[4369]+t[4896]+t[5817]+t[5619]+t[6434]+t[6509]+t[7621]+t[8120]+t[7356]+t[5463]+t[3547]+
02508 t[6237]+t[7431]+t[3991]+t[5968]+t[4074]+t[8234]+t[7813]+t[5892]+t[4406]+t[4615]+t[6622]+t[5503]+t[5540]+
02509 t[7850]+t[6043]+t[7316]+t[5384]+t[3497]+t[5230]+t[3641]+t[6161]+t[8004]+t[4245]+t[7163]+t[5733]+t[6741]+
02510 t[7507]+t[7049]+t[7007]+t[5422]+t[7927]+t[5929]+t[4446]+t[7774]+t[7699]+t[8157]+t[5148]+t[7662]+t[6778]+
02511 t[7126]+t[7202];
02512       t[8265] = t[4335]*t[1974]/56.0-t[3530]*t[1854]/8.0+3.0/560.0*t[5135]*t[1859]+3.0/560.0*
02513 t[5135]*t[1804]+t[3070]*t[1859]/70.0-t[4321]*t[1819]/56.0+t[3530]*t[1804]/56.0+t[4321]*t[1854]/8.0+
02514 t[4050]*t[1810]/56.0+3.0/280.0*t[5135]*t[1816]-t[5130]*t[1963]/280.0-3.0/280.0*t[4927]*t[1959];
02515       t[8290] = 3.0/560.0*t[3407]*t[1974]+t[3585]*t[1963]/560.0-t[3075]*t[1963]/560.0+t[3286]*
02516 t[1963]/560.0-3.0/560.0*t[4599]*t[1804]-3.0/560.0*t[3398]*t[1874]-3.0/560.0*t[3432]*t[1819]+
02517 t[4645]*t[1963]/280.0-t[4200]*t[1854]/280.0-3.0/280.0*t[4090]*t[1874]+3.0/560.0*t[4927]*t[1819]
02518 +3.0/280.0*t[3506]*t[1974];
02519       t[8316] = 3.0/280.0*t[3435]*t[1804]-t[3067]*t[1959]/70.0+t[6367]*t[1819]/56.0-3.0/560.0
02520 *t[5124]*t[1959]-3.0/560.0*t[5141]*t[1816]-t[4946]*t[1804]/28.0-t[3675]*t[1874]/56.0-3.0/280.0*
02521 t[3410]*t[1963]-t[3939]*t[1963]/560.0+t[4155]*t[1959]/56.0+t[3175]*t[1963]/56.0-t[3070]*t[1963]/
02522 56.0;
02523       t[8341] = -9.0/560.0*t[3456]*t[1810]-3.0/560.0*t[3209]*t[1854]+t[3410]*t[1819]/56.0-
02524 t[3852]*t[1816]/56.0+t[4188]*t[1819]/70.0-3.0/560.0*t[5324]*t[1804]+t[3852]*t[1804]/56.0+t[3691]*
02525 t[1859]/56.0-t[5052]*t[1859]/56.0+9.0/560.0*t[3286]*t[1819]-9.0/560.0*t[3398]*t[1819]+3.0/
02526 560.0*t[3691]*t[1810];
02527       t[8368] = -t[5091]*t[1859]/140.0+t[3852]*t[1810]/140.0+3.0/560.0*t[4439]*t[1816]-t[5324]*
02528 t[1859]/70.0-3.0/560.0*t[5091]*t[1816]+3.0/560.0*t[5052]*t[1819]-3.0/560.0*t[3432]*t[1874]-
02529 t[4599]*t[1854]/560.0-t[3624]*t[1959]/28.0+t[3129]*t[1963]/70.0+t[3618]*t[1859]/28.0+t[3432]*
02530 t[1963]/56.0;
02531       t[8393] = 3.0/140.0*t[3521]*t[1810]+t[3670]*t[1859]/56.0-t[3609]*t[1959]/56.0+t[4599]*
02532 t[1959]/56.0-t[3398]*t[1963]/56.0+t[6132]*t[1854]/280.0+3.0/140.0*t[3336]*t[1963]+t[3231]*t[1819]
02533 /70.0-t[4599]*t[1974]/56.0-3.0/140.0*t[3231]*t[1874]-t[3315]*t[1859]/56.0+t[3521]*t[1804]/56.0;
02534       t[8419] = t[3515]*t[1816]/280.0+t[3181]*t[1963]/56.0+3.0/280.0*t[3181]*t[1959]-t[3231]*
02535 t[1974]/56.0+t[3231]*t[1959]/56.0-t[3349]*t[1963]/56.0+t[4335]*t[1963]/280.0-t[3609]*t[1874]/
02536 280.0-t[3521]*t[1816]/56.0+3.0/280.0*t[3175]*t[1959]-t[3515]*t[1859]/168.0-9.0/280.0*t[4584]*
02537 t[1959];
02538       t[8444] = t[4558]*t[1859]/280.0-t[3612]*t[1804]/56.0+3.0/560.0*t[3435]*t[1859]-3.0/
02539 560.0*t[3675]*t[1816]-t[3265]*t[1816]/560.0-t[3223]*t[1963]/280.0-3.0/560.0*t[3203]*t[1810]-
02540 t[3181]*t[1854]/28.0-t[4764]*t[1854]/560.0+t[4927]*t[1854]/280.0-3.0/56.0*t[5135]*t[1963]+t[4831]
02541 *t[1874]/560.0;
02542       t[8472] = -t[3638]*t[1810]/56.0+3.0/280.0*t[3181]*t[1810]-3.0/560.0*t[3407]*t[1810]+
02543 t[3506]*t[1963]/56.0-3.0/560.0*t[4090]*t[1854]+t[3339]*t[1974]/28.0-3.0/280.0*t[3327]*t[1974]-
02544 t[3138]*t[1963]/70.0+3.0/560.0*t[4558]*t[1819]+3.0/280.0*t[5135]*t[1874]+t[4828]*t[1859]/56.0-
02545 t[4155]*t[1874]/70.0;
02546       t[8497] = -t[4022]*t[1963]/140.0+t[4155]*t[1816]/70.0+t[3231]*t[1816]/140.0-3.0/280.0*
02547 t[3327]*t[1819]+9.0/560.0*t[3498]*t[1959]+t[3426]*t[1963]/280.0+t[4155]*t[1804]/560.0+3.0/560.0
02548 *t[3175]*t[1816]-9.0/280.0*t[3181]*t[1874]+3.0/560.0*t[3049]*t[1804]-t[4771]*t[1859]/280.0+
02549 t[3470]*t[1804]/280.0;
02550       t[8523] = -3.0/560.0*t[3576]*t[1874]+3.0/140.0*t[4045]*t[1854]+t[3315]*t[1854]/28.0+
02551 t[4946]*t[1874]/8.0+t[4281]*t[1963]/280.0+t[4281]*t[1859]/560.0-3.0/56.0*t[3410]*t[1816]-t[3312]*
02552 t[1859]/560.0+3.0/560.0*t[4188]*t[1804]-3.0/560.0*t[4076]*t[1959]-t[3312]*t[1819]/70.0+t[3852]*
02553 t[1819]/70.0;
02554       t[8548] = t[3852]*t[1874]/280.0+3.0/560.0*t[3286]*t[1959]+t[3286]*t[1854]/56.0-3.0/
02555 140.0*t[4439]*t[1804]-3.0/280.0*t[4558]*t[1810]+t[4076]*t[1854]/56.0-t[3194]*t[1959]/56.0+t[3530]
02556 *t[1974]/56.0-t[5751]*t[1859]/560.0+t[4439]*t[1874]/56.0-t[4439]*t[1810]/56.0-t[3498]*t[1859]/
02557 56.0;
02558       t[8575] = t[3771]*t[1974]/280.0+t[3618]*t[1816]/56.0+t[3349]*t[1854]/280.0+3.0/140.0*
02559 t[4599]*t[1816]+t[6132]*t[1959]/140.0+t[5259]*t[1810]/280.0+t[3635]*t[1854]/140.0-t[4076]*t[1963]/
02560 70.0+t[6132]*t[1963]/560.0-t[4946]*t[1810]/8.0-t[4599]*t[1819]/70.0+t[3203]*t[1816]/280.0;
02561       t[8600] = 3.0/280.0*t[4200]*t[1859]+t[3771]*t[1819]/560.0+t[4927]*t[1859]/280.0+t[4645]*
02562 t[1874]/280.0-3.0/560.0*t[3194]*t[1859]-t[3194]*t[1804]/560.0+3.0/560.0*t[3716]*t[1816]+t[3379]
02563 *t[1959]/280.0-t[4200]*t[1804]/280.0-9.0/280.0*t[3691]*t[1959]+3.0/560.0*t[3498]*t[1974]+
02564 t[5091]*t[1854]/280.0;
02565       t[8626] = -3.0/280.0*t[3852]*t[1963]+t[5441]*t[1816]/560.0-t[4645]*t[1810]/280.0-t[3506]*
02566 t[1854]/280.0-t[4321]*t[1804]/56.0-t[3635]*t[1859]/8.0+t[4831]*t[1804]/280.0+3.0/560.0*t[5052]*
02567 t[1974]+3.0/560.0*t[3852]*t[1974]+t[6367]*t[1854]/280.0-t[3515]*t[1804]/140.0+9.0/560.0*t[3691]
02568 *t[1819];
02569       t[8653] = 3.0/560.0*t[3691]*t[1874]-3.0/56.0*t[3391]*t[1859]-3.0/56.0*t[5068]*t[1963]-
02570 t[3049]*t[1854]/56.0-t[4270]*t[1859]/280.0+t[6367]*t[1804]/280.0+3.0/56.0*t[4200]*t[1959]-9.0/
02571 560.0*t[5568]*t[1819]-3.0/560.0*t[4090]*t[1859]-9.0/560.0*t[5324]*t[1816]-t[3638]*t[1819]/56.0
02572 -3.0/560.0*t[3138]*t[1974]-t[3716]*t[1854]/56.0;
02573       t[8682] = -t[4200]*t[1810]/280.0+9.0/280.0*t[5068]*t[1816]-3.0/560.0*t[3670]*t[1974]+
02574 3.0/56.0*t[4090]*t[1963]+t[5052]*t[1963]/280.0+t[5091]*t[1963]/280.0-3.0/140.0*t[4576]*t[1859]+
02575 3.0/560.0*t[4831]*t[1819]-t[5751]*t[1816]/280.0+3.0/560.0*t[5124]*t[1874]-3.0/560.0*t[3209]*
02576 t[1974]+3.0/560.0*t[5124]*t[1810];
02577       t[8707] = -t[5259]*t[1974]/280.0-3.0/560.0*t[3506]*t[1816]-t[3506]*t[1859]/280.0+t[6367]*
02578 t[1810]/280.0-3.0/280.0*t[3231]*t[1854]+t[5130]*t[1874]/560.0+t[5130]*t[1854]/560.0-3.0/560.0
02579 *t[4022]*t[1974]+t[3515]*t[1963]/1680.0-t[3315]*t[1963]/560.0+9.0/560.0*t[3129]*t[1974]-3.0/
02580 560.0*t[4828]*t[1874];
02581       t[8733] = t[6659]*t[1859]/168.0+9.0/560.0*t[5141]*t[1874]+t[3119]*t[1854]/168.0-3.0/
02582 560.0*t[5091]*t[1804]-3.0/560.0*t[3312]*t[1810]+3.0/560.0*t[5052]*t[1874]+t[4125]*t[1859]/168.0
02583 -3.0/280.0*t[3070]*t[1974]-3.0/560.0*t[4125]*t[1819]+3.0/560.0*t[3456]*t[1959]+3.0/280.0*
02584 t[3432]*t[1959]-t[5441]*t[1874]/280.0;
02585       t[8758] = 3.0/280.0*t[3691]*t[1804]+3.0/560.0*t[6933]*t[1874]-3.0/560.0*t[4090]*t[1804]
02586 -3.0/560.0*t[3209]*t[1874]-t[3116]*t[1804]/70.0+t[3410]*t[1854]/280.0-3.0/560.0*t[4771]*t[1804]
02587 -t[5568]*t[1859]/560.0+t[3576]*t[1859]/140.0-t[5751]*t[1804]/140.0+t[5141]*t[1854]/70.0+t[3675]*
02588 t[1810]/56.0;
02589       t[8785] = -3.0/280.0*t[3398]*t[1974]-3.0/560.0*t[4771]*t[1816]-3.0/560.0*t[3771]*
02590 t[1816]+3.0/560.0*t[4927]*t[1810]+t[3075]*t[1854]/70.0+3.0/560.0*t[3349]*t[1819]-t[3194]*t[1816]/
02591 70.0+t[3049]*t[1963]/280.0+3.0/560.0*t[4927]*t[1874]+t[6367]*t[1859]/140.0-t[4558]*t[1854]/56.0
02592 -3.0/280.0*t[5141]*t[1959];
02593       t[8810] = -9.0/280.0*t[5103]*t[1874]+3.0/280.0*t[4599]*t[1859]+t[3635]*t[1874]/280.0-
02594 t[3638]*t[1959]/56.0+3.0/280.0*t[3435]*t[1819]-t[3771]*t[1959]/280.0-t[4270]*t[1804]/280.0-
02595 t[3521]*t[1819]/70.0-t[4155]*t[1974]/56.0+t[3498]*t[1963]/70.0-3.0/56.0*t[4270]*t[1959]-3.0/
02596 560.0*t[3223]*t[1819];
02597       t[8836] = -3.0/560.0*t[3178]*t[1816]-3.0/280.0*t[5052]*t[1816]-3.0/280.0*t[3129]*
02598 t[1810]-3.0/560.0*t[3576]*t[1974]-3.0/560.0*t[3379]*t[1874]+t[3379]*t[1819]/560.0+3.0/560.0*
02599 t[3349]*t[1816]+3.0/280.0*t[4771]*t[1874]+t[5751]*t[1874]/56.0-3.0/280.0*t[5568]*t[1810]-t[5751]*
02600 t[1819]/70.0-9.0/560.0*t[3178]*t[1804];
02601       t[8863] = t[5124]*t[1854]/140.0-t[3265]*t[1959]/280.0+3.0/560.0*t[4558]*t[1959]-3.0/
02602 140.0*t[4584]*t[1963]-3.0/560.0*t[4022]*t[1959]+t[4771]*t[1854]/56.0+3.0/560.0*t[5052]*t[1810]
02603 -3.0/560.0*t[3612]*t[1854]-3.0/560.0*t[3327]*t[1963]-t[3203]*t[1804]/280.0-t[3612]*t[1810]/70.0
02604 +t[6132]*t[1819]/70.0+t[3635]*t[1810]/56.0;
02605       t[8891] = -t[3638]*t[1854]/280.0+t[3624]*t[1854]/168.0+t[6132]*t[1816]/56.0-t[3618]*t[1874]
02606 /280.0+t[3203]*t[1959]/280.0-t[4764]*t[1819]/560.0+3.0/560.0*t[3435]*t[1963]+3.0/560.0*
02607 t[3049]*t[1959]+t[3379]*t[1816]/280.0-t[3670]*t[1963]/280.0+t[4558]*t[1963]/280.0+t[3456]*t[1963]/
02608 560.0;
02609       t[8916] = -3.0/560.0*t[4828]*t[1974]-t[3330]*t[1819]/560.0-3.0/56.0*t[3638]*t[1804]+
02610 t[3624]*t[1810]/28.0-t[6132]*t[1859]/28.0+3.0/56.0*t[3635]*t[1816]-t[4831]*t[1959]/140.0-t[3312]*
02611 t[1816]/140.0+t[4188]*t[1810]/280.0-t[6933]*t[1816]/280.0-t[5751]*t[1810]/56.0-t[5568]*t[1854]/
02612 56.0;
02613       t[8942] = 3.0/560.0*t[4558]*t[1816]+t[5130]*t[1819]/560.0-3.0/560.0*t[4828]*t[1819]+3.0
02614 /560.0*t[3435]*t[1816]+3.0/56.0*t[3470]*t[1959]-t[4831]*t[1816]/280.0-t[3771]*t[1859]/280.0+3.0
02615 /56.0*t[5103]*t[1963]-3.0/560.0*t[4155]*t[1854]+3.0/560.0*t[3231]*t[1810]-t[4645]*t[1859]/560.0
02616 +t[3852]*t[1854]/560.0;
02617       t[8967] = 3.0/560.0*t[4667]*t[1816]-t[3330]*t[1810]/560.0-3.0/560.0*t[4828]*t[1810]+3.0
02618 /560.0*t[3286]*t[1974]+t[4439]*t[1963]/560.0+t[4439]*t[1959]/280.0-3.0/560.0*t[4667]*t[1874]
02619 -3.0/560.0*t[4667]*t[1810]-3.0/560.0*t[3456]*t[1874]-t[3330]*t[1854]/560.0-t[4828]*t[1854]/
02620 280.0+t[4335]*t[1959]/280.0;
02621       t[8994] = -3.0/280.0*t[3049]*t[1874]-3.0/280.0*t[3716]*t[1874]-t[3379]*t[1854]/280.0-
02622 t[3576]*t[1854]/280.0+3.0/560.0*t[3049]*t[1819]+3.0/560.0*t[3435]*t[1959]-3.0/560.0*t[3716]*
02623 t[1974]-t[3119]*t[1963]/1680.0-t[3675]*t[1959]/280.0+t[4297]*t[1804]/560.0-t[4050]*t[1959]/560.0+
02624 t[5441]*t[1804]/280.0;
02625       t[9019] = t[4050]*t[1816]/560.0-t[5259]*t[1959]/560.0+t[4297]*t[1859]/1680.0-t[3675]*
02626 t[1963]/560.0-t[3119]*t[1974]/560.0+t[4281]*t[1816]/280.0-t[5259]*t[1819]/560.0+3.0/560.0*
02627 t[3612]*t[1963]+3.0/560.0*t[4764]*t[1959]-t[3638]*t[1974]/280.0+t[4764]*t[1816]/280.0-3.0/560.0
02628 *t[3618]*t[1974];
02629       t[9045] = t[4125]*t[1816]/140.0-t[3618]*t[1819]/70.0+t[3612]*t[1959]/70.0-t[3638]*t[1963]/
02630 140.0+t[3203]*t[1963]/560.0+t[3612]*t[1974]/560.0-t[4125]*t[1874]/560.0+t[4946]*t[1963]/168.0+
02631 t[6659]*t[1959]/8.0+t[3515]*t[1959]/560.0+t[4764]*t[1963]/280.0+t[3470]*t[1859]/280.0;
02632       t[9072] = -t[3716]*t[1963]/560.0-t[3116]*t[1816]/560.0+3.0/560.0*t[5135]*t[1854]+t[3771]*
02633 t[1810]/560.0+t[3691]*t[1854]/560.0+t[3624]*t[1804]/8.0-t[6933]*t[1959]/280.0+t[4831]*t[1974]/
02634 280.0+t[3407]*t[1963]/140.0+3.0/560.0*t[4927]*t[1804]+t[5130]*t[1810]/280.0-t[6933]*t[1804]/
02635 560.0-t[3265]*t[1859]/1680.0;
02636       t[9102] = t[4831]*t[1854]/1680.0-t[3265]*t[1804]/560.0+t[3771]*t[1854]/560.0+t[3265]*
02637 t[1874]/280.0-t[3265]*t[1810]/280.0-t[3312]*t[1854]/280.0+t[6933]*t[1854]/280.0+3.0/280.0*
02638 t[3391]*t[1819]+t[3410]*t[1810]/56.0-t[3426]*t[1859]/56.0-3.0/280.0*t[3498]*t[1804]-t[3624]*t[1816]
02639 /8.0;
02640       t[9127] = 3.0/56.0*t[3410]*t[1804]+3.0/56.0*t[4584]*t[1859]-3.0/560.0*t[5441]*t[1974]-
02641 t[4297]*t[1974]/280.0+t[4297]*t[1959]/280.0-t[5441]*t[1963]/280.0+3.0/560.0*t[4281]*t[1959]-
02642 t[3379]*t[1974]/280.0-t[3576]*t[1963]/280.0-t[3330]*t[1974]/280.0+t[3330]*t[1959]/280.0-t[4828]*
02643 t[1963]/280.0;
02644       t[9153] = t[4667]*t[1963]/280.0-t[4125]*t[1974]/280.0+t[4125]*t[1959]/280.0-t[3618]*t[1963]
02645 /280.0+3.0/560.0*t[3330]*t[1816]-3.0/560.0*t[3209]*t[1963]+t[3530]*t[1963]/140.0-3.0/560.0*
02646 t[4050]*t[1963]-t[4050]*t[1974]/70.0-t[4297]*t[1874]/140.0+t[3530]*t[1959]/280.0+t[4281]*t[1819]/
02647 70.0;
02648       t[9178] = 3.0/560.0*t[4297]*t[1819]+t[4297]*t[1816]/560.0-t[5259]*t[1963]/560.0+t[3456]*
02649 t[1859]/56.0+3.0/280.0*t[3286]*t[1816]-t[3609]*t[1819]/56.0-3.0/280.0*t[3209]*t[1810]+t[3609]*
02650 t[1810]/28.0-t[3286]*t[1859]/28.0+t[3181]*t[1859]/560.0+3.0/560.0*t[3181]*t[1804]-3.0/560.0*
02651 t[3223]*t[1959];
02652       t[9205] = 3.0/560.0*t[3349]*t[1810]-3.0/560.0*t[3223]*t[1974]-t[3939]*t[1974]/560.0+3.0
02653 /560.0*t[3349]*t[1804]+3.0/560.0*t[4076]*t[1804]-3.0/560.0*t[3327]*t[1959]+3.0/280.0*t[3456]*
02654 t[1816]-3.0/280.0*t[3209]*t[1959]+t[3330]*t[1859]/280.0+t[4667]*t[1859]/280.0-t[3609]*t[1974]/
02655 280.0-3.0/280.0*t[3209]*t[1819];
02656       t[9230] = t[3116]*t[1974]/70.0+3.0/280.0*t[3178]*t[1874]+3.0/560.0*t[3178]*t[1974]-3.0/
02657 560.0*t[3175]*t[1810]-t[3175]*t[1854]/70.0-t[3939]*t[1959]/280.0-t[3939]*t[1819]/560.0+t[3349]*
02658 t[1859]/280.0+3.0/560.0*t[4022]*t[1804]-3.0/560.0*t[3223]*t[1816]+t[4076]*t[1859]/560.0+3.0/
02659 560.0*t[3075]*t[1874];
02660       t[9256] = -t[3070]*t[1854]/560.0+t[3116]*t[1959]/560.0+t[3138]*t[1854]/560.0-3.0/560.0*
02661 t[3129]*t[1804]+3.0/280.0*t[3138]*t[1804]+3.0/560.0*t[3070]*t[1804]-3.0/560.0*t[3075]*t[1959]
02662 -3.0/56.0*t[4321]*t[1874]+3.0/560.0*t[3426]*t[1874]-t[5124]*t[1963]/280.0-t[6659]*t[1874]/28.0-
02663 t[6659]*t[1974]/8.0;
02664       t[9281] = -t[6367]*t[1963]/8.0+t[4270]*t[1963]/8.0+t[4188]*t[1859]/280.0+t[4831]*t[1810]/
02665 560.0-t[6933]*t[1859]/560.0-t[4270]*t[1810]/280.0-t[3312]*t[1804]/280.0+t[3265]*t[1974]/140.0+
02666 3.0/560.0*t[3194]*t[1854]-3.0/560.0*t[3265]*t[1819]-t[4270]*t[1854]/140.0+t[6367]*t[1816]/56.0;
02667       t[9309] = -t[4831]*t[1963]/168.0-t[4188]*t[1959]/56.0-t[4270]*t[1816]/56.0+t[6367]*t[1874]/
02668 56.0+t[3194]*t[1974]/56.0-t[3312]*t[1959]/56.0+3.0/560.0*t[3049]*t[1816]-t[3410]*t[1959]/28.0+
02669 9.0/280.0*t[3336]*t[1974]+3.0/280.0*t[5751]*t[1963]-t[4270]*t[1819]/56.0+t[3312]*t[1974]/56.0;
02670       t[9334] = t[3265]*t[1963]/168.0-t[4270]*t[1874]/56.0-t[6659]*t[1854]/168.0+3.0/56.0*
02671 t[6367]*t[1974]+t[6659]*t[1816]/28.0-t[4188]*t[1963]/28.0+t[3312]*t[1963]/28.0+t[3515]*t[1974]/
02672 560.0+9.0/280.0*t[5568]*t[1974]-t[3339]*t[1959]/280.0+t[3194]*t[1874]/70.0+t[3194]*t[1810]/
02673 560.0;
02674       t[9360] = t[4188]*t[1854]/560.0-t[4645]*t[1816]/560.0-t[5259]*t[1874]/280.0-t[4321]*t[1959]
02675 /280.0+t[4281]*t[1804]/140.0+t[5441]*t[1810]/280.0+t[3530]*t[1819]/56.0-t[4321]*t[1974]/56.0-
02676 t[4281]*t[1874]/56.0+t[4281]*t[1810]/56.0-t[4050]*t[1874]/56.0-t[4297]*t[1854]/168.0;
02677       t[9385] = -3.0/560.0*t[3585]*t[1804]+3.0/560.0*t[3391]*t[1854]+3.0/280.0*t[3391]*
02678 t[1810]-3.0/280.0*t[3426]*t[1804]-t[3585]*t[1859]/280.0+3.0/560.0*t[3515]*t[1819]+3.0/560.0*
02679 t[6132]*t[1874]-t[4771]*t[1963]/280.0-3.0/560.0*t[5568]*t[1816]+3.0/280.0*t[5135]*t[1819]+t[3470]
02680 *t[1810]/280.0-3.0/560.0*t[4771]*t[1959];
02681       t[9412] = -3.0/280.0*t[5568]*t[1959]+3.0/560.0*t[5135]*t[1810]-3.0/560.0*t[5751]*
02682 t[1959]-3.0/280.0*t[3470]*t[1854]+3.0/280.0*t[3691]*t[1974]-3.0/280.0*t[4090]*t[1816]-t[4200]*
02683 t[1819]/56.0+t[4200]*t[1816]/28.0-t[3691]*t[1963]/28.0+3.0/280.0*t[5324]*t[1974]-t[4200]*t[1874]/
02684 56.0-3.0/280.0*t[4090]*t[1819];
02685       t[9437] = -t[5141]*t[1963]/56.0+t[3470]*t[1819]/56.0+t[3470]*t[1816]/56.0-t[4927]*t[1963]/
02686 56.0+t[5568]*t[1963]/28.0-t[3470]*t[1874]/28.0+3.0/56.0*t[3530]*t[1810]-3.0/560.0*t[5124]*
02687 t[1816]-t[4155]*t[1810]/560.0+3.0/560.0*t[3129]*t[1959]-t[3075]*t[1859]/56.0+t[3067]*t[1804]/56.0
02688 ;
02689       t[9463] = t[3138]*t[1859]/56.0+t[3585]*t[1874]/280.0-t[3585]*t[1810]/280.0-t[3407]*t[1854]/
02690 280.0-t[4321]*t[1963]/280.0+t[3530]*t[1816]/280.0-t[3675]*t[1974]/140.0+t[4297]*t[1810]/280.0-
02691 t[5141]*t[1859]/560.0+3.0/560.0*t[4155]*t[1859]+3.0/560.0*t[4667]*t[1959]+3.0/560.0*t[3939]*
02692 t[1810];
02693       t[9490] = -3.0/560.0*t[3327]*t[1859]+t[3515]*t[1874]/280.0-t[3515]*t[1810]/280.0-t[3203]*
02694 t[1854]/280.0-3.0/560.0*t[3116]*t[1859]+3.0/560.0*t[3067]*t[1854]+t[3067]*t[1810]/70.0-t[3178]*
02695 t[1859]/70.0-t[3067]*t[1816]/56.0+9.0/280.0*t[3398]*t[1816]+3.0/560.0*t[3116]*t[1963]-9.0/
02696 560.0*t[3175]*t[1874]+t[3716]*t[1859]/70.0;
02697       t[9519] = 9.0/280.0*t[3315]*t[1810]-t[3670]*t[1854]/280.0+t[4335]*t[1816]/280.0-9.0/
02698 280.0*t[4576]*t[1804]+9.0/560.0*t[3716]*t[1804]-3.0/280.0*t[4335]*t[1859]-3.0/560.0*t[3521]*
02699 t[1874]-9.0/560.0*t[3315]*t[1819]+3.0/280.0*t[3521]*t[1854]-3.0/280.0*t[3315]*t[1874]-3.0/
02700 560.0*t[3067]*t[1963]-9.0/560.0*t[3138]*t[1959];
02701       t[9544] = t[4439]*t[1974]/140.0+3.0/280.0*t[3286]*t[1874]-t[3456]*t[1854]/70.0+t[4439]*
02702 t[1819]/70.0-t[4667]*t[1854]/140.0+3.0/560.0*t[3391]*t[1963]-t[5130]*t[1816]/280.0-t[4599]*
02703 t[1810]/280.0+3.0/560.0*t[3407]*t[1959]-3.0/560.0*t[3498]*t[1810]-3.0/560.0*t[3407]*t[1804]+
02704 t[3398]*t[1859]/28.0;
02705       t[9570] = -3.0/280.0*t[3398]*t[1804]+3.0/280.0*t[3391]*t[1959]+t[3410]*t[1974]/280.0-
02706 t[3407]*t[1859]/280.0+t[3410]*t[1874]/280.0+3.0/560.0*t[3576]*t[1816]-t[3521]*t[1963]/560.0+3.0
02707 /560.0*t[3576]*t[1804]-3.0/560.0*t[3670]*t[1959]+t[3379]*t[1859]/560.0+t[3049]*t[1859]/280.0-
02708 t[3521]*t[1974]/280.0;
02709       t[9595] = -3.0/560.0*t[3670]*t[1819]-3.0/56.0*t[3609]*t[1816]-3.0/56.0*t[4045]*t[1859]+
02710 3.0/56.0*t[3609]*t[1804]+3.0/56.0*t[3209]*t[1859]-t[3939]*t[1816]/280.0-t[3223]*t[1859]/280.0+
02711 t[3939]*t[1804]/280.0+t[4022]*t[1859]/280.0+3.0/280.0*t[4076]*t[1810]+3.0/280.0*t[3223]*t[1810]
02712 +t[4022]*t[1854]/280.0;
02713       t[9622] = -t[3339]*t[1816]/280.0-3.0/280.0*t[3327]*t[1804]-t[3339]*t[1859]/280.0+t[3939]*
02714 t[1854]/280.0-t[3339]*t[1804]/56.0+t[3223]*t[1854]/56.0-t[3339]*t[1819]/56.0+t[3116]*t[1874]/56.0
02715 -t[3116]*t[1810]/56.0+t[3178]*t[1854]/56.0-3.0/560.0*t[3315]*t[1959]-3.0/280.0*t[3349]*t[1974];
02716       t[9647] = -3.0/560.0*t[4771]*t[1819]-3.0/560.0*t[5568]*t[1804]-3.0/280.0*t[3075]*
02717 t[1816]+3.0/56.0*t[3339]*t[1874]-3.0/56.0*t[3339]*t[1810]-3.0/56.0*t[3336]*t[1854]+3.0/56.0*
02718 t[3327]*t[1854]-t[3067]*t[1974]/560.0-t[3129]*t[1859]/560.0+t[3067]*t[1874]/560.0+3.0/560.0*
02719 t[3138]*t[1810]+t[3585]*t[1974]/280.0;
02720       t[9673] = 3.0/560.0*t[3426]*t[1974]-t[3498]*t[1854]/560.0+t[3585]*t[1819]/560.0-3.0/
02721 560.0*t[3432]*t[1810]-t[3432]*t[1854]/280.0+3.0/560.0*t[3426]*t[1959]-3.0/560.0*t[3432]*t[1804]
02722 -3.0/560.0*t[3398]*t[1810]+3.0/560.0*t[3391]*t[1874]+3.0/560.0*t[3391]*t[1974]-t[3398]*t[1854]/
02723 560.0+t[3585]*t[1959]/560.0;
02724       t[9700] = 3.0/560.0*t[5141]*t[1810]+3.0/560.0*t[3426]*t[1819]+3.0/280.0*t[3435]*t[1974]
02725 +t[3178]*t[1963]/560.0+t[5324]*t[1963]/56.0-t[3119]*t[1959]/560.0+t[5441]*t[1819]/560.0-t[4321]*
02726 t[1859]/140.0-t[4321]*t[1816]/280.0+3.0/560.0*t[4022]*t[1810]+t[3203]*t[1974]/560.0+t[3203]*
02727 t[1819]/560.0+t[6132]*t[1974]/280.0;
02728       t[9728] = -t[4764]*t[1874]/560.0-t[4764]*t[1810]/280.0-t[3612]*t[1874]/560.0-t[4125]*
02729 t[1854]/1680.0-t[3618]*t[1854]/560.0-t[4125]*t[1810]/560.0+3.0/280.0*t[4828]*t[1816]-t[3609]*
02730 t[1963]/280.0-3.0/560.0*t[3327]*t[1816]-t[3129]*t[1854]/56.0+9.0/560.0*t[3070]*t[1816]+t[4335]*
02731 t[1819]/56.0;
02732       t[9753] = -t[3432]*t[1859]/280.0-t[3675]*t[1859]/280.0+t[3119]*t[1804]/280.0+t[5259]*
02733 t[1859]/280.0+t[5441]*t[1859]/560.0+3.0/280.0*t[3339]*t[1963]+3.0/56.0*t[4335]*t[1874]-3.0/
02734 56.0*t[4335]*t[1810]-3.0/56.0*t[3435]*t[1854]+t[3530]*t[1859]/280.0+t[3675]*t[1854]/28.0+t[4050]*
02735 t[1804]/70.0;
02736       t[9779] = -t[4946]*t[1859]/168.0-t[3675]*t[1819]/70.0+t[4946]*t[1974]/28.0-t[4281]*t[1854]/
02737 28.0+3.0/560.0*t[4050]*t[1859]-3.0/560.0*t[3119]*t[1819]+3.0/560.0*t[5259]*t[1804]+t[3119]*
02738 t[1810]/140.0-t[3119]*t[1816]/280.0+t[4188]*t[1974]/56.0-t[3330]*t[1874]/280.0-t[4599]*t[1874]/
02739 140.0;
02740       t[9804] = -t[3119]*t[1874]/280.0-t[3521]*t[1959]/140.0-t[3638]*t[1874]/280.0-t[4764]*
02741 t[1804]/280.0-t[3618]*t[1810]/140.0+t[3635]*t[1974]/280.0+9.0/280.0*t[4045]*t[1810]-9.0/280.0
02742 *t[3286]*t[1804]-3.0/280.0*t[4439]*t[1859]+3.0/280.0*t[3609]*t[1854]-t[3624]*t[1963]/168.0+
02743 t[3635]*t[1959]/56.0;
02744       t[9831] = -t[4125]*t[1804]/280.0-t[3618]*t[1804]/56.0+t[3612]*t[1816]/56.0+t[3635]*t[1963]/
02745 280.0-3.0/560.0*t[3670]*t[1874]+t[3771]*t[1874]/280.0-3.0/560.0*t[3315]*t[1974]+3.0/560.0*
02746 t[5091]*t[1974]-3.0/560.0*t[3506]*t[1819]+t[3231]*t[1804]/280.0+t[3379]*t[1804]/560.0+9.0/560.0
02747 *t[3181]*t[1819];
02748       t[9856] = 3.0/56.0*t[4576]*t[1854]+3.0/560.0*t[5091]*t[1874]+3.0/560.0*t[4645]*t[1974]
02749 -9.0/560.0*t[4076]*t[1974]-3.0/560.0*t[3506]*t[1810]-t[4645]*t[1819]/560.0+3.0/280.0*t[3670]*
02750 t[1804]-t[4335]*t[1804]/28.0+t[5324]*t[1854]/560.0+t[5052]*t[1854]/280.0+t[3175]*t[1859]/560.0+
02751 3.0/560.0*t[4558]*t[1974];
02752       t[9882] = -3.0/560.0*t[3070]*t[1874]-3.0/560.0*t[3506]*t[1804]-t[4645]*t[1804]/280.0+
02753 t[3635]*t[1819]/56.0+t[3231]*t[1859]/560.0+t[4188]*t[1874]/140.0+t[6933]*t[1974]/280.0-t[5124]*
02754 t[1859]/280.0+t[5130]*t[1804]/280.0-3.0/140.0*t[3852]*t[1959]+3.0/140.0*t[5068]*t[1859]-3.0/
02755 56.0*t[3470]*t[1974];
02756       t[9909] = 9.0/560.0*t[3075]*t[1810]-t[6132]*t[1804]/56.0-3.0/560.0*t[4090]*t[1810]+3.0/
02757 560.0*t[5324]*t[1874]-3.0/280.0*t[3315]*t[1816]+t[3638]*t[1859]/8.0+t[3426]*t[1854]/280.0+3.0/
02758 140.0*t[5751]*t[1974]-3.0/56.0*t[4200]*t[1974]-3.0/140.0*t[5103]*t[1854]-3.0/560.0*t[5130]*
02759 t[1959]+3.0/560.0*t[3181]*t[1816]-t[6933]*t[1819]/560.0;
02760 //-----------------------------------------------------------------------------
02761       wgt[3] = t[8393]+t[9437]+t[9909]+t[9153]+t[8316]+t[8419]+t[9804]+t[8994]+t[9334]+t[9256]+
02762 t[8548]+t[8891]+t[9595]+t[9019]+t[9463]+t[8444]+t[8810]+t[9728]+t[8575]+t[8916]+t[9360]+t[9831]+t[8600]+
02763 t[8733]+t[9230]+t[9045]+t[8626]+t[9385]+t[9281]+t[8341]+t[9490]+t[9700]+t[9178]+t[8472]+t[9856]+t[8836]+
02764 t[8653]+t[9072]+t[8942]+t[9753]+t[9519]+t[8290]+t[9205]+t[8497]+t[8368]+t[9882]+t[8967]+t[9412]+t[8682]+
02765 t[8785]+t[9309]+t[8758]+t[9622]+t[9779]+t[9673]+t[9647]+t[8707]+t[8863]+t[9102]+t[9127]+t[8265]+t[9570]+
02766 t[8523]+t[9544];
02767 }
02768 //-----------------------------------------------------------------------------
02769 // CalVolumeOfL2Approximation
02770 // Call d3mom0 ( v, dv, wgt ) subroutine to calculate a volume 
02771 // contribution by the (linear Bezier) triangle(s) with all dv zeroes (zero moment)
02772 template <typename T>
02773 T ExtendedOpenGLPNTriangleVolPresModel<T>::CalVolumeOfL2Approximation ()
02774 {
02775     //-------------------------------------------------------------------------
02776     int faceIdx, normIdx;
02777     T wgt[4] = { 0, 0, 0, 0 };
02778     T  v3[10][3];
02779 //  T dv3[10][3];
02780     T  v[3][3];
02781     T dv[3][3];
02782     //-------------------------------------------------------------------------
02783     for ( int i = 0; i < m_iNoFaces; ++i ) {
02784         faceIdx = i*30;
02785         normIdx = i*18;
02786         //----------------------------------------------------------------------
02787         // Tri Face
02789         for ( int p = 0; p < 10; ++p ) {
02790             v3[p][0] = m_prPNTriCoef[ faceIdx + p*3     ];
02791             v3[p][1] = m_prPNTriCoef[ faceIdx + p*3 + 1 ];
02792             v3[p][2] = m_prPNTriCoef[ faceIdx + p*3 + 2 ];
02793         }
02794         //*/
02795         CubicToLinearApproxByL2Tri( v3, v );
02796 
02797         /*
02798         for ( int n = 0; n < 6; ++n ) {
02799             dv3[n][0] = m_prPNTriNormal[ normIdx + n     ];
02800             dv3[n][1] = m_prPNTriNormal[ normIdx + n + 1 ];
02801             dv3[n][2] = m_prPNTriNormal[ normIdx + n + 2 ];
02802         }
02803         */
02804         //----------------------------------------------------------------
02805         d3mom0( v, dv, wgt );   // call subroutine
02806     }
02807 
02808     //m_tVolume = wgt[0];   // update the volume of the model
02809     return wgt[0];
02810 }
02811 //-----------------------------------------------------------------------------
02812 // Helper Fn: TriBezierDegreeRaiseFrom2to3
02813 template <typename T>
02814 void ExtendedOpenGLPNTriangleVolPresModel<T>::
02815 TriBezierDegreeRaiseFrom2to3 ( T deg2In[6][3], T deg3Out[10][3] )
02816 {
02817     // Assume deg2In indices are arranged in the form below
02818     //         5
02819     //       3 - 4 
02820     //     0 - 1 - 2
02821     // Then deg3Out indices will be arranged in this form
02822     //           9
02823     //         7 - 8
02824     //       4 - 5 - 6
02825     //     0 - 1 - 2 - 3
02826     //
02827     // Degree Raise in one dimension is
02828     //              k            /      k  \
02829     // b^(bar)_k = --- b_(k-1) + | 1 - --- |*b_k
02830     //             d+1           \     d+1 /
02831     // where k = 0 to d+1
02832     // and b_(-1) = b_(d+1) = 0
02833     //
02834     // For triangular Bezier Surface
02835     //                           030
02836     //                           / \
02837     //      020                120-021
02838     //      / \                / \ / \
02839     //    110-011      ==>   210-111-012
02840     //    / \ / \            / \ / \ / \
02841     //  200-101-002        300-201-102-003
02842     // where:
02843     //   210 = (1/3)200 + (2/3)110
02844     //   120 = (2/3)110 + (1/3)020
02845     //   111 = (101 + 110 + 011) / 3
02846 
02847     T s1 = static_cast<T>(1.0/3.0);
02848     T s2 = static_cast<T>(2.0/3.0);
02849     for ( int i = 0; i < 3; ++i ) {
02850         deg3Out[0][i] = deg2In[0][i];
02851         deg3Out[1][i] = s1*deg2In[0][i] + s2*deg2In[1][i];
02852         deg3Out[2][i] = s1*deg2In[2][i] + s2*deg2In[1][i];
02853         deg3Out[3][i] = deg2In[2][i];
02854         deg3Out[4][i] = s1*deg2In[0][i] + s2*deg2In[3][i];
02855         deg3Out[5][i] = s1 * (deg2In[1][i] + deg2In[3][i] + deg2In[4][i]);
02856         deg3Out[6][i] = s1*deg2In[2][i] + s2*deg2In[4][i];
02857         deg3Out[7][i] = s1*deg2In[5][i] + s2*deg2In[3][i];
02858         deg3Out[8][i] = s1*deg2In[5][i] + s2*deg2In[4][i];
02859         deg3Out[9][i] = deg2In[5][i];
02860     }
02861 }
02862 //-----------------------------------------------------------------------------
02863 // Helper Fn: CubicToLinearApproxByL2Tri
02864 template <typename T>
02865 void ExtendedOpenGLPNTriangleVolPresModel<T>::
02866 CubicToLinearApproxByL2Tri ( T deg3In[10][3], T deg1Out[3][3] )
02867 {
02868     // Assume deg3In indices are arranged in this form
02869     //           9
02870     //         7 - 8
02871     //       4 - 5 - 6
02872     //     0 - 1 - 2 - 3
02873     //
02874     // The deg1Out indices will be arranged in this form
02875     //       2
02876     //      / \
02877     //     0 - 1
02878     // The stencil is
02879     //    5  3  1 -1
02880     //    3  1 -1
02881     //    1 -1
02882     //   -1
02883     // divided by 10
02884     //T s1 = 5; T s2 = 3;   T s3 = 1;   T d1 = s1 + 2*s2 - s3;
02885     T s1 = 5;   T s2 = 3;   T s3 = 1;   T d1 = s1 + 2*s2 - s3;
02886     for ( int i = 0; i < 3; ++i ) {
02887         deg1Out[0][i] = (
02888             s1*deg3In[0][i] +
02889             s2*deg3In[1][i] +
02890             s2*deg3In[4][i] +
02891             s3*deg3In[2][i] +
02892             s3*deg3In[5][i] +
02893             s3*deg3In[7][i] -
02894             s3*deg3In[3][i] -
02895             s3*deg3In[6][i] -
02896             s3*deg3In[8][i] -
02897             s3*deg3In[9][i] ) / d1;
02898         deg1Out[1][i] = (
02899             s1*deg3In[3][i] +
02900             s2*deg3In[2][i] +
02901             s2*deg3In[6][i] +
02902             s3*deg3In[1][i] +
02903             s3*deg3In[5][i] +
02904             s3*deg3In[8][i] -
02905             s3*deg3In[0][i] -
02906             s3*deg3In[4][i] -
02907             s3*deg3In[7][i] -
02908             s3*deg3In[9][i] ) / d1;
02909         deg1Out[2][i] = (
02910             s1*deg3In[9][i] +
02911             s2*deg3In[7][i] +
02912             s2*deg3In[8][i] +
02913             s3*deg3In[4][i] +
02914             s3*deg3In[5][i] +
02915             s3*deg3In[6][i] -
02916             s3*deg3In[0][i] -
02917             s3*deg3In[1][i] -
02918             s3*deg3In[2][i] -
02919             s3*deg3In[3][i] ) / d1;
02920     }
02921 }
02922 //-----------------------------------------------------------------------------
02923 //=============================================================================
02924 END_NAMESPACE_TAPs__OpenGL
02925 //-----------------------------------------------------------------------------
02926 //345678901234567890123456789012345678901234567890123456789012345678901234567890
02927 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines