public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: Scott Snyder <snyder@fnal.gov>
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org,
Subject: Re: optimization/2692: excessive compile time with optimization
Date: Tue, 02 Apr 2002 01:16:00 -0000	[thread overview]
Message-ID: <20020402091603.1479.qmail@sources.redhat.com> (raw)

The following reply was made to PR optimization/2692; it has been noted by GNATS.

From: Scott Snyder <snyder@fnal.gov>
To: rth@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
        nobody@gcc.gnu.org, snyder@fnal.gov, gcc-gnats@gcc.gnu.org
Cc:  
Subject: Re: optimization/2692: excessive compile time with optimization
Date: 02 Apr 2002 03:11:25 -0600

 From: scott snyder <snyder@fnal.gov>
 Subject: optimization/2692: excessive compile time with optimization
 To: gcc-bugs@gcc.gnu.org
 Date: Fri, 18 May 2001 15:34:07 -0500
 
 
 hi -
 
 I just noticed that somehow the code sample for this report didn't make
 it into gnats.  I'm not sure what happened --- it's in my local copy
 of the report that i saved before sending it.
 
 Anyway, here's the complete version, including the code.
 
 sss
 
 SEND-PR: -*- send-pr -*-
 SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as
 SEND-PR: will all comments (text enclosed in `<' and `>').
 SEND-PR: 
 SEND-PR: Please consult the GCC manual if you are not sure how to
 SEND-PR: fill out a problem report.
 SEND-PR: Note that the Synopsis field is mandatory.  The Subject (for
 SEND-PR: the mail) will be made the same as Synopsis unless explicitly
 SEND-PR: changed.
 SEND-PR:
 SEND-PR: Choose from the following categories:
 SEND-PR:
 SEND-PR: c++ c debug fortran java libf2c libgcj libobjc libstdc++ middle-end objc optimization other preprocessor target web 
 SEND-PR: 
 SEND-PR:
 To: gcc-gnats@gcc.gnu.org
 Subject: excessive compile time with optimization
 From: snyder@fnal.gov
 Reply-To: snyder@fnal.gov
 Cc: 
 X-send-pr-version: 3.113
 X-GNATS-Notify: 
 
 
 >Submitter-Id:	net
 >Originator:	scott snyder
 >Organization:	<organization of PR author (multiple lines)>
 >Confidential:	no
 SEND-PR: Leave "Confidential" as "no"; all GCC PRs are public.
 >Synopsis:	excessive compile time with optimization
 >Severity:	serious
 SEND-PR: critical     GCC is completely not operational; no work-around known.
 SEND-PR: serious      GCC is not working properly; a work-around is possible.
 SEND-PR: non-critical Report indicates minor problem.
 >Priority:	low
 SEND-PR: high         A solution is necessary as soon as possible.
 SEND-PR: medium       The problem should be solved in the next release.
 SEND-PR: low          The problem should be solve in a future release.
 >Category:	optimization
 >Class:		sw-bug
 SEND-PR: doc-bug          The doumentation is incorrect.
 SEND-PR: accepts-illegal  GCC fails to reject erroneous code.
 SEND-PR: rejects-legal    GCC gives an error message for correct code.
 SEND-PR: wrong-code       The machine code generated by gcc is incorrect.
 SEND-PR: ice-on-legal-code   GCC gives an Internal Compiler Error (ICE)
 SEND-PR:                     for correct code
 SEND-PR: ice-on-illegal-code GCC gives an ICE instead of reporting an error
 SEND-PR: pessimizes-code     GCC misses an important optimization opportunity
 SEND-PR: sw-bug              Software bug of some other class than above
 SEND-PR: change-request      A feature in GCC is missing.
 SEND-PR: support             I need help with gcc.
 >Release:	3.0 20010429 (prerelease)
 >Environment:
 System: Linux karma 2.2.16-22 #1 Tue Aug 22 16:49:06 EDT 2000 i686 unknown
 Architecture: i686
 
 	<machine, os, target, libraries (multiple lines)>
 host: i686-pc-linux-gnu
 build: i686-pc-linux-gnu
 target: i686-pc-linux-gnu
 configured with: ../egcs/configure --prefix=/usr/local/egcs --enable-threads=posix --enable-long-long
 >Description:
 
 If i try to compile the source below with -O2, gcc runs for over 45 minutes
 and grows to over 300 MB.  On my machine, it exhausts the available
 swap space and dies before completing.
 
 Without optimization, it completes in a couple minutes.
 
 gcc 2.95.2 dies immediately with an ICE on this source, regardless
 of whether or not optimization is on, so i guess this isn't a regression.
 
 >How-To-Repeat:
 
 
 namespace std
 {
 
 
   class dcomplex
   {
   public:
     typedef double value_type;
 
     dcomplex(double  =0.0, double =0.0);
         
     double real() const;
     double imag() const;
         
     dcomplex& operator=(double);
     
     dcomplex& operator=(const dcomplex&);
     dcomplex& operator+=(const dcomplex&);
     dcomplex& operator-=(const dcomplex&);
     dcomplex& operator*=(const dcomplex&);
     
   private:
     typedef __complex__ double _ComplexT;
     _ComplexT _M_value;
 
     dcomplex(_ComplexT __z) : _M_value(__z) { }
   };
 
 inline dcomplex
 operator*(const dcomplex& __x, const dcomplex& __y)
 { return dcomplex (__x) *= __y; }
 
 inline dcomplex
 operator-(const dcomplex& __x, const dcomplex& __y)
 { return dcomplex (__x) -= __y; }
 
 inline dcomplex
 operator+(const dcomplex& __x, const dcomplex& __y)
 { return dcomplex (__x) += __y; }
 
   inline double
   dcomplex::real() const
   { return __real__ _M_value; }
 
   inline double
   dcomplex::imag() const
   { return __imag__ _M_value; }
 
   inline
   dcomplex::dcomplex(double __r, double __i)
   {
     __real__ _M_value = __r;
     __imag__ _M_value = __i;
   }
 
   inline dcomplex&
   dcomplex::operator=(double __d)
   {
     __real__ _M_value = __d;
     __imag__ _M_value = 0.0;
     return *this;
   }
 
 
 
     inline dcomplex&
     dcomplex::operator=(const dcomplex& __z)
     {
       __real__ _M_value = __z.real();
       __imag__ _M_value = __z.imag();
       return *this;
     }
     
     inline dcomplex&
     dcomplex::operator+=(const dcomplex& __z)
     {
       __real__ _M_value += __z.real();
       __imag__ _M_value += __z.imag();
       return *this;
     }
 
     inline dcomplex&
     dcomplex::operator-=(const dcomplex& __z)
     {
       __real__ _M_value -= __z.real();
       __imag__ _M_value -= __z.imag();
       return *this;
     }
 
     inline dcomplex&
     dcomplex::operator*=(const dcomplex& __z)
     {
       _ComplexT __t;
       __real__ __t = __z.real();
       __imag__ __t = __z.imag();
       _M_value *= __t;
       return *this;
     }
 
 
 } // namespace std
 
 
 
 
 
 typedef std::dcomplex Complex8;
 
 Complex8 determinant(Complex8 _m[6][6])
 {
   Complex8 ret  ( 0.0, 0.0 );
   Complex8 ret5 ( 0.0, 0.0 );
   Complex8 ret4 ( 0.0, 0.0 );
   Complex8 ret3 ( 0.0, 0.0 );
 
   ret3 =
     ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][2]
   + ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][0]
   + ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][1];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][1]
   + ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][2]
   + ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][3];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][3]
   + ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][0]
   + ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][2];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][1]
   + ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][3]
   + ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][0];
 
 
   ret4 += _m[3][2] * ret3;
 
   ret5 += _m[4][4] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][4]
   + ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][1]
   + ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][3];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][2]
   + ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][4]
   + ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][1];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][1]
   + ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][2]
   + ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][3];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][3]
   + ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][4]
   + ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][2];
 
   ret4 += _m[3][1] * ret3;
 
   ret5 += _m[4][0] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][2]
   + ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][3]
   + ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][4];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][4]
   + ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][0]
   + ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][3];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][2]
   + ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][4]
   + ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][0];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][0]
   + ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][2]
   + ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][3];
 
 
   ret4 += _m[3][4] * ret3;
 
   ret5 += _m[4][1] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][3]
   + ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][0]
   + ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][1];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][1]
   + ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][3]
   + ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][4];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][4]
   + ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][0]
   + ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][3];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][1]
   + ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][4]
   + ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][0];
 
 
   ret4 += _m[3][3] * ret3;
 
   ret5 += _m[4][2] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][0]
   + ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][1]
   + ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][4];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][2]
   + ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][0]
   + ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][1];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][1]
   + ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][2]
   + ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][4];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][4]
   + ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][0]
   + ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][2];
 
 
   ret4 += _m[3][1] * ret3;
 
   ret5 += _m[4][3] * ret4;
   ret4 = 0.0;
 
   ret += _m[5][5] * ret5;
   ret5 = 0.0;
 
 
   ret3 =
     ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][2]
   + ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][4]
   + ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][5];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][5]
   + ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][1]
   + ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][4];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][2]
   + ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][5]
   + ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][1];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][1]
   + ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][2]
   + ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][4];
 
 
   ret4 += _m[3][5] * ret3;
 
   ret5 += _m[4][3] * ret4;
   ret4 = 0.0;
 
 
   ret3 =
     ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][3]
   + ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][1]
   + ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][2];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][2]
   + ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][3]
   + ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][5];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][5]
   + ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][1]
   + ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][3];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][2]
   + ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][5]
   + ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][1];
 
 
   ret4 += _m[3][3] * ret3;
 
   ret5 += _m[4][4] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][1]
   + ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][2]
   + ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][4];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][3]
   + ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][1]
   + ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][2];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][2]
   + ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][3]
   + ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][4];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][4]
   + ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][1]
   + ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][3];
 
 
   ret4 += _m[3][2] * ret3;
 
   ret5 += _m[4][5] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][3]
   + ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][4]
   + ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][5];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][5]
   + ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][2]
   + ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][4];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][3]
   + ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][5]
   + ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][2];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][2]
   + ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][3]
   + ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][4];
 
 
   ret4 += _m[3][5] * ret3;
 
   ret5 += _m[4][1] * ret4;
   ret4 = 0.0;
 
 
   ret3 =
     ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][4]
   + ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][1]
   + ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][3];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][3]
   + ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][4]
   + ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][5];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][5]
   + ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][1]
   + ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][4];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][3]
   + ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][5]
   + ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][1];
 
   ret4 += _m[3][4] * ret3;
 
   ret5 += _m[4][2] * ret4;
   ret4 = 0.0;
 
   ret += _m[5][0] * ret5;
   ret5 = 0.0;
 
 
   ret3 =
     ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][0]
   + ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][3]
   + ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][5];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][4]
   + ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][0]
   + ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][3];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][3]
   + ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][4]
   + ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][5];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][5]
   + ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][0]
   + ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][4];
 
 
   ret4 += _m[3][3] * ret3;
 
   ret5 += _m[4][2] * ret4;
   ret4 = 0.0;
 
 
   ret3 =
     ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][4]
   + ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][5]
   + ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][0];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][0]
   + ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][2]
   + ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][5];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][4]
   + ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][0]
   + ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][2];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][2]
   + ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][4]
   + ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][5];
 
 
   ret4 += _m[3][0] * ret3;
 
   ret5 += _m[4][3] * ret4;
   ret4 = 0.0;
 
 
   ret3 =
     ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][5]
   + ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][2]
   + ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][3];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][3]
   + ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][5]
   + ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][0];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][0]
   + ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][2]
   + ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][5];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][3]
   + ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][0]
   + ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][2];
 
 
   ret4 += _m[3][5] * ret3;
 
   ret5 += _m[4][4] * ret4;
   ret4 = 0.0;
 
 
   ret3 =
     ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][2]
   + ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][3]
   + ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][0];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][4]
   + ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][2]
   + ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][3];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][3]
   + ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][4]
   + ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][0];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][0]
   + ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][2]
   + ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][4];
 
 
   ret4 += _m[3][3] * ret3;
 
   ret5 += _m[4][5] * ret4;
   ret4 = 0.0;
 
 
   ret3 =
     ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][4]
   + ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][5]
   + ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][2];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][2]
   + ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][3]
   + ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][5];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][4]
   + ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][2]
   + ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][3];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][3]
   + ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][4]
   + ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][5];
 
 
   ret4 += _m[3][2] * ret3;
 
   ret5 += _m[4][0] * ret4;
   ret4 = 0.0;
 
   ret += _m[5][1] * ret5;
   ret5 = 0.0;
 
   ret3 =
     ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][5]
   + ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][3]
   + ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][4];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][4]
   + ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][5]
   + ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][1];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][1]
   + ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][3]
   + ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][5];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][4]
   + ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][1]
   + ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][3];
 
 
   ret4 += _m[3][5] * ret3;
 
   ret5 += _m[4][0] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][3]
   + ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][4]
   + ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][0];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][5]
   + ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][3]
   + ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][4];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][4]
   + ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][5]
   + ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][0];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][0]
   + ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][3]
   + ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][5];
 
 
   ret4 += _m[3][4] * ret3;
 
   ret5 += _m[4][1] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][5]
   + ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][0]
   + ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][1];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][1]
   + ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][4]
   + ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][0];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][5]
   + ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][1]
   + ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][4];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][4]
   + ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][5]
   + ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][0];
 
 
   ret4 += _m[3][1] * ret3;
 
   ret5 += _m[4][3] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][0]
   + ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][3]
   + ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][5];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][5]
   + ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][0]
   + ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][1];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][1]
   + ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][3]
   + ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][0];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][5]
   + ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][1]
   + ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][3];
 
 
   ret4 += _m[3][0] * ret3;
 
   ret5 += _m[4][4] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][3]
   + ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][4]
   + ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][1];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][0]
   + ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][3]
   + ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][4];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][4]
   + ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][0]
   + ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][1];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][1]
   + ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][3]
   + ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][0];
 
 
   ret4 += _m[3][4] * ret3;
 
   ret5 += _m[4][5] * ret4;
   ret4 = 0.0;
 
   ret += _m[5][2] * ret5;
   ret5 = 0.0;
 
 
   ret3 =
     ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][0]
   + ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][1]
   + ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][2];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][2]
   + ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][4]
   + ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][1];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][0]
   + ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][2]
   + ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][4];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][4]
   + ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][0]
   + ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][1];
 
 
   ret4 += _m[3][2] * ret3;
 
   ret5 += _m[4][5] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][1]
   + ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][4]
   + ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][5];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][5]
   + ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][1]
   + ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][2];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][2]
   + ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][4]
   + ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][1];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][5]
   + ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][2]
   + ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][4];
 
 
   ret4 += _m[3][1] * ret3;
 
   ret5 += _m[4][0] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][4]
   + ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][5]
   + ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][2];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][0]
   + ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][4]
   + ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][5];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][5]
   + ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][0]
   + ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][2];
 
   ret4 += _m[3][4] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][2]
   + ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][4]
   + ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][0];
 
 
   ret4 += _m[3][5] * ret3;
 
   ret5 += _m[4][1] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][0]
   + ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][1]
   + ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][4];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][4]
   + ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][5]
   + ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][1];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][0]
   + ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][4]
   + ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][5];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][5]
   + ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][0]
   + ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][1];
 
 
   ret4 += _m[3][4] * ret3;
 
   ret5 += _m[4][2] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][1]
   + ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][5]
   + ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][0];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][0]
   + ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][1]
   + ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][2];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][2]
   + ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][5]
   + ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][1];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][0]
   + ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][2]
   + ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][5];
 
 
   ret4 += _m[3][1] * ret3;
 
   ret5 += _m[4][4] * ret4;
   ret4 = 0.0;
 
   ret += _m[5][3] * ret5;
   ret5 = 0.0;
 
   ret3 =
     ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][5]
   + ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][0]
   + ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][2];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][1]
   + ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][5]
   + ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][0];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][0]
   + ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][1]
   + ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][2];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][2]
   + ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][5]
   + ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][1];
 
 
   ret4 += _m[3][0] * ret3;
 
   ret5 += _m[4][3] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][1]
   + ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][2]
   + ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][3];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][3]
   + ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][0]
   + ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][2];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][1]
   + ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][3]
   + ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][0];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][0]
   + ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][1]
   + ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][2];
 
 
   ret4 += _m[3][3] * ret3;
 
   ret5 += _m[4][5] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][2]
   + ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][5]
   + ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][1];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][1]
   + ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][2]
   + ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][3];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][3]
   + ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][5]
   + ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][2];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][1]
   + ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][3]
   + ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][5];
 
 
   ret4 += _m[3][2] * ret3;
 
   ret5 += _m[4][0] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][5]
   + ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][0]
   + ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][3];
 
   ret4 += _m[3][2] * ret3;
 
   ret3 =
     ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][2]
   + ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][5]
   + ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][0];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][0]
   + ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][2]
   + ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][3];
 
   ret4 += _m[3][5] * ret3;
 
   ret3 =
     ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][3]
   + ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][5]
   + ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][2];
 
 
   ret4 += _m[3][0] * ret3;
 
   ret5 += _m[4][1] * ret4;
   ret4 = 0.0;
 
   ret3 =
     ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][1]
   + ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][3]
   + ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][5];
 
   ret4 += _m[3][0] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][5]
   + ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][0]
   + ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][3];
 
   ret4 += _m[3][1] * ret3;
 
   ret3 =
     ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][1]
   + ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][5]
   + ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][0];
 
   ret4 += _m[3][3] * ret3;
 
   ret3 =
     ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][0]
   + ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][1]
   + ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][3];
 
   ret4 += _m[3][5] * ret3;
   ret5 += _m[4][2] * ret4;
   ret  += _m[5][4] * ret5;
 
   return ret;
 }
 
 
 
 >Fix:
 	<how to correct or work around the problem, if known (multiple lines)>


             reply	other threads:[~2002-04-02  9:16 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-04-02  1:16 Scott Snyder [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-04-12 16:43 rth
2002-04-02  1:56 Richard Henderson
2002-04-02  1:34 rth
2002-04-02  0:31 rth
2001-04-29 21:06 snyder

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020402091603.1479.qmail@sources.redhat.com \
    --to=snyder@fnal.gov \
    --cc=gcc-prs@gcc.gnu.org \
    --cc=nobody@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).