version 1.76, 2018/03/29 01:32:50 |
version 1.79, 2021/03/24 18:28:07 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2000/builtin/array.c,v 1.75 2017/09/17 02:34:02 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/builtin/array.c,v 1.78 2020/10/04 03:14:07 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "base.h" |
#include "base.h" |
Line 1180 void Pgeneric_gauss_elim(NODE arg,LIST *rp) |
|
Line 1180 void Pgeneric_gauss_elim(NODE arg,LIST *rp) |
|
MKLIST(*rp,n0); |
MKLIST(*rp,n0); |
} |
} |
|
|
|
int indep_rows_mod(int **mat0,int row,int col,int md,int *rowstat); |
|
|
void Pindep_rows_mod(NODE arg,VECT *rp) |
void Pindep_rows_mod(NODE arg,VECT *rp) |
{ |
{ |
MAT m,mat; |
MAT m,mat; |
|
|
} |
} |
} |
} |
|
|
|
struct oEGT eg_chrem,eg_back,eg_fore; |
|
|
void lu_dec_cr(MAT mat,MAT lu,Q *dn,int **perm); |
void lu_dec_cr(MAT mat,MAT lu,Q *dn,int **perm); |
|
|
/* XXX broken */ |
/* XXX broken */ |
Line 1872 int generic_gauss_elim_hensel_dalg(MAT mat,DP *mb,MAT |
|
Line 1876 int generic_gauss_elim_hensel_dalg(MAT mat,DP *mb,MAT |
|
fprintf(asir_out,"LU decomposition.."); fflush(asir_out); |
fprintf(asir_out,"LU decomposition.."); fflush(asir_out); |
} |
} |
rank = find_lhs_and_lu_mod((unsigned int **)w,row,col,md,&rinfo,&cinfo); |
rank = find_lhs_and_lu_mod((unsigned int **)w,row,col,md,&rinfo,&cinfo); |
|
printf("\n"); |
|
for ( i = 0; i < row; i++ ) { |
|
for ( j = 0; j < col; j++ ) |
|
printf("%d ",w[i][j]); |
|
printf("\n"); |
|
} |
if ( DP_Print ) { |
if ( DP_Print ) { |
fprintf(asir_out,"done.\n"); fflush(asir_out); |
fprintf(asir_out,"done.\n"); fflush(asir_out); |
} |
} |
Line 1956 int generic_gauss_elim_hensel_dalg(MAT mat,DP *mb,MAT |
|
Line 1966 int generic_gauss_elim_hensel_dalg(MAT mat,DP *mb,MAT |
|
} else |
} else |
b[i][j] = 0; |
b[i][j] = 0; |
} |
} |
|
printf("\n"); |
|
for ( i = 0; i < rank; i++ ) { |
|
for ( j = 0; j < ri; j++ ) { |
|
printexpr(CO,b[i][j]); printf(" "); |
|
} |
|
printf("\n"); |
|
} |
get_eg(&tmp1); |
get_eg(&tmp1); |
add_eg(&eg_mul,&tmp0,&tmp1); |
add_eg(&eg_mul,&tmp0,&tmp1); |
/* q = q*md */ |
/* q = q*md */ |
Line 1996 int generic_gauss_elim_hensel_dalg(MAT mat,DP *mb,MAT |
|
Line 2013 int generic_gauss_elim_hensel_dalg(MAT mat,DP *mb,MAT |
|
fflush(asir_out); |
fflush(asir_out); |
} |
} |
return rank; |
return rank; |
} |
} else |
|
goto reset; |
} else { |
} else { |
|
reset: |
period = period*3/2; |
period = period*3/2; |
count = 0; |
count = 0; |
nsize += period; |
nsize += period; |
Line 3205 int gauss_elim_geninv_mod_swap(unsigned int **mat,int |
|
Line 3224 int gauss_elim_geninv_mod_swap(unsigned int **mat,int |
|
s[j] = t[col+index[j]]; |
s[j] = t[col+index[j]]; |
return 0; |
return 0; |
} |
} |
|
|
|
int gauss_elim_geninv_sf_swap(int **mat,int row,int col,int ***invmatp,int **indexp); |
|
|
void Pgeninv_sf_swap(NODE arg,LIST *rp) |
void Pgeninv_sf_swap(NODE arg,LIST *rp) |
{ |
{ |