version 1.178, 2009/10/13 08:53:51 |
version 1.180, 2010/02/05 04:24:00 |
|
|
/* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.177 2009/10/12 10:43:45 noro Exp $ */ |
/* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.179 2010/02/03 07:23:06 noro Exp $ */ |
|
|
#include "nd.h" |
#include "nd.h" |
|
|
Line 4052 void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta |
|
Line 4052 void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta |
|
NEWNM(m); d = DL(m); |
NEWNM(m); d = DL(m); |
if ( mod ) { |
if ( mod ) { |
c0 = CM(m0); c1 = CM(m1); DMAR(c0,c1,0,mod,c); CM(m) = c; |
c0 = CM(m0); c1 = CM(m1); DMAR(c0,c1,0,mod,c); CM(m) = c; |
} else |
} else if ( nd_vc ) |
|
mulp(nd_vc,CP(m0),CP(m1),&CP(m)); |
|
else |
mulq(CQ(m0),CQ(m1),&CQ(m)); |
mulq(CQ(m0),CQ(m1),&CQ(m)); |
for ( i = 0; i < nd_wpd; i++ ) d[i] = 0; |
for ( i = 0; i < nd_wpd; i++ ) d[i] = 0; |
homo = n&1 ? 1 : 0; |
homo = n&1 ? 1 : 0; |
Line 4107 void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta |
|
Line 4109 void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta |
|
ndl_addto(DL(tab[u]),d); |
ndl_addto(DL(tab[u]),d); |
if ( mod ) { |
if ( mod ) { |
c0 = CM(tab[u]); DMAR(c0,c,0,mod,c1); CM(tab[u]) = c1; |
c0 = CM(tab[u]); DMAR(c0,c,0,mod,c1); CM(tab[u]) = c1; |
} else { |
} else if ( nd_vc ) |
|
mulp(nd_vc,CP(tab[u]),(P)q,&CP(tab[u])); |
|
else { |
mulq(CQ(tab[u]),q,&q1); CQ(tab[u]) = q1; |
mulq(CQ(tab[u]),q,&q1); CQ(tab[u]) = q1; |
} |
} |
} |
} |
Line 4119 void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta |
|
Line 4123 void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta |
|
ndl_add(DL(tab[u]),d,DL(t)); |
ndl_add(DL(tab[u]),d,DL(t)); |
if ( mod ) { |
if ( mod ) { |
c0 = CM(tab[u]); DMAR(c0,c,0,mod,c1); CM(t) = c1; |
c0 = CM(tab[u]); DMAR(c0,c,0,mod,c1); CM(t) = c1; |
} else |
} if ( nd_vc ) |
|
mulp(nd_vc,CP(tab[u]),(P)q,&CP(t)); |
|
else |
mulq(CQ(tab[u]),q,&CQ(t)); |
mulq(CQ(tab[u]),q,&CQ(t)); |
*p = t; |
*p = t; |
} |
} |