bool secondaryStructures::NoChainBreaksBetween(std::size_t Resi1, std::size_t Resi2) const{
bool flag{true};
- std::size_t i{};
- if ( Resi1 < Resi2){
- i = Resi1;
- }
- else if ( Resi1 > Resi2) {
- i = Resi2;
- }
- else{
- return true;
+ std::size_t i{Resi1}, j[Resi2]; // From i to j
+ if ( Resi2 < Resi1){
+ std::swap(i, j);
}
- for (; i != Resi2; ++i){
- flag = !(SecondaryStructuresStatusMap[i].isBreakPartnerWith(&SecondaryStructuresStatusMap[i + 1]) || SecondaryStructuresStatusMap[i + 1].isBreakPartnerWith(&SecondaryStructuresStatusMap[i]));
+ for (; i != j; ++i){
+ flag = !(SecondaryStructuresStatusMap[i].isBreakPartnerWith(&SecondaryStructuresStatusMap[i + 1]) && SecondaryStructuresStatusMap[i + 1].isBreakPartnerWith(&SecondaryStructuresStatusMap[i]));
}
if (!flag){
void secondaryStructures::analyzeTurnsAndHelicesPatterns(){
for(const turnsTypes &i : { turnsTypes::Turn_4, turnsTypes::Turn_3, turnsTypes::Turn_5 }){
- std::cout << "Testing Helix_" << static_cast<std::size_t>(i) << std::endl;
+ std::cout << "Testing Helix_" << static_cast<std::size_t>(i) + 3 << std::endl;
std::size_t stride {static_cast<std::size_t>(i) + 3};
for(std::size_t j {0}; j + static_cast<std::size_t>(i) < SecondaryStructuresStatusMap.size(); ++j){
std::cout << "Testing " << j << " and " << j + stride << std::endl;