Results

**11 - 15**of**15**### Elimination of Square Roots and Divisions by Partial Inlining

"... Computing accurately with real numbers is always a challenge. This is particularly true in critical embedded systems since mem-ory issues do not allow the use of dynamic data structures. This constraint imposes a finite representations of the real numbers, pro-voking uncertainties and rounding error ..."

Abstract
- Add to MetaCart

(Show Context)
Computing accurately with real numbers is always a challenge. This is particularly true in critical embedded systems since mem-ory issues do not allow the use of dynamic data structures. This constraint imposes a finite representations of the real numbers, pro-voking uncertainties and rounding errors that might modify the ac-tual behavior of a program from its ideal one. This article presents a solution to this problem with a program transformation that elim-inates square roots and divisions in straight line programs without nested function calls. These two operations are the source of infi-nite sequences of digits in numerical representations, thus, elimi-nating these operations allows to compute exactly using for exam-ple a fixed-point number representation with a sufficient number of bits. In order to avoid an explosion of the size of the produced code this transformation relies on a particular anti-unification to realize a partial inlining of the variable and function definitions. This trans-formation targeting code for aeronautics certified in PVS, we want to prove the semantics preservation in this proof assistant. Thus we use both an OCaml implementation and the subtyping features of PVS to ensure the correctness of the transformation by defining a proof-producing (certifying) program transformation, providing a specific semantics preservation lemma for every definition in the transformed program.

### Refinement Types for Incremental Computational Complexity

"... Abstract. With recent advances, programs can be compiled to effi-ciently respond to incremental input changes. However, there is no lang-uage-level support for reasoning about the time complexity of incremen-tal updates. Motivated by this gap, we present CostIt, a higher-order functional language wi ..."

Abstract
- Add to MetaCart

(Show Context)
Abstract. With recent advances, programs can be compiled to effi-ciently respond to incremental input changes. However, there is no lang-uage-level support for reasoning about the time complexity of incremen-tal updates. Motivated by this gap, we present CostIt, a higher-order functional language with a lightweight refinement type system for prov-ing asymptotic bounds on incremental computation time. Type refine-ments specify which parts of inputs and outputs may change, as well as dynamic stability, a measure of time required to propagate changes to a program’s execution trace, given modified inputs. We prove our type system sound using a new step-indexed cost semantics for change prop-agation and demonstrate the precision and generality of our technique through examples. 1

### Auto-Approximation of Graph Computing

"... In the big data era, graph computing is one of the challenging issues because there are numerous large graph datasets emerging from real applications. A question is: do we need to know the final exact an-swer for a large graph? When it is impossible to know the exact answer in a limited time, is it ..."

Abstract
- Add to MetaCart

(Show Context)
In the big data era, graph computing is one of the challenging issues because there are numerous large graph datasets emerging from real applications. A question is: do we need to know the final exact an-swer for a large graph? When it is impossible to know the exact answer in a limited time, is it possible to approximate the final an-swer in an automatic and systematic way without having to design-ing new approximate algorithms? The main idea behind the ques-tion is: it is more important to find out something meaningful quick from a large graph, and we should focus on finding a way of making use of large graphs instead of spending time on designing approx-imate algorithms. In this paper, we give an innovative approach which automatically and systematically synthesizes a program to approximate the original program. We show that we can give users some answers with reasonable accuracy and high efficiency for a wide spectrum of graph algorithms, without having to know the details of graph algorithms. We have conducted extensive experi-mental studies using many graph algorithms that are supported in the existing graph systems and large real graphs. Our extensive experimental results reveal that our automatically approximating approach is highly feasible. We live in a system of approximations.