Macaulay2 Engine
Loading...
Searching...
No Matches

◆ vec_permute()

template<typename CoeffRing>
void SMat< CoeffRing >::vec_permute ( sparsevec *& v,
size_t start_row,
M2_arrayint perm ) const
private

Definition at line 772 of file smat.hpp.

775{
776 size_t *perminv = newarray_atomic(size_t, perm->len);
777 for (size_t i = 0; i < perm->len; i++) perminv[perm->array[i]] = i;
778
779 size_t end_row = start_row + perm->len;
780
781 for (sparsevec *w = v; w != 0; w = w->next)
782 if (w->row >= start_row && w->row < end_row)
783 w->row = start_row + perminv[w->row - start_row];
784 vec_sort(v);
786}
void vec_sort(sparsevec *&v) const
Definition smat.hpp:746
Definition smat.hpp:43
void freemem(void *s)
Definition m2-mem.cpp:103
#define newarray_atomic(T, len)
Definition newdelete.hpp:91

References freemem(), newarray_atomic, SMat< ACoeffRing >::sparsevec::next, and vec_sort().

Referenced by row_permute().