parameters: (
      y=TensorDef(T1, S.M),
      A=TensorDef(T2, S.M, S.N),
      x=TensorDef(U, S.N, output=True))
docstring: Performs a vector-matrix multiplication.
  
    Numeric casting is performed on the operands to the inner multiply, promoting
    them to the same data type as the accumulator/output.
docstring_summary: Performs a vector-matrix multiplication.
docstring_tokens: Performs a vector - matrix multiplication .
function: def vecmat(
      y=TensorDef(T1, S.M),
      A=TensorDef(T2, S.M, S.N),
      x=TensorDef(U, S.N, output=True)):
    """Performs a vector-matrix multiplication.
  
    Numeric casting is performed on the operands to the inner multiply, promoting
    them to the same data type as the accumulator/output.
    """
    domain(D.n, D.m)
    implements(ContractionOpInterface)
    x[D.n] += TypeFn.cast(U, y[D.m]) * TypeFn.cast(U, A[D.m, D.n])
function_tokens: def vecmat ( y = TensorDef ( T1 , S . M ) , A = TensorDef ( T2 , S . M , S . N ) , x = TensorDef ( U , S . N , output = True ) ) : domain ( D . n , D . m ) implements ( ContractionOpInterface ) x [ D . n ] += TypeFn . cast ( U , y [ D . m ] ) * TypeFn . cast ( U , A [ D . m , D . n ] )