Example: Number-field subdivision

Profiles: OSCAR v1.2, OSCAR v1.3, OSCAR v1.4, OSCAR v1.5, OSCAR v1.6, OSCAR v1.7, OSCAR v1.8

Construct a subdivision of points over an embedded number field.

Systems

Oscar.jl

Generate code (generate.jl) [ edit ]

using Oscar

Qx, x = QQ[:x]
F, a = embedded_number_field(x^2 - 2, -1.0)
moaepts = [4 0 0; 0 4 0; 0 0 4; 2 1 1; 1 2 1; 1 1 2]
moaeimnonreg0 = incidence_matrix([[4,5,6],[1,4,2],[2,4,5],[2,3,5],[3,5,6],[1,3,6],[1,4,6]])
obj = subdivision_of_points(F, F.(moaepts), moaeimnonreg0)

save("data.mrdi", obj)

Data outputs

Profiles: OSCAR v1.0

Not available for OSCAR v1.0.

In OSCAR v1.0-1.1 the generator does not run successfully; the exact failure mode varies across versions.

Profiles: OSCAR v1.1

Not available for OSCAR v1.1.

In OSCAR v1.0-1.1 the generator does not run successfully; the exact failure mode varies across versions.

Profiles: OSCAR v1.2, OSCAR v1.3

Data file: data.mrdi

{
  "_ns": {"Oscar": ["https://github.com/oscar-system/Oscar.jl", "1.3.1"]},
  "_type": {"name": "SubdivisionOfPoints", "params": "104e6608-34ea-4af3-b8ba-a13939abc6ba"},
  "data": {
    "_type": {
      "name": "Dict",
      "params": {
        "key_type": "String",
        "_coeff": "EmbeddedNumField",
        "POINTS": {"name": "MatElem", "params": "830057ae-bf5e-498e-875c-fdd163ea26c1"},
        "_type": "String",
        "MAXIMAL_CELLS": "Polymake.IncidenceMatrixAllocated{Polymake.NonSymmetric}"
      }
    },
    "data": {
      "_coeff": {
        "num_field": "56f36ea2-5718-4573-a6d6-a9b3dbacee10",
        "embedding": "2cb7e8ba-4365-41bf-8504-a1895941d544"
      },
      "POINTS": [
        [[["0", "1"]], [["0", "4"]], [], []],
        [[["0", "1"]], [], [["0", "4"]], []],
        [[["0", "1"]], [], [], [["0", "4"]]],
        [[["0", "1"]], [["0", "2"]], [["0", "1"]], [["0", "1"]]],
        [[["0", "1"]], [["0", "1"]], [["0", "2"]], [["0", "1"]]],
        [[["0", "1"]], [["0", "1"]], [["0", "1"]], [["0", "2"]]]
      ],
      "_type": "fan::SubdivisionOfPoints<OscarNumber>",
      "MAXIMAL_CELLS": {
        "data": [[3, 4, 5], [0, 1, 3], [1, 3, 4], [1, 2, 4], [2, 4, 5], [0, 2, 5], [0, 3, 5], {"cols": 6}],
        "_type": "common::IncidenceMatrix<NonSymmetric>",
        "_ns": {"polymake": ["https://polymake.org", "4.13"]}
      }
    }
  },
  "_refs": {
    "104e6608-34ea-4af3-b8ba-a13939abc6ba": {
      "_type": "EmbeddedNumField",
      "data": {
        "num_field": "56f36ea2-5718-4573-a6d6-a9b3dbacee10",
        "embedding": "2cb7e8ba-4365-41bf-8504-a1895941d544"
      }
    },
    "830057ae-bf5e-498e-875c-fdd163ea26c1": {
      "_type": "MatSpace",
      "data": {"base_ring": "104e6608-34ea-4af3-b8ba-a13939abc6ba", "ncols": "4", "nrows": "6"}
    },
    "56f36ea2-5718-4573-a6d6-a9b3dbacee10": {
      "_type": "AbsSimpleNumField",
      "data": {
        "def_pol": {
          "_type": {"name": "PolyRingElem", "params": "b2b70a11-5c95-46d0-81aa-c61229942ecf"},
          "data": [["0", "-2"], ["2", "1"]]
        },
        "var": "a"
      }
    },
    "2cb7e8ba-4365-41bf-8504-a1895941d544": {
      "_type": "Hecke.AbsSimpleNumFieldEmbedding",
      "data": {
        "num_field": "56f36ea2-5718-4573-a6d6-a9b3dbacee10",
        "data": {
          "_type": {"name": "AcbFieldElem", "params": {"_type": "AcbField", "data": "35"}},
          "data": ["-5a827999f -22 10000001 -3e", "0 0 0 0"]
        }
      }
    },
    "b2b70a11-5c95-46d0-81aa-c61229942ecf": {"_type": "PolyRing", "data": {"base_ring": {"_type": "QQField"}, "symbols": ["x"]}}
  }
}

