Documentation

LeanPool.HighContrastHomogenization.Support.Geometry.TriadicCube

Coarse-graining support: Support.Geometry.TriadicCube #

Imported from the Apache-2.0 CoarseGraining development at commit c7ddd76c08ade64fed1b8d2ca51be14dfee8deb4.

A triadic cube specified by an integer scale and an integer lattice index.

  • scale : ℤ

    The integer exponent determining the cube's side length 3 ^ scale.

  • index : Fin d → ℤ

    The integer lattice coordinates locating the cube at its scale.

Instances For
    def HCPolySupport.instDecidableEqTriadicCube.decEq {d✝ : ℕ} (x✝ x✝¹ : TriadicCube d✝) :
    Decidable (x✝ = x✝¹)
    Equations
    Instances For
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        noncomputable def HCPolySupport.cubeScaleFactor {d : ℕ} (Q : TriadicCube d) :

        The cube's side length 3 ^ Q.scale.

        Equations
        Instances For

          Half-open realization of a triadic cube, used for exact cube partitions.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Open realization of a triadic cube, used when analytic lemmas require open domains.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              A triadic cube is bounded as a subset of the ambient finite-dimensional space.

              An open triadic cube is bounded as a subset of the ambient finite-dimensional space.

              The centered triadic cube descriptor at scale 3^m.

              Its source-facing realization openCubeSet (originCube d m) is (-3^m / 2, 3^m / 2)^d. The half-open cubeSet realization is the internal partition representative.

              Equations
              Instances For
                def HCPolySupport.translateCube {d : ℕ} (shift : Fin d → ℤ) (Q : TriadicCube d) :

                Shift the lattice index of a cube while preserving its scale.

                Equations
                Instances For
                  @[simp]
                  theorem HCPolySupport.mem_cubeSet_originCube_iff {d : ℕ} {m : ℤ} {x : Vec d} :
                  x ∈ cubeSet (originCube d m) ↔ ∀ (i : Fin d), -(1 / 2) * 3 ^ m ≤ x i ∧ x i < 1 / 2 * 3 ^ m
                  @[simp]
                  theorem HCPolySupport.mem_openCubeSet_originCube_iff {d : ℕ} {m : ℤ} {x : Vec d} :
                  x ∈ openCubeSet (originCube d m) ↔ ∀ (i : Fin d), -(1 / 2) * 3 ^ m < x i ∧ x i < 1 / 2 * 3 ^ m
                  @[simp]
                  theorem HCPolySupport.mem_cubeSet_translateCube_iff {d : ℕ} {shift : Fin d → ℤ} {Q : TriadicCube d} {x : Vec d} :
                  x ∈ cubeSet (translateCube shift Q) ↔ (x - fun (i : Fin d) => ↑(shift i) * cubeScaleFactor Q) ∈ cubeSet Q
                  @[simp]
                  theorem HCPolySupport.mem_openCubeSet_translateCube_iff {d : ℕ} {shift : Fin d → ℤ} {Q : TriadicCube d} {x : Vec d} :
                  x ∈ openCubeSet (translateCube shift Q) ↔ (x - fun (i : Fin d) => ↑(shift i) * cubeScaleFactor Q) ∈ openCubeSet Q

                  The cube one scale larger, with index (Q.index + 1) / 3 rounded down coordinatewise.

                  Equations
                  Instances For

                    The 3 ^ d children one scale smaller, indexed by the three digits in each coordinate.

                    Equations
                    Instances For

                      The finite set obtained by taking children recursively n times, starting with Q.

                      Equations
                      Instances For

                        The descendants of Q at scale k, or the empty set when k > Q.scale.

                        Equations
                        Instances For
                          noncomputable def HCPolySupport.cubeVolume {d : ℕ} (Q : TriadicCube d) :

                          The side length of the cube raised to the dimension.

                          Equations
                          Instances For