namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:inner_product

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


kennen:lib:inner_product [2019-11-20 14:21] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== inner_product() ======
 +''#include'' [[..:include:numeric]]
 +
 +<code cpp>
 +T inner_product (In first, In last, In2 first2, T startwert) 
 +T inner_product (In first, In last, In2 first2, T startwert, 
 +                 Binary op1, Binary2 op2) 
 +</code>
 + Berechnet das innere (Skalar-) Produkt 
 + der Folgen [first, last) und [first2,...) zuzüglich einem ''startwert''.
 +
 +<code cpp>
 + startwert + x1*y2 + x2*y2 + x3*y3 ...
 +</code>
 + bzw. ein "verallgemeinertes" Skalarprodukt  
 +
 +<code cpp>
 + startwert op1 (x1 op2 y1) op1 (x2 op2 y2) op1 (x3 op2 y3) ...
 +</code>
 +Die Verarbeitung der Werte erfolgt nach dem Rechenschema
 +
 +<code cpp>
 +           x1   x2   x3   x4  ...  xn
 +           | y1 | y2 | y3 | y4  ...| yn
 +           \ /  \ /  \ /  \ /      \ /
 +            *    *    *    *        * 
 +            |    |    |    |        |
 +            v    v    v    v        v 
 +startwert-> + -> + -> + -> + -> ... + -> Ergebnis   
 +</code>
 +==== Parameter ====
 +| ''first''  | Anfang eines Bereiches |
 +| ''last''   | Ende eines Bereiches |
 +| ''first2'' | Anfang des zweiten Bereiches |
 +| ''op1''    | äußere Operation ("verallgemeinerte" Summe)|
 +| ''op2''    | innere Operation ("verallgemeinertes" Produkt)|
 +| ''startwert'' | Anfangswert der Berechnung |
 +==== Ergebnis  ====
 +Rückgabewert: akkumulierter ''startwert''.
 +
 +==== Siehe auch ====
 +[[accumulate]],
 +[[transform_reduce]],
 +[[..:stl#Funktionsadapter]].
 +
 +
 +==== Beispiel ====
 +<code cpp inner_product.cpp>
 +#include <numeric>
 +#include <iostream>
 +
 +int main()
 +{
 +  double a[] = { 2, 4, 6, 8 };
 +  double b[] = { 2, 3, 5, 7 };
 +
 +  std::cout << "Skalarprodukt      = " 
 +               // 4+12+30+56 = 102 
 +            << std::inner_product(a, a+4, b, 0.0) << '\n';
 +
 +  std::cout << "Produkt der Summen = " 
 +               // 4*7*11*15 = 462
 +            << std::inner_product(a, a+4, b, 0.0,
 +                 std::multiplies{}, std::plus{}) << '\n';
 +}
 +</code>
  
kennen/lib/inner_product.txt · Zuletzt geändert: 2019-11-20 14:21 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki