https://github.com/bartozzz/mads
Set of TypeScript utility modules for working with mathematics, algorithms and data structures.
https://github.com/bartozzz/mads
algorithms computer-science data-structures mathematics typescript
Last synced: 3 months ago
JSON representation
Set of TypeScript utility modules for working with mathematics, algorithms and data structures.
- Host: GitHub
- URL: https://github.com/bartozzz/mads
- Owner: Bartozzz
- License: mit
- Created: 2019-12-22T01:24:19.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-05T03:30:36.000Z (over 2 years ago)
- Last Synced: 2024-05-02T06:14:03.324Z (about 1 year ago)
- Topics: algorithms, computer-science, data-structures, mathematics, typescript
- Language: TypeScript
- Homepage:
- Size: 2.78 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 101
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# MADS
[](https://lernajs.io/)
[](https://snyk.io/test/github/Bartozzz/mads?targetFile=package.json)
[](https://github.com/Bartozzz/mads/actions)**MADS** (_Mathematics, Algorithms, Data Structures_) is a set of TypeScript utility modules for working with various mathematical functions, algorithms and data structures.
> **Note:** documentation and examples for each package are published in their respective [READMEs](#installation). Please, refer to those resources for installation details and API references.
## Installation
| Package | Version | Dependencies |
| ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| [`mads-constants`](/packages/mads-constants) | [](https://www.npmjs.com/package/mads-constants) | [](https://www.npmjs.com/package/mads-constants) |
| [`mads-coordinates`](/packages/mads-coordinates) | [](https://www.npmjs.com/package/mads-coordinates) | [](https://www.npmjs.com/package/mads-coordinates) |
| [`mads-easing`](/packages/mads-easing) | [](https://www.npmjs.com/package/mads-easing) | [](https://www.npmjs.com/package/mads-easing) |
| [`mads-graph`](/packages/mads-graph) | [](https://www.npmjs.com/package/mads-graph) | [](https://www.npmjs.com/package/mads-graph) |
| [`mads-utils`](/packages/mads-utils) | [](https://www.npmjs.com/package/mads-utils) | [](https://www.npmjs.com/package/mads-utils) |
| [`mads-vec2`](/packages/mads-vec2) | [](https://www.npmjs.com/package/mads-vec2) | [](https://www.npmjs.com/package/mads-vec2) |
| [`mads-vec3`](/packages/mads-vec3) | [](https://www.npmjs.com/package/mads-vec3) | [](https://www.npmjs.com/package/mads-vec3) |
| [`mads-queue`](/packages/mads-queue) | [](https://www.npmjs.com/package/mads-queue) | [](https://www.npmjs.com/package/mads-queue) |
| [`mads-stack`](/packages/mads-stack) | [](https://www.npmjs.com/package/mads-stack) | [](https://www.npmjs.com/package/mads-stack) |
| [`mads-heap`](/packages/mads-heap) | [](https://www.npmjs.com/package/mads-heap) | [](https://www.npmjs.com/package/mads-heap) |
| |## Contributing
### Development
We have prepared multiple commands to help you develop `mads` on your own. You will need a local copy of [Node.js](https://nodejs.org/en/) installed on your machine. Then, follow the steps bellow:
1. Install [`lerna`](https://github.com/lerna/lerna) globally:
```bash
$ npm install -g lerna
```2. Install project dependencies:
```bash
$ npm install
```3. Install packages dependencies and link them together:
```bash
$ npm run bootstrap
```#### Usage
```bash
$ npm run
```#### List of commands
| Command | Description |
| :---------- | :------------------------------------------------------------ |
| `bootstrap` | Links local packages together and install their dependencies. |
| `build` | Builds all packages. |
| `docs` | Builds documentation for all packages. |
| `start` | Starts tests in watch mode for all packages. |
| `test` | Alias for `npm run test:unit` and `npm run test:lint`. |
| `test:unit` | Starts units tests for all packages. |
| `test:lint` | Starts linters for all packages. |### Scaffolding
We use [Hygen](https://www.hygen.io/) to create new ready-to-develop packages for MADS. If you want to automatically create a new package, run the following command and follow the prompt tips:
```bash
$ npx hygen package new
```### License
**MADS** was created and developed by [Bartosz Łaniewski](https://github.com/Bartozzz). The full list of contributors can be found [here](https://github.com/Bartozzz/mads/graphs/contributors). Each package is [MIT licensed](https://github.com/Bartozzz/mads/blob/master/LICENSE), except for packages that provide a different LICENSE file.
### Bug reporting
[](https://github.com/Bartozzz/mads/issues)
[](https://github.com/Bartozzz/mads/issues?q=is%3Aissue+is%3Aclosed)
[](https://github.com/Bartozzz/mads/pulls)**We want contributing to MADS to be fun, enjoyable, and educational for anyone, and everyone.** Changes and improvements are more than welcome! Feel free to fork and open a pull request. If you have found any issues, please [report them here](https://github.com/project-inra/Bartozzz/mads/new) - they are being tracked on [GitHub Issues](https://github.com/Bartozzz/mads/issues).