Skip to content

Instantly share code, notes, and snippets.

View ddemidov's full-sized avatar

Denis Demidov ddemidov

View GitHub Profile
#include <vector>
#include <iostream>
#include <amgcl/backend/builtin.hpp>
#include <amgcl/value_type/static_matrix.hpp>
#include <amgcl/adapter/crs_tuple.hpp>
#include <amgcl/adapter/block_matrix.hpp>
#include <amgcl/mpi/distributed_matrix.hpp>
#include <amgcl/mpi/make_solver.hpp>
@ddemidov
ddemidov / main.cpp
Last active February 9, 2021 07:34 — forked from RiccardoRossi/main.cpp
#include <vector>
#include <array>
#include <iostream>
#include <chrono>
#include <cassert>
#include <cmath>
#include <omp.h>
template<
class TContainerType,
#include <iostream>
#include <vector>
#include <atomic>
#include <chrono>
#include <cmath>
#include <omp.h>
double now() {
return omp_get_wtime();
}
VEX_FUNCTION(float, l2_distance, (size_t, idx)(uint32_t, num_dim)(float*, query)(float*, candidates),
float d = 0;
for (uint i = 0; i < num_dim; ++i) {
d += pow(query[i] - candidates[idx * num_dim + i], 2);
}
return d;
);
Knn::ValueVec Knn::search_h(const ValueVec& query, size_t query_offset) const {
prof_.tic_cl("distance");
@ddemidov
ddemidov / hello.cpp
Last active August 29, 2015 13:55 — forked from sebsjoberg/hello.cpp
#include <vexcl/vexcl.hpp>
vex::vector<cl_float2>
hilbert(vex::vector<float> &in, std::size_t rows, std::size_t cols) {
// No need to pass context in:
const auto &ctx = in.queue_list();
// Use function instead of vector. Should save global memory IO.
VEX_FUNCTION(h, float(size_t/*prm1 = idx*/, size_t/*prm2 = rows*/),
VEX_STRINGIZE_SOURCE(
@ddemidov
ddemidov / gist:3992260
Created November 1, 2012 07:05 — forked from headmyshoulder/gist:3992253
sfinae enabler
/*
* third.cpp
* Date: 2012-11-01
* Author: Karsten Ahnert (karsten.ahnert@gmx.de)
*/
#include <iostream>
#include <boost/utility/enable_if.hpp>
#define tab "\t"