Git Product home page Git Product logo

symplex's Introduction

A Symbolic CAS that operates directly on Javascript and Python code.

Features

Allows users to highlight blocks of math code and right-click to symbolically integrate, diff, limit, solve, series, and more!

Extremum Demo

Enables beautiful code-to-LaTeX conversion via the latex() and unevaluated Integral and Derivative functions.

LaTeX Demo

Requirements

Symplex requires that Python and SymPy are installed. SymPy can be installed with pip install SymPy.

Known Issues

  • Javascript parsing is somewhat fragile, this is due for a major refactor to better accomodate for the inconsistences in the nodegraph sourceFile output.
  • Only variable assignment and basic arithmetic/trigonometric operations on real numbers are supported. No for-Loops, control-statements, etc.

Adding new languages

To add a new language:

  • Implement the conversion of a block of that language's code to a SymPy string (convertToSympy()) inside a new *LANGUAGE*Support.ts file.
  • Throughout extension.ts, add a new case for your language's identifier, calling your convertToSympy() function.
  • In python/symplex.py, add a case for your language's conversion (SymPy supports codegen in many languages already, so check to see if it's already there).
  • Add it to the package.json as well and Test it by building the extension with F5!

Future Work

Add support for

Release Notes

0.0.4 - Add Snippets

Group all Symplex functionality underneath the symplex.Evaluate command. Add snippets which document a few of the SymPy features that Symplex exposes. Also make Python parsing slightly more robust.

0.0.3 - Major Refactor

Allow writing of arbitrary SymPy operations, encapsulate adding support for new languages, and add LaTeX output!

0.0.2 - Python Support

Since SymPy operates natively in Python syntax, it was straight-forward to add basic Python support.

0.0.1 - Proof of Concept

Have proven that the typescript AST tree can be transformed into a SymPy compatible format, and that Python scripts can be invoked to perform arbitrary work for the editor at low-latencies. The infrastructure is ready for massive expansion in capability, once the right UI affordances are found and the Javascript/Typescript parsing code is improved.

symplex's People

Contributors

dependabot[bot] avatar zalo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

jselstad

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.