SciDart is a experimental cross-platform scientific library for Dart.
The main goal of SciDart is run where Dart can run, in other words, run on Flutter, Dart CLI, Dart web, etc.
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.
Link to the Pub repository: https://pub.dev/packages/scidart
You can follow instruction in the Pub web site: https://pub.dev/packages/scidart#-installing-tab-
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.
- construct codes for benchmark tests
- made benchmark for Android devices
- made benchmark for iOS devices
- made benchmark on Web
- made benchmark on Linux
- made benchmark on MacOS
- made benchmark on MS Windows
- complex numbers algebra
- documentation with examples
- function to time the execution of a process
- circular convolution
- separate fast math
- test fast math
- refactor array, array2d, arrayComplex, Complex class to be more functional
- write matrix operations tests
- implement determinant calculation
- integration and derivation
- filter FIR
- write some examples: simples uses, frequency estimator
- write readme
- write other examples: step counter, FM modulation, AM modulation;
- filter IIR
- generate a plot in memory (delegated to https://stackoverflow.com/questions/43703802/flutter-draw-graphs-on-the-screen)
- logSpace (https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.logspace.html)
- write a REPL to interact with the lib (Need support Dart SDK > 2 : https://medium.com/dartlang/dart-repl-poc-f327e3769b6f)
- publish package
- show to the community