
float4 TEX2D(float4 _TexCoord, sampler _Sampler)
{
	return tex2D(_Sampler, _TexCoord.xy);
}

float4 TEXCUBE(float4 _TexCoord, sampler _Sampler)
{
	return texCUBE(_Sampler, _TexCoord.xyz);
}

float4 ABS(float4 _Arg1)
{
	return abs(_Arg1);
}

float4 ADD(float4 _Arg1, float4 _Arg2)
{
	return _Arg1 + _Arg2;
}

float4 ADD_SAT(float4 _Arg1, float4 _Arg2)
{
	return saturate(_Arg1 + _Arg2);
}

float1 ARL(float1 _Arg1)
{
	return floor(_Arg1);	
}

float4 DP3(float3 _Arg1, float3 _Arg2)
{
	return dot(_Arg1, _Arg2);
}

float4 DP3_SAT(float3 _Arg1, float3 _Arg2)
{
	return saturate(dot(_Arg1, _Arg2));
}

float4 DP3_SAT(float4 _Arg1, float4 _Arg2)
{
	return saturate(dot(_Arg1.xyz, _Arg2.xyz));
}

float4 DP3(float4 _Arg1, float4 _Arg2)
{
	return dot(_Arg1.xyz, _Arg2.xyz);
}

float4 DP4(float4 _Arg1, float4 _Arg2)
{
	return dot(_Arg1, _Arg2);
}

float4 DPH(float4 _Arg1, float4 _Arg2)
{
	return dot(_Arg1.xyz, _Arg2.xyz) + _Arg2.w;
}

float4 DST(float4 _Arg1, float4 _Arg2)
{
	return float4(1.0, _Arg1.y * _Arg2.y, _Arg1.z, _Arg2.w);
}

float4 FLR(float4 _Arg)
{
	return floor(_Arg);
}

float4 FRC(float4 _Arg)
{
	return fraction(_Arg);
}

float4 LG2(float _Arg)
{
	return log2(_Arg);
}

float4 LOG(float _Arg)
{
	return log(_Arg);
}

float4 LRP(float4 r0, float4 r1, float4 r2)
{
	return r1 * r0 + r2 * (1 - r0);
}

float4 MAD(float4 _Arg1, float4 _Arg2, float4 _Arg3)
{
	return _Arg1 * _Arg2 + _Arg3;
}

float4 MAD_SAT(float4 _Arg1, float4 _Arg2, float4 _Arg3)
{
	return saturate(_Arg1 * _Arg2 + _Arg3);
}

float4 MAX(float4 _Arg1, float4 _Arg2)
{
	return max(_Arg1, _Arg2);
}

float4 MIN(float4 _Arg1, float4 _Arg2)
{
	return min(_Arg1, _Arg2);
}

float4 MOV(float4 _Src)
{
	return _Src;
}

float4 MOV_SAT(float4 _Src)
{
	return saturate(_Src);
}

float4 MUL(float4 _Arg1, float4 _Arg2)
{
	return _Arg1 * _Arg2;
}

float4 MUL_SAT(float4 _Arg1, float4 _Arg2)
{
	return saturate(_Arg1 * _Arg2);
}

float3 NRM(float3 _Arg)
{
	return normalize(_Arg);
}

float4 POW(float _Arg1, float _Arg2)
{
	return pow(_Arg1, _Arg2);
}

float4 RCP(float _Arg1)
{
	return 1 / _Arg1;
}

float4 RSQ(float _Arg1)
{
	return 1 / sqrt(_Arg1);
}

float4 SGE(float4 _Arg1, float4 _Arg2)
{
	return sge(_Arg1, _Arg2);
}

float4 SLT(float4 _Arg1, float4 _Arg2)
{
	return slt(_Arg1, _Arg2);
}

float4 SUB(float4 _Arg1, float4 _Arg2)
{
	return _Arg1 - _Arg2;
}

float4 SUB_SAT(float4 _Arg1, float4 _Arg2)
{
	return saturate(_Arg1 - _Arg2);
}

float3 XPD(float3 _Arg1, float3 _Arg2)
{
	return cross(_Arg1, _Arg2);
}

float3 XPD(float4 _Arg1, float4 _Arg2)
{
	return cross(_Arg1.xyz, _Arg2.xyz);
}
