HP OpenVMS Systems Documentation 
OpenVMS RTL General Purpose (OTS$) ManualOrder Number: AAPV6HDTK
April 2001
This manual documents the generalpurpose routines contained in the OTS$ facility of the OpenVMS RunTime Library. Revision/Update Information: This manual supersedes the OpenVMS RTL General Purpose (OTS$) Manual, OpenVMS Alpha Version 7.1 and OpenVMS VAX Version 7.1. Software Version: OpenVMS Alpha Version 7.3 OpenVMS VAX Version 7.3
Compaq Computer Corporation
© 2001 Compaq Computer Corporation Compaq, VAX, VMS, and the Compaq logo Registered in U.S. Patent and Trademark Office. OpenVMS is a trademark of Compaq Information Technologies Group, L.P. in the United States and other countries. All other product names mentioned herein may be trademarks of their respective companies. Confidential computer software. Valid license from Compaq required for possession, use, or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. Compaq shall not be liable for technical or editorial errors or omissions contained herein. The information in this document is provided "as is" without warranty of any kind and is subject to change without notice. The warranties for Compaq products are set forth in the express limited warranty statements accompanying such products. Nothing herein should be construed as constituting an additional warranty.
ZK5933 The Compaq OpenVMS documentation set is available on CDROM.
PrefaceThis manual provides users of the OpenVMS operating system with detailed usage and reference information on generalpurpose routines supplied in the OTS$ facility of the RunTime Library. Intended AudienceThis manual is intended for system and application programmers who write programs that call OTS$ RunTime Library routines. Document StructureThis manual is organized into two parts as follows:
Related DocumentsThe RunTime Library routines are documented in a series of reference manuals. A description of how the RunTime Library routines are accessed and of OpenVMS features and functionality available through calls to the OTS$ RunTime Library appears in the OpenVMS Programming Concepts Manual. Descriptions of other RTL facilities and their corresponding routines and usages are discussed in the following books:
The Guide to the POSIX Threads Library contains guidelines and reference information for Compaq POSIX Threads^{2}, the Compaq Multithreading RunTime Library. Application programmers using any programming language can refer to the Guide to Creating OpenVMS Modular Procedures for writing modular and reentrant code. Highlevel language programmers will find additional information on calling RunTime Library routines in their language reference manual. Additional information may also be found in the language user's guide provided with your OpenVMS language software. For a complete list and description of the manuals in the OpenVMS documentation set, see the OpenVMS Version 7.3 New Features and Documentation Overview. For additional information about Compaq OpenVMS products and services, access the Compaq website at the following location:
Reader's CommentsCompaq welcomes your comments on this manual. Please send comments to either of the following addresses:
How To Order Additional DocumentationUse the following World Wide Web address to order additional documentation:
If you need help deciding which documentation best meets your needs, call 8002826672. ConventionsThe following conventions are used in this manual:
Part 1
This part of the OpenVMS RTL General Purpose (OTS$) Manual contains a general overview of the
routines provided by the OpenVMS RTL General Purpose (OTS$) Facility,
and lists them by function.

Routine Name  Function 

OTS$CNVOUT  Convert a Dfloating, Gfloating, or Hfloating value to a character string. 
OTS$CVT_L_TB  Convert an unsigned integer to binary text. 
OTS$CVT_L_TI  Convert a signed integer to signed integer text. 
OTS$CVT_L_TL  Convert an integer to logical text. 
OTS$CVT_L_TO  Convert an unsigned integer to octal text. 
OTS$CVT_L_TU  Convert an unsigned integer to decimal text. 
OTS$CVT_L_TZ  Convert an integer to hexadecimal text. 
OTS$CVT_TB_L  Convert binary text to an unsigned integer value. 
OTS$CVT_TI_L  Convert signed integer text to an integer value. 
OTS$CVT_TL_L  Convert logical text to an integer value. 
OTS$CVT_TO_L  Convert octal text to an unsigned integer value. 
OTS$CVT_TU_L  Convert unsigned decimal text to an integer value. 
OTS$CVT_T_ x  Convert numeric text to a D, F, G, or Hfloating value. 
OTS$CVT_TZ_L  Convert hexadecimal text to an unsigned integer value. 
For more information on RunTime Library conversion routines, see the CVT$ reference section in the OpenVMS RTL Library (LIB$) Manual.
Routine Name  Function 

