Results 1  10
of
42
Lambda Lifting: Transforming Programs to Recursive Equations
, 1985
"... Lambda lifting is a technique for transforming a functional program with local function definitions, possibly with free variables in the function definitions, into a program consisting only of global function (combinator) definitions which will be used as rewrite rules. Different ways of doing lambd ..."
Abstract

Cited by 179 (4 self)
 Add to MetaCart
Lambda lifting is a technique for transforming a functional program with local function definitions, possibly with free variables in the function definitions, into a program consisting only of global function (combinator) definitions which will be used as rewrite rules. Different ways of doing lambda lifting are presented, as well as reasons for rejecting or selecting the method used in our Lazy ML compiler. An attribute grammar and a functional program implementing the chosen algorithm is given. Originally publised in Proceedings 1985 Conference on Functional Programming Languages and Computer Architecture, Lecture Notes in Computer Science 201, Nancy, France, 1985. Springer Verlag. y As part B of author's thesis. Main addition: the attribute grammar formulation. 1 Introduction When compiling a lazy functional language using the technique described in [Joh84] it is presumed that the input program is in the form of a set of function definitions, possibly mutually recursive, tog...
The implementation of the Gofer functional programming system
, 1994
"... The Gofer system is a functional programming environment for a small, Haskelllike language. Supporting a wide range of different machines, including home computers, the system is widely used, both for teaching and research. This report describes the main ideas and techniques used in the implementat ..."
Abstract

Cited by 55 (4 self)
 Add to MetaCart
The Gofer system is a functional programming environment for a small, Haskelllike language. Supporting a wide range of different machines, including home computers, the system is widely used, both for teaching and research. This report describes the main ideas and techniques used in the implementation of Gofer. This information will be particularly useful for work using Gofer as a platform to explore the use of new language features or primitives. It should also be of interest to those curious to see how the general techniques of functional programming language compilation are adapted to a simple, but practical, implementation.
Improved Time Bounds for NearOptimal Sparse Fourier Representations
 in Proc. SPIE Wavelets XI
, 2003
"... We study the problem of finding a Fourier representation R of B terms for a given discrete signal A of length N . The Fast Fourier Transform (FFT) can find the optimal Nterm representation in O(N log N) time, but our goal is to get sublinear algorithms for B ! N , typically, B N . Suppose kAk2 M ..."
Abstract

Cited by 52 (11 self)
 Add to MetaCart
We study the problem of finding a Fourier representation R of B terms for a given discrete signal A of length N . The Fast Fourier Transform (FFT) can find the optimal Nterm representation in O(N log N) time, but our goal is to get sublinear algorithms for B ! N , typically, B N . Suppose kAk2 M kRoptk 2 , where Ropt is the optimal output. The previously best known algorithms output R such that kA \Gamma Rk poly(B; log(1=ffi); log N; log M; 1=ffl): Even though this is sublinear in the input size, the dominating term is the polynomial factor in B which is B . In our experience, this is a limitation in practice. Our main result is a significantly improved algorithm for this problem. Our algorithms output R such that kA \Gamma Rk B \Delta poly(log(1=ffi); log N; log M; 1=ffl): We also obtain improvements for higher dimensional Fourier transforms. We need two crucial ideas to achieve this bound: bulk sampling and estimation for multipoint polynomial evaluation using an unevenlyspaced Fourier tranform, and construction and use of arithmeticprogression independent random variables. Our improved algorithms are likely to find many applications. 1
Greatest Common Divisors of Polynomials Given by StraightLine Programs
 J. ACM
, 1988
"... . F Algorithms on multivariate polynomials represented by straightline programs are developed irst it is shown that most algebraic algorithms can be probabilistically applied to data that is given by y r a straightline computation. Testing such rational numeric data for zero, for instance, is faci ..."
Abstract

Cited by 51 (18 self)
 Add to MetaCart
. F Algorithms on multivariate polynomials represented by straightline programs are developed irst it is shown that most algebraic algorithms can be probabilistically applied to data that is given by y r a straightline computation. Testing such rational numeric data for zero, for instance, is facilitated b andom evaluations modulo random prime numbers. Then auxiliary algorithms are constructed that a determine the coefficients of a multivariate polynomial in a single variable. The first main result is an lgorithm that produces the greatest common divisor of the input polynomials, all in straightline r a representation. The second result shows how to find a straightline program for the reduced numerato nd denominator from one for the corresponding rational function. Both the algorithm for that conl c struction and the greatest common divisor algorithm are in random polynomialtime for the usua oefficient fields and output a straightline program, which with controllably high probab...
Improved Sparse Multivariate Polynomial Interpolation Algorithms*
, 1988
"... . We consider the problem of interpolating sparse multivariate polynomials from their values. We discuss two algorithms for sparse interpolation, one due to BenOr and Tiwari (1988) and the other due to Zippel (1988). We present efficient algorithms for finding the rank of certain special Toeplitz s ..."
Abstract

Cited by 48 (11 self)
 Add to MetaCart
. We consider the problem of interpolating sparse multivariate polynomials from their values. We discuss two algorithms for sparse interpolation, one due to BenOr and Tiwari (1988) and the other due to Zippel (1988). We present efficient algorithms for finding the rank of certain special Toeplitz systems arising in the BenOr and Tiwari algorithm and for solving transposed Vandermonde systems of equations, the use of which greatly improves the time complexities of the two interpolation algorithms. 1. Introduction We consider the problem of interpolating a multivariate polynomial over a field of characteristic zero from its values at several points. While techniques for interpolating dense polynomials have been known for a long time (e.g., Lagrangian interpolation formula for univariate polynomials), and probabilistic algorithms for interpolating sparse multivariate polynomials have existed since 1979 (Zippel 1979, 1988), until recently no algorithm was known to interpolate sparse mul...
On The Complexity Of Computing Determinants
 COMPUTATIONAL COMPLEXITY
