namespace pm
Contains the most components of the Polymake Template Library, excluding the GMP wrapper classes.
namespace polymake
Reimports the top-level container classes and functions most often used in the client programs.
The declaration use namespace polymake; at the beginning of a client code usually eliminates any needs in explicit qualification therein, at the same time preventing a too massive pollution of the global namespace.
This declaration is implicitly supposed overall through this documentation, that is, a class or function is shown with a namespace prefix only if it is not imported in namespace polymake and could not be found using the C++ lookup rules.
As a convenience for client developer, namespace polymake also reimports std::cout, std::cerr, and std::endl.
namespace polymake::operations
For each operator-like functor from the namespace pm::operations defines the alias with the same name as the original functor wrapped in BuildUnary or BuildBinary, whatever is appropriate. Provided the using declaration shown above, you can create the functors simply as operations::add(), operations::tensor(), operations::concat(), etc. without specifying the exact parameter types, which can sometimes be very elaborated.
namespace std_ext
Is not a real namespace, but a macro referring to the actual namespace containing the SGI extensions of the Standard Template Library that did not became part of the ANSI C++ Standard. Different versions of gcc put the extensions in different namespaces; until the location is settled firmly, it is nicer to define a macro once than to pollute the client code with #if's. The most prominent extensions are hash_set and hash_map container classes.