This serialized output is equivalent for these profiles up to UUID renaming and recorded namespace version strings.

Profiles: OSCAR v1.4, OSCAR v1.5, OSCAR v1.6, OSCAR v1.7

Data file: data.mrdi

{
  "_ns": {"Oscar": ["https://github.com/oscar-system/Oscar.jl", "1.7.0"]},
  "_type": {
    "name": "SubdivisionOfPoints",
    "params": {
      "field": "c8abb118-3e41-4220-ab32-e76c501ffa80",
      "pm_params": {
        "name": "Dict",
        "params": {
          "key_params": "Symbol",
          "_polymake_type": "String",
          "MAXIMAL_CELLS": "Polymake.IncidenceMatrixAllocated{Polymake.NonSymmetric}",
          "POINTS": {"name": "MatElem", "params": "5b2222f9-03b8-4da6-967d-c7ac8f02c34f"}
        }
      }
    }
  },
  "data": {
    "_polymake_type": "fan::SubdivisionOfPoints<OscarNumber>",
    "MAXIMAL_CELLS": {
      "_ns": {"polymake": ["https://polymake.org", "4.15"]},
      "data": [[3, 4, 5], [0, 1, 3], [1, 3, 4], [1, 2, 4], [2, 4, 5], [0, 2, 5], [0, 3, 5], {"cols": 6}],
      "_type": "common::IncidenceMatrix<NonSymmetric>"
    },
    "POINTS": [
      [[["0", "1"]], [["0", "4"]], [], []],
      [[["0", "1"]], [], [["0", "4"]], []],
      [[["0", "1"]], [], [], [["0", "4"]]],
      [[["0", "1"]], [["0", "2"]], [["0", "1"]], [["0", "1"]]],
      [[["0", "1"]], [["0", "1"]], [["0", "2"]], [["0", "1"]]],
      [[["0", "1"]], [["0", "1"]], [["0", "1"]], [["0", "2"]]]
    ]
  },
  "_refs": {
    "c8abb118-3e41-4220-ab32-e76c501ffa80": {
      "_type": {"name": "EmbeddedNumField", "params": "df86748c-4085-4fac-a01d-8dae2d23c1d8"},
      "data": []
    },
    "5b2222f9-03b8-4da6-967d-c7ac8f02c34f": {
      "_type": {"name": "MatSpace", "params": "c8abb118-3e41-4220-ab32-e76c501ffa80"},
      "data": {"ncols": "4", "nrows": "6"}
    },
    "df86748c-4085-4fac-a01d-8dae2d23c1d8": {
      "_type": {"name": "Hecke.AbsSimpleNumFieldEmbedding", "params": "503279d5-fda8-4fbd-96d2-d6a5080024ba"},
      "data": ["-5a827999f -22 10000001 -3e", "0 0 0 0"]
    },
    "503279d5-fda8-4fbd-96d2-d6a5080024ba": {
      "_type": {"name": "AbsSimpleNumField", "params": "a78c482c-7f1a-4290-9be9-a4c6c8f3a0fa"},
      "data": {"def_pol": [["0", "-2"], ["2", "1"]], "var": "a"}
    },
    "a78c482c-7f1a-4290-9be9-a4c6c8f3a0fa": {"_type": {"name": "PolyRing", "params": {"_type": "QQField"}}, "data": {"symbols": ["x"]}}
  }
}

This serialized output is equivalent for these profiles up to UUID renaming and recorded namespace version strings.