#include <metal_stdlib>

using namespace metal;

struct modf_result_vec2 {
  float2 fract;
  float2 whole;
};
modf_result_vec2 tint_modf(float2 param_0) {
  modf_result_vec2 result;
  result.fract = modf(param_0, result.whole);
  return result;
}

kernel void tint_symbol() {
  float2 const runtime_in = float2(1.230000019f, 3.450000048f);
  modf_result_vec2 res = modf_result_vec2{.fract=float2(0.230000019f, 0.450000048f), .whole=float2(1.0f, 3.0f)};
  res = tint_modf(runtime_in);
  res = modf_result_vec2{.fract=float2(0.230000019f, 0.450000048f), .whole=float2(1.0f, 3.0f)};
  float2 const fract = res.fract;
  float2 const whole = res.whole;
  return;
}

