#include"rbsspfvehicletracker.cuh"

//==============================================================================

LaserScan * d_scan=NULL;
LaserScan h_scan;
EgoMotion h_egomotion;

//==============================================================================

__host__ __device__
void deviceBuildModel(VehicleState & state, double & density)
{
    double c=cos(state.theta);
    double s=sin(state.theta);

    state.ox=-c*state.x-s*state.y;
    state.oy=s*state.x-c*state.y;

    state.cx[0]=c*state.lf-s*state.wl+state.x; state.cy[0]=s*state.lf+c*state.wl+state.y;
    state.cx[1]=c*state.lf+s*state.wr+state.x; state.cy[1]=s*state.lf-c*state.wr+state.y;
    state.cx[2]=-c*state.lb+s*state.wr+state.x; state.cy[2]=-s*state.lb-c*state.wr+state.y;
    state.cx[3]=-c*state.lb-s*state.wl+state.x; state.cy[3]=-s*state.lb+c*state.wl+state.y;

    state.cl[0]=state.cl[2]=state.wl+state.wr;
    state.cl[1]=state.cl[3]=state.lf+state.lb;

    state.bid[0]=(atan2(state.cy[0],state.cx[0])+PI)/density;
    state.bid[1]=(atan2(state.cy[1],state.cx[1])+PI)/density;
    state.bid[2]=(atan2(state.cy[2],state.cx[2])+PI)/density;
    state.bid[3]=(atan2(state.cy[3],state.cx[3])+PI)/density;

    if(state.ox>state.lf)
    {
        if(state.oy>state.wl)
        {
            state.eid[0]=0;state.eid[1]=3;
        }
        else if(state.oy<-state.wr)
        {
            state.eid[0]=0;state.eid[1]=1;
        }
        else
        {
            state.eid[0]=0;state.eid[1]=-1;
        }
    }
    else if(state.ox<-state.lb)
    {
        if(state.oy>state.wl)
        {
            state.eid[0]=2;state.eid[1]=3;
        }
        else if(state.oy<-state.wr)
        {
            state.eid[0]=2;state.eid[1]=1;
        }
        else
        {
            state.eid[0]=2;state.eid[1]=-1;
        }
    }
    else
    {
        if(state.oy>state.wl)
        {
            state.eid[0]=3;state.eid[1]=-1;
        }
        else if(state.oy<-state.wr)
        {
            state.eid[0]=1;state.eid[1]=-1;
        }
        else
        {
            state.eid[0]=-1;state.eid[1]=-1;
        }
    }
    return;
}

__host__ __device__
void deviceMeasureEdge(VehicleState & state, int edgeid, LaserScan * scan, double anneal, int * beamnum, int * beamid, bool uncertainflag)
{
    if(state.eid[edgeid]<0)
    {
        return;
    }

    if(uncertainflag)
    {
        switch(state.eid[edgeid])
        {
        case 0:
            if(state.dlf>UNCERTAINTHRESH)
            {
                return;
            }
            break;
        case 1:
            if(state.dwr>UNCERTAINTHRESH)
            {
                return;
            }
            break;
        case 2:
            if(state.dlb>UNCERTAINTHRESH)
            {
                return;
            }
            break;
        case 3:
            if(state.dwl>UNCERTAINTHRESH)
            {
                return;
            }
            break;
        default:
            break;
        }
    }

    int starteid=state.eid[edgeid];
    int endeid=(state.eid[edgeid]+1)%4;

    int startbid=state.bid[starteid];
    int endbid=state.bid[endeid];
    if(startbid>endbid)
    {
        endbid+=scan->beamnum;
    }

    int totalbeam=(endbid-startbid)+1;
    if(totalbeam<=UNCERTAINTHRESH_CNT)
    {
        state.eid[edgeid]=-1;
    }

    double dx1=state.cx[endeid]-state.cx[starteid];
    double dy1=state.cy[endeid]-state.cy[starteid];
    double dx2=-dy1/state.cl[starteid];
    double dy2=dx1/state.cl[starteid];

    double density=2*PI/scan->beamnum;
    for(int i=startbid;i<=endbid;i++)
    {
        double P[4]={MAXBEAMLENGTH,MAXBEAMLENGTH,MAXBEAMLENGTH,MAXBEAMLENGTH};
        int tmpid=i%scan->beamnum;
        double bear=tmpid*density-PI;
        double c=cos(bear);
        double s=sin(bear);
        double tmpx=c*dx1+s*dy1;
        double tmpy=s*dx1-c*dy1;
        if(tmpy!=0)
        {
            double beta=tmpx/tmpy*(c*state.cy[starteid]-s*state.cx[starteid])+(c*state.cx[starteid]+s*state.cy[starteid]);
            if(beta>=MINBEAMLENGTH&&beta<=MAXBEAMLENGTH)
            {
                P[2]=beta;
                double gamma0,gamma1,gamma2;
                if(beta<NEARESTRING)
                {
                    gamma0=fabs(beta-(tmpx/tmpy*(c*(state.cy[starteid]+dy2*beta)-s*(state.cx[starteid]+dx2*beta))+c*(state.cx[starteid]+dx2*beta)+s*(state.cy[starteid]+dy2*beta)));
                    gamma1=fabs(beta-(tmpx/tmpy*(c*(state.cy[starteid]+dy2*2)-s*(state.cx[starteid]+dx2*2))+c*(state.cx[starteid]+dx2*2)+s*(state.cy[starteid]+dy2*2)));
                    gamma2=fabs(beta-(tmpx/tmpy*(c*(state.cy[starteid]+dy2*beta)-s*(state.cx[starteid]+dx2*beta))+c*(state.cx[starteid]+dx2*beta)+s*(state.cy[starteid]+dy2*beta)));
                }
                else
                {
                    gamma0=fabs(beta-(tmpx/tmpy*(c*(state.cy[starteid]+dy2*MARGIN0)-s*(state.cx[starteid]+dx2*MARGIN0))+c*(state.cx[starteid]+dx2*MARGIN0)+s*(state.cy[starteid]+dy2*MARGIN0)));
                    gamma1=fabs(beta-(tmpx/tmpy*(c*(state.cy[starteid]+dy2*MARGIN1)-s*(state.cx[starteid]+dx2*MARGIN1))+c*(state.cx[starteid]+dx2*MARGIN1)+s*(state.cy[starteid]+dy2*MARGIN1)));
                    gamma2=fabs(beta-(tmpx/tmpy*(c*(state.cy[starteid]+dy2*MARGIN2)-s*(state.cx[starteid]+dx2*MARGIN2))+c*(state.cx[starteid]+dx2*MARGIN2)+s*(state.cy[starteid]+dy2*MARGIN2)));
                }
                P[1]=P[2]-gamma0>=MINBEAMLENGTH?P[2]-gamma0:MINBEAMLENGTH;
                P[3]=P[2]+gamma1<=MAXBEAMLENGTH?P[2]+gamma1:MAXBEAMLENGTH;
                P[0]=P[2]-gamma2>=MINBEAMLENGTH?P[2]-gamma2:MINBEAMLENGTH;
                double tmplogweight;
                if(scan->length[tmpid]<=P[0])
                {
                    double delta=scan->length[tmpid]-P[0];
                    double w1=WEIGHT0-WEIGHT0;
                    double w2=WEIGHT1-WEIGHT0;
                    tmplogweight=w1+(w2-w1)*exp(-delta*delta/0.01);
                }
                else if(scan->length[tmpid]<=P[1])
                {
                    double delta=scan->length[tmpid]-P[1];
                    double w1=WEIGHT1-WEIGHT0;
                    double w2=WEIGHT2-WEIGHT0;
                    tmplogweight=w1+(w2-w1)*exp(-delta*delta/0.01);
                }
                else if(scan->length[tmpid]<=P[3])
                {
                    if(beta>=NEARESTRING)
                    {
                        if(beamnum!=NULL&&beamid!=NULL&&totalbeam>UNCERTAINTHRESH_CNT)
                        {
                            if((*beamnum)<MAXEDGEPOINT)
                            {
                                beamid[*beamnum]=tmpid;
                                (*beamnum)++;
                            }
                        }
                        state.count++;
                    }
                    double delta=scan->length[tmpid]-P[2];
                    double w1=WEIGHT2-WEIGHT0;
                    double w2=2*w1;
                    tmplogweight=w1+(w2-w1)*exp(-delta*delta/0.01);
                }
                else
                {
                    double delta=scan->length[tmpid]-P[3];
                    double w1=WEIGHT3-WEIGHT0;
                    double w2=WEIGHT2-WEIGHT0;
                    tmplogweight=w1+(w2-w1)*exp(-delta*delta/0.01);
                }
                state.weight+=tmplogweight/anneal;
            }
        }
    }
}

__host__ __device__
void deviceEgoMotion(VehicleState & state, EgoMotion & egomotion)
{
    double c=cos(egomotion.dtheta);
    double s=sin(egomotion.dtheta);
    double tmpx=c*state.x-s*state.y+egomotion.dx;
    double tmpy=s*state.x+c*state.y+egomotion.dy;
    state.x=tmpx;
    state.y=tmpy;
    state.theta+=egomotion.dtheta;
    return;
}

__host__ __device__
void deviceAckermannModel(VehicleState & state0, VehicleState & state1, EgoMotion & egomotion)
{
    state1=state0;
    if(state1.v==0)
    {
        deviceEgoMotion(state1,egomotion);
        return;
    }

    double c=cos(state1.theta);
    double s=sin(state1.theta);

    if(state1.k==0)
    {
        state1.x=state1.x+c*state1.v*egomotion.dt/1000;
        state1.y=state1.y+s*state1.v*egomotion.dt/1000;
        state1.a=0;
        deviceEgoMotion(state1,egomotion);
        return;
    }

    double c0=cos(state1.theta+state1.a);
    double s0=sin(state1.theta+state1.a);
    state1.omega=state1.v*state1.k;
    double dtheta=state1.omega*egomotion.dt/1000;
    state1.theta+=dtheta;
    double c1=cos(state1.theta+state1.a);
    double s1=sin(state1.theta+state1.a);
    double R=1/state1.k;

    state1.x=state1.x+R*(-s0+s1);
    state1.y=state1.y+R*(c0-c1);
    deviceEgoMotion(state1,egomotion);
    return;
}

//==============================================================================

__global__
void kernelSetRandomSeed(int * seed, thrust::minstd_rand * rng, int tmppnum)
{
    GetThreadID_1D(id);
    if(id>=tmppnum)
    {
        return;
    }
    rng[id]=thrust::minstd_rand(seed[id]);
    return;
}

__global__
void kernelGeometryModel(LaserScan * scan, int pnum, VehicleState * particle, int tmppnum, VehicleState * tmpparticle, thrust::minstd_rand * rng, ObjectStateOffset objectstateoffset, StateConstrain stateconstrain, EgoMotion egomotion)
{
    GetThreadID_1D(id);
    if(id>=tmppnum)
    {
        return;
    }
    double index=double(pnum)/double(tmppnum);
    int pid=int(id*index);

    tmpparticle[id]=particle[pid];

    if(objectstateoffset.thetaoff>objectstateoffset.thetaprec)
    {
        double thetamin=tmpparticle[id].theta-objectstateoffset.thetaoff;thetamin=thetamin>stateconstrain.thetamin?thetamin:stateconstrain.thetamin;
        double thetamax=tmpparticle[id].theta+objectstateoffset.thetaoff;thetamax=thetamax<stateconstrain.thetamax?thetamax:stateconstrain.thetamax;
        tmpparticle[id].theta=thrust::random::uniform_real_distribution<double>(thetamin,thetamax)(rng[id]);
    }

    double wlmin=tmpparticle[id].wl-objectstateoffset.wloff;wlmin=wlmin>stateconstrain.wlmin?wlmin:stateconstrain.wlmin;
    double wlmax=tmpparticle[id].wl+objectstateoffset.wloff;wlmax=wlmax<stateconstrain.wlmax?wlmax:stateconstrain.wlmax;
    tmpparticle[id].wl=thrust::random::uniform_real_distribution<double>(wlmin,wlmax)(rng[id]);

    double wrmin=tmpparticle[id].wr-objectstateoffset.wroff;wrmin=wrmin>stateconstrain.wrmin?wrmin:stateconstrain.wrmin;
    double wrmax=tmpparticle[id].wr+objectstateoffset.wroff;wrmax=wrmax<stateconstrain.wrmax?wrmax:stateconstrain.wrmax;
    tmpparticle[id].wr=thrust::random::uniform_real_distribution<double>(wrmin,wrmax)(rng[id]);

    double lfmin=tmpparticle[id].lf-objectstateoffset.lfoff;lfmin=lfmin>stateconstrain.lfmin?lfmin:stateconstrain.lfmin;
    double lfmax=tmpparticle[id].lf+objectstateoffset.lfoff;lfmax=lfmax<stateconstrain.lfmax?lfmax:stateconstrain.lfmax;
    tmpparticle[id].lf=thrust::random::uniform_real_distribution<double>(lfmin,lfmax)(rng[id]);

    double lbmin=tmpparticle[id].lb-objectstateoffset.lboff;lbmin=lbmin>stateconstrain.lbmin?lbmin:stateconstrain.lbmin;
    double lbmax=tmpparticle[id].lb+objectstateoffset.lboff;lbmax=lbmax<stateconstrain.lbmax?lbmax:stateconstrain.lbmax;
    tmpparticle[id].lb=thrust::random::uniform_real_distribution<double>(lbmin,lbmax)(rng[id]);

    deviceBuildModel(tmpparticle[id],egomotion.density);

    tmpparticle[id].weight=0;
    tmpparticle[id].count=0;
    deviceMeasureEdge(tmpparticle[id],0,scan,objectstateoffset.anneal,NULL,NULL,0);
    deviceMeasureEdge(tmpparticle[id],1,scan,objectstateoffset.anneal,NULL,NULL,0);

    return;
}

__global__
void kernelMotionModel(LaserScan * scan, int pnum, VehicleState * particle, int tmppnum, VehicleState * tmpparticle, thrust::minstd_rand * rng, ObjectStateOffset objectstateoffset, StateConstrain stateconstrain, EgoMotion egomotion)
{
    GetThreadID_1D(id);
    if(id>=tmppnum)
    {
        return;
    }
    double index=double(pnum)/double(tmppnum);
    int pid=int(id*index);

    tmpparticle[id]=particle[pid];

    if(egomotion.pfflag)
    {
        tmpparticle[id].v=thrust::random::normal_distribution<double>(tmpparticle[id].v,objectstateoffset.voff)(rng[id]);
        tmpparticle[id].v=tmpparticle[id].v>stateconstrain.vmin?tmpparticle[id].v:stateconstrain.vmin;
        tmpparticle[id].v=tmpparticle[id].v<stateconstrain.vmax?tmpparticle[id].v:stateconstrain.vmax;

        tmpparticle[id].omega=thrust::random::normal_distribution<double>(tmpparticle[id].omega,objectstateoffset.omegaoff)(rng[id]);
        tmpparticle[id].omega=tmpparticle[id].omega>stateconstrain.omegamin?tmpparticle[id].omega:stateconstrain.omegamin;
        tmpparticle[id].omega=tmpparticle[id].omega<stateconstrain.omegamax?tmpparticle[id].omega:stateconstrain.omegamax;
    }
    else
    {
        double vmin=tmpparticle[id].v-objectstateoffset.voff;vmin=vmin>stateconstrain.vmin?vmin:stateconstrain.vmin;
        double vmax=tmpparticle[id].v+objectstateoffset.voff;vmax=vmax<stateconstrain.vmax?vmax:stateconstrain.vmax;
        tmpparticle[id].v=thrust::random::uniform_real_distribution<double>(vmin,vmax)(rng[id]);

        double omegamin=tmpparticle[id].omega-objectstateoffset.omegaoff;omegamin=omegamin>stateconstrain.omegamin?omegamin:stateconstrain.omegamin;
        double omegamax=tmpparticle[id].omega+objectstateoffset.omegaoff;omegamax=omegamax<stateconstrain.omegamax?omegamax:stateconstrain.omegamax;
        tmpparticle[id].omega=thrust::random::uniform_real_distribution<double>(omegamin,omegamax)(rng[id]);
    }

    if(tmpparticle[id].v==0)
    {
        tmpparticle[id].k=(stateconstrain.kmin+stateconstrain.kmax)/2;
    }
    else
    {
        tmpparticle[id].k=tmpparticle[id].omega/tmpparticle[id].v;
        if(tmpparticle[id].k<stateconstrain.kmin)
        {
            tmpparticle[id].k=stateconstrain.kmin;
        }
        if(tmpparticle[id].k>stateconstrain.kmax)
        {
            tmpparticle[id].k=stateconstrain.kmax;
        }
    }
    tmpparticle[id].omega=tmpparticle[id].v*tmpparticle[id].k;

    double R,phi;
    if(tmpparticle[id].k!=0)
    {
        R=1/fabs(tmpparticle[id].k);
        phi=atan2(4.0,R);
    }

    if(tmpparticle[id].omega>0)
    {
        stateconstrain.amin=-MAXANGLEOFFSET;
        stateconstrain.amax=phi;
        stateconstrain.amax=stateconstrain.amax>stateconstrain.amin?stateconstrain.amax:stateconstrain.amin;
    }
    else if(tmpparticle[id].omega<0)
    {
        stateconstrain.amax=MAXANGLEOFFSET;
        stateconstrain.amin=-phi;
        stateconstrain.amin=stateconstrain.amin<stateconstrain.amax?stateconstrain.amin:stateconstrain.amax;
    }
    else if(tmpparticle[id].omega==0)
    {
        stateconstrain.amin=0;
        stateconstrain.amax=0;
    }

    if(egomotion.pfflag)
    {
        tmpparticle[id].a=thrust::random::normal_distribution<double>(tmpparticle[id].a,objectstateoffset.aoff)(rng[id]);
        tmpparticle[id].a=tmpparticle[id].a>stateconstrain.amin?tmpparticle[id].a:stateconstrain.amin;
        tmpparticle[id].a=tmpparticle[id].a<stateconstrain.amax?tmpparticle[id].a:stateconstrain.amax;
    }
    else
    {
        double amin=tmpparticle[id].a-objectstateoffset.aoff;amin=amin>stateconstrain.amin?amin:stateconstrain.amin;
        double amax=tmpparticle[id].a+objectstateoffset.aoff;amax=amax<stateconstrain.amax?amax:stateconstrain.amax;
        tmpparticle[id].a=thrust::random::uniform_real_distribution<double>(amin,amax)(rng[id]);
    }

    VehicleState movedparticle;
    deviceAckermannModel(tmpparticle[id],movedparticle,egomotion);
    deviceBuildModel(movedparticle,egomotion.density);

    movedparticle.weight=0;
    movedparticle.count=0;
    deviceMeasureEdge(movedparticle,0,scan,objectstateoffset.anneal,NULL,NULL,1);
    deviceMeasureEdge(movedparticle,1,scan,objectstateoffset.anneal,NULL,NULL,1);
    tmpparticle[id].weight=movedparticle.weight;
    tmpparticle[id].count=movedparticle.count;

    return;
}

__global__
void kernelMotionUpdate(int pnum, VehicleState * particle, EgoMotion egomotion)
{
    GetThreadID_1D(id);
    if(id>=pnum)
    {
        return;
    }
    deviceAckermannModel(particle[id],particle[id],egomotion);
    deviceBuildModel(particle[id],egomotion.density);
}

//==============================================================================

void sampleParticle(int & pnum, VehicleState * d_particle, int & tmppnum, VehicleState * d_tmpparticle, VehicleState & estimate)
{
    VehicleState h_particle[RQPN];
    VehicleState h_tmpparticle[MAXPN];
    bool h_flag[MAXPN];

    cudaMemcpy(h_tmpparticle,d_tmpparticle,sizeof(VehicleState)*tmppnum,cudaMemcpyDeviceToHost);

    double maxlogweight=h_tmpparticle[0].weight;
    double minlogweight=h_tmpparticle[0].weight;
    for(int j=0;j<tmppnum;j++)
    {
        if(maxlogweight<h_tmpparticle[j].weight)
        {
            maxlogweight=h_tmpparticle[j].weight;
        }
        if(minlogweight>h_tmpparticle[j].weight)
        {
            minlogweight=h_tmpparticle[j].weight;
        }
        h_flag[j]=1;
    }

    double maxscale=maxlogweight<=30?1:30/maxlogweight;
    double minscale=minlogweight>=-30?1:-30/minlogweight;
    double scale=maxscale<minscale?maxscale:minscale;
    for(int j=0;j<tmppnum;j++)
    {
        h_tmpparticle[j].weight=exp(h_tmpparticle[j].weight*scale);
        if(j>0)
        {
            h_tmpparticle[j].weight+=h_tmpparticle[j-1].weight;
        }
    }

    int planpnum=tmppnum<RQPN?tmppnum:RQPN;
    double weightstep=1.0/planpnum;
    int accuracy=1000000;
    double samplebase=(rand()%accuracy)*weightstep/accuracy;
    double weightsum=h_tmpparticle[tmppnum-1].weight;
    pnum=0;

    estimate.weight=0;
    estimate.x=0;estimate.y=0;estimate.theta=0;
    estimate.wl=0;estimate.wr=0;estimate.lf=0;estimate.lb=0;
    estimate.a=0;estimate.v=0;estimate.k=0;estimate.omega=0;
    estimate.count=0;

    VehicleState minstate,maxstate;
    for(int j=0, k=0;j<planpnum;j++)
    {
        double sample=samplebase+j*weightstep;
        while(k<tmppnum)
        {
            if(sample>h_tmpparticle[k].weight/weightsum)
            {
                k++;
                continue;
            }
            if(h_flag[k])
            {
                h_flag[k]=0;
                h_particle[pnum]=h_tmpparticle[k];
                h_particle[pnum].weight=weightstep;
                if(pnum==0)
                {
                    minstate.x=h_particle[pnum].x;maxstate.x=h_particle[pnum].x;
                    minstate.y=h_particle[pnum].y;maxstate.y=h_particle[pnum].y;
                    minstate.theta=h_particle[pnum].theta;maxstate.theta=h_particle[pnum].theta;
                    minstate.wl=h_particle[pnum].wl;maxstate.wl=h_particle[pnum].wl;
                    minstate.wr=h_particle[pnum].wr;maxstate.wr=h_particle[pnum].wr;
                    minstate.lf=h_particle[pnum].lf;maxstate.lf=h_particle[pnum].lf;
                    minstate.lb=h_particle[pnum].lb;maxstate.lb=h_particle[pnum].lb;
                    minstate.a=h_particle[pnum].a;maxstate.a=h_particle[pnum].a;
                    minstate.v=h_particle[pnum].v;maxstate.v=h_particle[pnum].v;
                    minstate.k=h_particle[pnum].k;maxstate.k=h_particle[pnum].k;
                    minstate.omega=h_particle[pnum].omega;maxstate.omega=h_particle[pnum].omega;
                }
                else
                {
                    minstate.x=minstate.x<h_particle[pnum].x?minstate.x:h_particle[pnum].x;
                    maxstate.x=maxstate.x>h_particle[pnum].x?maxstate.x:h_particle[pnum].x;
                    minstate.y=minstate.y<h_particle[pnum].y?minstate.y:h_particle[pnum].y;
                    maxstate.y=maxstate.y>h_particle[pnum].y?maxstate.y:h_particle[pnum].y;
                    minstate.theta=minstate.theta<h_particle[pnum].theta?minstate.theta:h_particle[pnum].theta;
                    maxstate.theta=maxstate.theta>h_particle[pnum].theta?maxstate.theta:h_particle[pnum].theta;
                    minstate.wl=minstate.wl<h_particle[pnum].wl?minstate.wl:h_particle[pnum].wl;
                    maxstate.wl=maxstate.wl>h_particle[pnum].wl?maxstate.wl:h_particle[pnum].wl;
                    minstate.wr=minstate.wr<h_particle[pnum].wr?minstate.wr:h_particle[pnum].wr;
                    maxstate.wr=maxstate.wr>h_particle[pnum].wr?maxstate.wr:h_particle[pnum].wr;
                    minstate.lf=minstate.lf<h_particle[pnum].lf?minstate.lf:h_particle[pnum].lf;
                    maxstate.lf=maxstate.lf>h_particle[pnum].lf?maxstate.lf:h_particle[pnum].lf;
                    minstate.lb=minstate.lb<h_particle[pnum].lb?minstate.lb:h_particle[pnum].lb;
                    maxstate.lb=maxstate.lb>h_particle[pnum].lb?maxstate.lb:h_particle[pnum].lb;
                    minstate.a=minstate.a<h_particle[pnum].a?minstate.a:h_particle[pnum].a;
                    maxstate.a=maxstate.a>h_particle[pnum].a?maxstate.a:h_particle[pnum].a;
                    minstate.v=minstate.v<h_particle[pnum].v?minstate.v:h_particle[pnum].v;
                    maxstate.v=maxstate.v>h_particle[pnum].v?maxstate.v:h_particle[pnum].v;
                    minstate.k=minstate.k<h_particle[pnum].k?minstate.k:h_particle[pnum].k;
                    maxstate.k=maxstate.k>h_particle[pnum].k?maxstate.k:h_particle[pnum].k;
                    minstate.omega=minstate.omega<h_particle[pnum].omega?minstate.omega:h_particle[pnum].omega;
                    maxstate.omega=maxstate.omega>h_particle[pnum].omega?maxstate.omega:h_particle[pnum].omega;
                }
                pnum++;
            }
            else
            {
                h_particle[pnum-1].weight+=weightstep;
            }
            estimate.weight+=weightstep;
            estimate.x+=h_particle[pnum-1].x*weightstep;
            estimate.y+=h_particle[pnum-1].y*weightstep;
            estimate.theta+=h_particle[pnum-1].theta*weightstep;
            estimate.wl+=h_particle[pnum-1].wl*weightstep;
            estimate.wr+=h_particle[pnum-1].wr*weightstep;
            estimate.lf+=h_particle[pnum-1].lf*weightstep;
            estimate.lb+=h_particle[pnum-1].lb*weightstep;
            estimate.a+=h_particle[pnum-1].a*weightstep;
            estimate.v+=h_particle[pnum-1].v*weightstep;
            estimate.k+=h_particle[pnum-1].k*weightstep;
            estimate.omega+=h_particle[pnum-1].omega*weightstep;
            estimate.count+=h_particle[pnum-1].count*weightstep;

            break;
        }
    }

    estimate.x/=estimate.weight;
    estimate.y/=estimate.weight;
    estimate.theta/=estimate.weight;
    estimate.wl/=estimate.weight;
    estimate.wr/=estimate.weight;
    estimate.lf/=estimate.weight;
    estimate.lb/=estimate.weight;
    estimate.a/=estimate.weight;
    estimate.v/=estimate.weight;
    estimate.k/=estimate.weight;
    estimate.omega=estimate.v*estimate.k;
    estimate.count/=estimate.weight;
    estimate.weight/=estimate.weight;

    estimate.dx=std::max(estimate.x-minstate.x,maxstate.x-estimate.x);
    estimate.dy=std::max(estimate.y-minstate.y,maxstate.y-estimate.y);
    estimate.dtheta=std::max(estimate.theta-minstate.theta,maxstate.theta-estimate.theta);
    estimate.dwl=std::max(estimate.wl-minstate.wl,maxstate.wl-estimate.wl);
    estimate.dwr=std::max(estimate.wr-minstate.wr,maxstate.wr-estimate.wr);
    estimate.dlf=std::max(estimate.lf-minstate.lf,maxstate.lf-estimate.lf);
    estimate.dlb=std::max(estimate.lb-minstate.lb,maxstate.lb-estimate.lb);
    estimate.da=std::max(estimate.a-minstate.a,maxstate.a-estimate.a);
    estimate.dv=std::max(estimate.v-minstate.v,maxstate.v-estimate.v);
    estimate.dk=std::max(estimate.k-minstate.k,maxstate.k-estimate.k);
    estimate.domega=std::max(estimate.omega-minstate.omega,maxstate.omega-estimate.omega);

    deviceBuildModel(estimate,h_egomotion.density);

    cudaMemcpy(d_particle,h_particle,sizeof(VehicleState)*pnum,cudaMemcpyHostToDevice);
    return;
}

#define CALRATIO(ratio, vratio, maxratio, maxrange, minrange) \
    ratio=maxrange/minrange; vratio*=ratio; maxratio=ratio>maxratio?ratio:maxratio;
#define CALZOOM(zoom, maxrange, minrange, N) \
    zoom=log(maxrange/minrange)/log(2)/N;zoom=1/pow(2,zoom);

void SSPF_GeometryModel(LaserScan * scan, int & pnum, VehicleState * d_particle, VehicleState * d_tmpparticle, thrust::minstd_rand * d_rng, VehicleState & estimate, ObjectStateOffset & objectstateoffset, EgoMotion & egomotion)
{
    double ratio=1,vratio=1,maxratio=1;
    CALRATIO(ratio,vratio,maxratio,objectstateoffset.thetaoff,objectstateoffset.thetaprec);
    CALRATIO(ratio,vratio,maxratio,objectstateoffset.wloff,objectstateoffset.wlprec);
    CALRATIO(ratio,vratio,maxratio,objectstateoffset.wroff,objectstateoffset.wrprec);
    CALRATIO(ratio,vratio,maxratio,objectstateoffset.lfoff,objectstateoffset.lfprec);
    CALRATIO(ratio,vratio,maxratio,objectstateoffset.lboff,objectstateoffset.lbprec);
    objectstateoffset.anneal=maxratio*maxratio;
    double N=log(vratio)/log(2);

    CALZOOM(objectstateoffset.thetazoom,objectstateoffset.thetaoff,objectstateoffset.thetaprec,N);
    CALZOOM(objectstateoffset.wlzoom,objectstateoffset.wloff,objectstateoffset.wlprec,N);
    CALZOOM(objectstateoffset.wrzoom,objectstateoffset.wroff,objectstateoffset.wrprec,N);
    CALZOOM(objectstateoffset.lfzoom,objectstateoffset.lfoff,objectstateoffset.lfprec,N);
    CALZOOM(objectstateoffset.lbzoom,objectstateoffset.lboff,objectstateoffset.lbprec,N);
    objectstateoffset.annealratio=pow(objectstateoffset.anneal,-1/N);

    StateConstrain stateconstrain;
    stateconstrain.thetamin=estimate.theta-objectstateoffset.thetaoff;
    stateconstrain.thetamax=estimate.theta+objectstateoffset.thetaoff;

    int tmppnum;
    for(int i=1;i<=N;i++)
    {
        tmppnum=pnum*SPN;

        GetKernelDim_1D(blocknum,threadnum,tmppnum);
        kernelGeometryModel<<<blocknum,threadnum>>>(scan,pnum,d_particle,tmppnum,d_tmpparticle,d_rng,objectstateoffset,stateconstrain,egomotion);
        sampleParticle(pnum,d_particle,tmppnum,d_tmpparticle,estimate);

        objectstateoffset.thetaoff*=objectstateoffset.thetazoom;
        objectstateoffset.wloff*=objectstateoffset.wlzoom;
        objectstateoffset.wroff*=objectstateoffset.wrzoom;
        objectstateoffset.lfoff*=objectstateoffset.lfzoom;
        objectstateoffset.lboff*=objectstateoffset.lbzoom;
        objectstateoffset.anneal*=objectstateoffset.annealratio;
    }
    {
        objectstateoffset.thetaoff=objectstateoffset.thetaprec;
        objectstateoffset.wloff=objectstateoffset.wlprec;
        objectstateoffset.wroff=objectstateoffset.wrprec;
        objectstateoffset.lfoff=objectstateoffset.lfprec;
        objectstateoffset.lboff=objectstateoffset.lbprec;
        objectstateoffset.anneal=1;
        tmppnum=pnum*SPN;
        GetKernelDim_1D(blocknum,threadnum,tmppnum);
        kernelGeometryModel<<<blocknum,threadnum>>>(scan,pnum,d_particle,tmppnum,d_tmpparticle,d_rng,objectstateoffset,stateconstrain,egomotion);
        sampleParticle(pnum,d_particle,tmppnum,d_tmpparticle,estimate);
    }
}

