Performance Comparison of Several Folding Strategies

From LRDE

Abstract

In this article we examine the computation order and consequent performance of three different conceptual implementations of the fold function. We explore a set of performance based experiments on different implementations of this function. In particular, we contrast the fold-left implementation with two other implements we refer to as pair-wise-fold and tree-like-fold. We explore two application areas: ratio arithmetic and Binary Decisions Diagram construction. We demonstrate several cases where the performance of certain algorithms is very different depending on the approach taken. In particular iterative computations where the object size accumulates are good candidates for the tree-like-fold.


Bibtex (lrde.bib)

@InProceedings{	  newton.20.tfp,
  author	= {Jim Newton},
  title		= {Performance Comparison of Several Folding Strategies},
  booktitle	= {Trends in Functional Programming},
  year		= 2020,
  note		= submitted,
  address	= {Krak{\'o}w, Poland},
  month		= feb,
  abstract	= {In this article we examine the computation order and
		  consequent performance of three different conceptual
		  implementations of the fold function. We explore a set of
		  performance based experiments on different implementations
		  of this function. In particular, we contrast the fold-left
		  implementation with two other implements we refer to as
		  pair-wise-fold and tree-like-fold. We explore two
		  application areas: ratio arithmetic and Binary Decisions
		  Diagram construction. We demonstrate several cases where
		  the performance of certain algorithms is very different
		  depending on the approach taken. In particular iterative
		  computations where the object size accumulates are good
		  candidates for the tree-like-fold.}
}