function [ b1, b2, b3 ] = r83v_transpose ( m, n, a1, a2, a3 )

%*****************************************************************************80
%
%% R83V_TRANSPOSE makes a transposed copy of an R83V matrix.
%
%  Discussion:
%
%    The R83V storage format is used for a tridiagonal matrix.
%    The subdiagonal is in A(min(M-1,N)).
%    The diagonal is in B(min(M,N)).
%    The superdiagonal is in C(min(M,N-1)).
%
%  Example:
%
%    An R83V matrix of order 3x5 would be stored:
%
%      B1  C1  **  **  **
%      A1  B2  C2  **  **
%      **  A2  B3  C3  **
%
%    An R83 matrix of order 5x5 would be stored:
%
%      B1  C1  **  **  **
%      A1  B2  C2  **  **
%      **  A2  B3  C3  **
%      **  **  A3  B4  C4
%      **  **  **  A4  B5
%
%    An R83 matrix of order 5x3 would be stored:
%
%      B1  C1  **
%      A1  B2  C2
%      **  A2  B3
%      **  **  A3
%      **  **  **
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    10 February 2016
%
%  Author:
%
%    John Burkardt
%
%  Parameters:
%
%    Input, integer M, N, the order of the linear system.
%
%    Input, real A1(min(M-1,N)), A2(min(M,N)), A3(min(M,N-1)), the R83V matrix.
%
%    Output, real B1(min(N-1,M)), B2(min(N,M)), B3(min(N,M-1)), the R83V matrix.
%
  b1 = a3(1:min(m,  n-1));
  b2 = a2(1:min(m,  n  ));
  b3 = a1(1:min(m-1,n  ));
 
  return
end
 
