Description
A must be a matrix from some source space to the ambient space of
C and
b must be a vector in that ambient space, i.e. the number of rows of
A must equal the ambient dimension of
C and the number of rows of
b.
affinePreimage then computes the polyhedron
{q | (A*q)+b in C} or the cone
{q | (A*q) 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 = coneFromVData matrix {{1,2,3},{3,1,2},{2,3,1}}
o1 = C
o1 : Cone
|
We can look at its preimage under the following map:
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 = affinePreimage(A,C)
o3 = C1
o3 : Cone
|
i4 : rays C1
o4 = | 13 13 10 |
| 13 10 13 |
| 10 13 13 |
3 3
o4 : Matrix ZZ <--- ZZ
|