// Code written by Andy Huchala based on a joint program written with Jonathan Lee.
// This program computes the list of dimensions for which there exist multiple non-isomorphic
// irreducible E7 representations; see OEIS A339251.
// This is a 128-bit implementation, i.e. it works for highest weight vectors each up to 2^16-1.
// The 64-bit implementation can only compute the first 1129 terms.
#include
#include
#include
#include
#include
// Requires this file in the same directory, available at https://github.com/sercantutar/infint/blob/master/InfInt.h
#include "InfInt.h"
class Pair {
public:
std::pair coordinates;
long double log;
Pair(std::pair coordinates, long double log) {
this->coordinates = coordinates;
this->log = log;
}
};
bool operator<(const Pair & p1, const Pair & p2) {
return p1.log > p2.log;
}
int main() {
const unsigned short int UPPER_BOUND_FACTOR = -1; // this assumes x0 and friends are unsigned short ints, nothing longer
long double* cachedLogs = (long double*) malloc(sizeof (long double) * UPPER_BOUND_FACTOR);
const unsigned short int i1shift16 = -1; // ie (1<<16) - 1 = 65535
// Lie superfactorial
InfInt denom = "19403468278119790545603479218421760000000000";
for (long i = 1; i < UPPER_BOUND_FACTOR; i++) {
cachedLogs[i] = std::log ( i);
}
std::pair newPair = {0LL,0LL};
std::priority_queue fringe;
std::set<:pair long>> seen;
// const long long numToCompute = 10;
const long long numToCompute = 20000;
long numComputed = 0;
int numSeen = 1;
fringe.push(Pair(std::pair {0LL,0LL}, 99.6740257330631));
long double lastLog = 0.0;
std::pair lastCoord;
long long lastCoord1;
long long lastCoord2;
long long curCoord1;
long long curCoord2;
unsigned short int x0; unsigned short int x1; unsigned short int x2; unsigned short int x3;
unsigned short int x4; unsigned short int x5; unsigned short int x6;
std::cout<< "Initialization complete\n";
std::ofstream myfile ("e7_rep.txt");
if (myfile.is_open()) {
while (numSeen < numToCompute) {
numComputed++;
Pair cur = fringe.top();
fringe.pop();
seen.erase(cur.coordinates);
if (std::abs(lastLog-cur.log) < 1e-12) {
curCoord1 = cur.coordinates.first;
curCoord2 = cur.coordinates.second;
x0 = (curCoord1 & i1shift16) + 1;
x1 = ((curCoord1 >> 16) & i1shift16) + 1;
x2 = ((curCoord1 >> 32) & i1shift16) + 1;
x3 = ((curCoord1 >> 48) & i1shift16) + 1;
x4 = (curCoord2 & i1shift16) + 1;
x5 = ((curCoord2 >> 16) & i1shift16) + 1;
x6 = ((curCoord2 >> 32) & i1shift16) + 1;
InfInt dim1 = "1";
dim1 *= (x0);
dim1 *= (x1);
dim1 *= (x2);
dim1 *= (x3);
dim1 *= (x4);
dim1 *= (x5);
dim1 *= (x6);
dim1 *= (x0 + x1);
dim1 *= (x1 + x2);
dim1 *= (x2 + x3);
dim1 *= (x2 + x6);
dim1 *= (x3 + x4);
dim1 *= (x4 + x5);
dim1 *= (x0 + x1 + x2);
dim1 *= (x1 + x2 + x3);
dim1 *= (x1 + x2 + x6);
dim1 *= (x2 + x3 + x4);
dim1 *= (x2 + x3 + x6);
dim1 *= (x3 + x4 + x5);
dim1 *= (x0 + x1 + x2 + x3);
dim1 *= (x0 + x1 + x2 + x6);
dim1 *= (x1 + x2 + x3 + x4);
dim1 *= (x1 + x2 + x3 + x6);
dim1 *= (x1 + 2*x2 + x3 + x6);
dim1 *= (x2 + x3 + x4 + x5);
dim1 *= (x2 + x3 + x4 + x6);
dim1 *= (x0 + x1 + x2 + x3 + x4);
dim1 *= (x0 + x1 + x2 + x3 + x6);
dim1 *= (x0 + x1 + 2*x2 + x3 + x6);
dim1 *= (x0 + 2*x1 + 2*x2 + x3 + x6);
dim1 *= (x1 + x2 + x3 + x4 + x5);
dim1 *= (x1 + x2 + x3 + x4 + x6);
dim1 *= (x1 + 2*x2 + x3 + x4 + x6);
dim1 *= (x1 + 2*x2 + 2*x3 + x4 + x6);
dim1 *= (x2 + x3 + x4 + x5 + x6);
dim1 *= (x0 + x1 + x2 + x3 + x4 + x5);
dim1 *= (x0 + x1 + x2 + x3 + x4 + x6);
dim1 *= (x0 + x1 + 2*x2 + x3 + x4 + x6);
dim1 *= (x0 + 2*x1 + 2*x2 + x3 + x4 + x6);
dim1 *= (x0 + x1 + 2*x2 + 2*x3 + x4 + x6);
dim1 *= (x0 + 2*x1 + 2*x2 + 2*x3 + x4 + x6);
dim1 *= (x0 + 2*x1 + 3*x2 + 2*x3 + x4 + x6);
dim1 *= (x0 + 2*x1 + 3*x2 + 2*x3 + x4 + 2*x6);
dim1 *= (x1 + x2 + x3 + x4 + x5 + x6);
dim1 *= (x1 + 2*x2 + x3 + x4 + x5 + x6);
dim1 *= (x1 + 2*x2 + 2*x3 + x4 + x5 + x6);
dim1 *= (x1 + 2*x2 + 2*x3 + 2*x4 + x5 + x6);
dim1 *= (x0 + x1 + x2 + x3 + x4 + x5 + x6);
dim1 *= (x0 + x1 + 2*x2 + x3 + x4 + x5 + x6);
dim1 *= (x0 + 2*x1 + 2*x2 + x3 + x4 + x5 + x6);
dim1 *= (x0 + x1 + 2*x2 + 2*x3 + x4 + x5 + x6);
dim1 *= (x0 + 2*x1 + 2*x2 + 2*x3 + x4 + x5 + x6);
dim1 *= (x0 + 2*x1 + 3*x2 + 2*x3 + x4 + x5 + x6);
dim1 *= (x0 + x1 + 2*x2 + 2*x3 + 2*x4 + x5 + x6);
dim1 *= (x0 + 2*x1 + 2*x2 + 2*x3 + 2*x4 + x5 + x6);
dim1 *= (x0 + 2*x1 + 3*x2 + 2*x3 + 2*x4 + x5 + x6);
dim1 *= (x0 + 2*x1 + 3*x2 + 3*x3 + 2*x4 + x5 + x6);
dim1 *= (x0 + 2*x1 + 3*x2 + 2*x3 + x4 + x5 + 2*x6);
dim1 *= (x0 + 2*x1 + 3*x2 + 2*x3 + 2*x4 + x5 + 2*x6);
dim1 *= (x0 + 2*x1 + 3*x2 + 3*x3 + 2*x4 + x5 + 2*x6);
dim1 *= (x0 + 2*x1 + 4*x2 + 3*x3 + 2*x4 + x5 + 2*x6);
dim1 *= (x0 + 3*x1 + 4*x2 + 3*x3 + 2*x4 + x5 + 2*x6);
dim1 *= (2*x0 + 3*x1 + 4*x2 + 3*x3 + 2*x4 + x5 + 2*x6);
dim1 /= denom;
lastCoord1 = lastCoord.first;
lastCoord2 = lastCoord.second;
x0 = (lastCoord1 & i1shift16) + 1;
x1 = ((lastCoord1 >> 16) & i1shift16) + 1;
x2 = ((lastCoord1 >> 32) & i1shift16) + 1;
x3 = ((lastCoord1 >> 48) & i1shift16) + 1;
x4 = (lastCoord2 & i1shift16) + 1;
x5 = ((lastCoord2 >> 16) & i1shift16) + 1;
x6 = ((lastCoord2 >> 32) & i1shift16) + 1;
InfInt dim2 = "1";
dim2 *= (x0);
dim2 *= (x1);
dim2 *= (x2);
dim2 *= (x3);
dim2 *= (x4);
dim2 *= (x5);
dim2 *= (x6);
dim2 *= (x0 + x1);
dim2 *= (x1 + x2);
dim2 *= (x2 + x3);
dim2 *= (x2 + x6);
dim2 *= (x3 + x4);
dim2 *= (x4 + x5);
dim2 *= (x0 + x1 + x2);
dim2 *= (x1 + x2 + x3);
dim2 *= (x1 + x2 + x6);
dim2 *= (x2 + x3 + x4);
dim2 *= (x2 + x3 + x6);
dim2 *= (x3 + x4 + x5);
dim2 *= (x0 + x1 + x2 + x3);
dim2 *= (x0 + x1 + x2 + x6);
dim2 *= (x1 + x2 + x3 + x4);
dim2 *= (x1 + x2 + x3 + x6);
dim2 *= (x1 + 2*x2 + x3 + x6);
dim2 *= (x2 + x3 + x4 + x5);
dim2 *= (x2 + x3 + x4 + x6);
dim2 *= (x0 + x1 + x2 + x3 + x4);
dim2 *= (x0 + x1 + x2 + x3 + x6);
dim2 *= (x0 + x1 + 2*x2 + x3 + x6);
dim2 *= (x0 + 2*x1 + 2*x2 + x3 + x6);
dim2 *= (x1 + x2 + x3 + x4 + x5);
dim2 *= (x1 + x2 + x3 + x4 + x6);
dim2 *= (x1 + 2*x2 + x3 + x4 + x6);
dim2 *= (x1 + 2*x2 + 2*x3 + x4 + x6);
dim2 *= (x2 + x3 + x4 + x5 + x6);
dim2 *= (x0 + x1 + x2 + x3 + x4 + x5);
dim2 *= (x0 + x1 + x2 + x3 + x4 + x6);
dim2 *= (x0 + x1 + 2*x2 + x3 + x4 + x6);
dim2 *= (x0 + 2*x1 + 2*x2 + x3 + x4 + x6);
dim2 *= (x0 + x1 + 2*x2 + 2*x3 + x4 + x6);
dim2 *= (x0 + 2*x1 + 2*x2 + 2*x3 + x4 + x6);
dim2 *= (x0 + 2*x1 + 3*x2 + 2*x3 + x4 + x6);
dim2 *= (x0 + 2*x1 + 3*x2 + 2*x3 + x4 + 2*x6);
dim2 *= (x1 + x2 + x3 + x4 + x5 + x6);
dim2 *= (x1 + 2*x2 + x3 + x4 + x5 + x6);
dim2 *= (x1 + 2*x2 + 2*x3 + x4 + x5 + x6);
dim2 *= (x1 + 2*x2 + 2*x3 + 2*x4 + x5 + x6);
dim2 *= (x0 + x1 + x2 + x3 + x4 + x5 + x6);
dim2 *= (x0 + x1 + 2*x2 + x3 + x4 + x5 + x6);
dim2 *= (x0 + 2*x1 + 2*x2 + x3 + x4 + x5 + x6);
dim2 *= (x0 + x1 + 2*x2 + 2*x3 + x4 + x5 + x6);
dim2 *= (x0 + 2*x1 + 2*x2 + 2*x3 + x4 + x5 + x6);
dim2 *= (x0 + 2*x1 + 3*x2 + 2*x3 + x4 + x5 + x6);
dim2 *= (x0 + x1 + 2*x2 + 2*x3 + 2*x4 + x5 + x6);
dim2 *= (x0 + 2*x1 + 2*x2 + 2*x3 + 2*x4 + x5 + x6);
dim2 *= (x0 + 2*x1 + 3*x2 + 2*x3 + 2*x4 + x5 + x6);
dim2 *= (x0 + 2*x1 + 3*x2 + 3*x3 + 2*x4 + x5 + x6);
dim2 *= (x0 + 2*x1 + 3*x2 + 2*x3 + x4 + x5 + 2*x6);
dim2 *= (x0 + 2*x1 + 3*x2 + 2*x3 + 2*x4 + x5 + 2*x6);
dim2 *= (x0 + 2*x1 + 3*x2 + 3*x3 + 2*x4 + x5 + 2*x6);
dim2 *= (x0 + 2*x1 + 4*x2 + 3*x3 + 2*x4 + x5 + 2*x6);
dim2 *= (x0 + 3*x1 + 4*x2 + 3*x3 + 2*x4 + x5 + 2*x6);
dim2 *= (2*x0 + 3*x1 + 4*x2 + 3*x3 + 2*x4 + x5 + 2*x6);
dim2 /= denom;
if (dim1 == dim2) {
std::cout<< std::to_string(numSeen) + " " +(dim1.toString())+ "\n";
numSeen++;
}
}
lastLog = cur.log;
lastCoord = cur.coordinates;
for (int i = 0; i < 4; i++) {
std::pair newCoord = {lastCoord.first + (1LL << (16 * i)),lastCoord.second};
if (seen.count(newCoord)) {
continue;
}
curCoord1 = newCoord.first;
curCoord2 = newCoord.second;
x0 = (curCoord1 & i1shift16) + 1;
x1 = ((curCoord1 >> 16) & i1shift16) + 1;
x2 = ((curCoord1 >> 32) & i1shift16) + 1;
x3 = ((curCoord1 >> 48) & i1shift16) + 1;
x4 = (curCoord2 & i1shift16) + 1;
x5 = ((curCoord2 >> 16) & i1shift16) + 1;
x6 = ((curCoord2 >> 32) & i1shift16) + 1;
// x7 = ((curCoord2 >> 48) & i1shift16) + 1;
long double newIrrep = 0;
newIrrep += cachedLogs[x0];
newIrrep += cachedLogs[x1];
newIrrep += cachedLogs[x2];
newIrrep += cachedLogs[x3];
newIrrep += cachedLogs[x4];
newIrrep += cachedLogs[x5];
newIrrep += cachedLogs[x6];
newIrrep += cachedLogs[x0 + x1];
newIrrep += cachedLogs[x1 + x2];
newIrrep += cachedLogs[x2 + x3];
newIrrep += cachedLogs[x2 + x6];
newIrrep += cachedLogs[x3 + x4];
newIrrep += cachedLogs[x4 + x5];
newIrrep += cachedLogs[x0 + x1 + x2];
newIrrep += cachedLogs[x1 + x2 + x3];
newIrrep += cachedLogs[x1 + x2 + x6];
newIrrep += cachedLogs[x2 + x3 + x4];
newIrrep += cachedLogs[x2 + x3 + x6];
newIrrep += cachedLogs[x3 + x4 + x5];
newIrrep += cachedLogs[x0 + x1 + x2 + x3];
newIrrep += cachedLogs[x0 + x1 + x2 + x6];
newIrrep += cachedLogs[x1 + x2 + x3 + x4];
newIrrep += cachedLogs[x1 + x2 + x3 + x6];
newIrrep += cachedLogs[x1 + 2*x2 + x3 + x6];
newIrrep += cachedLogs[x2 + x3 + x4 + x5];
newIrrep += cachedLogs[x2 + x3 + x4 + x6];
newIrrep += cachedLogs[x0 + x1 + x2 + x3 + x4];
newIrrep += cachedLogs[x0 + x1 + x2 + x3 + x6];
newIrrep += cachedLogs[x0 + x1 + 2*x2 + x3 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 2*x2 + x3 + x6];
newIrrep += cachedLogs[x1 + x2 + x3 + x4 + x5];
newIrrep += cachedLogs[x1 + x2 + x3 + x4 + x6];
newIrrep += cachedLogs[x1 + 2*x2 + x3 + x4 + x6];
newIrrep += cachedLogs[x1 + 2*x2 + 2*x3 + x4 + x6];
newIrrep += cachedLogs[x2 + x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + x1 + x2 + x3 + x4 + x5];
newIrrep += cachedLogs[x0 + x1 + x2 + x3 + x4 + x6];
newIrrep += cachedLogs[x0 + x1 + 2*x2 + x3 + x4 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 2*x2 + x3 + x4 + x6];
newIrrep += cachedLogs[x0 + x1 + 2*x2 + 2*x3 + x4 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 2*x2 + 2*x3 + x4 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 2*x3 + x4 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 2*x3 + x4 + 2*x6];
newIrrep += cachedLogs[x1 + x2 + x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x1 + 2*x2 + x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x1 + 2*x2 + 2*x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x1 + 2*x2 + 2*x3 + 2*x4 + x5 + x6];
newIrrep += cachedLogs[x0 + x1 + x2 + x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + x1 + 2*x2 + x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 2*x2 + x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + x1 + 2*x2 + 2*x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 2*x2 + 2*x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 2*x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + x1 + 2*x2 + 2*x3 + 2*x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 2*x2 + 2*x3 + 2*x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 2*x3 + 2*x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 3*x3 + 2*x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 2*x3 + x4 + x5 + 2*x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 2*x3 + 2*x4 + x5 + 2*x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 3*x3 + 2*x4 + x5 + 2*x6];
newIrrep += cachedLogs[x0 + 2*x1 + 4*x2 + 3*x3 + 2*x4 + x5 + 2*x6];
newIrrep += cachedLogs[x0 + 3*x1 + 4*x2 + 3*x3 + 2*x4 + x5 + 2*x6];
newIrrep += cachedLogs[2*x0 + 3*x1 + 4*x2 + 3*x3 + 2*x4 + x5 + 2*x6];
fringe.push(Pair(newCoord, newIrrep));
seen.insert(newCoord);
}
for (int i = 0; i < 3; i++) {
std::pair newCoord = {lastCoord.first,lastCoord.second + (1LL << (16 * i))};
if (seen.count(newCoord)) {
continue;
}
curCoord1 = newCoord.first;
curCoord2 = newCoord.second;
x0 = (curCoord1 & i1shift16) + 1;
x1 = ((curCoord1 >> 16) & i1shift16) + 1;
x2 = ((curCoord1 >> 32) & i1shift16) + 1;
x3 = ((curCoord1 >> 48) & i1shift16) + 1;
x4 = (curCoord2 & i1shift16) + 1;
x5 = ((curCoord2 >> 16) & i1shift16) + 1;
x6 = ((curCoord2 >> 32) & i1shift16) + 1;
// x7 = ((curCoord2 >> 48) & i1shift16) + 1;
long double newIrrep = 0;
newIrrep += cachedLogs[x0];
newIrrep += cachedLogs[x1];
newIrrep += cachedLogs[x2];
newIrrep += cachedLogs[x3];
newIrrep += cachedLogs[x4];
newIrrep += cachedLogs[x5];
newIrrep += cachedLogs[x6];
newIrrep += cachedLogs[x0 + x1];
newIrrep += cachedLogs[x1 + x2];
newIrrep += cachedLogs[x2 + x3];
newIrrep += cachedLogs[x2 + x6];
newIrrep += cachedLogs[x3 + x4];
newIrrep += cachedLogs[x4 + x5];
newIrrep += cachedLogs[x0 + x1 + x2];
newIrrep += cachedLogs[x1 + x2 + x3];
newIrrep += cachedLogs[x1 + x2 + x6];
newIrrep += cachedLogs[x2 + x3 + x4];
newIrrep += cachedLogs[x2 + x3 + x6];
newIrrep += cachedLogs[x3 + x4 + x5];
newIrrep += cachedLogs[x0 + x1 + x2 + x3];
newIrrep += cachedLogs[x0 + x1 + x2 + x6];
newIrrep += cachedLogs[x1 + x2 + x3 + x4];
newIrrep += cachedLogs[x1 + x2 + x3 + x6];
newIrrep += cachedLogs[x1 + 2*x2 + x3 + x6];
newIrrep += cachedLogs[x2 + x3 + x4 + x5];
newIrrep += cachedLogs[x2 + x3 + x4 + x6];
newIrrep += cachedLogs[x0 + x1 + x2 + x3 + x4];
newIrrep += cachedLogs[x0 + x1 + x2 + x3 + x6];
newIrrep += cachedLogs[x0 + x1 + 2*x2 + x3 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 2*x2 + x3 + x6];
newIrrep += cachedLogs[x1 + x2 + x3 + x4 + x5];
newIrrep += cachedLogs[x1 + x2 + x3 + x4 + x6];
newIrrep += cachedLogs[x1 + 2*x2 + x3 + x4 + x6];
newIrrep += cachedLogs[x1 + 2*x2 + 2*x3 + x4 + x6];
newIrrep += cachedLogs[x2 + x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + x1 + x2 + x3 + x4 + x5];
newIrrep += cachedLogs[x0 + x1 + x2 + x3 + x4 + x6];
newIrrep += cachedLogs[x0 + x1 + 2*x2 + x3 + x4 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 2*x2 + x3 + x4 + x6];
newIrrep += cachedLogs[x0 + x1 + 2*x2 + 2*x3 + x4 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 2*x2 + 2*x3 + x4 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 2*x3 + x4 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 2*x3 + x4 + 2*x6];
newIrrep += cachedLogs[x1 + x2 + x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x1 + 2*x2 + x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x1 + 2*x2 + 2*x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x1 + 2*x2 + 2*x3 + 2*x4 + x5 + x6];
newIrrep += cachedLogs[x0 + x1 + x2 + x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + x1 + 2*x2 + x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 2*x2 + x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + x1 + 2*x2 + 2*x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 2*x2 + 2*x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 2*x3 + x4 + x5 + x6];
newIrrep += cachedLogs[x0 + x1 + 2*x2 + 2*x3 + 2*x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 2*x2 + 2*x3 + 2*x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 2*x3 + 2*x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 3*x3 + 2*x4 + x5 + x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 2*x3 + x4 + x5 + 2*x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 2*x3 + 2*x4 + x5 + 2*x6];
newIrrep += cachedLogs[x0 + 2*x1 + 3*x2 + 3*x3 + 2*x4 + x5 + 2*x6];
newIrrep += cachedLogs[x0 + 2*x1 + 4*x2 + 3*x3 + 2*x4 + x5 + 2*x6];
newIrrep += cachedLogs[x0 + 3*x1 + 4*x2 + 3*x3 + 2*x4 + x5 + 2*x6];
newIrrep += cachedLogs[2*x0 + 3*x1 + 4*x2 + 3*x3 + 2*x4 + x5 + 2*x6];
fringe.push(Pair(newCoord, newIrrep));
seen.insert(newCoord);
}
}
myfile.close();
}
return 0;
}