// ============================================================================= complexArray *getRangeAsComplexArray(const complexArray *pComplex, int nbRows, int nbCols, const int *iRange, int *returnedNbRows, int *returnedNbCols) { if (isValidRange(iRange, SIZE_ARRAY_RANGE)) { int R1, C1, R2, C2; int rangeSize; getSubIndices(iRange, &R1, &R2, &C1, &C2 ); *returnedNbRows = getRangeSize(&R1, &R2, nbRows); *returnedNbCols = getRangeSize(&C1, &C2, nbCols); rangeSize = (*returnedNbRows) * (*returnedNbCols); if (rangeSize > 0) { complexArray *newComplexArray = createComplexArrayEmpty(rangeSize); if (newComplexArray != NULL) { int i = 0; int j = 0; int k = 0; newComplexArray->isComplex = pComplex->isComplex; for (j = C1 - 1 ; j < C2 ; j++) { for (i = R1 - 1 ; i < R2 ; i++) { newComplexArray->realPart[k] = pComplex->realPart[i + (nbRows * j)]; if (pComplex->isComplex) { newComplexArray->imagPart[k] = pComplex->imagPart[i + (nbRows * j)]; } k++; } } } return newComplexArray; } // range is empty, calling function should raise an out of bound error } return NULL; }
void Replacement::setFromSourceRange(const SourceManager &Sources, const CharSourceRange &Range, StringRef ReplacementText, const LangOptions &LangOpts) { setFromSourceLocation(Sources, Sources.getSpellingLoc(Range.getBegin()), getRangeSize(Sources, Range, LangOpts), ReplacementText); }
void Replacement::setFromSourceRange(SourceManager &Sources, const CharSourceRange &Range, llvm::StringRef ReplacementText) { setFromSourceLocation(Sources, Sources.getSpellingLoc(Range.getBegin()), getRangeSize(Sources, Range), ReplacementText); }