# primaryDecomposition(..., Strategy => ...)

## Description

The strategy option value should be one of the following.
• Monomial -- uses Alexander duality of a monomial ideal
• Binomial -- finds a cellular resolution of a binomial ideal. NOT IMPLEMENTED YET.
• EisenbudHunekeVasconcelos -- uses the algorithm of Eisenbud-Huneke-Vasconcelos
• ShimoyamaYokoyama -- uses the algorithm of Shimoyama-Yokoyama
• Hybrid -- uses parts of the above two algorithms
• GTZ -- uses the algorithm of Gianni-Trager-Zacharias. NOT IMPLEMENTED YET.
The default strategy depends on the ideal. If the ideal is generated by monomials, then Strategy => Monomial is implied. In all other cases, the default is Strategy => ShimoyamaYokoyama.

### Strategy => Monomial

This strategy only works for monomial ideals, and is the default strategy for such ideals. See the chapter "Monomial Ideals" in the Macaulay2 book.
 ```i1 : Q = QQ[x,y] o1 = Q o1 : PolynomialRing``` ```i2 : I = ideal(x^2,x*y) 2 o2 = ideal (x , x*y) o2 : Ideal of Q``` ```i3 : primaryDecomposition(I, Strategy => Monomial) 2 o3 = {ideal x, ideal (x , y)} o3 : List```

### Strategy => EisenbudHunekeVasconcelos

See "Direct methods for primary decomposition" by Eisenbud, Huneke, and Vasconcelos, Invent. Math. 110, 207-235 (1992).
 ```i4 : Q = QQ[x,y] o4 = Q o4 : PolynomialRing``` ```i5 : I = ideal(x^2,x*y) 2 o5 = ideal (x , x*y) o5 : Ideal of Q``` ```i6 : primaryDecomposition(I, Strategy => EisenbudHunekeVasconcelos) 2 2 o6 = {ideal x, ideal (y , x*y, x )} o6 : List```

### Strategy => ShimoyamaYokoyama

This strategy is the default for non-monomial ideals. See "Localization and Primary Decomposition of Polynomial ideals" by Shimoyama and Yokoyama, J. Symb. Comp. 22, 247-277 (1996).
 ```i7 : Q = QQ[x,y] o7 = Q o7 : PolynomialRing``` ```i8 : I = ideal(x^2,x*y) 2 o8 = ideal (x , x*y) o8 : Ideal of Q``` ```i9 : primaryDecomposition(I, Strategy => ShimoyamaYokoyama) 2 o9 = {ideal x, ideal (y, x )} o9 : List```

### Strategy => Hybrid

Use a hybrid of the Eisenbud-Huneke-Vasconcelos and Shimoyama-Yokoyama strategies. The field Strategy is a list of two integers, indicating the strategy to use for finding associated primes and localizing, respectively. WARNING: Setting the second paramter to 1 works only if the ideal is homogeneous and equidimensional.
 ```i10 : Q = QQ[x,y] o10 = Q o10 : PolynomialRing``` ```i11 : I = intersect(ideal(x^2), ideal(y^2)) 2 2 o11 = ideal(x y ) o11 : Ideal of Q``` ```i12 : primaryDecomposition(I, Strategy => new Hybrid from (1,1)) 2 2 o12 = {ideal y , ideal x } o12 : List``` ```i13 : primaryDecomposition(I, Strategy => new Hybrid from (1,2)) 2 2 o13 = {ideal y , ideal x } o13 : List``` ```i14 : primaryDecomposition(I, Strategy => new Hybrid from (2,1)) 2 2 o14 = {ideal y , ideal x } o14 : List``` ```i15 : primaryDecomposition(I, Strategy => new Hybrid from (2,2)) 2 2 o15 = {ideal y , ideal x } o15 : List```