Singular

D.15.9.1 afaces

Procedure from library `gitfan.lib` (see gitfan_lib).

Usage:
afaces(a, b, c); a: ideal, d: int, c: int

Purpose:
Returns a list of all a-faces (represented by intvecs). Moreover, it is possible to specify a dimensional bound b, upon which only cones of that dimension and above are returned. Lastly, as the computation is parallizable, one can specify c, the number of cores to be used by the computation.

Return:
a list of intvecs

Example:
 ```LIB "gitfan.lib"; ring R = 0,T(1..3),dp; ideal a = T(1)+T(2)+T(3); list F = afaces(a,3,4); print(F); ==> [1]: ==> 0 ==> [2]: ==> 1,2,3 print(size(F)); ==> 2 // 2nd ex // ring R2 = 0,T(1..3),dp; ideal a2 = T(2)^2*T(3)^2+T(1)*T(3); list F2 = afaces(a2,3,4); print(F2); ==> [1]: ==> 0 ==> [2]: ==> 1,2,3 print(size(F2)); ==> 2 // 3rd ex // ring R3 = 0,T(1..3),dp; ideal a3 = 0; list F3 = afaces(a3,3,4); print(F3); ==> [1]: ==> 0 ==> [2]: ==> 1,2,3 print(size(F3)); ==> 2 // bigger example // ring R = 0,T(1..15),dp; ==> // ** redefining R ** ideal a = T(1)*T(10)-T(2)*T(7)+T(3)*T(6), T(1)*T(11)-T(2)*T(8)+T(4)*T(6), T(1)*T(12)-T(2)*T(9)+T(5)*T(6), T(1)*T(13)-T(3)*T(8)+T(4)*T(7), T(1)*T(14)-T(3)*T(9)+T(5)*T(7), T(1)*T(15)-T(4)*T(9)+T(5)*T(8), T(2)*T(13)-T(3)*T(11)+T(4)*T(10), T(2)*T(14)-T(3)*T(12)+T(5)*T(10), T(2)*T(15)-T(4)*T(12)+T(5)*T(11), T(3)*T(15)-T(4)*T(14)+T(5)*T(13), T(6)*T(13)-T(7)*T(11)+T(8)*T(10), T(6)*T(14)-T(7)*T(12)+T(9)*T(10), T(6)*T(15)-T(8)*T(12)+T(9)*T(11), T(7)*T(15)-T(8)*T(14)+T(9)*T(13), T(10)*T(15)-T(11)*T(14)+T(12)*T(13); int t = timer; list F4 = afaces(a,0,2); print(size(F4)); ==> 814 timer - t; ==> 25 int t = timer; ==> // ** redefining t ** list F4 = afaces(a,0); ==> // ** redefining F4 ** print(size(F4)); ==> 814 timer - t; ==> 26 ```