Difference between revisions of "Sygnm"

From sygnm
Jump to: navigation, search
Line 4: Line 4:
  
 
The main features of sygnm are:
 
The main features of sygnm are:
* it can be used as a library from several different programming languages (currently C++, Python, Ruby, Java), and it can also be used interactively in "calculator mode" through various user interfaces,
+
* it can be used as a '''library''' from several different programming languages (currently C++, Python, Ruby, Java), and it can also be used '''interactively''' in "calculator mode" through various user interfaces,
* it does not invent it's own programming language; the core and mathematical packages are in C++ and you can also access these from other languages,
+
* it does not invent it's own programming language; the core and mathematical packages are in '''C/C++''' and you can also access these from other languages,
* it's free and open source,
+
* it's '''free''' and '''open source''',
* it's modular; the core, the packages implementing all mathematical functionality and the user interfaces are clearly separated,
+
* it's '''modular'''; the core, the packages implementing all mathematical functionality and the user interfaces are clearly separated,
* it's based on modern technologies,
+
* it's based on '''modern''' technologies,
* it respects your privacy; no telemetry, data collection, licensing or forced updates; it makes no network connections at all unless such a package is loaded and the user explicitly requests so,
+
* it respects your '''privacy'''; no telemetry, data collection, licensing or forced updates; it makes no network connections at all unless such a package is loaded and the user explicitly requests so,
* it has a dynamic "type system" which enables runtime generic programming, based on typeclasses and function overloading,
+
* it has a dynamic "type system" which enables runtime '''generic programming''', based on typeclasses and function overloading,
* however this runtime "type system" is optional and it is possible to write fast, specialized code without any runtime overhead.  
+
* however this runtime "type system" is optional and it is possible to write '''fast''', specialized code without any runtime overhead.  
  
 
== Downloads and current state of development ==
 
== Downloads and current state of development ==

Revision as of 23:47, 2 April 2018


sygnm (/ˈsiɡ.num/) is a general purpose computer algebra framework, currently in pre-alpha state of development, which differs in several aspects from current computer algebra systems. It is free software, licensed under the GNU AGPL.

The main features of sygnm are:

  • it can be used as a library from several different programming languages (currently C++, Python, Ruby, Java), and it can also be used interactively in "calculator mode" through various user interfaces,
  • it does not invent it's own programming language; the core and mathematical packages are in C/C++ and you can also access these from other languages,
  • it's free and open source,
  • it's modular; the core, the packages implementing all mathematical functionality and the user interfaces are clearly separated,
  • it's based on modern technologies,
  • it respects your privacy; no telemetry, data collection, licensing or forced updates; it makes no network connections at all unless such a package is loaded and the user explicitly requests so,
  • it has a dynamic "type system" which enables runtime generic programming, based on typeclasses and function overloading,
  • however this runtime "type system" is optional and it is possible to write fast, specialized code without any runtime overhead.

Downloads and current state of development

sygnm is currently in pre-alpha, there are no releases yet. The source is available at https://git.sygnm.org. There is some documentation on how to build and run sygnm from source.

Documentation