inlib
1.2.0
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// More...
Public Member Functions | |
poincare_cartan_metric (unsigned int a_order) |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
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; } }} }