inlib  1.2.0
Public Member Functions
inlib::poincare_cartan_metric< T > Class Template Reference

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// More...

Inheritance diagram for inlib::poincare_cartan_metric< T >:
Inheritance graph
[legend]
Collaboration diagram for inlib::poincare_cartan_metric< T >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 poincare_cartan_metric (unsigned int a_order)

Detailed Description

template<class T>
class inlib::poincare_cartan_metric< T >

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

Definition at line 748 of file sqm.


Constructor & Destructor Documentation

template<class T >
inlib::poincare_cartan_metric< T >::poincare_cartan_metric ( unsigned int  a_order) [inline]

Definition at line 750 of file sqm.

  :sqm<T>(a_order*(a_order+1)/2){
    unsigned int number = a_order*(a_order+1)/2;

    // Fill the adjoint representation :
    //      c        c
    //  (Xa)  = cst
    //      b      ab
    // a,b,c in [0,n*(n+1)/2[
  
    std::vector< sqm<T> > xs;
  
   {array<T> csts;
    if(!E<T>::group_constants(a_order,csts)) return;
    unsigned int n = a_order*(a_order-1)/2;
    for(unsigned int index=0;index<n;index++) {
      sqm<T> x(number);
  
     {for(unsigned int j=0;j<n;j++) {
        for(unsigned int k=0;k<n;k++) {
          std::vector<unsigned int> is(3);
          is[0] = index;
          is[1] = k;
          is[2] = j;
          T value;
          if(!csts.value(is,value)) return;
          if(!x.set_value(j,k,value)) return;
        }
      }}
  
     {E<T> E(a_order,index);
      for(unsigned int j=0;j<a_order;j++) {
        for(unsigned int k=0;k<a_order;k++) {
  
          T value = E.value(j,k);
  
          if(!x.set_value(n+j,n+k,value)) return;
        }
      }}
  
      xs.push_back(x);
    }}
  
   {for(unsigned int index=0;index<a_order;index++) {
      sqm<T> x(number);
      xs.push_back(x);
    }}
  
    // Set cartan killing metric :
   {for(unsigned int j=0;j<number;j++) {
      for(unsigned int k=0;k<number;k++) {
        inlib::sqm<T> mx = xs[j]*xs[k];
        if(!set_value(j,k,mx.trace())) return;
      }
    }}
  
  }

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