https://github.com/vigna/dsiutils
  
  
    The DSI Utilities are a mishmash of classes accumulated during the last twenty years in projects developed at the DSI (Dipartimento di Scienze dell'Informazione, i.e., Information Sciences Department), now DI (Dipartimento di Informatica, i.e., Informatics Department), of the Università degli Studi di Milano. 
    https://github.com/vigna/dsiutils
  
data-structures java mutable-strings pseudorandom-number-generator
        Last synced: 4 months ago 
        JSON representation
    
The DSI Utilities are a mishmash of classes accumulated during the last twenty years in projects developed at the DSI (Dipartimento di Scienze dell'Informazione, i.e., Information Sciences Department), now DI (Dipartimento di Informatica, i.e., Informatics Department), of the Università degli Studi di Milano.
- Host: GitHub
- URL: https://github.com/vigna/dsiutils
- Owner: vigna
- License: lgpl-2.1
- Created: 2021-01-06T10:25:49.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-05-31T04:36:37.000Z (5 months ago)
- Last Synced: 2025-06-02T18:14:33.541Z (5 months ago)
- Topics: data-structures, java, mutable-strings, pseudorandom-number-generator
- Language: Java
- Homepage: http://dsiutils.di.unimi.it/
- Size: 20.3 MB
- Stars: 34
- Watchers: 3
- Forks: 10
- Open Issues: 2
- 
            Metadata Files:
            - Readme: README.md
- Changelog: CHANGES
- License: COPYING.LESSER
 
Awesome Lists containing this project
README
          # Welcome to the DSI Utilities!
## Introduction
The DSI utilities are a mishmash of classes accumulated during the last
twenty years in projects developed at the DSI (Dipartimento di Scienze
dell'Informazione, e.g., Information Sciences Department), now DI
(Dipartimento di Informatica, i.e., Informatics Department), of the
Università degli Studi di Milano.
The DSI utilities are free software distributed under either the [GNU
Lesser General Public License
2.1+](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html) or the
[Apache Software License 2.0](https://www.apache.org/licenses/LICENSE-2.0).
## Building
You need [Ant](https://ant.apache.org/) and [Ivy](https://ant.apache.org/ivy/).
Then, run `ant ivy-setupjars jar`.
## Papers
* A [paper](http://vigna.di.unimi.it/papers.php#BoVMSJ) about the
  high-performance reimplementation of strings provided by the versatile
  class
  [`MutableString`](https://github.com/vigna/dsiutils/blob/master/src/it/unimi/dsi/lang/MutableString.java),
  and _compact approximators_, the randomized data structure used in
  [`TextPattern`](https://github.com/vigna/dsiutils/blob/master/src/it/unimi/dsi/util/TextPattern.java)
  to represent bad-character shifts.
* A [paper](http://vigna.di.unimi.it/papers.php#VigBIRSQ) about the
  broadword implementation of select queries implemented in
  [`Fast.select()`](https://github.com/vigna/dsiutils/blob/master/src/it/unimi/dsi/bits/Fast.java).
* Papers about the [pseudorandom number
  generators](http://prng.di.unimi.it/) included can be found
  [here](http://vigna.di.unimi.it/papers.php).