#include <metal_stdlib>

using namespace metal;

float4 tint_degrees(float4 param_0) {
  return param_0 * 57.295779513082322865;
}

float3 tint_degrees_1(float3 param_0) {
  return param_0 * 57.295779513082322865;
}

float2 tint_degrees_2(float2 param_0) {
  return param_0 * 57.295779513082322865;
}

float tint_degrees_3(float param_0) {
  return param_0 * 57.295779513082322865;
}

kernel void tint_symbol() {
  tint_degrees(float4());
  tint_degrees(float4(1.0f));
  tint_degrees(float4(1.0f, 2.0f, 3.0f, 4.0f));
  tint_degrees_1(float3());
  tint_degrees_1(float3(1.0f));
  tint_degrees_1(float3(1.0f, 2.0f, 3.0f));
  tint_degrees_2(float2());
  tint_degrees_2(float2(1.0f));
  tint_degrees_2(float2(1.0f, 2.0f));
  tint_degrees_3(1.0f);
  tint_degrees_3(2.0f);
  tint_degrees_3(3.0f);
  return;
}

