young tableaux and young operator
This commit is contained in:
25
t.cc
25
t.cc
@@ -71,13 +71,30 @@ for(int i=0; i<4; ++i)
|
||||
static int unitary_n;
|
||||
static PERM_RANK_TYPE space_dim;
|
||||
|
||||
void yyprintme(const NRPerm<int>&p, const int parity, const PERM_RANK_TYPE nterms)
|
||||
{
|
||||
cout<< parity<<"/"<<nterms<<" "<<p;
|
||||
}
|
||||
|
||||
void yprintme(const YoungTableaux<int>&y)
|
||||
{
|
||||
cout <<y;
|
||||
if(!y.is_standard()) laerror("internal error in young");
|
||||
y.young_operator(yyprintme);
|
||||
}
|
||||
|
||||
void pprintme(const Partition<int> &p)
|
||||
{
|
||||
CompressedPartition pc(p);
|
||||
cout<<'['<<pc<<"] ";
|
||||
CompressedPartition<int> pc(p);
|
||||
cout<<'['<<pc<<"]\n";
|
||||
|
||||
YoungTableaux<int> y(p);
|
||||
PERM_RANK_TYPE dim=y.generate_all_standard(yprintme);
|
||||
|
||||
Partition<int> q=p.adjoint();
|
||||
PERM_RANK_TYPE snd=p.Sn_irrep_dim();
|
||||
cout<<"IR dim "<<snd<<endl;
|
||||
if(dim!=snd) laerror("inconsistency in standard tableaux generation");
|
||||
PERM_RANK_TYPE und=p.Un_irrep_dim(unitary_n);
|
||||
cout<<"U("<<unitary_n<<") ir dim "<<und<<endl;
|
||||
space_dim += und*snd;
|
||||
@@ -2129,7 +2146,7 @@ int tot=p.generate_all_lex(printme);
|
||||
cout <<"generated "<<tot<<endl;
|
||||
}
|
||||
|
||||
if(0)
|
||||
if(1)
|
||||
{
|
||||
int n;
|
||||
cin >>n >>unitary_n;
|
||||
@@ -2141,7 +2158,7 @@ if(tot!=partitions(n)) laerror("internal error in partition generation or enumer
|
||||
if(space_dim!=longpow(unitary_n,n)) {cout<<space_dim<<" "<<ipow(unitary_n,n)<<endl;laerror("integer overflow or internal error in space dimensions");}
|
||||
}
|
||||
|
||||
if(1)
|
||||
if(0)
|
||||
{
|
||||
int n;
|
||||
cin >>n ;
|
||||
|
||||
Reference in New Issue
Block a user