Files
toddcox-visualize/tc/src/groups.cpp
David Allemang 47de177626 Improve tc::Group, tc::Cosets API.
This is a combination of many commits:

---------------------------------------------------------------------------

final. add public/private for core classes.

wip - big cleanup cosets.

index<>, cosets<>, and group<> all defined

transparent <void> overrides that operate directly on indices, not names

inheritance hierarchy means one can drop or change generator names

still missing path support.

wip - named cosets

fix lang test

wip - named generators

Move Group docstring away from specialization.

Remove tc::Gen; use Group<void>

remove tc::Rel

add thousands separators for benchmark limits

add generators list to tc::group

remove pair_map
2022-11-19 12:32:37 -05:00

26 lines
636 B
C++

#include <tc/groups.hpp>
#include <fmt/args.h>
#include <fmt/core.h>
#include <numeric>
namespace tc {
Group<> schlafli(const std::vector<unsigned int> &mults) {
Group<> res(mults.size() + 1);
for (size_t i = 0; i < mults.size(); ++i) {
res.set(i, i + 1, mults[i]);
}
return res;
}
Group<> vcoxeter(const std::string &symbol, const std::vector<unsigned int> &values) {
fmt::dynamic_format_arg_store<fmt::format_context> ds;
for (const auto &value: values) {
ds.push_back(value);
}
return coxeter(fmt::vformat(symbol, ds));
}
}