| 68 | }; |
| 69 | |
| 70 | void |
| 71 | Decoder_LDPC ::get_description(cli::Argument_map_info& args) const |
| 72 | { |
| 73 | Decoder::get_description(args); |
| 74 | |
| 75 | auto p = this->get_prefix(); |
| 76 | const std::string class_name = "factory::Decoder_LDPC::"; |
| 77 | |
| 78 | tools::add_arg(args, p, class_name + "p+h-path", cli::File(cli::openmode::read), cli::arg_rank::REQ); |
| 79 | |
| 80 | args.add_link({ p + "-h-path" }, { p + "-cw-size", "N" }); // N_cw is H width |
| 81 | args.add_link({ p + "-h-path" }, { p + "-info-bits", "K" }); // if there is no K, then H is considered regular, |
| 82 | // so K is the N - H's height |
| 83 | |
| 84 | cli::add_options(args.at({ p + "-type", "D" }), |
| 85 | 0, |
| 86 | "BP_FLOODING", |
| 87 | "BP_HORIZONTAL_LAYERED", |
| 88 | "BP_VERTICAL_LAYERED", |
| 89 | "BP_PEELING", |
| 90 | "BIT_FLIPPING"); |
| 91 | #ifdef __cpp_aligned_new |
| 92 | cli::add_options(args.at({ p + "-type", "D" }), 0, "BP_HORIZONTAL_LAYERED_LEGACY"); |
| 93 | #endif |
| 94 | cli::add_options(args.at({ p + "-implem" }), |
| 95 | 0, |
| 96 | "SPA", |
| 97 | "LSPA", |
| 98 | "MS", |
| 99 | "OMS", |
| 100 | "NMS", |
| 101 | "AMS", |
| 102 | "GALA", |
| 103 | "GALB", |
| 104 | "GALE", |
| 105 | "WBF", |
| 106 | "MWBF", |
| 107 | "PPBF"); |
| 108 | |
| 109 | tools::add_arg(args, p, class_name + "p+ite,i", cli::Integer(cli::Positive())); |
| 110 | |
| 111 | tools::add_arg(args, p, class_name + "p+off", cli::Real()); |
| 112 | |
| 113 | tools::add_arg(args, p, class_name + "p+mwbf-factor", cli::Real()); |
| 114 | |
| 115 | tools::add_arg(args, p, class_name + "p+norm", cli::Real(cli::Positive())); |
| 116 | |
| 117 | tools::add_arg(args, p, class_name + "p+no-synd", cli::None()); |
| 118 | |
| 119 | tools::add_arg(args, p, class_name + "p+synd-depth", cli::Integer(cli::Positive(), cli::Non_zero())); |
| 120 | |
| 121 | tools::add_arg(args, p, class_name + "p+simd", cli::Text(cli::Including_set("INTER", "INTRA"))); |
| 122 | |
| 123 | tools::add_arg(args, p, class_name + "p+min", cli::Text(cli::Including_set("MIN", "MINL", "MINS"))); |
| 124 | |
| 125 | tools::add_arg(args, p, class_name + "p+h-reorder", cli::Text(cli::Including_set("NONE", "ASC", "DSC"))); |
| 126 | |
| 127 | tools::add_arg(args, p, class_name + "p+ppbf-proba", cli::List<float, Real_splitter>(cli::Real(), cli::Length(1))); |
nothing calls this directly
no test coverage detected