1// { dg-do compile } 2 3// Copyright (C) 2007, 2009 Free Software Foundation, Inc. 4// 5// This file is part of the GNU ISO C++ Library. This library is free 6// software; you can redistribute it and/or modify it under the 7// terms of the GNU General Public License as published by the 8// Free Software Foundation; either version 3, or (at your option) 9// any later version. 10 11// This library is distributed in the hope that it will be useful, 12// but WITHOUT ANY WARRANTY; without even the implied warranty of 13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14// GNU General Public License for more details. 15 16// You should have received a copy of the GNU General Public License along 17// with this library; see the file COPYING3. If not see 18// <http://www.gnu.org/licenses/>. 19 20#include <numeric> 21 22namespace std { 23 template <class InputIterator, class T> 24 T accumulate(InputIterator first, InputIterator last, T init); 25 26 template <class InputIterator, class T, class BinaryOperation> 27 T accumulate(InputIterator first, InputIterator last, T init, 28 BinaryOperation binary_op); 29 30 template <class InputIterator1, class InputIterator2, class T> 31 T inner_product(InputIterator1 first1, InputIterator1 last1, 32 InputIterator2 first2, T init); 33 34 template <class InputIterator1, class InputIterator2, class T, 35 class BinaryOperation1, class BinaryOperation2> 36 T inner_product(InputIterator1 first1, InputIterator1 last1, 37 InputIterator2 first2, T init, 38 BinaryOperation1 binary_op1, 39 BinaryOperation2 binary_op2); 40 41 template <class InputIterator, class OutputIterator> 42 OutputIterator partial_sum(InputIterator first, 43 InputIterator last, 44 OutputIterator result); 45 46 template <class InputIterator, class OutputIterator, 47 class BinaryOperation> 48 OutputIterator partial_sum(InputIterator first, 49 InputIterator last, 50 OutputIterator result, 51 BinaryOperation binary_op); 52 53 template <class InputIterator, class OutputIterator> 54 OutputIterator adjacent_difference(InputIterator first, 55 InputIterator last, 56 OutputIterator result); 57 58 template <class InputIterator, class OutputIterator, 59 class BinaryOperation> 60 OutputIterator adjacent_difference(InputIterator first, 61 InputIterator last, 62 OutputIterator result, 63 BinaryOperation binary_op); 64} 65