Device-safe TUM ice-score pieces: hop-bound primitive six-rings and claim-free HC/DDC affiliation. More...
Go to the source code of this file.
Namespaces | |
| namespace | tum |
| namespace | tum::device |
Functions | |
| bool | tum::device::bonded (const int *deg, const int *cols, int nAtoms, int kMax, int a, int b) |
| bool | tum::device::inSix (const int *r, int atom) |
| bool | tum::device::shareAtoms (const int *a, const int *b) |
| int | tum::device::commonCount (const int *a, const int *b) |
| bool | tum::device::commonInThree (const int *a, const int *b, const int *c) |
| bool | tum::device::shareNeigh (const int *deg, const int *cols, int nAtoms, int kMax, int a, int b) |
| int | tum::device::hopsAtMost (const int *deg, const int *cols, int nAtoms, int kMax, int a, int b, int cap) |
| Graph distance from a to b when it is at most cap, else -1. | |
| bool | tum::device::hopBoundPrimitiveSix (const int *r, const int *deg, const int *cols, int nAtoms, int kMax) |
| Hop-bounded Franzblau SP test on a six-cycle of the bond graph. | |
| bool | tum::device::basalNeighbours (const int *deg, const int *cols, int nAtoms, int kMax, int n1, int n2, int atomOne, int atomTwo) |
| bool | tum::device::notNeighboursOfRing (const int *deg, const int *cols, int nAtoms, int kMax, const int *trip, const int *ring) |
| bool | tum::device::basalConditions (const int *deg, const int *cols, int nAtoms, int kMax, const int *b1, const int *b2) |
| int | tum::device::firstRingThrough (const int *A, int nA, const int *B, int nB, const int *C, int nC, int skipA, int skipB) |
| int | tum::device::ringsThrough (const int *A, int nA, const int *B, int nB, const int *C, int nC, int skipA, int skipB, int *out, int cap) |
| int | tum::device::fetchAdd (int *p) |
| void | tum::device::enumSixFrom (int i, const int *deg, const int *cols, int nAtoms, int kMax, int maxRings, int *nRings, int *ringAtoms, int *dropped) |
| Enumerate hop-bound primitive six-rings whose lowest vertex is i. | |
| void | tum::device::invertOneRing (int r, const int *nRings, const int *ringAtoms, int nAtoms, int maxPer, int *throughCount, int *through) |
| void | tum::device::sortThroughRow (int *row, int n) |
| void | tum::device::emitBasalFrom (int i, const int *nRings, const int *ringAtoms, const int *deg, const int *cols, const int *throughCount, const int *through, int nAtoms, int kMax, int maxPer, int maxPairs, int *nPairs, int *pairs) |
| void | tum::device::applyHcPair (int p, const int *nPairs, const int *pairs, const int *ringAtoms, const int *throughCount, const int *through, int nAtoms, int maxPer, int *hc) |
| void | tum::device::ddcFrom (int i, const int *nRings, const int *ringAtoms, const int *throughCount, const int *through, const int *hc, int nAtoms, int maxPer, int *ddc) |
| void | tum::device::atomIceFrom (int r, const int *nRings, const int *ringAtoms, const int *hc, const int *ddc, int nAtoms, int *atomHc, int *atomDdc) |
Device-safe TUM ice-score pieces: hop-bound primitive six-rings and claim-free HC/DDC affiliation.
No STL containers, no function-local statics. Host OpenMP and OpenMP target regions call the same functions. CHILL and q_lm are not here.
A six-cycle is primitive when the hop-bounded Franzblau test holds: every pair of non-adjacent members is at least as far through the graph as around the ring. On a 4-regular bond graph that is no chords (ring hops 2) and no common neighbour of opposite vertices (ring hops 3).
Definition in file tum_device.hpp.