Strategies for portability between CommonPoint and other platforms

The high cost of developing numerical software, the relative stability of numerical programming paradigms over the past decades, and the robustness of IEEE standard arithmetic together inspire attempts to port rather than redevelop large bodies of code when new computer systems appear. This section discusses the various issues you face when porting code to and from CommonPoint platforms. The system supports such endeavors with interfaces serving diverse needs.

There are three levels of compatibility provided by CommonPoint interfaces:

  1. Compatibility across all CommonPoint platforms, using the full numerical and environment features of CommonPoint. The headers are Numerics.h and FPEnvironment.h. This is the topic of the previous section.
  2. Compatibility across all systems compliant with the proposed Floating-Point C Extensions. The headers fp.h and fenv.h can be used simultaneously with Numerics.h and FPEnvironment.h.
  3. Compatibility across systems using the long-standing but less rich Standard C runtime library defined in math.h, which can be used simultaneously with Numerics.h and FPEnvironment.h.
FPCE is an emerging standard. It is based on experience with the IEEE arithmetic standards and with various proprietary language extensions. FPCE and its headers fp.h and fenv.h supersede the Standard C math library and its header math.h.

FPCE overloaded functions are not compatible with Standard C functions in math.h. "Overloaded functions" on page 250 shows how math.h can support up to three versions of the sine function--sinf, sin, and sinl--as opposed to the single FPCE function sin. You cannot compile with fp.h and math.h simultaneously, though each may be used with Numerics.h, which avoids the name conflict.


[Contents] [Previous] [Next]
Click the icon to mail questions or corrections about this material to Taligent personnel.
Copyright©1995 Taligent,Inc. All rights reserved.

Generated with WebMaker