Loading [MathJax]/extensions/tex2jax.js
Photon Engine 2.0.0-beta
A physically based renderer.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
shuffle.h File Reference
#include "Math/Random/Random.h"
#include <Common/assertion.h>
#include <cstddef>
#include <algorithm>
#include <iterator>
#include <utility>

Go to the source code of this file.

Classes

struct  ph::math::detail::shuffle::StandardSwapper< T >
 

Namespaces

namespace  ph
 The root for all renderer implementations.
 
namespace  ph::math
 Math functions and utilities.
 
namespace  ph::math::detail
 
namespace  ph::math::detail::shuffle
 

Functions

template<typename IndexPairConsumer >
void ph::math::shuffle_durstenfeld_index_pairs (const std::size_t beginIndex, const std::size_t endIndex, IndexPairConsumer consumer)
 
template<typename RandomIterator , typename Swapper = detail::shuffle::StandardSwapper<typename std::iterator_traits<RandomIterator>::value_type>>
void ph::math::shuffle_durstenfeld (RandomIterator begin, RandomIterator end, Swapper swapper=Swapper())