Changeset b66eeb in git
- Timestamp:
- Feb 27, 2007, 9:03:44 AM (16 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 3a2985ff73e9ce0715441e808a52f8464a3ca803
- Parents:
- 1b2d84d14539fad2f4d0267662ac50c97f9d94e7
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/tgb_internal.h
r1b2d84 rb66eeb 5 5 * Computer Algebra System SINGULAR * 6 6 ****************************************/ 7 /* $Id: tgb_internal.h,v 1.6 6 2007-02-26 15:14:47bricken Exp $ */7 /* $Id: tgb_internal.h,v 1.67 2007-02-27 08:03:44 bricken Exp $ */ 8 8 /* 9 9 * ABSTRACT: tgb internal .h file … … 821 821 return res; 822 822 } 823 template <class number_type> void add_coef_times_sparse(number_type* const temp_array,int temp_size,SparseRow<number_type>* row, number coef){ 823 template <class number_type> void add_coef_times_sparse(number_type* const temp_array, 824 int temp_size,SparseRow<number_type>* row, number coef){ 824 825 int j; 825 826 number_type* const coef_array=row->coef_array; 826 827 int* const idx_array=row->idx_array; 827 828 const int len=row->len; 828 for(j=0;j<len;j++){ 829 int idx=idx_array[j]; 830 assume(!(npIsZero(coef))); 831 assume(!(npIsZero((number) coef_array[j]))); 832 temp_array[idx]=F4mat_to_number_type(npAddM((number) temp_array[idx],npMultM((number) coef_array[j],coef))); 833 assume(idx<temp_size); 829 tgb_uint32 buffer[256]; 830 const tgb_uint32 prime=npPrimeM; 831 const tgb_uint32 c=F4mat_to_number_type(coef); 832 assume(!(npIsZero(coef))); 833 for(j=0;j<len;j=j+256){ 834 const int bound=std::min(j+256,len); 835 int i; 836 int bpos=0; 837 for(i=j;i<bound;i++){ 838 buffer[bpos++]=coef_array[i]; 839 } 840 int bpos_bound=bound-j; 841 for(i=0;i<bpos_bound;i++){ 842 buffer[i]*=c; 843 } 844 for(i=0;i<bpos_bound;i++){ 845 buffer[i]=buffer[i]%prime; 846 } 847 bpos=0; 848 for(i=j;i<bound;i++){ 849 int idx=idx_array[i]; 850 assume(bpos<256); 851 assume(!(npIsZero((number) buffer[bpos]))); 852 temp_array[idx]=F4mat_to_number_type(npAddM((number) temp_array[idx], (number) buffer[bpos++])); 853 assume(idx<temp_size); 854 } 855 834 856 } 835 857 }
Note: See TracChangeset
for help on using the changeset viewer.