186 this->stringInterpretation.clear();
187 for(
int firstIndex( 1 );
188 largestFirstIndex >= firstIndex;
191 for(
int secondIndex( 1 );
192 largestSecondIndex >= secondIndex;
195 for(
size_t thirdIndex( 1 );
196 largestThirdIndex >= thirdIndex;
199 this->indexPrintingVector[ 0 ] = firstIndex;
200 this->indexPrintingVector[ 1 ] = secondIndex;
201 this->indexPrintingVector[ 2 ] = thirdIndex;
202 this->stringInterpretation.append(
203 this->indicesToPrintingString() );
206 this->stringInterpretation.append( this->valueToPrintingString(
207 findOrMakeEntry( firstIndex,
210 this->stringInterpretation.append(
"\n" );
214 return this->stringInterpretation;
230 for(
int whichLine( this->currentStringBlock->getNumberOfBodyLines() );
235 (*(this->currentStringBlock))[ whichLine ].first,
236 &(this->lineRemainderA),
238 if( !(this->currentWord.empty()) )
243 this->lineRemainderA,
244 &(this->lineRemainderB),
249 this->lineRemainderB,
250 &(this->lineRemainderA),
255 this->lineRemainderA,
258 if( ( 0 < firstRecordingIndex )
260 ( 0 < secondRecordingIndex )
262 ( 0 < thirdRecordingIndex )
264 !(this->currentWord.empty()) )
266 findOrMakeEntry( firstRecordingIndex,
267 secondRecordingIndex,
268 thirdRecordingIndex )
269 = this->stringToValue( this->currentWord );
271 else if( this->isVerbose )
275 <<
"LHPC::SLHA::error! expected to find 3 positive indices then"
276 <<
" a value, instead found \""
277 << (*(this->currentStringBlock))[ whichLine ].first <<
"\"";
278 std::cout << std::endl;
288 int const thirdIndex )
292 if( firstIndex > largestFirstIndex )
294 largestFirstIndex = firstIndex;
296 if( secondIndex > largestSecondIndex )
298 largestSecondIndex = secondIndex;
300 if( (
size_t)thirdIndex > largestThirdIndex )
302 largestThirdIndex = thirdIndex;
304 while( valueMatrixArray.getSize() < firstIndex )
306 valueMatrixArray.newEnd().clearEntries();
310 while( valueMatrixArray[ firstIndex ].getSize() < secondIndex )
312 valueMatrixArray[ firstIndex ].newEnd().clear();
315 if( valueMatrixArray[ firstIndex ][ (--secondIndex) ].size()
316 < (
size_t)thirdIndex )
320 valueMatrixArray[ firstIndex ][ secondIndex ].resize( thirdIndex,
321 this->defaultUnsetValue );
323 return valueMatrixArray[ firstIndex ][ secondIndex ][ thirdIndex - 1 ];