MPMUL(3)

SYNOPSIS
SUBROUTINE MPMUL (X, Y, Z)

NAME
mpmul - Subsidiary to DQDOTA and DQDOTI

LIBRARY
SLATEC

TYPE
ALL (MPMUL-A)

AUTHOR
(UNKNOWN)

DESCRIPTION
Multiplies X and Y, returning result in Z, for 'mp' X, Y and Z. The simple o(t**2) algorithm is used, with four guard digits and R*-rounding. Advantage is taken of zero digits in X, but not in Y. Asymptotically faster algorithms are known (see Knuth, VOL. 2), but are difficult to implement in FORTRAN in an efficient and machine-independent manner. In comments to other 'mp' routines, M(t) is the time to perform t-digit 'mp' multiplication. Thus M(t) = o(t**2) with the present version of MPMUL, but M(t) = o(t.log(t).log(log(t))) is theoretically possible. The arguments X(*), Y(*), and Z(*), and the variable R in COMMON are all 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, MPERR, MPMLP, MPNZR

COMMON BLOCKS
MPCOM

REVISION HISTORY (YYMMDD)
791001 DATE WRITTEN ?????? Modified for use with BLAS. Blank COMMON changed to named COMMON. R given dimension 12.
890531 Changed all specific intrinsics to generic. (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)