Code covered by the BSD License  

Highlights from
slatec

from slatec by Ben Barrowes
The slatec library converted into matlab functions.

[x]=mpovfl(x);
function [x]=mpovfl(x);

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  MPOVFL
%***SUBSIDIARY
%***PURPOSE  Subsidiary to DQDOTA and DQDOTI
%***LIBRARY   SLATEC
%***TYPE      ALL (MPOVFL-A)
%***AUTHOR  (UNKNOWN)
%***DESCRIPTION
%
%  Called on multiple-precision overflow, i.e. when the
%  exponent of 'mp' number X would exceed M.  At present execution is
%  terminated with an error message after calling MPMAXR(X), but it
%  would be possible to return, possibly updating a counter and
%  terminating execution after a preset number of overflows.  Action
%  could easily be determined by a flag in labelled common.
%
%  The argument X(*) is an INTEGER array of size 30.  See the comments
%  in the routine MPBLAS for the reason for this choice.
%
%***SEE ALSO  DQDOTA, DQDOTI, MPBLAS
%***ROUTINES CALLED  MPCHK, MPERR, MPMAXR
%***COMMON BLOCKS    MPCOM
%***REVISION HISTORY  (YYMMDD)
%   791001  DATE WRITTEN
%   ??????  Modified for use with BLAS.  Blank COMMON changed to named
%           COMMON.  R given dimension 12.
%   890831  Modified array declarations.  (WRB)
%   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  MPOVFL
% 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  MPOVFL
mpchk(1,4);
% SET X TO LARGEST POSSIBLE POSITIVE NUMBER
[x]=mpmaxr(x);
writef(mpcom_4,[' *** CALL TO MPOVFL, MP OVERFLOW OCCURRED ***' ' \n']);
%format (' *** CALL TO MPOVFL, MP OVERFLOW OCCURRED ***');
% TERMINATE EXECUTION BY CALLING MPERR
mperr;
x_shape=zeros(x_shape);x_shape(:)=x(1:numel(x_shape));x=x_shape;
end
%DECK MPSTR

Contact us at files@mathworks.com