# Bayesian-Optimization / utils / elementwise_ublas.hpp

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65``` ```/** \file elementwise_ublas.hpp \brief Elementwise operations */ /* ------------------------------------------------------------------------- This file is part of BayesOpt, an efficient C++ library for Bayesian optimization. Copyright (C) 2011-2013 Ruben Martinez-Cantin BayesOpt is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. BayesOpt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with BayesOpt. If not, see . ------------------------------------------------------------------------ */ #ifndef _ELEMENTWISE_UBLAS_HPP_ #define _ELEMENTWISE_UBLAS_HPP_ // BOOST Libraries #include #include namespace bayesopt { namespace utils { /** * Computes the elementwise product of two vectors or matrices. * c_i = a_i * b_i */ template v1 ublas_elementwise_prod(const v1& a, const v2& b) { typedef typename v1::value_type D; v1 c(a.size()); std::transform(a.begin(),a.end(),b.begin(),c.begin(),std::multiplies()); return c; } /** * Computes the elementwise division of two vectors or matrices. * c_i = a_i / b_i */ template v1 ublas_elementwise_div(const v1& a, const v2& b) { typedef typename v1::value_type D; v1 c(a.size()); std::transform(a.begin(),a.end(),b.begin(),c.begin(),std::divides()); return c; } } //namespace utils } //namespace bayesopt #endif ```