# SciDart

**SciDart** is a experimental cross-platform scientific library for Dart.

## Goals

The main goal of **SciDart** is run where Dart can run, in other words, run on Flutter, Dart CLI, Dart web, etc.

## Motivation

Some time ago I tried make a guitar tuner (frequency estimator) with Flutter and I faced with the problem: Dart didn't have a unified scientific library. So, I tried implement something to help me and the community with this problem.

## PUB link

Link to the Pub repository: https://pub.dev/packages/scidart

## Installation

You can follow instruction in the Pub web site: https://pub.dev/packages/scidart#-installing-tab-

## Examples

The examples can be found in the project web site.

## How to contribute

I recommend see the Todo List and choose a task or choose and solve a problem with **SciDart** and
implement the missing parts.

The references values for all function was obtained with SciPy. The contributions need use SciPy as reference too.

Every contribution needs have tests, documentation and examples, otherwise, the pull request will be blocked.

## Todo list

### Benchmarks

### Code implementations

`x`

complex numbers algebra`x`

polyfit`x`

documentation with examples`x`

function to time the execution of a process`x`

circular convolution`x`

convolution`x`

random`x`

separate fast math`x`

test fast math`x`

refactor array, array2d, arrayComplex, Complex class to be more functional`x`

write matrix operations tests`x`

implement determinant calculation`x`

integration and derivation`x`

filter FIR`x`

dbConverters`x`

write some examples: simples uses, frequency estimator`x`

write readme`x`

publish package`x`

show to the community