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
Next revision
Previous revision
Last revisionBoth sides next revision
user_guide:lingo [2019/01/29 21:46] – external edit 127.0.0.1user_guide:lingo [2019/02/05 14:23] – [Application] adjusted wording. oroehrig
Line 5: Line 5:
 ===== Application ===== ===== Application =====
  
-An application is a bunch of things which belong together mathematically Within the polymake project applications form the highest level in the overall hierarchy of things Each application comes with its own set of big objects.+An application is a collection of object types, functions and other stuff all related to some distinct mathematical subjectCurrently 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 lists the currently active application.  Switch via "application 'that_application';" or use the -A flag on the command line.+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.
  
-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.+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 prefixTo use things from other applications, you need to do this: 
 +<code> 
 +topaz > $c = polytope::cube(3); 
 +</code>
  
-Each application defines a namespace, both in the Perl and the C++ realms.  Applications can import types and functions from other applications' namespaces. 
- 
-Examples are polytope, fan, matroid, fan, fulton, or tropical. 
- 
-There is a special application "common" which takes care of much of the polymake magic ;-) 
  
 +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 ===== ===== Extension =====
  
-An extension is a bunch of things which do not belong to the polymake core.+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
  
-An extension may define new applications and/or new big objects to existing applications and/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.+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 ===== ===== Big Object =====