public void Subtract(IFrontend <T> trgt, IFrontend <T> src1, IFrontend <T> src2) { var(dataLayoutTrgt, dataLayoutA, dataLayoutB) = ElemwiseDataAndLayout <T, T, T>(trgt, src1, src2); if (VectorOps.CanUse(dataLayoutTrgt, dataLayoutA, dataLayoutB)) { VectorOps.Subtract(dataLayoutTrgt, dataLayoutA, dataLayoutB); } else { ScalarOps.Subtract(dataLayoutTrgt, dataLayoutA, dataLayoutB); } }