# Singular

##### 7.7.13.0. homogfacNthQWeyl_all
Procedure from library `ncfactor.lib` (see ncfactor_lib).

Usage:
homogfacNthQWeyl_all(h); h is a homogeneous polynomial in the n'th q-Weyl algebra with respect to the weight vector
[-1,...,-1,1,...,1].
\__ __/ \__ __/ \/ \/ n/2 n/2

Return:
list

Purpose:
Computes all factorizations of a homogeneous polynomial h in the n'th q-Weyl algebra

Theory:
`homogfacNthQWeyl` returns a list with lists representing each a factorization of the given,
[-1,...,-1,1,...,1]-homogeneous polynomial.

General assumptions:
- The basering is the nth Weyl algebra and has the form, that the first n variables represent x1, ..., xn, and the second n variables do represent the d1, ..., dn. - We have n parameters q_1,..., q_n given.

Example:
 ```LIB "ncfactor.lib"; ring R = (0,q1,q2,q3),(x1,x2,x3,d1,d2,d3),dp; matrix C[6][6] = 1,1,1,q1,1,1, 1,1,1,1,q2,1, 1,1,1,1,1,q3, 1,1,1,1,1,1, 1,1,1,1,1,1, 1,1,1,1,1,1; matrix D[6][6] = 0,0,0,1,0,0, 0,0,0,0,1,0, 0,0,0,0,0,1, -1,0,0,0,0,0, 0,-1,0,0,0,0, 0,0,-1,0,0,0; def r = nc_algebra(C,D); setring(r); poly h =x1*x2^2*x3^3*d1*d2^2+x2*x3^3*d2; homogfacNthQWeyl_all(h); ==> [1]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [3]: ==> x2 ==> [4]: ==> d2 ==> [5]: ==> x3 ==> [6]: ==> x3 ==> [7]: ==> x3 ==> [2]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [3]: ==> x3 ==> [4]: ==> x2 ==> [5]: ==> d2 ==> [6]: ==> x3 ==> [7]: ==> x3 ==> [3]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [3]: ==> x3 ==> [4]: ==> x3 ==> [5]: ==> x2 ==> [6]: ==> d2 ==> [7]: ==> x3 ==> [4]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [3]: ==> x3 ==> [4]: ==> x3 ==> [5]: ==> x3 ==> [6]: ==> x2 ==> [7]: ==> d2 ==> [5]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x2 ==> [3]: ==> d2 ==> [4]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [5]: ==> x3 ==> [6]: ==> x3 ==> [7]: ==> x3 ==> [6]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x2 ==> [3]: ==> d2 ==> [4]: ==> x3 ==> [5]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [6]: ==> x3 ==> [7]: ==> x3 ==> [7]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x2 ==> [3]: ==> d2 ==> [4]: ==> x3 ==> [5]: ==> x3 ==> [6]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [7]: ==> x3 ==> [8]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x2 ==> [3]: ==> d2 ==> [4]: ==> x3 ==> [5]: ==> x3 ==> [6]: ==> x3 ==> [7]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [9]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [4]: ==> x2 ==> [5]: ==> d2 ==> [6]: ==> x3 ==> [7]: ==> x3 ==> [10]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [4]: ==> x3 ==> [5]: ==> x2 ==> [6]: ==> d2 ==> [7]: ==> x3 ==> [11]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [4]: ==> x3 ==> [5]: ==> x3 ==> [6]: ==> x2 ==> [7]: ==> d2 ==> [12]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x2 ==> [4]: ==> d2 ==> [5]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [6]: ==> x3 ==> [7]: ==> x3 ==> [13]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x2 ==> [4]: ==> d2 ==> [5]: ==> x3 ==> [6]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [7]: ==> x3 ==> [14]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x2 ==> [4]: ==> d2 ==> [5]: ==> x3 ==> [6]: ==> x3 ==> [7]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [15]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x3 ==> [4]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [5]: ==> x2 ==> [6]: ==> d2 ==> [7]: ==> x3 ==> [16]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x3 ==> [4]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [5]: ==> x3 ==> [6]: ==> x2 ==> [7]: ==> d2 ==> [17]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x3 ==> [4]: ==> x2 ==> [5]: ==> d2 ==> [6]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [7]: ==> x3 ==> [18]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x3 ==> [4]: ==> x2 ==> [5]: ==> d2 ==> [6]: ==> x3 ==> [7]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [19]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x3 ==> [4]: ==> x3 ==> [5]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [6]: ==> x2 ==> [7]: ==> d2 ==> [20]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x3 ==> [4]: ==> x3 ==> [5]: ==> x2 ==> [6]: ==> d2 ==> [7]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [21]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [3]: ==> x2 ==> [4]: ==> x3 ==> [5]: ==> d2 ==> [6]: ==> x3 ==> [7]: ==> x3 ==> [22]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [3]: ==> x3 ==> [4]: ==> x2 ==> [5]: ==> x3 ==> [6]: ==> d2 ==> [7]: ==> x3 ==> [23]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [3]: ==> x2 ==> [4]: ==> x3 ==> [5]: ==> x3 ==> [6]: ==> d2 ==> [7]: ==> x3 ==> [24]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [3]: ==> x3 ==> [4]: ==> x3 ==> [5]: ==> x2 ==> [6]: ==> x3 ==> [7]: ==> d2 ==> [25]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [3]: ==> x3 ==> [4]: ==> x2 ==> [5]: ==> x3 ==> [6]: ==> x3 ==> [7]: ==> d2 ==> [26]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [3]: ==> x2 ==> [4]: ==> x3 ==> [5]: ==> x3 ==> [6]: ==> x3 ==> [7]: ==> d2 ==> [27]: ==> [1]: ==> 1 ==> [2]: ==> x2 ==> [3]: ==> x1*x2*d1*d2+1 ==> [4]: ==> d2 ==> [5]: ==> x3 ==> [6]: ==> x3 ==> [7]: ==> x3 ==> [28]: ==> [1]: ==> 1 ==> [2]: ==> x2 ==> [3]: ==> x1*x2*d1*d2+1 ==> [4]: ==> x3 ==> [5]: ==> d2 ==> [6]: ==> x3 ==> [7]: ==> x3 ==> [29]: ==> [1]: ==> 1 ==> [2]: ==> x2 ==> [3]: ==> x1*x2*d1*d2+1 ==> [4]: ==> x3 ==> [5]: ==> x3 ==> [6]: ==> d2 ==> [7]: ==> x3 ==> [30]: ==> [1]: ==> 1 ==> [2]: ==> x2 ==> [3]: ==> x1*x2*d1*d2+1 ==> [4]: ==> x3 ==> [5]: ==> x3 ==> [6]: ==> x3 ==> [7]: ==> d2 ==> [31]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [4]: ==> x2 ==> [5]: ==> x3 ==> [6]: ==> d2 ==> [7]: ==> x3 ==> [32]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [4]: ==> x3 ==> [5]: ==> x2 ==> [6]: ==> x3 ==> [7]: ==> d2 ==> [33]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [4]: ==> x2 ==> [5]: ==> x3 ==> [6]: ==> x3 ==> [7]: ==> d2 ==> [34]: ==> [1]: ==> 1 ==> [2]: ==> x3 ==> [3]: ==> x2 ==> [4]: ==> x1*x2*d1*d2+1 ==> [5]: ==> d2 ==> [6]: ==> x3 ==> [7]: ==> x3 ==> [35]: ==> [1]: ==> 1 ==> [2]: ==> x3 ==> [3]: ==> x2 ==> [4]: ==> x1*x2*d1*d2+1 ==> [5]: ==> x3 ==> [6]: ==> d2 ==> [7]: ==> x3 ==> [36]: ==> [1]: ==> 1 ==> [2]: ==> x3 ==> [3]: ==> x2 ==> [4]: ==> x1*x2*d1*d2+1 ==> [5]: ==> x3 ==> [6]: ==> x3 ==> [7]: ==> d2 ==> [37]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x2 ==> [3]: ==> x3 ==> [4]: ==> d2 ==> [5]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [6]: ==> x3 ==> [7]: ==> x3 ==> [38]: ==> [1]: ==> 1 ==> [2]: ==> x2 ==> [3]: ==> x3 ==> [4]: ==> x1*x2*d1*d2+1 ==> [5]: ==> d2 ==> [6]: ==> x3 ==> [7]: ==> x3 ==> [39]: ==> [1]: ==> 1 ==> [2]: ==> x2 ==> [3]: ==> x3 ==> [4]: ==> x1*x2*d1*d2+1 ==> [5]: ==> x3 ==> [6]: ==> d2 ==> [7]: ==> x3 ==> [40]: ==> [1]: ==> 1 ==> [2]: ==> x2 ==> [3]: ==> x3 ==> [4]: ==> x1*x2*d1*d2+1 ==> [5]: ==> x3 ==> [6]: ==> x3 ==> [7]: ==> d2 ==> [41]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x2 ==> [3]: ==> x3 ==> [4]: ==> d2 ==> [5]: ==> x3 ==> [6]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [7]: ==> x3 ==> [42]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x2 ==> [3]: ==> x3 ==> [4]: ==> d2 ==> [5]: ==> x3 ==> [6]: ==> x3 ==> [7]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [43]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x3 ==> [4]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [5]: ==> x2 ==> [6]: ==> x3 ==> [7]: ==> d2 ==> [44]: ==> [1]: ==> 1 ==> [2]: ==> x3 ==> [3]: ==> x3 ==> [4]: ==> x2 ==> [5]: ==> x1*x2*d1*d2+1 ==> [6]: ==> d2 ==> [7]: ==> x3 ==> [45]: ==> [1]: ==> 1 ==> [2]: ==> x3 ==> [3]: ==> x3 ==> [4]: ==> x2 ==> [5]: ==> x1*x2*d1*d2+1 ==> [6]: ==> x3 ==> [7]: ==> d2 ==> [46]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x2 ==> [4]: ==> x3 ==> [5]: ==> d2 ==> [6]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [7]: ==> x3 ==> [47]: ==> [1]: ==> 1 ==> [2]: ==> x3 ==> [3]: ==> x2 ==> [4]: ==> x3 ==> [5]: ==> x1*x2*d1*d2+1 ==> [6]: ==> d2 ==> [7]: ==> x3 ==> [48]: ==> [1]: ==> 1 ==> [2]: ==> x3 ==> [3]: ==> x2 ==> [4]: ==> x3 ==> [5]: ==> x1*x2*d1*d2+1 ==> [6]: ==> x3 ==> [7]: ==> d2 ==> [49]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x2 ==> [3]: ==> x3 ==> [4]: ==> x3 ==> [5]: ==> d2 ==> [6]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [7]: ==> x3 ==> [50]: ==> [1]: ==> 1 ==> [2]: ==> x2 ==> [3]: ==> x3 ==> [4]: ==> x3 ==> [5]: ==> x1*x2*d1*d2+1 ==> [6]: ==> d2 ==> [7]: ==> x3 ==> [51]: ==> [1]: ==> 1 ==> [2]: ==> x2 ==> [3]: ==> x3 ==> [4]: ==> x3 ==> [5]: ==> x1*x2*d1*d2+1 ==> [6]: ==> x3 ==> [7]: ==> d2 ==> [52]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x2 ==> [4]: ==> x3 ==> [5]: ==> d2 ==> [6]: ==> x3 ==> [7]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [53]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x2 ==> [3]: ==> x3 ==> [4]: ==> x3 ==> [5]: ==> d2 ==> [6]: ==> x3 ==> [7]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [54]: ==> [1]: ==> 1 ==> [2]: ==> x3 ==> [3]: ==> x3 ==> [4]: ==> x3 ==> [5]: ==> x2 ==> [6]: ==> x1*x2*d1*d2+1 ==> [7]: ==> d2 ==> [55]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x3 ==> [4]: ==> x2 ==> [5]: ==> x3 ==> [6]: ==> d2 ==> [7]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [56]: ==> [1]: ==> 1 ==> [2]: ==> x3 ==> [3]: ==> x3 ==> [4]: ==> x2 ==> [5]: ==> x3 ==> [6]: ==> x1*x2*d1*d2+1 ==> [7]: ==> d2 ==> [57]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x3 ==> [3]: ==> x2 ==> [4]: ==> x3 ==> [5]: ==> x3 ==> [6]: ==> d2 ==> [7]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [58]: ==> [1]: ==> 1 ==> [2]: ==> x3 ==> [3]: ==> x2 ==> [4]: ==> x3 ==> [5]: ==> x3 ==> [6]: ==> x1*x2*d1*d2+1 ==> [7]: ==> d2 ==> [59]: ==> [1]: ==> 1/(q2) ==> [2]: ==> x2 ==> [3]: ==> x3 ==> [4]: ==> x3 ==> [5]: ==> x3 ==> [6]: ==> d2 ==> [7]: ==> x1*x2*d1*d2-x1*d1+(q2) ==> [60]: ==> [1]: ==> 1 ==> [2]: ==> x2 ==> [3]: ==> x3 ==> [4]: ==> x3 ==> [5]: ==> x3 ==> [6]: ==> x1*x2*d1*d2+1 ==> [7]: ==> d2 ```
See also: homogfacFirstQWeyl; homogfacFirstQWeyl_all.