// -*- C++ -*-
// automatically generated by autodoc

// ========== HEADER FILE src/aux2/transpose.h: ==========

void transpose_square(Type **f, ulong nrc);
// In-place transposition of an nr x nc array (nr = nc = nrc)
// that lies at nr rows of length nc

void transpose_square(Type *f, ulong nrc);
// In-place transposition of an nr x nc array (nr = nc = nrc)
// that lies in contiguous memory

void transpose(const Type * restrict f, Type * restrict g, ulong nr, ulong nc);
// Transpose nr x nc matrix f[]  into an nc x nr matrix g[].

void transpose(Type *f, ulong nr, ulong nc, bitarray *B = nullptr);
// In-place transposition of an  nr X nc  array
// that lies in contiguous memory.
//.
// Use bitarray for tagging moved elements.

// ========== HEADER FILE src/aux2/transpose2.h: ==========

void transpose2(Type *f, ulong nr, ulong nc, bitarray *B=nullptr);
// In-place transposition of an  nr X nc  array
//   that lies in contiguous memory.
// Special case where both nr and nc are a power of 2.
//.
// Use bitarray for tagging moved elements.

