Jump to content

Comparison of numerical-analysis software: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
General: added Nial
Tags: Reverted Visual edit
Language features: new column: plotting mechanics
Tags: Reverted Visual edit
Line 787: Line 787:
! Can call code in other languages
! Can call code in other languages
! Can be called from other languages
! Can be called from other languages
!Plotting: built-in or via library import statement or by calling external program
|-
|-
! [[Analytica (software)|Analytica]]
! [[Analytica (software)|Analytica]]
Line 797: Line 798:
|{{yes|}}[[Component Object Model|COM]], [[Microsoft Excel|Excel]]
|{{yes|}}[[Component Object Model|COM]], [[Microsoft Excel|Excel]]
|{{yes|}}[[Microsoft Excel|Excel]], [[Component Object Model|COM]], [[.NET Framework|.NET]]
|{{yes|}}[[Microsoft Excel|Excel]], [[Component Object Model|COM]], [[.NET Framework|.NET]]
|
|-
|-
! [[Dyalog APL]]
! [[Dyalog APL]]
Line 807: Line 809:
| {{yes|}}[[Component Object Model|COM]], [[.NET Framework|.NET]], [[Web service|WebServices]], [[Library (computing)|Shared Libraries]], [[Dynamic-link library|DLL]]s, [[NAG Numerical Library|NAG]], [[R (programming language)|R]], [[JavaScript]]<ref name="Dyalog APL Interface Guide">{{cite web|url= http://docs.dyalog.com/13.2/Dyalog%20APL%20Interface%20Guide.pdf|title=Dyalog APL Interface Guide}}</ref>
| {{yes|}}[[Component Object Model|COM]], [[.NET Framework|.NET]], [[Web service|WebServices]], [[Library (computing)|Shared Libraries]], [[Dynamic-link library|DLL]]s, [[NAG Numerical Library|NAG]], [[R (programming language)|R]], [[JavaScript]]<ref name="Dyalog APL Interface Guide">{{cite web|url= http://docs.dyalog.com/13.2/Dyalog%20APL%20Interface%20Guide.pdf|title=Dyalog APL Interface Guide}}</ref>
| {{yes|}}[[Component Object Model|COM]], [[.NET Framework|.NET]], [[Web service|WebServices]]<ref name="Dyalog APL Interface Guide"/>
| {{yes|}}[[Component Object Model|COM]], [[.NET Framework|.NET]], [[Web service|WebServices]]<ref name="Dyalog APL Interface Guide"/>
|
|-
|-
! [[GNU Data Language]]
! [[GNU Data Language]]
Line 817: Line 820:
|{{yes|}}[[C (programming language)|C]], [[Python (programming language)|Python]]
|{{yes|}}[[C (programming language)|C]], [[Python (programming language)|Python]]
|{{yes|}}[[Python (programming language)|Python]]
|{{yes|}}[[Python (programming language)|Python]]
|
|-
|-
! [[MCSim|GNU MCSim]]
! [[MCSim|GNU MCSim]]
Line 827: Line 831:
|{{yes|}}[[C (programming language)|C]]
|{{yes|}}[[C (programming language)|C]]
|{{yes|}}[[R (programming language)|R]]
|{{yes|}}[[R (programming language)|R]]
|
|-
|-
! [[GNU Octave]]
! [[GNU Octave]]
Line 837: Line 842:
| {{Depends|}}[[C (programming language)|C]], [[C++]], [[Fortran]],<ref>{{cite web|url=http://wiki.octave.org/wiki.pl?OctaveFortran|title=Octave Wiki: OctaveFortran|access-date=18 May 2011|archive-url=https://archive.today/20120717143057/http://wiki.octave.org/wiki.pl?OctaveFortran|archive-date=July 17, 2012|url-status=dead}}</ref> [[Perl]],<ref name="OctavePerl"/> [[Python (programming language)|Python]], [[Tcl]]<ref>{{cite web|url=http://wiki.octave.org/wiki.pl?OctaveTcl|title=Octave Wiki: OctaveTcl|access-date=18 May 2011|archive-url=https://archive.today/20120717082040/http://wiki.octave.org/wiki.pl?OctaveTcl|archive-date=July 17, 2012|url-status=dead}}</ref>
| {{Depends|}}[[C (programming language)|C]], [[C++]], [[Fortran]],<ref>{{cite web|url=http://wiki.octave.org/wiki.pl?OctaveFortran|title=Octave Wiki: OctaveFortran|access-date=18 May 2011|archive-url=https://archive.today/20120717143057/http://wiki.octave.org/wiki.pl?OctaveFortran|archive-date=July 17, 2012|url-status=dead}}</ref> [[Perl]],<ref name="OctavePerl"/> [[Python (programming language)|Python]], [[Tcl]]<ref>{{cite web|url=http://wiki.octave.org/wiki.pl?OctaveTcl|title=Octave Wiki: OctaveTcl|access-date=18 May 2011|archive-url=https://archive.today/20120717082040/http://wiki.octave.org/wiki.pl?OctaveTcl|archive-date=July 17, 2012|url-status=dead}}</ref>
| {{Depends|}}[[Java (programming language)|Java]],<ref>{{cite web|url=http://wiki.octave.org/Main_Page |title=Octave Wiki: OctaveJava|access-date=18 May 2011}}</ref> [[Perl]],<ref name="OctavePerl">{{cite web|url=http://wiki.octave.org/wiki.pl?OctavePerl|title=Octave Wiki: OctavePerl|access-date=18 May 2011|archive-url=https://archive.today/20051222175249/http://wiki.octave.org/wiki.pl?OctavePerl|archive-date=December 22, 2005|url-status=dead}}</ref> [[C (programming language)|C]], [[C++]],<ref>{{cite web|url=http://wiki.octave.org/wiki.pl?CategoryExternal|title=Octave Wiki: CategoryExternal|access-date=18 May 2011|archive-url=https://archive.today/20120723080017/http://wiki.octave.org/wiki.pl?CategoryExternal|archive-date=July 23, 2012|url-status=dead}}</ref> [[Python (programming language)|Python]]
| {{Depends|}}[[Java (programming language)|Java]],<ref>{{cite web|url=http://wiki.octave.org/Main_Page |title=Octave Wiki: OctaveJava|access-date=18 May 2011}}</ref> [[Perl]],<ref name="OctavePerl">{{cite web|url=http://wiki.octave.org/wiki.pl?OctavePerl|title=Octave Wiki: OctavePerl|access-date=18 May 2011|archive-url=https://archive.today/20051222175249/http://wiki.octave.org/wiki.pl?OctavePerl|archive-date=December 22, 2005|url-status=dead}}</ref> [[C (programming language)|C]], [[C++]],<ref>{{cite web|url=http://wiki.octave.org/wiki.pl?CategoryExternal|title=Octave Wiki: CategoryExternal|access-date=18 May 2011|archive-url=https://archive.today/20120723080017/http://wiki.octave.org/wiki.pl?CategoryExternal|archive-date=July 23, 2012|url-status=dead}}</ref> [[Python (programming language)|Python]]
|built-in
|-
|-
! [[J (programming language)|J]]
! [[J (programming language)|J]]
Line 847: Line 853:
|{{yes|}}[[JavaScript]]
|{{yes|}}[[JavaScript]]
|{{yes|}}[[JavaScript]]
|{{yes|}}[[JavaScript]]
|
|-
|-
! [[Julia (programming language)|Julia]]
! [[Julia (programming language)|Julia]]
Line 862: Line 869:
|}
|}
| {{yes|}}[[C (programming language)|C]], [[C++]], [[Python (programming language)|Python]], [[R (programming language)|R]]
| {{yes|}}[[C (programming language)|C]], [[C++]], [[Python (programming language)|Python]], [[R (programming language)|R]]
|via import statement
|-
|-
! [[LabVIEW]]
! [[LabVIEW]]
Line 889: Line 897:
|}
|}
|{{Yes}}<ref>{{cite web|url=http://www.ni.com/tutorial/5719/en/|title=Calling LabVIEW VIs from Other Programming Languages|last=National Instruments|author-link=National Instruments|access-date=3 April 2017}}</ref>
|{{Yes}}<ref>{{cite web|url=http://www.ni.com/tutorial/5719/en/|title=Calling LabVIEW VIs from Other Programming Languages|last=National Instruments|author-link=National Instruments|access-date=3 April 2017}}</ref>
|
|-
|-
! [[Maple (software)|Maple]]
! [[Maple (software)|Maple]]
Line 899: Line 908:
|{{yes|}}[[C (programming language)|C]], [[C Sharp (programming language)|C#]], [[Fortran]]
|{{yes|}}[[C (programming language)|C]], [[C Sharp (programming language)|C#]], [[Fortran]]
|{{Depends|}} [[MATLAB]],<ref>{{cite web|url=http://www.maplesoft.com/products/maple/features/feature_detail.aspx?fid=6721|title=MAPLE: MATLAB® Connectivity|access-date=18 May 2011}}</ref> [[Microsoft Excel|Excel]],<ref>{{cite web|url=http://www.maplesoft.com/support/help/Maple/view.aspx?path=Excel|title=Maple and Excel}}</ref> [[Visual Basic]], [[Java (programming language)|Java]], and [[C (programming language)|C]]<ref>{{cite web|url=http://www.maplesoft.com/applications/view.aspx?SID=4666|title=OpenMaple API for VisualBasic and Java|last=Maplesoft|author-link=Maplesoft|access-date=18 May 2011}}</ref>
|{{Depends|}} [[MATLAB]],<ref>{{cite web|url=http://www.maplesoft.com/products/maple/features/feature_detail.aspx?fid=6721|title=MAPLE: MATLAB® Connectivity|access-date=18 May 2011}}</ref> [[Microsoft Excel|Excel]],<ref>{{cite web|url=http://www.maplesoft.com/support/help/Maple/view.aspx?path=Excel|title=Maple and Excel}}</ref> [[Visual Basic]], [[Java (programming language)|Java]], and [[C (programming language)|C]]<ref>{{cite web|url=http://www.maplesoft.com/applications/view.aspx?SID=4666|title=OpenMaple API for VisualBasic and Java|last=Maplesoft|author-link=Maplesoft|access-date=18 May 2011}}</ref>
|
|-
|-
! [[Mathematica]]
! [[Mathematica]]
Line 916: Line 926:
|{{no|}}[[Haskell (programming language)|Haskell]],<ref>[http://hackage.haskell.org/package/mathlink Haskell packages]</ref> [[AppleScript]],<ref>{{Cite web |url=http://www.unisoftwareplus.com/products/mathlinkosax/ |title=Unisoftware plus |access-date=May 19, 2011 |archive-url=https://web.archive.org/web/20110717163309/http://www.unisoftwareplus.com/products/mathlinkosax/ |archive-date=July 17, 2011 |url-status=dead }}</ref> [[Racket (programming language)|Racket]],<ref>[http://www.cs.utah.edu/~czhu/SchemeLink/mrmma.html MrMathematica website]</ref> [[Visual Basic]],<ref>[http://library.wolfram.com/infocenter/TechNotes/4710/ Mathematica for ActivX]</ref> [[Clojure]]<ref>{{cite web |url= http://clojuratica.weebly.com/ |title=Clojuratica |work=clojuratica.weebly.com |year=2013 |access-date=14 June 2013}}</ref> [[MATLAB]]<ref name="mathworks.com">{{cite web|url=http://www.mathworks.com/matlabcentral/fileexchange/6044-mathematica-symbolic-toolbox-for-matlab-version-2-0|title=Mathematica Symbolic Toolbox for MATLAB--Version 2.0|access-date=18 May 2011}}</ref>
|{{no|}}[[Haskell (programming language)|Haskell]],<ref>[http://hackage.haskell.org/package/mathlink Haskell packages]</ref> [[AppleScript]],<ref>{{Cite web |url=http://www.unisoftwareplus.com/products/mathlinkosax/ |title=Unisoftware plus |access-date=May 19, 2011 |archive-url=https://web.archive.org/web/20110717163309/http://www.unisoftwareplus.com/products/mathlinkosax/ |archive-date=July 17, 2011 |url-status=dead }}</ref> [[Racket (programming language)|Racket]],<ref>[http://www.cs.utah.edu/~czhu/SchemeLink/mrmma.html MrMathematica website]</ref> [[Visual Basic]],<ref>[http://library.wolfram.com/infocenter/TechNotes/4710/ Mathematica for ActivX]</ref> [[Clojure]]<ref>{{cite web |url= http://clojuratica.weebly.com/ |title=Clojuratica |work=clojuratica.weebly.com |year=2013 |access-date=14 June 2013}}</ref> [[MATLAB]]<ref name="mathworks.com">{{cite web|url=http://www.mathworks.com/matlabcentral/fileexchange/6044-mathematica-symbolic-toolbox-for-matlab-version-2-0|title=Mathematica Symbolic Toolbox for MATLAB--Version 2.0|access-date=18 May 2011}}</ref>
|}
|}
|
|-
|-
! [[MATLAB]]
! [[MATLAB]]
Line 932: Line 943:


| {{Depends|}}[[.NET Framework|.NET]],<ref>{{cite web|url=http://www.mathworks.com/products/netbuilder/|title=MATLAB Builder NE for Microsoft .NET Framework |last=Mathworks|author-link=Mathworks|access-date=18 May 2011}}</ref> [[Java (programming language)|Java]],<ref>{{cite web|url=http://www.mathworks.com/products/javabuilder/|title=MATLAB Builder JA for Java language |last=Mathworks|author-link=Mathworks|access-date=18 May 2011}}</ref> [[Microsoft Excel|Excel]]<ref>{{cite web|url=http://www.mathworks.com/products/matlabxl/|title=MATLAB Builder EX for Microsoft Excel |access-date=18 May 2011}}</ref>
| {{Depends|}}[[.NET Framework|.NET]],<ref>{{cite web|url=http://www.mathworks.com/products/netbuilder/|title=MATLAB Builder NE for Microsoft .NET Framework |last=Mathworks|author-link=Mathworks|access-date=18 May 2011}}</ref> [[Java (programming language)|Java]],<ref>{{cite web|url=http://www.mathworks.com/products/javabuilder/|title=MATLAB Builder JA for Java language |last=Mathworks|author-link=Mathworks|access-date=18 May 2011}}</ref> [[Microsoft Excel|Excel]]<ref>{{cite web|url=http://www.mathworks.com/products/matlabxl/|title=MATLAB Builder EX for Microsoft Excel |access-date=18 May 2011}}</ref>
|built-in
|-
|-
! [[Maxima (software)|Maxima]]
! [[Maxima (software)|Maxima]]
Line 942: Line 954:
! {{yes|}}[[Common Lisp]]
! {{yes|}}[[Common Lisp]]
! {{yes|}}[[Common Lisp]]
! {{yes|}}[[Common Lisp]]
!
|-
|-
! [[MLAB]]
! [[MLAB]]
Line 952: Line 965:
| {{no}}
| {{no}}
| {{no}}
| {{no}}
|
|-
|-
! [[Perl Data Language|PDL]]
! [[Perl Data Language|PDL]]
Line 962: Line 976:
|{{yes|}}C via perlXS; C, Python, F77, etc. via Inline
|{{yes|}}C via perlXS; C, Python, F77, etc. via Inline
|{{yes|}}Perl, C<ref>{{cite web|url=http://www.perlmonks.org/?node_id=830663|title=Calling Perl from C|access-date=24 January 2013}}</ref>
|{{yes|}}Perl, C<ref>{{cite web|url=http://www.perlmonks.org/?node_id=830663|title=Calling Perl from C|access-date=24 January 2013}}</ref>
|
|-
|-
! [[Python (programming language)|Python]]
! [[Python (programming language)|Python]]
Line 977: Line 992:
| {{yes|}}[[C (programming language)|C]], [[C++]], [[Fortran]], [https://wiki.python.org/moin/IntegratingPythonWithOtherLanguages many others]
| {{yes|}}[[C (programming language)|C]], [[C++]], [[Fortran]], [https://wiki.python.org/moin/IntegratingPythonWithOtherLanguages many others]
| {{yes|}}[[C (programming language)|C]], [[C++]], [[Fortran]], [https://wiki.python.org/moin/IntegratingPythonWithOtherLanguages many others]
| {{yes|}}[[C (programming language)|C]], [[C++]], [[Fortran]], [https://wiki.python.org/moin/IntegratingPythonWithOtherLanguages many others]
|import statement
|-
|-
! [[R (programming language)|R]]
! [[R (programming language)|R]]
Line 1,001: Line 1,017:
|{{Depends|}}[[SAS (software)|SAS]]<ref>{{cite web|url=http://support.sas.com/rnd/app/studio/Rinterface2.html|title=R Interface Now Available in SAS/IML Studio|access-date=10 October 2016}}</ref>
|{{Depends|}}[[SAS (software)|SAS]]<ref>{{cite web|url=http://support.sas.com/rnd/app/studio/Rinterface2.html|title=R Interface Now Available in SAS/IML Studio|access-date=10 October 2016}}</ref>
|}
|}
|built-in
|-
|-
! [[SageMath]]
! [[SageMath]]
Line 1,011: Line 1,028:
| {{yes|}} Many languages<ref>{{cite web|title=Interpreter Interfaces|url=http://www.sagemath.org/doc/reference/interfaces/index.html|access-date=6 June 2013}}</ref><ref>{{cite web|title=C/C++ Library Interfaces|url=http://www.sagemath.org/doc/reference/libs/index.html|access-date=6 June 2013}}</ref><ref>{{cite web|title=Using Compiled Code Interactively|url=http://www.sagemath.org/doc/numerical_sage/using_compiled_code_iteractively.html|access-date=6 June 2013|archive-url=https://web.archive.org/web/20130404205431/http://www.sagemath.org/doc/numerical_sage/using_compiled_code_iteractively.html|archive-date=April 4, 2013|url-status=dead}}</ref>
| {{yes|}} Many languages<ref>{{cite web|title=Interpreter Interfaces|url=http://www.sagemath.org/doc/reference/interfaces/index.html|access-date=6 June 2013}}</ref><ref>{{cite web|title=C/C++ Library Interfaces|url=http://www.sagemath.org/doc/reference/libs/index.html|access-date=6 June 2013}}</ref><ref>{{cite web|title=Using Compiled Code Interactively|url=http://www.sagemath.org/doc/numerical_sage/using_compiled_code_iteractively.html|access-date=6 June 2013|archive-url=https://web.archive.org/web/20130404205431/http://www.sagemath.org/doc/numerical_sage/using_compiled_code_iteractively.html|archive-date=April 4, 2013|url-status=dead}}</ref>
| {{yes}} (any language that can call Python)
| {{yes}} (any language that can call Python)
|
|-
|-
! [[SAS (software)|SAS]]
! [[SAS (software)|SAS]]
Line 1,027: Line 1,045:
|}
|}
| {{no}}
| {{no}}
|
|-
|-
! [[TK Solver]]
! [[TK Solver]]
Line 1,037: Line 1,056:
| {{Depends|}}[[.NET Framework|.NET]] [[Microsoft Excel|Excel]]
| {{Depends|}}[[.NET Framework|.NET]] [[Microsoft Excel|Excel]]
| {{Depends|}}Unknown
| {{Depends|}}Unknown
|
|}
|}



Revision as of 01:17, 23 January 2023

The following tables provide a comparison of numerical-analysis software.

Applications

General

Creator Development started First public release Latest stable version Stable release date Cost (USD) License Notes
ADMB David Fournier, ADMB Project 1989 1990 12.0 21 December 2017 Free BSD 3-clause (aka new) License Automatic differentiation makes it well suited to complex minimization problems
Analytica Lumina Decision Systems 1982 (Demos) 4.6 May 2015 Free (Analytica Free 101), $995 (Professional), $2795 (Enterprise) Proprietary A numerical modeling environment with a declarative and visual programming language based on influence diagrams.
Ch SoftIntegration 1 October 2001 7.5.1 2 December 2015 $399 (commercial) / $199 (academic) / Free (student) Proprietary C/C++ based numerical computing and graphical plotting[1]
DADiSP DSP Development 1984 1987 6.7 B02 17 January 2017 $1995 (commercial) / $129 (academic) / Free (student) Proprietary Numeric computations for science and engineering featuring a spreadsheet like interface.
Dyalog APL Dyalog Ltd. 1981 1983 18.0 10 June 2020 Not free (commercial) / Free (non-commercial) Proprietary A modern dialect of APL, enhanced with features for functional and object-oriented programming.
Euler Math Toolbox René Grothmann 1987 1988 2022-02-10 10 February 2022 Free GPL Also a computer algebra system through interface with Maxima
Fityk Marcin Wojdyr 2002 1.3.1 19 December 2016 $115 (1.x binaries) / Free (source code and 0.x binaries) GPL interactive graphics, scriptable, specialized in curve fitting and peak fitting, 2D only
FlexPro Weisang GmbH n/a 1991 2019 (12.0.x) 2018 Not free (commercial) / Free (academic) Proprietary Dynamic, interactive 2D/3D diagrams, programmable, VBA, high performances, multicore compatible, large data sets.
Fortran John Backus 1953 1957 Fortran 2018 28 November 2018 Free (depends on implementation) depends on implementation General-purpose programming language that is especially suited to numeric computation and scientific computing.
FreeMat Samit Basu 2004 4.2 30 June 2013 Free GPL Codeless interface to external C, C++, and Fortran code. Mostly compatible with MATLAB.
GAUSS Aptech Systems 1984 21 8 December 2020 Not free Proprietary
GNU Data Language Marc Schellens 2004 0.9.7 21 January 2017 Free GPL Aimed as a drop-in replacement for IDL/PV-WAVE
IBM SPSS Statistics Norman H. Nie, Dale H. Bent, and C. Hadlai Hull 1968 23.0 3 March 2015 Not free Proprietary Primarily for statistics
GNU MCSim Frederic Y. Bois & Don Maszle 1991 1993 6.0.0 24 February 2018 Free GPL General simulation and Monte Carlo sampling software
GNU Octave John W. Eaton 1988 1993 7.3.0 2 November 2022 Free GPL General numerical computing package with many extension modules. Syntax mostly compatible with MATLAB
IGOR Pro WaveMetrics 1986 1988 8.00 May 22, 2018 $995 (commercial) $225 upgrade / $499 (academic) $175 upgrade / $85 (student) Proprietary interactive graphics, programmable, 2D/3D, used for science and engineering, large data sets.
J Jsoftware 1989 1990 J806 12 November 2017 Free GPL online access to: J Application Library (JAL)
Julia Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and Alan Edelman 2009 2012 1.7.2 6 February 2022 Free MIT License A fast,[2][3][4] high-level numerical computing language.

[Note 1]

LabPlot Stefan Gerlach, Alexander Semke, KDE 2001 2003 2.9.0 3 May 2022 Free GPL 2D plotting, suitable for creation of publication-ready plots but also for data visualization and exploration, data import from many formats(ASCII, binary, HDF5, FITS, JSON, etc.), export to vector and raster images, data analysis (nonlinear curve fitting in 2D, FFT, smoothing, integration and differentiation, etc.), digitizing of raster images, live data plotting, support for different CAS like Maxima, Octave, R, etc.
LabVIEW National Instruments 1985 1986 2016 August 2016 $1249 (commercial) / $79.95 (student) Proprietary Graphical, and textual through formula nodes, mathscript and .m file scripts[5]
Maple Maplesoft 1980 1982 2024 (6 March 2024; 9 months ago (2024-03-06)) [±][6] 14 March 2019 $2390 (commercial) / $239 (personal) / $99 (student) Proprietary Mainly a computer algebra system
Mathcad Parametric Technology Corporation 1985 1986 15.0 ; Prime 4.0[7] 2 March 2015 $1195 (commercial) / $99 (student) Proprietary
Mathematica Wolfram Research 1986 1988 14.1.0 (July 31, 2024; 4 months ago (2024-07-31)) [±][8] 16 April 2019 Free (Raspberry Pi[9]), Free Cloud Access, $2495 (commercial) / $145 (student) / $295 (personal)[10] Proprietary Also computer algebra system
MATLAB MathWorks late 1970s 1984 9.12 (R2022a) 15 March 2022 $2150 (standard) / $500 (education) / $149 (home) / $49 (student) Proprietary Numerical computation and simulation with extended 2D/3D visualization. Emphasis on vectorised processing.
Maxima MIT Project MAC and Bill Schelter et al. 1967 1982 5.41.0 3 October 2017 Free GPL Mainly a computer algebra system
MLAB Civilized Software, Inc. 1970 (in SAIL), 1985 (in C) 1972 (on DEC-10), 1988 (on PCs), 1993 (on MACs) 2015 2015 $2250 (standard) / $50 (student) Proprietary Numerical and Statistical computation for Scientific Applications, e.g. Chemical Kinetics. ODE Solving and Curve-Fitting. Symbolic Differentiation, Survival Analysis, Cluster Analysis, 2D/3D Graphics.
Nial Mike Jenkins 1981 7.0 2017 Free GNU GPLv3 High-level array programming language, also used for prototyping and artificial intelligence.
Origin OriginLab 1991 2019b 24 April 2019 $1095 (std.)/$1800 (Pro)
$550 (std., academic)
$850 (Pro, academic)
$69/yr. (Pro, student)
Proprietary Integrated data analysis graphing software for science and engineering. Flexible multi-layer graphing framework. 2D, 3D and statistical graph types. Built-in digitizing tool. Analysis with auto recalculation and report generation. Built-in scripting and programming languages.
Perl Data Language Karl Glazebrook 1996 c. 1997 2019 5 May 2018 Free Artistic License Used for astrophysics, solar physics, oceanography, biophysics, and simulation. 2D plotting via PGPLOT, PLPlot bindings; 3D via GL.
PSPP Ben Pfaff 1990s 1990s 1.2.0 6 November 2018 Free GPL v.3 or later FOSS statistics program, intended as an alternative to IBM SPSS Statistics.

[Note 2]

R R Foundation 1997 1997 4.0.3 10 October 2020 Free GPL Primarily for statistics, but there are many interfaces to open-source numerical software
SageMath William Stein 2005 9.5 (30 January 2022; 2 years ago (2022-01-30)) [±][11] 30 January 2022 Free GPL Programmable, includes computer algebra, 2D+3D plotting. Interfaces to many open-source and proprietary software. Web based interface HTTP or HTTPS
SAS Anthony Barr and James Goodnight 1966 1972 9.4 10 July 2014 Not free Proprietary Mainly for statistics
SequenceL Texas Multicore Technologies 1989 2012 2.4 10 February 2016 Free (Community Edition), $2495 (Professional Edition) Proprietary Functional programming language and tools.

[Note 3]

S-Lang John E. Davis 1992 2.3.0 18 September 2014 Free GPL, Artistic License (1.x only) Available as a standalone (slsh) and embedded interpreter (jed, slrn, ...)
Scilab ESI Group

Was:Inria

1990 1994 6.1.0 25 February 2020 Free GPL Programmable, direct support of 2D+3D plotting. Interfaces to many other software packages. Interfacing to external modules written in C, Java, Python or other languages. Language syntax similar to MATLAB. Used for numerical computing in engineering and physics.
Sysquake Calerga 1998 5.0 2013 free / $2500 (Pro, commercial) / $1000 (Pro, academic) Proprietary interactive graphics
TK Solver Universal Technical Systems, Inc. late 1970s 1982 6.0.152 2020 $599 commercial / $49 (student) Proprietary Numerical computation and rule-based application development
VisSim Visual Solutions 1989 10.1 January 2011 $495-$2800 (commercial)
free view-only version
$50-$250/free v3.0 (academic)
Proprietary Visual Language for simulation and Model Based Design. Used in business, science and engineering. Performs complex scalar or matrix based ODE solving with parametric optimization. Has 2D and 3D plotting, 3D animation, and state transition built in.
Yorick n/a n/a n/a 9 January 2015 Free GPL Programmable, callable 2D+3D plotting. Language syntax similar to C. Interfacing to other software packages via C calls.


Operating system support

The operating systems the software can run on natively (without emulation).

Windows macOS Linux BSD Unix DOS Android SaaS
ADMB Yes Yes Yes No No No No No
Analytica Yes No No No No No No No
Ch Yes Yes Yes Yes Yes No No No
Dyalog APL Yes Yes Yes No Yes No[Note 4] No No
DADiSP Yes No No No Yes No No No
Euler Math Toolbox Yes No Yes No No No No No
FlexPro Yes No No No No No No No
FreeMat Yes Yes Yes Yes Yes No No No
GAUSS Yes Yes Yes No Yes No No No
GNU Data Language Yes Yes Yes Yes Yes No No No
GNU MCSim Yes Yes Yes Yes Yes Yes Yes Yes
GNU Octave Yes Yes Yes Yes Yes No Yes Yes
IGOR Pro Yes Yes No No No No No No
Julia Yes Yes Yes Yes No No No Yes
LabPlot Yes Yes Yes Yes Yes No No No
LabVIEW Yes Yes Yes No Yes No No No
Maple Yes Yes Yes No Yes No No No
Mathematica Yes Yes Yes Yes Yes No No Yes
MATLAB Yes Yes Yes Yes Yes No No No
MLAB Yes Yes Yes No No Yes No No
Origin Yes No No No No No No No
Perl Data Language Yes Yes Yes Yes Yes Yes No No
R Yes Yes Yes Yes Yes No No No
SageMath Yes Yes Yes No Yes No No Yes
SAS Yes No Yes No Yes No No No
SequenceL Yes Yes Yes No No No No No
S-Lang Yes Yes Yes Yes Yes Yes No No
Scilab Yes Yes Yes Yes Yes Yes No No
Sysquake Yes Yes Yes No No No No No
TK Solver Yes No No No No No No No
The Unscrambler Yes No No No No No No No
VisSim Yes Yes Yes No Yes No No No

Language features

Colors indicate features available as

basic system capabilities
official or officially supported extensions and libraries
third-party software components or not supported
Standalone executables creation support Symbolic computation support OOP support GUI creation support Multi-dimensional arrays as primitive data type Centralized extension library website Can call code in other languages Can be called from other languages Plotting: built-in or via library import statement or by calling external program
Analytica No No Yes Yes Yes Yes COM, Excel Excel, COM, .NET
Dyalog APL Yes[12] Yes Yes[13] Win32, .NET, WPF, HTML/JS Yes Yes COM, .NET, WebServices, Shared Libraries, DLLs, NAG, R, JavaScript[14] COM, .NET, WebServices[14]
GNU Data Language No No Yes GUI Widgets since v.0.9 but still incomplete Yes No C, Python Python
GNU MCSim Yes No No XMCSim with TCL/TK and wish No No C R
GNU Octave Yes with mkoctfile Wrappers to SymPy Yes[15] Yes Yes Yes[16] C, C++, Fortran,[17] Perl,[18] Python, Tcl[19] Java,[20] Perl,[18] C, C++,[21] Python built-in
J No Yes Yes Yes Yes Yes JavaScript JavaScript
Julia Yes Wrappers to SymPy, SymEngine and others Yes Yes Yes Yes
C, Fortran
Python, C++, Java, MATLAB, R
C, C++, Python, R via import statement
LabVIEW
Professional System version
With add-on[22]
No
Yes[23]
GOOP[24]
G#[25]
Yes Yes Yes[26]
C/C++,[27] DLLs, Python,[28] Perl, Tcl,[29] MATLAB, ActiveX, C#/.NET
With add-ons. I.e.[30]
Yes[31]
Maple No Yes Yes[32] Yes Yes Yes[33] C, C#, Fortran MATLAB,[34] Excel,[35] Visual Basic, Java, and C[36]
Mathematica Yes[37] Yes Yes Yes Yes Yes[38] Java, .NET, C++, Fortran, CUDA, OpenCL, R, Python, SQL, SPARQL, NodeJS, Julia
Java, .NET, C++, Python
Excel,[39] LabVIEW[40]
Haskell,[41] AppleScript,[42] Racket,[43] Visual Basic,[44] Clojure[45] MATLAB[46]
MATLAB with extension[47] with extension library[48] Yes[49] Yes Yes Yes[50]
Through MEX[51] files: C, C++, Fortran. Also compiled Java and ActiveX components.
Mathematica[46]
.NET,[52] Java,[53] Excel[54] built-in
Maxima No Yes No No Yes No Common Lisp Common Lisp
MLAB No Yes No Yes Yes No No No
PDL Yes[55] No Yes[56] Yes[57] Yes Yes[58] C via perlXS; C, Python, F77, etc. via Inline Perl, C[59]
Python Py2exe, Py2App, PyInstaller, cxFreeze, etc. SymPy & others Yes Inherently Object Oriented
tkinter
wxPython, QT, Kivy, many others
Numpy PyPI C, C++, Fortran, many others C, C++, Fortran, many others import statement
R No Yes and extended via Ryacas package Yes[60] Via the tcltk library Yes Yes[61]
C, C++, Fortran[62]
MATLAB[63]
Python[64]
Excel[65]
Python[66]
SAS[67]
built-in
SageMath No Yes Yes No Yes Yes[68] Many languages[69][70][71] Yes (any language that can call Python)
SAS No No DS2 and SCL Yes No No
C, Java
R (requires IML)
No
TK Solver with extension No Yes with extension Yes Yes .NET Excel Unknown

Libraries

General

Creator Language First public release Latest stable version Cost (USD) License Notes
ALGLIB Sergey Bochkanov C++, C#, Python, FreePascal 2006 3.19.0 / June 2022 Dual licensed GPL/commercial General purpose numerical analysis library. Cross-platform (Windows, *nix).
Armadillo NICTA C++ 2009 3.900 / 2013 Free MPL C++ template library for linear algebra; includes various decompositions and factorisations; syntax (API) is similar to MATLAB.
GNU Scientific Library GNU Project C 1996 2.5 / 14 June 2018 Free GPL General purpose numerical analysis library. Targets Linux, can be built on almost any *nix OS with Ansi C compiler.
ILNumerics H. Kutschbach C#, PowerShell 2007 1.3.14 / August 2008 Non-free Proprietary aims .Net/mono, 2D/3D plottings (beta)
IMSL Numerical Libraries Rogue Wave Software C, Java, C#, Fortran, Python 1970 many components Not free Proprietary General purpose numerical analysis library.
Math.NET Numerics C. Rüegg, M. Cuda, et al. C#, F#, C, PowerShell 2009 4.7.0 / November 2018 Free MIT/X11 General purpose numerical analysis and statistics library for the .NET Framework and Mono, with optional support for native providers.
NAG Numerical Library The Numerical Algorithms Group C, Fortran 1971 many components Not free Proprietary General purpose numerical analysis library.
NMath CenterSpace Software C# 2003 6.2 / March 2016 $995 Proprietary Math and statistical libraries for the .NET Framework
SciPy scipy.org community Python 2001 1.5.3 / 17 October 2020 Free BSD Adds numerical programming capabilities to the Python programming language. Related to NumPy, and therefore connected to the previous Numeric and Numarray packages for Python

Operating-system support

The operating systems the software can run on natively (without emulation).

Windows macOS Linux BSD Unix DOS Android
ALGLIB Yes Yes Yes Yes Yes No Yes
GNU Scientific Library Yes Yes Yes Yes Yes No Yes
ILNumerics Yes Yes Yes Yes Yes No No
IMSL Numerical Libraries Yes Yes Yes No Yes No No
Math.NET Numerics Yes Yes Yes Yes Yes No No
NAG Numerical Library Yes Yes Yes No Yes Yes No
NMath Yes No No No No No No
SciPy (Python packages) Yes Yes Yes Yes Yes Yes Yes

See also

Footnotes

  1. ^ Julia allows direct calls of C functions (no wrappers needed). Designed for cloud parallel computing with LLVM JIT as a backend. Lightweight "green" threading (coroutines). Efficient support for Unicode. Shell-like capabilities for managing other processes. Lisp-like macros and other metaprogramming facilities.
  2. ^ Capabilities of PSPP include analysis of sampled data, frequencies, cross-tabs comparison of means (t-tests and one-way ANOVA); linear regression, logistic regression, reliability (Cronbach's Alpha, not failure or Weibull), and re-ordering data, non-parametric tests, factor analysis, cluster analysis, principal components analysis, chi-square analysis and more.
  3. ^ SequenceL delivers high performance on multicore hardware with ease of programming, and code clarity/readability. Designed to work with other languages, including C, C++, C#, Java, Fortran, Python, etc. Can be compiled to multithreaded C++ (and optionally OpenCL) code with no explicit indications from the programmer of how or what to parallelize. A platform-specific runtime manages the threads safely.
  4. ^ Once was supported

References

  1. ^ Ch Scientific Numerical Computing
  2. ^ "Julia in a Nutshell", from the official Julia homepage. Accessed 2019-01-25.
  3. ^ Sai K. Popuri and Matthias K. Gobbert. A Comparative Evaluation of Matlab, Octave, R, and Julia on Maya. Technical Report HPCF-2017-03, UMBC High Performance Computing Facility, University of Maryland, U.S.A., 2017. Accessed 2019-01-25.
  4. ^ Jules Kouatchou; Basic Comparison of Python, Julia, Matlab, IDL and Java (2018 Edition) Version 74. NASA Modeling Guru, Technical Report DOC-2676. Created on: 5-Feb-2018. Last Modified: 14-Sep-2018. Accessed 2019-01-25.
  5. ^ National Instruments. "Working with .m File Scripts in NI LabVIEW for Text Based Signal Processing, Analysis, and Math". Retrieved April 3, 2017.
  6. ^ "Maplesoft Media Releases". www.maplesoft.com. Retrieved May 12, 2024.
  7. ^ "PTC Mathcad Prime 4.0 | PTC". Retrieved August 12, 2018.
  8. ^ "Yet More New Ideas and New Functions: Launching Version 14.1 of Wolfram Language & Mathematica". Retrieved July 31, 2024.
  9. ^ Raspberry Pi now includes Mathematica and Wolfram Language for free
  10. ^ Mathematica Home Edition Released Macworld, February 2009
  11. ^ "SageMath". sagemath.org. Retrieved February 15, 2020.
  12. ^ "Dyalog APL Users Guide" (PDF).
  13. ^ "An Introduction to Object Oriented Programming for APL programmers".
  14. ^ a b "Dyalog APL Interface Guide" (PDF).
  15. ^ "GNU Octave: Object Oriented Programming". Retrieved May 18, 2011.
  16. ^ "Octave-Forge". Retrieved May 18, 2011.
  17. ^ "Octave Wiki: OctaveFortran". Archived from the original on July 17, 2012. Retrieved May 18, 2011.
  18. ^ a b "Octave Wiki: OctavePerl". Archived from the original on December 22, 2005. Retrieved May 18, 2011.
  19. ^ "Octave Wiki: OctaveTcl". Archived from the original on July 17, 2012. Retrieved May 18, 2011.
  20. ^ "Octave Wiki: OctaveJava". Retrieved May 18, 2011.
  21. ^ "Octave Wiki: CategoryExternal". Archived from the original on July 23, 2012. Retrieved May 18, 2011.
  22. ^ National Instruments. "LabVIEW Application Builder". Retrieved April 3, 2017.
  23. ^ National Instruments. "LabVIEW Object-Oriented Programming". Retrieved April 3, 2017.
  24. ^ National Instruments. "NI GOOP Development Suite". Retrieved April 3, 2017.
  25. ^ National Instruments. "G# Framework". Retrieved April 3, 2017.
  26. ^ National Instruments. "LabVIEW Tools Network". Retrieved April 3, 2017.
  27. ^ National Instruments (January 18, 2010). "Calling External Code From LabVIEW". Retrieved April 3, 2017.
  28. ^ National Instruments. "Call Perl and Python Scripts from LabVIEW". Retrieved April 3, 2017.
  29. ^ National Instruments. "Introduction to Scripting in Perl, Python and Tcl". Retrieved April 3, 2017.
  30. ^ "Lua for LabVIEW". Retrieved April 3, 2017.
  31. ^ National Instruments. "Calling LabVIEW VIs from Other Programming Languages". Retrieved April 3, 2017.
  32. ^ Maplesoft. "Object-Oriented Programming, Polymorphism, and More in Maple 9.5". Retrieved May 18, 2011.
  33. ^ "Maple Application Center".
  34. ^ "MAPLE: MATLAB® Connectivity". Retrieved May 18, 2011.
  35. ^ "Maple and Excel".
  36. ^ Maplesoft. "OpenMaple API for VisualBasic and Java". Retrieved May 18, 2011.
  37. ^ Wolfram Research. "C Code Generation User Guide". Retrieved May 19, 2011.
  38. ^ library.wolfram.com
  39. ^ Wolfram Research. "Mathematica Link for Excel 3.2". Retrieved May 18, 2011.
  40. ^ "Mathematica Link for LabVIEW 2.1". Archived from the original on August 8, 2011. Retrieved May 18, 2011.
  41. ^ Haskell packages
  42. ^ "Unisoftware plus". Archived from the original on July 17, 2011. Retrieved May 19, 2011.
  43. ^ MrMathematica website
  44. ^ Mathematica for ActivX
  45. ^ "Clojuratica". clojuratica.weebly.com. 2013. Retrieved June 14, 2013.
  46. ^ a b "Mathematica Symbolic Toolbox for MATLAB--Version 2.0". Retrieved May 18, 2011.
  47. ^ Mathworks. "MATLAB Compiler". Retrieved May 18, 2011.
  48. ^ Mathworks. "Symbolic Math Toolbox". Retrieved May 18, 2011.
  49. ^ Mathworks. "Object-Oriented Programming in MATLAB". Retrieved May 18, 2011.
  50. ^ "MATLAB File Exchange". Retrieved May 18, 2011.
  51. ^ Mathworks. "MEX-files Guide". Retrieved May 18, 2011.
  52. ^ Mathworks. "MATLAB Builder NE for Microsoft .NET Framework". Retrieved May 18, 2011.
  53. ^ Mathworks. "MATLAB Builder JA for Java language". Retrieved May 18, 2011.
  54. ^ "MATLAB Builder EX for Microsoft Excel". Retrieved May 18, 2011.
  55. ^ "Perlmonks". Retrieved January 24, 2013.
  56. ^ "O'Reilly tutorial". Retrieved January 24, 2013.
  57. ^ "PerlTK tutorial". Retrieved January 24, 2013.
  58. ^ "CPAN". Retrieved January 24, 2013.
  59. ^ "Calling Perl from C". Retrieved January 24, 2013.
  60. ^ R Development Core Team (April 13, 2011). "Object-oriented programming". R Language Definition. ISBN 978-3-900051-13-6. Retrieved May 18, 2011.
  61. ^ "CRAN: Contributed Packages". Retrieved May 18, 2011.
  62. ^ Hornik, Kurt (2011). The R FAQ. ISBN 978-3-900051-08-2.
  63. ^ Bengtsson, Henrik; Jason Riedy. "CRAN: R.matlab package". Retrieved May 18, 2011.
  64. ^ Grothendieck, G.; Carlos J. Gil Bellosta. "rJython R package". Retrieved May 18, 2011.
  65. ^ Neuwirth, Erich. "CRAN: RExcelInstaller package". Archived from the original on May 25, 2011. Retrieved May 18, 2011.
  66. ^ "A simple and efficient access to R from Python". Retrieved May 18, 2011.
  67. ^ "R Interface Now Available in SAS/IML Studio". Retrieved October 10, 2016.
  68. ^ "Additional Packages". Retrieved June 5, 2013.
  69. ^ "Interpreter Interfaces". Retrieved June 6, 2013.
  70. ^ "C/C++ Library Interfaces". Retrieved June 6, 2013.
  71. ^ "Using Compiled Code Interactively". Archived from the original on April 4, 2013. Retrieved June 6, 2013.