Next: mathematical, Previous: histograms/@Hist, Up: Directory Index [Contents][Index]
Return covering-radius for the An lattice in n dimensions referring to lattice-definition corresponding to the generator returned by getAnsLatticeGenerator.m, i.e. Chap.4, Eq.(52) in Conway&Sloane(1999):
can handle vector input
assert(AnCoveringRadius(1) > 0)
assert(AnCoveringRadius(2) > 0)
assert(AnCoveringRadius(3) > 0)
assert(AnCoveringRadius(4) > 0)
assert(AnCoveringRadius(5) > 0)
return the closest point of the An-lattice to the given point x in R^n based on Chap.20.2 ’Algorithm 3’ in Conway&Sloane (1999)
this function can handle vector input
The boolean option input embedded (default=false) governs whether the input vectors are interpreted as vectors in the (n+1) dimensional embedding space of the lattice, otherwise they are interpreted as n-dimensional vectors in an n-dimensional lattice
The returned lattice vectors use the same representation asthe input-vectors (i.e. embedded or not)
can handle vector input
x = rand(3, 100000); dx = x - AnFindClosestPoint(x); assert(max(sqrt(dot(dx, dx))) <= AnCoveringRadius(3));
return an nxn full-rank generating matrix for an An lattice, based on the (n+1)xn generator of Chap.4,Eq.(52) in Conway&Sloane(1999)
also returns the rotation-matrix that takes the nxn generator back to the (n+1)x n representation of the lattice space in n+1 dimensions, which is simply obtained by QR-decomposition of the (n+1)x n dimensional generator.
assert(issquare(AnsGenerator(1)))
assert(issquare(AnsGenerator(2)))
assert(issquare(AnsGenerator(3)))
assert(issquare(AnsGenerator(4)))
assert(issquare(AnsGenerator(5)))
Return the packing-radius for An* lattice in n dimensions,
from Chap.4, Eq.(79) in Conway&Sloane(1999)
referring to lattice-definition corresponding to the generator
returned by AnLatticeGenerator(), i.e. Chap.4, Eq.(76) of CS99
can handle vector input
assert(AnPackingRadius(1) == 1/sqrt(2))
assert(AnPackingRadius(5) == 1/sqrt(2))
Return covering-radius for An* lattice in n dimensions referring to lattice-definition corresponding to the generator returned by getAnsLatticeGenerator.m, i.e. Chap.4, Eq.(76) in Conway&Sloane(1999):
can handle vector input
assert(AnsCoveringRadius(1) > 0)
assert(AnsCoveringRadius(2) > 0)
assert(AnsCoveringRadius(3) > 0)
assert(AnsCoveringRadius(4) > 0)
assert(AnsCoveringRadius(5) > 0)
return the closest point of the An*-lattice to the given point x in R^n based on Chap.20.3 ’Algorithm 4’ in Conway&Sloane (1999)
The boolean option input embedded (default=false) governs whether the input vectors are interpreted as vectors in the (n+1) dimensional embedding space of the lattice, otherwise they are interpreted as n-dimensional vectors in an n-dimensional lattice
The returned lattice vectors use the same representation asthe input-vectors (i.e. embedded or not)
can handle vector input
x = rand(3, 100000); dx = x - AnsFindClosestPoint(x); assert(max(sqrt(dot(dx, dx))) <= AnsCoveringRadius(3));
return an nxn full-rank generating matrix for an An* lattice, based on the (n+1)xn generator of Chap.4, Eq.(76) in Conway&Sloane(1999),
also returns a rotation-matrix that takes the nxn generator back to the (n+1)x n dimensional representation of the lattice space in n+1 dimensions. This is simply obtained by QR-decomposition of the (n+1)xn generator.
assert(issquare(AnsGenerator(1)))
assert(issquare(AnsGenerator(2)))
assert(issquare(AnsGenerator(3)))
assert(issquare(AnsGenerator(4)))
assert(issquare(AnsGenerator(5)))
Return the "kissing number", i.e. number of touching spheres to one lattice cell for an An* lattice in n dimensions, Sect.6.6 in Conway&Sloane(1999)
can handle vector input
assert(AnsKissingNumber(1) > 0)
assert(AnsKissingNumber(2) > 0)
assert(AnsKissingNumber(3) > 0)
assert(AnsKissingNumber(4) > 0)
assert(AnsKissingNumber(5) > 0)
return matrix containing the tau/2=(n+1) ’minimal’ vectors for An*, (tau is the kissing number) in n dimensions. The second half of minimal vectors is simply obtained by multiplying these by (-1). From Conway&Sloane(1991) "The cell Structure of Certain Lattices"
assert(size(AnsMinimalVectors(1)), [1, 2])
assert(size(AnsMinimalVectors(2)), [2, 3])
assert(size(AnsMinimalVectors(3)), [3, 4])
assert(size(AnsMinimalVectors(4)), [4, 5])
assert(size(AnsMinimalVectors(5)), [5, 6])
normalized thickness (=center density) of An* lattice, from Chap.4, Eq.(82) in Conway&Sloane(1999)
can handle vector input
assert(AnsNormalizedThickness(1) > 0)
assert(AnsNormalizedThickness(2) > 0)
assert(AnsNormalizedThickness(3) > 0)
assert(AnsNormalizedThickness(4) > 0)
assert(AnsNormalizedThickness(5) > 0)
Return the number of Voronoi-facets for An* lattice, which corresponds to the maximal number of facets of an n-dimension parallelohedron (see CS99), namely 2 ( 2^dim - 1 )
can handle vector input
assert(AnsNumVoronoiFacets(1) > 0)
assert(AnsNumVoronoiFacets(2) > 0)
assert(AnsNumVoronoiFacets(3) > 0)
assert(AnsNumVoronoiFacets(4) > 0)
assert(AnsNumVoronoiFacets(5) > 0)
Return the packing-radius for An* lattice in n dimensions,
from Chap.4, Eq.(79) in Conway&Sloane(1999)
referring to lattice-definition corresponding to the generator
returned by AnsLatticeGenerator(), i.e. Chap.4, Eq.(76) of CS99
can handle vector input
assert(AnsPackingRadius(1) > 0)
assert(AnsPackingRadius(2) > 0)
assert(AnsPackingRadius(3) > 0)
assert(AnsPackingRadius(4) > 0)
assert(AnsPackingRadius(5) > 0)
covering thickness of An* lattice for dimension n, from Chap.4, Eq.(82) in Conway&Sloane (1999)
can handle vector input
assert(AnsThickness(1) > 0)
assert(AnsThickness(2) > 0)
assert(AnsThickness(3) > 0)
assert(AnsThickness(4) > 0)
assert(AnsThickness(5) > 0)
Return the "lattice-volume" (i.e. the volume of an elementary lattice-cell) for an An* lattice in dim dimensions. This is referring to the lattice-definition used by AnsGenerator.m, i.e. Chap.4, Eq.(76) of Conway&Sloane(1999).
can handle vector input
assert(AnsVolume(1) > 0)
assert(AnsVolume(2) > 0)
assert(AnsVolume(3) > 0)
assert(AnsVolume(4) > 0)
assert(AnsVolume(5) > 0)
Return the "lattice-volume" (i.e. the volume of an elementary lattice-cell) for an An lattice in dim dimensions. This is referring to the lattice-definition used by AnGenerator.m,
can handle vector input
assert(AnVolume(1) > 0)
assert(AnVolume(2) > 0)
assert(AnVolume(3) > 0)
assert(AnVolume(4) > 0)
assert(AnVolume(5) > 0)
returns Coxter-Few-Rogers bound on thickness in dimension n taken from Conway&Sloane (1999), Chap.2, Eq.(17)
can handle vector input
assert(CoxeterFewRogersBound(1) > 0)
assert(CoxeterFewRogersBound(2) > 0)
assert(CoxeterFewRogersBound(3) > 0)
assert(CoxeterFewRogersBound(4) > 0)
assert(CoxeterFewRogersBound(5) > 0)
returns Coxter-Few-Rogers bound on normalized thickness in dimension n taken from Conway&Sloane (1999), Chap.2, Eq.(17)
can handle vector input
assert(CoxeterFewRogersBoundNormalized(1) > 0)
assert(CoxeterFewRogersBoundNormalized(2) > 0)
assert(CoxeterFewRogersBoundNormalized(3) > 0)
assert(CoxeterFewRogersBoundNormalized(4) > 0)
assert(CoxeterFewRogersBoundNormalized(5) > 0)
Return a struct holding important properties of An* lattice in n-dimensions from Chap.4, Sect.6.6 in Conway&Sloane(1999):
assert(isstruct(getAnsLatticeProperties(1)))
assert(isstruct(getAnsLatticeProperties(2)))
assert(isstruct(getAnsLatticeProperties(3)))
assert(isstruct(getAnsLatticeProperties(4)))
assert(isstruct(getAnsLatticeProperties(5)))
return the covering radius for the given lattice
lattice is one of the strings {Zn, An, Ans}
can handle vector input in dim
assert(LatticeCoveringRadius(1, "Zn") > 0)
assert(LatticeCoveringRadius(1, "An") > 0)
assert(LatticeCoveringRadius(1, "Ans") > 0)
assert(LatticeCoveringRadius(2, "Zn") > 0)
assert(LatticeCoveringRadius(2, "An") > 0)
assert(LatticeCoveringRadius(2, "Ans") > 0)
assert(LatticeCoveringRadius(3, "Zn") > 0)
assert(LatticeCoveringRadius(3, "An") > 0)
assert(LatticeCoveringRadius(3, "Ans") > 0)
return the closest point of the lattice to the given point x in R^n
This is just a wrapper to the lower-level lattice-specific functions.
lattice is one of the strings {Zn, An, Ans}
can handle vector input in x
assert(isvector(LatticeFindClosestPoint(rand(4, 1), "Zn")))
assert(isvector(LatticeFindClosestPoint(rand(4, 1), "An")))
assert(isvector(LatticeFindClosestPoint(rand(4, 1), "Ans")))
return an nxn full-rank generating matrix for the specified lattice
This is just a wrapper to the lower-level lattice-specific functions.
lattice is one of the strings {Zn, An, Ans}
assert(issquare(LatticeGenerator(1, "Zn")))
assert(issquare(LatticeGenerator(1, "An")))
assert(issquare(LatticeGenerator(1, "Ans")))
assert(issquare(LatticeGenerator(2, "Zn")))
assert(issquare(LatticeGenerator(2, "An")))
assert(issquare(LatticeGenerator(2, "Ans")))
assert(issquare(LatticeGenerator(3, "Zn")))
assert(issquare(LatticeGenerator(3, "An")))
assert(issquare(LatticeGenerator(3, "Ans")))
Generates a normalised mismatch histogram for the given lattice
returned mismatch histogram
number of lattice dimensions
lattice type; see e.g. LatticeFindClosestPoint()
Nnumber of points to use in generating histogram [default:1e6]
dbinbin size of histogram [default: 0.01]
mu_maxuse this maximum mismatch [default: 1.0]
use_cacheif true [default], use a cached version of the lattice mismatch histogram, if available. Note that the cached histogram will probably contain more points than requested in N.
See the tutorial on LatticeMismatchHist().
returns normalized thicknesses in n dimensions lattice is one of the strings { "Zn", "Ans" }
can handle vector input in dim
assert(LatticeNormalizedThickness(1, "Zn") > 0)
assert(LatticeNormalizedThickness(1, "Ans") > 0)
assert(LatticeNormalizedThickness(2, "Zn") > 0)
assert(LatticeNormalizedThickness(2, "Ans") > 0)
assert(LatticeNormalizedThickness(3, "Zn") > 0)
assert(LatticeNormalizedThickness(3, "Ans") > 0)
return the packing radius for the given lattice
lattice is one of the strings {Zn, An, Ans}
can handle vector input in dim
assert(LatticePackingRadius(1, "Zn") > 0)
assert(LatticePackingRadius(1, "An") > 0)
assert(LatticePackingRadius(1, "Ans") > 0)
assert(LatticePackingRadius(2, "Zn") > 0)
assert(LatticePackingRadius(2, "An") > 0)
assert(LatticePackingRadius(2, "Ans") > 0)
assert(LatticePackingRadius(3, "Zn") > 0)
assert(LatticePackingRadius(3, "An") > 0)
assert(LatticePackingRadius(3, "Ans") > 0)
return the lattice volume (ie volume of the fundamental cell) of given lattice’ lattice is one of the strings { "Zn", "An", "Ans" }
can handle vector input in dim
assert(LatticeVolume(1, "Zn") > 0)
assert(LatticeVolume(1, "An") > 0)
assert(LatticeVolume(1, "Ans") > 0)
assert(LatticeVolume(2, "Zn") > 0)
assert(LatticeVolume(2, "An") > 0)
assert(LatticeVolume(2, "Ans") > 0)
assert(LatticeVolume(3, "Zn") > 0)
assert(LatticeVolume(3, "An") > 0)
assert(LatticeVolume(3, "Ans") > 0)
volume of regular simplex in n dimensions with unit side-length, Chap.21, Eq.(12) in Conway&Sloane (1999)
can handle vector input
assert(RegularSimplexVolume(1) > 0)
assert(RegularSimplexVolume(2) > 0)
assert(RegularSimplexVolume(3) > 0)
assert(RegularSimplexVolume(4) > 0)
assert(RegularSimplexVolume(5) > 0)
Rogers’ upper bound on (normalized) packing density in n dimensions from Chap.1, Conway&Sloane(1999)
can handle vector input
assert(RogersBoundNormalized(1:5) > 0)
Volume of unit hypersphere in n dimensions: Vn = pi^(n/2) / (n/2)!, from Chap.21, Eq.(7) in Conway&Sloane(1999)
can handle vector input
assert(UnitHypersphereVolume(1) > 0)
assert(UnitHypersphereVolume(2) > 0)
assert(UnitHypersphereVolume(3) > 0)
assert(UnitHypersphereVolume(4) > 0)
assert(UnitHypersphereVolume(5) > 0)
Return covering-radius for the Zn lattice in n dimensions
can handle vector input
assert(ZnCoveringRadius(1) > 0)
assert(ZnCoveringRadius(2) > 0)
assert(ZnCoveringRadius(3) > 0)
assert(ZnCoveringRadius(4) > 0)
assert(ZnCoveringRadius(5) > 0)
return the closest point of the (hypercubic) Zn-lattice to the given point x in R^n based on Chap.20.2 in Conway&Sloane (1999). This is the most trivial case.
can handle vector input
x = rand(3, 100000); dx = x - ZnFindClosestPoint(x); assert(max(sqrt(dot(dx, dx))) <= ZnCoveringRadius(3));
Return an nxn full-rank generating matrix for the Zn lattice; this is trivial, of course, but added for completeness.
assert(issquare(ZnGenerator(1)))
assert(issquare(ZnGenerator(2)))
assert(issquare(ZnGenerator(3)))
assert(issquare(ZnGenerator(4)))
assert(issquare(ZnGenerator(5)))
returns normalized thickness of hypercubic grid in n dimensions
can handle vector input
assert(ZnNormalizedThickness(1) > 0)
assert(ZnNormalizedThickness(2) > 0)
assert(ZnNormalizedThickness(3) > 0)
assert(ZnNormalizedThickness(4) > 0)
assert(ZnNormalizedThickness(5) > 0)
Return packing-radius for the Zn lattice in n dimensions
can handle vector input
assert(ZnPackingRadius(1) == 1/2)
assert(ZnPackingRadius(5) == 1/2)
normalized thickness of hypercubic grid in n dimensions
can handle vector input
assert(ZnThickness(1) > 0)
assert(ZnThickness(2) > 0)
assert(ZnThickness(3) > 0)
assert(ZnThickness(4) > 0)
assert(ZnThickness(5) > 0)
Return the "lattice-volume" (i.e. the volume of an elementary lattice-cell) for a Zn lattice in dim dimensions. This is referring to the lattice-definition used by ZnGenerator.m,
can handle vector input
assert(ZnVolume(1) > 0)
assert(ZnVolume(2) > 0)
assert(ZnVolume(3) > 0)
assert(ZnVolume(4) > 0)
assert(ZnVolume(5) > 0)
Next: mathematical, Previous: histograms/@Hist, Up: Directory Index [Contents][Index]