void SSPF_MotionModel(LaserScan * scan, int & pnum, VehicleState * d_particle, VehicleState * d_tmpparticle, thrust::minstd_rand * d_rng, VehicleState & estimate, ObjectStateOffset & objectstateoffset, EgoMotion & egomotion)
{
    double ratio=1,vratio=1,maxratio=1;
    CALRATIO(ratio,vratio,maxratio,objectstateoffset.aoff,objectstateoffset.aprec);
    CALRATIO(ratio,vratio,maxratio,objectstateoffset.voff,objectstateoffset.vprec);
    CALRATIO(ratio,vratio,maxratio,objectstateoffset.omegaoff,objectstateoffset.omegaprec);
    objectstateoffset.anneal=maxratio*maxratio;
    double N=log(vratio)/log(2);

    CALZOOM(objectstateoffset.azoom,objectstateoffset.aoff,objectstateoffset.aprec,N);
    CALZOOM(objectstateoffset.vzoom,objectstateoffset.voff,objectstateoffset.vprec,N);
    CALZOOM(objectstateoffset.omegazoom,objectstateoffset.omegaoff,objectstateoffset.omegaprec,N);
    objectstateoffset.annealratio=pow(objectstateoffset.anneal,-1/N);

    StateConstrain stateconstrain;
    if(!(egomotion.pfflag))
    {
        stateconstrain.amin=std::max(stateconstrain.amin,estimate.a-objectstateoffset.aoff);
        stateconstrain.amax=std::min(stateconstrain.amax,estimate.a+objectstateoffset.aoff);
        stateconstrain.vmin=std::max(stateconstrain.vmin,estimate.v-objectstateoffset.voff);
        stateconstrain.vmax=std::min(stateconstrain.vmax,estimate.v+objectstateoffset.voff);
        stateconstrain.kmin=std::max(stateconstrain.kmin,estimate.k-objectstateoffset.koff);
        stateconstrain.kmax=std::min(stateconstrain.kmax,estimate.k+objectstateoffset.koff);
        stateconstrain.omegamin=std::max(stateconstrain.omegamin,estimate.omega-objectstateoffset.omegaoff);
        stateconstrain.omegamax=std::min(stateconstrain.omegamax,estimate.omega+objectstateoffset.omegaoff);
    }

    int tmppnum;
    for(int i=1;i<=N&&!(egomotion.pfflag);i++)
    {
        tmppnum=pnum*SPN;

        GetKernelDim_1D(blocknum,threadnum,tmppnum);
        kernelMotionModel<<<blocknum,threadnum>>>(scan,pnum,d_particle,tmppnum,d_tmpparticle,d_rng,objectstateoffset,stateconstrain,egomotion);
        sampleParticle(pnum,d_particle,tmppnum,d_tmpparticle,estimate);

        objectstateoffset.aoff*=objectstateoffset.azoom;
        objectstateoffset.voff*=objectstateoffset.vzoom;
        objectstateoffset.omegaoff*=objectstateoffset.omegazoom;
        objectstateoffset.anneal*=objectstateoffset.annealratio;
    }
    {
        if(!(egomotion.pfflag))
        {
            objectstateoffset.aoff=objectstateoffset.aprec;
            objectstateoffset.voff=objectstateoffset.vprec;
            objectstateoffset.omegaoff=objectstateoffset.omegaprec;
            objectstateoffset.anneal=1;
            tmppnum=pnum*SPN;
        }
        else
        {
            objectstateoffset.anneal=1;
            tmppnum=MAXPN;
        }
        GetKernelDim_1D(blocknum,threadnum,tmppnum);
        kernelMotionModel<<<blocknum,threadnum>>>(scan,pnum,d_particle,tmppnum,d_tmpparticle,d_rng,objectstateoffset,stateconstrain,egomotion);
        kernelMotionUpdate<<<blocknum,threadnum>>>(tmppnum,d_tmpparticle,egomotion);
        sampleParticle(pnum,d_particle,tmppnum,d_tmpparticle,estimate);
    }
}

//==============================================================================

extern "C" void cuda_InitLaserScan()
{
    if(d_scan==NULL)
    {
        cudaMalloc(&(d_scan),sizeof(LaserScan));
    }
}

extern "C" void cuda_SetLaserScan(LaserScan & laserScan)
{
    cudaMemcpy(d_scan,&laserScan,sizeof(LaserScan),cudaMemcpyHostToDevice);
    h_scan=laserScan;
    if(h_egomotion.validflag)
    {
        double tmpdx=h_egomotion.x-laserScan.x;
        double tmpdy=h_egomotion.y-laserScan.y;
        double c=cos(laserScan.theta);
        double s=sin(laserScan.theta);
        h_egomotion.dx=c*tmpdx+s*tmpdy;
        h_egomotion.dy=-s*tmpdx+c*tmpdy;
        h_egomotion.dtheta=h_egomotion.theta-laserScan.theta;
        h_egomotion.dt=laserScan.timestamp-h_egomotion.timestamp;
    }
    h_egomotion.x=laserScan.x;
    h_egomotion.y=laserScan.y;
    h_egomotion.theta=laserScan.theta;
    h_egomotion.timestamp=laserScan.timestamp;
    h_egomotion.validflag=1;
    h_egomotion.density=2*PI/laserScan.beamnum;
}

extern "C" void cuda_FreeLaserScan()
{
    CUDAFREE(d_scan);
}

//==============================================================================

extern "C" void cuda_OpenTracker(TrackerDataContainer & trackerDataContainer)
{
    trackerDataContainer.pnum=0;
    cudaMalloc(&(trackerDataContainer.d_particle),sizeof(VehicleState)*RQPN);
    cudaMalloc(&(trackerDataContainer.d_tmpparticle),sizeof(VehicleState)*MAXPN);
    cudaMalloc(&(trackerDataContainer.d_rng),sizeof(thrust::minstd_rand)*MAXPN);

    int h_seed[MAXPN];
    thrust::generate(h_seed,h_seed+MAXPN,rand);
    int * d_seed;
    cudaMalloc(&(d_seed),sizeof(int)*MAXPN);
    cudaMemcpy(d_seed,h_seed,sizeof(int)*MAXPN,cudaMemcpyHostToDevice);
    GetKernelDim_1D(blocks,threads,MAXPN);
    kernelSetRandomSeed<<<blocks,threads>>>(d_seed,trackerDataContainer.d_rng,MAXPN);
    CUDAFREE(d_seed);
}

extern "C" void cuda_CloseTracker(TrackerDataContainer & trackerDataContainer)
{
    CUDAFREE(trackerDataContainer.d_particle);
    CUDAFREE(trackerDataContainer.d_tmpparticle);
    CUDAFREE(trackerDataContainer.d_rng);
}

//==============================================================================

extern "C" void cuda_InitGeometry(TrackerDataContainer & trackerDataContainer, TrackerResultContainer & trackerResultContainer)
{
    ObjectStateOffset objectstateoffset;

    EgoMotion egomotion=h_egomotion;
    egomotion.pfflag=0;

    trackerDataContainer.pnum=1;
    cudaMemcpy(trackerDataContainer.d_particle,&(trackerResultContainer.estimate),sizeof(VehicleState),cudaMemcpyHostToDevice);

    SSPF_GeometryModel(d_scan,trackerDataContainer.pnum,trackerDataContainer.d_particle,trackerDataContainer.d_tmpparticle,trackerDataContainer.d_rng,trackerResultContainer.estimate,objectstateoffset,egomotion);

    trackerResultContainer.estimate.dwl=trackerResultContainer.estimate.dwl>MINSIGMA?trackerResultContainer.estimate.dwl:MINSIGMA;
    trackerResultContainer.estimate.dwr=trackerResultContainer.estimate.dwr>MINSIGMA?trackerResultContainer.estimate.dwr:MINSIGMA;
    trackerResultContainer.estimate.dlf=trackerResultContainer.estimate.dlf>MINSIGMA?trackerResultContainer.estimate.dlf:MINSIGMA;
    trackerResultContainer.estimate.dlb=trackerResultContainer.estimate.dlb>MINSIGMA?trackerResultContainer.estimate.dlb:MINSIGMA;

    trackerResultContainer.estimate.dwl=trackerResultContainer.estimate.dwl<UNCERTAINTHRESH?trackerResultContainer.estimate.dwl:MAXSIGMA;
    trackerResultContainer.estimate.dwr=trackerResultContainer.estimate.dwr<UNCERTAINTHRESH?trackerResultContainer.estimate.dwr:MAXSIGMA;
    trackerResultContainer.estimate.dlf=trackerResultContainer.estimate.dlf<UNCERTAINTHRESH?trackerResultContainer.estimate.dlf:MAXSIGMA;
    trackerResultContainer.estimate.dlb=trackerResultContainer.estimate.dlb<UNCERTAINTHRESH?trackerResultContainer.estimate.dlb:MAXSIGMA;

    deviceBuildModel(trackerResultContainer.estimate,egomotion.density);
    trackerResultContainer.estimate.weight=0;
    trackerResultContainer.estimate.count=0;
    trackerResultContainer.edgepointnum[0]=0;
    deviceMeasureEdge(trackerResultContainer.estimate,0,&h_scan,1,&(trackerResultContainer.edgepointnum[0]),trackerResultContainer.edgepointid[0],1);
    trackerResultContainer.edgepointnum[1]=0;
    deviceMeasureEdge(trackerResultContainer.estimate,1,&h_scan,1,&(trackerResultContainer.edgepointnum[1]),trackerResultContainer.edgepointid[1],1);
}

extern "C" void cuda_InitMotion(TrackerDataContainer & trackerDataContainer, TrackerResultContainer & trackerResultContainer)
{
    VehicleState preestimate=trackerResultContainer.estimate;
    VehicleState curestimate=preestimate;

    ObjectStateOffset objectstateoffset;
    objectstateoffset.thetaoff=objectstateoffset.thetaprec;
    if(preestimate.dwl<objectstateoffset.wlprec)
    {
        objectstateoffset.wloff=objectstateoffset.wlprec;
    }
    if(preestimate.dwr<objectstateoffset.wrprec)
    {
        objectstateoffset.wroff=objectstateoffset.wrprec;
    }
    if(preestimate.dlf<objectstateoffset.lfprec)
    {
        objectstateoffset.lfoff=objectstateoffset.lfprec;
    }
    if(preestimate.dlb<objectstateoffset.lbprec)
    {
        objectstateoffset.lboff=objectstateoffset.lbprec;
    }

    EgoMotion egomotion=h_egomotion;
    egomotion.pfflag=0;

    trackerDataContainer.pnum=1;
    cudaMemcpy(trackerDataContainer.d_particle,&(preestimate),sizeof(VehicleState),cudaMemcpyHostToDevice);

    SSPF_MotionModel(d_scan,trackerDataContainer.pnum,trackerDataContainer.d_particle,trackerDataContainer.d_tmpparticle,trackerDataContainer.d_rng,curestimate,objectstateoffset,egomotion);

    double dx=curestimate.dx;
    double dy=curestimate.dy;
    double dtheta=curestimate.dtheta;

    trackerDataContainer.pnum=1;
    cudaMemcpy(trackerDataContainer.d_particle,&(curestimate),sizeof(VehicleState),cudaMemcpyHostToDevice);

    SSPF_GeometryModel(d_scan,trackerDataContainer.pnum,trackerDataContainer.d_particle,trackerDataContainer.d_tmpparticle,trackerDataContainer.d_rng,curestimate,objectstateoffset,egomotion);

    trackerResultContainer.estimate=curestimate;

    curestimate.dwl=curestimate.dwl>MINSIGMA?curestimate.dwl:MINSIGMA;
    curestimate.dwr=curestimate.dwr>MINSIGMA?curestimate.dwr:MINSIGMA;
    curestimate.dlf=curestimate.dlf>MINSIGMA?curestimate.dlf:MINSIGMA;
    curestimate.dlb=curestimate.dlb>MINSIGMA?curestimate.dlb:MINSIGMA;

    curestimate.dwl=curestimate.dwl<UNCERTAINTHRESH?curestimate.dwl:MAXSIGMA;
    curestimate.dwr=curestimate.dwr<UNCERTAINTHRESH?curestimate.dwr:MAXSIGMA;
    curestimate.dlf=curestimate.dlf<UNCERTAINTHRESH?curestimate.dlf:MAXSIGMA;
    curestimate.dlb=curestimate.dlb<UNCERTAINTHRESH?curestimate.dlb:MAXSIGMA;

    trackerResultContainer.estimate.dx=dx;trackerResultContainer.estimate.dy=dy;trackerResultContainer.estimate.dtheta=dtheta;

    trackerResultContainer.estimate.wl=(preestimate.wl*curestimate.dwl*curestimate.dwl+curestimate.wl*preestimate.dwl*preestimate.dwl)/(preestimate.dwl*preestimate.dwl+curestimate.dwl*curestimate.dwl);
    trackerResultContainer.estimate.dwl=sqrt((preestimate.dwl*preestimate.dwl*curestimate.dwl*curestimate.dwl)/(preestimate.dwl*preestimate.dwl+curestimate.dwl*curestimate.dwl));
    trackerResultContainer.estimate.dwl=trackerResultContainer.estimate.dwl>MINSIGMA?trackerResultContainer.estimate.dwl:MINSIGMA;

    trackerResultContainer.estimate.wr=(preestimate.wr*curestimate.dwr*curestimate.dwr+curestimate.wr*preestimate.dwr*preestimate.dwr)/(preestimate.dwr*preestimate.dwr+curestimate.dwr*curestimate.dwr);
    trackerResultContainer.estimate.dwr=sqrt((preestimate.dwr*preestimate.dwr*curestimate.dwr*curestimate.dwr)/(preestimate.dwr*preestimate.dwr+curestimate.dwr*curestimate.dwr));
    trackerResultContainer.estimate.dwr=trackerResultContainer.estimate.dwr>MINSIGMA?trackerResultContainer.estimate.dwr:MINSIGMA;

    trackerResultContainer.estimate.lf=(preestimate.lf*curestimate.dlf*curestimate.dlf+curestimate.lf*preestimate.dlf*preestimate.dlf)/(preestimate.dlf*preestimate.dlf+curestimate.dlf*curestimate.dlf);
    trackerResultContainer.estimate.dlf=sqrt((preestimate.dlf*preestimate.dlf*curestimate.dlf*curestimate.dlf)/(preestimate.dlf*preestimate.dlf+curestimate.dlf*curestimate.dlf));
    trackerResultContainer.estimate.dlf=trackerResultContainer.estimate.dlf>MINSIGMA?trackerResultContainer.estimate.dlf:MINSIGMA;

    trackerResultContainer.estimate.lb=(preestimate.lb*curestimate.dlb*curestimate.dlb+curestimate.lb*preestimate.dlb*preestimate.dlb)/(preestimate.dlb*preestimate.dlb+curestimate.dlb*curestimate.dlb);
    trackerResultContainer.estimate.dlb=sqrt((preestimate.dlb*preestimate.dlb*curestimate.dlb*curestimate.dlb)/(preestimate.dlb*preestimate.dlb+curestimate.dlb*curestimate.dlb));
    trackerResultContainer.estimate.dlb=trackerResultContainer.estimate.dlb>MINSIGMA?trackerResultContainer.estimate.dlb:MINSIGMA;

    deviceBuildModel(trackerResultContainer.estimate,egomotion.density);
    trackerResultContainer.estimate.weight=0;
    trackerResultContainer.estimate.count=0;
    trackerResultContainer.edgepointnum[0]=0;
    deviceMeasureEdge(trackerResultContainer.estimate,0,&h_scan,1,&(trackerResultContainer.edgepointnum[0]),trackerResultContainer.edgepointid[0],1);
    trackerResultContainer.edgepointnum[1]=0;
    deviceMeasureEdge(trackerResultContainer.estimate,1,&h_scan,1,&(trackerResultContainer.edgepointnum[1]),trackerResultContainer.edgepointid[1],1);
}

extern "C" bool cuda_UpdateTracker(TrackerDataContainer & trackerDataContainer, TrackerResultContainer & trackerResultContainer)
{
    VehicleState preestimate=trackerResultContainer.estimate;
    VehicleState curestimate=preestimate;

    ObjectStateOffset objectstateoffset;
    objectstateoffset.thetaoff=objectstateoffset.thetaprec;
    if(preestimate.dwl<objectstateoffset.wlprec)
    {
        objectstateoffset.wloff=objectstateoffset.wlprec;
    }
    if(preestimate.dwr<objectstateoffset.wrprec)
    {
        objectstateoffset.wroff=objectstateoffset.wrprec;
    }
    if(preestimate.dlf<objectstateoffset.lfprec)
    {
        objectstateoffset.lfoff=objectstateoffset.lfprec;
    }
    if(preestimate.dlb<objectstateoffset.lbprec)
    {
        objectstateoffset.lboff=objectstateoffset.lbprec;
    }

    EgoMotion egomotion=h_egomotion;
    if(preestimate.dx<=2*UNCERTAINTHRESH&&preestimate.dy<=2*UNCERTAINTHRESH&&preestimate.dtheta<=UNCERTAINTHRESH_ANG&&preestimate.count>=UNCERTAINTHRESH_CNT)
    {
        objectstateoffset.aoff=DEG2RAD(30);
        objectstateoffset.voff=10;
        objectstateoffset.koff=0.5;
        objectstateoffset.omegaoff=DEG2RAD(60);

        egomotion.pfflag=0;
        trackerDataContainer.pnum=1;
        cudaMemcpy(trackerDataContainer.d_particle,&(preestimate),sizeof(VehicleState),cudaMemcpyHostToDevice);
    }
    else
    {
        objectstateoffset.aoff=DEG2RAD(5);
        objectstateoffset.voff=2;
        objectstateoffset.koff=0.05;
        objectstateoffset.omegaoff=DEG2RAD(3);

        egomotion.pfflag=1;
    }

    SSPF_MotionModel(d_scan,trackerDataContainer.pnum,trackerDataContainer.d_particle,trackerDataContainer.d_tmpparticle,trackerDataContainer.d_rng,curestimate,objectstateoffset,egomotion);

    if(curestimate.count>=10||curestimate.dx<=2*UNCERTAINTHRESH&&curestimate.dy<=2*UNCERTAINTHRESH&&curestimate.dtheta<=UNCERTAINTHRESH_ANG&&curestimate.count>=UNCERTAINTHRESH_CNT)
    {
        double dx=curestimate.dx;
        double dy=curestimate.dy;
        double dtheta=curestimate.dtheta;

        trackerDataContainer.pnum=1;
        cudaMemcpy(trackerDataContainer.d_particle,&(curestimate),sizeof(VehicleState),cudaMemcpyHostToDevice);

        SSPF_GeometryModel(d_scan,trackerDataContainer.pnum,trackerDataContainer.d_particle,trackerDataContainer.d_tmpparticle,trackerDataContainer.d_rng,curestimate,objectstateoffset,egomotion);

        trackerResultContainer.estimate=curestimate;

        curestimate.dwl=curestimate.dwl>MINSIGMA?curestimate.dwl:MINSIGMA;
        curestimate.dwr=curestimate.dwr>MINSIGMA?curestimate.dwr:MINSIGMA;
        curestimate.dlf=curestimate.dlf>MINSIGMA?curestimate.dlf:MINSIGMA;
        curestimate.dlb=curestimate.dlb>MINSIGMA?curestimate.dlb:MINSIGMA;

        curestimate.dwl=curestimate.dwl<UNCERTAINTHRESH?curestimate.dwl:MAXSIGMA;
        curestimate.dwr=curestimate.dwr<UNCERTAINTHRESH?curestimate.dwr:MAXSIGMA;
        curestimate.dlf=curestimate.dlf<UNCERTAINTHRESH?curestimate.dlf:MAXSIGMA;
        curestimate.dlb=curestimate.dlb<UNCERTAINTHRESH?curestimate.dlb:MAXSIGMA;

        trackerResultContainer.estimate.dx=dx;trackerResultContainer.estimate.dy=dy;trackerResultContainer.estimate.dtheta=dtheta;

        trackerResultContainer.estimate.wl=(preestimate.wl*curestimate.dwl*curestimate.dwl+curestimate.wl*preestimate.dwl*preestimate.dwl)/(preestimate.dwl*preestimate.dwl+curestimate.dwl*curestimate.dwl);
        trackerResultContainer.estimate.dwl=sqrt((preestimate.dwl*preestimate.dwl*curestimate.dwl*curestimate.dwl)/(preestimate.dwl*preestimate.dwl+curestimate.dwl*curestimate.dwl));
        trackerResultContainer.estimate.dwl=trackerResultContainer.estimate.dwl>MINSIGMA?trackerResultContainer.estimate.dwl:MINSIGMA;

        trackerResultContainer.estimate.wr=(preestimate.wr*curestimate.dwr*curestimate.dwr+curestimate.wr*preestimate.dwr*preestimate.dwr)/(preestimate.dwr*preestimate.dwr+curestimate.dwr*curestimate.dwr);
        trackerResultContainer.estimate.dwr=sqrt((preestimate.dwr*preestimate.dwr*curestimate.dwr*curestimate.dwr)/(preestimate.dwr*preestimate.dwr+curestimate.dwr*curestimate.dwr));
        trackerResultContainer.estimate.dwr=trackerResultContainer.estimate.dwr>MINSIGMA?trackerResultContainer.estimate.dwr:MINSIGMA;

        trackerResultContainer.estimate.lf=(preestimate.lf*curestimate.dlf*curestimate.dlf+curestimate.lf*preestimate.dlf*preestimate.dlf)/(preestimate.dlf*preestimate.dlf+curestimate.dlf*curestimate.dlf);
        trackerResultContainer.estimate.dlf=sqrt((preestimate.dlf*preestimate.dlf*curestimate.dlf*curestimate.dlf)/(preestimate.dlf*preestimate.dlf+curestimate.dlf*curestimate.dlf));
        trackerResultContainer.estimate.dlf=trackerResultContainer.estimate.dlf>MINSIGMA?trackerResultContainer.estimate.dlf:MINSIGMA;

        trackerResultContainer.estimate.lb=(preestimate.lb*curestimate.dlb*curestimate.dlb+curestimate.lb*preestimate.dlb*preestimate.dlb)/(preestimate.dlb*preestimate.dlb+curestimate.dlb*curestimate.dlb);
        trackerResultContainer.estimate.dlb=sqrt((preestimate.dlb*preestimate.dlb*curestimate.dlb*curestimate.dlb)/(preestimate.dlb*preestimate.dlb+curestimate.dlb*curestimate.dlb));
        trackerResultContainer.estimate.dlb=trackerResultContainer.estimate.dlb>MINSIGMA?trackerResultContainer.estimate.dlb:MINSIGMA;
    }
    else
    {
        trackerResultContainer.estimate=curestimate;

        trackerResultContainer.estimate.wl=preestimate.wl;trackerResultContainer.estimate.dwl=preestimate.dwl;
        trackerResultContainer.estimate.wr=preestimate.wr;trackerResultContainer.estimate.dwr=preestimate.dwr;
        trackerResultContainer.estimate.lf=preestimate.lf;trackerResultContainer.estimate.dlf=preestimate.dlf;
        trackerResultContainer.estimate.lb=preestimate.lb;trackerResultContainer.estimate.dlb=preestimate.dlb;
    }

    deviceBuildModel(trackerResultContainer.estimate,egomotion.density);
    trackerResultContainer.estimate.weight=0;
    trackerResultContainer.estimate.count=0;
    trackerResultContainer.edgepointnum[0]=0;
    deviceMeasureEdge(trackerResultContainer.estimate,0,&h_scan,1,&(trackerResultContainer.edgepointnum[0]),trackerResultContainer.edgepointid[0],1);
    trackerResultContainer.edgepointnum[1]=0;
    deviceMeasureEdge(trackerResultContainer.estimate,1,&h_scan,1,&(trackerResultContainer.edgepointnum[1]),trackerResultContainer.edgepointid[1],1);

    return egomotion.pfflag;
}

//==============================================================================

	.file	"tmpxft_002786b3_00000000-6_rbsspfvehicletracker.cudafe1.cpp"
	.text
#APP
	.globl _ZSt21ios_base_library_initv

#NO_APP
	.section	.text.nvtxEtiGetModuleFunctionTable_v3,"axG",@progbits,nvtxEtiGetModuleFunctionTable_v3,comdat
	.weak	nvtxEtiGetModuleFunctionTable_v3
	.hidden	nvtxEtiGetModuleFunctionTable_v3
	.type	nvtxEtiGetModuleFunctionTable_v3, @function
nvtxEtiGetModuleFunctionTable_v3:
.LFB6231:
	.cfi_startproc
	endbr64
	decl	%edi
	xorl	%eax, %eax
	cmpl	$5, %edi
	ja	.L1
	leaq	.L4(%rip), %rcx
	movslq	(%rcx,%rdi,4), %rax
	addq	%rcx, %rax
	notrack jmp	*%rax
	.section	.rodata.nvtxEtiGetModuleFunctionTable_v3,"aG",@progbits,nvtxEtiGetModuleFunctionTable_v3,comdat
	.align 4
	.align 4
.L4:
	.long	.L9-.L4
	.long	.L14-.L4
	.long	.L7-.L4
	.long	.L6-.L4
	.long	.L5-.L4
	.long	.L3-.L4
	.section	.text.nvtxEtiGetModuleFunctionTable_v3,"axG",@progbits,nvtxEtiGetModuleFunctionTable_v3,comdat
.L9:
	leaq	560+nvtxGlobals_v3(%rip), %rcx
	jmp	.L18
.L7:
	leaq	776+nvtxGlobals_v3(%rip), %rcx
	movl	$128, %eax
	jmp	.L8
.L6:
	leaq	904+nvtxGlobals_v3(%rip), %rcx
	jmp	.L19
.L5:
	leaq	968+nvtxGlobals_v3(%rip), %rcx
.L18:
	movl	$136, %eax
	jmp	.L8
.L3:
	leaq	1104+nvtxGlobals_v3(%rip), %rcx
.L19:
	movl	$64, %eax
	jmp	.L8
.L14:
	leaq	696+nvtxGlobals_v3(%rip), %rcx
	movl	$80, %eax
.L8:
	testq	%rdx, %rdx
	je	.L10
	shrl	$3, %eax
	decl	%eax
	movl	%eax, (%rdx)
.L10:
	testq	%rsi, %rsi
	jne	.L11
.L12:
	movl	$1, %eax
	ret
.L11:
	movq	%rcx, (%rsi)
	jmp	.L12
.L1:
	ret
	.cfi_endproc
.LFE6231:
	.size	nvtxEtiGetModuleFunctionTable_v3, .-nvtxEtiGetModuleFunctionTable_v3
	.section	.text.nvtxGetExportTable_v3,"axG",@progbits,nvtxGetExportTable_v3,comdat
	.weak	nvtxGetExportTable_v3
	.hidden	nvtxGetExportTable_v3
	.type	nvtxGetExportTable_v3, @function
nvtxGetExportTable_v3:
.LFB6232:
	.cfi_startproc
	endbr64
	leaq	8+nvtxGlobals_v3(%rip), %rax
	cmpl	$1, %edi
	je	.L21
	cmpl	$3, %edi
	leaq	16(%rax), %rax
	movl	$0, %edx
	cmovne	%rdx, %rax
.L21:
	ret
	.cfi_endproc
.LFE6232:
	.size	nvtxGetExportTable_v3, .-nvtxGetExportTable_v3
	.section	.text.nvtxEtiSetInjectionNvtxVersion_v3,"axG",@progbits,nvtxEtiSetInjectionNvtxVersion_v3,comdat
	.weak	nvtxEtiSetInjectionNvtxVersion_v3
	.hidden	nvtxEtiSetInjectionNvtxVersion_v3
	.type	nvtxEtiSetInjectionNvtxVersion_v3, @function
nvtxEtiSetInjectionNvtxVersion_v3:
.LFB6233:
	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE6233:
	.size	nvtxEtiSetInjectionNvtxVersion_v3, .-nvtxEtiSetInjectionNvtxVersion_v3
	.text
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB10196:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE10196:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.section	.text._ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv,"axG",@progbits,_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv,comdat
	.weak	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv
	.hidden	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv
	.type	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv, @function
