Simple 4x4 Matrix Constructor + Multiply

float3x3 m = float3x3(-2,-1,2,3,-2,1,1,2,2);
float3 output = mul(input,m);
return output;

float4x4 m = float4x4(x,y,z,w);
float4 output = mul(input,m);
return output;

Line graph from float2's

uint count = 5;

float2 points[6] = {
   float2(Data1.x,Data1.y),
   float2(Data1.z,Data1.w),
   float2(Data2.x,Data2.y),
   float2(Data2.z,Data2.w),
   float2(Data3.x,Data3.y),
   float2(Data3.z,Data3.w)
};

float2 v0 = float2(Data1.x,Data1.y);
float2 v1 = float2(Data1.z,Data1.w);

float4 graphline = float4(0.0,0.0,0.0,0.0);

for(int i=0; i<count; i++) {
    v0 = float2(points[i].x,1-points[i].y) ;
    v1 = float2(points[i+1].x,1-points[i+1].y);

    float2 dir = normalize(v0-v1);

    // Line Mask
    float j = distance(v0,v1);
    float k = (distance(pos,v0) + distance(pos,v1));
    float mask = 1 - saturate((k - j) * 128);

    // unit length normal of the line
    float2 n = float2(-dir.y,dir.x);
    // signed distance from p to the line
    float dist = dot(pos-v0, n);

    // thickness of the line
    float thickness = 0.001;
    float col = 1.0-smoothstep(abs(dist), 0.0, thickness);

    // Output to screen
    graphline = saturate(graphline + (float4(col,col,col,1.0) * mask));    

}

return graphline;

Graph line material graph