Permalink
Browse files

Bug fix in parameter passing in the python bindings

  • Loading branch information...
1 parent cc0c061 commit 72140b66ea58451f16cf6c12246d9347d49cdaa0 @mariusmuja committed Feb 16, 2012
Showing with 16 additions and 1 deletion.
  1. +10 −1 src/cpp/flann/util/random.h
  2. +6 −0 src/python/pyflann/bindings/flann_ctypes.py
@@ -74,6 +74,14 @@ inline int rand_int(int high = RAND_MAX, int low = 0)
return low + (int) ( double(high-low) * (std::rand() / (RAND_MAX + 1.0)));
}
+
+class RandomGenerator
+{
+public:
+ ptrdiff_t operator() (ptrdiff_t i) { return rand_int(i); }
+};
+
+
/**
* Random number generator that returns a distinct number from
* the [0,n) interval each time.
@@ -101,13 +109,14 @@ class UniqueRandom
*/
void init(int n)
{
+ static RandomGenerator generator;
// create and initialize an array of size n
vals_.resize(n);
size_ = n;
for (int i = 0; i < size_; ++i) vals_[i] = i;
// shuffle the elements in the array
- std::random_shuffle(vals_.begin(), vals_.end());
+ std::random_shuffle(vals_.begin(), vals_.end(), generator);
counter_ = 0;
}
@@ -95,6 +95,9 @@ class FLANNParameters(CustomStructure):
('build_weight', c_float),
('memory_weight', c_float),
('sample_fraction', c_float),
+ ('table_number_', c_uint),
+ ('key_size_', c_uint),
+ ('multi_probe_level_', c_uint),
('log_level', c_int),
('random_seed', c_long),
]
@@ -112,6 +115,9 @@ class FLANNParameters(CustomStructure):
'build_weight' : 0.01,
'memory_weight' : 0.0,
'sample_fraction' : 0.1,
+ 'table_number_': 12,
+ 'key_size_': 20,
+ 'multi_probe_level_': 2,
'log_level' : "warning",
'random_seed' : -1
}

0 comments on commit 72140b6

Please sign in to comment.