user_guide:lingo

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
user_guide:lingo [2019/02/05 14:23] – [Application] adjusted wording. oroehriguser_guide:lingo [2019/02/28 11:46] (current) – this is explained in the intro tut, the objects tut, and the extension page. oroehrig
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 object types, functions and other stuff all related to some distinct mathematical subject. 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. 
- 
-The only difference between the current application and the rest is that you can call the functions and object constructors of the former without having to qualify them with the application name as a prefix. To use things from other applications, you need to do this: 
-<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.1549376635.txt.gz
  • Last modified: 2019/02/05 14:23
  • by oroehrig