inicio GeNeura cursos

Algoritmos numéricos


Aqui se ven algunos de los algoritmos mas utiles para procesamiento de secuencias de números. Actualmente existen muchos más.

Lista de algoritmos de conjuntos


accumulate()

Función

template <class InputIterator, class T>
T accumulate(InputIterator first, InputIterator last, T init) 
{
  for ( ; first != last; ++first)
    init = init + *first;
  return init;
}

template <class InputIterator, class T, class BinaryOperation>
T accumulate(InputIterator first, InputIterator last, T init,
             BinaryOperation binary_op) 
{
  for ( ; first != last; ++first)
    init = binary_op(init, *first);
  return init;
}

Descripción

accumulate() incrementa el valor de init utilizando el operator+(). La version que recibe una función como argumento aplica en cada iteracion una operacion binaria a init y un elemento de la secuencia y lo asigna a init.


inner_product()

Función

template <class InputIterator1, class InputIterator2, class T>
T inner_product(InputIterator1 first1, InputIterator1 last1,
                InputIterator2 first2, T init)
 {
  for ( ; first1 != last1; ++first1, ++first2)
    init = init + (*first1 * *first2);
  return init;
}

template <class InputIterator1, class InputIterator2, class T,
          class BinaryOperation1, class BinaryOperation2>
T inner_product(InputIterator1 first1, InputIterator1 last1,
                InputIterator2 first2, T init, BinaryOperation1 binary_op1,
                BinaryOperation2 binary_op2) 
{
  for ( ; first1 != last1; ++first1, ++first2)
    init = binary_op1(init, binary_op2(*first1, *first2));
  return init;
}

Descripción

inner_product() calcula el pruducto vectorial de dos secuencias, es decir las multiplica componente a componente y va acumulando los resultados.


partial_sum()

Función

template <class InputIterator, class OutputIterator>
OutputIterator partial_sum(InputIterator first, InputIterator last,
                           OutputIterator result)

template <class InputIterator, class OutputIterator, class BinaryOperation>
OutputIterator partial_sum(InputIterator first, InputIterator last,
                           OutputIterator result, BinaryOperation binary_op)

Descripción

partial_sum() suma a cada elemento de una secuencia la suma de los valores anteriores. Podemos cambia la operacion de suma utilizando la version que permite pasarle un objeto función.


adjacent_difference()

Función

&
template <class InputIterator, class OutputIterator>
OutputIterator adjacent_difference(InputIterator first, InputIterator last, 
                                   OutputIterator result)
template <class InputIterator, class OutputIterator, class BinaryOperation>
OutputIterator adjacent_difference(InputIterator first, InputIterator last,
                                   OutputIterator result,
                                   BinaryOperation binary_op)

Descripción

adjacent_difference() crea una secuencia de salida que consiste en la diferencia existente entre cada par de elementos adjacentes. Podemos utilizar otra funcion diferente a las resta mediante la versió nque permite utilizar un objeto función.