Exemplo n.º 1
0
Arquivo: weyl.c Projeto: nhatcher/lie
matrix* Weyl_root_orbit(entry* v)
{ lie_Index i,j,r=Lierank(grp),s=Ssrank(grp);
  entry* x=mkintarray(r); matrix* orbit, *result; entry** m;
  lie_Index dc=Detcartan();
  mulvecmatelm(v,Cartan()->elm,x,s,r);
  orbit=Weyl_orbit(x,NULL);
result=mkmatrix(orbit->nrows,s); m=result->elm;
  mulmatmatelm(orbit->elm,Icartan()->elm,m,orbit->nrows,s,s);
  freemem(orbit);
  for (i=0; i<result->nrows; ++i) 
    for (j=0; j<s; ++j) m[i][j]/=dc;
  return result;
}
Exemplo n.º 2
0
poly *pol_mul_pol_mat(poly *a, matrix *b) {
    poly *m;
    int i;
    if (a->ncols != b->nrows)
	error("Number variables arg1 unequal number of rows arg2 .\n");
    m = mkpoly(a->nrows,b->ncols);
    mulmatmatelm(a->elm,b->elm,m->elm,a->nrows,a->ncols,b->ncols);
    for (i=0;i<m->nrows;i++) { 
	m->coef[i] = a->coef[i];
	setshared(m->coef[i]);
    }
    return m;
}