Hinted Dictionaries: Efficient Functional Ordered Sets and Maps

06/09/2022
by   Amir Shaikhha, et al.
0

This article introduces hinted dictionaries for expressing efficient ordered sets and maps functionally. As opposed to the traditional ordered dictionaries with logarithmic operations, hinted dictionaries can achieve better performance by using cursor-like objects referred to as hints. Hinted dictionaries unify the interfaces of imperative ordered dictionaries (e.g., C++ maps) and functional ones (e.g., Adams' sets). We show that such dictionaries can use sorted arrays, unbalanced trees, and balanced trees as their underlying representations. Throughout the article, we use Scala to present the different components of hinted dictionaries. We also provide a C++ implementation to evaluate the effectiveness of hinted dictionaries. Hinted dictionaries provide superior performance for set-set operations in comparison with the standard library of C++. Also, they show a competitive performance in comparison with the SciPy library for sparse vector operations.

READ FULL TEXT

page 7

page 8

page 14

page 18

page 19

page 20

page 22

page 24

research
01/03/2019

Mergeable Dictionaries With Shifts

We revisit the mergeable dictionaries with shift problem, where the goal...
research
12/20/2020

Achieving positive rates with predetermined dictionaries

In the first part of the paper we consider binary input channels that ar...
research
02/26/2020

Simpler handling of clinical concepts in R with clinconcept

Routinely collected data in electronic healthcare records are often unde...
research
09/22/2020

A word recurrence based algorithm to extract genomic dictionaries

Genomes may be analyzed from an information viewpoint as very long strin...
research
04/12/2022

PaC-trees: Supporting Parallel and Compressed Purely-Functional Collections

Many modern programming languages are shifting toward a functional style...
research
03/07/2016

Optimal dictionary for least squares representation

Dictionaries are collections of vectors used for representations of rand...
research
06/16/2021

mPyPl: Python Monadic Pipeline Library for Complex Functional Data Processing

In this paper, we present a new Python library called mPyPl, which is in...

Please sign up or login with your details

Forgot password? Click here to reset