# ChainComplex ** FilteredComplex -- filtered tensor product of complexes

• Usage:
KK = C ** K
KK = K ** C
• Operator: **
• Inputs:
• C,
• Outputs:

## Description

Returns the two filtrations of the tensor product complex determined by the double complex. The following example illustrates the syntax.

 `i1 : A = QQ[x,y];` `i2 : B = koszul vars A;` `i3 : C = koszul vars A;` ```i4 : F' = (filteredComplex B) ** C o4 = -1 : image 0 <-- image 0 <-- image 0 <-- image 0 <-- image 0 0 1 2 3 4 0 : image | 1 | <-- image {1} | 1 0 0 0 | <-- image {2} | 1 0 0 0 0 0 | <-- image 0 <-- image 0 {1} | 0 1 0 0 | {2} | 0 0 0 0 0 0 | 0 {1} | 0 0 0 0 | {2} | 0 0 0 0 0 0 | 3 4 {1} | 0 0 0 0 | {2} | 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 | 1 {2} | 0 0 0 0 0 0 | 2 1 : image | 1 | <-- image {1} | 1 0 0 0 | <-- image {2} | 1 0 0 0 0 0 | <-- image {3} | 1 0 0 0 | <-- image 0 {1} | 0 1 0 0 | {2} | 0 1 0 0 0 0 | {3} | 0 1 0 0 | 0 {1} | 0 0 1 0 | {2} | 0 0 1 0 0 0 | {3} | 0 0 0 0 | 4 {1} | 0 0 0 1 | {2} | 0 0 0 1 0 0 | {3} | 0 0 0 0 | {2} | 0 0 0 0 1 0 | 1 {2} | 0 0 0 0 0 0 | 3 2 1 4 6 4 1 2 : A <-- A <-- A <-- A <-- A 0 1 2 3 4 o4 : FilteredComplex``` ```i5 : F'' = B ** (filteredComplex C) o5 = -1 : image 0 <-- image 0 <-- image 0 <-- image 0 <-- image 0 0 1 2 3 4 0 : image | 1 | <-- image {1} | 0 0 0 0 | <-- image {2} | 0 0 0 0 0 0 | <-- image 0 <-- image 0 {1} | 0 0 0 0 | {2} | 0 0 0 0 0 0 | 0 {1} | 0 0 1 0 | {2} | 0 0 0 0 0 0 | 3 4 {1} | 0 0 0 1 | {2} | 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 | 1 {2} | 0 0 0 0 0 1 | 2 1 : image | 1 | <-- image {1} | 1 0 0 0 | <-- image {2} | 0 0 0 0 0 0 | <-- image {3} | 0 0 0 0 | <-- image 0 {1} | 0 1 0 0 | {2} | 0 1 0 0 0 0 | {3} | 0 0 0 0 | 0 {1} | 0 0 1 0 | {2} | 0 0 1 0 0 0 | {3} | 0 0 1 0 | 4 {1} | 0 0 0 1 | {2} | 0 0 0 1 0 0 | {3} | 0 0 0 1 | {2} | 0 0 0 0 1 0 | 1 {2} | 0 0 0 0 0 1 | 3 2 1 4 6 4 1 2 : A <-- A <-- A <-- A <-- A 0 1 2 3 4 o5 : FilteredComplex```