;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages datastructures) #:use-module (gnu packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu)) (define-public gdsl (package (name "gdsl") (version "1.8") (source (origin (method url-fetch) (uri (string-append "http://download.gna.org/gdsl/" "gdsl-" version ".tar.gz")) (sha256 (base32 "1v64jvlnj8jfpphphgjgb36p0kv50kwfyqncf0y12f16v8ydyiaw")))) (build-system gnu-build-system) (home-page "http://home.gna.org/gdsl/") (synopsis "Generic data structures library") (description "The Generic Data Structures Library (GDSL) is a collection of routines for generic data structures manipulation. It is a re-entrant library fully written from scratch in pure ANSI C. It is designed to offer for C programmers common data structures with powerful algorithms, and hidden implementation. Available structures are lists, queues, stacks, hash tables, binary trees, binary search trees, red-black trees, 2D arrays, permutations and heaps.") (license license:gpl2+))) (define-public sparsehash (package (name "sparsehash") (version "2.0.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/sparsehash/sparsehash/" "archive/sparsehash-" version ".tar.gz")) (sha256 (base32 "133szz0ldwch0kd91l0sa57qsnl020njn622szd9cxrjqyjqds85")))) (build-system gnu-build-system) (synopsis "Memory-efficient hashtable implementations") (description "This library contains several hash-map implementations, similar in API to SGI's @code{hash_map} class, but with different performance characteristics. @code{sparse_hash_map} uses very little space overhead, 1-2 bits per entry. @code{dense_hash_map} is very fast, particulary on lookup. @code{sparse_hash_set} and @code{dense_hash_set} are the set versions of these routines. All these implementation use a hashtable with internal quadratic probing. This method is space-efficient -- there is no pointer overhead -- and time-efficient for good hash functions.") (home-page "https://github.com/sparsehash/sparsehash") (license license:bsd-3)))