function [x]=mpmaxr(x);
persistent i it ;
if isempty(i), i=0; end;
if isempty(it), it=0; end;
global mpcom_4; if isempty(mpcom_4), mpcom_4=0; end;
global mpcom_3; if isempty(mpcom_3), mpcom_3=0; end;
global mpcom_5; if isempty(mpcom_5), mpcom_5=0; end;
%***BEGIN PROLOGUE MPMAXR
%***SUBSIDIARY
%***PURPOSE Subsidiary to DQDOTA and DQDOTI
%***LIBRARY SLATEC
%***TYPE ALL (MPMAXR-A)
%***AUTHOR (UNKNOWN)
%***DESCRIPTION
%
% Sets X to the largest possible positive 'mp' number.
%
% The argument X(*) is an INTEGER arrays of size 30. See the comments
% in the routine MPBLAS for the reason for this choice.
%
%***SEE ALSO DQDOTA, DQDOTI, MPBLAS
%***ROUTINES CALLED MPCHK
%***COMMON BLOCKS MPCOM
%***REVISION HISTORY (YYMMDD)
% 791001 DATE WRITTEN
% ?????? Modified for use with BLAS. Blank COMMON changed to named
% COMMON. R given dimension 12.
% 891214 Prologue converted to Version 4.0 format. (BAB)
% 900402 Added TYPE section. (WRB)
% 930124 Increased Array size in MPCON for SUN -r8. (RWC)
%***end PROLOGUE MPMAXR
% common :: ;
global mpcom_1; if isempty(mpcom_1), mpcom_1=0; end;
global mpcom_2; if isempty(mpcom_2), mpcom_2=0; end;
global mpcom_6; if isempty(mpcom_6), mpcom_6=zeros(1,30); end;
%% common /mpcom / b , t , m , lun , mxr , r(30);
%% common /mpcom / mpcom_1 , mpcom_2 , mpcom_3 , mpcom_4 , mpcom_5 , mpcom_6(30);
x_shape=size(x);x=reshape(x,1,[]);
%***FIRST EXECUTABLE STATEMENT MPMAXR
mpchk(1,4);
it = fix(mpcom_1 - 1);
% SET FRACTION DIGITS TO B-1
for i = 1 : mpcom_2;
x(i+2) = fix(it);
end; i = fix(mpcom_2+1);
% SET SIGN AND EXPONENT
x(1) = 1;
x(2) = fix(mpcom_3);
x_shape=zeros(x_shape);x_shape(:)=x(1:numel(x_shape));x=x_shape;
end
%DECK MPMLP