OOPS
LocalIncrement.cc
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2019-2020 UCAR.
3  *
4  * This software is licensed under the terms of the Apache Licence Version 2.0
5  * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6  */
7 
9 
10 #include "eckit/exception/Exceptions.h"
11 
12 namespace oops {
13 
15  ASSERT(vars_ == rhs.vars_ && varlens_ == rhs.varlens_);
16  ASSERT(vals_.size() == rhs.vals_.size());
17  for (unsigned i=0; i < vals_.size(); ++i) {
18  vals_[i] += rhs.vals_[i];
19  }
20  return *this;
21  }
22 
24  for (unsigned i=0; i < vals_.size(); ++i) {
25  vals_[i] *= zz;
26  }
27  return *this;
28  }
29 
30  LocalIncrement & LocalIncrement::operator *=(const std::vector<double> & rhs) {
31  ASSERT(vals_.size() == rhs.size());
32  for (unsigned i=0; i < vals_.size(); ++i) {
33  vals_[i] *= rhs[i];
34  }
35  return *this;
36  }
37 
38  void LocalIncrement::setVals(std::vector<double> & valsIn) {
39  ASSERT(vals_.size() == valsIn.size());
40  vals_ = valsIn;
41  }
42 
43 } // namespace oops
oops
The namespace for the main oops code.
Definition: ErrorCovarianceL95.cc:22
oops::LocalIncrement::setVals
void setVals(std::vector< double > &)
Definition: LocalIncrement.cc:38
LocalIncrement.h
oops::LocalIncrement::operator+=
LocalIncrement & operator+=(const LocalIncrement &)
Linear algebra operators.
Definition: LocalIncrement.cc:14
oops::LocalIncrement::vars_
const oops::Variables vars_
Definition: LocalIncrement.h:40
oops::LocalIncrement
Definition: LocalIncrement.h:19
oops::LocalIncrement::vals_
std::vector< double > vals_
Definition: LocalIncrement.h:41
oops::LocalIncrement::operator*=
LocalIncrement & operator*=(const double &)
Definition: LocalIncrement.cc:23
oops::LocalIncrement::varlens_
const std::vector< int > varlens_
Definition: LocalIncrement.h:42