, 2001
"... We present new baby steps/giant steps algorithms of asymptotically fast running time for dense matrix problems. Our algorithms compute the determinant, characteristic polynomial, Frobenius normal form and Smith normal form of a dense n n matrix A with integer entries in (n and (n bi ..."
Abstract

Cited by 47 (17 self)
 Add to MetaCart
We present new baby steps/giant steps algorithms of asymptotically fast running time for dense matrix problems. Our algorithms compute the determinant, characteristic polynomial, Frobenius normal form and Smith normal form of a dense n n matrix A with integer entries in (n and (n bit operations; here denotes the largest entry in absolute value and the exponent adjustment by "+o(1)" captures additional factors for positive real constants C 1 , C 2 , C 3 . The bit complexity (n results from using the classical cubic matrix multiplication algorithm. Our algorithms are randomized, and we can certify that the output is the determinant of A in a Las Vegas fashion. The second category of problems deals with the setting where the matrix A has elements from an abstract commutative ring, that is, when no divisions in the domain of entries are possible. We present algorithms that deterministically compute the determinant, characteristic polynomial and adjoint of A with n and O(n ) ring additions, subtractions and multiplications.
Tree pattern matching and subset matching in deterministic O(n log3 n)time
, 1999
"... Tree pattern matching and subset matching in deterministic O(n log ..."
Abstract

Cited by 34 (5 self)
 Add to MetaCart
Tree pattern matching and subset matching in deterministic O(n log
Faster Algorithms for String Matching Problems: Matching the Convolution Bound
 In Proceedings of the 39th Symposium on Foundations of Computer Science
, 1998
"... In this paper we give a randomized O(n log n)time algorithm for the string matching with don't cares problem. This improves the FischerPaterson bound [10] from 1974 and answers the open problem posed (among others) by Weiner [30] and Galil [11]. Using the same technique, we give an O(n log n)t ..."
Abstract

Cited by 30 (5 self)
 Add to MetaCart
In this paper we give a randomized O(n log n)time algorithm for the string matching with don't cares problem. This improves the FischerPaterson bound [10] from 1974 and answers the open problem posed (among others) by Weiner [30] and Galil [11]. Using the same technique, we give an O(n log n)time algorithm for other problems, including subset matching and tree pattern matching [15, 21, 9, 7, 17] and (general) approximate threshold matching [28, 17]. As this bound essentially matches the complexity of computing of the Fast Fourier Transform which is the only known technique for solving problems of this type, it is likely that the algorithms are in fact optimal. Additionally, the technique used for the threshold matching problem can be applied to the online version of this problem, in which we are allowed to preprocess the text and require to process the pattern in time sublinear in the text length. This result involves an interesting variant of the KarpRabin fingerprint m...
Tree Pattern Matching and Subset Matching in Randomized O(n log³ m) Time
, 1997
"... The main goal of this paper is to give an efficient algorithm for the Tree Pattern Matching problem. We also introduce and give an efficient algorithm for the Subset Matching problem. The Subset Matching problem is to find all occurrences of a pattern string p of length m in a text string t of le ..."
Abstract

Cited by 28 (4 self)
 Add to MetaCart
The main goal of this paper is to give an efficient algorithm for the Tree Pattern Matching problem. We also introduce and give an efficient algorithm for the Subset Matching problem. The Subset Matching problem is to find all occurrences of a pattern string p of length m in a text string t of length n, where each pattern and text location is a set of characters drawn from some alphabet. The pattern is said to occur at text position i if the set p[j] is a subset of the set t[i + j \Gamma 1], for all j, 1 j m. We give an O((s + n) log 3 m) randomized algorithm for this problem, where s denotes the sum of the sizes of all the sets. Then we reduce the Tree Pattern Matching problem to a number of instances of the Subset Matching problem. This reduction takes linear time and the sum of the sizes of the Subset Matching problems obtained is also linear. Coupled with our first result, this implies an O(n log 3 m) time randomized algorithm for the Tree Pattern Matching problem. ...
Derivation of Randomized Sorting and Selection Algorithms, in Parallel Algorithm Derivation And Program Transformation, edited by
, 1993
"... In this paper we systematically derive randomized algorithms (both sequential and parallel) for sorting and selection from basic principles and fundamental techniques like random sampling. We prove several sampling lemmas which will find independent applications. The new algorithms derived here are ..."
Abstract

Cited by 22 (18 self)
 Add to MetaCart
In this paper we systematically derive randomized algorithms (both sequential and parallel) for sorting and selection from basic principles and fundamental techniques like random sampling. We prove several sampling lemmas which will find independent applications. The new algorithms derived here are the most efficient known. From among other results, we have an efficient algorithm for sequential sorting. The problem of sorting has attracted so much attention because of its vital importance. Sorting with as few comparisons as possible while keeping the storage size minimum is a long standing open problem. This problem is referred to as ‘the minimum storage sorting ’ [10] in the literature. The previously best known minimum storage sorting algorithm is due to Frazer and McKellar [10]. The expected number of comparisons made by this algorithm is n log n + O(n log log n). The algorithm we derive in this paper makes only an expected n log n + O(n ω(n)) number of comparisons, for any function ω(n) that tends to infinity. A variant of this algorithm makes no more than n log n + O(n log log n) comparisons on any input of size n with overwhelming probability. We also prove high probability bounds for several randomized algorithms for which only expected bounds have been proven so far.