8 auto ind_it(_eci.
index().cbegin()), ind_end(_eci.
index().cend());
9 auto eci_it(_eci.
value().cbegin());
10 for(; ind_it != ind_end; ++ind_it, ++eci_it)
11 result += (*eci_it) * _corr[*ind_it];
18 auto ind_it(_eci.
index().cbegin()), ind_end(_eci.
index().cend());
19 auto eci_it(_eci.
value().cbegin());
20 while(ind_it != ind_end) {
21 result += (*eci_it) * (*(_corr_begin + *ind_it));
50 std::vector<double> value;
51 std::vector<ECIContainer::size_type> index;
54 std::ifstream ecistream(filepath.string().c_str());
57 std::string stringdump;
60 for(
int i = 0; i < 7; i++) {
61 std::getline(ecistream, stringdump);
65 while(std::getline(ecistream, stringdump)) {
67 std::istringstream eciline_stream(stringdump);
68 double eci_value, eci_over_mult;
71 eciline_stream >> eci_value;
72 eciline_stream >> eci_over_mult;
73 eciline_stream >> eci_index;
76 value.push_back(eci_value);
77 index.push_back(eci_index);
79 return ECIContainer(value.begin(), value.end(), index.begin());
117 std::vector<double> value;
118 std::vector<ECIContainer::size_type> index;
121 for(
auto it = json[
"cluster_functions"].begin(); it != json[
"cluster_functions"].
end(); ++it) {
122 auto eci = it->find(
"eci");
123 if(
eci != it->end()) {
124 value.push_back(
eci->get<
double>());
128 return ECIContainer(value.begin(), value.end(), index.begin());
iterator end()
Returns iterator to end of JSON object or JSON array.
Clexulator::size_type size_type
ECIContainer read_eci(const fs::path &filepath)
Read eci.json file from specified path.
const std::vector< double > & value() const
const Access ECI values
BasisSet operator*(const SymOp &LHS, const BasisSet &RHS)
EigenIndex Index
For long integer indexing:
ECIContainer read_eci_out(const fs::path &filepath)
Read eci.out file from specified path (deprecated)
const std::vector< size_type > & index() const
const Access orbit indices of ECI values
Eigen::VectorXd Correlation
A sparse container of ECI values and their corresponding orbit indices.