A must be a matrix from the ambient space of the cone C to some other target space and b must be a vector in that target space, i.e. the number of columns of A must equal the ambient dimension of C and A and b must have the same number of rows. Then affineImage computes the polyhedron {(A*c)+b | c in C} and the cone {A*c | c in C} if b is 0 or omitted. If A is omitted then it is set to identity.
For example, consider the following three dimensional cone.
i1 : C = posHull matrix {{1,2,3},{3,1,2},{2,3,1}} o1 = {ambient dimension => 3 } dimension of lineality space => 0 dimension of the cone => 3 number of facets => 3 number of rays => 3 o1 : Cone |
This Cone can be mapped to the positive orthant:
i2 : A = matrix {{-5,7,1},{1,-5,7},{7,1,-5}} o2 = | -5 7 1 | | 1 -5 7 | | 7 1 -5 | 3 3 o2 : Matrix ZZ <--- ZZ |
i3 : C1 = affineImage(A,C) o3 = {ambient dimension => 3 } dimension of lineality space => 0 dimension of the cone => 3 number of facets => 3 number of rays => 3 o3 : Cone |
i4 : rays C1 o4 = | 1 0 0 | | 0 1 0 | | 0 0 1 | 3 3 o4 : Matrix ZZ <--- ZZ |