godot/thirdparty/embree/common/algorithms/parallel_for_for_prefix_sum.h

// Copyright 2009-2021 Intel Corporation
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "parallel_for_for.h"
#include "parallel_prefix_sum.h"

namespace embree
{
  template<typename Value>
    struct ParallelForForPrefixSumState : public ParallelForForState
  {};
  
  template<typename SizeFunc, typename Index, typename Value, typename Func, typename Reduction>
    __forceinline Value parallel_for_for_prefix_sum0_( ParallelForForPrefixSumState<Value>& state, Index minStepSize, 
                                                       const SizeFunc& getSize, const Value& identity, const Func& func, const Reduction& reduction)
  {}

  template<typename SizeFunc, typename Index, typename Value, typename Func, typename Reduction>
    __forceinline Value parallel_for_for_prefix_sum1_( ParallelForForPrefixSumState<Value>& state, Index minStepSize, 
                                                       const SizeFunc& getSize, 
                                                       const Value& identity, const Func& func, const Reduction& reduction)
  {}

  template<typename ArrayArray, typename Index, typename Value, typename Func, typename Reduction>
  __forceinline Value parallel_for_for_prefix_sum0( ParallelForForPrefixSumState<Value>& state,
                                                    ArrayArray& array2, Index minStepSize, 
                                                    const Value& identity, const Func& func, const Reduction& reduction)
  {}

  template<typename ArrayArray, typename Index, typename Value, typename Func, typename Reduction>
  __forceinline Value parallel_for_for_prefix_sum1( ParallelForForPrefixSumState<Value>& state,
                                                    ArrayArray& array2, Index minStepSize, 
                                                    const Value& identity, const Func& func, const Reduction& reduction)
  {}                                       

  template<typename ArrayArray, typename Value, typename Func, typename Reduction>
    __forceinline Value parallel_for_for_prefix_sum0( ParallelForForPrefixSumState<Value>& state, ArrayArray& array2, 
						     const Value& identity, const Func& func, const Reduction& reduction)
  {}

  template<typename ArrayArray, typename Value, typename Func, typename Reduction>
    __forceinline Value parallel_for_for_prefix_sum1( ParallelForForPrefixSumState<Value>& state, ArrayArray& array2, 
						     const Value& identity, const Func& func, const Reduction& reduction)
  {}
}