rotl Function

private pure function rotl(x, k) result(res)

Helper function for next()

Arguments

Type IntentOptional Attributes Name
integer(kind=i8), intent(in) :: x
integer, intent(in) :: k

Return Value integer(kind=i8)


Called by

proc~~rotl~~CalledByGraph proc~rotl rotl proc~next rng_t%next proc~next->proc~rotl proc~int_4 rng_t%int_4 proc~int_4->proc~next proc~int_8 rng_t%int_8 proc~int_8->proc~next proc~jump rng_t%jump proc~jump->proc~next proc~unif_01 rng_t%unif_01 proc~unif_01->proc~next proc~advect_create_particles advect_create_particles proc~advect_create_particles->proc~unif_01 proc~circle rng_t%circle proc~circle->proc~unif_01 proc~gca_create_particles gca_create_particles proc~gca_create_particles->proc~unif_01 proc~init_parallel prng_t%init_parallel proc~init_parallel->proc~jump proc~lorentz_create_particles Lorentz_create_particles proc~lorentz_create_particles->proc~unif_01 proc~poisson rng_t%poisson proc~poisson->proc~unif_01 proc~sample_create_particles sample_create_particles proc~sample_create_particles->proc~unif_01 proc~set_seed rng_t%set_seed proc~set_seed->proc~jump proc~sphere rng_t%sphere proc~sphere->proc~unif_01 proc~two_normals rng_t%two_normals proc~two_normals->proc~unif_01 proc~unif_01_vec rng_t%unif_01_vec proc~unif_01_vec->proc~unif_01 proc~get_maxwellian_velocity get_maxwellian_velocity proc~get_maxwellian_velocity->proc~sphere proc~normal rng_t%normal proc~get_maxwellian_velocity->proc~normal proc~get_uniform_pos get_uniform_pos proc~get_uniform_pos->proc~unif_01_vec proc~normal->proc~two_normals proc~particle_base_init particle_base_init proc~particle_base_init->proc~set_seed proc~particles_create particles_create proc~particles_create->proc~advect_create_particles proc~particles_create->proc~gca_create_particles proc~particles_create->proc~lorentz_create_particles proc~particles_create->proc~sample_create_particles proc~main main proc~main->proc~particles_create proc~particles_init particles_init proc~particles_init->proc~particle_base_init program~agile agile program~agile->proc~main

Source Code

  pure function rotl(x, k) result(res)
    integer(i8), intent(in) :: x
    integer, intent(in)     :: k
    integer(i8)             :: res

    res = ior(shiftl(x, k), shiftr(x, 64 - k))
  end function rotl