Linear robust control
Embedded ISA support for enhanced floating-point to fixed-point ANSI-C compilation
CASES '00 Proceedings of the 2000 international conference on Compilers, architecture, and synthesis for embedded systems
Computer-Aided Control System Design
Computer-Aided Control System Design
Efficient Minimization of Numerical Summation Errors
ICALP '98 Proceedings of the 25th International Colloquium on Automata, Languages and Programming
Fast, Accurate Static Analysis for Fixed-Point Finite-Precision Effects in DSP Designs
Proceedings of the 2003 IEEE/ACM international conference on Computer-aided design
Automated Floating-Point to Fixed-Point Conversion with the Fixify Environment
RSP '05 Proceedings of the 16th IEEE International Workshop on Rapid System Prototyping
Enhancing the implementation of mathematical formulas for fixed-point and floating-point arithmetics
Formal Methods in System Design
A Field Guide to Genetic Programming
A Field Guide to Genetic Programming
Automatic verification of control system implementations
EMSOFT '10 Proceedings of the tenth ACM international conference on Embedded software
Trustworthy numerical computation in Scala
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Automatic Generation of Fast and Certified Code for Polynomial Evaluation
ARITH '11 Proceedings of the 2011 IEEE 20th Symposium on Computer Arithmetic
Accuracy-Guaranteed Bit-Width Optimization
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Low-Power Optimization by Smart Bit-Width Allocation in a SystemC-Based ASIC Design Environment
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Synthesis of minimal-error control software
Proceedings of the tenth ACM international conference on Embedded software
A new abstract domain for the representation of mathematically equivalent expressions
SAS'12 Proceedings of the 19th international conference on Static Analysis
Towards automated system synthesis using sciduction
Towards automated system synthesis using sciduction
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
Several problems in the implementations of control systems, signal-processing systems, and scientific computing systems reduce to compiling a polynomial expression over the reals into an imperative program using fixed-point arithmetic. Fixed-point arithmetic only approximates real values, and its operators do not have the fundamental properties of real arithmetic, such as associativity. Consequently, a naive compilation process can yield a program that significantly deviates from the real polynomial, whereas a different order of evaluation can result in a program that is close to the real value on all inputs in its domain. We present a compilation scheme for real-valued arithmetic expressions to fixed-point arithmetic programs. Given a real-valued polynomial expression t, we find an expression t' that is equivalent to t over the reals, but whose implementation as a series of fixed-point operations minimizes the error between the fixed-point value and the value of t over the space of all inputs. We show that the corresponding decision problem, checking whether there is an implementation t' of t whose error is less than a given constant, is NP-hard. We then propose a solution technique based on genetic programming. Our technique evaluates the fitness of each candidate program using a static analysis based on affine arithmetic. We show that our tool can significantly reduce the error in the fixed-point implementation on a set of linear control system benchmarks. For example, our tool found implementations whose errors are only one half of the errors in the original fixed-point expressions.