Form T134-0594 GPEFBIND.TXT Available Ada Bindings Generic Package of Elementary Functions (GPEF) Guest Editor: Gilbert Myers, NCCOSC RDT&E Division (NRaD), 53140 Gatchell Road-Room 335, San Diego, CA 92152-7440; tel: 619/553-4136; e-mail: gmyers@nosc.mil 2.1 Description and standardization efforts The proposed standard for the Generic Package of Elementary Functions (GPEF) represents the work of a large number of people in both the United States and Europe who have collaborated to develop specifications for packages of Ada mathematical functions. This development has been difficult and lengthy. The exceptional dedication and perseverance of these people have resulted in the completed specifications for two packages -- GPEF, and the Generic Package of Primitive Functions for Ada (GPPF -- discussed in Section 3). GPEF is the specification for certain elementary mathematical functions. They are square root, logarithm and exponential functions and the exponentiation operator; the trigonometric functions for sine, cosine, tangent and cotangent and their inverses; and the hyperbolic functions for sine, cosine, tangent, and cotangent together with their inverses. Background The Ada-Europe Numerics Working Group (A-ENWG) was formed in 1984 about the same time that an early study proposing standard mathematical packages in Ada was undertaken by Symm and Kok. In 1986, the Numerics Working Group (NUMWG) of the Association of Computing Machinery's Special Interest Group on Ada (ACM SIGAda) was formed, and has met every few months since. During the 1980s, members of A-ENWG met on a regular basis with the NUMWG so that close cooperation was achieved on developing specifications that were joint effort of both groups. The A-ENWG has not met for some three years, but the NUMWG continues informal liaison with key European Ada individuals on continuing work. Current Status The work of both groups has resulted in proposed standards for GPEF and GPPF, which have been adopted by the Numerics Rapporteur Group (NRG), a subcommittee of Working Group 9 (Ada) of Subcommittee 22 of Joint Technical Committee 1 of the International Organization for Standardization-International Electrotechnical Commission (ISO-IEC JTC1/SC22/WG9 (Ada). The NRG has proposed GPEF and GPPF for standardization. WG9 has approved both proposed standards and forwarded them to SC22 for voting. GPEF has been accepted as Draft International Standard (DIS) 11430 and GPFF has been approved as DIS 11729. Work continues to complete the editorial formatting of the documents for final publication and acceptance as international standards. Copies of the current documents may be obtained from the Ada Joint Program Office (AJPO) or the editor of this section. 2.2 GPEF resources available from repositories/software-reuse libraries 2.2.1 AdaNet The following abstract was taken from AdaNet, and describes software available in source-code form. For more information on AdaNet, see Appendix C. Title: Generic Math Functions This is an implementation of the generic_elementary_functions package specified by the ISO Numerics Rapporteur Group, as well as of generic_primitive_functions, generic_algebraic_functions, and math_constants. 2.2.2 Asset Source for Software Engineering Technology (ASSET) The following information was taken from the ASSET Library Repository Catalog. For more information on ASSET, see Appendix C. Generic Elementary Math Functions Order Number: ASSET_A_402 Alternate Name: MATH FUNCTIONS, PORTABLE GENERIC ELEMENTARY FUNCTION PACKAGE IN ADA AND AN ACCURATE TEST SUITE Release Date: 01-NOV-90 Producer: ARGONNE NATIONAL LABORATORIES Author: Ping Tak Peter Tang Reference: ANL-90/35 Asset Type: SOFTWARE - BUNDLE Size: 406 Kbytes, 96 Files Domains: ADA STANDARDS AND BINDINGS, MATH UTILITIES Keywords: EXPONENTIAL, HYPERBOLIC, MATH FUNCTIONS, MATH LIBRARY, MATH PACKAGE, TRIG FUNCTIONS, TRIGONOMETRIC Collection: GENERAL, STANDARDS AND BINDINGS Distribution: Approved for public release, distribution is unlimited This set of generic Ada packages provide a set of mathematical functions that conform to the SIGAda Numerics Working Group's proposed standard (which is a proposed secondary ISO standard). The package as specified consists of 29 functions that can be classified into three families: exponential, trigonometric, and hyperbolic. The exponential family consists of 5 functions: Sqrt(x), Exp(x), X**Y, Log(X) and Log(x,Base). The trigonometric family consists of 16 functions: the four usual trig functions Sin(x), Cos(x), Tan(x), and Cot(x) and the four inverses Arcsin(x), Arccos(x), Arctan(y,x), and Arccot(x,y) constitute 8 of the 16. These 8 functions are approximations to the corresponding mathematical functions, with 2pi being the period. The proposed ISO standard also requires 8 other functions that allow the user to specify a period (e.g., 360.0). The calling sequences for the other 8 are Sin(x,cycle), Cos(x, cycle), ..., and Arccot(y,x,cycle). Finally, the hyperbolic family consists of 8 functions: the commonly used Sinh(x), Cosh(x), Tanh(x), and Coth(x) and the corresponding inverses Arcsinh(x), Arccosh(x), Arctanh(x), and Arccoth(x). The code has comments defining usage and implementation details, plus an informative README file. Also included are test packages and drivers to test each of the functions. A Users Manual (ASSET_A_405) for this set of packages is available from ASSET in paper copy. Generic Elementary Math Functions User Manual Order Number: ASSET_A_405 Alternate Name: PORTABLE GENERIC ELEMENTARY FUNCTION PACKAGE IN ADA AND AN ACCURATE TEST SUITE Availability: paper only Release Date: 01-NOV-90 Producer: ARGONNE NATIONAL LABORATORIES Author: Ping Tak Peter Tang Reference: ANL-90/35 Asset Type: SOFTWARE DOCUMENTATION Size: 37 Pages Domains: ADA STANDARDS AND BINDINGS, MATH UTILITIES Keywords: EXPONENTIAL, HYPERBOLIC, MATH FUNCTIONS, MATH LIBRARY, MATH PACKAGE, TRIG FUNCTIONS, TRIGONOMETRIC Collection: GENERAL, STANDARDS AND BINDINGS Distribution: Approved for public release, distribution is unlimited This document describes the background and algorithms used in developing the Generic Elementary Math Functions. It also describes the testing of these and other commercially available math functions, and gives the results of the testing. This document is a companion to ASSET_A_402: Generic Elementary Math Functions, and is available from ASSET in paper form only. Generic Math Functions Order Number: ASSET_A_411 Alternate Name: MATH FUNCTIONS Version: 3.25 Release Date: 07-JUN-91 Producer: NAVAL OCEAN SYSTEMS CENTER Author: Vincent Broman Asset Type: SOFTWARE - BUNDLE Size: 57 Files Domains: ADA STANDARDS AND BINDINGS, MATH UTILITIES Keywords: EXPONENTIAL, HYPERBOLIC, MATH FUNCTIONS, MATH LIBRARY, MATH PACKAGE, TRIG FUNCTIONS, TRIGONOMETRIC Collection: GENERAL, STANDARDS AND BINDINGS Distribution: Approved for public release, distribution is unlimited This is an implementation of the generic_elementary_functions package specified by the ISO Numerics Rapporteur Group, as well as of generic_primitive_functions, generic_algebraic_functions, and math_constants. As with most software, this carries no guarantees. Single precision and double precision have been pretty well tested on an Apollo (Alsys) and a VAX (DEC). Longest_Float precision is mostly finished, but rough. This will also compile on VAX/Unix (Verdix), Apollo/SR10.2 (Verdix) and somewhere or other (TeleSoft). ... 2.3 GPEF products available from vendors Alsys, Inc. The Alsys Ada Software Development Environment for 386 UNIX is a production-quality Ada environment capable of handling very large Ada applications (over 500,000 lines of code). The product includes the Compiler; Multi-Library Environment, which provides a powerful and flexible way to manage Ada development effort and share program units; Binder, which supports unused subprograms elimination; High- and Low-Level Optimizers for improving code quality and performance; and Run-Time Executive for efficient support for executing Ada programs. Also included is the Developer's Toolset including: Ada Probe, a symbolic source-level debugger and program viewer; AdaXref, a cross-reference generator; AdaMake, a recompilation aid; AdaReformat, a source reformatter. Alsys currently has Ada bindings to POSIX, X-Windows (OSF Motif), and the Generic Package of Elementary Functions for the Alsys Ada Software Development Environment, running on 386 UNIX 386/486-based machines supported as both host and target and running 386/ix or SCO UNIX. They are also planning a binding to SQL for 386/486 machines. Host/Target: 386/486 PC under IX UNIX, 386/486 PC under SCO UNIX. The Alsys Ada Software Development Environment for the IBM RS/6000 is a production-quality Ada environment capable of handling very large Ada applications. Hosted on and targeted to the IBM RS/6000 workstation under IBM's AIX operating system, the product includes the Compiler; Multi-Library Environment, which provides a powerful and flexible way to manage Ada development efforts and share program units; Binder; Run-Time Executive; and both a High- and Low-Level Optimizer for improving code quality and performance. Also included is the Alsys Ada Toolset including Ada Probe, symbolic source-level debugger and program viewer; AdaXref, cross-reference generator; AdaMake, recompilation aid; and AdaReformat, source reformatter. Alsys has bindings currently available to the Generic Package of Elementary Functions and to X-Windows (OSF Motif) for the Alsys Ada Development Environment for the IBM RS/6000 running on any RISC System/6000 machine as both host and target and running IBM's AIX operating system (Alsys's validated Ada compiler #910809W1.11195). Alsys also plans to develop a POSIX binding for the RS/6000. Host/Target: RISC System/6000 under AIX. The Alsys Ada Software Development Environment for SPARC Workstations is a production-quality Ada environment capable of handling very large Ada applications. Hosted on any SPARC-based workstation under SunOS or SunView, the product includes the Compiler (with High- and Low-Level Optimizers); Binder, which supports unused subprogram elimination; Multi-Library system (Family, Library, and Unit Managers), which provides a powerful and flexible way to manage Ada development efforts and share program units; AdaExec real-time executive, for complete and efficient support for executing Ada programs; and ISO-standard mathematical library. Also included is the Alsys Ada Toolset including AdaProbe, symbolic source-level debugger and program viewer; AdaXref, cross-reference generator; AdaMake, recompilation aid; and AdaReformat, source reformatter. Bindings to the Generic Package of Elementary Functions and to OSF/Motif are currently available for the Alsys Ada Software Development Environment running on any SPARC-based Workstation as both host and target and running SunOS or SunView. Host/Target: SPARC under SunOS. For more information, contact: Alsys Sales, Alsys, Inc., 67 South Bedford Street, Burlington, MA 01803, USA; tel: 617/270-0030, fax: 617/270-6882, e-mail: marketing@alsys.com. Convex Computer Corporation Convex Computer Corporation currently offers a binding to GPEF and GPPF for Convex Ada, running under ConvexOS or ConvexOS/Secure on super computers as both host and target. They plan to implement bindings to POSIX and OSF Motif for the same machines and operating systems. Host/Target: Convex under OS, Convex under OS/Secure. For more information, contact: Brian Allison, Convex Computer Corporation, 3000 Waterview Parkway, Richardson, TX 75083, USA; tel: 214/497-4000. Encore Computer Corporation [Last updated: November 1992] Encore Computer Corporation's Micro Ada Real-Time Executive (MicroARTE) includes Ada bindings to the Generic Package of Elementary Functions (GPEF) and the Generic Package of Primitive Functions (GPPF). The MicroARTE product is one of several real-time execution environments available on the Encore 90 Family of computers. MicroARTE can be used to provide a real-time execution environment that directly controls processor resources, input/output systems, memory, interrupts, and other functions. MicroARTE eliminates the need to invoke conventional operating-system services and reduces system overhead. Real-time system performance and response are enhanced. Host/Target: Encore 91 under UMAX 3.0. Encore's Parallel Ada Development System (PADS) includes Ada bindings to the Generic Package of Elementary Functions (GPEF) and the Generic Package of Primitive Functions (GPPF). The PADS product combines a toolset based on the Verdix Ada Development system and Encore's multi-threaded parallel Ada run-time system to provide a complete environment for the development of Ada language applications. PADS consists of a validated compiler, run-time libraries, a symbolic debugger, and a set of tools that aid in Ada program generation, analysis, and library management. PADS is hosted by the UMAX V operating system, combining UNIX computing with parallel run-time capabilities. Host/Target: Encore 91 under UMAX 3.0. For more information, contact: Gary Beerman, Encore Computer Corporation, 6901 West Sunrise Boulevard - Mail Stop 719, Fort Lauderdale, FL 33313-4499, USA; tel: 305/587-2900; fax: 305/795-5546; e-mail: gbeerman@encore.com. IBM The IBM Ada/370 product provides bindings to GPEF and SQL and the Customer Information Control System (CICS -- a transaction-processing system). The IBM Ada/370 licensed programs (5706-292 and 5706-295) consist of an Ada language compiler and a run-time library for use on various IBM MVS and VM/CMS operating systems. The IBM Ada/370 product provides many development environment aids -- such as a source-level debugger (optionally with windowing when using IBM Graphical Data Display Manager Licensed Program for either MVS or VM), a highly configurable source-code formatter to assist in enforcing project coding standards, a dependency lister, a non-intrusive performance profiler, a cross-reference utility and an Ada library-management capability. Ada/370 programs can call VS COBOL II subprograms similar to the calling of VS FORTRAN, C/370, and S/370 assembler subprograms; Ada/370 exported subprograms can be called from VS COBOL II, VS FORTRAN, C/370, AND S/370 assembler programs. Additionally, separate features support inter-operation with other major database and transaction-processing subsystems. One such feature of IBM Ada/370, called the SQL Module Processor for DB2 Database Manager, supports the procedural binding of Ada and SQL. Another such feature of IBM Ada/370, called the IBM CICS Module Processor/MVS, supports the procedural binding of Ada and CICS, including CICS/OS/VS, CICS/MVS and CICS/ESA. Together with the SQL Module Processor for DB2 Database Manager, powerful Ada applications utilizing the combined features of these two subsystems can be productively built. Host/Target: Ada/370 runs on the IBM 30XX, 43XX, 937X and ES/9000 family processors, which are supported by the following operating systems: 1. VM/System Product (VM/SP) Release 5 or 6 (5664-167) with or without High Performance Option (HPO) (5664-173); 2. VM/Extended Architecture System Product (VM/XA SP) Release 2 (5664-308); 3. VM/Enterprise Systems Architecture (VM/ESA) Release 1 (5684-112); 4. MVS/SP-JES2 Version 2 Release 2 (MVS/XA) (5740-XC6); 5. MVS/SP-JES3 Version 2 Release 2 (MVS/XA) (5665-291); 6. MVS/SP-JES2 Version 3 Release 1 (MVS/ESA) (5685-001); 7. MVS/SP-JES3 Version 3 Release 1 (MVS/ESA) (5685-002); 8. MVS/ESA-JES2 Version 4 Release 1 or 2 (MVS/ESA) (5695-047); 9. MVS/ESA-JES3 Version 4 Release 1 or 2 (MVS/ESA) (5695-048); Note: All of the above Operating Environments are supported in 31-bit addressing mode with the exception of VM/System Product (VM/SP) Release 5 and 6 which are restricted to 24-bit addressing. IBM's AIX Ada/6000 product provides a binding to GPEF and IBM AIXWindows (X-Windows ... not Motif). It runs on all models of the IBM RISC System/6000 under the IBM AIX Version 3.2 operating system. The AIX Ada/6000 licensed programs (5706-291 and 5706-294) consist of an optimizing compiler, a run-time environment, a symbolic debugger, an Ada "makefile" generator for use in automating and minimizing recompilation, Ada library management tools and Ada language bindings to some key AIX subsystems. With the exception of some system-specific aspects of the language, the Ada language for the AIX operating system is source compatible with the Ada language supported by IBM licensed programs in VM/CMS and MVS. Host/Target: IBM RISC System/6000 under the IBM AIX Version 3.2 operating system. The IBM products listed above comply with the following standards: ANSI/MIL-STD-1815A -- Ada '83; ISO 8652-1987, Programming Languages, Ada; FIPS PUB 119 -- Ada; FIPS PUB 127-1 SQL through IBM DB2 Database Manager V2.3; ANSI-X3.135-1986 -- Database Language-SQL; ANSI-X3.168-1989 -- Procedural Binding of Ada and SQL; CIFO 2.0 & 3.0 Catalog of Interface Features & Options; Validated at current level (1.11) of the ACVC test suite. For more information, contact: Barry Lee, IBM Corporation, 844 Don Mills Road, North York, Ontario, Canada M3C 1V7; tel: 416/448-3174; fax: 416/448-4810. MassTech, Inc. MassTech's MathPack product is an Ada mathematical library that provides more than 350 mathematical subprograms in 20+ generic Ada packages. These subprograms provide solutions to a broad range of mathematical problems including linear systems, eigensystems, differential equations, integration, interpolation, transforms, special functions, elementary functions, polynomials, basic linear algebra, random numbers, probability, and statistics. In addition, there are packages defining data types, numerical, physical and chemical constants. The subprograms in MathPack are based on proven numerical algorithms, such as LINPACK for linear systems, EISPACK for eigensystems, and QUADPACK for integration. The MathPack provides a binding to the Generic Package of Elementary Functions (GPEF). Host/Target: Convex under UNIX, DEC/VAX under VMS, Digital under Ultrix, Digital under VMS, IBM under UNIX, Silicon Graphics under UNIX, Sun under UNIX, IBM and compatible under DOS. For more information, contact: MassTech, Inc., 3108 Hillsboro Road, Huntsville, AL 35805, USA; tel: 205/539-8360; fax: 205/533-6730 SL Corporation SL Corporation provides Ada binding support for its SL-GMS toolkit; this includes support for GPEF, GPPF, POSIX, SQL, TCP/IP, OSF/Motif, and Open Look. SL-GMS is a toolkit for developing dynamic graphics screens for real-time or highly interactive applications. Non-programmers can design application screens in a standard drawing-tool mode, connect them to real-time data sources and animate screen objects to visualize changing data values. SL-GMS allows the design of custom "GISMOs" to input values or control the application and supports Motif, Open Look and other X toolkit widgets. SL-GMS is used extensively to provide real-time graphics for applications in the fields of manufacturing, process control, network management, avionics and financial tracking. Host/Target: Validated Verdix and DEC compilers support SL-GMS for the following machines as both host and target: DEC-DECstation/ULTRIX 4.0; DEC-VAXstation/ULTRIX 4.0; DEC-VAXstation/VMS 5.4; DEC-VAXstation/VMS 5.5; DEC Alpha PCs/Windows NT; IBM-RS6000/AIX; HP-9000/300/UNIX; HP-9000/400/UNIX; HP-9000/700/UNIX; HP-9000/800/UNIX; PC-386/IX UNIX; PC-386/SCO UNIX; PC-386/Lynx; PC-386/0S2; PC-386/System 5.4; SGI-4D/IRIX 3.3; Sun-3/SunOS 4.1; SunSPARC/SunOS 4.1 and Solaris; 88 Open/BCS Compliant; and Intel PCs/Windows NT. For more information, contact: Mike Meagher, SL Corporation, 240 Tamal Vista Boulevard, Corte Madera, CA 94926, USA; tel: 415/927-1724; fax: 415/927-0878. ***** The views, opinions, and findings contained in this report are those of the author(s) and should not be construed as an official Agency position, policy, or decision, unless so designated by other official documentation. Copyright 1995. IIT Research Institute. All rights assigned to the US Government (Ada Joint Program Office). Permission to reprint this flyer, in whole or in part, is granted, provided the AdaIC is acknowledged as the source. ***** Ada Information Clearinghouse(AdaIC) PO Box 1866 Falls Church, VA 22204 Telephone: 1-800-AdaIC-11, 1-800/232-4211 or 703/681-2466 Fax: 703/681-2869 Email: adainfo@sw-eng.falls-church.va.us The AdaIC is sponsored by the Ada Joint Program Office and operated by IIT Research Institute.