Project 33: Numerical features of Ada Harwell 1980: ============= Brian Wichmann explained how Brown's model has been used as a foundation for the numerical data types in Ada, how the corresponding syntax had been chosen and the effects on subroutine calls and the separate compilation facility (see IFIP/WG 2.5 (Harwell-16)716). The choice of the fixed radix 2 means that the language will not support a decimal machine. He emphasized that Ada is designed to permit cheap recompilation and linkage of a small part of a large package. Discussion Wichmann: What default do you think is suitable if the user does not specify the exponent range he needs? Is 4 x (mantissa length) suitable? Curtis: I would say "no" emphatically. I would like the underflow limit to be less than about 10^{-200}, regardless of mantissa length. Several people: The indirect way that the exponent range is specified is very undesirable. Wichmann: Unfortunately this is forced upon us for uniformity of syntax with other data types. Lawson: How are types transmitted between subroutines? Wichmann: Parameter types (as named) must agree. For a library routine, I would suggest that the generic notation be used so that a single source may be used to generate several actual compiled routines. Watt: What happens if a variable strays outside its range? Do we get a diagnostic, implying the overhead of continual checking? Wichmann: You can specify outside the language whether such checking is required (debugging runs) or not (production runs). Boulder 1981: ============= Brown presented some comments on floating-point arithmetic in Ada, based on correspondence with Brian Wichmann, NPL, and Peter Wallis, University of Bath. His slides are reproduced as IFIP/WG 2.5 (Boulder-29) 829. Reinsch commented that the IEEE standard (hardware) and Ada (language) ignore each other. Ford remarked that the aims of Ada are much wider than to provide a replacement for Fortran - e.g. it is also aimed to replace Coral and Cobol. Soederkoeping 1983: =================== Ford reported on the activity of the Ada-Europe working group on Ada numerics, which aims at providing guidelines for the design of large modular scientific libraries in Ada. technical work is done on the development, definition, implementation and use of Ada Numerics : - to identify perceived problems of Numerics in Ada and obtain solutions (including possible future language changes). - to identify aspects of Ada implementations which impact on Numerical applications and to maintain liaison with implementors on these aspects. - to identify the potential of Ada for use in Numerical applications. - to play an active role in the promotion of Ada based software technology in Numerical systems. - to investigate design criteria and specification of Ada packages for use in Numerical libraries such as NAG. - to investigate the practicality of the combination of Ada and other language components in relevant Ada Program- ming Support Environments (APSEs). --- Ford reported on the activity of the Ada-Europe working group on Ada numerics, which aims at providing guidelines for the design of large modular scientific libraries in Ada. Technical work is done on the development, definition, implementation and use of Ada Numerics: - to identify perceived problems of Numerics in Ada and obtain solutions (including possible future language changes). - to identify aspects of Ada implementations which impact on Numerical applications and to maintain liaison with implementors on these aspects. - to identify the potential of Ada for use in Numerical applications. - to play an active role in the promotion of Ada based software technology in Numerical systems. - to investigate design criteria and specification of Ada packages for use in Numerical libraries such as NAG. - to investigate the practicality of the combination of Ada and other language components in relevant Ada Programming Support Environments (APSEs). Pasadena 1984: ============== Ford says that he will be making a technical presentation on the next day. Continued funding for the Ada/Europe Numeric Working Group has recently been agreed. Ada Tec is meeting in Brussels during the present week. Bob Matthis of AJPO has promised to speak to the Numeric Working Group regarding future policy (particularly funding) for numerical software in Ada, during Ada Tec. Ford briefly reviews current technical projects in hand. Dr. Ford: Ada with reference to Numerical Software -------------------------------------------------- The talk starts with a brief history of the specification and design activity that led to the development of Ada. The language was frozen for 5 years in December 1982, and had been adopted as a standard language for contract work by NATO, US Department of Defence and the Commission of the European Community (Information Technology Task Force). Compilers for Ada were listed, some validated as full language implementations, from North America and Europe, and the importance of defining the Ada Programming Support Environment (APSE) at the same time as the language was stressed. Some funding for numerical software in Ada had been made available. An Ada/Europe Numerics Working Group, made up of numerical software developers in FORTRAN, Algol 60, Algol 68 and Pascal, was formed on the 17th March 1983. It was and is not a pressure group to sell Ada, but it serves to investigate the technical challenges of Ada (and development and use of the APSE etc..). The technical aims and objectives of the Working Group are reviewed. The greatest problems for work on numerical software in Ada are the absence of generally available computers and the lack of infrastructure (APSE, other software tools, elementary functions and libraries). Specific technical problems unearthed to date include: a) floating-point arithmetic problems with derived Brown model underflow b) elementary function packages in Ada at least three designs proposed to date (without common design criteria, sublibraries cannot be combined for joint use) awesome task due to need for many precisions. c) library mechanisms some problems inherited from Algol 68 (i) mushroom effects of recompilations when visibility of objects is changed. (ii) side effects due to undefined order of elaboration some new problems (i) visibility of objects (ii) need for forcing order of elaboration d) generics increase functional capability of library, avoiding duplication of coding. existing algorithms need expression in a generic way efficiency considerations. e) tasking f) evaluation of universal arithmetic g) interfacing to Fortran h) exception handling. Ford describes the Guidelines for the Design of Large Scientific Modular Libraries in Ada by Symm, Wichmann, Kok and Winter, which are now being published. The Working Group has been asked to continue the project described in the Guidelines. Open discussion Q: What to do in the meantime? A: The answer is technical as well as political. Q: Why Ada? The academic community uses Algol and Pascal; industry uses Fortran and Cobol. A: Ada will impact Fortran. Ada within academia is on the road. It will be heavily used once good compilers are available. Sophia-Antipolis 1985: ====================== Ford agreed to send a small bibliography to all WG members. As Gentleman asked how many people are writing in Ada, Ford answered that Jan Kok talked in Paris about an Ada compiler running almost as efficiently as a VAX Fortran compiler. Como 1987: ========== Numerical features of Ada ------------------------- Documents: IFIP/WG 2.5 (Como-19), 1419, 19 pages, IFIP/WG 2.5 (Como-24), 1424, 2 pages, IFIP/WG 2.5 (Como-25), 1425, 17 pages DOCUMENT 1425 IS NOT FOR REDISTRIBUTION OUTSIDE WG 2.5, it will appear as appendix to a paper by R.F. Matloos ("Elementary Function Packages for Ada") that is scheduled for presentation at the December 1987 meeting of SIGAda in Boston, USA. Dekker: There are various projects of the Multi Annual Program of the Commission of the European Community. One of these projects is MAP 750, entitled "Pilot Implementations of Basic Modules for Large Portable Numerical Libraries in Ada". This project is now completed and the final review was scheduled for 15th June 1987. The Ada-Europe Numerics Working Group meets regularly (about three times a year), mostly in Brussels. The work of this group and its members is reflected in the book "Scientific Ada" edited by B. Ford, J. Kok and M.W. Rogers (Cambridge University Press, 1986). A current activity of this working group concerns the work on defining a standard for mathematical packages in Ada in cooperation with the ACM/SIGAda Users Committee Numerics Group. Ford talked about the DIAMOND and PNPA projects. Smith: Members of SIGAda have recognized the need for a standard specification of elementary functions in the Ada programming language. The reason is that although there exist many such packages available in specific programming systems they may not be portably accessible to other programs in that their visible interfaces are often different, and often are very different relative to their accuracy, robustness and reliability. Because of the diversity of implementations, the SIGAda Numerics Working Group, cooperating with the Ada Europe Numerics Working Group, plan to specify such a package with a hope that it will be adopted by the Ada Language Committee. The objective is to provide an Ada package specification (or specifications for a series of packages) consistent with the specification of the Ada Europe Numerics Working Group but also including domain, range, and relative (or absolute) accuracy specification, and a validation suite for the package(s). In addition, the group at Argonne plans to develop an implementation of the packages for which outlines of proof that the implementation meets the specifications in terms of Ada properties are provided. Gaffney: A Mapping and Technical Document Centre has been established within the IBM Bergen Scientific Centre, Norway. The MTD centre will take a leading role within IBM Europe for all scientific aspects related to scanning, storing and retrieving of maps (geographical, utility, etc) and technical documents (technical drawings, automotive, offshore industries etc.). The retrieval aspect of this work involves the development of an expert system pattern recognition module, that will be used for "identifying" certain features of the material. For example, separating text from non-textual material, identifying damaged charts etc. Because of the data structures available within ADA it has been decided to produce this module in the Ada language. Thus, the environments for this work will involve scanning equipment, optical disks, an IBM scientific workstation running Ada software, networked to an IBM mainframe database CAD system. Lawson: Allan Klumpp, a specialist in spacecraft navigation at JPL, has produced a set of Ada packages for vector, matrix, and quaternion operations modeled particularly on similar features in the HAL/S language that was used in the NASA shuttle program. He has presented his work within NASA and at SIGAda meeting and has distributed the code to over 200 requesters. Stanford 1988: ============== The following is the summary of the report presented by Th. Dekker . The following projects are, or have been, funded by the Commission of the European Communities: 1. Pilot Implementations of basic modules for large portable numerical libraries in Ada (PIA) is a multi-annual program project which had its final review and was completed in June 1987. 2. DIAMOND is an ESPRIT I project on the use of accurate arithmetic in Ada numerical software. It will continue until the end of 1988. 3. Parallel Numerical Procedures in Ada (PNPA) is a multi-annual program project. Part of this project is continuing. Proposals are being planned for follow-up programs of these projects. The Ada - Europe Numerics Working Group meets regularly in Brussels (about three times a year). The working group discusses European and other numerical Ada projects and related matters. An important current activity concerns the definition of standards for numerical packages in Ada, in cooperation with the SIGAda Numerics Working Group. A proposal for an ISO standard package of elementary functions is nearing completion. The latest draft is dated 27th May 1988. Copies and other information can be obtained from Cody and Jan Kok (Centre for Mathematics and Computer Science, Amsterdam). Plans for standardization of other mathematical facilities in Ada concern real and complex data types and operations. basic auxiliary functions, random number generators and BLAS. Beijing 1989: ============= Document: IFIP/WG 2.5 (Beijing-09) 1609, 1 page. In addition to Cody's report (1609), Dekker reported on the European work in the Ada area. The Ada-Europe Numerics Working Group now concentrates its activities in a few project groups on standardization of numerical features in Ada. In particular, there are project groups on elementary functions, on primitive functions, complex arithmetic and random-number generation, and on vector and matrix operations, including BLAS. These groups cooperate with the international groups SIGAda Num WG and ISO-IEC/JTC1/SC22/WG 9 Numerics Rapporteur Groups (also see 1609). During the discussion WG 2.5 members noted several points: Ada seems to elicit relatively low profile reactions from users (Kulisch). Although many university computer science departments teach Ada it does not seem to be used as a serious programming vehicle, except in DOD related projects (university and industrial) (Fosdick, Paul, Rice, Vouk). Dekker noted that translation of Pascal and Algol 60 numerical code into Ada does not seem to present problems to students. The efficiency and the price of the Ada compilers is a serious obstacle to its more general use (Einarsson, Paul). Jerusalem 1990: =============== Document: IFIP/WG 2.5 (Jerusalem-12) 1712, 2 pages. The group accepted Cody's report (1712). In addition, Dekker reported on the European work in the Ada area. Karlsruhe 1991: =============== Document: IFIP/WG 2.5 (Karlsruhe-10) 1810, 3 pages. Dekker reported on the European work in the Ada area.