tensor-0.1.0
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
tensor_norm2_d.cc
1 /*
2  Copyright (c) 2010 Juan Jose Garcia Ripoll
3 
4  Tensor is free software; you can redistribute it and/or modify it
5  under the terms of the GNU Library General Public License as published
6  by the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU Library General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License along
15  with this program; if not, write to the Free Software Foundation, Inc.,
16  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 */
18 
19 #define TENSOR_LOAD_IMPL
20 #include <tensor/tensor.h>
21 
22 namespace tensor {
23 
24  double norm2(const RTensor &r)
25  {
26  return ::sqrt(scprod(r, r));
27  }
28 
29  double scprod(const RTensor &a, const RTensor &b)
30  {
31  double output = 0;
32  for (RTensor::const_iterator ia = a.begin(), ib = b.begin();
33  ia != a.end(); ia++, ib++)
34  output += (*ia) * (*ib);
35  return output;
36  }
37 
38 } // namespace tensor