Example #1
0
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);
}
Example #2
0
            FeedForwardNetwork& addActivationNode()
            {
                int size = (int)mNodeSizes.back();

                // Ensure ActivationType is derived from ActivationNode
                ActivationNode *node = new ActivationType(size);

                return addNodePtr(node);
            }
Example #3
0
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();
}
Example #5
0
 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;
}