48 spm_complex64_t value,
54 spm_complex64_t *valptr = newval;
57 for(jj=0; jj<dofj; jj++)
59 for(ii=0; ii<dofi; ii++, valptr++)
66 for(jj=0; jj<dofj; jj++)
68 for(ii=0; ii<dofi; ii++, valptr++)
70 *valptr = value / (labs((
long)(ii - jj)) + 1.);
94 spm_int_t *colptr, *rowptr, *dofs, *loc2glob;
95 spm_complex64_t *newval, *oldval, *oldvalptr;
97 oldval = oldvalptr = (spm_complex64_t*)(spm->
values);
98 newval = spm->
values = malloc( spm->
nnzexp *
sizeof(spm_complex64_t) );
106 for(j=0; j<spm->
n; j++, colptr++, loc2glob++)
108 jg = spm->
replicated ? j : *loc2glob - baseval;
109 dofj = (spm->
dof > 0) ? spm->
dof : dofs[jg+1] - dofs[jg];
111 for(i=colptr[0]; i<colptr[1]; i++, rowptr++, oldval++)
113 ig = *rowptr - baseval;
114 dofi = ( spm->
dof > 0 ) ? spm->
dof : dofs[ig+1] - dofs[ig];
117 newval += (dofi*dofj);
122 assert((newval - (spm_complex64_t*)spm->
values) == spm->
nnzexp);
144 spm_complex64_t *newval, *oldval, *oldvalptr;
146 oldval = oldvalptr = (spm_complex64_t*)(spm->
values);
147 newval = spm->
values = malloc( spm->
nnzexp *
sizeof(spm_complex64_t) );
154 for(k=0; k<spm->
nnz; k++, rowptr++, colptr++, oldval++)
156 ig = *rowptr - baseval;
157 jg = *colptr - baseval;
158 dofi = (spm->
dof > 0) ? spm->
dof : dofs[ig+1] - dofs[ig];
159 dofj = (spm->
dof > 0) ? spm->
dof : dofs[jg+1] - dofs[jg];
162 newval += (dofi*dofj);
166 assert((newval - (spm_complex64_t*)spm->
values) == spm->
nnzexp);
static void z_spm_dof_extend_update_values(spm_complex64_t *newval, spm_complex64_t value, spm_int_t dofi, spm_int_t dofj, int diag)
Update the newval array thanks to the old value and the degrees of freedom.