#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() {
  float4 const va = float4(0.0f);
  float4 const a = tint_degrees(va);
  float4 const vb = float4(1.0f);
  float4 const b = tint_degrees(vb);
  float4 const vc = float4(1.0f, 2.0f, 3.0f, 4.0f);
  float4 const c = tint_degrees(vc);
  float3 const vd = float3(0.0f);
  float3 const d = tint_degrees_1(vd);
  float3 const ve = float3(1.0f);
  float3 const e = tint_degrees_1(ve);
  float3 const vf = float3(1.0f, 2.0f, 3.0f);
  float3 const f = tint_degrees_1(vf);
  float2 const vg = float2(0.0f);
  float2 const g = tint_degrees_2(vg);
  float2 const vh = float2(1.0f);
  float2 const h = tint_degrees_2(vh);
  float2 const vi = float2(1.0f, 2.0f);
  float2 const i = tint_degrees_2(vi);
  float const vj = 1.0f;
  float const j = tint_degrees_3(vj);
  float const vk = 2.0f;
  float const k = tint_degrees_3(vk);
  float const vl = 3.0f;
  float const l = tint_degrees_3(vl);
  return;
}

