The Typescript Math Toolkit Needs You!
I’m going to try to provide weekly (or at least bi-monthly) updates for the Typescript Math Toolkit (TSMT) project. I’m insanely busy right now and don’t expect things to clear up much at least until the end of Feb. So, expect things to be a bit slow for the next few weeks.
I’ve already setup a private GitHub repository and have pretty much decided on Apache 2 for the license. Library methods will probably be prefixed with TSMT or TSMT:: to help alleviate name conflicts with other libraries that contain similar classes (Matrix, for example).
The library is going to need a completely new demo framework. The original JS code and demos were written in handcoded ES5 and ReactJS. This made module management and browser-based demos very easy. Since the JS Math Toolkit was originally intended to be a private library, I only had to expend enough effort to assure myself that something worked. So, the internal structure of existing demos is pretty sloppy.
There are three types of demo/test program for each class in the library. The first is the traditional ‘exercise a method with this data and expect this result’ type of test. Think Jasmine. I like those
Many of the methods are intended for use in a highly interactive environment and are demonstrated using Canvas and the EaselJS library. Some work with Canvas coordinates and others with real coordinates, i.e. a graphing environment with x- and y-axes that cover a prescribed range.
In order to facilitate development of the Angular 2 demos, I plan to port the function graphing engine first. The function parser may be independently unit-tested in a traditional framework and the graphing engine may be used as a core Component in visual, interactive demos requiring real coordinates.
Since the Function Graphing engine relies on the independent Axis and GraphAxis classes, it should be easy for me to create the next packaged Component, the zoomable/pannable NumberLine.
The next effort will be porting the spline library and any required utility classes. I have a very nice spline-based data visualization demo that would make a great packaged Angular 2 Component and serve as a marquee demo for the library.
In parallel, I’m hoping to find a team member who can take over the statistics and data analysis sections of the library. I was too hasty in creating the various statistical functions, Normal, Poisson, Chi2, etc. and did a bit too much copy-and-paste. The various special functions (beta, gamma, inverse beta, log-gamma, etc, blah, blah) need to be broken out into a special functions class in the Math package.
Speaking of team members, I’m still trying to solidify a team to work on both a minimal amount of library development and a lot of testing/demos. Most of this is helping decide on the new Angular 2 demo framework and convert existing tests/demos into the new framework whenever new library methods are completed. In a lot of cases, I will create the demo in order to test new functionality, and your work will be to ensure the demo is properly coded, suitably documented, and uncover the bugs that I miss
If you have a stats/data analysis background, I’d like to hear from you. If you have a background in an area not yet represented in the library such as signal/image processing, PLEASE contact me. The email is theAlgorithmist [at] gmail [dot] com.
The Typescript Math Toolkit needs you!