/// Swaps rows `$r1` and `$r2` from `$matrix`
/// @group swap
/// @param {Matrix} $matrix - matrix
/// @param {Number} $r1 - index of row 1
/// @param {Number} $r2 - index of row 2
/// @return {Matrix}
/// @require {function} rows
@function swap-rows($matrix, $r1, $r2) {
  @if type-of($r1) != "number" or type-of($r2) != "number" {
    @warn "Invalid row index.";
    @return false;
  }

  @if abs($r1) > rows($matrix) or abs($r2) > rows($matrix) {
    @warn "Out of bounds row index.";
    @return false;
  }

  $tmp: nth($matrix, $r1);
  @return set-nth(set-nth($matrix, $r1, nth($matrix, $r2)), $r2, $tmp);
}
