mirror of
https://github.com/bolero-MURAKAMI/Sprout
synced 2024-11-12 21:09:01 +00:00
add range::unstable_accumulate, range::unstable_inner_product
This commit is contained in:
parent
26dd9dabca
commit
6a6fc03806
3 changed files with 58 additions and 0 deletions
|
@ -4,5 +4,7 @@
|
|||
#include <sprout/config.hpp>
|
||||
#include <sprout/range/numeric/accumulate.hpp>
|
||||
#include <sprout/range/numeric/inner_product.hpp>
|
||||
#include <sprout/range/numeric/unstable_accumulate.hpp>
|
||||
#include <sprout/range/numeric/unstable_inner_product.hpp>
|
||||
|
||||
#endif // #ifndef SPROUT_RANGE_NUMERIC_NON_MODIFYIING_HPP
|
||||
|
|
26
sprout/range/numeric/unstable_accumulate.hpp
Normal file
26
sprout/range/numeric/unstable_accumulate.hpp
Normal file
|
@ -0,0 +1,26 @@
|
|||
#ifndef SPROUT_RANGE_NUMERIC_UNSTABLE_ACCUMLATE_HPP
|
||||
#define SPROUT_RANGE_NUMERIC_UNSTABLE_ACCUMLATE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/numeric/unstable_accumulate.hpp>
|
||||
|
||||
namespace sprout {
|
||||
namespace range {
|
||||
//
|
||||
// unstable_accumulate
|
||||
//
|
||||
template<typename Range, typename T, typename BinaryOperation>
|
||||
inline SPROUT_CONSTEXPR T
|
||||
unstable_accumulate(Range const& range, T init, BinaryOperation binary_op) {
|
||||
return sprout::unstable_accumulate(sprout::begin(range), sprout::end(range), init, binary_op);
|
||||
}
|
||||
|
||||
template<typename Range, typename T>
|
||||
inline SPROUT_CONSTEXPR T
|
||||
unstable_accumulate(Range const& range, T init) {
|
||||
return sprout::unstable_accumulate(sprout::begin(range), sprout::end(range), init);
|
||||
}
|
||||
} // namespace range
|
||||
} // namespace sprout
|
||||
|
||||
#endif // #ifndef SPROUT_RANGE_NUMERIC_UNSTABLE_ACCUMLATE_HPP
|
30
sprout/range/numeric/unstable_inner_product.hpp
Normal file
30
sprout/range/numeric/unstable_inner_product.hpp
Normal file
|
@ -0,0 +1,30 @@
|
|||
#ifndef SPROUT_RANGE_NUMERIC_UNSTABLE_INNER_PRODUCT_HPP
|
||||
#define SPROUT_RANGE_NUMERIC_UNSTABLE_INNER_PRODUCT_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/numeric/unstable_inner_product.hpp>
|
||||
|
||||
namespace sprout {
|
||||
namespace range {
|
||||
//
|
||||
// unstable_inner_product
|
||||
//
|
||||
template<typename Range1, typename Range2, typename T, typename BinaryOperation1, typename BinaryOperation2>
|
||||
inline SPROUT_CONSTEXPR T
|
||||
unstable_inner_product(
|
||||
Range1 const& range1, Range2 const& range2, T init,
|
||||
BinaryOperation1 binary_op1, BinaryOperation2 binary_op2
|
||||
)
|
||||
{
|
||||
return sprout::unstable_inner_product(sprout::begin(range1), sprout::end(range1), sprout::begin(range2), init, binary_op1, binary_op2);
|
||||
}
|
||||
|
||||
template<typename Range1, typename Range2, typename T>
|
||||
inline SPROUT_CONSTEXPR T
|
||||
unstable_inner_product(Range1 const& range1, Range2 const& range2, T init) {
|
||||
return sprout::unstable_inner_product(sprout::begin(range1), sprout::end(range1), sprout::begin(range2), init);
|
||||
}
|
||||
} // namespace range
|
||||
} // namespace sprout
|
||||
|
||||
#endif // #ifndef SPROUT_RANGE_NUMERIC_UNSTABLE_INNER_PRODUCT_HPP
|
Loading…
Reference in a new issue