Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
user_guide:lingo [2019/02/05 14:18]
oroehrig [Application] buffed application section.
— (current)
Line 1: Line 1:
-====== polymake Lingo ====== 
  
-This page wants to explain common terminology which is used throughout the documentation. 
- 
-===== Application ===== 
- 
-An application is a collection of functions and objects which belong together mathematically. Currently polymake consists of the following applications:​ 
-  * **common** for things shared between all applications 
-  * **fan** for fans 
-  * **fulton** for tropical vaieties 
-  * **graph** for graphs 
-  * **group** for groups and their actions on polymake objects 
-  * **matroid** for matroids 
-  * **polytope** for polytopes 
-  * **topaz** for topology-related things 
-  * **tropical** for tropical gemoetry 
- 
-The prompt in the polymake shell indicates the currently active application. You can switch by typing 
-<​code>​ application '​topaz';​ </​code>​ 
-The default application active on startup is ''​polytope''​. You can change that by using the -A flag on the command line. 
- 
-You can also use things from other applications than the current one by prepending the application name: 
-<​code>​ 
-topaz > $c = polytope::​cube(3);​ 
-</​code>​ 
- 
- 
-Within the source code an application is visible as the top level subdirectory "​apps/​this_application"​. ​ This directory always contains the file "​rules/​main.rules"​ which defines the big objects and the rules among them. Each application defines a namespace, both in the Perl and the C++ realms. ​ Applications can import types and functions from other applications'​ namespaces. 
-===== Extension ===== 
- 
-An extension is code which does not belong to the polymake core but extends polymake'​s functionality. It may define new applications,​ new big objects to existing applications or new rules for existing big objects. ​ 
- 
-There is a guide for [[.extend:​extensions|writing your own extension]]. See [[:​extensions|here]] for a list of extensions written by other people. 
- 
-Some extensions are "​bundled",​ that is, they are shipped with polymake. ​ Bundled extensions allow for more flexible configuration. ​ They primarily exist for legal or technical reasons. You can read about them [[:​external_software#​bundled_extensions_for_polymake|here]]. 
- 
-===== Big Object ===== 
- 
-A big object is an instance of a data type which represents a mathematical concept with clear semantics. 
- 
-Big objects are defined in a rule file which is included from apps/​this_application/​rules/​main.rules. ​ Big objects have properties which come with a type, which is either built-in or a small object type or a big object type.  Big objects are immutable in the following sense: while, during the computation,​ properties may be added the actual instance of the mathematical concept does not change. 
- 
-Big object types may have template parameters. 
- 
-Examples are polytope::​Polytope or topaz::​SimplicialComplex. 
- 
-In the rulefiles, big object types are simply referred to as [[user_guide:​extend:​rulefiles#​type_definitions|objects]]. 
- 
-Here is an {{ :​howto:​object_dia-polymake-v3.2.svg?​linkonly |svg file }} to describe the version 3.2 big object hierarchy. 
- 
-===== Small Object ===== 
- 
-A small object is an instance of one of the many data types commonly used in computer science. 
- 
-Small object types are implemented in C++ and may or may not be accessible from the Perl side of polymake. ​ The magic files for gluing the C++ world and the Perl world mostly reside in apps/​common/​rules. 
- 
-Small object types may have template parameters. 
- 
-Examples are Array, Set or Map. 
- 
-In the rulefiles, small object types are referred to as [[user_guide:​extend:​rulefiles#​type_definitions|property types]], because they are used, first of all, for definition of atomic properties of big objects. 
  • user_guide/lingo.1549376290.txt.gz
  • Last modified: 2019/02/05 14:18
  • by oroehrig