public void Divide(IFrontend <T> trgt, IFrontend <T> a, IFrontend <T> b) { var(dataLayoutTrgt, dataLayoutA, dataLayoutB) = ElemwiseDataAndLayout <T, T, T>(trgt, a, b); if (VectorOps.CanUse(dataLayoutTrgt, dataLayoutA, dataLayoutB) && VectorOps.AlignedWith(dataLayoutA, dataLayoutB)) { VectorOps.Divide(dataLayoutTrgt, dataLayoutA, dataLayoutB); } else { ScalarOps.Divide(dataLayoutTrgt, dataLayoutA, dataLayoutB); } }