Giter Site home page Giter Site logo

emtee40 / symja_android_library Goto Github PK

View Code? Open in Web Editor NEW

This project forked from axkr/symja_android_library

0.0 0.0 0.0 123.25 MB

Symja - Java computer algebra and symbolic math library. Differentiation, integration, equation solving, polynomial factorization and linear algebra functions.

Home Page: http://matheclipse.org/

License: GNU General Public License v3.0

Mathematica 16.87% MATLAB 8.60% Jupyter Notebook 0.03% Java 74.34% HTML 0.02% XSLT 0.10% Mercury 0.01% M 0.03% Forth 0.01% Batchfile 0.01%

symja_android_library's Introduction

Symja Library - Java Symbolic Math System

Note: this repository contains the Java 8 version of the project. The NCalc and Natural Calc projects maintains a Java 7 branch based on Retrolambda.

Use especially the "2nd" button in the following calculator interfaces:

Google Play App Store

Quick start

Read the Symja Manual for the description of the Symja language. We encourage everyone to participate in our Wiki.

Join the chat at https://gitter.im/symja_android_library/Lobby

Features

Features of the Symja language:

Demos

Examples

To get an idea of the kinds of expressions Symja handles, see the tests in this file.

Console Examples

>>> 24/60
2/5

>>> N(24/60)
0.4

>>> sin(30*degree)
1/2

>>> sin(pi/2)
1

>>> a+a+4*b^2+3*b^2
2*a+7*b^2

>>> solve({x^2-11==y, x+y==-9}, {x,y})
{{x->-2,y->-7},{x->1,y->-10}}

>>> dsolve({y'(x)==y(x)+2,y(0)==1},y(x), x)
{{y(x)->-2+3*E^x}}

>>> integrate(cos(x)^5, x)
-2/3*Sin(x)^3+Sin(x)^5/5+Sin(x)

>>> D(sin(x^3), x)
3*x^2*Cos(x^3)

>>> factor(-1+x^16)
(-1+x)*(1+x)*(1+x^2)*(1+x^4)*(1+x^8)

>>> factor(5+x^12, Modulus->7)
(2+x^3)*(4+x^6)*(5+x^3)

>>> expand((-1+x)*(1+x)*(1+x^2)*(1+x^4)*(1+x^8))
-1+x^16

>>> det({{1,2},{3,4}})
-2

>>> inverse({{1,2},{3,4}})
{{-2,1},
 {3/2,-1/2}}

>>> factorinteger(2^15-5)
{{3,1},{67,1},{163,1}}

>>> refine(abs(n*abs(m)), n<0)
-n*Abs(m)

Maven Usage

Using Maven, add the following to your pom.xml

<dependencies>
  <dependency>
    <groupId>org.matheclipse</groupId>
      <artifactId>matheclipse-core</artifactId>
	  <version>1.0.0-SNAPSHOT</version>
    </dependency>
</dependencies>

<repositories> 
  <repository>
    <id>snapshots-repo</id>
    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    <releases>
      <enabled>false</enabled>
    </releases>
    <snapshots>
      <enabled>true</enabled>
    </snapshots>
  </repository>
</repositories>

and run

mvn clean install

With the following command you can run the Symja console from the command line

mvn exec:java -pl matheclipse-core

With the following command you can run a symja console with a Mathematica-compatible syntax and functions

mvn exec:java@mma -pl matheclipse-core 

With the following command you can build a fat jar which contains all needed classes

mvn assembly:single -pl matheclipse-core

The Excelsior JET Maven Plugin provides Maven users with an easy way to compile their applications down to optimized native Windows, OS X, or Linux executables with Excelsior JET.

mvn jet:build -pl matheclipse-core

Getting started

First, you'll need a Java Development Kit compatible with Java 8 or later.

You can find JDK installers at:

If you're unsure how to install the JDK, you can find instructions for all operating systems here:

Pay careful attention to anything about setting up your PATH or CLASSPATH.

Install and open the latest version of the Eclipse development IDE for Java Developers:

Github GIT

a) Fork the Symja repository to use as a starting point.

  • Navigate to github.com/axkr/symja_android_library in your browser.
  • Click the "Fork" button in the top-right of the page.
  • Once your fork is ready, open the new repository's "Settings" by clicking the link in the menu bar on the left.
  • Change the repository name to the name of your Library and save your changes.

b) Clone your new repository to your Eclipse workspace.

  • Open Eclipse and select the "File -> Import..." menu item.
  • Select "Git -> Projects from Git", and click "Next >".
  • Select "URI" and click "Next >".
  • Enter your repository's clone URL in the "URI" field. The remaining fields in the "Location" and "Connection" groups will get automatically filled in.
  • Enter your Github credentials in the "Authentication" group, and click "Next >".
  • Select the master branch on the next screen, and click "Next >".
  • The default settings on the "Local Configuration" screen should work fine, click "Next >".
  • Make sure "Import existing projects" is selected, and click "Next >".
  • Eclipse should find and select the symja_android_library automatically, click "Finish".

See this Git version control with Eclipse (EGit) - Tutorial for a general overview.

Contact

If you have any questions about using or developing for this project, send me an email!

License

  • the complete Symja system is published under the GNU GENERAL PUBLIC LICENSE Version 3.

If you would like to use parts of the system here are some of the associated licenses:

  • the JAS Java Algebra System is published under the (LESSER) GNU GENERAL PUBLIC LICENSE licence. The Java bytecode is dual licenced also under the Apache 2.0 licence to allow usage in Android projects.
  • the apfloat project is published under the (LESSER) GNU GENERAL PUBLIC LICENSE licence.
  • the LogicNG project is published under the Apache software licence
  • the Hipparchus Mathematics Library is published under the Apache software licence
  • the Symja parser libraries (org.matheclipse.parser* packages) are published under the APACHE LICENSE Version 2.0.

symja_android_library's People

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.