22 #include "jubatus/util/math/random.h"
23 #include "../common/assert.hpp"
24 #include "../storage/bit_vector.hpp"
28 namespace recommender {
33 using jubatus::util::data::unordered_map;
36 jubatus::util::math::random::mtrand rnd(seed);
38 for (uint64_t i = 0; i < dim; ++i) {
39 v[i] = rnd.next_gaussian();
47 for (
size_t i = 0; i < vec.size(); ++i) {
56 const unordered_map<
string, vector<float> >& matrix,
61 for (
size_t i = 0; i < vec.size(); ++i) {
62 const string& column = vec[i].first;
63 float val = vec[i].second;
64 unordered_map<string, vector<float> >::const_iterator it =
66 if (it == matrix.end()) {
69 const vector<float>&
v = it->second;
72 for (
size_t j = 0; j < v.size(); ++j) {
#define JUBATUS_ASSERT_EQ(a, b, messages)
void resize_and_clear(uint64_t bit_num)
void set_bit_vector(const std::vector< float > &vec, bit_vector &bit_vec)
bit_vector_base< uint64_t > bit_vector
void prod_invert_and_vector(const unordered_map< string, vector< float > > &matrix, const common::sfv_t &vec, size_t dim, vector< float > &ret)
std::vector< std::pair< std::string, float > > sfv_t
void generate_random_vector(size_t dim, uint32_t seed, vector< float > &ret)