From ce7cf00bdf5d3ccce600941b6b3dea71abeb7c1d Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Mon, 4 Sep 2023 07:19:14 +0000 Subject: [PATCH] build based on 63dad3d --- dev/examples/index.html | 2 +- dev/getting_started/index.html | 2 +- dev/index.html | 2 +- dev/search/index.html | 2 +- dev/using_polymake_jl/index.html | 24 ++++++++++++------------ 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/dev/examples/index.html b/dev/examples/index.html index eb6c9040..bac47fba 100644 --- a/dev/examples/index.html +++ b/dev/examples/index.html @@ -410,4 +410,4 @@ p = @pm tropical.Polytope{Max, QuadraticExtension}(POINTS=[1 0 0; 1 1 0; 1 1 1])
more information on the @pm macro can be found

here: @pm

- + diff --git a/dev/getting_started/index.html b/dev/getting_started/index.html index 43923759..9421af0a 100644 --- a/dev/getting_started/index.html +++ b/dev/getting_started/index.html @@ -10,4 +10,4 @@ cd my_new_env

Then start Julia in the directory and press ] for pkg mode.

(v1.3) pkg> activate .
 (Polymake) pkg> dev --local Polymake
 (Polymake) pkg> build Polymake # fetches the prebuild polymake binaries
-(Polymake) pkg> test Polymake # and You are good to go!

If polymake-config is in your PATH, or POLYMAKE_CONFIG environment variable is set the build phase will try to use it.

Just remember that You need to activate Polymake.jl to use Polymake.

Getting Help

For basic information on the usage of Polymake.jl we refer to the other sections of this documentation.

For further details on polymake and its abilities see the Polymake User Guide.

+(Polymake) pkg> test Polymake # and You are good to go!

If polymake-config is in your PATH, or POLYMAKE_CONFIG environment variable is set the build phase will try to use it.

Just remember that You need to activate Polymake.jl to use Polymake.

Getting Help

For basic information on the usage of Polymake.jl we refer to the other sections of this documentation.

For further details on polymake and its abilities see the Polymake User Guide.

diff --git a/dev/index.html b/dev/index.html index ed41c649..05124fbc 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Polymake.jl · Polymake.jl - Documentation

Polymake.jl

Polymake.jl is a Julia package for using polymake, a software for research in polyhedral geometry from Julia. This package is developed as part of the OSCAR project.

The current version of Polymake.jl relies on polymake version 4.0 or later.

Current state of the polymake wrapper

Data structures

  • Big objects, e.g., Polytopes, can be handled in Julia.
  • Several small objects (data types) from polymake are available in Polymake.jl:
    • Integers (Polymake.Integer <: Integer)
    • Rationals (Polymake.Rational <: Real)
    • Vectors (Polymake.Vector <: AbstractVector) of Int64s, Float64s, Polymake.Integers and Polymake.Rationals
    • Matrices (Polymake.Matrix <: AbstractMatrix) of Int64s, Float64s, Polymake.Integers and Polymake.Rationals
    • Sets (Polymake.Set <: AbstractSet) of Int64s
    • Arrays (Polymake.Array <: AbstractVector, as Polymake.Arrays are one-dimensional) of Int64s and Polymake.Integers
    • some combinations thereof, e.g., Polymake.Arrays of Polymake.Sets of Int32s.

These data types can be converted to appropriate Julia types, but are also subtypes of the corresponding Julia abstract types (as indicated above), and so should be accepted by all methods that apply to the abstract types.

Note: If the returned small object has not been wrapped in Polymake.jl yet, you will not be able to access its content or in general use it from Julia, however you can always pass it back as an argument to a polymake function. Moreover you may try to convert to Julia understandable type via macro @convert_to SomeType{Template, Names} obj.

