Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Christopher_A_1
Beginner
45 Views

Looking for an IPP function

I have the following loop that I would like to optimize. Are there any IPP function for each of these statements in the for loop?

double fast_product_sum(int n, double *a, int* indexes, double* b, double* c)
{

    double sum = 0.0;
    for (int i = 0; i < n; i++)
    {
        c = a + b[indexes];
        sum += a + b[indexes];
    }

    return sum;
}

I apprieciate any help in this matter.

Regards

Chris

0 Kudos
2 Replies
SergeyKostrov
Valued Contributor II
45 Views

Please look at a subset of IPP functions called as Vector Math functions. These functions allow to do add, subtract and multiply operations for every element of the source vector and highly optimized.
SergeyKostrov
Valued Contributor II
45 Views

Chris, you're calculating the sum of a + b[ indexes ] twice: ... for (int i = 0; i < n; i++) { c = a + b[ indexes ]; sum += a + b[ indexes ]; } ... and if input arrays are very large ( for example, greater than 4MB ), indexes array has unordered/random values and all input arrays don't fit into L3 cache line then a performance of calculations will be affected.
Reply