| 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) |
| { |
{ |