You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: debuchetinf.m
    path of file: ./repos/linear-programming-using-MATLAB/codes/chapter5
    
    the code of the file until where you have to start completion: function [A, c, b, row_multi, col_multi] = ...
    debuchetinf(A, c, b)
% Filename: debuchetinf.m
% Description: the function is an implementation of the de 
% Buchet for the case p = inf scaling technique
% Authors: Ploskas, N., & Samaras, N.
%
% Syntax: [A, c, b, row_multi, col_multi] = ... 
%   debuchetinf(A, c, b)
% 
% Input:
% -- A: matrix of coefficients of the constraints 
%    (size m x n)
% -- c: vector of coefficients of the objective function 
%    (size n x 1)
% -- b: vector of the right-hand side of the constraints 
%    (size m x 1)
%
% Output:
% -- A: scaled matrix of coefficients of the constraints 
%    (size m x n)
% -- c: scaled vector of coefficients of the objective 
%    function (size n x 1)
% -- b: scaled vector of the right-hand side of the 
%    constraints (size m x 1)
% -- row_multi: vector of the row scaling factors 
%    (size m x 1)
% -- col_multi: vector of the column scaling factors 
%    (size n x 1)

[m, n] = size(A); % size of matrix A
% first apply row scaling
row_max = zeros(m, 1);
row_min = zeros(m, 1);

    
function [A, c, b, row_multi, col_multi] = ...
    debuchetinf(A, c, b)
% Filename: debuchetinf.m
% Description: the function is an implementation of the de 
% Buchet for the case p = inf scaling technique
% Authors: Ploskas, N., & Samaras, N.
%
% Syntax: [A, c, b, row_multi, col_multi] = ... 
%   debuchetinf(A, c, b)
% 
% Input:
% -- A: matrix of coefficients of the constraints 
%    (size m x n)
% -- c: vector of coefficients of the objective function 
%    (size n x 1)
% -- b: vector of the right-hand side of the constraints 
%    (size m x 1)
%
% Output:
% -- A: scaled matrix of coefficients of the constraints 
%    (size m x n)
% -- c: scaled vector of coefficients of the objective 
%    function (size n x 1)
% -- b: scaled vector of the right-hand side of the 
%    constraints (size m x 1)
% -- row_multi: vector of the row scaling factors 
%    (size m x 1)
% -- col_multi: vector of the column scaling factors 
%    (size n x 1)

[m, n] = size(A); % size of matrix A
% first apply row scaling
row_max = zeros(m, 1);
row_min = zeros(m, 1);
row_multi = zeros(m, 1);
for i = 1:m
	% find the indices of the nonzero elements of the 
	% specific row
	ind = find(A(i, :));
	% if the specific row contains at least one nonzero 
	% element
	if ~isempty(ind)
        % find the maximum in absolute value of the nonzero 
        % elements of the specific row
        row_max(i) = max(max(abs(A(i, ind))));
        % find the minimum in absolute value of the nonzero 
        % elements of the specific row
        row_min(i) = min(min(abs(A(i, ind))));
        % calculate the specific row scaling factor
        row_multi(i) = 1 / (sqrt(row_max(i) * row_min(i)));
        % scale the elements of the specific row of matrix A
        A(i, :) = A(i, :) * row_multi(i);
        % scale the elements of vector b
        b(i) = b(i) * row_multi(i);
	end