OTS$DIVC x  Perform complex division. 
OTS$DIV_PK_LONG  Perform packed decimal division with a long divisor. 
OTS$DIV_PK_SHORT  Perform packed decimal division with a short divisor. 
Routine Name  Function 

OTS$MOVE3  Move data without fill. 
OTS$MOVE5  Move data with fill. 
Routine Name  Function 

OTS$MULC x  Perform complex multiplication. 
Routine Name  Function 

OTS$POWC xC x  Raise a complex base to a complex floatingpoint exponent. 
OTS$POWC xJ  Raise a complex base to a signed longword exponent. 
OTS$POWDD  Raise a Dfloating base to a Dfloating exponent. 
OTS$POWDR  Raise a Dfloating base to an Ffloating exponent. 
OTS$POWDJ  Raise a Dfloating base to a longword integer exponent. 
OTS$POWGG  Raise a Gfloating base to a Gfloating or longword integer exponent. 
OTS$POWGJ  Raise a Gfloating base to a longword integer exponent. 
+OTS$POWHH_R3  Raise an Hfloating base to an Hfloating exponent. 
+OTS$POWHJ_R3  Raise an Hfloating base to a longword integer exponent. 
OTS$POWII  Raise a word integer base to a word integer exponent. 
OTS$POWJJ  Raise a longword integer base to a longword integer exponent. 
OTS$POWLULU  Raise an unsigned longword integer base to an unsigned longword integer exponent. 
OTS$POW xLU  Raise a floatingpoint base to an unsigned longword integer exponent. 
OTS$POWRD  Raise an Ffloating base to a Dfloating exponent. 
OTS$POWRJ  Raise an Ffloating base to a longword integer exponent. 
OTS$POWRR  Raise an Ffloating base to an Ffloating exponent. 
Routine Name  Function 

OTS$SCOPY_DXDX  Copy a source string passed by descriptor to a destination string. 
OTS$SCOPY_R_DX  Copy a source string passed by reference to a destination string. 
Routine Name  Function 

OTS$SFREE1_DD  Free one dynamic string. 
OTS$SFREEN_DD  Free n dynamic strings. 
OTS$SGET1_DD  Get one dynamic string. 
Table 18 lists the affected OTS$ entry points with their equivalent math$ entry points. Refer to the Compaq Portable Mathematics Library for information about the math$ entry points.
OTS$ Entry Point  Math$ Entry Point 

OTS$DIVC  math$cdiv_f 
OTS$DIVCG_R3  math$cdiv_g 
OTS$MULCG_R3  math$cmul_g 
OTS$POWCC  math$cpow_f 
OTS$POWCGCG_R3  math$cpow_g 
OTS$POWCJ  math$cpow_fq 
OTS$POWGG  math$pow_gg 
OTS$POWGJ  math$pow_gq 
OTS$POWGLU  math$pow_gq 
OTS$POWII  math$pow_qq 
OTS$POWJJ  math$pow_qq 
OTS$POWLULU  math$pow_qq 
OTS$POWRJ  math$pow_fq 
OTS$POWRLU  math$pow_fq 
OTS$POWRR  math$pow_ff 
On Alpha systems, the General Purpose (OTS$) routines provide 64bit virtual addressing capabilities as follows:
The OTS$ routines declared in ots$routines.h do not include prototypes for 64bit data. You must provide your own generic prototypes for any OTS$ functions you use. 
See the OpenVMS Programming Concepts Manual for more information about 64bit virtual addressing capabilities.
Next  Contents  Index 