void testAt(IntVector& test) { cout << "First position" << endl; cout << test.at(0) << endl << endl; cout << "Last position" << endl; cout << test.at(test.size() - 1) << endl << endl; cout << "Front position" << endl; cout << test.front() << endl << endl; cout << "Back position" << endl; cout << test.back() << endl << endl; cout << "First pos changed to last pos" << endl; test.at(0) = test.back(); testValues(test); }
FeedForwardNetwork& addActivationNode() { int size = (int)mNodeSizes.back(); // Ensure ActivationType is derived from ActivationNode ActivationNode *node = new ActivationType(size); return addNodePtr(node); }
void printout(const IntVector &deck) { int lastCard = deck.back(); for ( auto card: deck) cout << card << ( card == lastCard ? "" : ", " ); cout << endl << endl; }
inline size_t IndexedList::front() const { return _list.back(); }
FeedForwardNetwork& addLinearNode(const int size, const float spread = 0.05) { return addNodePtr(new LinearNode(mNodeSizes.back(), size, spread)); }
bool MSProductParameters::getSequenceElements ( ParameterList* params, const string& num, string& sequence, string& nTermName, string& cTermName, string& neutralLossName ) { sequence = params->getStrippedStringValue ( "sequence" + num, "" ); if ( sequence.empty () ) return false; nTermName = params->getStringValue ( "nterm" + num, "" ); cTermName = params->getStringValue ( "cterm" + num, "" ); neutralLossName = params->getStringValue ( "nloss" + num, "" ); if ( nTermName.empty () && cTermName.empty () && neutralLossName.empty () ) { static StringVector nTermNames = ConstMod::getNTermNames (); static StringVector cTermNames = ConstMod::getCTermNames (); static StringVector nLossNames = ConstMod::getNLossNames (); IntVector plusIdx; IntVector minusIdx; for ( StringSizeType i = 0 ; i < sequence.length () ; i++ ) { char p = sequence [i]; if ( p == '+' ) plusIdx.push_back ( i ); else if ( p == '-' )minusIdx.push_back ( i ); else if ( p == '(' ) { int bracket = 0; for ( ; i < sequence.length () ; i++ ) { char a = sequence [i]; if ( a == '(' ) bracket++; if ( a == ')' ) bracket--; if ( bracket == 0 ) break; } } } if ( !plusIdx.empty () ) { for ( int i = 0 ; i < nLossNames.size () ; i++ ) { string nL = nLossNames [i]; if ( isSuffix ( sequence, "+" + nL ) ) { sequence = sequence.substr ( 0, sequence.length () - 1 - nL.length () ); neutralLossName = nL; break; } } if ( neutralLossName.empty () ) { string possNLoss = sequence.substr ( plusIdx.back () + 1 ); // Add 1 to the last + if ( genStringIsFloat ( possNLoss ) ) { // Check if number sequence = sequence.substr ( 0, plusIdx.back () ); neutralLossName = possNLoss; } } while ( !minusIdx.empty () && minusIdx.back () >= sequence.length () ) minusIdx.pop_back (); } if ( !minusIdx.empty () ) { for ( int i = 0 ; i < cTermNames.size () ; i++ ) { string nC = cTermNames [i]; if ( nC.empty () ) continue; if ( isSuffix ( sequence, "-" + nC ) ) { sequence = sequence.substr ( 0, sequence.length () - 1 - nC.length () ); cTermName = nC; break; } } if ( cTermName.empty () ) { int idx = minusIdx.back (); if ( sequence [idx-1] != '-' ) idx += 1; string possCTerm = sequence.substr ( idx ); // Add 1 to the last - if ( genStringIsFloat ( possCTerm ) ) { // Check if number sequence = sequence.substr ( 0, idx - 1 ); cTermName = possCTerm; } } while ( minusIdx.back () >= sequence.length () ) minusIdx.pop_back (); } if ( !minusIdx.empty () ) { for ( int j = 0 ; j < nTermNames.size () ; j++ ) { string nN = nTermNames [j]; if ( nN.empty () ) continue; if ( isPrefix ( sequence, nN + "-" ) ) { sequence = sequence.substr ( nN.length () + 1 ); nTermName = nN; break; } } if ( nTermName.empty () ) { int idx = ( sequence [0] == '-' ) ? minusIdx [1] : minusIdx [0]; string possNTerm = sequence.substr ( 0, idx ); if ( genStringIsFloat ( possNTerm ) ) { // Check if number sequence = sequence.substr ( idx + 1 ); nTermName = possNTerm; } } } params->addOrReplaceName ( "sequence" + num, sequence ); params->addOrReplaceName ( "nterm" + num, nTermName ); params->addOrReplaceName ( "cterm" + num, cTermName ); params->addOrReplaceName ( "nloss" + num, neutralLossName ); } return true; }