public void Multiply(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.Multiply(dataLayoutTrgt, dataLayoutA, dataLayoutB);
     }
     else
     {
         ScalarOps.Multiply(dataLayoutTrgt, dataLayoutA, dataLayoutB);
     }
 }