#include <accelerate_cuda_extras.h>
typedef struct {
            float a1; float a0;
        } TyOut;
typedef struct {
            float * a1; float * a0;
        } ArrOut;
static inline __attribute__((device)) void set(ArrOut d_out,
                                               const Ix idx,
                                               const TyOut val)
{
    d_out.a1[idx] = val.a1;
    d_out.a0[idx] = val.a0;
}
typedef struct {
            float a2; float a1; float a0;
        } TyIn0;
typedef struct {
            float * a2; float * a1; float * a0;
        } ArrIn0;
static inline __attribute__((device)) TyIn0 get0(const ArrIn0 d_in0,
                                                 const Ix idx)
{
    TyIn0 x = { d_in0.a2[idx], d_in0.a1[idx], d_in0.a0[idx] };
    return x;
}
static inline __attribute__((device)) TyOut apply(const TyIn0 x0)
{
    TyOut r = { x0.a2 * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) > (float) 0.0 ? (float) 1.0 - (float) 0.3989423 * expf((float) -0.5 * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0))) * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) 0.31938154 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) -0.35656378 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) 1.7814779 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) -1.8212559 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * (float) 1.3302745))))) : (float) 0.3989423 * expf((float) -0.5 * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0))) * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) 0.31938154 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) -0.35656378 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) 1.7814779 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) -1.8212559 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * (float) 1.3302745)))))) - x0.a1 * expf(-((float) 2.0e-2 * x0.a0)) * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0) > (float) 0.0 ? (float) 1.0 - (float) 0.3989423 * expf((float) -0.5 * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0)) * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) 0.31938154 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) -0.35656378 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) 1.7814779 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) -1.8212559 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * (float) 1.3302745))))) : (float) 0.3989423 * expf((float) -0.5 * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0)) * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) 0.31938154 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) -0.35656378 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) 1.7814779 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) -1.8212559 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * (float) 1.3302745)))))), x0.a1 * expf(-((float) 2.0e-2 * x0.a0)) * ((float) 1.0 - ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0) > (float) 0.0 ? (float) 1.0 - (float) 0.3989423 * expf((float) -0.5 * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0)) * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) 0.31938154 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) -0.35656378 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) 1.7814779 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) -1.8212559 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * (float) 1.3302745))))) : (float) 0.3989423 * expf((float) -0.5 * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0)) * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) 0.31938154 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) -0.35656378 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) 1.7814779 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * ((float) -1.8212559 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) - (float) 0.3 * sqrtf(x0.a0))) * (float) 1.3302745))))))) - x0.a2 * ((float) 1.0 - ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)) > (float) 0.0 ? (float) 1.0 - (float) 0.3989423 * expf((float) -0.5 * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0))) * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) 0.31938154 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) -0.35656378 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) 1.7814779 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) -1.8212559 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * (float) 1.3302745))))) : (float) 0.3989423 * expf((float) -0.5 * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0))) * ((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) 0.31938154 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) -0.35656378 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) 1.7814779 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * ((float) -1.8212559 + (float) 1.0 / ((float) 1.0 + (float) 0.2316419 * fabsf((logf(x0.a2 / x0.a1) + ((float) 2.0e-2 + (float) 0.5 * (float) 0.3 * (float) 0.3) * x0.a0) / ((float) 0.3 * sqrtf(x0.a0)))) * (float) 1.3302745))))))) };
    return r;
}
#include <map.inl>
