inlib  1.2.0
Public Member Functions
inlib::a3::sqm< T > Class Template Reference
Inheritance diagram for inlib::a3::sqm< T >:
Inheritance graph
[legend]
Collaboration diagram for inlib::a3::sqm< T >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 sqm ()
virtual ~sqm ()
 sqm (const sqm &a_from)
sqmoperator= (const sqm &a_from)
void v00 (const T &a_value)
void v10 (const T &a_value)
void v20 (const T &a_value)
void v01 (const T &a_value)
void v11 (const T &a_value)
void v21 (const T &a_value)
void v02 (const T &a_value)
void v12 (const T &a_value)
void v22 (const T &a_value)
v00 () const
v10 () const
v20 () const
v01 () const
v11 () const
v21 () const
v02 () const
v12 () const
v22 () const
virtual T determinant () const
bool invert (sqm< T > &a_result) const

Detailed Description

template<class T>
class inlib::a3::sqm< T >

Definition at line 99 of file a3.


Constructor & Destructor Documentation

template<class T>
inlib::a3::sqm< T >::sqm ( ) [inline]

Definition at line 101 of file a3.

template<class T>
virtual inlib::a3::sqm< T >::~sqm ( ) [inline, virtual]

Reimplemented from inlib::sqm< T >.

Definition at line 102 of file a3.

{}
template<class T>
inlib::a3::sqm< T >::sqm ( const sqm< T > &  a_from) [inline]

Definition at line 104 of file a3.

:inlib::sqm<T>(a_from){}

Member Function Documentation

template<class T>
virtual T inlib::a3::sqm< T >::determinant ( ) const [inline, virtual]

Reimplemented from inlib::sqm< T >.

Definition at line 134 of file a3.

                                {
    T e00 =  D22(v11(),v12(),v21(),v22());
    T e01 = -D22(v01(),v02(),v21(),v22());
    T e02 =  D22(v01(),v02(),v11(),v12());
    return (  v00() * e00
            + v10() * e01
            + v20() * e02);

  }
template<class T>
bool inlib::a3::sqm< T >::invert ( sqm< T > &  a_result) const [inline]

Definition at line 144 of file a3.

                                      {
    a_result.v00(
      D22(v11(),v12(),
          v21(),v22()));
    a_result.v01(
      -D22(v01(),v02(),
           v21(),v22()));
    a_result.v02(
      D22(v01(),v02(),
          v11(),v12()));
                  
    T deter =
        v00() * a_result.v00()
      + v10() * a_result.v01()
      + v20() * a_result.v02();

    if(deter==array<T>::zero()) return false;
                  
    a_result.v10(
     -D22(v10(),v12(),
          v20(),v22()));
    a_result.v11(
      D22(v00(),v02(),
          v20(),v22()));
    a_result.v12(
     -D22(v00(),v02(),
          v10(),v12()));
                    
    a_result.v20(
      D22(v10(),v11(),
          v20(),v21()));
    a_result.v21(
     -D22(v00(),v01(),
          v20(),v21()));
    a_result.v22(
      D22(v00(),v01(),
          v10(),v11()));
                    
    a_result.multiply(1./deter);  
  
    return true;
  }
template<class T>
sqm& inlib::a3::sqm< T >::operator= ( const sqm< T > &  a_from) [inline]

Definition at line 105 of file a3.

                                    {
    inlib::sqm<T>::operator=(a_from);
    return *this;
  }
template<class T>
void inlib::a3::sqm< T >::v00 ( const T &  a_value) [inline]

Definition at line 110 of file a3.

{ array<T>::m_vector[0 + 0 * 3] = a_value;}
template<class T>
T inlib::a3::sqm< T >::v00 ( ) const [inline]

Definition at line 122 of file a3.

{ return array<T>::m_vector[0 + 0 * 3];}
template<class T>
void inlib::a3::sqm< T >::v01 ( const T &  a_value) [inline]

Definition at line 114 of file a3.

{ array<T>::m_vector[0 + 1 * 3] = a_value;}
template<class T>
T inlib::a3::sqm< T >::v01 ( ) const [inline]

Definition at line 126 of file a3.

{ return array<T>::m_vector[0 + 1 * 3];}
template<class T>
void inlib::a3::sqm< T >::v02 ( const T &  a_value) [inline]

Definition at line 118 of file a3.

{ array<T>::m_vector[0 + 2 * 3] = a_value;}
template<class T>
T inlib::a3::sqm< T >::v02 ( ) const [inline]

Definition at line 130 of file a3.

{ return array<T>::m_vector[0 + 2 * 3];}
template<class T>
void inlib::a3::sqm< T >::v10 ( const T &  a_value) [inline]

Definition at line 111 of file a3.

{ array<T>::m_vector[1 + 0 * 3] = a_value;}
template<class T>
T inlib::a3::sqm< T >::v10 ( ) const [inline]

Definition at line 123 of file a3.

{ return array<T>::m_vector[1 + 0 * 3];}
template<class T>
void inlib::a3::sqm< T >::v11 ( const T &  a_value) [inline]

Definition at line 115 of file a3.

{ array<T>::m_vector[1 + 1 * 3] = a_value;}
template<class T>
T inlib::a3::sqm< T >::v11 ( ) const [inline]

Definition at line 127 of file a3.

{ return array<T>::m_vector[1 + 1 * 3];}
template<class T>
void inlib::a3::sqm< T >::v12 ( const T &  a_value) [inline]

Definition at line 119 of file a3.

{ array<T>::m_vector[1 + 2 * 3] = a_value;}
template<class T>
T inlib::a3::sqm< T >::v12 ( ) const [inline]

Definition at line 131 of file a3.

{ return array<T>::m_vector[1 + 2 * 3];}
template<class T>
void inlib::a3::sqm< T >::v20 ( const T &  a_value) [inline]

Definition at line 112 of file a3.

{ array<T>::m_vector[2 + 0 * 3] = a_value;}
template<class T>
T inlib::a3::sqm< T >::v20 ( ) const [inline]

Definition at line 124 of file a3.

{ return array<T>::m_vector[2 + 0 * 3];}
template<class T>
void inlib::a3::sqm< T >::v21 ( const T &  a_value) [inline]

Definition at line 116 of file a3.

{ array<T>::m_vector[2 + 1 * 3] = a_value;}
template<class T>
T inlib::a3::sqm< T >::v21 ( ) const [inline]

Definition at line 128 of file a3.

{ return array<T>::m_vector[2 + 1 * 3];}
template<class T>
void inlib::a3::sqm< T >::v22 ( const T &  a_value) [inline]

Definition at line 120 of file a3.

{ array<T>::m_vector[2 + 2 * 3] = a_value;}
template<class T>
T inlib::a3::sqm< T >::v22 ( ) const [inline]

Definition at line 132 of file a3.

{ return array<T>::m_vector[2 + 2 * 3];}

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines