Implemented a BatchedComplexDotOp, it's significantly faster than using ComplexDotOp with scan, and multiple streams are now executed in parallel.