19#include "arccore/alina/AlinaUtils.h"
20#include "arccore/alina/Adapters.h"
21#include "arccore/alina/IO.h"
23#include "arccore/common/internal/ProgramOptions.h"
28int main(
int argc,
char* argv[])
30 namespace po = Arcane::ProgramOptions;
31 namespace io = Arcane::Alina::IO;
33 using Arcane::Alina::precondition;
37 desc.add_options()(
"help,h",
"Show this help.")(
"dense,d", po::bool_switch()->default_value(
false),
38 "Matrix is dense.")(
"input,i", po::value<std::string>()->required(),
39 "Input binary file.")(
"output,o", po::value<std::string>()->required(),
40 "Output matrix in the MatrixMarket format.");
43 po::store(po::parse_command_line(argc, argv, desc), vm);
45 if (vm.count(
"help")) {
46 std::cout << desc << std::endl;
52 if (vm[
"dense"].as<bool>()) {
54 std::vector<double> v;
56 io::read_dense(vm[
"input"].as<std::string>(), n, m, v);
57 io::mm_write(vm[
"output"].as<std::string>(), v.data(), n, m);
60 <<
"Wrote " << n <<
" by " << m <<
" dense matrix"
65 std::vector<ptrdiff_t> ptr, col;
66 std::vector<double> val;
68 io::read_crs(vm[
"input"].as<std::string>(), n, ptr, col, val);
69 io::mm_write(vm[
"output"].as<std::string>(), std::tie(n, ptr, col, val));
72 <<
"Wrote " << n <<
" by " << n <<
" sparse matrix, "
73 << ptr.back() <<
" nonzeros" << std::endl;
Describes a set of command-line options.
Stores parsed option values.