VMS Help
RTL Routines, OTS$, OTS$DIV_PK_SHORT
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
The Packed Decimal Division with Short Divisor routine divides
fixed-point decimal data when precision and scale requirements
for the quotient call for multiple-precision division.
Format
OTS$DIV_PK_SHORT packed-decimal-dividend
,packed-decimal-divisor ,divisor-precision
,packed-decimal-quotient ,quotient-precision
,precision-data
OpenVMS usage:cond_value
type: longword (unsigned)
access: write only
mechanism: by value
packed-decimal-dividend
OpenVMS usage:varying_arg
type: packed decimal string
access: read only
mechanism: by reference
Dividend. The packed-decimal-dividend argument is the address of
a packed decimal string that contains the shifted dividend.
Before being passed as input, the packed-decimal-dividend
argument is always multiplied by 10**c, where c is defined as
follows:
c = 31 - prec(packed-decimal-dividend)
Multiplying packed-decimal-dividend by 10**c makes packed-
decimal-dividend a 31-digit number.
packed-decimal-divisor
OpenVMS usage:varying_arg
type: packed decimal string
access: read only
mechanism: by reference
Divisor. The packed-decimal-divisor argument is the address of a
packed decimal string that contains the divisor.
divisor-precision
OpenVMS usage:word_signed
type: word (signed)
access: read only
mechanism: by value
Precision of the divisor. The divisor-precision argument is a
signed word integer that contains the precision of the divisor;
high-order bits are filled with zeros.
packed-decimal-quotient
OpenVMS usage:varying_arg
type: packed decimal string
access: write only
mechanism: by reference
Quotient. The packed-decimal-quotient argument is the address of
a packed decimal string into which OTS$DIV_PK_SHORT writes the
quotient.
quotient-precision
OpenVMS usage:word_signed
type: word (signed)
access: read only
mechanism: by value
Precision of the quotient. The quotient-precision argument is a
signed word that contains the precision of the quotient; high-
order bits are filled with zeros.
precision-data
OpenVMS usage:word_signed
type: word (signed)
access: read only
mechanism: by value
Additional digits of precision required. The precision-data
argument is a signed word that contains the value of the
additional digits of precision required.
OTS$DIV_PK_SHORT computes the precision-data argument as follows:
precision-data = scale(packed-decimal-quotient)
+ scale(packed-decimal-divisor)
- scale(packed-decimal-dividend)
- 31 + prec(packed-decimal-dividend)
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.