Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/poyters/stella
Elixir library providing implementations of the most famous algorithms, data structures and math functions
https://github.com/poyters/stella
algorithm algorithms data-structures datastructures elixir elixir-lang math
Last synced: about 2 hours ago
JSON representation
Elixir library providing implementations of the most famous algorithms, data structures and math functions
- Host: GitHub
- URL: https://github.com/poyters/stella
- Owner: Poyters
- Created: 2020-08-04T21:46:22.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-02-23T21:39:10.000Z (9 months ago)
- Last Synced: 2024-04-24T08:27:28.503Z (7 months ago)
- Topics: algorithm, algorithms, data-structures, datastructures, elixir, elixir-lang, math
- Language: Elixir
- Homepage:
- Size: 880 KB
- Stars: 12
- Watchers: 3
- Forks: 1
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Stella
Rapid Elixir library providing implementations of the most famous algorithms, data structures and math functions. Key features of this library are:
- a high test coverage (near to 100%)
- good quality documentation with examples of usage to each function
- featured complexity of each action## Installation
The package can be installed by adding `stella` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:stella, "~> 0.7.1"}
]
end
```Link to hex package: https://hex.pm/packages/stella
## Documentation
Generated with ExDoc: https://hexdocs.pm/stella/Stella.html
## Content of version 0.7.1
### Math
- [x] Cartesian
- [x] Easing functions
- [x] Isometric
- [x] Common number operations like clamp, nearly equal, is power etc
- [x] Time converter (hms, sec, ms etc)
- [x] Vector 2D
- [x] Vector 3D
- [x] Ackermann function
- [x] Fibonacci sequence
- [x] Math intervals### Algorithms
- [x] Quick sort
- [x] Counting sort
- [x] Insertion sort
- [x] Binary search
- [x] Bubble sort### Data structures
- [x] Queue
- [x] Stack
- [x] Priority queue
- [x] Struct, converting a nested Struct to a nested Map
- [x] Heap with heapsort## Contributing
We appreciate any contribution to `Stella`. You will need to have installed the newest versions of Elixir and Erlang at your machine. Then, follow the steps bellow:
1. Install project dependencies
```bash
$ mix deps.get
```2. Watch tests
```bash
$ mix test.watch
```