_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv:
.LFB10615:
	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	movabsq	$4294967297, %rax
	leaq	8(%rsp), %rcx
	movq	%rsp, %rdx
	leaq	28(%rsp), %rsi
	leaq	16(%rsp), %rdi
	movl	$1, 24(%rsp)
	movl	$1, 36(%rsp)
	movq	%rax, 16(%rsp)
	movq	%rax, 28(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L28
	pushq	8(%rsp)
	.cfi_def_cfa_offset 104
	leaq	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv(%rip), %rdi
	pushq	8(%rsp)
	.cfi_def_cfa_offset 112
	movq	44(%rsp), %rcx
	movl	52(%rsp), %r8d
	movq	32(%rsp), %rsi
	movl	40(%rsp), %edx
	leaq	80(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 104
	popq	%rdx
	.cfi_def_cfa_offset 96
.L28:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L30
	call	__stack_chk_fail@PLT
.L30:
	addq	$88, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10615:
	.size	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv, .-_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv
	.section	.text.nvtxSetInitFunctionsToNoops_v3,"axG",@progbits,nvtxSetInitFunctionsToNoops_v3,comdat
	.weak	nvtxSetInitFunctionsToNoops_v3
	.hidden	nvtxSetInitFunctionsToNoops_v3
	.type	nvtxSetInitFunctionsToNoops_v3, @function
nvtxSetInitFunctionsToNoops_v3:
.LFB6298:
	.cfi_startproc
	endbr64
	testl	%edi, %edi
	leaq	nvtxMarkEx_impl_init_v3(%rip), %rdx
	setne	%al
	cmpq	%rdx, 48+nvtxGlobals_v3(%rip)
	je	.L161
	testb	%al, %al
	je	.L33
.L161:
	xorl	%r10d, %r10d
	movq	%r10, 48+nvtxGlobals_v3(%rip)
.L33:
	leaq	nvtxMarkA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 56+nvtxGlobals_v3(%rip)
	je	.L162
	testb	%al, %al
	je	.L35
.L162:
	xorl	%r9d, %r9d
	movq	%r9, 56+nvtxGlobals_v3(%rip)
.L35:
	leaq	nvtxMarkW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 64+nvtxGlobals_v3(%rip)
	je	.L163
	testb	%al, %al
	je	.L37
.L163:
	xorl	%r8d, %r8d
	movq	%r8, 64+nvtxGlobals_v3(%rip)
.L37:
	leaq	nvtxRangeStartEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 72+nvtxGlobals_v3(%rip)
	je	.L164
	testb	%al, %al
	je	.L39
.L164:
	xorl	%edi, %edi
	movq	%rdi, 72+nvtxGlobals_v3(%rip)
.L39:
	leaq	nvtxRangeStartA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 80+nvtxGlobals_v3(%rip)
	je	.L165
	testb	%al, %al
	je	.L41
.L165:
	xorl	%esi, %esi
	movq	%rsi, 80+nvtxGlobals_v3(%rip)
.L41:
	leaq	nvtxRangeStartW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 88+nvtxGlobals_v3(%rip)
	je	.L166
	testb	%al, %al
	je	.L43
.L166:
	xorl	%ecx, %ecx
	movq	%rcx, 88+nvtxGlobals_v3(%rip)
.L43:
	leaq	nvtxRangeEnd_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 96+nvtxGlobals_v3(%rip)
	je	.L167
	testb	%al, %al
	je	.L45
.L167:
	xorl	%edx, %edx
	movq	%rdx, 96+nvtxGlobals_v3(%rip)
.L45:
	leaq	nvtxRangePushEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 104+nvtxGlobals_v3(%rip)
	je	.L168
	testb	%al, %al
	je	.L47
.L168:
	xorl	%r11d, %r11d
	movq	%r11, 104+nvtxGlobals_v3(%rip)
.L47:
	leaq	nvtxRangePushA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 112+nvtxGlobals_v3(%rip)
	je	.L169
	testb	%al, %al
	je	.L49
.L169:
	xorl	%r10d, %r10d
	movq	%r10, 112+nvtxGlobals_v3(%rip)
.L49:
	leaq	nvtxRangePushW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 120+nvtxGlobals_v3(%rip)
	je	.L170
	testb	%al, %al
	je	.L51
.L170:
	xorl	%r9d, %r9d
	movq	%r9, 120+nvtxGlobals_v3(%rip)
.L51:
	leaq	nvtxRangePop_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 128+nvtxGlobals_v3(%rip)
	je	.L171
	testb	%al, %al
	je	.L53
.L171:
	xorl	%r8d, %r8d
	movq	%r8, 128+nvtxGlobals_v3(%rip)
.L53:
	leaq	nvtxNameCategoryA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 136+nvtxGlobals_v3(%rip)
	je	.L172
	testb	%al, %al
	je	.L55
.L172:
	xorl	%edi, %edi
	movq	%rdi, 136+nvtxGlobals_v3(%rip)
.L55:
	leaq	nvtxNameCategoryW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 144+nvtxGlobals_v3(%rip)
	je	.L173
	testb	%al, %al
	je	.L57
.L173:
	xorl	%esi, %esi
	movq	%rsi, 144+nvtxGlobals_v3(%rip)
.L57:
	leaq	nvtxNameOsThreadA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 152+nvtxGlobals_v3(%rip)
	je	.L174
	testb	%al, %al
	je	.L59
.L174:
	xorl	%ecx, %ecx
	movq	%rcx, 152+nvtxGlobals_v3(%rip)
.L59:
	leaq	nvtxNameOsThreadW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 160+nvtxGlobals_v3(%rip)
	je	.L175
	testb	%al, %al
	je	.L61
.L175:
	xorl	%edx, %edx
	movq	%rdx, 160+nvtxGlobals_v3(%rip)
.L61:
	leaq	nvtxNameCuDeviceA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 168+nvtxGlobals_v3(%rip)
	je	.L176
	testb	%al, %al
	je	.L63
.L176:
	xorl	%r11d, %r11d
	movq	%r11, 168+nvtxGlobals_v3(%rip)
.L63:
	leaq	nvtxNameCuDeviceW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 176+nvtxGlobals_v3(%rip)
	je	.L177
	testb	%al, %al
	je	.L65
.L177:
	xorl	%r10d, %r10d
	movq	%r10, 176+nvtxGlobals_v3(%rip)
.L65:
	leaq	nvtxNameCuContextA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 184+nvtxGlobals_v3(%rip)
	je	.L178
	testb	%al, %al
	je	.L67
.L178:
	xorl	%r9d, %r9d
	movq	%r9, 184+nvtxGlobals_v3(%rip)
.L67:
	leaq	nvtxNameCuContextW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 192+nvtxGlobals_v3(%rip)
	je	.L179
	testb	%al, %al
	je	.L69
.L179:
	xorl	%r8d, %r8d
	movq	%r8, 192+nvtxGlobals_v3(%rip)
.L69:
	leaq	nvtxNameCuStreamA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 200+nvtxGlobals_v3(%rip)
	je	.L180
	testb	%al, %al
	je	.L71
.L180:
	xorl	%edi, %edi
	movq	%rdi, 200+nvtxGlobals_v3(%rip)
.L71:
	leaq	nvtxNameCuStreamW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 208+nvtxGlobals_v3(%rip)
	je	.L181
	testb	%al, %al
	je	.L73
.L181:
	xorl	%esi, %esi
	movq	%rsi, 208+nvtxGlobals_v3(%rip)
.L73:
	leaq	nvtxNameCuEventA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 216+nvtxGlobals_v3(%rip)
	je	.L182
	testb	%al, %al
	je	.L75
.L182:
	xorl	%ecx, %ecx
	movq	%rcx, 216+nvtxGlobals_v3(%rip)
.L75:
	leaq	nvtxNameCuEventW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 224+nvtxGlobals_v3(%rip)
	je	.L183
	testb	%al, %al
	je	.L77
.L183:
	xorl	%edx, %edx
	movq	%rdx, 224+nvtxGlobals_v3(%rip)
.L77:
	leaq	nvtxNameClDeviceA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 232+nvtxGlobals_v3(%rip)
	je	.L184
	testb	%al, %al
	je	.L79
.L184:
	xorl	%r11d, %r11d
	movq	%r11, 232+nvtxGlobals_v3(%rip)
.L79:
	leaq	nvtxNameClDeviceW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 240+nvtxGlobals_v3(%rip)
	je	.L185
	testb	%al, %al
	je	.L81
.L185:
	xorl	%r10d, %r10d
	movq	%r10, 240+nvtxGlobals_v3(%rip)
.L81:
	leaq	nvtxNameClContextA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 248+nvtxGlobals_v3(%rip)
	je	.L186
	testb	%al, %al
	je	.L83
.L186:
	xorl	%r9d, %r9d
	movq	%r9, 248+nvtxGlobals_v3(%rip)
.L83:
	leaq	nvtxNameClContextW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 256+nvtxGlobals_v3(%rip)
	je	.L187
	testb	%al, %al
	je	.L85
.L187:
	xorl	%r8d, %r8d
	movq	%r8, 256+nvtxGlobals_v3(%rip)
.L85:
	leaq	nvtxNameClCommandQueueA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 264+nvtxGlobals_v3(%rip)
	je	.L188
	testb	%al, %al
	je	.L87
.L188:
	xorl	%edi, %edi
	movq	%rdi, 264+nvtxGlobals_v3(%rip)
.L87:
	leaq	nvtxNameClCommandQueueW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 272+nvtxGlobals_v3(%rip)
	je	.L189
	testb	%al, %al
	je	.L89
.L189:
	xorl	%esi, %esi
	movq	%rsi, 272+nvtxGlobals_v3(%rip)
.L89:
	leaq	nvtxNameClMemObjectA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 280+nvtxGlobals_v3(%rip)
	je	.L190
	testb	%al, %al
	je	.L91
.L190:
	xorl	%ecx, %ecx
	movq	%rcx, 280+nvtxGlobals_v3(%rip)
.L91:
	leaq	nvtxNameClMemObjectW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 288+nvtxGlobals_v3(%rip)
	je	.L191
	testb	%al, %al
	je	.L93
.L191:
	xorl	%edx, %edx
	movq	%rdx, 288+nvtxGlobals_v3(%rip)
.L93:
	leaq	nvtxNameClSamplerA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 296+nvtxGlobals_v3(%rip)
	je	.L192
	testb	%al, %al
	je	.L95
.L192:
	xorl	%r11d, %r11d
	movq	%r11, 296+nvtxGlobals_v3(%rip)
.L95:
	leaq	nvtxNameClSamplerW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 304+nvtxGlobals_v3(%rip)
	je	.L193
	testb	%al, %al
	je	.L97
.L193:
	xorl	%r10d, %r10d
	movq	%r10, 304+nvtxGlobals_v3(%rip)
.L97:
	leaq	nvtxNameClProgramA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 312+nvtxGlobals_v3(%rip)
	je	.L194
	testb	%al, %al
	je	.L99
.L194:
	xorl	%r9d, %r9d
	movq	%r9, 312+nvtxGlobals_v3(%rip)
.L99:
	leaq	nvtxNameClProgramW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 320+nvtxGlobals_v3(%rip)
	je	.L195
	testb	%al, %al
	je	.L101
.L195:
	xorl	%r8d, %r8d
	movq	%r8, 320+nvtxGlobals_v3(%rip)
.L101:
	leaq	nvtxNameClEventA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 328+nvtxGlobals_v3(%rip)
	je	.L196
	testb	%al, %al
	je	.L103
.L196:
	xorl	%edi, %edi
	movq	%rdi, 328+nvtxGlobals_v3(%rip)
.L103:
	leaq	nvtxNameClEventW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 336+nvtxGlobals_v3(%rip)
	je	.L197
	testb	%al, %al
	je	.L105
.L197:
	xorl	%esi, %esi
	movq	%rsi, 336+nvtxGlobals_v3(%rip)
.L105:
	leaq	nvtxNameCudaDeviceA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 344+nvtxGlobals_v3(%rip)
	je	.L198
	testb	%al, %al
	je	.L107
.L198:
	xorl	%ecx, %ecx
	movq	%rcx, 344+nvtxGlobals_v3(%rip)
.L107:
	leaq	nvtxNameCudaDeviceW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 352+nvtxGlobals_v3(%rip)
	je	.L199
	testb	%al, %al
	je	.L109
.L199:
	xorl	%edx, %edx
	movq	%rdx, 352+nvtxGlobals_v3(%rip)
.L109:
	leaq	nvtxNameCudaStreamA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 360+nvtxGlobals_v3(%rip)
	je	.L200
	testb	%al, %al
	je	.L111
.L200:
	xorl	%r11d, %r11d
	movq	%r11, 360+nvtxGlobals_v3(%rip)
.L111:
	leaq	nvtxNameCudaStreamW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 368+nvtxGlobals_v3(%rip)
	je	.L201
	testb	%al, %al
	je	.L113
.L201:
	xorl	%r10d, %r10d
	movq	%r10, 368+nvtxGlobals_v3(%rip)
.L113:
	leaq	nvtxNameCudaEventA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 376+nvtxGlobals_v3(%rip)
	je	.L202
	testb	%al, %al
	je	.L115
.L202:
	xorl	%r9d, %r9d
	movq	%r9, 376+nvtxGlobals_v3(%rip)
.L115:
	leaq	nvtxNameCudaEventW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 384+nvtxGlobals_v3(%rip)
	je	.L203
	testb	%al, %al
	je	.L117
.L203:
	xorl	%r8d, %r8d
	movq	%r8, 384+nvtxGlobals_v3(%rip)
.L117:
	leaq	nvtxDomainMarkEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 392+nvtxGlobals_v3(%rip)
	je	.L204
	testb	%al, %al
	je	.L119
.L204:
	xorl	%edi, %edi
	movq	%rdi, 392+nvtxGlobals_v3(%rip)
.L119:
	leaq	nvtxDomainRangeStartEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 400+nvtxGlobals_v3(%rip)
	je	.L205
	testb	%al, %al
	je	.L121
.L205:
	xorl	%esi, %esi
	movq	%rsi, 400+nvtxGlobals_v3(%rip)
.L121:
	leaq	nvtxDomainRangeEnd_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 408+nvtxGlobals_v3(%rip)
	je	.L206
	testb	%al, %al
	je	.L123
.L206:
	xorl	%ecx, %ecx
	movq	%rcx, 408+nvtxGlobals_v3(%rip)
.L123:
	leaq	nvtxDomainRangePushEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 416+nvtxGlobals_v3(%rip)
	je	.L207
	testb	%al, %al
	je	.L125
.L207:
	xorl	%edx, %edx
	movq	%rdx, 416+nvtxGlobals_v3(%rip)
.L125:
	leaq	nvtxDomainRangePop_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 424+nvtxGlobals_v3(%rip)
	je	.L208
	testb	%al, %al
	je	.L127
.L208:
	xorl	%r11d, %r11d
	movq	%r11, 424+nvtxGlobals_v3(%rip)
.L127:
	leaq	nvtxDomainResourceCreate_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 432+nvtxGlobals_v3(%rip)
	je	.L209
	testb	%al, %al
	je	.L129
.L209:
	xorl	%r10d, %r10d
	movq	%r10, 432+nvtxGlobals_v3(%rip)
.L129:
	leaq	nvtxDomainResourceDestroy_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 440+nvtxGlobals_v3(%rip)
	je	.L210
	testb	%al, %al
	je	.L131
.L210:
	xorl	%r9d, %r9d
	movq	%r9, 440+nvtxGlobals_v3(%rip)
.L131:
	leaq	nvtxDomainNameCategoryA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 448+nvtxGlobals_v3(%rip)
	je	.L211
	testb	%al, %al
	je	.L133
.L211:
	xorl	%r8d, %r8d
	movq	%r8, 448+nvtxGlobals_v3(%rip)
.L133:
	leaq	nvtxDomainNameCategoryW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 456+nvtxGlobals_v3(%rip)
	je	.L212
	testb	%al, %al
	je	.L135
.L212:
	xorl	%edi, %edi
	movq	%rdi, 456+nvtxGlobals_v3(%rip)
.L135:
	leaq	nvtxDomainRegisterStringA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 464+nvtxGlobals_v3(%rip)
	je	.L213
	testb	%al, %al
	je	.L137
.L213:
	xorl	%esi, %esi
	movq	%rsi, 464+nvtxGlobals_v3(%rip)
.L137:
	leaq	nvtxDomainRegisterStringW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 472+nvtxGlobals_v3(%rip)
	je	.L214
	testb	%al, %al
	je	.L139
.L214:
	xorl	%ecx, %ecx
	movq	%rcx, 472+nvtxGlobals_v3(%rip)
.L139:
	leaq	nvtxDomainCreateA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 480+nvtxGlobals_v3(%rip)
	je	.L215
	testb	%al, %al
	je	.L141
.L215:
	xorl	%edx, %edx
	movq	%rdx, 480+nvtxGlobals_v3(%rip)
.L141:
	leaq	nvtxDomainCreateW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 488+nvtxGlobals_v3(%rip)
	je	.L216
	testb	%al, %al
	je	.L143
.L216:
	xorl	%r11d, %r11d
	movq	%r11, 488+nvtxGlobals_v3(%rip)
.L143:
	leaq	nvtxDomainDestroy_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 496+nvtxGlobals_v3(%rip)
	je	.L217
	testb	%al, %al
	je	.L145
.L217:
	xorl	%r10d, %r10d
	movq	%r10, 496+nvtxGlobals_v3(%rip)
.L145:
	leaq	nvtxInitialize_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 504+nvtxGlobals_v3(%rip)
	je	.L218
	testb	%al, %al
	je	.L147
.L218:
	xorl	%r9d, %r9d
	movq	%r9, 504+nvtxGlobals_v3(%rip)
.L147:
	leaq	nvtxDomainSyncUserCreate_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 512+nvtxGlobals_v3(%rip)
	je	.L219
	testb	%al, %al
	je	.L149
.L219:
	xorl	%r8d, %r8d
	movq	%r8, 512+nvtxGlobals_v3(%rip)
.L149:
	leaq	nvtxDomainSyncUserDestroy_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 520+nvtxGlobals_v3(%rip)
	je	.L220
	testb	%al, %al
	je	.L151
.L220:
	xorl	%edi, %edi
	movq	%rdi, 520+nvtxGlobals_v3(%rip)
.L151:
	leaq	nvtxDomainSyncUserAcquireStart_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 528+nvtxGlobals_v3(%rip)
	je	.L221
	testb	%al, %al
	je	.L153
.L221:
	xorl	%esi, %esi
	movq	%rsi, 528+nvtxGlobals_v3(%rip)
.L153:
	leaq	nvtxDomainSyncUserAcquireFailed_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 536+nvtxGlobals_v3(%rip)
	je	.L222
	testb	%al, %al
	je	.L155
.L222:
	xorl	%ecx, %ecx
	movq	%rcx, 536+nvtxGlobals_v3(%rip)
.L155:
	leaq	nvtxDomainSyncUserAcquireSuccess_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 544+nvtxGlobals_v3(%rip)
	je	.L223
	testb	%al, %al
	je	.L157
.L223:
	xorl	%edx, %edx
	movq	%rdx, 544+nvtxGlobals_v3(%rip)
.L157:
	leaq	nvtxDomainSyncUserReleasing_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 552+nvtxGlobals_v3(%rip)
	je	.L224
	testb	%al, %al
	je	.L32
.L224:
	xorl	%eax, %eax
	movq	%rax, 552+nvtxGlobals_v3(%rip)
.L32:
	ret
	.cfi_endproc
.LFE6298:
	.size	nvtxSetInitFunctionsToNoops_v3, .-nvtxSetInitFunctionsToNoops_v3
	.section	.rodata.nvtxInitializeInjectionLibrary_v3.str1.1,"aMS",@progbits,1
.LC1:
	.string	"NVTX_INJECTION64_PATH"
.LC2:
	.string	"InitializeInjectionNvtx2"
	.section	.text.nvtxInitializeInjectionLibrary_v3,"axG",@progbits,nvtxInitializeInjectionLibrary_v3,comdat
	.weak	nvtxInitializeInjectionLibrary_v3
	.hidden	nvtxInitializeInjectionLibrary_v3
	.type	nvtxInitializeInjectionLibrary_v3, @function
nvtxInitializeInjectionLibrary_v3:
.LFB6299:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	.LC1(%rip), %rdi
	call	getenv@PLT
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L418
	movl	$1, %esi
	movq	%rax, %rdi
	call	dlopen@PLT
	movl	$4, %edx
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L417
	leaq	.LC2(%rip), %rsi
	movq	%rax, %rdi
	call	dlsym@PLT
	testq	%rax, %rax
	jne	.L420
	movq	%rbx, %rdi
	call	dlclose@PLT
	movl	$5, %edx
	jmp	.L417
.L418:
	movq	InitializeInjectionNvtx2_fnptr(%rip), %rax
	movl	$7, %edx
	testq	%rax, %rax
	je	.L417
.L420:
	leaq	nvtxGetExportTable_v3(%rip), %rdi
	call	*%rax
	xorl	%edx, %edx
	testl	%eax, %eax
	jne	.L417
	testq	%rbx, %rbx
	je	.L421
	movq	%rbx, %rdi
	call	dlclose@PLT
.L421:
	movl	$6, %edx
.L417:
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6299:
	.size	nvtxInitializeInjectionLibrary_v3, .-nvtxInitializeInjectionLibrary_v3
	.section	.text.nvtxInitOnce_v3,"axG",@progbits,nvtxInitOnce_v3,comdat
	.weak	nvtxInitOnce_v3
	.hidden	nvtxInitOnce_v3
	.type	nvtxInitOnce_v3, @function
nvtxInitOnce_v3:
.LFB6300:
	.cfi_startproc
	endbr64
	movl	nvtxGlobals_v3(%rip), %eax
	cmpl	$2, %eax
	je	.L437
	pushq	%rdx
	.cfi_def_cfa_offset 16
	movl	$1, %eax
	xorl	%edx, %edx
	mfence
	lock cmpxchgl	%edx, nvtxGlobals_v3(%rip)
	testl	%eax, %eax
	jne	.L440
	call	nvtxInitializeInjectionLibrary_v3
	xorl	%edi, %edi
	testl	%eax, %eax
	setne	%dil
	call	nvtxSetInitFunctionsToNoops_v3
	movl	$2, %eax
	mfence
	xchgl	nvtxGlobals_v3(%rip), %eax
	jmp	.L429
.L440:
	mfence
	movl	nvtxGlobals_v3(%rip), %eax
	cmpl	$2, %eax
	je	.L429
	call	sched_yield@PLT
	jmp	.L440
.L429:
	popq	%rax
	.cfi_def_cfa_offset 8
	ret
.L437:
	ret
	.cfi_endproc
.LFE6300:
	.size	nvtxInitOnce_v3, .-nvtxInitOnce_v3
	.section	.text.nvtxDomainSyncUserReleasing_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserReleasing_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserReleasing_impl_init_v3
	.hidden	nvtxDomainSyncUserReleasing_impl_init_v3
	.type	nvtxDomainSyncUserReleasing_impl_init_v3, @function
nvtxDomainSyncUserReleasing_impl_init_v3:
.LFB6297:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	552+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L441
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L441:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6297:
	.size	nvtxDomainSyncUserReleasing_impl_init_v3, .-nvtxDomainSyncUserReleasing_impl_init_v3
	.section	.text.nvtxDomainSyncUserAcquireSuccess_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserAcquireSuccess_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.hidden	nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.type	nvtxDomainSyncUserAcquireSuccess_impl_init_v3, @function
nvtxDomainSyncUserAcquireSuccess_impl_init_v3:
.LFB6296:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	544+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L444
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L444:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6296:
	.size	nvtxDomainSyncUserAcquireSuccess_impl_init_v3, .-nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.section	.text.nvtxDomainSyncUserAcquireFailed_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserAcquireFailed_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.hidden	nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.type	nvtxDomainSyncUserAcquireFailed_impl_init_v3, @function
nvtxDomainSyncUserAcquireFailed_impl_init_v3:
.LFB6295:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	536+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L447
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L447:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6295:
	.size	nvtxDomainSyncUserAcquireFailed_impl_init_v3, .-nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.section	.text.nvtxDomainSyncUserAcquireStart_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserAcquireStart_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserAcquireStart_impl_init_v3
	.hidden	nvtxDomainSyncUserAcquireStart_impl_init_v3
	.type	nvtxDomainSyncUserAcquireStart_impl_init_v3, @function
nvtxDomainSyncUserAcquireStart_impl_init_v3:
.LFB6294:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	528+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L450
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L450:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6294:
	.size	nvtxDomainSyncUserAcquireStart_impl_init_v3, .-nvtxDomainSyncUserAcquireStart_impl_init_v3
	.section	.text.nvtxDomainSyncUserDestroy_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserDestroy_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserDestroy_impl_init_v3
	.hidden	nvtxDomainSyncUserDestroy_impl_init_v3
	.type	nvtxDomainSyncUserDestroy_impl_init_v3, @function
nvtxDomainSyncUserDestroy_impl_init_v3:
.LFB6293:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	520+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L453
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L453:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6293:
	.size	nvtxDomainSyncUserDestroy_impl_init_v3, .-nvtxDomainSyncUserDestroy_impl_init_v3
	.section	.text.nvtxDomainSyncUserCreate_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserCreate_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserCreate_impl_init_v3
	.hidden	nvtxDomainSyncUserCreate_impl_init_v3
	.type	nvtxDomainSyncUserCreate_impl_init_v3, @function
nvtxDomainSyncUserCreate_impl_init_v3:
.LFB6292:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	512+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L457
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L457:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6292:
	.size	nvtxDomainSyncUserCreate_impl_init_v3, .-nvtxDomainSyncUserCreate_impl_init_v3
	.section	.text.nvtxInitialize_impl_init_v3,"axG",@progbits,nvtxInitialize_impl_init_v3,comdat
	.weak	nvtxInitialize_impl_init_v3
	.hidden	nvtxInitialize_impl_init_v3
	.type	nvtxInitialize_impl_init_v3, @function
nvtxInitialize_impl_init_v3:
.LFB6263:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	504+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L459
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L459:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6263:
	.size	nvtxInitialize_impl_init_v3, .-nvtxInitialize_impl_init_v3
	.section	.text.nvtxDomainDestroy_impl_init_v3,"axG",@progbits,nvtxDomainDestroy_impl_init_v3,comdat
	.weak	nvtxDomainDestroy_impl_init_v3
	.hidden	nvtxDomainDestroy_impl_init_v3
	.type	nvtxDomainDestroy_impl_init_v3, @function
nvtxDomainDestroy_impl_init_v3:
.LFB6262:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	496+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L462
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L462:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6262:
	.size	nvtxDomainDestroy_impl_init_v3, .-nvtxDomainDestroy_impl_init_v3
	.section	.text.nvtxDomainCreateW_impl_init_v3,"axG",@progbits,nvtxDomainCreateW_impl_init_v3,comdat
	.weak	nvtxDomainCreateW_impl_init_v3
	.hidden	nvtxDomainCreateW_impl_init_v3
	.type	nvtxDomainCreateW_impl_init_v3, @function
nvtxDomainCreateW_impl_init_v3:
.LFB6261:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	488+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L466
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L466:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6261:
	.size	nvtxDomainCreateW_impl_init_v3, .-nvtxDomainCreateW_impl_init_v3
	.section	.text.nvtxDomainCreateA_impl_init_v3,"axG",@progbits,nvtxDomainCreateA_impl_init_v3,comdat
	.weak	nvtxDomainCreateA_impl_init_v3
	.hidden	nvtxDomainCreateA_impl_init_v3
	.type	nvtxDomainCreateA_impl_init_v3, @function
nvtxDomainCreateA_impl_init_v3:
.LFB6260:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	480+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L469
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L469:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6260:
	.size	nvtxDomainCreateA_impl_init_v3, .-nvtxDomainCreateA_impl_init_v3
	.section	.text.nvtxDomainRegisterStringW_impl_init_v3,"axG",@progbits,nvtxDomainRegisterStringW_impl_init_v3,comdat
	.weak	nvtxDomainRegisterStringW_impl_init_v3
	.hidden	nvtxDomainRegisterStringW_impl_init_v3
	.type	nvtxDomainRegisterStringW_impl_init_v3, @function
nvtxDomainRegisterStringW_impl_init_v3:
.LFB6259:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	472+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L472
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L472:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6259:
	.size	nvtxDomainRegisterStringW_impl_init_v3, .-nvtxDomainRegisterStringW_impl_init_v3
	.section	.text.nvtxDomainRegisterStringA_impl_init_v3,"axG",@progbits,nvtxDomainRegisterStringA_impl_init_v3,comdat
	.weak	nvtxDomainRegisterStringA_impl_init_v3
	.hidden	nvtxDomainRegisterStringA_impl_init_v3
	.type	nvtxDomainRegisterStringA_impl_init_v3, @function
nvtxDomainRegisterStringA_impl_init_v3:
.LFB6258:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	464+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L475
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L475:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6258:
	.size	nvtxDomainRegisterStringA_impl_init_v3, .-nvtxDomainRegisterStringA_impl_init_v3
	.section	.text.nvtxDomainNameCategoryW_impl_init_v3,"axG",@progbits,nvtxDomainNameCategoryW_impl_init_v3,comdat
	.weak	nvtxDomainNameCategoryW_impl_init_v3
	.hidden	nvtxDomainNameCategoryW_impl_init_v3
	.type	nvtxDomainNameCategoryW_impl_init_v3, @function
nvtxDomainNameCategoryW_impl_init_v3:
.LFB6257:
	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	movq	%rdi, 24(%rsp)
	movl	%esi, 20(%rsp)
	movq	%rdx, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	456+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L477
	movq	8(%rsp), %rdx
	movl	20(%rsp), %esi
	movq	24(%rsp), %rdi
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L477:
	.cfi_restore_state
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6257:
	.size	nvtxDomainNameCategoryW_impl_init_v3, .-nvtxDomainNameCategoryW_impl_init_v3
	.section	.text.nvtxDomainNameCategoryA_impl_init_v3,"axG",@progbits,nvtxDomainNameCategoryA_impl_init_v3,comdat
	.weak	nvtxDomainNameCategoryA_impl_init_v3
	.hidden	nvtxDomainNameCategoryA_impl_init_v3
	.type	nvtxDomainNameCategoryA_impl_init_v3, @function
nvtxDomainNameCategoryA_impl_init_v3:
.LFB6256:
	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	movq	%rdi, 24(%rsp)
	movl	%esi, 20(%rsp)
	movq	%rdx, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	448+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L480
	movq	8(%rsp), %rdx
	movl	20(%rsp), %esi
	movq	24(%rsp), %rdi
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L480:
	.cfi_restore_state
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6256:
	.size	nvtxDomainNameCategoryA_impl_init_v3, .-nvtxDomainNameCategoryA_impl_init_v3
	.section	.text.nvtxDomainResourceDestroy_impl_init_v3,"axG",@progbits,nvtxDomainResourceDestroy_impl_init_v3,comdat
	.weak	nvtxDomainResourceDestroy_impl_init_v3
	.hidden	nvtxDomainResourceDestroy_impl_init_v3
	.type	nvtxDomainResourceDestroy_impl_init_v3, @function
nvtxDomainResourceDestroy_impl_init_v3:
.LFB6255:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	440+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L483
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L483:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6255:
	.size	nvtxDomainResourceDestroy_impl_init_v3, .-nvtxDomainResourceDestroy_impl_init_v3
	.section	.text.nvtxDomainResourceCreate_impl_init_v3,"axG",@progbits,nvtxDomainResourceCreate_impl_init_v3,comdat
	.weak	nvtxDomainResourceCreate_impl_init_v3
	.hidden	nvtxDomainResourceCreate_impl_init_v3
	.type	nvtxDomainResourceCreate_impl_init_v3, @function
nvtxDomainResourceCreate_impl_init_v3:
.LFB6254:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	432+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L487
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L487:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6254:
	.size	nvtxDomainResourceCreate_impl_init_v3, .-nvtxDomainResourceCreate_impl_init_v3
	.section	.text.nvtxDomainRangePop_impl_init_v3,"axG",@progbits,nvtxDomainRangePop_impl_init_v3,comdat
	.weak	nvtxDomainRangePop_impl_init_v3
	.hidden	nvtxDomainRangePop_impl_init_v3
	.type	nvtxDomainRangePop_impl_init_v3, @function
nvtxDomainRangePop_impl_init_v3:
.LFB6253:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	424+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L490
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L490:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6253:
	.size	nvtxDomainRangePop_impl_init_v3, .-nvtxDomainRangePop_impl_init_v3
	.section	.text.nvtxDomainRangePushEx_impl_init_v3,"axG",@progbits,nvtxDomainRangePushEx_impl_init_v3,comdat
	.weak	nvtxDomainRangePushEx_impl_init_v3
	.hidden	nvtxDomainRangePushEx_impl_init_v3
	.type	nvtxDomainRangePushEx_impl_init_v3, @function
nvtxDomainRangePushEx_impl_init_v3:
.LFB6252:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	416+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L493
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L493:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6252:
	.size	nvtxDomainRangePushEx_impl_init_v3, .-nvtxDomainRangePushEx_impl_init_v3
	.section	.text.nvtxDomainRangeEnd_impl_init_v3,"axG",@progbits,nvtxDomainRangeEnd_impl_init_v3,comdat
	.weak	nvtxDomainRangeEnd_impl_init_v3
	.hidden	nvtxDomainRangeEnd_impl_init_v3
	.type	nvtxDomainRangeEnd_impl_init_v3, @function
nvtxDomainRangeEnd_impl_init_v3:
.LFB6251:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	408+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L495
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L495:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6251:
	.size	nvtxDomainRangeEnd_impl_init_v3, .-nvtxDomainRangeEnd_impl_init_v3
	.section	.text.nvtxDomainRangeStartEx_impl_init_v3,"axG",@progbits,nvtxDomainRangeStartEx_impl_init_v3,comdat
	.weak	nvtxDomainRangeStartEx_impl_init_v3
	.hidden	nvtxDomainRangeStartEx_impl_init_v3
	.type	nvtxDomainRangeStartEx_impl_init_v3, @function
nvtxDomainRangeStartEx_impl_init_v3:
.LFB6250:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	400+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L499
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L499:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6250:
	.size	nvtxDomainRangeStartEx_impl_init_v3, .-nvtxDomainRangeStartEx_impl_init_v3
	.section	.text.nvtxDomainMarkEx_impl_init_v3,"axG",@progbits,nvtxDomainMarkEx_impl_init_v3,comdat
	.weak	nvtxDomainMarkEx_impl_init_v3
	.hidden	nvtxDomainMarkEx_impl_init_v3
	.type	nvtxDomainMarkEx_impl_init_v3, @function
nvtxDomainMarkEx_impl_init_v3:
.LFB6249:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	392+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L501
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L501:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6249:
	.size	nvtxDomainMarkEx_impl_init_v3, .-nvtxDomainMarkEx_impl_init_v3
	.section	.text.nvtxNameCudaEventW_impl_init_v3,"axG",@progbits,nvtxNameCudaEventW_impl_init_v3,comdat
	.weak	nvtxNameCudaEventW_impl_init_v3
	.hidden	nvtxNameCudaEventW_impl_init_v3
	.type	nvtxNameCudaEventW_impl_init_v3, @function
nvtxNameCudaEventW_impl_init_v3:
.LFB6277:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	384+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L504
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L504:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6277:
	.size	nvtxNameCudaEventW_impl_init_v3, .-nvtxNameCudaEventW_impl_init_v3
	.section	.text.nvtxNameCudaEventA_impl_init_v3,"axG",@progbits,nvtxNameCudaEventA_impl_init_v3,comdat
	.weak	nvtxNameCudaEventA_impl_init_v3
	.hidden	nvtxNameCudaEventA_impl_init_v3
	.type	nvtxNameCudaEventA_impl_init_v3, @function
nvtxNameCudaEventA_impl_init_v3:
.LFB6276:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	376+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L507
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L507:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6276:
	.size	nvtxNameCudaEventA_impl_init_v3, .-nvtxNameCudaEventA_impl_init_v3
	.section	.text.nvtxNameCudaStreamW_impl_init_v3,"axG",@progbits,nvtxNameCudaStreamW_impl_init_v3,comdat
	.weak	nvtxNameCudaStreamW_impl_init_v3
	.hidden	nvtxNameCudaStreamW_impl_init_v3
	.type	nvtxNameCudaStreamW_impl_init_v3, @function
nvtxNameCudaStreamW_impl_init_v3:
.LFB6275:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	368+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L510
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L510:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6275:
	.size	nvtxNameCudaStreamW_impl_init_v3, .-nvtxNameCudaStreamW_impl_init_v3
	.section	.text.nvtxNameCudaStreamA_impl_init_v3,"axG",@progbits,nvtxNameCudaStreamA_impl_init_v3,comdat
	.weak	nvtxNameCudaStreamA_impl_init_v3
	.hidden	nvtxNameCudaStreamA_impl_init_v3
	.type	nvtxNameCudaStreamA_impl_init_v3, @function
nvtxNameCudaStreamA_impl_init_v3:
.LFB6274:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	360+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L513
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L513:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6274:
	.size	nvtxNameCudaStreamA_impl_init_v3, .-nvtxNameCudaStreamA_impl_init_v3
	.section	.text.nvtxNameCudaDeviceW_impl_init_v3,"axG",@progbits,nvtxNameCudaDeviceW_impl_init_v3,comdat
	.weak	nvtxNameCudaDeviceW_impl_init_v3
	.hidden	nvtxNameCudaDeviceW_impl_init_v3
	.type	nvtxNameCudaDeviceW_impl_init_v3, @function
nvtxNameCudaDeviceW_impl_init_v3:
.LFB6273:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	352+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L516
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L516:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6273:
	.size	nvtxNameCudaDeviceW_impl_init_v3, .-nvtxNameCudaDeviceW_impl_init_v3
	.section	.text.nvtxNameCudaDeviceA_impl_init_v3,"axG",@progbits,nvtxNameCudaDeviceA_impl_init_v3,comdat
	.weak	nvtxNameCudaDeviceA_impl_init_v3
	.hidden	nvtxNameCudaDeviceA_impl_init_v3
	.type	nvtxNameCudaDeviceA_impl_init_v3, @function
nvtxNameCudaDeviceA_impl_init_v3:
.LFB6272:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	344+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L519
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L519:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6272:
	.size	nvtxNameCudaDeviceA_impl_init_v3, .-nvtxNameCudaDeviceA_impl_init_v3
	.section	.text.nvtxNameClEventW_impl_init_v3,"axG",@progbits,nvtxNameClEventW_impl_init_v3,comdat
	.weak	nvtxNameClEventW_impl_init_v3
	.hidden	nvtxNameClEventW_impl_init_v3
	.type	nvtxNameClEventW_impl_init_v3, @function
nvtxNameClEventW_impl_init_v3:
.LFB6291:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	336+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L522
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L522:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6291:
	.size	nvtxNameClEventW_impl_init_v3, .-nvtxNameClEventW_impl_init_v3
	.section	.text.nvtxNameClEventA_impl_init_v3,"axG",@progbits,nvtxNameClEventA_impl_init_v3,comdat
	.weak	nvtxNameClEventA_impl_init_v3
	.hidden	nvtxNameClEventA_impl_init_v3
	.type	nvtxNameClEventA_impl_init_v3, @function
nvtxNameClEventA_impl_init_v3:
.LFB6290:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	328+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L525
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L525:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6290:
	.size	nvtxNameClEventA_impl_init_v3, .-nvtxNameClEventA_impl_init_v3
	.section	.text.nvtxNameClProgramW_impl_init_v3,"axG",@progbits,nvtxNameClProgramW_impl_init_v3,comdat
	.weak	nvtxNameClProgramW_impl_init_v3
	.hidden	nvtxNameClProgramW_impl_init_v3
	.type	nvtxNameClProgramW_impl_init_v3, @function
nvtxNameClProgramW_impl_init_v3:
.LFB6289:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	320+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L528
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L528:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6289:
	.size	nvtxNameClProgramW_impl_init_v3, .-nvtxNameClProgramW_impl_init_v3
	.section	.text.nvtxNameClProgramA_impl_init_v3,"axG",@progbits,nvtxNameClProgramA_impl_init_v3,comdat
	.weak	nvtxNameClProgramA_impl_init_v3
	.hidden	nvtxNameClProgramA_impl_init_v3
	.type	nvtxNameClProgramA_impl_init_v3, @function
nvtxNameClProgramA_impl_init_v3:
.LFB6288:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	312+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L531
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L531:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6288:
	.size	nvtxNameClProgramA_impl_init_v3, .-nvtxNameClProgramA_impl_init_v3
	.section	.text.nvtxNameClSamplerW_impl_init_v3,"axG",@progbits,nvtxNameClSamplerW_impl_init_v3,comdat
	.weak	nvtxNameClSamplerW_impl_init_v3
	.hidden	nvtxNameClSamplerW_impl_init_v3
	.type	nvtxNameClSamplerW_impl_init_v3, @function
nvtxNameClSamplerW_impl_init_v3:
.LFB6287:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	304+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L534
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L534:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6287:
	.size	nvtxNameClSamplerW_impl_init_v3, .-nvtxNameClSamplerW_impl_init_v3
	.section	.text.nvtxNameClSamplerA_impl_init_v3,"axG",@progbits,nvtxNameClSamplerA_impl_init_v3,comdat
	.weak	nvtxNameClSamplerA_impl_init_v3
	.hidden	nvtxNameClSamplerA_impl_init_v3
	.type	nvtxNameClSamplerA_impl_init_v3, @function
nvtxNameClSamplerA_impl_init_v3:
.LFB6286:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	296+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L537
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L537:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6286:
	.size	nvtxNameClSamplerA_impl_init_v3, .-nvtxNameClSamplerA_impl_init_v3
	.section	.text.nvtxNameClMemObjectW_impl_init_v3,"axG",@progbits,nvtxNameClMemObjectW_impl_init_v3,comdat
	.weak	nvtxNameClMemObjectW_impl_init_v3
	.hidden	nvtxNameClMemObjectW_impl_init_v3
	.type	nvtxNameClMemObjectW_impl_init_v3, @function
nvtxNameClMemObjectW_impl_init_v3:
.LFB6285:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	288+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L540
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L540:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6285:
	.size	nvtxNameClMemObjectW_impl_init_v3, .-nvtxNameClMemObjectW_impl_init_v3
	.section	.text.nvtxNameClMemObjectA_impl_init_v3,"axG",@progbits,nvtxNameClMemObjectA_impl_init_v3,comdat
	.weak	nvtxNameClMemObjectA_impl_init_v3
	.hidden	nvtxNameClMemObjectA_impl_init_v3
	.type	nvtxNameClMemObjectA_impl_init_v3, @function
nvtxNameClMemObjectA_impl_init_v3:
.LFB6284:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	280+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L543
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L543:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6284:
	.size	nvtxNameClMemObjectA_impl_init_v3, .-nvtxNameClMemObjectA_impl_init_v3
	.section	.text.nvtxNameClCommandQueueW_impl_init_v3,"axG",@progbits,nvtxNameClCommandQueueW_impl_init_v3,comdat
	.weak	nvtxNameClCommandQueueW_impl_init_v3
	.hidden	nvtxNameClCommandQueueW_impl_init_v3
	.type	nvtxNameClCommandQueueW_impl_init_v3, @function
nvtxNameClCommandQueueW_impl_init_v3:
.LFB6283:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	272+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L546
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L546:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6283:
	.size	nvtxNameClCommandQueueW_impl_init_v3, .-nvtxNameClCommandQueueW_impl_init_v3
	.section	.text.nvtxNameClCommandQueueA_impl_init_v3,"axG",@progbits,nvtxNameClCommandQueueA_impl_init_v3,comdat
	.weak	nvtxNameClCommandQueueA_impl_init_v3
	.hidden	nvtxNameClCommandQueueA_impl_init_v3
	.type	nvtxNameClCommandQueueA_impl_init_v3, @function
nvtxNameClCommandQueueA_impl_init_v3:
.LFB6282:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	264+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L549
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L549:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6282:
	.size	nvtxNameClCommandQueueA_impl_init_v3, .-nvtxNameClCommandQueueA_impl_init_v3
	.section	.text.nvtxNameClContextW_impl_init_v3,"axG",@progbits,nvtxNameClContextW_impl_init_v3,comdat
	.weak	nvtxNameClContextW_impl_init_v3
	.hidden	nvtxNameClContextW_impl_init_v3
	.type	nvtxNameClContextW_impl_init_v3, @function
nvtxNameClContextW_impl_init_v3:
.LFB6281:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	256+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L552
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L552:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6281:
	.size	nvtxNameClContextW_impl_init_v3, .-nvtxNameClContextW_impl_init_v3
	.section	.text.nvtxNameClContextA_impl_init_v3,"axG",@progbits,nvtxNameClContextA_impl_init_v3,comdat
	.weak	nvtxNameClContextA_impl_init_v3
	.hidden	nvtxNameClContextA_impl_init_v3
	.type	nvtxNameClContextA_impl_init_v3, @function
nvtxNameClContextA_impl_init_v3:
.LFB6280:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	248+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L555
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L555:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6280:
	.size	nvtxNameClContextA_impl_init_v3, .-nvtxNameClContextA_impl_init_v3
	.section	.text.nvtxNameClDeviceW_impl_init_v3,"axG",@progbits,nvtxNameClDeviceW_impl_init_v3,comdat
	.weak	nvtxNameClDeviceW_impl_init_v3
	.hidden	nvtxNameClDeviceW_impl_init_v3
	.type	nvtxNameClDeviceW_impl_init_v3, @function
nvtxNameClDeviceW_impl_init_v3:
.LFB6279:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	240+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L558
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L558:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6279:
	.size	nvtxNameClDeviceW_impl_init_v3, .-nvtxNameClDeviceW_impl_init_v3
	.section	.text.nvtxNameClDeviceA_impl_init_v3,"axG",@progbits,nvtxNameClDeviceA_impl_init_v3,comdat
	.weak	nvtxNameClDeviceA_impl_init_v3
	.hidden	nvtxNameClDeviceA_impl_init_v3
	.type	nvtxNameClDeviceA_impl_init_v3, @function
nvtxNameClDeviceA_impl_init_v3:
.LFB6278:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	232+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L561
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L561:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6278:
	.size	nvtxNameClDeviceA_impl_init_v3, .-nvtxNameClDeviceA_impl_init_v3
	.section	.text.nvtxNameCuEventW_impl_init_v3,"axG",@progbits,nvtxNameCuEventW_impl_init_v3,comdat
	.weak	nvtxNameCuEventW_impl_init_v3
	.hidden	nvtxNameCuEventW_impl_init_v3
	.type	nvtxNameCuEventW_impl_init_v3, @function
nvtxNameCuEventW_impl_init_v3:
.LFB6271:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	224+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L564
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L564:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6271:
	.size	nvtxNameCuEventW_impl_init_v3, .-nvtxNameCuEventW_impl_init_v3
	.section	.text.nvtxNameCuEventA_impl_init_v3,"axG",@progbits,nvtxNameCuEventA_impl_init_v3,comdat
	.weak	nvtxNameCuEventA_impl_init_v3
	.hidden	nvtxNameCuEventA_impl_init_v3
	.type	nvtxNameCuEventA_impl_init_v3, @function
nvtxNameCuEventA_impl_init_v3:
.LFB6270:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	216+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L567
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L567:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6270:
	.size	nvtxNameCuEventA_impl_init_v3, .-nvtxNameCuEventA_impl_init_v3
	.section	.text.nvtxNameCuStreamW_impl_init_v3,"axG",@progbits,nvtxNameCuStreamW_impl_init_v3,comdat
	.weak	nvtxNameCuStreamW_impl_init_v3
	.hidden	nvtxNameCuStreamW_impl_init_v3
	.type	nvtxNameCuStreamW_impl_init_v3, @function
nvtxNameCuStreamW_impl_init_v3:
.LFB6269:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	208+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L570
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L570:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6269:
	.size	nvtxNameCuStreamW_impl_init_v3, .-nvtxNameCuStreamW_impl_init_v3
	.section	.text.nvtxNameCuStreamA_impl_init_v3,"axG",@progbits,nvtxNameCuStreamA_impl_init_v3,comdat
	.weak	nvtxNameCuStreamA_impl_init_v3
	.hidden	nvtxNameCuStreamA_impl_init_v3
	.type	nvtxNameCuStreamA_impl_init_v3, @function
nvtxNameCuStreamA_impl_init_v3:
.LFB6268:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	200+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L573
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L573:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6268:
	.size	nvtxNameCuStreamA_impl_init_v3, .-nvtxNameCuStreamA_impl_init_v3
	.section	.text.nvtxNameCuContextW_impl_init_v3,"axG",@progbits,nvtxNameCuContextW_impl_init_v3,comdat
	.weak	nvtxNameCuContextW_impl_init_v3
	.hidden	nvtxNameCuContextW_impl_init_v3
	.type	nvtxNameCuContextW_impl_init_v3, @function
nvtxNameCuContextW_impl_init_v3:
.LFB6267:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	192+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L576
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L576:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6267:
	.size	nvtxNameCuContextW_impl_init_v3, .-nvtxNameCuContextW_impl_init_v3
	.section	.text.nvtxNameCuContextA_impl_init_v3,"axG",@progbits,nvtxNameCuContextA_impl_init_v3,comdat
	.weak	nvtxNameCuContextA_impl_init_v3
	.hidden	nvtxNameCuContextA_impl_init_v3
	.type	nvtxNameCuContextA_impl_init_v3, @function
nvtxNameCuContextA_impl_init_v3:
.LFB6266:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	184+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L579
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L579:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6266:
	.size	nvtxNameCuContextA_impl_init_v3, .-nvtxNameCuContextA_impl_init_v3
	.section	.text.nvtxNameCuDeviceW_impl_init_v3,"axG",@progbits,nvtxNameCuDeviceW_impl_init_v3,comdat
	.weak	nvtxNameCuDeviceW_impl_init_v3
	.hidden	nvtxNameCuDeviceW_impl_init_v3
	.type	nvtxNameCuDeviceW_impl_init_v3, @function
nvtxNameCuDeviceW_impl_init_v3:
.LFB6265:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	176+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L582
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L582:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6265:
	.size	nvtxNameCuDeviceW_impl_init_v3, .-nvtxNameCuDeviceW_impl_init_v3
	.section	.text.nvtxNameCuDeviceA_impl_init_v3,"axG",@progbits,nvtxNameCuDeviceA_impl_init_v3,comdat
	.weak	nvtxNameCuDeviceA_impl_init_v3
	.hidden	nvtxNameCuDeviceA_impl_init_v3
	.type	nvtxNameCuDeviceA_impl_init_v3, @function
nvtxNameCuDeviceA_impl_init_v3:
.LFB6264:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	168+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L585
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L585:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6264:
	.size	nvtxNameCuDeviceA_impl_init_v3, .-nvtxNameCuDeviceA_impl_init_v3
	.section	.text.nvtxNameOsThreadW_impl_init_v3,"axG",@progbits,nvtxNameOsThreadW_impl_init_v3,comdat
	.weak	nvtxNameOsThreadW_impl_init_v3
	.hidden	nvtxNameOsThreadW_impl_init_v3
	.type	nvtxNameOsThreadW_impl_init_v3, @function
nvtxNameOsThreadW_impl_init_v3:
.LFB6248:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	160+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L588
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L588:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6248:
	.size	nvtxNameOsThreadW_impl_init_v3, .-nvtxNameOsThreadW_impl_init_v3
	.section	.text.nvtxNameOsThreadA_impl_init_v3,"axG",@progbits,nvtxNameOsThreadA_impl_init_v3,comdat
	.weak	nvtxNameOsThreadA_impl_init_v3
	.hidden	nvtxNameOsThreadA_impl_init_v3
	.type	nvtxNameOsThreadA_impl_init_v3, @function
nvtxNameOsThreadA_impl_init_v3:
.LFB6247:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	152+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L591
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L591:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6247:
	.size	nvtxNameOsThreadA_impl_init_v3, .-nvtxNameOsThreadA_impl_init_v3
	.section	.text.nvtxNameCategoryW_impl_init_v3,"axG",@progbits,nvtxNameCategoryW_impl_init_v3,comdat
	.weak	nvtxNameCategoryW_impl_init_v3
	.hidden	nvtxNameCategoryW_impl_init_v3
	.type	nvtxNameCategoryW_impl_init_v3, @function
nvtxNameCategoryW_impl_init_v3:
.LFB6246:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	144+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L594
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L594:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6246:
	.size	nvtxNameCategoryW_impl_init_v3, .-nvtxNameCategoryW_impl_init_v3
	.section	.text.nvtxNameCategoryA_impl_init_v3,"axG",@progbits,nvtxNameCategoryA_impl_init_v3,comdat
	.weak	nvtxNameCategoryA_impl_init_v3
	.hidden	nvtxNameCategoryA_impl_init_v3
	.type	nvtxNameCategoryA_impl_init_v3, @function
nvtxNameCategoryA_impl_init_v3:
.LFB6245:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	136+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L597
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L597:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6245:
	.size	nvtxNameCategoryA_impl_init_v3, .-nvtxNameCategoryA_impl_init_v3
	.section	.text.nvtxRangePop_impl_init_v3,"axG",@progbits,nvtxRangePop_impl_init_v3,comdat
	.weak	nvtxRangePop_impl_init_v3
	.hidden	nvtxRangePop_impl_init_v3
	.type	nvtxRangePop_impl_init_v3, @function
nvtxRangePop_impl_init_v3:
.LFB6244:
	.cfi_startproc
	endbr64
	pushq	%rsi
	.cfi_def_cfa_offset 16
	call	nvtxInitOnce_v3
	movq	128+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L601
	popq	%rcx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L601:
	.cfi_restore_state
	movl	$-2, %eax
	popq	%rdx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6244:
	.size	nvtxRangePop_impl_init_v3, .-nvtxRangePop_impl_init_v3
	.section	.text.nvtxRangePushW_impl_init_v3,"axG",@progbits,nvtxRangePushW_impl_init_v3,comdat
	.weak	nvtxRangePushW_impl_init_v3
	.hidden	nvtxRangePushW_impl_init_v3
	.type	nvtxRangePushW_impl_init_v3, @function
nvtxRangePushW_impl_init_v3:
.LFB6243:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	120+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L604
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L604:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6243:
	.size	nvtxRangePushW_impl_init_v3, .-nvtxRangePushW_impl_init_v3
	.section	.text.nvtxRangePushA_impl_init_v3,"axG",@progbits,nvtxRangePushA_impl_init_v3,comdat
	.weak	nvtxRangePushA_impl_init_v3
	.hidden	nvtxRangePushA_impl_init_v3
	.type	nvtxRangePushA_impl_init_v3, @function
nvtxRangePushA_impl_init_v3:
.LFB6242:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	112+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L607
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L607:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6242:
	.size	nvtxRangePushA_impl_init_v3, .-nvtxRangePushA_impl_init_v3
	.section	.text.nvtxRangePushEx_impl_init_v3,"axG",@progbits,nvtxRangePushEx_impl_init_v3,comdat
	.weak	nvtxRangePushEx_impl_init_v3
	.hidden	nvtxRangePushEx_impl_init_v3
	.type	nvtxRangePushEx_impl_init_v3, @function
nvtxRangePushEx_impl_init_v3:
.LFB6241:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	104+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L610
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L610:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6241:
	.size	nvtxRangePushEx_impl_init_v3, .-nvtxRangePushEx_impl_init_v3
	.section	.text.nvtxRangeEnd_impl_init_v3,"axG",@progbits,nvtxRangeEnd_impl_init_v3,comdat
	.weak	nvtxRangeEnd_impl_init_v3
	.hidden	nvtxRangeEnd_impl_init_v3
	.type	nvtxRangeEnd_impl_init_v3, @function
nvtxRangeEnd_impl_init_v3:
.LFB6240:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	96+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L612
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L612:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6240:
	.size	nvtxRangeEnd_impl_init_v3, .-nvtxRangeEnd_impl_init_v3
	.section	.text.nvtxRangeStartW_impl_init_v3,"axG",@progbits,nvtxRangeStartW_impl_init_v3,comdat
	.weak	nvtxRangeStartW_impl_init_v3
	.hidden	nvtxRangeStartW_impl_init_v3
	.type	nvtxRangeStartW_impl_init_v3, @function
nvtxRangeStartW_impl_init_v3:
.LFB6239:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	88+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L616
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L616:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6239:
	.size	nvtxRangeStartW_impl_init_v3, .-nvtxRangeStartW_impl_init_v3
	.section	.text.nvtxRangeStartA_impl_init_v3,"axG",@progbits,nvtxRangeStartA_impl_init_v3,comdat
	.weak	nvtxRangeStartA_impl_init_v3
	.hidden	nvtxRangeStartA_impl_init_v3
	.type	nvtxRangeStartA_impl_init_v3, @function
nvtxRangeStartA_impl_init_v3:
.LFB6238:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	80+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L619
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L619:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6238:
	.size	nvtxRangeStartA_impl_init_v3, .-nvtxRangeStartA_impl_init_v3
	.section	.text.nvtxRangeStartEx_impl_init_v3,"axG",@progbits,nvtxRangeStartEx_impl_init_v3,comdat
	.weak	nvtxRangeStartEx_impl_init_v3
	.hidden	nvtxRangeStartEx_impl_init_v3
	.type	nvtxRangeStartEx_impl_init_v3, @function
nvtxRangeStartEx_impl_init_v3:
.LFB6237:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	72+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L622
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L622:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6237:
	.size	nvtxRangeStartEx_impl_init_v3, .-nvtxRangeStartEx_impl_init_v3
	.section	.text.nvtxMarkW_impl_init_v3,"axG",@progbits,nvtxMarkW_impl_init_v3,comdat
	.weak	nvtxMarkW_impl_init_v3
	.hidden	nvtxMarkW_impl_init_v3
	.type	nvtxMarkW_impl_init_v3, @function
nvtxMarkW_impl_init_v3:
.LFB6236:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	64+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L624
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L624:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6236:
	.size	nvtxMarkW_impl_init_v3, .-nvtxMarkW_impl_init_v3
	.section	.text.nvtxMarkA_impl_init_v3,"axG",@progbits,nvtxMarkA_impl_init_v3,comdat
	.weak	nvtxMarkA_impl_init_v3
	.hidden	nvtxMarkA_impl_init_v3
	.type	nvtxMarkA_impl_init_v3, @function
nvtxMarkA_impl_init_v3:
.LFB6235:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	56+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L627
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L627:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6235:
	.size	nvtxMarkA_impl_init_v3, .-nvtxMarkA_impl_init_v3
	.section	.text.nvtxMarkEx_impl_init_v3,"axG",@progbits,nvtxMarkEx_impl_init_v3,comdat
	.weak	nvtxMarkEx_impl_init_v3
	.hidden	nvtxMarkEx_impl_init_v3
	.type	nvtxMarkEx_impl_init_v3, @function
nvtxMarkEx_impl_init_v3:
.LFB6234:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	48+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L630
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L630:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6234:
	.size	nvtxMarkEx_impl_init_v3, .-nvtxMarkEx_impl_init_v3
	.text
	.globl	_Z16deviceBuildModelR12VehicleStateRd
	.type	_Z16deviceBuildModelR12VehicleStateRd, @function
_Z16deviceBuildModelR12VehicleStateRd:
.LFB10172:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 160
	movsd	24(%rbx), %xmm0
	leaq	104(%rsp), %rdi
	leaq	96(%rsp), %rsi
	call	sincos@PLT
	movsd	72(%rbx), %xmm6
	movsd	104(%rsp), %xmm0
	movsd	56(%rbx), %xmm8
	movsd	96(%rsp), %xmm5
	movaps	%xmm6, %xmm9
	movsd	%xmm6, 8(%rsp)
	movaps	%xmm6, %xmm11
	movq	.LC3(%rip), %xmm7
	movaps	%xmm8, %xmm6
	movsd	16(%rbx), %xmm12
	movaps	%xmm5, %xmm3
	movaps	%xmm8, %xmm14
	mulsd	%xmm0, %xmm9
	movsd	8(%rbx), %xmm13
	xorps	%xmm7, %xmm3
	movsd	%xmm8, 40(%rsp)
	mulsd	%xmm5, %xmm6
	movaps	%xmm12, %xmm1
	movaps	%xmm3, %xmm10
	mulsd	%xmm13, %xmm10
	movaps	%xmm13, %xmm4
	mulsd	%xmm0, %xmm1
	mulsd	%xmm5, %xmm11
	mulsd	%xmm0, %xmm4
	movaps	%xmm9, %xmm2
	addsd	%xmm6, %xmm2
	mulsd	%xmm0, %xmm14
	subsd	%xmm1, %xmm10
	movaps	%xmm12, %xmm1
	addsd	%xmm12, %xmm2
	mulsd	%xmm5, %xmm1
	movsd	%xmm10, 312(%rbx)
	movq	%xmm2, %rax
	movsd	%xmm2, 224(%rbx)
	movsd	64(%rbx), %xmm2
	movsd	%xmm10, 88(%rsp)
	mulsd	%xmm2, %xmm5
	movaps	%xmm2, %xmm15
	subsd	%xmm1, %xmm4
	movsd	%xmm2, 32(%rsp)
	mulsd	%xmm0, %xmm15
	movaps	%xmm11, %xmm1
	xorps	%xmm7, %xmm0
	subsd	%xmm14, %xmm1
	movsd	%xmm4, 320(%rbx)
	movsd	%xmm4, 80(%rsp)
	subsd	%xmm5, %xmm9
	addsd	%xmm13, %xmm1
	addsd	%xmm15, %xmm11
	addsd	%xmm12, %xmm9
	movsd	%xmm1, 192(%rbx)
	movaps	%xmm11, %xmm4
	addsd	%xmm13, %xmm4
	movsd	%xmm9, 232(%rbx)
	movq	%xmm9, %r15
	movsd	80(%rbx), %xmm9
	mulsd	%xmm9, %xmm3
	movsd	%xmm4, 200(%rbx)
	movq	%xmm4, %r14
	mulsd	%xmm9, %xmm0
	movsd	%xmm9, 24(%rsp)
	addsd	%xmm3, %xmm15
	subsd	%xmm14, %xmm3
	addsd	%xmm0, %xmm6
	addsd	%xmm13, %xmm15
	addsd	%xmm13, %xmm3
	addsd	%xmm12, %xmm6
	movsd	%xmm15, 208(%rbx)
	movsd	%xmm15, 72(%rsp)
	movaps	%xmm0, %xmm15
	movaps	%xmm8, %xmm0
	addsd	%xmm2, %xmm0
	subsd	%xmm5, %xmm15
	movsd	%xmm3, 216(%rbx)
	movsd	%xmm3, 56(%rsp)
	movsd	%xmm6, 248(%rbx)
	movsd	%xmm0, 272(%rbx)
	movaps	%xmm15, %xmm5
	movsd	%xmm0, 256(%rbx)
	movsd	8(%rsp), %xmm0
	addsd	%xmm12, %xmm5
	movsd	%xmm6, 48(%rsp)
	addsd	%xmm9, %xmm0
	movsd	%xmm5, 240(%rbx)
	movsd	%xmm5, 64(%rsp)
	movsd	%xmm0, 280(%rbx)
	movsd	%xmm0, 264(%rbx)
	movq	%rax, %xmm0
	call	atan2@PLT
	movsd	0(%rbp), %xmm7
	movq	%r14, %xmm1
	addsd	.LC4(%rip), %xmm0
	movsd	%xmm7, 16(%rsp)
	divsd	%xmm7, %xmm0
	cvttsd2sil	%xmm0, %eax
	movq	%r15, %xmm0
	movl	%eax, 288(%rbx)
	call	atan2@PLT
	addsd	.LC4(%rip), %xmm0
	divsd	16(%rsp), %xmm0
	movsd	72(%rsp), %xmm11
	cvttsd2sil	%xmm0, %eax
	movsd	64(%rsp), %xmm5
	movaps	%xmm11, %xmm1
	movaps	%xmm5, %xmm0
	movl	%eax, 292(%rbx)
	call	atan2@PLT
	addsd	.LC4(%rip), %xmm0
	divsd	16(%rsp), %xmm0
	movsd	56(%rsp), %xmm3
	cvttsd2sil	%xmm0, %eax
	movsd	48(%rsp), %xmm6
	movaps	%xmm3, %xmm1
	movaps	%xmm6, %xmm0
	movl	%eax, 296(%rbx)
	call	atan2@PLT
	movsd	88(%rsp), %xmm10
	comisd	8(%rsp), %xmm10
	addsd	.LC4(%rip), %xmm0
	movsd	24(%rsp), %xmm9
	divsd	16(%rsp), %xmm0
	movsd	32(%rsp), %xmm2
	cvttsd2sil	%xmm0, %ecx
	movsd	40(%rsp), %xmm8
	movq	.LC3(%rip), %xmm7
	movsd	80(%rsp), %xmm4
	jbe	.L647
	comisd	%xmm8, %xmm4
	ja	.L639
	xorps	%xmm7, %xmm2
	xorl	%edx, %edx
	jmp	.L652
.L647:
	xorps	%xmm7, %xmm9
	comisd	%xmm10, %xmm9
	jbe	.L648
	comisd	%xmm8, %xmm4
	ja	.L641
	xorps	%xmm7, %xmm2
	movl	$2, %edx
.L652:
	xorl	%eax, %eax
	comisd	%xmm4, %xmm2
	seta	%al
	leal	-1(%rax,%rax), %eax
	jmp	.L636
.L648:
	comisd	%xmm8, %xmm4
	movl	$3, %edx
	ja	.L650
	xorps	%xmm7, %xmm2
	xorl	%edx, %edx
	comisd	%xmm4, %xmm2
	seta	%dl
	leal	-1(%rdx,%rdx), %edx
	jmp	.L650
.L639:
	xorl	%edx, %edx
	jmp	.L651
.L641:
	movl	$2, %edx
.L651:
	movl	$3, %eax
	jmp	.L636
.L650:
	orl	$-1, %eax
.L636:
	movl	%ecx, 300(%rbx)
	movl	%edx, 304(%rbx)
	movl	%eax, 308(%rbx)
	addq	$120, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10172:
	.size	_Z16deviceBuildModelR12VehicleStateRd, .-_Z16deviceBuildModelR12VehicleStateRd
	.globl	_Z17deviceMeasureEdgeR12VehicleStateiP9LaserScandPiS3_b
	.type	_Z17deviceMeasureEdgeR12VehicleStateiP9LaserScandPiS3_b, @function
_Z17deviceMeasureEdgeR12VehicleStateiP9LaserScandPiS3_b:
.LFB10173:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movslq	%esi, %rsi
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$120, %rsp
	.cfi_def_cfa_offset 176
	movslq	304(%rdi,%rsi,4), %rax
	movsd	%xmm0, 80(%rsp)
	testl	%eax, %eax
	js	.L653
	movq	%rdi, %r14
	movq	%rdx, %rbp
	movq	%rcx, %r12
	movq	%r8, %r15
	testb	%r9b, %r9b
	je	.L655
	cmpl	$2, %eax
	je	.L656
	jg	.L657
	testl	%eax, %eax
	movsd	.LC7(%rip), %xmm0
	jne	.L700
	movsd	104(%rdi), %xmm1
	jmp	.L708
.L657:
	cmpl	$3, %eax
	jne	.L655
	movsd	88(%rdi), %xmm0
	jmp	.L706
.L700:
	movsd	96(%rdi), %xmm1
.L708:
	comisd	%xmm0, %xmm1
	jmp	.L707
.L656:
	movsd	112(%rdi), %xmm0
.L706:
	comisd	.LC7(%rip), %xmm0
.L707:
	ja	.L653
.L655:
	leal	1(%rax), %edx
	movl	288(%r14,%rax,4), %ebx
	movl	32(%rbp), %ecx
	andl	$3, %edx
	movl	288(%r14,%rdx,4), %r13d
	cmpl	%r13d, %ebx
	jle	.L662
	addl	%ecx, %r13d
.L662:
	movl	%r13d, %edi
	subl	%ebx, %edi
	incl	%edi
	movl	%edi, 88(%rsp)
	cmpl	$3, %edi
	jg	.L663
	movl	$-1, 304(%r14,%rsi,4)
.L663:
	movsd	192(%r14,%rdx,8), %xmm0
	leaq	(%r14,%rax,8), %rax
	movsd	192(%rax), %xmm6
	movsd	256(%rax), %xmm1
	subsd	%xmm6, %xmm0
	movsd	%xmm6, 8(%rsp)
	movsd	224(%rax), %xmm6
	movsd	%xmm6, 16(%rsp)
	movsd	%xmm0, 56(%rsp)
	movsd	56(%rsp), %xmm7
	movsd	224(%r14,%rdx,8), %xmm0
	subsd	%xmm6, %xmm0
	divsd	%xmm1, %xmm7
	movsd	%xmm0, 64(%rsp)
	movq	.LC3(%rip), %xmm0
	movsd	64(%rsp), %xmm2
	xorps	%xmm0, %xmm2
	movaps	%xmm0, 32(%rsp)
	divsd	%xmm1, %xmm2
	cvtsi2sdl	%ecx, %xmm1
	movsd	%xmm7, 48(%rsp)
	movsd	%xmm2, 24(%rsp)
	movsd	.LC8(%rip), %xmm2
	divsd	%xmm1, %xmm2
	movsd	%xmm2, 72(%rsp)
.L664:
	cmpl	%ebx, %r13d
	jl	.L653
	movl	%ebx, %eax
	leaq	104(%rsp), %rdi
	leaq	96(%rsp), %rsi
	cltd
	idivl	32(%rbp)
	cvtsi2sdl	%edx, %xmm0
	mulsd	72(%rsp), %xmm0
	movl	%edx, 92(%rsp)
	subsd	.LC4(%rip), %xmm0
	call	sincos@PLT
	movsd	96(%rsp), %xmm2
	movl	92(%rsp), %edx
	movsd	104(%rsp), %xmm0
	movsd	56(%rsp), %xmm1
	movsd	64(%rsp), %xmm3
	mulsd	%xmm0, %xmm1
	mulsd	%xmm2, %xmm3
	subsd	%xmm3, %xmm1
	xorps	%xmm3, %xmm3
	ucomisd	%xmm3, %xmm1
	jp	.L686
	je	.L665
.L686:
	movsd	64(%rsp), %xmm4
	movsd	56(%rsp), %xmm3
	movsd	16(%rsp), %xmm5
	mulsd	%xmm0, %xmm4
	mulsd	%xmm2, %xmm3
	mulsd	%xmm0, %xmm5
	addsd	%xmm4, %xmm3
	movsd	8(%rsp), %xmm4
	mulsd	%xmm0, %xmm4
	divsd	%xmm1, %xmm3
	movsd	16(%rsp), %xmm1
	mulsd	%xmm2, %xmm1
	subsd	%xmm4, %xmm1
	movsd	8(%rsp), %xmm4
	mulsd	%xmm2, %xmm4
	addsd	%xmm5, %xmm4
	mulsd	%xmm3, %xmm1
	addsd	%xmm4, %xmm1
	comisd	.LC5(%rip), %xmm1
	jb	.L665
	movsd	.LC6(%rip), %xmm6
	comisd	%xmm1, %xmm6
	jb	.L665
	movsd	.LC10(%rip), %xmm4
	comisd	%xmm1, %xmm4
	jbe	.L701
	movsd	48(%rsp), %xmm5
	movsd	24(%rsp), %xmm7
	movsd	24(%rsp), %xmm9
	mulsd	%xmm1, %xmm5
	mulsd	%xmm1, %xmm7
	addsd	16(%rsp), %xmm5
	addsd	%xmm9, %xmm9
	addsd	8(%rsp), %xmm7
	addsd	8(%rsp), %xmm9
	movaps	%xmm5, %xmm4
	mulsd	%xmm2, %xmm4
	movaps	%xmm7, %xmm8
	movaps	%xmm9, %xmm10
	mulsd	%xmm0, %xmm8
	mulsd	%xmm2, %xmm7
	mulsd	%xmm0, %xmm5
	mulsd	%xmm0, %xmm10
	mulsd	%xmm2, %xmm9
	subsd	%xmm8, %xmm4
	movq	.LC11(%rip), %xmm8
	mulsd	%xmm3, %xmm4
	addsd	%xmm7, %xmm4
	movaps	%xmm1, %xmm7
	addsd	%xmm5, %xmm4
	movsd	48(%rsp), %xmm5
	addsd	%xmm5, %xmm5
	addsd	16(%rsp), %xmm5
	subsd	%xmm4, %xmm7
	movaps	%xmm5, %xmm4
	mulsd	%xmm2, %xmm4
	andps	%xmm8, %xmm7
	mulsd	%xmm0, %xmm5
	subsd	%xmm10, %xmm4
	mulsd	%xmm4, %xmm3
	addsd	%xmm9, %xmm3
	movaps	%xmm3, %xmm2
	addsd	%xmm5, %xmm2
	movaps	%xmm2, %xmm0
	movaps	%xmm1, %xmm2
	subsd	%xmm0, %xmm2
	movaps	%xmm7, %xmm0
	andps	%xmm8, %xmm2
	jmp	.L671
.L701:
	movsd	.LC12(%rip), %xmm5
	movsd	48(%rsp), %xmm7
	movsd	48(%rsp), %xmm9
	mulsd	%xmm5, %xmm7
	mulsd	24(%rsp), %xmm5
	addsd	16(%rsp), %xmm7
	addsd	8(%rsp), %xmm5
	movaps	%xmm7, %xmm4
	mulsd	%xmm2, %xmm4
	movaps	%xmm5, %xmm8
	mulsd	%xmm0, %xmm8
	mulsd	%xmm2, %xmm5
	mulsd	%xmm0, %xmm7
	subsd	%xmm8, %xmm4
	movq	.LC11(%rip), %xmm8
	mulsd	%xmm3, %xmm4
	addsd	%xmm5, %xmm4
	movsd	.LC13(%rip), %xmm5
	mulsd	%xmm5, %xmm9
	mulsd	24(%rsp), %xmm5
	addsd	%xmm7, %xmm4
	addsd	16(%rsp), %xmm9
	addsd	8(%rsp), %xmm5
	movaps	%xmm1, %xmm7
	subsd	%xmm4, %xmm7
	movaps	%xmm9, %xmm4
	mulsd	%xmm2, %xmm4
	movaps	%xmm5, %xmm10
	mulsd	%xmm0, %xmm10
	mulsd	%xmm2, %xmm5
	andps	%xmm8, %xmm7
	mulsd	%xmm0, %xmm9
	subsd	%xmm10, %xmm4
	mulsd	%xmm4, %xmm3
	addsd	%xmm5, %xmm3
	movaps	%xmm3, %xmm2
	addsd	%xmm9, %xmm2
	movaps	%xmm2, %xmm0
	movaps	%xmm1, %xmm2
	subsd	%xmm0, %xmm2
	andps	%xmm8, %xmm2
	movaps	%xmm2, %xmm0
	movaps	%xmm7, %xmm2
.L671:
	movaps	%xmm1, %xmm5
	movsd	.LC5(%rip), %xmm3
	subsd	%xmm7, %xmm5
	comisd	%xmm3, %xmm5
	jnb	.L672
	movaps	%xmm3, %xmm5
.L672:
	addsd	%xmm1, %xmm2
	comisd	%xmm2, %xmm6
	jnb	.L673
	movaps	%xmm6, %xmm2
.L673:
	movaps	%xmm1, %xmm6
	subsd	%xmm0, %xmm6
	comisd	%xmm3, %xmm6
	jnb	.L674
	movaps	%xmm3, %xmm6
.L674:
	movslq	%edx, %rax
	movsd	.LC14(%rip), %xmm4
	movsd	40(%rbp,%rax,8), %xmm0
	comisd	%xmm0, %xmm6
	jb	.L702
	subsd	%xmm6, %xmm0
	movaps	32(%rsp), %xmm6
	xorps	%xmm0, %xmm6
	mulsd	%xmm6, %xmm0
	divsd	%xmm4, %xmm0
	call	exp@PLT
	mulsd	.LC15(%rip), %xmm0
	xorps	%xmm1, %xmm1
	addsd	%xmm1, %xmm0
	jmp	.L677
.L702:
	comisd	%xmm0, %xmm5
	jb	.L703
	subsd	%xmm5, %xmm0
	movaps	32(%rsp), %xmm6
	xorps	%xmm0, %xmm6
	mulsd	%xmm6, %xmm0
	divsd	%xmm4, %xmm0
	call	exp@PLT
	mulsd	.LC16(%rip), %xmm0
	subsd	.LC17(%rip), %xmm0
	jmp	.L677
.L703:
	comisd	%xmm0, %xmm2
	jb	.L704
	comisd	.LC10(%rip), %xmm1
	jb	.L682
	testq	%r12, %r12
	setne	%cl
	testq	%r15, %r15
	setne	%al
	testb	%al, %cl
	je	.L684
	cmpl	$3, 88(%rsp)
	jle	.L684
	movslq	(%r12), %rax
	cmpl	$1023, %eax
	jg	.L684
	movl	%edx, (%r15,%rax,4)
	incl	(%r12)
.L684:
	movsd	.LC18(%rip), %xmm2
	addsd	184(%r14), %xmm2
	movsd	%xmm2, 184(%r14)
.L682:
	subsd	%xmm1, %xmm0
	movaps	32(%rsp), %xmm6
	xorps	%xmm0, %xmm6
	mulsd	%xmm6, %xmm0
	divsd	%xmm4, %xmm0
	call	exp@PLT
	movsd	.LC5(%rip), %xmm3
	addsd	%xmm0, %xmm0
	addsd	%xmm3, %xmm0
	jmp	.L677
.L704:
	subsd	%xmm2, %xmm0
	movaps	32(%rsp), %xmm6
	xorps	%xmm0, %xmm6
	mulsd	%xmm6, %xmm0
	divsd	%xmm4, %xmm0
	call	exp@PLT
	mulsd	.LC19(%rip), %xmm0
	subsd	.LC20(%rip), %xmm0
.L677:
	divsd	80(%rsp), %xmm0
	addsd	(%r14), %xmm0
	movsd	%xmm0, (%r14)
.L665:
	incl	%ebx
	jmp	.L664
.L653:
	addq	$120, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10173:
	.size	_Z17deviceMeasureEdgeR12VehicleStateiP9LaserScandPiS3_b, .-_Z17deviceMeasureEdgeR12VehicleStateiP9LaserScandPiS3_b
	.globl	_Z15deviceEgoMotionR12VehicleStateR9EgoMotion
	.type	_Z15deviceEgoMotionR12VehicleStateR9EgoMotion, @function
_Z15deviceEgoMotionR12VehicleStateR9EgoMotion:
.LFB10174:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 64
	movsd	56(%rsi), %xmm2
	leaq	24(%rsp), %rdi
	leaq	16(%rsp), %rsi
	movaps	%xmm2, %xmm0
	movsd	%xmm2, 8(%rsp)
	call	sincos@PLT
	movsd	8(%rbx), %xmm0
	movsd	16(%rbx), %xmm3
	movsd	16(%rsp), %xmm5
	movsd	24(%rsp), %xmm4
	movaps	%xmm0, %xmm1
	movaps	%xmm3, %xmm6
	movsd	8(%rsp), %xmm2
	addsd	24(%rbx), %xmm2
	mulsd	%xmm4, %xmm1
	mulsd	%xmm5, %xmm6
	mulsd	%xmm5, %xmm0
	mulsd	%xmm4, %xmm3
	addsd	%xmm6, %xmm1
	addsd	48(%rbp), %xmm1
	subsd	%xmm3, %xmm0
	addsd	40(%rbp), %xmm0
	movsd	%xmm2, 24(%rbx)
	movsd	%xmm1, 16(%rbx)
	movsd	%xmm0, 8(%rbx)
	addq	$40, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10174:
	.size	_Z15deviceEgoMotionR12VehicleStateR9EgoMotion, .-_Z15deviceEgoMotionR12VehicleStateR9EgoMotion
	.globl	_Z20deviceAckermannModelR12VehicleStateS0_R9EgoMotion
	.type	_Z20deviceAckermannModelR12VehicleStateS0_R9EgoMotion, @function
_Z20deviceAckermannModelR12VehicleStateS0_R9EgoMotion:
.LFB10175:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rax
	movl	$82, %ecx
	movq	%rsi, %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	movq	%rax, %rsi
	xorps	%xmm0, %xmm0
	movq	%rdx, %rbp
	subq	$120, %rsp
	.cfi_def_cfa_offset 144
	rep movsl
	movsd	128(%rbx), %xmm1
	ucomisd	%xmm0, %xmm1
	jp	.L712
	je	.L719
.L712:
	cvtsi2sdl	64(%rbp), %xmm6
	movsd	136(%rbx), %xmm5
	xorps	%xmm0, %xmm0
	leaq	104(%rsp), %rdi
	movsd	8(%rbx), %xmm7
	movsd	24(%rbx), %xmm4
	leaq	96(%rsp), %rsi
	movsd	%xmm5, 8(%rsp)
	movsd	16(%rbx), %xmm5
	movsd	%xmm7, 24(%rsp)
	movsd	%xmm6, 16(%rsp)
	movsd	8(%rsp), %xmm6
	movsd	%xmm5, 32(%rsp)
	ucomisd	%xmm0, %xmm6
	jp	.L714
	jne	.L714
	movaps	%xmm4, %xmm0
	movsd	%xmm1, 8(%rsp)
	call	sincos@PLT
	movsd	96(%rsp), %xmm0
	movsd	8(%rsp), %xmm1
	mulsd	%xmm1, %xmm0
	mulsd	16(%rsp), %xmm0
	divsd	.LC21(%rip), %xmm0
	addsd	24(%rsp), %xmm0
	movsd	%xmm0, 8(%rbx)
	mulsd	104(%rsp), %xmm1
	mulsd	16(%rsp), %xmm1
	movq	$0x000000000, 120(%rbx)
	divsd	.LC21(%rip), %xmm1
	addsd	32(%rsp), %xmm1
	movsd	%xmm1, 16(%rbx)
	jmp	.L719
.L714:
	movsd	120(%rbx), %xmm3
	movaps	%xmm4, %xmm0
	movq	%rsi, 64(%rsp)
	movq	%rdi, 56(%rsp)
	addsd	%xmm3, %xmm0
	movsd	%xmm1, 88(%rsp)
	movsd	%xmm4, 80(%rsp)
	movsd	%xmm3, 72(%rsp)
	call	sincos@PLT
	movsd	88(%rsp), %xmm1
	movq	64(%rsp), %rsi
	mulsd	8(%rsp), %xmm1
	movsd	104(%rsp), %xmm4
	movsd	96(%rsp), %xmm2
	movsd	72(%rsp), %xmm3
	movsd	%xmm4, 40(%rsp)
	movsd	80(%rsp), %xmm4
	movq	56(%rsp), %rdi
	movsd	%xmm2, 48(%rsp)
	movsd	%xmm1, 144(%rbx)
	mulsd	16(%rsp), %xmm1
	divsd	.LC21(%rip), %xmm1
	addsd	%xmm4, %xmm1
	addsd	%xmm1, %xmm3
	movsd	%xmm1, 24(%rbx)
	movaps	%xmm3, %xmm0
	call	sincos@PLT
	movsd	104(%rsp), %xmm0
	subsd	40(%rsp), %xmm0
	movsd	.LC18(%rip), %xmm1
	divsd	8(%rsp), %xmm1
	movsd	48(%rsp), %xmm2
	mulsd	%xmm1, %xmm0
	addsd	24(%rsp), %xmm0
	movsd	%xmm0, 8(%rbx)
	subsd	96(%rsp), %xmm2
	movaps	%xmm2, %xmm0
	mulsd	%xmm1, %xmm0
	addsd	32(%rsp), %xmm0
	movsd	%xmm0, 16(%rbx)
.L719:
	addq	$120, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	jmp	_Z15deviceEgoMotionR12VehicleStateR9EgoMotion
	.cfi_endproc
.LFE10175:
	.size	_Z20deviceAckermannModelR12VehicleStateS0_R9EgoMotion, .-_Z20deviceAckermannModelR12VehicleStateS0_R9EgoMotion
	.globl	_Z14sampleParticleRiP12VehicleStateS_S1_RS0_
	.type	_Z14sampleParticleRiP12VehicleStateS_S1_RS0_, @function
_Z14sampleParticleRiP12VehicleStateS_S1_RS0_:
.LFB10176:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	leaq	-1683456(%rsp), %r11
	.cfi_def_cfa 11, 1683512
.LPSRL0:
	subq	$4096, %rsp
	orq	$0, (%rsp)
	cmpq	%r11, %rsp
	jne	.LPSRL0
	.cfi_def_cfa_register 7
	subq	$216, %rsp
	.cfi_def_cfa_offset 1683728
	movq	%rdx, %r14
	movslq	(%rdx), %rdx
	movq	%rdi, %rbp
	movq	%rsi, %r12
	movq	%fs:40, %rax
	movq	%rax, 1683656(%rsp)
	xorl	%eax, %eax
	leaq	340168(%rsp), %r13
	movq	%rcx, %rsi
	movq	%r8, %rbx
	imulq	$328, %rdx, %rdx
	movl	$2, %ecx
	movq	%r13, %rdi
	call	cudaMemcpy@PLT
	movl	(%r14), %ecx
	movq	%r13, %rdx
	xorl	%eax, %eax
	movsd	340168(%rsp), %xmm2
	movaps	%xmm2, %xmm1
.L721:
	cmpl	%eax, %ecx
	jle	.L851
	movsd	(%rdx), %xmm0
	movb	$1, 200(%rsp,%rax)
	addq	$328, %rdx
	incq	%rax
	movaps	%xmm0, %xmm4
	minsd	%xmm1, %xmm0
	maxsd	%xmm2, %xmm4
	movaps	%xmm0, %xmm1
	movaps	%xmm4, %xmm2
	jmp	.L721
.L851:
	movsd	.LC22(%rip), %xmm0
	movsd	.LC23(%rip), %xmm3
	comisd	%xmm2, %xmm0
	jnb	.L725
	divsd	%xmm2, %xmm0
	comisd	%xmm3, %xmm1
	movsd	.LC18(%rip), %xmm2
	jnb	.L726
.L806:
	divsd	%xmm1, %xmm3
	movaps	%xmm3, %xmm2
.L726:
	minsd	%xmm2, %xmm0
.L821:
	movaps	%xmm0, %xmm2
	xorl	%r15d, %r15d
.L729:
	movl	(%r14), %eax
	cmpl	%r15d, %eax
	jle	.L852
	movsd	%xmm2, 184(%rsp)
	movaps	%xmm2, %xmm0
	mulsd	0(%r13), %xmm0
	call	exp@PLT
	testl	%r15d, %r15d
	movsd	184(%rsp), %xmm2
	movsd	%xmm0, 0(%r13)
	je	.L730
	addsd	-328(%r13), %xmm0
	movsd	%xmm0, 0(%r13)
.L730:
	incl	%r15d
	addq	$328, %r13
	jmp	.L729
.L852:
	movl	$1024, %edx
	movsd	.LC18(%rip), %xmm0
	cmpl	%edx, %eax
	cmovle	%eax, %edx
	cvtsi2sdl	%edx, %xmm1
	movl	%edx, %r13d
	divsd	%xmm1, %xmm0
	movsd	%xmm0, 184(%rsp)
	call	rand@PLT
	movl	$1000000, %ecx
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movsd	184(%rsp), %xmm0
	cltd
	idivl	%ecx
	movl	(%r14), %eax
	decl	%eax
	cltq
	imulq	$328, %rax, %rax
	movsd	340168(%rsp,%rax), %xmm12
	xorl	%eax, %eax
	movl	%eax, 0(%rbp)
	movq	$0x000000000, (%rbx)
	movq	$0x000000000, 8(%rbx)
	movq	$0x000000000, 16(%rbx)
	movq	$0x000000000, 24(%rbx)
	movq	$0x000000000, 56(%rbx)
	movq	$0x000000000, 64(%rbx)
	movq	$0x000000000, 72(%rbx)
	cvtsi2sdl	%edx, %xmm2
	movq	$0x000000000, 80(%rbx)
	movq	$0x000000000, 120(%rbx)
	movq	$0x000000000, 128(%rbx)
	movq	$0x000000000, 136(%rbx)
	movq	$0x000000000, 144(%rbx)
	mulsd	%xmm0, %xmm2
	movq	$0x000000000, 184(%rbx)
	divsd	.LC24(%rip), %xmm2
.L732:
	cmpl	%r13d, %r8d
	jge	.L853
	cvtsi2sdl	%r8d, %xmm1
	movl	(%r14), %edx
	movslq	%r9d, %rax
	mulsd	%xmm0, %xmm1
	addsd	%xmm2, %xmm1
.L733:
	movl	%eax, %r9d
	cmpl	%eax, %edx
	jle	.L781
	imulq	$328, %rax, %rcx
	incq	%rax
	movsd	340168(%rsp,%rcx), %xmm3
	divsd	%xmm12, %xmm3
	comisd	%xmm3, %xmm1
	ja	.L733
	movslq	%r9d, %rcx
	movl	0(%rbp), %edx
	cmpb	$0, 200(%rsp,%rcx)
	je	.L734
	movslq	%edx, %rax
	movb	$0, 200(%rsp,%rcx)
	imulq	$328, %rcx, %rcx
	imulq	$328, %rax, %rax
	leaq	340168(%rsp,%rcx), %rsi
	movl	$82, %ecx
	leaq	4296(%rsp,%rax), %r10
	movq	%r10, %rdi
	rep movsl
	movsd	%xmm0, 4296(%rsp,%rax)
	testl	%edx, %edx
	jne	.L735
	movsd	4304(%rsp), %xmm4
	movsd	4312(%rsp), %xmm5
	movsd	4360(%rsp), %xmm6
	movsd	4416(%rsp), %xmm3
	movsd	%xmm4, 16(%rsp)
	movsd	16(%rsp), %xmm1
	movsd	4320(%rsp), %xmm4
	movsd	%xmm5, 24(%rsp)
	movaps	%xmm3, %xmm9
	movsd	4352(%rsp), %xmm5
	movsd	%xmm4, 32(%rsp)
	movsd	4368(%rsp), %xmm4
	movsd	%xmm5, 40(%rsp)
	movsd	4376(%rsp), %xmm5
	movsd	%xmm6, 48(%rsp)
	movsd	4424(%rsp), %xmm6
	movsd	%xmm4, 56(%rsp)
	movsd	56(%rsp), %xmm7
	movsd	4432(%rsp), %xmm4
	movsd	%xmm5, 64(%rsp)
	movaps	%xmm6, %xmm10
	movsd	64(%rsp), %xmm8
	movsd	4440(%rsp), %xmm5
	movsd	%xmm3, 72(%rsp)
	movaps	%xmm4, %xmm11
	movsd	24(%rsp), %xmm3
	movsd	%xmm6, 8(%rsp)
	movaps	%xmm5, %xmm13
	movsd	48(%rsp), %xmm6
	movsd	%xmm4, 80(%rsp)
	movsd	32(%rsp), %xmm4
	movsd	%xmm5, 88(%rsp)
	movsd	40(%rsp), %xmm5
	jmp	.L736
.L735:
	movsd	4304(%rsp,%rax), %xmm1
	movsd	16(%rsp), %xmm5
	movsd	4312(%rsp,%rax), %xmm3
	movsd	96(%rsp), %xmm6
	movsd	104(%rsp), %xmm4
	minsd	%xmm1, %xmm5
	movsd	24(%rsp), %xmm7
	maxsd	%xmm1, %xmm6
	movsd	56(%rsp), %xmm14
	movsd	136(%rsp), %xmm15
	maxsd	%xmm3, %xmm4
	minsd	%xmm3, %xmm7
	movsd	4376(%rsp,%rax), %xmm8
	movsd	4416(%rsp,%rax), %xmm9
	movsd	%xmm5, 16(%rsp)
	movsd	32(%rsp), %xmm5
	movsd	72(%rsp), %xmm13
	movaps	%xmm6, %xmm1
	movsd	112(%rsp), %xmm6
	movaps	%xmm4, %xmm3
	movsd	%xmm7, 24(%rsp)
	movsd	40(%rsp), %xmm7
	movsd	4320(%rsp,%rax), %xmm4
	minsd	%xmm9, %xmm13
	minsd	%xmm4, %xmm5
	maxsd	%xmm4, %xmm6
	movsd	%xmm13, 72(%rsp)
	movsd	%xmm5, 32(%rsp)
	movaps	%xmm6, %xmm4
	movsd	120(%rsp), %xmm6
	movsd	4352(%rsp,%rax), %xmm5
	minsd	%xmm5, %xmm7
	maxsd	%xmm5, %xmm6
	movsd	%xmm7, 40(%rsp)
	movaps	%xmm6, %xmm5
	movsd	48(%rsp), %xmm7
	movsd	4360(%rsp,%rax), %xmm6
	minsd	%xmm6, %xmm7
	movsd	%xmm7, 48(%rsp)
	movsd	128(%rsp), %xmm7
	maxsd	%xmm6, %xmm7
	movaps	%xmm7, %xmm6
	movsd	4368(%rsp,%rax), %xmm7
	minsd	%xmm7, %xmm14
	maxsd	%xmm7, %xmm15
	movsd	%xmm14, 56(%rsp)
	movaps	%xmm15, %xmm7
	movsd	64(%rsp), %xmm14
	movsd	144(%rsp), %xmm15
	minsd	%xmm8, %xmm14
	maxsd	%xmm8, %xmm15
	movsd	%xmm14, 64(%rsp)
	movaps	%xmm15, %xmm8
	movsd	152(%rsp), %xmm14
	movsd	4424(%rsp,%rax), %xmm10
	movsd	8(%rsp), %xmm15
	movsd	4432(%rsp,%rax), %xmm11
	movsd	160(%rsp), %xmm13
	maxsd	%xmm9, %xmm14
	minsd	%xmm10, %xmm15
	maxsd	%xmm10, %xmm13
	movaps	%xmm14, %xmm9
	movsd	80(%rsp), %xmm14
	movsd	%xmm15, 8(%rsp)
	movsd	168(%rsp), %xmm15
	minsd	%xmm11, %xmm14
	movaps	%xmm13, %xmm10
	movsd	4440(%rsp,%rax), %xmm13
	maxsd	%xmm11, %xmm15
	movsd	%xmm14, 80(%rsp)
	movsd	88(%rsp), %xmm14
	movaps	%xmm15, %xmm11
	movsd	176(%rsp), %xmm15
	minsd	%xmm13, %xmm14
	maxsd	%xmm13, %xmm15
	movsd	%xmm14, 88(%rsp)
	movaps	%xmm15, %xmm13
.L736:
	incl	%edx
	movsd	%xmm5, 120(%rsp)
	movl	%edx, 0(%rbp)
	movsd	%xmm13, 176(%rsp)
	movsd	%xmm11, 168(%rsp)
	movsd	%xmm10, 160(%rsp)
	movsd	%xmm9, 152(%rsp)
	movsd	%xmm8, 144(%rsp)
	movsd	%xmm7, 136(%rsp)
	movsd	%xmm6, 128(%rsp)
	movsd	%xmm4, 112(%rsp)
	movsd	%xmm3, 104(%rsp)
	movsd	%xmm1, 96(%rsp)
	jmp	.L780
.L734:
	decl	%edx
	movslq	%edx, %rdx
	imulq	$328, %rdx, %rdx
	movsd	4296(%rsp,%rdx), %xmm1
	addsd	%xmm0, %xmm1
	movsd	%xmm1, 4296(%rsp,%rdx)
.L780:
	movl	0(%rbp), %eax
	movsd	(%rbx), %xmm1
	decl	%eax
	addsd	%xmm0, %xmm1
	cltq
	imulq	$328, %rax, %rax
	movsd	%xmm1, (%rbx)
	movsd	4304(%rsp,%rax), %xmm1
	mulsd	%xmm0, %xmm1
	addsd	8(%rbx), %xmm1
	movsd	%xmm1, 8(%rbx)
	movsd	4312(%rsp,%rax), %xmm1
	mulsd	%xmm0, %xmm1
	addsd	16(%rbx), %xmm1
	movsd	%xmm1, 16(%rbx)
	movsd	4320(%rsp,%rax), %xmm1
	mulsd	%xmm0, %xmm1
	addsd	24(%rbx), %xmm1
	movsd	%xmm1, 24(%rbx)
	movsd	4352(%rsp,%rax), %xmm1
	mulsd	%xmm0, %xmm1
	addsd	56(%rbx), %xmm1
	movsd	%xmm1, 56(%rbx)
	movsd	4360(%rsp,%rax), %xmm1
	mulsd	%xmm0, %xmm1
	addsd	64(%rbx), %xmm1
	movsd	%xmm1, 64(%rbx)
	movsd	4368(%rsp,%rax), %xmm1
	mulsd	%xmm0, %xmm1
	addsd	72(%rbx), %xmm1
	movsd	%xmm1, 72(%rbx)
	movsd	4376(%rsp,%rax), %xmm1
	mulsd	%xmm0, %xmm1
	addsd	80(%rbx), %xmm1
	movsd	%xmm1, 80(%rbx)
	movsd	4416(%rsp,%rax), %xmm1
	mulsd	%xmm0, %xmm1
	addsd	120(%rbx), %xmm1
	movsd	%xmm1, 120(%rbx)
	movsd	4424(%rsp,%rax), %xmm1
	mulsd	%xmm0, %xmm1
	addsd	128(%rbx), %xmm1
	movsd	%xmm1, 128(%rbx)
	movsd	4432(%rsp,%rax), %xmm1
	mulsd	%xmm0, %xmm1
	addsd	136(%rbx), %xmm1
	movsd	%xmm1, 136(%rbx)
	movsd	4440(%rsp,%rax), %xmm1
	mulsd	%xmm0, %xmm1
	addsd	144(%rbx), %xmm1
	movsd	%xmm1, 144(%rbx)
	movsd	4480(%rsp,%rax), %xmm1
	mulsd	%xmm0, %xmm1
	addsd	184(%rbx), %xmm1
	movsd	%xmm1, 184(%rbx)
.L781:
	incl	%r8d
	jmp	.L732
.L853:
	movsd	(%rbx), %xmm0
	movsd	8(%rbx), %xmm9
	movq	%rbx, %rdi
	leaq	72+h_egomotion(%rip), %rsi
	movsd	16(%rbx), %xmm8
	movsd	24(%rbx), %xmm7
	movsd	56(%rbx), %xmm6
	movsd	64(%rbx), %xmm5
	divsd	%xmm0, %xmm9
	movsd	72(%rbx), %xmm4
	movsd	80(%rbx), %xmm3
	movsd	120(%rbx), %xmm2
	movsd	128(%rbx), %xmm1
	movsd	136(%rbx), %xmm10
	movsd	184(%rbx), %xmm12
	divsd	%xmm0, %xmm10
	movsd	%xmm9, 8(%rbx)
	divsd	%xmm0, %xmm1
	movsd	%xmm10, 136(%rbx)
	divsd	%xmm0, %xmm8
	movaps	%xmm1, %xmm11
	movsd	%xmm1, 128(%rbx)
	mulsd	%xmm10, %xmm11
	movsd	%xmm11, 144(%rbx)
	divsd	%xmm0, %xmm7
	movsd	%xmm8, 16(%rbx)
	divsd	%xmm0, %xmm6
	movsd	%xmm7, 24(%rbx)
	divsd	%xmm0, %xmm5
	movsd	%xmm6, 56(%rbx)
	divsd	%xmm0, %xmm4
	movsd	%xmm5, 64(%rbx)
	divsd	%xmm0, %xmm3
	movsd	%xmm4, 72(%rbx)
	divsd	%xmm0, %xmm2
	movsd	%xmm3, 80(%rbx)
	divsd	%xmm0, %xmm12
	movsd	%xmm2, 120(%rbx)
	divsd	%xmm0, %xmm0
	movsd	%xmm12, 184(%rbx)
	movsd	%xmm0, (%rbx)
	movsd	96(%rsp), %xmm0
	subsd	%xmm9, %xmm0
	subsd	16(%rsp), %xmm9
	maxsd	%xmm9, %xmm0
	movsd	%xmm0, 32(%rbx)
	movsd	104(%rsp), %xmm0
	subsd	%xmm8, %xmm0
	subsd	24(%rsp), %xmm8
	maxsd	%xmm8, %xmm0
	movsd	%xmm0, 40(%rbx)
	movsd	112(%rsp), %xmm0
	subsd	%xmm7, %xmm0
	subsd	32(%rsp), %xmm7
	maxsd	%xmm7, %xmm0
	movsd	%xmm0, 48(%rbx)
	movsd	120(%rsp), %xmm0
	subsd	%xmm6, %xmm0
	subsd	40(%rsp), %xmm6
	maxsd	%xmm6, %xmm0
	movsd	%xmm0, 88(%rbx)
	movsd	128(%rsp), %xmm0
	subsd	%xmm5, %xmm0
	subsd	48(%rsp), %xmm5
	maxsd	%xmm5, %xmm0
	movsd	%xmm0, 96(%rbx)
	movsd	136(%rsp), %xmm0
	subsd	%xmm4, %xmm0
	subsd	56(%rsp), %xmm4
	maxsd	%xmm4, %xmm0
	movsd	%xmm0, 104(%rbx)
	movsd	144(%rsp), %xmm0
	subsd	%xmm3, %xmm0
	subsd	64(%rsp), %xmm3
	maxsd	%xmm3, %xmm0
	movsd	%xmm0, 112(%rbx)
	movsd	152(%rsp), %xmm0
	subsd	%xmm2, %xmm0
	subsd	72(%rsp), %xmm2
	maxsd	%xmm2, %xmm0
	movsd	%xmm0, 152(%rbx)
	movsd	160(%rsp), %xmm0
	subsd	%xmm1, %xmm0
	subsd	8(%rsp), %xmm1
	maxsd	%xmm1, %xmm0
	movsd	168(%rsp), %xmm1
	subsd	%xmm10, %xmm1
	movsd	%xmm0, 160(%rbx)
	movaps	%xmm10, %xmm0
	subsd	80(%rsp), %xmm0
	maxsd	%xmm0, %xmm1
	movaps	%xmm11, %xmm0
	subsd	88(%rsp), %xmm0
	movsd	%xmm1, 168(%rbx)
	movsd	176(%rsp), %xmm1
	subsd	%xmm11, %xmm1
	maxsd	%xmm0, %xmm1
	movsd	%xmm1, 176(%rbx)
	call	_Z16deviceBuildModelR12VehicleStateRd
	movslq	0(%rbp), %rdx
	movl	$1, %ecx
	movq	%r12, %rdi
	leaq	4296(%rsp), %rsi
	imulq	$328, %rdx, %rdx
	call	cudaMemcpy@PLT
	movq	1683656(%rsp), %rax
	subq	%fs:40, %rax
	je	.L807
	call	__stack_chk_fail@PLT
.L725:
	comisd	%xmm3, %xmm1
	movsd	.LC18(%rip), %xmm0
	jnb	.L821
	jmp	.L806
.L807:
	addq	$1683672, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10176:
	.size	_Z14sampleParticleRiP12VehicleStateS_S1_RS0_, .-_Z14sampleParticleRiP12VehicleStateS_S1_RS0_
	.globl	cuda_InitLaserScan
	.type	cuda_InitLaserScan, @function
cuda_InitLaserScan:
.LFB10183:
	.cfi_startproc
	endbr64
	cmpq	$0, d_scan(%rip)
	jne	.L854
	movl	$16424, %esi
	leaq	d_scan(%rip), %rdi
	jmp	cudaMalloc@PLT
.L854:
	ret
	.cfi_endproc
.LFE10183:
	.size	cuda_InitLaserScan, .-cuda_InitLaserScan
	.globl	cuda_SetLaserScan
	.type	cuda_SetLaserScan, @function
cuda_SetLaserScan:
.LFB10184:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rsi
	movq	%rdi, %rbx
	movl	$1, %ecx
	movl	$16424, %edx
	subq	$48, %rsp
	.cfi_def_cfa_offset 64
	movq	d_scan(%rip), %rdi
	call	cudaMemcpy@PLT
	cmpb	$0, h_egomotion(%rip)
	movl	$4106, %ecx
	movq	%rbx, %rsi
	leaq	h_scan(%rip), %rdi
	rep movsl
	je	.L857
	movsd	24(%rbx), %xmm6
	leaq	40(%rsp), %rdi
	leaq	32(%rsp), %rsi
	movsd	8+h_egomotion(%rip), %xmm2
	movsd	16+h_egomotion(%rip), %xmm1
	subsd	8(%rbx), %xmm2
	subsd	16(%rbx), %xmm1
	movaps	%xmm6, %xmm0
	movsd	%xmm6, 8(%rsp)
	movsd	%xmm2, 24(%rsp)
	movsd	%xmm1, 16(%rsp)
	call	sincos@PLT
	movsd	24(%rsp), %xmm2
	movl	(%rbx), %eax
	movsd	16(%rsp), %xmm1
	movsd	32(%rsp), %xmm4
	movsd	40(%rsp), %xmm0
	movaps	%xmm2, %xmm3
	subl	32+h_egomotion(%rip), %eax
	mulsd	%xmm4, %xmm3
	movaps	%xmm1, %xmm5
	movl	%eax, 64+h_egomotion(%rip)
	mulsd	%xmm0, %xmm5
	mulsd	%xmm4, %xmm1
	mulsd	%xmm2, %xmm0
	addsd	%xmm5, %xmm3
	subsd	%xmm0, %xmm1
	movsd	24+h_egomotion(%rip), %xmm0
	subsd	8(%rsp), %xmm0
	movsd	%xmm3, 40+h_egomotion(%rip)
	movsd	%xmm1, 48+h_egomotion(%rip)
	movsd	%xmm0, 56+h_egomotion(%rip)
.L857:
	movsd	8(%rbx), %xmm0
	cvtsi2sdl	32(%rbx), %xmm1
	movl	(%rbx), %eax
	movb	$1, h_egomotion(%rip)
	movsd	%xmm0, 8+h_egomotion(%rip)
	movsd	16(%rbx), %xmm0
	movsd	%xmm0, 16+h_egomotion(%rip)
	movsd	24(%rbx), %xmm0
	movl	%eax, 32+h_egomotion(%rip)
	movsd	%xmm0, 24+h_egomotion(%rip)
	movsd	.LC8(%rip), %xmm0
	divsd	%xmm1, %xmm0
	movsd	%xmm0, 72+h_egomotion(%rip)
	addq	$48, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10184:
	.size	cuda_SetLaserScan, .-cuda_SetLaserScan
	.globl	cuda_FreeLaserScan
	.type	cuda_FreeLaserScan, @function
cuda_FreeLaserScan:
.LFB10185:
	.cfi_startproc
	endbr64
	movq	d_scan(%rip), %rdi
	testq	%rdi, %rdi
	je	.L865
	pushq	%rax
	.cfi_def_cfa_offset 16
	call	cudaFree@PLT
	xorl	%edx, %edx
	movq	%rdx, d_scan(%rip)
	popq	%rcx
	.cfi_def_cfa_offset 8
	ret
.L865:
	ret
	.cfi_endproc
.LFE10185:
	.size	cuda_FreeLaserScan, .-cuda_FreeLaserScan
	.globl	cuda_CloseTracker
	.type	cuda_CloseTracker, @function
cuda_CloseTracker:
.LFB10187:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	8(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L869
	call	cudaFree@PLT
	xorl	%ecx, %ecx
	movq	%rcx, 8(%rbx)
.L869:
	movq	16(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L870
	call	cudaFree@PLT
	xorl	%edx, %edx
	movq	%rdx, 16(%rbx)
.L870:
	movq	24(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L868
	call	cudaFree@PLT
	xorl	%eax, %eax
	movq	%rax, 24(%rbx)
.L868:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10187:
	.size	cuda_CloseTracker, .-cuda_CloseTracker
	.globl	_Z135__device_stub__Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEiPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi
	.type	_Z135__device_stub__Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEiPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi, @function
_Z135__device_stub__Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEiPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi:
.LFB10218:
	.cfi_startproc
	endbr64
	subq	$136, %rsp
	.cfi_def_cfa_offset 144
	movq	%rdi, 24(%rsp)
	leaq	40(%rsp), %rcx
	leaq	48(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	60(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	32(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 56(%rsp)
	movq	%rax, 96(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 112(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 48(%rsp)
	movq	%rax, 60(%rsp)
	movl	$1, 68(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L882
	pushq	40(%rsp)
	.cfi_def_cfa_offset 152
	leaq	_Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi(%rip), %rdi
	pushq	40(%rsp)
	.cfi_def_cfa_offset 160
	movq	76(%rsp), %rcx
	movl	84(%rsp), %r8d
	movq	64(%rsp), %rsi
	movl	72(%rsp), %edx
	leaq	112(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 152
	popq	%rdx
	.cfi_def_cfa_offset 144
.L882:
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	je	.L884
	call	__stack_chk_fail@PLT
.L884:
	addq	$136, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10218:
	.size	_Z135__device_stub__Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEiPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi, .-_Z135__device_stub__Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEiPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi
	.globl	_Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi
	.type	_Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi, @function
_Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi:
.LFB10219:
	.cfi_startproc
	endbr64
	jmp	_Z135__device_stub__Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEiPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi
	.cfi_endproc
.LFE10219:
	.size	_Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi, .-_Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi
	.globl	cuda_OpenTracker
	.type	cuda_OpenTracker, @function
cuda_OpenTracker:
.LFB10186:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	leaq	-16384(%rsp), %r11
	.cfi_def_cfa 11, 16424
.LPSRL1:
	subq	$4096, %rsp
	orq	$0, (%rsp)
	cmpq	%r11, %rsp
	jne	.LPSRL1
	.cfi_def_cfa_register 7
	subq	$56, %rsp
	.cfi_def_cfa_offset 16480
	movl	$335872, %esi
	movq	%fs:40, %rax
	movq	%rax, 16424(%rsp)
	xorl	%eax, %eax
	xorl	%eax, %eax
	movq	%rdi, %rbx
	leaq	8(%rdi), %rdi
	movl	%eax, -8(%rdi)
	leaq	40(%rsp), %rbp
	leaq	16424(%rsp), %r13
	movq	%rbp, %r12
	call	cudaMalloc@PLT
	leaq	16(%rbx), %rdi
	movl	$1343488, %esi
	call	cudaMalloc@PLT
	leaq	24(%rbx), %rdi
	movl	$16384, %esi
	call	cudaMalloc@PLT
.L888:
	call	rand@PLT
	addq	$4, %rbp
	movl	%eax, -4(%rbp)
	cmpq	%r13, %rbp
	jne	.L888
	leaq	8(%rsp), %rdi
	movl	$16384, %esi
	call	cudaMalloc@PLT
	movq	8(%rsp), %rdi
	movl	$1, %ecx
	movq	%r12, %rsi
	movl	$16384, %edx
	call	cudaMemcpy@PLT
	movl	$16777217, %edx
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movl	$268435457, %edi
	salq	$8, %rdx
	movl	$1, %ecx
	movl	$1, %esi
	salq	$4, %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L889
	movq	24(%rbx), %rsi
	movq	8(%rsp), %rdi
	movl	$4096, %edx
	call	_Z135__device_stub__Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEiPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi
.L889:
	movq	8(%rsp), %rdi
	testq	%rdi, %rdi
	je	.L887
	call	cudaFree@PLT
.L887:
	movq	16424(%rsp), %rax
	subq	%fs:40, %rax
	je	.L891
	call	__stack_chk_fail@PLT
.L891:
	addq	$16440, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10186:
	.size	cuda_OpenTracker, .-cuda_OpenTracker
	.globl	_Z208__device_stub__Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion
	.type	_Z208__device_stub__Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion, @function
_Z208__device_stub__Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion:
.LFB10220:
	.cfi_startproc
	endbr64
	subq	$200, %rsp
	.cfi_def_cfa_offset 208
	movq	%rdi, 40(%rsp)
	leaq	64(%rsp), %rdi
	movl	%esi, 36(%rsp)
	leaq	76(%rsp), %rsi
	movq	%rdx, 24(%rsp)
	leaq	48(%rsp), %rdx
	movl	%ecx, 32(%rsp)
	leaq	56(%rsp), %rcx
	movq	%r8, 16(%rsp)
	movq	%r9, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 184(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rax
	movl	$1, 72(%rsp)
	movq	%rax, 112(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 152(%rsp)
	movq	208(%rsp), %rax
	movl	$1, 84(%rsp)
	movq	%rax, 160(%rsp)
	movq	216(%rsp), %rax
	movq	%rax, 168(%rsp)
	movq	224(%rsp), %rax
	movq	%rax, 176(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 64(%rsp)
	movq	%rax, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L897
	pushq	56(%rsp)
	.cfi_def_cfa_offset 216
	leaq	_Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 224
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	128(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 216
	popq	%rdx
	.cfi_def_cfa_offset 208
.L897:
	movq	184(%rsp), %rax
	subq	%fs:40, %rax
	je	.L899
	call	__stack_chk_fail@PLT
.L899:
	addq	$200, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10220:
	.size	_Z208__device_stub__Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion, .-_Z208__device_stub__Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion
	.globl	_Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion
	.type	_Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion, @function
_Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion:
.LFB10221:
	.cfi_startproc
	endbr64
	subq	$16, %rsp
	.cfi_def_cfa_offset 24
	leaq	400(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 32
	leaq	264(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 40
	leaq	40(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 48
	call	_Z208__device_stub__Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10221:
	.size	_Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion, .-_Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion
	.globl	_Z18SSPF_GeometryModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion
	.type	_Z18SSPF_GeometryModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion, @function
_Z18SSPF_GeometryModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion:
.LFB10177:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movabsq	$4294967552, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r9, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$616, %rsp
	.cfi_def_cfa_offset 672
	movq	672(%rsp), %r13
	movq	680(%rsp), %rax
	movq	%rdi, 40(%rsp)
	movq	%rdx, 8(%rsp)
	movsd	0(%r13), %xmm6
	movsd	24(%r13), %xmm5
	movq	%rcx, 16(%rsp)
	divsd	32(%r13), %xmm5
	movq	%r8, 48(%rsp)
	movsd	48(%r13), %xmm4
	movq	%rax, 56(%rsp)
	movaps	%xmm6, %xmm7
	divsd	8(%r13), %xmm7
	movaps	%xmm7, %xmm1
	movaps	%xmm7, %xmm0
	maxsd	.LC18(%rip), %xmm1
	mulsd	%xmm5, %xmm0
	movq	%fs:40, %rax
	movq	%rax, 600(%rsp)
	xorl	%eax, %eax
	movsd	%xmm6, 88(%rsp)
	movaps	%xmm5, %xmm6
	maxsd	%xmm1, %xmm6
	movsd	%xmm5, 72(%rsp)
	movsd	%xmm7, 80(%rsp)
	divsd	56(%r13), %xmm4
	movaps	%xmm4, %xmm2
	movsd	72(%r13), %xmm3
	movsd	%xmm4, 64(%rsp)
	divsd	80(%r13), %xmm3
	maxsd	%xmm6, %xmm2
	mulsd	%xmm4, %xmm0
	movaps	%xmm3, %xmm4
	movsd	%xmm3, 32(%rsp)
	maxsd	%xmm2, %xmm4
	movsd	96(%r13), %xmm2
	divsd	104(%r13), %xmm2
	movsd	%xmm2, 24(%rsp)
	mulsd	%xmm3, %xmm0
	movaps	%xmm2, %xmm3
	maxsd	%xmm4, %xmm3
	movaps	%xmm3, %xmm1
	mulsd	%xmm3, %xmm1
	mulsd	%xmm2, %xmm0
	movsd	%xmm1, 216(%r13)
	movq	%xmm1, %r14
	call	log@PLT
	movsd	80(%rsp), %xmm7
	divsd	.LC26(%rip), %xmm0
	movsd	%xmm0, (%rsp)
	movaps	%xmm7, %xmm0
	call	log@PLT
	movaps	%xmm0, %xmm1
	movsd	.LC5(%rip), %xmm0
	divsd	.LC26(%rip), %xmm1
	divsd	(%rsp), %xmm1
	call	pow@PLT
	movsd	72(%rsp), %xmm5
	movaps	%xmm0, %xmm1
	movsd	.LC18(%rip), %xmm0
	divsd	%xmm1, %xmm0
	movsd	%xmm0, 16(%r13)
	movaps	%xmm5, %xmm0
	call	log@PLT
	movaps	%xmm0, %xmm1
	movsd	.LC5(%rip), %xmm0
	divsd	.LC26(%rip), %xmm1
	divsd	(%rsp), %xmm1
	call	pow@PLT
	movsd	64(%rsp), %xmm4
	movaps	%xmm0, %xmm1
	movsd	.LC18(%rip), %xmm0
	divsd	%xmm1, %xmm0
	movsd	%xmm0, 40(%r13)
	movaps	%xmm4, %xmm0
	call	log@PLT
	movaps	%xmm0, %xmm1
	movsd	.LC5(%rip), %xmm0
	divsd	.LC26(%rip), %xmm1
	divsd	(%rsp), %xmm1
	call	pow@PLT
	movsd	32(%rsp), %xmm3
	movaps	%xmm0, %xmm1
	movsd	.LC18(%rip), %xmm0
	divsd	%xmm1, %xmm0
	movsd	%xmm0, 64(%r13)
	movaps	%xmm3, %xmm0
	call	log@PLT
	movaps	%xmm0, %xmm1
	movsd	.LC5(%rip), %xmm0
	divsd	.LC26(%rip), %xmm1
	divsd	(%rsp), %xmm1
	call	pow@PLT
	movsd	24(%rsp), %xmm2
	movaps	%xmm0, %xmm1
	movsd	.LC18(%rip), %xmm0
	divsd	%xmm1, %xmm0
	movsd	%xmm0, 88(%r13)
	movaps	%xmm2, %xmm0
	call	log@PLT
	movaps	%xmm0, %xmm1
	movsd	.LC5(%rip), %xmm0
	divsd	.LC26(%rip), %xmm1
	divsd	(%rsp), %xmm1
	call	pow@PLT
	movaps	%xmm0, %xmm1
	movsd	.LC18(%rip), %xmm0
	divsd	%xmm1, %xmm0
	movsd	.LC27(%rip), %xmm1
	divsd	(%rsp), %xmm1
	movsd	%xmm0, 112(%r13)
	movq	%r14, %xmm0
	movl	$1, %r14d
	call	pow@PLT
	movsd	88(%rsp), %xmm6
	movsd	%xmm0, 224(%r13)
	movsd	24(%rbp), %xmm0
	movaps	%xmm0, %xmm5
	subsd	%xmm6, %xmm5
	addsd	%xmm0, %xmm6
	movsd	%xmm5, 24(%rsp)
	movsd	%xmm6, 32(%rsp)
.L914:
	movl	(%rbx), %eax
	cvtsi2sdl	%r14d, %xmm0
	movsd	(%rsp), %xmm3
	movl	$256, %ecx
	leal	0(,%rax,4), %r12d
	leal	255(%r12), %eax
	cltd
	idivl	%ecx
	comisd	%xmm0, %xmm3
	jb	.L926
	movl	%eax, 112(%rsp)
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movq	%r15, %rdx
	movabsq	$4294967297, %rax
	movl	$1, %ecx
	movl	%r12d, 108(%rsp)
	movq	%rax, 116(%rsp)
	movq	112(%rsp), %rdi
	movl	120(%rsp), %esi
	movq	%r15, 124(%rsp)
	movl	$1, 132(%rsp)
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L915
	movq	.LC30(%rip), %rax
	movsd	24(%rsp), %xmm6
	movq	$0x000000000, 240(%rsp)
	leaq	368(%rsp), %rdi
	movsd	.LC28(%rip), %xmm0
	movq	%r13, %rsi
	movsd	32(%rsp), %xmm2
	movq	$0x000000000, 256(%rsp)
	movq	%rax, 304(%rsp)
	movq	.LC31(%rip), %rax
	movl	$58, %ecx
	movsd	%xmm0, 248(%rsp)
	movq	%rax, 312(%rsp)
	movq	.LC32(%rip), %rax
	movsd	%xmm0, 264(%rsp)
	movsd	.LC29(%rip), %xmm0
	movq	%rax, 320(%rsp)
	movq	.LC22(%rip), %rax
	movsd	%xmm6, 224(%rsp)
	movq	%rax, 328(%rsp)
	movq	.LC33(%rip), %rax
	movsd	%xmm2, 232(%rsp)
	movq	%rax, 336(%rsp)
	movq	.LC34(%rip), %rax
	movsd	%xmm0, 280(%rsp)
	movq	%rax, 344(%rsp)
	movq	.LC35(%rip), %rax
	movsd	%xmm0, 296(%rsp)
	rep movsl
	movq	%rax, 352(%rsp)
	movq	.LC36(%rip), %rax
	leaq	136(%rsp), %rdi
	movq	$0x000000000, 272(%rsp)
	movl	$22, %ecx
	movq	%rax, 360(%rsp)
	movq	$0x000000000, 288(%rsp)
	movq	56(%rsp), %rsi
	rep movsl
	pushq	%rdx
	.cfi_def_cfa_offset 680
	movl	(%rbx), %esi
	movl	%r12d, %ecx
	leaq	144(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 688
	leaq	240(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 696
	leaq	392(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	movq	80(%rsp), %r9
	movq	48(%rsp), %r8
	movq	40(%rsp), %rdx
	movq	72(%rsp), %rdi
	call	_Z208__device_stub__Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion
	addq	$32, %rsp
	.cfi_def_cfa_offset 672
.L915:
	movq	16(%rsp), %rcx
	movq	8(%rsp), %rsi
	movq	%rbp, %r8
	movq	%rbx, %rdi
	leaq	108(%rsp), %rdx
	incl	%r14d
	call	_Z14sampleParticleRiP12VehicleStateS_S1_RS0_
	movsd	0(%r13), %xmm0
	mulsd	16(%r13), %xmm0
	movsd	%xmm0, 0(%r13)
	movsd	24(%r13), %xmm0
	mulsd	40(%r13), %xmm0
	movsd	%xmm0, 24(%r13)
	movsd	48(%r13), %xmm0
	mulsd	64(%r13), %xmm0
	movsd	%xmm0, 48(%r13)
	movsd	72(%r13), %xmm0
	mulsd	88(%r13), %xmm0
	movsd	%xmm0, 72(%r13)
	movsd	96(%r13), %xmm0
	mulsd	112(%r13), %xmm0
	movsd	%xmm0, 96(%r13)
	movsd	216(%r13), %xmm0
	mulsd	224(%r13), %xmm0
	movsd	%xmm0, 216(%r13)
	jmp	.L914
.L926:
	movsd	8(%r13), %xmm0
	movl	%eax, 112(%rsp)
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movq	.LC18(%rip), %rdx
	movl	$1, %ecx
	movl	%r12d, 108(%rsp)
	movabsq	$4294967297, %rax
	movsd	%xmm0, 0(%r13)
	movsd	32(%r13), %xmm0
	movq	%rdx, 216(%r13)
	movl	$16777217, %edx
	movsd	%xmm0, 24(%r13)
	salq	$8, %rdx
	movsd	56(%r13), %xmm0
	movq	%rax, 116(%rsp)
	movq	112(%rsp), %rdi
	movsd	%xmm0, 48(%r13)
	movl	120(%rsp), %esi
	movsd	80(%r13), %xmm0
	movq	%rdx, 124(%rsp)
	movsd	%xmm0, 72(%r13)
	movsd	104(%r13), %xmm0
	movl	$1, 132(%rsp)
	movsd	%xmm0, 96(%r13)
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L917
	movq	.LC30(%rip), %rax
	movsd	24(%rsp), %xmm4
	movq	$0x000000000, 240(%rsp)
	leaq	368(%rsp), %rdi
	movsd	.LC28(%rip), %xmm0
	movq	%r13, %rsi
	movsd	32(%rsp), %xmm5
	movq	$0x000000000, 256(%rsp)
	movq	%rax, 304(%rsp)
	movq	.LC31(%rip), %rax
	movl	$58, %ecx
	movsd	%xmm0, 248(%rsp)
	movq	%rax, 312(%rsp)
	movq	.LC32(%rip), %rax
	movsd	%xmm0, 264(%rsp)
	movsd	.LC29(%rip), %xmm0
	movq	%rax, 320(%rsp)
	movq	.LC22(%rip), %rax
	movsd	%xmm4, 224(%rsp)
	movq	%rax, 328(%rsp)
	movq	.LC33(%rip), %rax
	movsd	%xmm5, 232(%rsp)
	movq	%rax, 336(%rsp)
	movq	.LC34(%rip), %rax
	movsd	%xmm0, 280(%rsp)
	movq	%rax, 344(%rsp)
	movq	.LC35(%rip), %rax
	movsd	%xmm0, 296(%rsp)
	rep movsl
	movq	%rax, 352(%rsp)
	movq	.LC36(%rip), %rax
	leaq	136(%rsp), %rdi
	movq	$0x000000000, 272(%rsp)
	movl	$22, %ecx
	movq	%rax, 360(%rsp)
	movq	$0x000000000, 288(%rsp)
	movq	56(%rsp), %rsi
	rep movsl
	pushq	%rax
	.cfi_def_cfa_offset 680
	movl	(%rbx), %esi
	movl	%r12d, %ecx
	leaq	144(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 688
	leaq	240(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 696
	leaq	392(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	movq	80(%rsp), %r9
	movq	48(%rsp), %r8
	movq	40(%rsp), %rdx
	movq	72(%rsp), %rdi
	call	_Z208__device_stub__Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion
	addq	$32, %rsp
	.cfi_def_cfa_offset 672
.L917:
	movq	16(%rsp), %rcx
	movq	8(%rsp), %rsi
	movq	%rbp, %r8
	movq	%rbx, %rdi
	leaq	108(%rsp), %rdx
	call	_Z14sampleParticleRiP12VehicleStateS_S1_RS0_
	movq	600(%rsp), %rax
	subq	%fs:40, %rax
	je	.L918
	call	__stack_chk_fail@PLT
.L918:
	addq	$616, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10177:
	.size	_Z18SSPF_GeometryModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion, .-_Z18SSPF_GeometryModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion
	.section	.rodata
	.align 32
.LC0:
	.long	942503068
	.long	1071694162
	.long	-1571643772
	.long	1066524486
	.long	0
	.long	1072693248
	.long	0
	.long	1073217536
	.long	-1717986918
	.long	1069128089
	.long	0
	.long	1072693248
	.long	0
	.long	1073217536
	.long	-1717986918
	.long	1069128089
	.long	0
	.long	1072693248
	.long	0
	.long	1074003968
	.long	-1717986918
	.long	1069128089
	.long	0
	.long	1072693248
	.long	0
	.long	1074003968
	.long	-1717986918
	.long	1069128089
	.long	0
	.long	1072693248
	.long	942503068
	.long	1072742738
	.long	-1571643772
	.long	1066524486
	.long	0
	.long	1072693248
	.long	0
	.long	1077149696
	.long	0
	.long	1072693248
	.long	0
	.long	1072693248
	.long	0
	.long	1071644672
	.long	-755914244
	.long	1062232653
	.long	0
	.long	1072693248
	.long	1413754603
	.long	1073291771
	.long	-1571643772
	.long	1066524486
	.long	0
	.long	1072693248
	.long	0
	.long	1072693248
	.long	0
	.long	1072693248
	.text
	.globl	cuda_InitGeometry
	.type	cuda_InitGeometry, @function
cuda_InitGeometry:
.LFB10188:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	movl	$58, %ecx
	movl	$328, %edx
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	leaq	.LC0(%rip), %rsi
	subq	$344, %rsp
	.cfi_def_cfa_offset 368
	movq	%fs:40, %rax
	movq	%rax, 328(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %rdi
	rep movsl
	leaq	8(%rsp), %rdi
	leaq	h_egomotion(%rip), %rsi
	movl	$22, %ecx
	rep movsl
	movl	$1, 0(%rbp)
	movq	8(%rbp), %rdi
	movq	%rbx, %rsi
	movl	$1, %ecx
	movb	$0, 88(%rsp)
	call	cudaMemcpy@PLT
	leaq	8(%rsp), %rax
	movq	%rbp, %rsi
	movq	%rbx, %r9
	movq	16(%rbp), %rcx
	movq	8(%rbp), %rdx
	pushq	%rax
	.cfi_def_cfa_offset 376
	movq	d_scan(%rip), %rdi
	leaq	104(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 384
	movq	24(%rbp), %r8
	call	_Z18SSPF_GeometryModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion
	movsd	.LC14(%rip), %xmm4
	movsd	88(%rbx), %xmm3
	movsd	96(%rbx), %xmm2
	movsd	104(%rbx), %xmm1
	movsd	112(%rbx), %xmm0
	maxsd	%xmm4, %xmm3
	popq	%rcx
	.cfi_def_cfa_offset 376
	maxsd	%xmm4, %xmm2
	maxsd	%xmm4, %xmm1
	popq	%rsi
	.cfi_def_cfa_offset 368
	maxsd	%xmm4, %xmm0
	movsd	.LC7(%rip), %xmm4
	comisd	%xmm3, %xmm4
	ja	.L932
	movsd	.LC24(%rip), %xmm3
.L932:
	comisd	%xmm2, %xmm4
	movsd	%xmm3, 88(%rbx)
	ja	.L933
	movsd	.LC24(%rip), %xmm2
.L933:
	comisd	%xmm1, %xmm4
	movsd	%xmm2, 96(%rbx)
	ja	.L934
	movsd	.LC24(%rip), %xmm1
.L934:
	comisd	%xmm0, %xmm4
	movsd	%xmm1, 104(%rbx)
	ja	.L935
	movsd	.LC24(%rip), %xmm0
.L935:
	movsd	%xmm0, 112(%rbx)
	leaq	80(%rsp), %rsi
	movq	%rbx, %rdi
	leaq	h_scan(%rip), %rbp
	call	_Z16deviceBuildModelR12VehicleStateRd
	xorl	%eax, %eax
	movq	$0x000000000, (%rbx)
	xorl	%esi, %esi
	movl	%eax, 328(%rbx)
	movq	%rbp, %rdx
	leaq	328(%rbx), %rcx
	movq	%rbx, %rdi
	movsd	.LC18(%rip), %xmm0
	movl	$1, %r9d
	movq	$0x000000000, 184(%rbx)
	leaq	336(%rbx), %r8
	call	_Z17deviceMeasureEdgeR12VehicleStateiP9LaserScandPiS3_b
	xorl	%edx, %edx
	movl	%edx, 332(%rbx)
	movq	328(%rsp), %rax
	subq	%fs:40, %rax
	je	.L936
	call	__stack_chk_fail@PLT
.L936:
	movsd	.LC18(%rip), %xmm0
	addq	$344, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbp, %rdx
	movq	%rbx, %rdi
	leaq	332(%rbx), %rcx
	movl	$1, %r9d
	movl	$1, %esi
	leaq	4432(%rbx), %r8
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	jmp	_Z17deviceMeasureEdgeR12VehicleStateiP9LaserScandPiS3_b
	.cfi_endproc
.LFE10188:
	.size	cuda_InitGeometry, .-cuda_InitGeometry
	.globl	_Z206__device_stub__Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion
	.type	_Z206__device_stub__Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion, @function
_Z206__device_stub__Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion:
.LFB10222:
	.cfi_startproc
	endbr64
	subq	$200, %rsp
	.cfi_def_cfa_offset 208
	movq	%rdi, 40(%rsp)
	leaq	64(%rsp), %rdi
	movl	%esi, 36(%rsp)
	leaq	76(%rsp), %rsi
	movq	%rdx, 24(%rsp)
	leaq	48(%rsp), %rdx
	movl	%ecx, 32(%rsp)
	leaq	56(%rsp), %rcx
	movq	%r8, 16(%rsp)
	movq	%r9, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 184(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rax
	movl	$1, 72(%rsp)
	movq	%rax, 112(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 152(%rsp)
	movq	208(%rsp), %rax
	movl	$1, 84(%rsp)
	movq	%rax, 160(%rsp)
	movq	216(%rsp), %rax
	movq	%rax, 168(%rsp)
	movq	224(%rsp), %rax
	movq	%rax, 176(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 64(%rsp)
	movq	%rax, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L939
	pushq	56(%rsp)
	.cfi_def_cfa_offset 216
	leaq	_Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 224
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	128(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 216
	popq	%rdx
	.cfi_def_cfa_offset 208
.L939:
	movq	184(%rsp), %rax
	subq	%fs:40, %rax
	je	.L941
	call	__stack_chk_fail@PLT
.L941:
	addq	$200, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10222:
	.size	_Z206__device_stub__Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion, .-_Z206__device_stub__Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion
	.globl	_Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion
	.type	_Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion, @function
_Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion:
.LFB10223:
	.cfi_startproc
	endbr64
	subq	$16, %rsp
	.cfi_def_cfa_offset 24
	leaq	400(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 32
	leaq	264(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 40
	leaq	40(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 48
	call	_Z206__device_stub__Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10223:
	.size	_Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion, .-_Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion
	.globl	_Z62__device_stub__Z18kernelMotionUpdateiP12VehicleState9EgoMotioniP12VehicleStateR9EgoMotion
	.type	_Z62__device_stub__Z18kernelMotionUpdateiP12VehicleState9EgoMotioniP12VehicleStateR9EgoMotion, @function
_Z62__device_stub__Z18kernelMotionUpdateiP12VehicleState9EgoMotioniP12VehicleStateR9EgoMotion:
.LFB10224:
	.cfi_startproc
	endbr64
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movl	%edi, 12(%rsp)
	leaq	24(%rsp), %rcx
	leaq	32(%rsp), %rdi
	movq	%rsi, (%rsp)
	leaq	44(%rsp), %rsi
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	12(%rsp), %rax
	movq	%rdx, 96(%rsp)
	leaq	16(%rsp), %rdx
	movq	%rax, 80(%rsp)
	movq	%rsp, %rax
	movq	%rax, 88(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 32(%rsp)
	movl	$1, 40(%rsp)
	movq	%rax, 44(%rsp)
	movl	$1, 52(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L945
	pushq	24(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z18kernelMotionUpdateiP12VehicleState9EgoMotion(%rip), %rdi
	pushq	24(%rsp)
	.cfi_def_cfa_offset 144
	movq	60(%rsp), %rcx
	movl	68(%rsp), %r8d
	movq	48(%rsp), %rsi
	movl	56(%rsp), %edx
	leaq	96(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L945:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L947
	call	__stack_chk_fail@PLT
.L947:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10224:
	.size	_Z62__device_stub__Z18kernelMotionUpdateiP12VehicleState9EgoMotioniP12VehicleStateR9EgoMotion, .-_Z62__device_stub__Z18kernelMotionUpdateiP12VehicleState9EgoMotioniP12VehicleStateR9EgoMotion
	.globl	_Z18kernelMotionUpdateiP12VehicleState9EgoMotion
	.type	_Z18kernelMotionUpdateiP12VehicleState9EgoMotion, @function
_Z18kernelMotionUpdateiP12VehicleState9EgoMotion:
.LFB10225:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	leaq	16(%rsp), %rdx
	call	_Z62__device_stub__Z18kernelMotionUpdateiP12VehicleState9EgoMotioniP12VehicleStateR9EgoMotion
	popq	%rdx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10225:
	.size	_Z18kernelMotionUpdateiP12VehicleState9EgoMotion, .-_Z18kernelMotionUpdateiP12VehicleState9EgoMotion
	.globl	_Z16SSPF_MotionModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion
	.type	_Z16SSPF_MotionModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion, @function
_Z16SSPF_MotionModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion:
.LFB10182:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r9, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$632, %rsp
	.cfi_def_cfa_offset 688
	movq	688(%rsp), %r15
	movq	%rdi, 88(%rsp)
	movq	%rdx, 80(%rsp)
	movq	696(%rsp), %rbx
	movsd	120(%r15), %xmm4
	movq	%rcx, 72(%rsp)
	movsd	144(%r15), %xmm3
	movq	%r8, 96(%rsp)
	movaps	%xmm4, %xmm7
	divsd	128(%r15), %xmm7
	movaps	%xmm7, %xmm1
	maxsd	.LC18(%rip), %xmm1
	movaps	%xmm3, %xmm6
	movaps	%xmm7, %xmm0
	divsd	152(%r15), %xmm6
	movaps	%xmm6, %xmm2
	movq	%fs:40, %rax
	movq	%rax, 616(%rsp)
	xorl	%eax, %eax
	movsd	%xmm4, 32(%rsp)
	mulsd	%xmm6, %xmm0
	maxsd	%xmm1, %xmm2
	movsd	%xmm6, 8(%rsp)
	movsd	%xmm7, 16(%rsp)
	movsd	%xmm3, 24(%rsp)
	movaps	%xmm2, %xmm1
	movsd	192(%r15), %xmm2
	movsd	%xmm2, 48(%rsp)
	movaps	%xmm2, %xmm5
	divsd	200(%r15), %xmm5
	movaps	%xmm5, %xmm3
	maxsd	%xmm1, %xmm3
	mulsd	%xmm5, %xmm0
	movsd	%xmm5, (%rsp)
	movaps	%xmm3, %xmm1
	mulsd	%xmm3, %xmm1
	movsd	%xmm1, 216(%r15)
	movq	%xmm1, %r13
	call	log@PLT
	movsd	16(%rsp), %xmm7
	divsd	.LC26(%rip), %xmm0
	movsd	%xmm0, 64(%rsp)
	movaps	%xmm7, %xmm0
	call	log@PLT
	movaps	%xmm0, %xmm1
	movsd	.LC5(%rip), %xmm0
	divsd	.LC26(%rip), %xmm1
	divsd	64(%rsp), %xmm1
	call	pow@PLT
	movsd	8(%rsp), %xmm6
	movaps	%xmm0, %xmm1
	movsd	.LC18(%rip), %xmm0
	divsd	%xmm1, %xmm0
	movsd	%xmm0, 136(%r15)
	movaps	%xmm6, %xmm0
	call	log@PLT
	movaps	%xmm0, %xmm1
	movsd	.LC5(%rip), %xmm0
	divsd	.LC26(%rip), %xmm1
	divsd	64(%rsp), %xmm1
	call	pow@PLT
	movsd	(%rsp), %xmm5
	movaps	%xmm0, %xmm1
	movsd	.LC18(%rip), %xmm0
	divsd	%xmm1, %xmm0
	movsd	%xmm0, 160(%r15)
	movaps	%xmm5, %xmm0
	call	log@PLT
	movaps	%xmm0, %xmm1
	movsd	.LC5(%rip), %xmm0
	divsd	.LC26(%rip), %xmm1
	divsd	64(%rsp), %xmm1
	call	pow@PLT
	movaps	%xmm0, %xmm1
	movsd	.LC18(%rip), %xmm0
	divsd	%xmm1, %xmm0
	movsd	.LC27(%rip), %xmm1
	divsd	64(%rsp), %xmm1
	movsd	%xmm0, 208(%r15)
	movq	%r13, %xmm0
	call	pow@PLT
	cmpb	$0, 80(%rbx)
	movsd	.LC31(%rip), %xmm1
	movsd	.LC32(%rip), %xmm5
	movsd	.LC22(%rip), %xmm6
	movsd	%xmm0, 224(%r15)
	movsd	.LC33(%rip), %xmm7
	movsd	.LC30(%rip), %xmm0
	movsd	.LC34(%rip), %xmm8
	movsd	.LC35(%rip), %xmm9
	movsd	.LC36(%rip), %xmm10
	jne	.L986
	movsd	120(%r12), %xmm11
	movsd	32(%rsp), %xmm4
	movaps	%xmm11, %xmm2
	subsd	%xmm4, %xmm2
	addsd	%xmm11, %xmm4
	movaps	%xmm2, %xmm3
	minsd	%xmm1, %xmm4
	movsd	136(%r12), %xmm1
	maxsd	%xmm0, %xmm3
	movsd	128(%r12), %xmm0
	movaps	%xmm0, %xmm2
	movsd	%xmm4, 8(%rsp)
	movsd	%xmm3, (%rsp)
	movsd	24(%rsp), %xmm3
	subsd	%xmm3, %xmm2
	addsd	%xmm0, %xmm3
	movsd	168(%r15), %xmm0
	movaps	%xmm2, %xmm4
	maxsd	%xmm5, %xmm4
	movaps	%xmm3, %xmm5
	minsd	%xmm6, %xmm5
	movaps	%xmm1, %xmm6
	addsd	%xmm0, %xmm1
	subsd	%xmm0, %xmm6
	movsd	144(%r12), %xmm0
	movsd	%xmm4, 16(%rsp)
	movaps	%xmm0, %xmm3
	movsd	%xmm5, 24(%rsp)
	movaps	%xmm6, %xmm2
	maxsd	%xmm7, %xmm2
	movaps	%xmm1, %xmm7
	minsd	%xmm8, %xmm7
	movsd	%xmm2, 32(%rsp)
	movsd	48(%rsp), %xmm2
	movsd	%xmm7, 40(%rsp)
	subsd	%xmm2, %xmm3
	addsd	%xmm0, %xmm2
	movaps	%xmm3, %xmm4
	movaps	%xmm2, %xmm5
	maxsd	%xmm9, %xmm4
	minsd	%xmm10, %xmm5
	movsd	%xmm4, 48(%rsp)
	movsd	%xmm5, 56(%rsp)
	jmp	.L958
.L986:
	movsd	%xmm10, 56(%rsp)
	movsd	%xmm9, 48(%rsp)
	movsd	%xmm8, 40(%rsp)
	movsd	%xmm7, 32(%rsp)
	movsd	%xmm6, 24(%rsp)
	movsd	%xmm5, 16(%rsp)
	movsd	%xmm1, 8(%rsp)
	movsd	%xmm0, (%rsp)
.L958:
	movabsq	$4294967552, %r14
	movl	$1, %r13d
.L975:
	cvtsi2sdl	%r13d, %xmm0
	movsd	64(%rsp), %xmm2
	movb	80(%rbx), %al
	comisd	%xmm0, %xmm2
	jb	.L999
	testb	%al, %al
	jne	.L979
	movl	0(%rbp), %eax
	movl	$256, %ecx
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movq	%r14, 140(%rsp)
	leal	0(,%rax,4), %r11d
	movl	$1, 148(%rsp)
	leal	255(%r11), %eax
	movl	%r11d, 124(%rsp)
	cltd
	movl	%r11d, 108(%rsp)
	idivl	%ecx
	movq	%r14, %rdx
	movl	$1, %ecx
	movl	%eax, 128(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 132(%rsp)
	movq	128(%rsp), %rdi
	movl	136(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	movl	108(%rsp), %r11d
	testl	%eax, %eax
	jne	.L976
	movsd	(%rsp), %xmm3
	movsd	8(%rsp), %xmm4
	leaq	384(%rsp), %rdi
	movq	$0x000000000, 256(%rsp)
	movsd	16(%rsp), %xmm5
	movsd	24(%rsp), %xmm6
	movl	$58, %ecx
	movq	$0x000000000, 272(%rsp)
	movsd	.LC28(%rip), %xmm0
	movsd	32(%rsp), %xmm7
	movq	%r15, %rsi
	movsd	%xmm3, 320(%rsp)
	movsd	%xmm4, 328(%rsp)
	movsd	40(%rsp), %xmm3
	movsd	48(%rsp), %xmm4
	movsd	%xmm0, 264(%rsp)
	movsd	%xmm0, 280(%rsp)
	movsd	.LC29(%rip), %xmm0
	movsd	%xmm5, 336(%rsp)
	movsd	56(%rsp), %xmm5
	rep movsl
	movl	$22, %ecx
	movq	%rbx, %rsi
	movsd	%xmm0, 296(%rsp)
	movsd	%xmm0, 312(%rsp)
	leaq	152(%rsp), %rdi
	movsd	%xmm6, 344(%rsp)
	rep movsl
	movl	%r11d, %ecx
	movsd	%xmm7, 352(%rsp)
	movsd	%xmm3, 360(%rsp)
	movsd	%xmm4, 368(%rsp)
	movsd	%xmm5, 376(%rsp)
	movq	$0x000000000, 288(%rsp)
	movq	$0x000000000, 304(%rsp)
	pushq	%rdx
	.cfi_def_cfa_offset 696
	leaq	160(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	movl	0(%rbp), %esi
	leaq	256(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	leaq	408(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 720
	movq	128(%rsp), %r9
	movq	104(%rsp), %r8
	movq	112(%rsp), %rdx
	movq	120(%rsp), %rdi
	call	_Z206__device_stub__Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion
	addq	$32, %rsp
	.cfi_def_cfa_offset 688
.L976:
	movq	72(%rsp), %rcx
	movq	80(%rsp), %rsi
	movq	%r12, %r8
	movq	%rbp, %rdi
	leaq	124(%rsp), %rdx
	incl	%r13d
	call	_Z14sampleParticleRiP12VehicleStateS_S1_RS0_
	movsd	120(%r15), %xmm0
	mulsd	136(%r15), %xmm0
	movsd	%xmm0, 120(%r15)
	movsd	144(%r15), %xmm0
	mulsd	160(%r15), %xmm0
	movsd	%xmm0, 144(%r15)
	movsd	192(%r15), %xmm0
	mulsd	208(%r15), %xmm0
	movsd	%xmm0, 192(%r15)
	movsd	216(%r15), %xmm0
	mulsd	224(%r15), %xmm0
	movsd	%xmm0, 216(%r15)
	jmp	.L975
.L999:
	testb	%al, %al
	jne	.L979
	movsd	128(%r15), %xmm0
	movq	.LC18(%rip), %rax
	movsd	%xmm0, 120(%r15)
	movsd	152(%r15), %xmm0
	movq	%rax, 216(%r15)
	movl	0(%rbp), %eax
	movsd	%xmm0, 144(%r15)
	movsd	200(%r15), %xmm0
	leal	0(,%rax,4), %r13d
	movsd	%xmm0, 192(%r15)
	jmp	.L981
.L979:
	movq	.LC18(%rip), %rax
	movl	$4096, %r13d
	movq	%rax, 216(%r15)
.L981:
	movl	$256, %esi
	movl	$16777217, %ecx
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	leal	255(%r13), %eax
	salq	$8, %rcx
	movl	%r13d, 124(%rsp)
	cltd
	movq	%rcx, 140(%rsp)
	idivl	%esi
	movl	$1, 148(%rsp)
	movq	%rcx, %rdx
	movl	$1, %ecx
	movl	%eax, 128(%rsp)
	movl	%eax, %r14d
	movabsq	$4294967297, %rax
	movq	%rax, 132(%rsp)
	movq	128(%rsp), %rdi
	movl	136(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L982
	movsd	(%rsp), %xmm6
	movsd	8(%rsp), %xmm7
	movq	%r15, %rsi
	leaq	384(%rsp), %rdi
	movsd	.LC28(%rip), %xmm0
	movsd	16(%rsp), %xmm3
	movq	$0x000000000, 256(%rsp)
	movl	$58, %ecx
	movsd	24(%rsp), %xmm4
	movsd	32(%rsp), %xmm5
	movsd	%xmm6, 320(%rsp)
	movsd	40(%rsp), %xmm2
	movsd	48(%rsp), %xmm6
	movsd	%xmm0, 264(%rsp)
	movsd	%xmm0, 280(%rsp)
	movsd	.LC29(%rip), %xmm0
	movsd	%xmm7, 328(%rsp)
	movsd	56(%rsp), %xmm7
	rep movsl
	movl	$22, %ecx
	movq	%rbx, %rsi
	movsd	%xmm0, 296(%rsp)
	movsd	%xmm0, 312(%rsp)
	leaq	152(%rsp), %rdi
	movsd	%xmm3, 336(%rsp)
	rep movsl
	movl	%r13d, %ecx
	movsd	%xmm4, 344(%rsp)
	movsd	%xmm5, 352(%rsp)
	movsd	%xmm2, 360(%rsp)
	movsd	%xmm6, 368(%rsp)
	movsd	%xmm7, 376(%rsp)
	movq	$0x000000000, 272(%rsp)
	movq	$0x000000000, 288(%rsp)
	movq	$0x000000000, 304(%rsp)
	pushq	%rax
	.cfi_def_cfa_offset 696
	leaq	160(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	movl	0(%rbp), %esi
	leaq	256(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	leaq	408(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 720
	movq	128(%rsp), %r9
	movq	104(%rsp), %r8
	movq	112(%rsp), %rdx
	movq	120(%rsp), %rdi
	call	_Z206__device_stub__Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotionP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEER17ObjectStateOffsetR14StateConstrainR9EgoMotion
	addq	$32, %rsp
	.cfi_def_cfa_offset 688
.L982:
	movl	$16777217, %edx
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movl	$1, %ecx
	movabsq	$4294967297, %rax
	salq	$8, %rdx
	movl	%r14d, 152(%rsp)
	movq	%rax, 156(%rsp)
	movq	152(%rsp), %rdi
	movl	160(%rsp), %esi
	movq	%rdx, 240(%rsp)
	movl	$1, 248(%rsp)
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L983
	leaq	384(%rsp), %rdi
	movl	$22, %ecx
	movq	%rbx, %rsi
	rep movsl
	movq	72(%rsp), %rsi
	leaq	384(%rsp), %rdx
	movl	%r13d, %edi
	call	_Z62__device_stub__Z18kernelMotionUpdateiP12VehicleState9EgoMotioniP12VehicleStateR9EgoMotion
.L983:
	movq	72(%rsp), %rcx
	movq	80(%rsp), %rsi
	movq	%r12, %r8
	movq	%rbp, %rdi
	leaq	124(%rsp), %rdx
	call	_Z14sampleParticleRiP12VehicleStateS_S1_RS0_
	movq	616(%rsp), %rax
	subq	%fs:40, %rax
	je	.L984
	call	__stack_chk_fail@PLT
.L984:
	addq	$632, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10182:
	.size	_Z16SSPF_MotionModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion, .-_Z16SSPF_MotionModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion
	.globl	cuda_InitMotion
	.type	cuda_InitMotion, @function
cuda_InitMotion:
.LFB10192:
	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movl	$82, %ecx
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	subq	$1024, %rsp
	.cfi_def_cfa_offset 1072
	movsd	.LC40(%rip), %xmm0
	movq	%fs:40, %rax
	movq	%rax, 1016(%rsp)
	xorl	%eax, %eax
	leaq	360(%rsp), %rdi
	movq	.LC39(%rip), %rax
	leaq	688(%rsp), %r12
	rep movsl
	leaq	128(%rsp), %r13
	leaq	688(%rsp), %rdi
	movl	$82, %ecx
	leaq	360(%rsp), %rsi
	comisd	448(%rsp), %xmm0
	rep movsl
	leaq	128(%rsp), %rdi
	leaq	.LC0(%rip), %rsi
	movl	$58, %ecx
	rep movsl
	movq	%rax, 128(%rsp)
	jbe	.L1003
	movsd	%xmm0, 152(%rsp)
.L1003:
	comisd	456(%rsp), %xmm0
	jbe	.L1005
	movsd	%xmm0, 176(%rsp)
.L1005:
	comisd	464(%rsp), %xmm0
	jbe	.L1007
	movsd	%xmm0, 200(%rsp)
.L1007:
	comisd	472(%rsp), %xmm0
	jbe	.L1009
	movsd	%xmm0, 224(%rsp)
.L1009:
	leaq	40(%rsp), %rdi
	movl	$22, %ecx
	leaq	40(%rsp), %r14
	movl	$328, %edx
	leaq	h_egomotion(%rip), %rsi
	rep movsl
	movq	8(%rbp), %rdi
	movl	$1, %ecx
	movb	$0, 120(%rsp)
	movl	$1, 0(%rbp)
	leaq	360(%rsp), %rsi
	call	cudaMemcpy@PLT
	movq	16(%rbp), %rcx
	movq	8(%rbp), %rdx
	pushq	%r14
	.cfi_def_cfa_offset 1080
	pushq	%r13
	.cfi_def_cfa_offset 1088
	movq	d_scan(%rip), %rdi
	movq	%r12, %r9
	movq	%rbp, %rsi
	movq	24(%rbp), %r8
	call	_Z16SSPF_MotionModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion
	movl	$1, 0(%rbp)
	movq	8(%rbp), %rdi
	movl	$328, %edx
	movsd	736(%rsp), %xmm7
	movsd	744(%rsp), %xmm6
	movsd	752(%rsp), %xmm5
	movsd	%xmm7, 40(%rsp)
	movsd	%xmm6, 32(%rsp)
	movsd	%xmm5, 24(%rsp)
	popq	%rcx
	.cfi_def_cfa_offset 1080
	movl	$1, %ecx
	popq	%rsi
	.cfi_def_cfa_offset 1072
	movq	%r12, %rsi
	call	cudaMemcpy@PLT
	movq	16(%rbp), %rcx
	movq	8(%rbp), %rdx
	pushq	%r14
	.cfi_def_cfa_offset 1080
	pushq	%r13
	.cfi_def_cfa_offset 1088
	movq	d_scan(%rip), %rdi
	movq	%rbp, %rsi
	movq	%r12, %r9
	movq	24(%rbp), %r8
	call	_Z18SSPF_GeometryModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion
	movl	$82, %ecx
	movq	%rbx, %rdi
	movq	%r12, %rsi
	rep movsl
	movsd	.LC7(%rip), %xmm0
	movsd	792(%rsp), %xmm4
	maxsd	.LC14(%rip), %xmm4
	popq	%rdi
	.cfi_def_cfa_offset 1080
	popq	%r8
	.cfi_def_cfa_offset 1072
	movsd	784(%rsp), %xmm3
	movsd	8(%rsp), %xmm5
	comisd	%xmm4, %xmm0
	maxsd	.LC14(%rip), %xmm3
	movsd	792(%rsp), %xmm2
	movsd	800(%rsp), %xmm1
	maxsd	.LC14(%rip), %xmm2
	maxsd	.LC14(%rip), %xmm1
	movsd	16(%rsp), %xmm6
	movsd	24(%rsp), %xmm7
	ja	.L1015
	movsd	.LC24(%rip), %xmm4
.L1015:
	comisd	%xmm3, %xmm0
	ja	.L1016
	movsd	.LC24(%rip), %xmm3
.L1016:
	comisd	%xmm2, %xmm0
	ja	.L1017
	movsd	.LC24(%rip), %xmm2
.L1017:
	comisd	%xmm1, %xmm0
	ja	.L1018
	movsd	.LC24(%rip), %xmm1
.L1018:
	movsd	%xmm7, 32(%rbx)
	leaq	h_scan(%rip), %rbp
	movsd	448(%rsp), %xmm7
	movsd	744(%rsp), %xmm8
	movsd	%xmm6, 40(%rbx)
	movaps	%xmm4, %xmm6
	movsd	%xmm5, 48(%rbx)
	mulsd	%xmm4, %xmm6
	movaps	%xmm7, %xmm0
	movsd	416(%rsp), %xmm5
	mulsd	%xmm7, %xmm0
	movsd	%xmm1, 24(%rsp)
	mulsd	%xmm7, %xmm8
	movsd	%xmm2, 16(%rsp)
	mulsd	%xmm4, %xmm5
	movsd	%xmm3, 8(%rsp)
	addsd	%xmm0, %xmm6
	mulsd	%xmm4, %xmm0
	mulsd	%xmm8, %xmm7
	mulsd	%xmm4, %xmm5
	mulsd	%xmm4, %xmm0
	addsd	%xmm7, %xmm5
	divsd	%xmm6, %xmm5
	divsd	%xmm6, %xmm0
	movsd	%xmm5, 56(%rbx)
	call	sqrt@PLT
	maxsd	.LC14(%rip), %xmm0
	movsd	8(%rsp), %xmm3
	movsd	456(%rsp), %xmm6
	movsd	424(%rsp), %xmm4
	movsd	752(%rsp), %xmm7
	movaps	%xmm3, %xmm5
	movsd	%xmm0, 88(%rbx)
	mulsd	%xmm3, %xmm5
	movaps	%xmm6, %xmm0
	mulsd	%xmm6, %xmm0
	mulsd	%xmm6, %xmm7
	mulsd	%xmm3, %xmm4
	addsd	%xmm0, %xmm5
	mulsd	%xmm3, %xmm0
	mulsd	%xmm7, %xmm6
	mulsd	%xmm3, %xmm4
	mulsd	%xmm3, %xmm0
	addsd	%xmm6, %xmm4
	divsd	%xmm5, %xmm4
	divsd	%xmm5, %xmm0
	movsd	%xmm4, 64(%rbx)
	call	sqrt@PLT
	maxsd	.LC14(%rip), %xmm0
	movsd	16(%rsp), %xmm2
	movsd	464(%rsp), %xmm5
	movsd	432(%rsp), %xmm3
	movsd	760(%rsp), %xmm6
	movaps	%xmm2, %xmm4
	movsd	%xmm0, 96(%rbx)
	mulsd	%xmm2, %xmm4
	movaps	%xmm5, %xmm0
	mulsd	%xmm5, %xmm0
	mulsd	%xmm5, %xmm6
	mulsd	%xmm2, %xmm3
	addsd	%xmm0, %xmm4
	mulsd	%xmm2, %xmm0
	mulsd	%xmm6, %xmm5
	mulsd	%xmm2, %xmm3
	mulsd	%xmm2, %xmm0
	addsd	%xmm5, %xmm3
	divsd	%xmm4, %xmm3
	divsd	%xmm4, %xmm0
	movsd	%xmm3, 72(%rbx)
	call	sqrt@PLT
	maxsd	.LC14(%rip), %xmm0
	movsd	24(%rsp), %xmm1
	movsd	472(%rsp), %xmm4
	movsd	440(%rsp), %xmm2
	movsd	768(%rsp), %xmm5
	movaps	%xmm1, %xmm3
	movsd	%xmm0, 104(%rbx)
	mulsd	%xmm1, %xmm3
	movaps	%xmm4, %xmm0
	mulsd	%xmm4, %xmm0
	mulsd	%xmm1, %xmm2
	mulsd	%xmm4, %xmm5
	addsd	%xmm0, %xmm3
	mulsd	%xmm1, %xmm0
	mulsd	%xmm1, %xmm2
	mulsd	%xmm5, %xmm4
	mulsd	%xmm1, %xmm0
	addsd	%xmm4, %xmm2
	divsd	%xmm3, %xmm2
	divsd	%xmm3, %xmm0
	movsd	%xmm2, 80(%rbx)
	call	sqrt@PLT
	maxsd	.LC14(%rip), %xmm0
	leaq	112(%rsp), %rsi
	movq	%rbx, %rdi
	movsd	%xmm0, 112(%rbx)
	call	_Z16deviceBuildModelR12VehicleStateRd
	xorl	%eax, %eax
	movq	$0x000000000, (%rbx)
	xorl	%esi, %esi
	movl	%eax, 328(%rbx)
	movq	%rbp, %rdx
	leaq	328(%rbx), %rcx
	movq	%rbx, %rdi
	movsd	.LC18(%rip), %xmm0
	movl	$1, %r9d
	movq	$0x000000000, 184(%rbx)
	leaq	336(%rbx), %r8
	call	_Z17deviceMeasureEdgeR12VehicleStateiP9LaserScandPiS3_b
	xorl	%edx, %edx
	movl	%edx, 332(%rbx)
	movq	1016(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1023
	call	__stack_chk_fail@PLT
.L1023:
	movsd	.LC18(%rip), %xmm0
	addq	$1024, %rsp
	.cfi_def_cfa_offset 48
	movq	%rbp, %rdx
	movq	%rbx, %rdi
	leaq	332(%rbx), %rcx
	movl	$1, %r9d
	movl	$1, %esi
	leaq	4432(%rbx), %r8
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	jmp	_Z17deviceMeasureEdgeR12VehicleStateiP9LaserScandPiS3_b
	.cfi_endproc
.LFE10192:
	.size	cuda_InitMotion, .-cuda_InitMotion
	.globl	cuda_UpdateTracker
	.type	cuda_UpdateTracker, @function
cuda_UpdateTracker:
.LFB10193:
	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movl	$82, %ecx
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	subq	$1024, %rsp
	.cfi_def_cfa_offset 1072
	movsd	.LC40(%rip), %xmm0
	movq	%fs:40, %rax
	movq	%rax, 1016(%rsp)
	xorl	%eax, %eax
	leaq	360(%rsp), %rdi
	movq	.LC39(%rip), %rax
	leaq	688(%rsp), %r12
	rep movsl
	leaq	128(%rsp), %r13
	leaq	688(%rsp), %rdi
	movl	$82, %ecx
	leaq	360(%rsp), %rsi
	comisd	448(%rsp), %xmm0
	rep movsl
	leaq	128(%rsp), %rdi
	leaq	.LC0(%rip), %rsi
	movl	$58, %ecx
	rep movsl
	movq	%rax, 128(%rsp)
	jbe	.L1031
	movsd	%xmm0, 152(%rsp)
.L1031:
	comisd	456(%rsp), %xmm0
	jbe	.L1033
	movsd	%xmm0, 176(%rsp)
.L1033:
	comisd	464(%rsp), %xmm0
	jbe	.L1035
	movsd	%xmm0, 200(%rsp)
.L1035:
	comisd	472(%rsp), %xmm0
	jbe	.L1037
	movsd	%xmm0, 224(%rsp)
.L1037:
	leaq	40(%rsp), %rdi
	movl	$22, %ecx
	leaq	40(%rsp), %r14
	movsd	.LC41(%rip), %xmm1
	comisd	392(%rsp), %xmm1
	leaq	h_egomotion(%rip), %rsi
	rep movsl
	movq	8(%rbp), %rdi
	jb	.L1039
	comisd	400(%rsp), %xmm1
	jb	.L1039
	movsd	.LC42(%rip), %xmm0
	comisd	408(%rsp), %xmm0
	jb	.L1039
	movsd	544(%rsp), %xmm0
	comisd	.LC28(%rip), %xmm0
	jb	.L1039
	movl	$1, %ecx
	movl	$328, %edx
	movq	.LC43(%rip), %rax
	movl	$1, 0(%rbp)
	leaq	360(%rsp), %rsi
	movb	$0, 120(%rsp)
	movq	%rax, 248(%rsp)
	movq	.LC44(%rip), %rax
	movq	%rax, 272(%rsp)
	movq	.LC31(%rip), %rax
	movq	%rax, 320(%rsp)
	call	cudaMemcpy@PLT
	jmp	.L1044
.L1039:
	movq	.LC45(%rip), %rax
	movb	$1, 120(%rsp)
	movq	%rax, 248(%rsp)
	movq	.LC5(%rip), %rax
	movq	%rax, 272(%rsp)
	movq	.LC46(%rip), %rax
	movq	%rax, 296(%rsp)
	movq	.LC47(%rip), %rax
	movq	%rax, 320(%rsp)
.L1044:
	movq	16(%rbp), %rcx
	movq	8(%rbp), %rdx
	pushq	%r14
	.cfi_def_cfa_offset 1080
	movq	%r12, %r9
	movq	24(%rbp), %r8
	movq	d_scan(%rip), %rdi
	pushq	%r13
	.cfi_def_cfa_offset 1088
	movq	%rbp, %rsi
	call	_Z16SSPF_MotionModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion
	movsd	888(%rsp), %xmm0
	comisd	.LC44(%rip), %xmm0
	popq	%rdi
	.cfi_def_cfa_offset 1080
	popq	%r8
	.cfi_def_cfa_offset 1072
	jnb	.L1045
	movsd	.LC41(%rip), %xmm7
	comisd	720(%rsp), %xmm7
	jb	.L1046
	comisd	728(%rsp), %xmm7
	jb	.L1046
	movsd	.LC42(%rip), %xmm1
	comisd	736(%rsp), %xmm1
	jb	.L1046
	comisd	.LC28(%rip), %xmm0
	jb	.L1046
.L1045:
	movl	$1, 0(%rbp)
	movq	8(%rbp), %rdi
	movq	%r12, %rsi
	movl	$1, %ecx
	movsd	720(%rsp), %xmm7
	movl	$328, %edx
	movsd	728(%rsp), %xmm6
	movsd	736(%rsp), %xmm5
	movsd	%xmm7, 24(%rsp)
	movsd	%xmm6, 16(%rsp)
	movsd	%xmm5, 8(%rsp)
	call	cudaMemcpy@PLT
	movq	16(%rbp), %rcx
	movq	8(%rbp), %rdx
	pushq	%r14
	.cfi_def_cfa_offset 1080
	pushq	%r13
	.cfi_def_cfa_offset 1088
	movq	d_scan(%rip), %rdi
	movq	%rbp, %rsi
	movq	%r12, %r9
	movq	24(%rbp), %r8
	call	_Z18SSPF_GeometryModelP9LaserScanRiP12VehicleStateS3_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEERS2_R17ObjectStateOffsetR9EgoMotion
	movl	$82, %ecx
	movq	%rbx, %rdi
	movq	%r12, %rsi
	rep movsl
	movsd	.LC7(%rip), %xmm0
	movsd	792(%rsp), %xmm4
	maxsd	.LC14(%rip), %xmm4
	popq	%rcx
	.cfi_def_cfa_offset 1080
	popq	%rsi
	.cfi_def_cfa_offset 1072
	movsd	784(%rsp), %xmm3
	movsd	8(%rsp), %xmm5
	comisd	%xmm4, %xmm0
	maxsd	.LC14(%rip), %xmm3
	movsd	792(%rsp), %xmm2
	movsd	800(%rsp), %xmm1
	maxsd	.LC14(%rip), %xmm2
	maxsd	.LC14(%rip), %xmm1
	movsd	16(%rsp), %xmm6
	movsd	24(%rsp), %xmm7
	ja	.L1055
	movsd	.LC24(%rip), %xmm4
.L1055:
	comisd	%xmm3, %xmm0
	ja	.L1056
	movsd	.LC24(%rip), %xmm3
.L1056:
	comisd	%xmm2, %xmm0
	ja	.L1057
	movsd	.LC24(%rip), %xmm2
.L1057:
	comisd	%xmm1, %xmm0
	ja	.L1058
	movsd	.LC24(%rip), %xmm1
.L1058:
	movsd	744(%rsp), %xmm8
	movsd	%xmm7, 32(%rbx)
	movsd	448(%rsp), %xmm7
	movsd	%xmm6, 40(%rbx)
	movaps	%xmm4, %xmm6
	movsd	%xmm5, 48(%rbx)
	mulsd	%xmm4, %xmm6
	movaps	%xmm7, %xmm0
	movsd	416(%rsp), %xmm5
	mulsd	%xmm7, %xmm0
	movsd	%xmm1, 24(%rsp)
	mulsd	%xmm7, %xmm8
	movsd	%xmm2, 16(%rsp)
	mulsd	%xmm4, %xmm5
	movsd	%xmm3, 8(%rsp)
	addsd	%xmm0, %xmm6
	mulsd	%xmm4, %xmm0
	mulsd	%xmm8, %xmm7
	mulsd	%xmm4, %xmm5
	mulsd	%xmm4, %xmm0
	addsd	%xmm7, %xmm5
	divsd	%xmm6, %xmm5
	divsd	%xmm6, %xmm0
	movsd	%xmm5, 56(%rbx)
	call	sqrt@PLT
	maxsd	.LC14(%rip), %xmm0
	movsd	8(%rsp), %xmm3
	movsd	456(%rsp), %xmm6
	movsd	424(%rsp), %xmm4
	movsd	752(%rsp), %xmm7
	movaps	%xmm3, %xmm5
	movsd	%xmm0, 88(%rbx)
	mulsd	%xmm3, %xmm5
	movaps	%xmm6, %xmm0
	mulsd	%xmm6, %xmm0
	mulsd	%xmm6, %xmm7
	mulsd	%xmm3, %xmm4
	addsd	%xmm0, %xmm5
	mulsd	%xmm3, %xmm0
	mulsd	%xmm7, %xmm6
	mulsd	%xmm3, %xmm4
	mulsd	%xmm3, %xmm0
	addsd	%xmm6, %xmm4
	divsd	%xmm5, %xmm4
	divsd	%xmm5, %xmm0
	movsd	%xmm4, 64(%rbx)
	call	sqrt@PLT
	maxsd	.LC14(%rip), %xmm0
	movsd	16(%rsp), %xmm2
	movsd	464(%rsp), %xmm5
	movsd	432(%rsp), %xmm3
	movsd	760(%rsp), %xmm6
	movaps	%xmm2, %xmm4
	movsd	%xmm0, 96(%rbx)
	mulsd	%xmm2, %xmm4
	movaps	%xmm5, %xmm0
	mulsd	%xmm5, %xmm0
	mulsd	%xmm2, %xmm3
	mulsd	%xmm5, %xmm6
	addsd	%xmm0, %xmm4
	mulsd	%xmm2, %xmm0
	mulsd	%xmm2, %xmm3
	mulsd	%xmm6, %xmm5
	mulsd	%xmm2, %xmm0
	addsd	%xmm5, %xmm3
	divsd	%xmm4, %xmm3
	divsd	%xmm4, %xmm0
	movsd	%xmm3, 72(%rbx)
	call	sqrt@PLT
	maxsd	.LC14(%rip), %xmm0
	movsd	24(%rsp), %xmm1
	movsd	472(%rsp), %xmm4
	movsd	440(%rsp), %xmm2
	movsd	768(%rsp), %xmm5
	movaps	%xmm1, %xmm3
	movsd	%xmm0, 104(%rbx)
	mulsd	%xmm1, %xmm3
	movaps	%xmm4, %xmm0
	mulsd	%xmm4, %xmm0
	mulsd	%xmm1, %xmm2
	mulsd	%xmm4, %xmm5
	addsd	%xmm0, %xmm3
	mulsd	%xmm1, %xmm0
	mulsd	%xmm1, %xmm2
	mulsd	%xmm5, %xmm4
	mulsd	%xmm1, %xmm0
	addsd	%xmm4, %xmm2
	divsd	%xmm3, %xmm2
	divsd	%xmm3, %xmm0
	movsd	%xmm2, 80(%rbx)
	call	sqrt@PLT
	maxsd	.LC14(%rip), %xmm0
	jmp	.L1063
.L1046:
	movsd	416(%rsp), %xmm0
	movl	$82, %ecx
	movq	%rbx, %rdi
	movq	%r12, %rsi
	rep movsl
	movsd	%xmm0, 56(%rbx)
	movsd	448(%rsp), %xmm0
	movsd	%xmm0, 88(%rbx)
	movsd	424(%rsp), %xmm0
	movsd	%xmm0, 64(%rbx)
	movsd	456(%rsp), %xmm0
	movsd	%xmm0, 96(%rbx)
	movsd	432(%rsp), %xmm0
	movsd	%xmm0, 72(%rbx)
	movsd	464(%rsp), %xmm0
	movsd	%xmm0, 104(%rbx)
	movsd	440(%rsp), %xmm0
	movsd	%xmm0, 80(%rbx)
	movsd	472(%rsp), %xmm0
.L1063:
	movsd	%xmm0, 112(%rbx)
	leaq	112(%rsp), %rsi
	movq	%rbx, %rdi
	leaq	h_scan(%rip), %rbp
	call	_Z16deviceBuildModelR12VehicleStateRd
	xorl	%eax, %eax
	movq	$0x000000000, (%rbx)
	xorl	%esi, %esi
	movl	%eax, 328(%rbx)
	movl	$1, %r9d
	movsd	.LC18(%rip), %xmm0
	leaq	328(%rbx), %rcx
	leaq	336(%rbx), %r8
	movq	%rbp, %rdx
	movq	%rbx, %rdi
	movq	$0x000000000, 184(%rbx)
	call	_Z17deviceMeasureEdgeR12VehicleStateiP9LaserScandPiS3_b
	xorl	%edx, %edx
	movl	$1, %r9d
	movq	%rbx, %rdi
	movl	%edx, 332(%rbx)
	movl	$1, %esi
	movq	%rbp, %rdx
	movsd	.LC18(%rip), %xmm0
	leaq	332(%rbx), %rcx
	leaq	4432(%rbx), %r8
	call	_Z17deviceMeasureEdgeR12VehicleStateiP9LaserScandPiS3_b
	movb	120(%rsp), %al
	movq	1016(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L1064
	call	__stack_chk_fail@PLT
.L1064:
	addq	$1024, %rsp
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE10193:
	.size	cuda_UpdateTracker, .-cuda_UpdateTracker
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC48:
	.string	"_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv"
.LC49:
	.string	"_Z18kernelMotionUpdateiP12VehicleState9EgoMotion"
.LC50:
	.string	"_Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion"
.LC51:
	.string	"_Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion"
.LC52:
	.string	"_Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi"
.LC53:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan4cuda3std3__45__cpo5beginE"
.LC54:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan4cuda3std3__45__cpo3endE"
.LC55:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan4cuda3std3__45__cpo6cbeginE"
.LC56:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan4cuda3std3__45__cpo4cendE"
.LC57:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan4cuda3std3__454_GLOBAL__N__349c0b38_23_rbsspfvehicletracker_cu_d_scan6ignoreE"
.LC58:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan4cuda3std3__419piecewise_constructE"
.LC59:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan4cuda3std3__48in_placeE"
.LC60:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan4cuda3std3__47nulloptE"
.LC61:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan4cuda3std6ranges3__45__cpo4swapE"
.LC62:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan4cuda3std6ranges3__45__cpo9iter_moveE"
.LC63:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan4cuda3std6ranges3__45__cpo7advanceE"
.LC64:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan6thrust20THRUST_200700_890_NS6system6detail10sequential3seqE"
.LC65:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan6thrust20THRUST_200700_890_NS12placeholders2_1E"
.LC66:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan6thrust20THRUST_200700_890_NS12placeholders2_2E"
.LC67:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan6thrust20THRUST_200700_890_NS12placeholders2_3E"
.LC68:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan6thrust20THRUST_200700_890_NS12placeholders2_4E"
.LC69:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan6thrust20THRUST_200700_890_NS12placeholders2_5E"
.LC70:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan6thrust20THRUST_200700_890_NS12placeholders2_6E"
.LC71:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan6thrust20THRUST_200700_890_NS12placeholders2_7E"
.LC72:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan6thrust20THRUST_200700_890_NS12placeholders2_8E"
.LC73:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan6thrust20THRUST_200700_890_NS12placeholders2_9E"
.LC74:
	.string	"_ZN52_INTERNAL_349c0b38_23_rbsspfvehicletracker_cu_d_scan6thrust20THRUST_200700_890_NS12placeholders3_10E"
	.section	.text.startup,"ax",@progbits
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB10229:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	_ZL15__fatDeviceText(%rip), %rdi
	call	__cudaRegisterFatBinary@PLT
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC48(%rip), %rdx
	movq	%rax, %rdi
	movq	%rax, %rbx
	pushq	$0
	.cfi_def_cfa_offset 40
	movq	%rdx, %rcx
	leaq	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 48
	movq	%rax, _ZL20__cudaFatCubinHandle(%rip)
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC49(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z18kernelMotionUpdateiP12VehicleState9EgoMotion(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC50(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z17kernelMotionModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC51(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z19kernelGeometryModelP9LaserScaniP12VehicleStateiS2_PN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEE17ObjectStateOffset14StateConstrain9EgoMotion(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC52(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z19kernelSetRandomSeedPiPN6thrust20THRUST_200700_890_NS6random26linear_congruential_engineIjLj48271ELj0ELj2147483647EEEi(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC53(%rip), %rdx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo5beginE(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC54(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo3endE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC55(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo6cbeginE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC56(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo4cendE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC57(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__454_GLOBAL__N__349c0b38_23_rbsspfvehicletracker_cu_d_scan6ignoreE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC58(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__419piecewise_constructE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC59(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__48in_placeE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC60(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__47nulloptE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC61(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4swapE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC62(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo9iter_moveE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC63(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo7advanceE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC64(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC65(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC66(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC67(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC68(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC69(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC70(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC71(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC72(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC73(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC74(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	call	__cudaRegisterFatBinaryEnd@PLT
	leaq	_ZL26__cudaUnregisterBinaryUtilv(%rip), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	atexit@PLT
	.cfi_endproc
.LFE10229:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.section	.text.startup
	.type	_GLOBAL__sub_I_d_scan, @function
_GLOBAL__sub_I_d_scan:
.LFB11132:
	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	movb	$0, h_egomotion(%rip)
	movq	$0x000000000, 40+h_egomotion(%rip)
	movq	$0x000000000, 48+h_egomotion(%rip)
	movq	$0x000000000, 56+h_egomotion(%rip)
	movl	%eax, 64+h_egomotion(%rip)
	movb	$0, 80+h_egomotion(%rip)
	ret
	.cfi_endproc
.LFE11132:
	.size	_GLOBAL__sub_I_d_scan, .-_GLOBAL__sub_I_d_scan
	.section	.init_array
	.align 8
	.quad	_GLOBAL__sub_I_d_scan
	.section	.nvFatBinSegment,"aw"
	.align 8
	.type	_ZL15__fatDeviceText, @object
	.size	_ZL15__fatDeviceText, 24
_ZL15__fatDeviceText:
	.long	1180844977
	.long	1
	.quad	fatbinData
	.quad	0
	.local	_ZL20__cudaFatCubinHandle
	.comm	_ZL20__cudaFatCubinHandle,8,8
	.globl	h_egomotion
	.bss
	.align 32
	.type	h_egomotion, @object
	.size	h_egomotion, 88
h_egomotion:
	.zero	88
	.globl	h_scan
	.align 32
	.type	h_scan, @object
	.size	h_scan, 16424
h_scan:
	.zero	16424
	.globl	d_scan
	.align 8
	.type	d_scan, @object
	.size	d_scan, 8
d_scan:
	.zero	8
	.section	.rodata
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E:
	.zero	1
	.weak	_ZN4cuda3std3__47nulloptE
	.section	.rodata._ZN4cuda3std3__47nulloptE,"aG",@progbits,_ZN4cuda3std3__47nulloptE,comdat
	.type	_ZN4cuda3std3__47nulloptE, @gnu_unique_object
	.size	_ZN4cuda3std3__47nulloptE, 1
_ZN4cuda3std3__47nulloptE:
	.zero	1
	.hidden	InitializeInjectionNvtx2_fnptr
	.weak	InitializeInjectionNvtx2_fnptr
	.bss
	.align 8
	.type	InitializeInjectionNvtx2_fnptr, @object
	.size	InitializeInjectionNvtx2_fnptr, 8
InitializeInjectionNvtx2_fnptr:
	.zero	8
	.hidden	nvtxGlobals_v3
	.weak	nvtxGlobals_v3
	.section	.data.rel.local,"aw"
	.align 32
	.type	nvtxGlobals_v3, @object
	.size	nvtxGlobals_v3, 1168
nvtxGlobals_v3:
	.long	0
	.zero	4
	.quad	16
	.quad	nvtxEtiGetModuleFunctionTable_v3
	.quad	24
	.long	3
	.long	0
	.quad	nvtxEtiSetInjectionNvtxVersion_v3
	.quad	nvtxMarkEx_impl_init_v3
	.quad	nvtxMarkA_impl_init_v3
	.quad	nvtxMarkW_impl_init_v3
	.quad	nvtxRangeStartEx_impl_init_v3
	.quad	nvtxRangeStartA_impl_init_v3
	.quad	nvtxRangeStartW_impl_init_v3
	.quad	nvtxRangeEnd_impl_init_v3
	.quad	nvtxRangePushEx_impl_init_v3
	.quad	nvtxRangePushA_impl_init_v3
	.quad	nvtxRangePushW_impl_init_v3
	.quad	nvtxRangePop_impl_init_v3
	.quad	nvtxNameCategoryA_impl_init_v3
	.quad	nvtxNameCategoryW_impl_init_v3
	.quad	nvtxNameOsThreadA_impl_init_v3
	.quad	nvtxNameOsThreadW_impl_init_v3
	.quad	nvtxNameCuDeviceA_impl_init_v3
	.quad	nvtxNameCuDeviceW_impl_init_v3
	.quad	nvtxNameCuContextA_impl_init_v3
	.quad	nvtxNameCuContextW_impl_init_v3
	.quad	nvtxNameCuStreamA_impl_init_v3
	.quad	nvtxNameCuStreamW_impl_init_v3
	.quad	nvtxNameCuEventA_impl_init_v3
	.quad	nvtxNameCuEventW_impl_init_v3
	.quad	nvtxNameClDeviceA_impl_init_v3
	.quad	nvtxNameClDeviceW_impl_init_v3
	.quad	nvtxNameClContextA_impl_init_v3
	.quad	nvtxNameClContextW_impl_init_v3
	.quad	nvtxNameClCommandQueueA_impl_init_v3
	.quad	nvtxNameClCommandQueueW_impl_init_v3
	.quad	nvtxNameClMemObjectA_impl_init_v3
	.quad	nvtxNameClMemObjectW_impl_init_v3
	.quad	nvtxNameClSamplerA_impl_init_v3
	.quad	nvtxNameClSamplerW_impl_init_v3
	.quad	nvtxNameClProgramA_impl_init_v3
	.quad	nvtxNameClProgramW_impl_init_v3
	.quad	nvtxNameClEventA_impl_init_v3
	.quad	nvtxNameClEventW_impl_init_v3
	.quad	nvtxNameCudaDeviceA_impl_init_v3
	.quad	nvtxNameCudaDeviceW_impl_init_v3
	.quad	nvtxNameCudaStreamA_impl_init_v3
	.quad	nvtxNameCudaStreamW_impl_init_v3
	.quad	nvtxNameCudaEventA_impl_init_v3
	.quad	nvtxNameCudaEventW_impl_init_v3
	.quad	nvtxDomainMarkEx_impl_init_v3
	.quad	nvtxDomainRangeStartEx_impl_init_v3
	.quad	nvtxDomainRangeEnd_impl_init_v3
	.quad	nvtxDomainRangePushEx_impl_init_v3
	.quad	nvtxDomainRangePop_impl_init_v3
	.quad	nvtxDomainResourceCreate_impl_init_v3
	.quad	nvtxDomainResourceDestroy_impl_init_v3
	.quad	nvtxDomainNameCategoryA_impl_init_v3
	.quad	nvtxDomainNameCategoryW_impl_init_v3
	.quad	nvtxDomainRegisterStringA_impl_init_v3
	.quad	nvtxDomainRegisterStringW_impl_init_v3
	.quad	nvtxDomainCreateA_impl_init_v3
	.quad	nvtxDomainCreateW_impl_init_v3
	.quad	nvtxDomainDestroy_impl_init_v3
	.quad	nvtxInitialize_impl_init_v3
	.quad	nvtxDomainSyncUserCreate_impl_init_v3
	.quad	nvtxDomainSyncUserDestroy_impl_init_v3
	.quad	nvtxDomainSyncUserAcquireStart_impl_init_v3
	.quad	nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.quad	nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.quad	nvtxDomainSyncUserReleasing_impl_init_v3
	.quad	0
	.quad	nvtxGlobals_v3+48
	.quad	nvtxGlobals_v3+56
	.quad	nvtxGlobals_v3+64
	.quad	nvtxGlobals_v3+72
	.quad	nvtxGlobals_v3+80
	.quad	nvtxGlobals_v3+88
	.quad	nvtxGlobals_v3+96
	.quad	nvtxGlobals_v3+104
	.quad	nvtxGlobals_v3+112
	.quad	nvtxGlobals_v3+120
	.quad	nvtxGlobals_v3+128
	.quad	nvtxGlobals_v3+136
	.quad	nvtxGlobals_v3+144
	.quad	nvtxGlobals_v3+152
	.quad	nvtxGlobals_v3+160
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+168
	.quad	nvtxGlobals_v3+176
	.quad	nvtxGlobals_v3+184
	.quad	nvtxGlobals_v3+192
	.quad	nvtxGlobals_v3+200
	.quad	nvtxGlobals_v3+208
	.quad	nvtxGlobals_v3+216
	.quad	nvtxGlobals_v3+224
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+232
	.quad	nvtxGlobals_v3+240
	.quad	nvtxGlobals_v3+248
	.quad	nvtxGlobals_v3+256
	.quad	nvtxGlobals_v3+264
	.quad	nvtxGlobals_v3+272
	.quad	nvtxGlobals_v3+280
	.quad	nvtxGlobals_v3+288
	.quad	nvtxGlobals_v3+296
	.quad	nvtxGlobals_v3+304
	.quad	nvtxGlobals_v3+312
	.quad	nvtxGlobals_v3+320
	.quad	nvtxGlobals_v3+328
	.quad	nvtxGlobals_v3+336
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+344
	.quad	nvtxGlobals_v3+352
	.quad	nvtxGlobals_v3+360
	.quad	nvtxGlobals_v3+368
	.quad	nvtxGlobals_v3+376
	.quad	nvtxGlobals_v3+384
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+392
	.quad	nvtxGlobals_v3+400
	.quad	nvtxGlobals_v3+408
	.quad	nvtxGlobals_v3+416
	.quad	nvtxGlobals_v3+424
	.quad	nvtxGlobals_v3+432
	.quad	nvtxGlobals_v3+440
	.quad	nvtxGlobals_v3+448
	.quad	nvtxGlobals_v3+456
	.quad	nvtxGlobals_v3+464
	.quad	nvtxGlobals_v3+472
	.quad	nvtxGlobals_v3+480
	.quad	nvtxGlobals_v3+488
	.quad	nvtxGlobals_v3+496
	.quad	nvtxGlobals_v3+504
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+512
	.quad	nvtxGlobals_v3+520
	.quad	nvtxGlobals_v3+528
	.quad	nvtxGlobals_v3+536
	.quad	nvtxGlobals_v3+544
	.quad	nvtxGlobals_v3+552
	.quad	0
	.section	.rodata
	.type	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE, @object
	.size	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE, 1
_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo7advanceE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo7advanceE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo7advanceE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo7advanceE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo7advanceE, 1
_ZN4cuda3std6ranges3__45__cpo7advanceE:
	.zero	1
	.hidden	_ZN4cuda3std3__454_GLOBAL__N__349c0b38_23_rbsspfvehicletracker_cu_d_scan6ignoreE
	.weak	_ZN4cuda3std3__454_GLOBAL__N__349c0b38_23_rbsspfvehicletracker_cu_d_scan6ignoreE
	.section	.rodata._ZN4cuda3std3__454_GLOBAL__N__349c0b38_23_rbsspfvehicletracker_cu_d_scan6ignoreE,"aG",@progbits,_ZN4cuda3std3__454_GLOBAL__N__349c0b38_23_rbsspfvehicletracker_cu_d_scan6ignoreE,comdat
	.type	_ZN4cuda3std3__454_GLOBAL__N__349c0b38_23_rbsspfvehicletracker_cu_d_scan6ignoreE, @gnu_unique_object
	.size	_ZN4cuda3std3__454_GLOBAL__N__349c0b38_23_rbsspfvehicletracker_cu_d_scan6ignoreE, 1
_ZN4cuda3std3__454_GLOBAL__N__349c0b38_23_rbsspfvehicletracker_cu_d_scan6ignoreE:
	.zero	1
	.weak	_ZN4cuda3std3__48in_placeE
	.section	.rodata._ZN4cuda3std3__48in_placeE,"aG",@progbits,_ZN4cuda3std3__48in_placeE,comdat
	.type	_ZN4cuda3std3__48in_placeE, @gnu_unique_object
	.size	_ZN4cuda3std3__48in_placeE, 1
_ZN4cuda3std3__48in_placeE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo4cendE
	.section	.rodata._ZN4cuda3std3__45__cpo4cendE,"aG",@progbits,_ZN4cuda3std3__45__cpo4cendE,comdat
	.type	_ZN4cuda3std3__45__cpo4cendE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo4cendE, 1
_ZN4cuda3std3__45__cpo4cendE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo6cbeginE
	.section	.rodata._ZN4cuda3std3__45__cpo6cbeginE,"aG",@progbits,_ZN4cuda3std3__45__cpo6cbeginE,comdat
	.type	_ZN4cuda3std3__45__cpo6cbeginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo6cbeginE, 1
_ZN4cuda3std3__45__cpo6cbeginE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo3endE
	.section	.rodata._ZN4cuda3std3__45__cpo3endE,"aG",@progbits,_ZN4cuda3std3__45__cpo3endE,comdat
	.type	_ZN4cuda3std3__45__cpo3endE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo3endE, 1
_ZN4cuda3std3__45__cpo3endE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo5beginE
	.section	.rodata._ZN4cuda3std3__45__cpo5beginE,"aG",@progbits,_ZN4cuda3std3__45__cpo5beginE,comdat
	.type	_ZN4cuda3std3__45__cpo5beginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo5beginE, 1
_ZN4cuda3std3__45__cpo5beginE:
	.zero	1
	.weak	_ZN4cuda3std3__419piecewise_constructE
	.section	.rodata._ZN4cuda3std3__419piecewise_constructE,"aG",@progbits,_ZN4cuda3std3__419piecewise_constructE,comdat
	.type	_ZN4cuda3std3__419piecewise_constructE, @gnu_unique_object
	.size	_ZN4cuda3std3__419piecewise_constructE, 1
_ZN4cuda3std3__419piecewise_constructE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo9iter_moveE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo9iter_moveE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo9iter_moveE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo9iter_moveE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo9iter_moveE, 1
_ZN4cuda3std6ranges3__45__cpo9iter_moveE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4swapE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4swapE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4swapE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4swapE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4swapE, 1
_ZN4cuda3std6ranges3__45__cpo4swapE:
	.zero	1
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC3:
	.long	0
	.long	-2147483648
	.long	0
	.long	0
	.section	.rodata.cst8,"aM",@progbits,8
	.align 8
.LC4:
	.long	1413754602
	.long	1074340347
	.align 8
.LC5:
	.long	0
	.long	1073741824
	.align 8
.LC6:
	.long	0
	.long	1079574528
	.align 8
.LC7:
	.long	858993459
	.long	1070805811
	.align 8
.LC8:
	.long	1413754602
	.long	1075388923
	.align 8
.LC10:
	.long	1717986918
	.long	1074423398
	.section	.rodata.cst16
	.align 16
.LC11:
	.long	-1
	.long	2147483647
	.long	0
	.long	0
	.section	.rodata.cst8
	.align 8
.LC12:
	.long	-1717986918
	.long	1070176665
	.align 8
.LC13:
	.long	-1717986918
	.long	1071225241
	.align 8
.LC14:
	.long	1202590843
	.long	1065646817
	.align 8
.LC15:
	.long	0
	.long	-1072168960
	.align 8
.LC16:
	.long	0
	.long	1075838976
	.align 8
.LC17:
	.long	0
	.long	1075314688
	.align 8
.LC18:
	.long	0
	.long	1072693248
	.align 8
.LC19:
	.long	1202590843
	.long	1075084001
	.align 8
.LC20:
	.long	-1889785610
	.long	1074329026
	.align 8
.LC21:
	.long	0
	.long	1083129856
	.align 8
.LC22:
	.long	0
	.long	1077805056
	.align 8
.LC23:
	.long	0
	.long	-1069678592
	.align 8
.LC24:
	.long	0
	.long	1093567616
	.align 8
.LC26:
	.long	-17155601
	.long	1072049730
	.align 8
.LC27:
	.long	0
	.long	-1074790400
	.align 8
.LC28:
	.long	0
	.long	1074266112
	.align 8
.LC29:
	.long	0
	.long	1075052544
	.align 8
.LC30:
	.long	942503068
	.long	-1074740910
	.align 8
.LC31:
	.long	942503068
	.long	1072742738
	.align 8
.LC32:
	.long	0
	.long	-1071382528
	.align 8
.LC33:
	.long	0
	.long	-1075838976
	.align 8
.LC34:
	.long	0
	.long	1071644672
	.align 8
.LC35:
	.long	1413754603
	.long	-1074191877
	.align 8
.LC36:
	.long	1413754603
	.long	1073291771
	.align 8
.LC39:
	.long	-1571643772
	.long	1066524486
	.align 8
.LC40:
	.long	-1717986918
	.long	1069128089
	.align 8
.LC41:
	.long	858993459
	.long	1071854387
	.align 8
.LC42:
	.long	1256670757
	.long	1071011608
	.align 8
.LC43:
	.long	942503068
	.long	1071694162
	.align 8
.LC44:
	.long	0
	.long	1076101120
	.align 8
.LC45:
	.long	1256670757
	.long	1068914456
	.align 8
.LC46:
	.long	-1717986918
	.long	1068079513
	.align 8
.LC47:
	.long	-209982009
	.long	1068158697
	.ident	"GCC: (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:

#ifndef RBSSPFVEHICLETRACKER_CUH
#define RBSSPFVEHICLETRACKER_CUH

#include<hip/hip_runtime.h>

#include<thrust/random/linear_congruential_engine.h>
#include<thrust/random/uniform_real_distribution.h>
#include<thrust/random/normal_distribution.h>
#include<thrust/generate.h>

#include<chrono>
#include<vector>
#include<random>
#include<time.h>
#include<algorithm>

#ifndef PI
#define PI 3.14159265359
#endif

#define DEG2RAD(ang) (ang*PI/180)

#define MINSIGMA 1e-2
#define MAXSIGMA 1e6
#define UNCERTAINTHRESH 0.3
#define UNCERTAINTHRESH_ANG DEG2RAD(20)
#define UNCERTAINTHRESH_CNT 3

#define RQPN 1024
#define SPN 4
#define MAXPN (SPN*RQPN)
#define MAXBEAMNUM 2048
#define MAXEDGEPOINT 1024

#define CUDAFREE(pointer) if(pointer!=NULL){hipFree(pointer);pointer=NULL;}

#define THREAD_1D 256
#define THREAD_2D 16
#define GetKernelDim_1D(numBlocks, threadsPerBlock, dim) int numBlocks=(dim+THREAD_1D-1)/THREAD_1D; int threadsPerBlock=THREAD_1D;
#define GetKernelDim_2D(numBlocks, threadsPerBlock, xdim, ydim) dim3 numBlocks(int((xdim+THREAD_2D-1)/THREAD_2D), int((ydim+THREAD_2D-1)/THREAD_2D)); dim3 threadsPerBlock(THREAD_2D, THREAD_2D);
#define GetThreadID_1D(id) int id=blockDim.x*blockIdx.x+threadIdx.x;
#define GetThreadID_2D(xid,yid) int xid=blockDim.x*blockIdx.x+threadIdx.x;int yid=blockDim.y*blockIdx.y+threadIdx.y;

#define NEARESTRING 3.3
#define MINBEAMLENGTH 2
#define MAXBEAMLENGTH 100
#define MARGIN0 0.2
#define MARGIN1 0.2
#define MARGIN2 0.4

#define SIGMA 0.5
#define COST0 1
#define WEIGHT0 -2
#define COST1 2
#define WEIGHT1 -8
#define COST2 0
#define WEIGHT2 0
#define COST3 1.6
#define WEIGHT3 -5.12

#define MAXANGLEOFFSET DEG2RAD(8)

struct VehicleState
{
    double weight;

    double x,y,theta;
    double dx,dy,dtheta;
    double wl,wr,lf,lb;
    double dwl,dwr,dlf,dlb;
    double a,v,k,omega;
    double da,dv,dk,domega;
    double count;

    double cx[4],cy[4],cl[4];
    int bid[4];
    int eid[2];

    double ox,oy;
};

struct StateConstrain
{
    double thetamin,thetamax;
    double wlmin=0,wlmax=3;
    double wrmin=0,wrmax=3;
    double lfmin=0,lfmax=5;
    double lbmin=0,lbmax=5;
    double amin=DEG2RAD(-60),amax=DEG2RAD(60);
    double vmin=-10,vmax=30;
    double kmin=-0.5,kmax=0.5;
    double omegamin=DEG2RAD(-90),omegamax=DEG2RAD(90);
};

struct LaserScan
{
    int timestamp;
    double x,y,theta;
    int beamnum;
    double length[MAXBEAMNUM];
};

struct EgoMotion
{
    bool validflag=0;
    double x,y,theta;
    int timestamp;
    double dx=0,dy=0,dtheta=0;
    int dt=0;
    double density;
    bool pfflag=0;
};

struct ObjectStateOffset
{
    double thetaoff=DEG2RAD(30),thetaprec=DEG2RAD(1),thetazoom=1;
    double wloff=1.5,wlprec=0.1,wlzoom=1;
    double wroff=1.5,wrprec=0.1,wrzoom=1;
    double lfoff=2.5,lfprec=0.1,lfzoom=1;
    double lboff=2.5,lbprec=0.1,lbzoom=1;
    double aoff=DEG2RAD(60),aprec=DEG2RAD(1),azoom=1;
    double voff=20,vprec=1,vzoom=1;
    double koff=0.5,kprec=0.001,kzoom=1;
    double omegaoff=DEG2RAD(90),omegaprec=DEG2RAD(1),omegazoom=1;
    double anneal=1;
    double annealratio=1;
};

struct TrackerDataContainer
{
    int pnum;
    VehicleState * d_particle;
    VehicleState * d_tmpparticle;
    thrust::minstd_rand * d_rng;
};

struct TrackerResultContainer
{
    VehicleState estimate;
    int edgepointnum[2];
    int edgepointid[2][MAXEDGEPOINT];
};

extern "C" void cuda_InitLaserScan();
extern "C" void cuda_FreeLaserScan();
extern "C" void cuda_SetLaserScan(LaserScan & laserScan);
extern "C" void cuda_OpenTracker(TrackerDataContainer & trackerDataContainer);
extern "C" void cuda_CloseTracker(TrackerDataContainer & trackerDataContainer);
extern "C" void cuda_InitGeometry(TrackerDataContainer & trackerDataContainer, TrackerResultContainer & trackerResultContainer);
extern "C" void cuda_InitMotion(TrackerDataContainer & trackerDataContainer, TrackerResultContainer & trackerResultContainer);
extern "C" bool cuda_UpdateTracker(TrackerDataContainer & trackerDataContainer, TrackerResultContainer & trackerResultContainer);

#endif // RBSSPFVEHICLETRACKER_CUH


	.text
	.file	"rbsspfvehicletracker.hip"
                                        # Start of file scope inline assembly
	.globl	_ZSt21ios_base_library_initv

                                        # End of file scope inline assembly
	.type	__hip_cuid_,@object             # @__hip_cuid_
	.bss
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               # 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __hip_cuid_

	.text
	.p2alignl 7, 3214868480
	.fill 96, 4, 3214868480
	.type	__hip_cuid_,@object             ; @__hip_cuid_
	.section	.bss,"aw",@nobits
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               ; 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __hip_cuid_
	.amdgcn_target "amdgcn-amd-amdhsa--gfx1100"
	.amdgpu_metadata
---
amdhsa.kernels:  []
amdhsa.target:   amdgcn-amd-amdhsa--gfx1100
amdhsa.version:
  - 1
  - 2
...

	.end_amdgpu_metadata
