<?xml version="1.0" encoding="utf-8" ?> <!-- for emacs: -*- coding: utf-8 -*- --> <!-- Apache may like this line in the file .htaccess: AddCharset utf-8 .html --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" > <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head><title>Cone -- the class of all rational convex polyhedral cones</title> <link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/> </head> <body> <table class="buttons"> <tr> <td><div><a href="___Cone_sp_st_sp__Cone.html">next</a> | <a href="_common__Face.html">previous</a> | <a href="___Cone_sp_st_sp__Cone.html">forward</a> | <a href="_common__Face.html">backward</a> | up | <a href="index.html">top</a> | <a href="master.html">index</a> | <a href="toc.html">toc</a> | <a href="http://www.math.uiuc.edu/Macaulay2/">Macaulay2 web site</a></div> </td> </tr> </table> <hr/> <div><h1>Cone -- the class of all rational convex polyhedral cones</h1> <div class="single"><h2>Description</h2> <div>A Cone represents a rational convex polyhedral cone. It need not be full dimensional or may contain a proper linear subspace. It can be zero dimensional, i.e. the origin. It is saved as a hash table which contains the generating rays and the basis of the lineality space of the cone as well as the defining half-spaces and hyperplanes. The output of a Cone looks like this:<table class="examples"><tr><td><pre>i1 : posHull matrix {{0,0,-1,-1,1},{2,-2,1,-1,0},{1,1,1,1,0}} o1 = {ambient dimension => 3 } dimension of lineality space => 0 dimension of the cone => 3 number of facets => 5 number of rays => 5 o1 : Cone</pre> </td></tr> </table> <p/> This table displays a short summary of the properties of the Cone. The number of rays is modulo the lineality space. However, one can not access the above information directly, because this is just a virtual hash table generated for the output. The data describing a Cone is extracted by the functions included in this package. A Cone can be constructed as the positive hull (<a href="_pos__Hull.html" title="computes the positive hull of rays, cones, and the cone over a polyhedron">posHull</a>)of a set of rays or as the intersection (<a href="_intersection.html" title="computes the intersection of half-spaces, hyperplanes, cones, and polyhedra">intersection</a>) of a set of linear half-spaces and linear hyperplanes.<p/> As examples for the positive hull consider the following cones:<table class="examples"><tr><td><pre>i2 : R = matrix{{1,2,3,1},{2,3,1,1},{3,1,2,1}} o2 = | 1 2 3 1 | | 2 3 1 1 | | 3 1 2 1 | 3 4 o2 : Matrix ZZ <--- ZZ</pre> </td></tr> <tr><td><pre>i3 : C = posHull R o3 = {ambient dimension => 3 } dimension of lineality space => 0 dimension of the cone => 3 number of facets => 3 number of rays => 3 o3 : Cone</pre> </td></tr> <tr><td><pre>i4 : rays C o4 = | 2 3 1 | | 3 1 2 | | 1 2 3 | 3 3 o4 : Matrix QQ <--- QQ</pre> </td></tr> <tr><td><pre>i5 : LS = matrix{{1},{1},{-2}} o5 = | 1 | | 1 | | -2 | 3 1 o5 : Matrix ZZ <--- ZZ</pre> </td></tr> <tr><td><pre>i6 : C = posHull(R,LS) o6 = {ambient dimension => 3 } dimension of lineality space => 1 dimension of the cone => 3 number of facets => 2 number of rays => 2 o6 : Cone</pre> </td></tr> <tr><td><pre>i7 : rays C o7 = | 0 0 | | -1 1 | | 4 5 | 3 2 o7 : Matrix QQ <--- QQ</pre> </td></tr> </table> <p/> On the other hand, we can use these matrices as defining half-spaces and hyperplanes for the intersection:<table class="examples"><tr><td><pre>i8 : HS = transpose R o8 = | 1 2 3 | | 2 3 1 | | 3 1 2 | | 1 1 1 | 4 3 o8 : Matrix ZZ <--- ZZ</pre> </td></tr> <tr><td><pre>i9 : C = intersection HS o9 = {ambient dimension => 3 } dimension of lineality space => 0 dimension of the cone => 3 number of facets => 3 number of rays => 3 o9 : Cone</pre> </td></tr> <tr><td><pre>i10 : rays C o10 = | 1 7 -5 | | 7 -5 1 | | -5 1 7 | 3 3 o10 : Matrix QQ <--- QQ</pre> </td></tr> <tr><td><pre>i11 : HP = transpose LS o11 = | 1 1 -2 | 1 3 o11 : Matrix ZZ <--- ZZ</pre> </td></tr> <tr><td><pre>i12 : C = intersection(HS,HP) o12 = {ambient dimension => 3 } dimension of lineality space => 0 dimension of the cone => 2 number of facets => 2 number of rays => 2 o12 : Cone</pre> </td></tr> <tr><td><pre>i13 : rays C o13 = | 7 -2 | | -5 4 | | 1 1 | 3 2 o13 : Matrix QQ <--- QQ</pre> </td></tr> </table> <p/> See also<a href="___Working_spwith_spcones.html" title="">Working with cones</a>.</div> </div> <div class="waystouse"><h2>Functions and methods returning a convex rational cone :</h2> <ul><li><span><a href="_dual__Cone.html" title=" computes the dual Cone">dualCone</a> -- computes the dual Cone</span></li> <li><span><a href="_normal__Cone_lp__Polyhedron_cm__Polyhedron_rp.html" title="computes the normal cone of a face of a polyhedron">normalCone(Polyhedron,Polyhedron)</a> -- computes the normal cone of a face of a polyhedron</span></li> <li><span><a href="_pos__Hull.html" title="computes the positive hull of rays, cones, and the cone over a polyhedron">posHull</a> -- computes the positive hull of rays, cones, and the cone over a polyhedron</span></li> <li><span><a href="_pos__Orthant.html" title="generates the positive orthant in n-space">posOrthant</a> -- generates the positive orthant in n-space</span></li> <li><span><a href="_tail__Cone.html" title="computes the tail/recession cone of a polyhedron">tailCone</a> -- computes the tail/recession cone of a polyhedron</span></li> </ul> <h2>Methods that use a convex rational cone :</h2> <ul><li><span>addCone(Cone,Fan), see <span><a href="_add__Cone.html" title="adds cones to a Fan">addCone</a> -- adds cones to a Fan</span></span></li> <li><span>affineImage(Cone,Matrix), see <span><a href="_affine__Image_lp__Matrix_cm__Cone_cm__Matrix_rp.html" title="computes the affine image of a cone">affineImage(Matrix,Cone,Matrix)</a> -- computes the affine image of a cone</span></span></li> <li><span>affineImage(Matrix,Cone), see <span><a href="_affine__Image_lp__Matrix_cm__Cone_cm__Matrix_rp.html" title="computes the affine image of a cone">affineImage(Matrix,Cone,Matrix)</a> -- computes the affine image of a cone</span></span></li> <li><span><a href="_affine__Image_lp__Matrix_cm__Cone_cm__Matrix_rp.html" title="computes the affine image of a cone">affineImage(Matrix,Cone,Matrix)</a> -- computes the affine image of a cone</span></li> <li><span>affinePreimage(Cone,Matrix), see <span><a href="_affine__Preimage_lp__Matrix_cm__Cone_cm__Matrix_rp.html" title="computes the affine preimage of a cone">affinePreimage(Matrix,Cone,Matrix)</a> -- computes the affine preimage of a cone</span></span></li> <li><span>affinePreimage(Matrix,Cone), see <span><a href="_affine__Preimage_lp__Matrix_cm__Cone_cm__Matrix_rp.html" title="computes the affine preimage of a cone">affinePreimage(Matrix,Cone,Matrix)</a> -- computes the affine preimage of a cone</span></span></li> <li><span><a href="_affine__Preimage_lp__Matrix_cm__Cone_cm__Matrix_rp.html" title="computes the affine preimage of a cone">affinePreimage(Matrix,Cone,Matrix)</a> -- computes the affine preimage of a cone</span></li> <li><span>ambDim(Cone), see <span><a href="_amb__Dim.html" title="ambient dimension of a Polyhedron, Cone or Fan">ambDim</a> -- ambient dimension of a Polyhedron, Cone or Fan</span></span></li> <li><span>areCompatible(Cone,Cone), see <span><a href="_are__Compatible.html" title="checks if the intersection of two cones is a face of each">areCompatible</a> -- checks if the intersection of two cones is a face of each</span></span></li> <li><span>commonFace(Cone,Cone), see <span><a href="_common__Face.html" title="checks if the intersection is a face of both Cones or Polyhedra, or of cones with fans">commonFace</a> -- checks if the intersection is a face of both Cones or Polyhedra, or of cones with fans</span></span></li> <li><span>commonFace(Cone,Fan), see <span><a href="_common__Face.html" title="checks if the intersection is a face of both Cones or Polyhedra, or of cones with fans">commonFace</a> -- checks if the intersection is a face of both Cones or Polyhedra, or of cones with fans</span></span></li> <li><span>commonFace(Fan,Cone), see <span><a href="_common__Face.html" title="checks if the intersection is a face of both Cones or Polyhedra, or of cones with fans">commonFace</a> -- checks if the intersection is a face of both Cones or Polyhedra, or of cones with fans</span></span></li> <li><span><a href="___Cone_sp_st_sp__Cone.html" title="computes the direct product of two cones">Cone * Cone</a> -- computes the direct product of two cones</span></li> <li><span><a href="___Cone_sp_st_sp__Polyhedron.html" title="computes the direct product of a cone and a polyhedron">Cone * Polyhedron</a> -- computes the direct product of a cone and a polyhedron</span></li> <li><span><a href="___Cone_sp_pl_sp__Cone.html" title="computes the Minkowski sum of two cones">Cone + Cone</a> -- computes the Minkowski sum of two cones</span></li> <li><span><a href="___Cone_sp_pl_sp__Polyhedron.html" title="computes the Minkowski sum of a cone and a polyhedron">Cone + Polyhedron</a> -- computes the Minkowski sum of a cone and a polyhedron</span></li> <li><span><a href="___Cone_sp_eq_eq_sp__Cone.html" title="equality">Cone == Cone</a> -- equality</span></li> <li><span><a href="___Cone_sp_qu_sp__Cone.html" title="compares the Cones">Cone ? Cone</a> -- compares the Cones</span></li> <li><span>coneToPolyhedron(Cone), see <span><a href="_cone__To__Polyhedron.html" title="converts a cone to class Polyhedron">coneToPolyhedron</a> -- converts a cone to class Polyhedron</span></span></li> <li><span>contains(Cone,Cone), see <span><a href="_contains.html" title="checks if the first argument contains the second argument">contains</a> -- checks if the first argument contains the second argument</span></span></li> <li><span>contains(Cone,Matrix), see <span><a href="_contains.html" title="checks if the first argument contains the second argument">contains</a> -- checks if the first argument contains the second argument</span></span></li> <li><span>contains(Cone,Polyhedron), see <span><a href="_contains.html" title="checks if the first argument contains the second argument">contains</a> -- checks if the first argument contains the second argument</span></span></li> <li><span>contains(Fan,Cone), see <span><a href="_contains.html" title="checks if the first argument contains the second argument">contains</a> -- checks if the first argument contains the second argument</span></span></li> <li><span>contains(List,Cone), see <span><a href="_contains.html" title="checks if the first argument contains the second argument">contains</a> -- checks if the first argument contains the second argument</span></span></li> <li><span>contains(Polyhedron,Cone), see <span><a href="_contains.html" title="checks if the first argument contains the second argument">contains</a> -- checks if the first argument contains the second argument</span></span></li> <li><span><a href="_dim_lp__Cone_rp.html" title="computes the dimension of a cone">dim(Cone)</a> -- computes the dimension of a cone</span></li> <li><span><a href="_direct__Product_lp__Cone_cm__Cone_rp.html" title="computes the direct product of polyhedra and cones">directProduct(Cone,Cone)</a> -- computes the direct product of polyhedra and cones</span></li> <li><span>directProduct(Cone,Polyhedron), see <span><a href="_direct__Product_lp__Cone_cm__Cone_rp.html" title="computes the direct product of polyhedra and cones">directProduct(Cone,Cone)</a> -- computes the direct product of polyhedra and cones</span></span></li> <li><span>directProduct(Polyhedron,Cone), see <span><a href="_direct__Product_lp__Cone_cm__Cone_rp.html" title="computes the direct product of polyhedra and cones">directProduct(Cone,Cone)</a> -- computes the direct product of polyhedra and cones</span></span></li> <li><span>dualCone(Cone), see <span><a href="_dual__Cone.html" title=" computes the dual Cone">dualCone</a> -- computes the dual Cone</span></span></li> <li><span>dualFaceLattice(Cone), see <span><a href="_dual__Face__Lattice_lp__Z__Z_cm__Cone_rp.html" title="computes the dual face lattice of a cone">dualFaceLattice(ZZ,Cone)</a> -- computes the dual face lattice of a cone</span></span></li> <li><span><a href="_dual__Face__Lattice_lp__Z__Z_cm__Cone_rp.html" title="computes the dual face lattice of a cone">dualFaceLattice(ZZ,Cone)</a> -- computes the dual face lattice of a cone</span></li> <li><span>faceLattice(Cone), see <span><a href="_face__Lattice_lp__Z__Z_cm__Cone_rp.html" title="computes the face lattice of a cone">faceLattice(ZZ,Cone)</a> -- computes the face lattice of a cone</span></span></li> <li><span><a href="_face__Lattice_lp__Z__Z_cm__Cone_rp.html" title="computes the face lattice of a cone">faceLattice(ZZ,Cone)</a> -- computes the face lattice of a cone</span></li> <li><span>faces(ZZ,Cone), see <span><a href="_faces.html" title="computes all faces of a certain codimension of a Cone or Polyhedron">faces</a> -- computes all faces of a certain codimension of a Cone or Polyhedron</span></span></li> <li><span>fan(Cone), see <span><a href="_fan.html" title="generates a Fan">fan</a> -- generates a Fan</span></span></li> <li><span>fVector(Cone), see <span><a href="_f__Vector.html" title="computes the f-vector of a Cone or Polyhedron">fVector</a> -- computes the f-vector of a Cone or Polyhedron</span></span></li> <li><span>halfspaces(Cone), see <span><a href="_halfspaces.html" title="computes the defining half-spaces of a Cone or a Polyhedron">halfspaces</a> -- computes the defining half-spaces of a Cone or a Polyhedron</span></span></li> <li><span>hilbertBasis(Cone), see <span><a href="_hilbert__Basis.html" title="computes the Hilbert basis of a Cone">hilbertBasis</a> -- computes the Hilbert basis of a Cone</span></span></li> <li><span>hyperplanes(Cone), see <span><a href="_hyperplanes.html" title="computes the defining hyperplanes of a Cone or a Polyhedron">hyperplanes</a> -- computes the defining hyperplanes of a Cone or a Polyhedron</span></span></li> <li><span>imageFan(Matrix,Cone), see <span><a href="_image__Fan.html" title=" computes the fan of the image">imageFan</a> -- computes the fan of the image</span></span></li> <li><span>incompCones(Cone,Fan), see <span><a href="_incomp__Cones.html" title="returns the pairs of incompatible cones">incompCones</a> -- returns the pairs of incompatible cones</span></span></li> <li><span>incompCones(Fan,Cone), see <span><a href="_incomp__Cones.html" title="returns the pairs of incompatible cones">incompCones</a> -- returns the pairs of incompatible cones</span></span></li> <li><span>inInterior(Matrix,Cone), see <span><a href="_in__Interior.html" title="checks if a point lies in the relative interior of a Cone/Polyhedron">inInterior</a> -- checks if a point lies in the relative interior of a Cone/Polyhedron</span></span></li> <li><span>interiorVector(Cone), see <span><a href="_interior__Vector.html" title="computes a vector in the relative interior of a Cone">interiorVector</a> -- computes a vector in the relative interior of a Cone</span></span></li> <li><span>intersection(Cone,Cone), see <span><a href="_intersection.html" title="computes the intersection of half-spaces, hyperplanes, cones, and polyhedra">intersection</a> -- computes the intersection of half-spaces, hyperplanes, cones, and polyhedra</span></span></li> <li><span>intersection(Cone,Polyhedron), see <span><a href="_intersection.html" title="computes the intersection of half-spaces, hyperplanes, cones, and polyhedra">intersection</a> -- computes the intersection of half-spaces, hyperplanes, cones, and polyhedra</span></span></li> <li><span>intersection(Polyhedron,Cone), see <span><a href="_intersection.html" title="computes the intersection of half-spaces, hyperplanes, cones, and polyhedra">intersection</a> -- computes the intersection of half-spaces, hyperplanes, cones, and polyhedra</span></span></li> <li><span>isFace(Cone,Cone), see <span><a href="_is__Face.html" title="tests if the first argument is a face of the second">isFace</a> -- tests if the first argument is a face of the second</span></span></li> <li><span>isPointed(Cone), see <span><a href="_is__Pointed.html" title="checks if a Cone or Fan is pointed">isPointed</a> -- checks if a Cone or Fan is pointed</span></span></li> <li><span>isSmooth(Cone), see <span><a href="_is__Smooth.html" title="checks if a Cone or Fan is smooth">isSmooth</a> -- checks if a Cone or Fan is smooth</span></span></li> <li><span>linSpace(Cone), see <span><a href="_lin__Space.html" title="computes a basis of the lineality space">linSpace</a> -- computes a basis of the lineality space</span></span></li> <li><span>maxFace(Matrix,Cone), see <span><a href="_max__Face.html" title="computes the face of a Polyhedron or Cone where a weight attains its maximum">maxFace</a> -- computes the face of a Polyhedron or Cone where a weight attains its maximum</span></span></li> <li><span>minFace(Matrix,Cone), see <span><a href="_min__Face.html" title="computes the face of a Polyhedron or Cone where a weight attains its minimum">minFace</a> -- computes the face of a Polyhedron or Cone where a weight attains its minimum</span></span></li> <li><span>minkowskiSum(Cone,Cone), see <span><a href="_minkowski__Sum.html" title=" computes the Minkowski sum of two convex objects">minkowskiSum</a> -- computes the Minkowski sum of two convex objects</span></span></li> <li><span>minkowskiSum(Cone,Polyhedron), see <span><a href="_minkowski__Sum.html" title=" computes the Minkowski sum of two convex objects">minkowskiSum</a> -- computes the Minkowski sum of two convex objects</span></span></li> <li><span>minkowskiSum(Polyhedron,Cone), see <span><a href="_minkowski__Sum.html" title=" computes the Minkowski sum of two convex objects">minkowskiSum</a> -- computes the Minkowski sum of two convex objects</span></span></li> <li><span><a href="_net_lp__Cone_rp.html" title="displays characteristics of a cone">net(Cone)</a> -- displays characteristics of a cone</span></li> <li><span><a href="___Polyhedron_sp_st_sp__Cone.html" title="computes the direct product of a polyhedron and a cone">Polyhedron * Cone</a> -- computes the direct product of a polyhedron and a cone</span></li> <li><span><a href="___Polyhedron_sp_pl_sp__Cone.html" title="computes the Minkowski sum of a polyhedron and a cone">Polyhedron + Cone</a> -- computes the Minkowski sum of a polyhedron and a cone</span></li> <li><span>posHull(Cone,Cone), see <span><a href="_pos__Hull.html" title="computes the positive hull of rays, cones, and the cone over a polyhedron">posHull</a> -- computes the positive hull of rays, cones, and the cone over a polyhedron</span></span></li> <li><span>proximum(Matrix,Cone), see <span><a href="_proximum.html" title="computes the proximum of the Polyhedron/Cone to a point in euclidian metric">proximum</a> -- computes the proximum of the Polyhedron/Cone to a point in euclidian metric</span></span></li> <li><span>rays(Cone), see <span><a href="_rays.html" title="displays all rays of a Cone, a Fan, or a Polyhedron">rays</a> -- displays all rays of a Cone, a Fan, or a Polyhedron</span></span></li> <li><span>smallestFace(Matrix,Cone), see <span><a href="_smallest__Face.html" title="determines the smallest face of the Cone/Polyhedron containing a point">smallestFace</a> -- determines the smallest face of the Cone/Polyhedron containing a point</span></span></li> </ul> </div> <div class="waystouse"><h2>For the programmer</h2> <p>The object <a href="___Cone.html" title="the class of all rational convex polyhedral cones">Cone</a> is <span>a <a href="../../Macaulay2Doc/html/___Type.html">type</a></span>, with ancestor classes <a href="___Polyhedral__Object.html" title="the class of all polyhedral objects in Polyhedra">PolyhedralObject</a> < <a href="../../Macaulay2Doc/html/___Hash__Table.html" title="the class of all hash tables">HashTable</a> < <a href="../../Macaulay2Doc/html/___Thing.html" title="the class of all things">Thing</a>.</p> </div> </div> </body> </html>