1,724 research outputs found
Radix Conversion for IEEE754-2008 Mixed Radix Floating-Point Arithmetic
Conversion between binary and decimal floating-point representations is
ubiquitous. Floating-point radix conversion means converting both the exponent
and the mantissa. We develop an atomic operation for FP radix conversion with
simple straight-line algorithm, suitable for hardware design. Exponent
conversion is performed with a small multiplication and a lookup table. It
yields the correct result without error. Mantissa conversion uses a few
multiplications and a small lookup table that is shared amongst all types of
conversions. The accuracy changes by adjusting the computing precision
A rule-based system for real-time analysis of control systems
An approach to automate the real-time analysis of flight critical health monitoring and system status is being developed and evaluated at the NASA Dryden Flight Research Facility. A software package was developed in-house and installed as part of the extended aircraft interrogation and display system. This design features a knowledge-base structure in the form of rules to formulate interpretation and decision logic of real-time data. This technique has been applied for ground verification and validation testing and flight testing monitoring where quick, real-time, safety-of-flight decisions can be very critical. In many cases post processing and manual analysis of flight system data are not required. The processing is described of real-time data for analysis along with the output format which features a message stack display. The development, construction, and testing of the rule-driven knowledge base, along with an application using the X-31A flight test program, are presented
Data Structures and Algorithms for Efficient Solution of Simultaneous Linear Equations from 3-D Ice Sheet Models
Two current software packages for solving large systems of sparse simultaneous l~neare equations are evaluated in terms of their applicability to solving systems of equations generated by the University of Maine Ice Sheet Model. SuperLU, the first package, has been developed by researchers at the University of California at Berkeley and the Lawrence Berkeley National Laboratory. UMFPACK, the second package, has been developed by T. A. Davis of the University of Florida who has ties with the U. C. Berkeley researchers as well as European researchers. Both packages are direct solvers that use LU factorization with forward and backward substitution. The University of Maine Ice Sheet Model uses the finite element method to solve partial differential equations that describe ice thickness, velocity,and temperature throughout glaciers as functions of position and t~me. The finite element method generates systems of linear equations having tens of thousands of variables and one hundred or so non-zero coefficients per equation. Matrices representing these systems of equations may be strictly banded or banded with right and lower borders. In order to efficiently Interface the software packages with the ice sheet model, a modified compressed column data structure and supporting routines were designed and written. The data structure interfaces directly with both software packages and allows the ice sheet model to access matrix coefficients by row and column number in roughly 100 nanoseconds while only storing non-zero entries of the matrix. No a priori knowledge of the matrix\u27s sparsity pattern is required. Both software packages were tested with matrices produced by the model and performance characteristics were measured arid compared with banded Gaussian elimination. When combined with high performance basic linear algebra subprograms (BLAS), the packages are as much as 5 to 7 times faster than banded Gaussian elimination. The BLAS produced by K. Goto of the University of Texas was used. Memory usage by the packages varted from slightly more than banded Gaussian elimination with UMFPACK, to as much as a 40% savings with SuperLU. In addition, the packages provide componentwise backward error measures and estimates of the matrix\u27s condition number. SuperLU is available for parallel computers as well as single processor computers. UMPACK is only for single processor computers. Both packages are also capable of efficiently solving the bordered matrix problem
Symbolic execution of verification languages and floating-point code
The focus of this thesis is a program analysis technique named symbolic
execution. We present three main contributions to this field.
First, an investigation into comparing several state-of-the-art program
analysis tools at the level of an intermediate verification language over a
large set of benchmarks, and improvements to the state-of-the-art of symbolic
execution for this language. This is explored via a new tool, Symbooglix, that
operates on the Boogie intermediate verification language.
Second, an investigation into performing symbolic execution of floating-point
programs via a standardised theory of floating-point arithmetic that is
supported by several existing constraint solvers. This is investigated via two
independent extensions of the KLEE symbolic execution engine to support
reasoning about floating-point operations (with one tool developed by the
thesis author).
Third, an investigation into the use of coverage-guided fuzzing as a means for
solving constraints over finite data types, inspired by the difficulties
associated with solving floating-point constraints. The associated prototype
tool, JFS, which builds on the LibFuzzer project, can at present be applied to
a wide range of SMT queries over bit-vector and floating-point variables, and
shows promise on floating-point constraints.Open Acces
Recommended from our members
A guided tour of P-Nut (Release 2.2)
P-NUT is a suite of tools for constructing and analyzing Petri Net models. The tools have been developed at UCI to aid researchers in applying Petri Nets to the design of concurrent hardware/software. The tools support state-space analysis, simulation, performance evaluation and verification. While the tools are useful in their current state, the P-NUT system is just beginning to achieve its overall objective of aiding in the design of complex distributed real-time systems. This report provides a guided tour of the tools for researchers who are interested in exploring P-NUT's capabilities
Equivalence Partitioning as a Basis for Dynamic Conditional Invariant Detection
Program invariants are statements asserting properties of programs at
certain points. They can assist developers and testers in understanding the
program, and can be used for automated formal verification of the program.
However, despite their usefulness they are often omitted from code. Dynamic
invariant detection is a technique that discovers program invariants
by observing execution of the program. One type of invariants that presents
challenge to this technique is conditional invariants, which are considered
to be computationally infeasible to be computed exhaustively. We present
a new approach to assist conditional invariants detection, by analysing test
suites used to drive the execution of the programs for their use of equivalence
partitioning – a very common testing technique – and inferring conditional
invariants from this information. A prototype implementation, named Yacon,
is developed to work in conjunction with a mature dynamic invariant
detection tool Daikon. Given a set of splitting conditions, Daikon can use
them to infer conditional invariants. Yacon attempts to recover partitioning
information from a given test suite, producing splitting conditions as a result.
We introduced two strategies to recover partitioning information, one
based on the presence of boundary value analysis testing technique; the other
based on invariants within the test suite itself. We evaluated the effectiveness
of each recovery strategy and the approach as a whole, and found that our
approach can help make Daikon perform significantly better. However, the
two recovery strategies only work well in limited circumstances, suggesting
possible improvement in finding more effective recovery strategies
Equivalence Partitioning as a Basis for Dynamic Conditional Invariant Detection
Program invariants are statements asserting properties of programs at
certain points. They can assist developers and testers in understanding the
program, and can be used for automated formal verification of the program.
However, despite their usefulness they are often omitted from code. Dynamic
invariant detection is a technique that discovers program invariants
by observing execution of the program. One type of invariants that presents
challenge to this technique is conditional invariants, which are considered
to be computationally infeasible to be computed exhaustively. We present
a new approach to assist conditional invariants detection, by analysing test
suites used to drive the execution of the programs for their use of equivalence
partitioning – a very common testing technique – and inferring conditional
invariants from this information. A prototype implementation, named Yacon,
is developed to work in conjunction with a mature dynamic invariant
detection tool Daikon. Given a set of splitting conditions, Daikon can use
them to infer conditional invariants. Yacon attempts to recover partitioning
information from a given test suite, producing splitting conditions as a result.
We introduced two strategies to recover partitioning information, one
based on the presence of boundary value analysis testing technique; the other
based on invariants within the test suite itself. We evaluated the effectiveness
of each recovery strategy and the approach as a whole, and found that our
approach can help make Daikon perform significantly better. However, the
two recovery strategies only work well in limited circumstances, suggesting
possible improvement in finding more effective recovery strategies
- …