Example #1
0
// =============================================================================
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;
}
Example #2
0
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);
}
Example #3
0
void Replacement::setFromSourceRange(SourceManager &Sources,
                                     const CharSourceRange &Range,
                                     llvm::StringRef ReplacementText) {
  setFromSourceLocation(Sources, Sources.getSpellingLoc(Range.getBegin()),
                        getRangeSize(Sources, Range), ReplacementText);
}