Functions

  • All user functions from polymake are available in the appropriate modules, e.g. homology function from topaz can be called as topaz.homology(...) in julia. We pull the docstrings for functions from polymake as well, so ?topaz.homology (in Julia's REPL) returns the polymake docstring. Note: the syntax presented in the docstring is a polymake syntax, not Polymake.jl one.
  • Most of the user functions from polymake are available as appname.funcname(...) in Polymake.jl. Moreover, any function from polymake C++ library can be called via macro call @pm appname.funcname{C++{template, names}}(...).
  • All big objects of polymake can be constructed either via call to constructor, i.e.
obj = appname.BigObject(args)

One can specify some templates here as well: polytope.Polytope{Float64}(...) is a valid call, but the list of supported types is rather limited. Please consider filing a bug if a valid call results in polymake error. For more advanced use see section on @pm macro.

  • Properties of big objects are accessible by bigobject.property syntax (as opposed to $bigobject->property in polymake). If there is a missing property please check if it can be accessed by appname.property(object). For example polytope.Polytope does not have DIM property in Polymake.jl sinc DIM is exposed as polytope.dim(...) function.
  • Methods are available as functions in the appropriate modules, with the first argument as the object, i.e. $bigobj->methodname(...) can be called via appname.methodname(bigobj, ...)
  • A function in Polymake.jl calling polymake may return a big or small object, and the generic return (PropertyValue) is transparently converted to one of the known data types. This conversion can be deactivated by adding keep_PropertyValue=true keyword argument to function/method call.

User Guide

Funding

The development of this Julia package is supported by the Deutsche Forschungsgemeinschaft DFG within the Collaborative Research Center TRR 195.

+Polymake.jl · Polymake.jl - Documentation

Polymake.jl

Polymake.jl is a Julia package for using polymake, a software for research in polyhedral geometry from Julia. This package is developed as part of the OSCAR project.

The current version of Polymake.jl relies on polymake version 4.0 or later.

Current state of the polymake wrapper

Data structures

  • Big objects, e.g., Polytopes, can be handled in Julia.
  • Several small objects (data types) from polymake are available in Polymake.jl:
    • Integers (Polymake.Integer <: Integer)
    • Rationals (Polymake.Rational <: Real)
    • Vectors (Polymake.Vector <: AbstractVector) of Int64s, Float64s, Polymake.Integers and Polymake.Rationals
    • Matrices (Polymake.Matrix <: AbstractMatrix) of Int64s, Float64s, Polymake.Integers and Polymake.Rationals
    • Sets (Polymake.Set <: AbstractSet) of Int64s
    • Arrays (Polymake.Array <: AbstractVector, as Polymake.Arrays are one-dimensional) of Int64s and Polymake.Integers
    • some combinations thereof, e.g., Polymake.Arrays of Polymake.Sets of Int32s.

These data types can be converted to appropriate Julia types, but are also subtypes of the corresponding Julia abstract types (as indicated above), and so should be accepted by all methods that apply to the abstract types.

Note: If the returned small object has not been wrapped in Polymake.jl yet, you will not be able to access its content or in general use it from Julia, however you can always pass it back as an argument to a polymake function. Moreover you may try to convert to Julia understandable type via macro @convert_to SomeType{Template, Names} obj.

Functions

  • All user functions from polymake are available in the appropriate modules, e.g. homology function from topaz can be called as topaz.homology(...) in julia. We pull the docstrings for functions from polymake as well, so ?topaz.homology (in Julia's REPL) returns the polymake docstring. Note: the syntax presented in the docstring is a polymake syntax, not Polymake.jl one.
  • Most of the user functions from polymake are available as appname.funcname(...) in Polymake.jl. Moreover, any function from polymake C++ library can be called via macro call @pm appname.funcname{C++{template, names}}(...).
  • All big objects of polymake can be constructed either via call to constructor, i.e.
obj = appname.BigObject(args)

One can specify some templates here as well: polytope.Polytope{Float64}(...) is a valid call, but the list of supported types is rather limited. Please consider filing a bug if a valid call results in polymake error. For more advanced use see section on @pm macro.

  • Properties of big objects are accessible by bigobject.property syntax (as opposed to $bigobject->property in polymake). If there is a missing property please check if it can be accessed by appname.property(object). For example polytope.Polytope does not have DIM property in Polymake.jl sinc DIM is exposed as polytope.dim(...) function.
  • Methods are available as functions in the appropriate modules, with the first argument as the object, i.e. $bigobj->methodname(...) can be called via appname.methodname(bigobj, ...)
  • A function in Polymake.jl calling polymake may return a big or small object, and the generic return (PropertyValue) is transparently converted to one of the known data types. This conversion can be deactivated by adding keep_PropertyValue=true keyword argument to function/method call.

User Guide

Funding

The development of this Julia package is supported by the Deutsche Forschungsgemeinschaft DFG within the Collaborative Research Center TRR 195.

diff --git a/dev/search/index.html b/dev/search/index.html index 4bde86c8..9687adfe 100644 --- a/dev/search/index.html +++ b/dev/search/index.html @@ -1,2 +1,2 @@ -Search · Polymake.jl - Documentation

Loading search...

    +Search · Polymake.jl - Documentation

    Loading search...

      diff --git a/dev/using_polymake_jl/index.html b/dev/using_polymake_jl/index.html index db5fd2cc..d65079f4 100644 --- a/dev/using_polymake_jl/index.html +++ b/dev/using_polymake_jl/index.html @@ -29,7 +29,7 @@ 0 1 0 -

      !!! Note the expression in @pm macro is parsed syntactically, so it has to be a valid julia expression. However template parameters need not to be defined in julia, but must be valid names of polymake property types. Nested types (such as {QuadraticExtension{Rational}}) are allowed.

      source

      The @pm macro can be used to issue more complicated calls to polymake from julia. If You need to pass templates to BigObjects, some limited support is provided in costructors. For example one can construct polytope.Polytope{Float64}(...). However for this to work templates need to be valid julia types/object, hence it is not possible to construct a Polytope<QuadraticExtension> through such call. For this (and in general: for passing more complicated templates) one needs the @pm macro:

      $obj = new BigObject<Template,Parameters>(args)

      becomes

      obj = @pm appname.BigObject{Template, Parameters}(args)

      Examples:

      tropical.Polytope{max, Polymake.Rational}(POINTS=[1 0 0; 1 1 0; 1 1 1])
      +

      !!! Note the expression in @pm macro is parsed syntactically, so it has to be a valid julia expression. However template parameters need not to be defined in julia, but must be valid names of polymake property types. Nested types (such as {QuadraticExtension{Rational}}) are allowed.

      source

      The @pm macro can be used to issue more complicated calls to polymake from julia. If You need to pass templates to BigObjects, some limited support is provided in costructors. For example one can construct polytope.Polytope{Float64}(...). However for this to work templates need to be valid julia types/object, hence it is not possible to construct a Polytope<QuadraticExtension> through such call. For this (and in general: for passing more complicated templates) one needs the @pm macro:

      $obj = new BigObject<Template,Parameters>(args)

      becomes

      obj = @pm appname.BigObject{Template, Parameters}(args)

      Examples:

      tropical.Polytope{max, Polymake.Rational}(POINTS=[1 0 0; 1 1 0; 1 1 1])
       # call to constructor, note that max is a julia function, hence a valid object
       @pm tropical.Polytope{Max, QuadraticExtension}(POINTS=[1 0 0; 1 1 0; 1 1 1])
       # macro call: none of the types in templates need to exist in julia

      As a rule of thumb any template passed to @pm macro needs to be translatable on syntax level to a C++ one. E.g. Matrix{Integer} works, as it translates to pm::Matrix<pm::Integer>.

      Such templates can be passed to functions as well. A very useful example is the common.convert_to:

      julia> c = polytope.cube(3);
      @@ -115,16 +115,16 @@
       POINTS
       1 2 3
       1 5/4 3/2
      -

      Accessing the polyDB

      Polymake.jl allows the user to access the objects stored within the polyDB via the Mongoc.jl package; this functionality can be found in another sub-module, Polymake.Polydb, which requires no additional interaction to be loaded. It offers two different ways for querying, as well as some methods for information. For demonstration purposes, there also is a Jupyter notebook in the examples/ folder.

      General tools

      There are three types one needs to know when working with Polymake.Polydb:

      Polymake.Polydb.DatabaseType
        Database

      Type for referencing a specific database (usually the polyDB)

      source
      Polymake.Polydb.CollectionType
        Collection{T}

      Type for referencing a specific collection. T<:Union{Polymake.BigObject, Mongoc.BSON} defines the template and/or element types returned by operations applied on objects of this type.

      source
      Polymake.Polydb.CursorType
        Cursor{T}

      Type containing the results of a query. Can be iterated, but the iterator can not be reset. For this cause, one has to query again. T<:Union{Polymake.BigObject, Mongoc.BSON} defines the element types.

      source

      To receive the Database object referencing to the polyDB, there is the get_db() method:

      Polymake.Polydb.get_dbMethod
        get_db()

      Connect to the polyDB and return Database instance.

      The uri of the server can be set in advance by writing its String representation into ENV["POLYDBTESTURI"]. (used to connect to the github services container for testing)

      Examples

      julia> db = Polymake.Polydb.get_db();
      +

      Accessing the polyDB

      Polymake.jl allows the user to access the objects stored within the polyDB via the Mongoc.jl package; this functionality can be found in another sub-module, Polymake.Polydb, which requires no additional interaction to be loaded. It offers two different ways for querying, as well as some methods for information. For demonstration purposes, there also is a Jupyter notebook in the examples/ folder.

      General tools

      There are three types one needs to know when working with Polymake.Polydb:

      Polymake.Polydb.CollectionType
        Collection{T}

      Type for referencing a specific collection. T<:Union{Polymake.BigObject, Mongoc.BSON} defines the template and/or element types returned by operations applied on objects of this type.

      source
      Polymake.Polydb.CursorType
        Cursor{T}

      Type containing the results of a query. Can be iterated, but the iterator can not be reset. For this cause, one has to query again. T<:Union{Polymake.BigObject, Mongoc.BSON} defines the element types.

      source

      To receive the Database object referencing to the polyDB, there is the get_db() method:

      Polymake.Polydb.get_dbMethod
        get_db()

      Connect to the polyDB and return Database instance.

      The uri of the server can be set in advance by writing its String representation into ENV["POLYDBTESTURI"]. (used to connect to the github services container for testing)

      Examples

      julia> db = Polymake.Polydb.get_db();
       
       julia> typeof(db)
      -Polymake.Polydb.Database
      source

      A specific Collection object can then be obtained with the brackets operator:

      Base.getindexMethod
        getindex(db::Database, name::AbstractString)

      Return a Polymake.Polydb.Collection{Polymake.BigObject} instance from db with the given name. Sections and collections in the name are connected with the '.' sign.

      Examples

      julia> db = Polymake.Polydb.get_db();
      +Polymake.Polydb.Database
      source

      A specific Collection object can then be obtained with the brackets operator:

      Base.getindexMethod
        getindex(db::Database, name::AbstractString)

      Return a Polymake.Polydb.Collection{Polymake.BigObject} instance from db with the given name. Sections and collections in the name are connected with the '.' sign.

      Examples

      julia> db = Polymake.Polydb.get_db();
       
       julia> collection = getindex(db, "Polytopes.Lattice.SmoothReflexive")
       Polymake.Polydb.Collection{Polymake.BigObject}: Polytopes.Lattice.SmoothReflexive
       
       julia> collection = db["Matroids.Small"]
      -Polymake.Polydb.Collection{Polymake.BigObject}: Matroids.Small
      source

      By default, the results are parsed to Polymake.BigObjects when accessed, but one may choose to change this behaviour by adjusting the typing template of Collection or Cursor using the following method:

      Polymake.Polydb.CollectionMethod
        Collection{T}(c::Collection)

      Create another Collection object with a specific template parameter referencing the same collection as c. T can be chosen from Polymake.BigObject and Mongoc.BSON.

      Examples

      julia> db = Polymake.Polydb.get_db();
      +Polymake.Polydb.Collection{Polymake.BigObject}: Matroids.Small
      source

      By default, the results are parsed to Polymake.BigObjects when accessed, but one may choose to change this behaviour by adjusting the typing template of Collection or Cursor using the following method:

      Polymake.Polydb.CollectionMethod
        Collection{T}(c::Collection)

      Create another Collection object with a specific template parameter referencing the same collection as c. T can be chosen from Polymake.BigObject and Mongoc.BSON.

      Examples

      julia> db = Polymake.Polydb.get_db();
       
       julia> collection = db["Polytopes.Lattice.SmoothReflexive"]
       Polymake.Polydb.Collection{Polymake.BigObject}: Polytopes.Lattice.SmoothReflexive
      @@ -133,7 +133,7 @@
       Polymake.Polydb.Collection{Mongoc.BSON}: Polytopes.Lattice.SmoothReflexive
       
       julia> collection_bo = Polymake.Polydb.Collection{Polymake.BigObject}(collection_bson)
      -Polymake.Polydb.Collection{Polymake.BigObject}: Polytopes.Lattice.SmoothReflexive
      source

      Information

      Polymake.Polydb.infoFunction
        info(db::Database, level::Base.Integer=1)

      Print a structured list of the sections and collections of the Polydb together with information about each of these (if existent).

      Detail of the output determined by value of level:

      • 1: short description,
      • 2: description,
      • 3: description, authors, maintainers,
      • 4: full info,
      • 5: full info and list of recommended search fields.
      source
        info(c::Collection, level::Base.Integer=1)

      Print information about collection c (if existent).

      Detail of the output determined by value of level:

      • 1: short description,
      • 2: description,
      • 3: description, authors, maintainers,
      • 4: full info,
      • 5: full info and list of recommended search fields.
      source
      Polymake.Polydb.get_collection_namesFunction
        get_collection_names(db::Database)

      Return a Vector{String} containing the names of all collections in the Polydb, excluding meta collections.

      Examples

      julia> db = Polymake.Polydb.get_db();
      +Polymake.Polydb.Collection{Polymake.BigObject}: Polytopes.Lattice.SmoothReflexive
      source

      Information

      Polymake.Polydb.infoFunction
        info(db::Database, level::Base.Integer=1)

      Print a structured list of the sections and collections of the Polydb together with information about each of these (if existent).

      Detail of the output determined by value of level:

      • 1: short description,
      • 2: description,
      • 3: description, authors, maintainers,
      • 4: full info,
      • 5: full info and list of recommended search fields.
      source
        info(c::Collection, level::Base.Integer=1)

      Print information about collection c (if existent).

      Detail of the output determined by value of level:

      • 1: short description,
      • 2: description,
      • 3: description, authors, maintainers,
      • 4: full info,
      • 5: full info and list of recommended search fields.
      source
      Polymake.Polydb.get_collection_namesFunction
        get_collection_names(db::Database)

      Return a Vector{String} containing the names of all collections in the Polydb, excluding meta collections.

      Examples

      julia> db = Polymake.Polydb.get_db();
       
       julia> Polymake.Polydb.get_collection_names(db)
       16-element Vector{String}:
      @@ -148,7 +148,7 @@
        "Tropical.Cubics"
        "Tropical.SchlaefliFan"
        "Polytopes.Lattice.Reflexive"
      - "Polytopes.Combinatorial.CombinatorialTypes"
      source
      Polymake.Polydb.get_fieldsFunction
        get_fields(c::Collection)

      Return a Vector{String} containing the names of the fields of c.

      Examples

      julia> db = Polymake.Polydb.get_db();
      + "Polytopes.Combinatorial.CombinatorialTypes"
      source
      Polymake.Polydb.get_fieldsFunction
        get_fields(c::Collection)

      Return a Vector{String} containing the names of the fields of c.

      Examples

      julia> db = Polymake.Polydb.get_db();
       
       julia> collection = db["Matroids.Small"]
       Polymake.Polydb.Collection{Polymake.BigObject}: Matroids.Small
      @@ -166,7 +166,7 @@
        "REGULAR"
        "TRANSVERSAL"
        "IDENTICALLY_SELF_DUAL"
      - "BETA_INVARIANT"
      source

      Querying

      There are two ways for querying within Polymake.jl.

      Methods

      Mongoc.findFunction
      find(collection::Collection, bson_filter::BSON=BSON();
      + "BETA_INVARIANT"
      source

      Querying

      There are two ways for querying within Polymake.jl.

      Methods

      Mongoc.findFunction
      find(collection::Collection, bson_filter::BSON=BSON();
           options::Union{Nothing, BSON}=nothing) :: Cursor

      Executes a query on collection and returns an iterable Cursor.

      Example

      function find_contract_codes(collection, criteria::Dict=Dict()) :: Vector{String}
           result = Vector{String}()
       
      @@ -189,18 +189,18 @@
       julia> results = Polymake.Polydb.find(collection, query);
       
       julia> typeof(results)
      -Polymake.Polydb.Cursor{Polymake.BigObject}
      source
        find(c::Collection{T}, d::Pair...)

      Search a collection c for documents matching the criteria given by d.

      Examples

      julia> db = Polymake.Polydb.get_db();
      +Polymake.Polydb.Cursor{Polymake.BigObject}
      source
        find(c::Collection{T}, d::Pair...)

      Search a collection c for documents matching the criteria given by d.

      Examples

      julia> db = Polymake.Polydb.get_db();
       
       julia> collection = db["Polytopes.Lattice.SmoothReflexive"];
       
       julia> results = Polymake.Polydb.find(collection, "DIM"=>3, "N_FACETS"=>5);
       
       julia> typeof(results)
      -Polymake.Polydb.Cursor{Polymake.BigObject}
      source

      Macros

      Polymake.Polydb.@selectMacro

      Polymake.Polydb.@select collectionName

      This macro can be used as part of a chain for easy (i.e. human readable) querying. Generate a method asking a container for the entry with key collectionName.

      See also: @filter, @map

      Examples

      julia> db = Polymake.Polydb.get_db();
      +Polymake.Polydb.Cursor{Polymake.BigObject}
      source

      Macros

      Polymake.Polydb.@selectMacro

      Polymake.Polydb.@select collectionName

      This macro can be used as part of a chain for easy (i.e. human readable) querying. Generate a method asking a container for the entry with key collectionName.

      See also: @filter, @map

      Examples

      julia> db = Polymake.Polydb.get_db();
       
       julia> collection = db |>
              Polymake.Polydb.@select("Polytopes.Lattice.SmoothReflexive")
      -Polymake.Polydb.Collection{Polymake.BigObject}: Polytopes.Lattice.SmoothReflexive
      source
      Polymake.Polydb.@filterMacro

      Polymake.Polydb.@filter conditions...

      This macro can be used as part of a chain for easy (i.e. human readable) querying. Convert conditions into the corresponding Dict and generate a method expanding its input by this Dict. Multiple conditions can be passed in the same line and/or in different lines.

      See also: @select, @map

      Examples

      julia> db = Polymake.Polydb.get_db();
      +Polymake.Polydb.Collection{Polymake.BigObject}: Polytopes.Lattice.SmoothReflexive
      source
      Polymake.Polydb.@filterMacro

      Polymake.Polydb.@filter conditions...

      This macro can be used as part of a chain for easy (i.e. human readable) querying. Convert conditions into the corresponding Dict and generate a method expanding its input by this Dict. Multiple conditions can be passed in the same line and/or in different lines.

      See also: @select, @map

      Examples

      julia> db = Polymake.Polydb.get_db();
       
       julia> query_tuple = db |>
              Polymake.Polydb.@select("Polytopes.Lattice.SmoothReflexive") |>
      @@ -225,7 +225,7 @@
               Andreas Paffenholz, paffenholz@opt.tu-darmstadt.de, TU Darmstadt
               Benjamin Lorenz, paffenholz@opt.tu-darmstadt.de, TU Berlin
               Mikkel Oebro
      -    Fields: AFFINE_HULL, CONE_DIM, DIM, EHRHART_POLYNOMIAL, F_VECTOR, FACET_SIZES, FACET_WIDTHS, FACETS, H_STAR_VECTOR, LATTICE_DEGREE, LATTICE_VOLUME, LINEALITY_SPACE, N_BOUNDARY_LATTICE_POINTS, N_EDGES, N_FACETS, N_INTERIOR_LATTICE_POINTS, N_LATTICE_POINTS, N_RIDGES, N_VERTICES, REFLEXIVE, SMOOTH, SELF_DUAL, SIMPLE, TERMINAL, VERTEX_SIZES, VERTICES, VERTICES_IN_FACETS, VERY_AMPLE, ALTSHULER_DET, BALANCED, CENTROID, DIAMETER, NORMAL, N_HILBERT_BASIS, IS_PRISM, IS_PRODUCT, IS_SKEW_PRISM, IS_SIMPLEX_SUM, PRISM_BASE, PRODUCT_FACTORS, SIMPLEX_SUM_BASES, SKEW_PRISM_BASES, Dict{String,Any}("DIM" => Dict{String,Any}("$lte" => 3),"N_VERTICES" => Dict{String,Any}("$eq" => 8)))
      source
      Polymake.Polydb.@mapMacro

      Polymake.Polydb.@map [optFields...]

      This macro can be used as part of a chain for easy (i.e. human readable) querying. Generate a method running a query given a Tuple{Collection, Dict}. If optFields are given (as Strings), the results only contain the stated fields and the objects metadata.

      See also: @select, @filter

      Examples

      julia> db = Polymake.Polydb.get_db();
      +    Fields: AFFINE_HULL, CONE_DIM, DIM, EHRHART_POLYNOMIAL, F_VECTOR, FACET_SIZES, FACET_WIDTHS, FACETS, H_STAR_VECTOR, LATTICE_DEGREE, LATTICE_VOLUME, LINEALITY_SPACE, N_BOUNDARY_LATTICE_POINTS, N_EDGES, N_FACETS, N_INTERIOR_LATTICE_POINTS, N_LATTICE_POINTS, N_RIDGES, N_VERTICES, REFLEXIVE, SMOOTH, SELF_DUAL, SIMPLE, TERMINAL, VERTEX_SIZES, VERTICES, VERTICES_IN_FACETS, VERY_AMPLE, ALTSHULER_DET, BALANCED, CENTROID, DIAMETER, NORMAL, N_HILBERT_BASIS, IS_PRISM, IS_PRODUCT, IS_SKEW_PRISM, IS_SIMPLEX_SUM, PRISM_BASE, PRODUCT_FACTORS, SIMPLEX_SUM_BASES, SKEW_PRISM_BASES, Dict{String,Any}("DIM" => Dict{String,Any}("$lte" => 3),"N_VERTICES" => Dict{String,Any}("$eq" => 8)))
      source
      Polymake.Polydb.@mapMacro

      Polymake.Polydb.@map [optFields...]

      This macro can be used as part of a chain for easy (i.e. human readable) querying. Generate a method running a query given a Tuple{Collection, Dict}. If optFields are given (as Strings), the results only contain the stated fields and the objects metadata.

      See also: @select, @filter

      Examples

      julia> db = Polymake.Polydb.get_db();
       
       julia> results = db |>
              Polymake.Polydb.@select("Polytopes.Lattice.SmoothReflexive") |>
      @@ -239,4 +239,4 @@
        Polymake.BigObjectAllocated(Ptr{Nothing} @0x000000000a431470)
        Polymake.BigObjectAllocated(Ptr{Nothing} @0x000000000bcaf290)
        Polymake.BigObjectAllocated(Ptr{Nothing} @0x00000000098fb670)
      - Polymake.BigObjectAllocated(Ptr{Nothing} @0x000000000a1ba460)
      source
      + Polymake.BigObjectAllocated(Ptr{Nothing} @0x000000000a1ba460)source