version 1.2, 2000/04/13 06:01:01 |
version 1.4, 2000/04/25 04:07:58 |
|
|
/* $OpenXM: OpenXM_contrib2/asir2000/builtin/gr.c,v 1.1.1.1 1999/12/03 07:39:07 noro Exp $ */ |
/* $OpenXM: OpenXM_contrib2/asir2000/builtin/gr.c,v 1.3 2000/04/20 02:20:15 noro Exp $ */ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
#include "base.h" |
#include "base.h" |
|
|
if ( r ) { |
if ( r ) { |
dltod(BDY(s),nv,&tdp); |
dltod(BDY(s),nv,&tdp); |
dp_subd(tdp,ps[(int)BDY(r)],&sd); |
dp_subd(tdp,ps[(int)BDY(r)],&sd); |
muld(CO,sd,ps[(int)BDY(r)],&f2); |
muld(CO,ps[(int)BDY(r)],sd,&f2); |
MKNODE(bt,f2,blist); blist = bt; |
MKNODE(bt,f2,blist); blist = bt; |
s = symb_merge(s,dp_dllist(f2),nv); |
s = symb_merge(s,dp_dllist(f2),nv); |
nred++; |
nred++; |
|
|
fprintf(asir_out,"mat : %d x %d",row,col); |
fprintf(asir_out,"mat : %d x %d",row,col); |
fflush(asir_out); |
fflush(asir_out); |
} |
} |
|
#if 0 |
|
rank = generic_gauss_elim_hensel(mat,&nm,&dn,&rind,&cind); |
|
#else |
rank = generic_gauss_elim(mat,&nm,&dn,&rind,&cind); |
rank = generic_gauss_elim(mat,&nm,&dn,&rind,&cind); |
|
#endif |
if ( Print ) |
if ( Print ) |
fprintf(asir_out,"done rank = %d\n",rank,row,col); |
fprintf(asir_out,"done rank = %d\n",rank,row,col); |
for ( i = 0; i < rank; i++ ) { |
for ( i = 0; i < rank; i++ ) { |
|
|
dltod(BDY(s),nv,&tdp); |
dltod(BDY(s),nv,&tdp); |
dp_subd(tdp,ps[(int)BDY(r)],&sd); |
dp_subd(tdp,ps[(int)BDY(r)],&sd); |
_dp_mod(sd,m,0,&sdm); |
_dp_mod(sd,m,0,&sdm); |
_mulmd(CO,m,sdm,ps[(int)BDY(r)],&f2); |
_mulmd(CO,m,ps[(int)BDY(r)],sdm,&f2); |
MKNODE(bt,f2,blist); blist = bt; |
MKNODE(bt,f2,blist); blist = bt; |
s = symb_merge(s,dp_dllist(f2),nv); |
s = symb_merge(s,dp_dllist(f2),nv); |
nred++; |
nred++; |
|
|
ttt = get_rtime()-t_00; t_m2 += ttt/dp_nt(red); |
ttt = get_rtime()-t_00; t_m2 += ttt/dp_nt(red); |
} |
} |
t_00 = get_rtime(); |
t_00 = get_rtime(); |
muld(CO,shift,t1,&t2); |
muld(CO,t1,shift,&t2); |
addd(CO,t,t2,&u); |
addd(CO,t,t2,&u); |
tt = get_rtime(); t_m += tt-t_0; |
tt = get_rtime(); t_m += tt-t_0; |
ttt = get_rtime(); t_s += ttt-t_00; |
ttt = get_rtime(); t_s += ttt-t_00; |
|
|
ttt = get_rtime()-t_00; t_m2 += ttt/dp_nt(red); |
ttt = get_rtime()-t_00; t_m2 += ttt/dp_nt(red); |
|
|
t_00 = get_rtime(); |
t_00 = get_rtime(); |
muld(CO,shift,t1,&t2); |
muld(CO,t1,shift,&t2); |
addd(CO,t,t2,&u); |
addd(CO,t,t2,&u); |
tt = get_rtime(); t_m += tt-t_0; |
tt = get_rtime(); t_m += tt-t_0; |
ttt = get_rtime(); t_s += ttt-t_00; |
ttt = get_rtime(); t_s += ttt-t_00; |