GithubHelp home page GithubHelp logo

lukaiser / numeric Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kcmckell/numeric

0.0 0.0 0.0 2.41 MB

Numerical analysis in Javascript

Home Page: http://www.numericjs.com/

License: Other

HTML 7.51% PHP 1.09% JavaScript 90.06% CSS 0.39% Shell 0.44% Python 0.51%

numeric's Introduction

This is a fork of Numeric Javascript by Sébastien Loisel.

Changes

Notable changes compared with numeric-1.2.6.js

  • numeric.jacobi(A, maxiter), that diagonalizes symmetric real matrices (real hermitian). No problems with repeated eigenvalues/symmetry.

  • numeric.eigh(A, maxiter), mirrors numeric.jacobi.

  • numeric.jacobinorm(A), helper for numeric.jacobi, computes the weight in the upper triangular part of a square matrix.

  • extra iterative solvers:

    • numeric.ccsMV(A, x), CCS matrix mul dense vector helper

    • numeric.bicgstab(A, b, maxIters, residue), BICGSTAB algorithm

    • numeric.cg(A, b, maxIters, residue), conjugate gradient (CG) solver. Supports both full matrix and sparse matrix.

    • numeric.sor(A, b, relax, maxIters, residue), SOR solver. The performance of the SOR solver is not as good as CG and BiCGSTAB, but similar to ccsLUPSolve. In practice, CG and BiCGSTAB should always be the best options.

    • numeric.newtonSolve(F, A, x), Newton solver. Ported from GSL(GNU Scientific Library)'s globally convergent Newton method (gsl-1.15\multiroots\gnewton.c). This Newton solver has been successfully used to implement a simple geometric constraint solver in project Rena (https://github.com/kaige/Rena).

    • numeric.uniroot(func, lowerLimit, upperLimit, errorTol, maxIter), search the interval from lowerLimit to upperLimit for a root (i.e., zero) of the function func with respect to its first argument using Brent's method root-finding algorithm.

  • numeric.logspace(), another fill routine akin to numeric.linspace() but now for logarithmic space fills.

  • numeric.zeros(), numeric.ones(), numeric.empty(), numeric.range(): methods to fill a vector or Array with fixed values.

  • numeric.roll(), numeric.flip(), numeric.fliplr(), numeric.flipud(), numeric.rot90(): methods to flip/rotate Arrays (matrices).

  • numeric.kron(x, y), Kronecker's method applied to a matrix.

  • numeric.ccsDiag(diag), numeric.ccsTranspose(A): numeric.ccsScatter helpers

  • numeric.pi, numeric.e: high precision math constants

  • CSV I/O bugfixes

Introduction

Numeric Javascript is a javascript library for doing numerical analysis in the browser. Because Numeric Javascript uses only the javascript programming language, it works in many browsers and does not require powerful servers.

Numeric Javascript is for building "web 2.0" apps that can perform complex calculations in the browser and thus avoid the latency of asking a server to compute something. Indeed, you do not need a powerful server (or any server at all) since your web app will perform all its calculations in the client.

The original website, see http://www.numericjs.com/ Discussion forum: http://groups.google.com/group/numericjs

License

Numeric Javascript is copyright by Sébastien Loisel and is distributed under the MIT license. Details are found in the license.txt file.

Dependencies

There are no dependencies for numeric.js.

Subdirectories

Here are some of the subdirectories and their contents:

  • / holds the html/php files for the workshop/web site, license.txt, README, etc...

  • /src holds the source files. The .js files are concatenated together to produce lib/numeric.js

  • /lib holds numeric.js and numeric-min.js. These files aren't checked into the git tree because they are created from the files in the /src subdirectory.

  • /resources holds some small images, css files, etc...

  • /tools contains build/test scripts. If you're going to patch or otherwise make tweaks to numeric, you will need to use the /tools/build.sh script. There are also a bunch of scripts to deploy to the numericjs.com web site, which you probably won't need.

Building and testing

If you tweak the code, you can build and test the library by running the script /tools/build.sh.

numeric's People

Contributors

dantswain avatar gagern avatar georglind avatar gerhobbelt avatar gibito avatar jwmerrill avatar kaige avatar kcmckell avatar mlehman avatar phg1024 avatar sloisel avatar victorsosa avatar wojciechwasko avatar xiphias avatar xizhonghua avatar yuzeh avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.