Giter VIP home page Giter VIP logo

little's Introduction

#Little

An arbitrary precision calculator in JavaScript

##Quote of the day

The most important early product on the way to developing a good product is an imperfect version. Freebsd Fortunes 6: 847 of 2171

##Author(s) Christoph Zurnieden [email protected]

##Installation

$ git clone https://github.com/czurnieden/Little.git
$ cd Little
$ npm install -g*

There is nothing to install yet, we are just starting; the slate is completely empty and clean.

##Usage

Just load the library in node or any other ECMA-script 5.1 able interpreter and play around with it.

##Versions 0.0.0 Reserved Name by starting a Github project. As if somebody else uses a qualifier as a program name.

##Directions

  • to make clear to the reader of the sources what the program does and for that goal to reach:
  • put readability over optimizations but give a hint or more of the possible optimization.

Slightly more detailed:

  • It should support all numerical functions in GP/PARI and then some more, for example the common matrix calculations. If there is lifetime left or somebody takes it over
  • symbolic calculations should be added, too.

So, what is planed for now? A most probably very incomplete list but a good start follows. (A lot of it already exists in an old JavaScript library of the author, flagged here with an italic done in old lib)

  • A language, optimized for numerical algorithms, the sentence above about optimizations holds here, too!
  • Data types, all of which are needed but not more. Especially
    • Numbers
      • Real numbers done in old lib
      • Complex numbers (when the domain of a functions allows for it, every function must accept at least complex numbers) done in old lib
      • Rationals done in old lib
      • Big integers (we will take Tom Wu's lib, so: partially done)
      • Big reals
      • Big rationals
      • Continued fractions (partially done)
      • Quadratic numbers (also known as Surds)
      • Quaternions done in old lib
      • REDC
    • Other typed data types
      • Matrices done in old lib
      • Vectors vid. Matrices
      • Bitsets done in old lib
      • Polynomials done in old lib
    • Untyped or if you will loose, data storage
      • List, a general list easily traversed (ECMA Array)
      • Set, a list, sorted and unique to do some set-theoretical stuff done in old lib
      • Hashtable, a list of key-value pairs (ECMA Object and/or JSON)
  • All data-types must be able to use all operators and comparing methods, if applicable. done in old lib
  • All data-types must be able to use all functions, if applicable. done in old lib

##The Name?

This program is named after Joyce Currie Little.

##Why?

The main author wanted to write a more elaborated example of Flex/Bison than the example program mcalc. Although quite useful for students to start, it is nothing complete and useful on its own. He (it is quite awkward to write in the third person if you are the one you are talking about ;-) ) tried to make use of Libtommath which also has a basic library for floating point arithmetic.

Then he found out that JISON is able to parse Flex/Bison scripts, too and already in possession of a large library of numerical functions written in JavaScript, it was an easy decision to use JISON instead of Flex/Bison.

A lot of things have been implemented already, you might take a look at his fork of libtommath.

##Why not? GP/PARI has already been ported to Android, so no actual usability except some pedagogical ones.

little's People

Contributors

czurnieden avatar

Watchers

 avatar  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.