|
Dist m4ri 0.0.1.alpha
Computing distance of a classical or quantum CSS code
|
Multithreaded distance calculation and bracketing (dist_m4ri) More...
#include <inttypes.h>#include <strings.h>#include <stdlib.h>#include <stdio.h>#include <stdbool.h>#include <stdatomic.h>#include <time.h>#include <unistd.h>#include <pthread.h>#include <math.h>#include <limits.h>#include <m4ri/m4ri.h>#include "mmio.h"#include "uthash.h"#include "util_hash.h"#include "util_m4ri.h"#include "util_io.h"#include "dist_m4ri.h"#include "dist_cc.h"
Go to the source code of this file.
Classes | |
| struct | distfork_ctx_t |
| struct | worker_arg_t |
Macros | |
| #define | _GNU_SOURCE |
Functions | |
| int | main (int argc, char **argv) |
Multithreaded distance calculation and bracketing (dist_m4ri)
The program implements multithreaded distance calculation:
Output to stdout: "dmin dmax rw_steps" where dmin-1 is the maximum cluster size analyzed without success by CC, dmin=dmax if CC actually found a min-weight codeword of this size, dmax is the smallest-weight codeword found by RW, and rw_steps is the number of completed RW steps (0 if CC found a min-weight codeword or if RW did not run in method=2). NOTE: This 3-number output format is incompatible with legacy single-threaded dist_m4ri_old.
All debugging messages and confinement profile are sent to stderr.
author: Leonid Pryadko leoni.nosp@m.d.pr.nosp@m.yadko.nosp@m.@ucr.nosp@m..edu
Definition in file dist_m4ri.c.
| #define _GNU_SOURCE |
Definition at line 26 of file dist_m4ri.c.
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
Definition at line 894 of file dist_m4ri.c.
References CW_VEC_T::arr, distfork_ctx_t::cc_active_workers, distfork_ctx_t::cc_col_next, distfork_ctx_t::cc_found_weight, distfork_ctx_t::cc_round_active, distfork_ctx_t::cc_target_workers, distfork_ctx_t::cc_weight, CW_VEC_T::cnt, params_t::codewords, csr_free(), csr_max_row_wght(), csr_transpose(), worker_arg_t::ctx, distfork_ctx_t::cw_mutex, params_t::debug, distfork_ctx_t::dexp, params_t::dexp, distfork_ctx_t::dmax, params_t::dmax, distfork_ctx_t::dmin, params_t::dmin, ERROR, params_t::finC, CW_VEC_T::hh, distfork_ctx_t::max_col_W, MAX_W, params_t::method, distfork_ctx_t::mHT_cc, worker_arg_t::min_swei, params_t::min_w, UT_hash_handle::next, distfork_ctx_t::num_threads, nzlist_read(), nzlist_write(), params_t::outC, distfork_ctx_t::p, p, prm, csr_t::rows, distfork_ctx_t::rw_steps_completed, distfork_ctx_t::rw_steps_started, params_t::smax, params_t::spaH, distfork_ctx_t::start_time, params_t::steps, distfork_ctx_t::stop_flag, distfork_ctx_t::threads, params_t::threads, worker_arg_t::tid, distfork_ctx_t::timeout, params_t::timeout, distfork_ctx_t::total_rw_steps, var_init(), var_kill(), CW_VEC_T::weight, params_t::wmax, and params_t::wmin.