3,153 research outputs found
A Modified Staggered Correction Arithmetic with Enhanced Accuracy and Very Wide Exponent Range
A so called staggered precision arithmetic is a special kind of
a multiple precision arithmetic based on the underlying
floating point data format (typically IEEE double format)
and fast floating point operations as well as exact dot product computations.
Due to floating point limitations it is not an arbitrary precision arithmetic.
However, it typically allows computations using several hundred mantissa digits.
A set of new modified staggered arithmetics for real and
complex data as well as for real interval and
complex interval data with very wide exponent range is presented.
Some applications show
the increased accuracy of computed results compared to ordinary staggered
interval computations. The very wide exponent range of the new arithmetic
operations allows computations far beyond the IEEE data formats.
The new arithmetics would be extremly fast, if an exact dot product was
available in hardware (the fused accumulate and add instruction is only
one step in this direction)
On formal methods for certifying floating-point C programs
This paper presents an implementation of an extension of the ACSL specication language in the Frama-C tool in order to prove the correctness of floating-point C programs. A first model checks that there is no over flow, i.e., proof obligations are generated by the Why tool to prove that the result of a fl oating-point operation is not greater than the maximal fl oat allowed in the given type, this model is called the Strict model. A second model, called the Full model, extends the Strict model. The Full model allows over flows and deals with special values: signed infinities, NaNs (Not-a-Number) and signed zeros as in the IEEE-754 Standard. The verification conditions generated by Why are (partially) proved by automatic theorem provers: Alt-Ergo, Simplify, Yices, Z3, CVC3 and Gappa or discharged in the interactive proof assistant Coq [20] using two existing Coq formalization of fl oating-point arithmetic. When the Why proof obligations are written in the syntax of the Gappa library, we can use the gappa and interval tactics to achieve the proof. Several examples of fl oating-point C programs are presented in the paper to prove the efficiency of this implementation
Interpretive computer simulator for the NASA Standard Spacecraft Computer-2 (NSSC-2)
An Interpretive Computer Simulator (ICS) for the NASA Standard Spacecraft Computer-II (NSSC-II) was developed as a code verification and testing tool for the Annular Suspension and Pointing System (ASPS) project. The simulator is written in the higher level language PASCAL and implented on the CDC CYBER series computer system. It is supported by a metal assembler, a linkage loader for the NSSC-II, and a utility library to meet the application requirements. The architectural design of the NSSC-II is that of an IBM System/360 (S/360) and supports all but four instructions of the S/360 standard instruction set. The structural design of the ICS is described with emphasis on the design differences between it and the NSSC-II hardware. The program flow is diagrammed, with the function of each procedure being defined; the instruction implementation is discussed in broad terms; and the instruction timings used in the ICS are listed. An example of the steps required to process an assembly level language program on the ICS is included. The example illustrates the control cards necessary to assemble, load, and execute assembly language code; the sample program to to be executed; the executable load module produced by the loader; and the resulting output produced by the ICS
Computational arithmetic : an updated view
'This paper begins with a review of the fioating-point system, where fioating-point numbers are characterized. It reveals the need of a stan dard in order to solve the problem of production of different results in different computers, as well as the problems oflibrary's portability and software package. It also characterizes the IEEE-754 standard, which specifies the binary fioating-point system for computers since 1980. This standard also specifies: r~presentation of numbers, arithmetic operations, conversion between formats and treatment of exception with underflow and overfiow. Special types of the NaN (not a num ber), + and - infinite, non normalized numbers and implicit bit are also characterized
Accelerated Financial Applications through Specialized Hardware, FPGA
This project will investigate Field Programmable Gate Array (FPGA) technology in financial applications. FPGA implementation in high performance computing is still in its infancy. Certain companies like XtremeData inc. advertized speed improvements of 50 to 1000 times for DNA sequencing using FPGAs, while using an FPGA as a coprocessor to handle specific tasks provides two to three times more processing power. FPGA technology increases performance by parallelizing calculations. This project will specifically address speed and accuracy improvements of both fundamental and transcendental functions when implemented using FPGA technology. The results of this project will lead to a series of recommendations for effective utilization of FPGA technology in financial applications
Certifying floating-point implementations using Gappa
High confidence in floating-point programs requires proving numerical
properties of final and intermediate values. One may need to guarantee that a
value stays within some range, or that the error relative to some ideal value
is well bounded. Such work may require several lines of proof for each line of
code, and will usually be broken by the smallest change to the code (e.g. for
maintenance or optimization purpose). Certifying these programs by hand is
therefore very tedious and error-prone. This article discusses the use of the
Gappa proof assistant in this context. Gappa has two main advantages over
previous approaches: Its input format is very close to the actual C code to
validate, and it automates error evaluation and propagation using interval
arithmetic. Besides, it can be used to incrementally prove complex mathematical
properties pertaining to the C code. Yet it does not require any specific
knowledge about automatic theorem proving, and thus is accessible to a wide
community. Moreover, Gappa may generate a formal proof of the results that can
be checked independently by a lower-level proof assistant like Coq, hence
providing an even higher confidence in the certification of the numerical code.
The article demonstrates the use of this tool on a real-size example, an
elementary function with correctly rounded output
- …