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

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

void null(Type **f, ulong nr, ulong nc);
// set values to zero

void fill(Type **f, ulong nr, ulong nc, Type v);
// set values to v

void copy(const Type1 *const*src, Type2 **dst, ulong nr, ulong nc);

void offset_copy(const Type1 *const*src, ulong nrs, ulong ncs,;
                 Type2 **dst, ulong nrd, ulong ncd,
                 ulong coff=0,
                 ulong roff=0)
//
// Copy (as much data as possible)
// src[r+roff][c+coff] --> dst[r][c]
//

// ========== 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 *ba=0);
// 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 *ba=0);
// In-place transposition of an  nr X nc  array
//   that lies in contiguous memory.
// Special case where both nr and nc are power of 2.
//.
// Use bitarray for tagging moved elements.

