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: eliminateImpliedBoundsonRows.m
    path of file: ./repos/linear-programming-using-MATLAB/codes/chapter4
    
    the code of the file until where you have to start completion: function [A, b, Eqin] = eliminateImpliedBoundsonRows(A, ...
    b, Eqin)
% Filename: eliminateImpliedBoundsonRows.m
% Description: the function is an implementation of the 
% presolve technique that eliminates implied bounds on 
% rows
% Authors: Ploskas, N., & Samaras, N.
%
% Syntax: [A, b, Eqin] = eliminateImpliedBoundsonRows(A, ...
%   b, Eqin)
% 
% Input:
% -- A: matrix of coefficients of the constraints 
%    (size m x n)
% -- b: vector of the right-hand side of the constraints 
%    (size m x 1)
% -- Eqin: vector of the type of the constraints 
%    (size m x 1)
%
% Output:
% -- A: presolved matrix of coefficients of the constraints 
%    (size m x n)
% -- b: presolved vector of the right-hand side of the 
%    constraints (size m x 1)
% -- Eqin: presolved vector of the type of the constraints 
%    (size m x 1)
 

    
function [A, b, Eqin] = eliminateImpliedBoundsonRows(A, ...
    b, Eqin)
% Filename: eliminateImpliedBoundsonRows.m
% Description: the function is an implementation of the 
% presolve technique that eliminates implied bounds on 
% rows
% Authors: Ploskas, N., & Samaras, N.
%
% Syntax: [A, b, Eqin] = eliminateImpliedBoundsonRows(A, ...
%   b, Eqin)
% 
% Input:
% -- A: matrix of coefficients of the constraints 
%    (size m x n)
% -- b: vector of the right-hand side of the constraints 
%    (size m x 1)
% -- Eqin: vector of the type of the constraints 
%    (size m x 1)
%
% Output:
% -- A: presolved matrix of coefficients of the constraints 
%    (size m x n)
% -- b: presolved vector of the right-hand side of the 
%    constraints (size m x 1)
% -- Eqin: presolved vector of the type of the constraints 
%    (size m x 1)
 
[row, ~] = find(Eqin ~= 0); % find the inequality constraints
% find the number of these constraints
cardrows = length(row);
counterrows = 0;
for i = cardrows:-1:1 % for each of these constraints
	ii = row(i); % get the index of the constraint
	% if all elements in that constraint are less than or 
	% equal to zero, the constraint has a right-hand side 
	% greater than or equal to zero, and the constraint 
	% type is <=, then eliminate the constraint and update 
	% matrix A and vectors b and Eqin (Case 1)
	if all((A(ii, :) <= 0)) && (b(ii) >= 0)
        if Eqin(ii) == -1
			A(ii, :) = [];
			Eqin(ii) = [];
			b(ii) = [];
			counterrows = counterrows + 1;
        end