crystalg

Version, currently 0.1.01 version
  • 0.1.0latestJul 12, 2020

github.com/tobyapi/crystalg

Algorithm Library for Crystal

38 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  crystalg:
    github: tobyapi/crystalg
    version: ~> 0.1.0

Then run:

shards install

shard.yml

Crystal
0.35.0
License
MIT
Author
tobias <landofscala@gmail.com>

Dependencies

This version declares no dependencies.

Documentation

Read the API documentation

Generated from the source of the current release. The first visit to a release that has never been documented starts its build.

README

[![GitHub release](https://img.shields.io/github/release/TobiasGSmollett/crystalg.svg)](https://github.com/TobiasGSmollett/crystalg/releases)



# Crystalg

A generic algorithm library for crystal-lang.

## Installation

Clone repository manually:

```sh
$ git clone https://github.com/TobiasGSmollett/crystalg && cd crystalg/
```

Or add this to your application's `shard.yml`:

```yaml
dependencies:
  crystalg:
    github: TobiasGSmollett/crystalg
```

## Usage

The fastest way to try it is by using Crystal Playground (`crystal play`):

```crystal
require "./crystalg"

include Crystalg::Strings

input = "mississippi"
hash = RollingHash.new input
hash.count("issi") # => 2
```

## Development

crystal spec

## To Do
* Graph
  * Minimum-Cost Arborescence
  * Strongly Connected Components
  * Flow Alogorithm
    * Minimum Cost Flow
* Data Structure
  * Red Black Tree
  * Link-Cut Tree
* String Algorithm
  * Suffix Automaton
* Computational Geometry
  * Closest Pair
  * Segment Intersections
  * Tangent to a Circle
  * Common Tangent
  * Intersection of a Circle and a Polygon

## Contributing

1. Fork it ( https://github.com/TobiasGSmollett/crystalg/fork )
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create a new Pull Request

## Contributors

- [TobiasGSmollett](https://github.com/TobiasGSmollett) tobias - creator, maintainer