Lines Matching refs:b
74 void Matrix2x2Multiply(const value a[2][2], const value b[2][2], value c[2][2]);
82 value a = 0, b = 1, sum; in SerialFib() local
85 sum = a + b; in SerialFib()
86 a = b; in SerialFib()
87 b = sum; in SerialFib()
93 value c[2][2], a[2][2] = { { 1, 1 }, { 1, 0 } }, b[2][2] = { { 1, 1 }, { 1, 0 } }; in SerialMatrixFib() local
97 Matrix2x2Multiply(a, c, b); in SerialMatrixFib()
99 Matrix2x2Multiply(a, b, c); in SerialMatrixFib()
101 return (i & 1) ? c[0][0] : b[0][0]; // get result from upper left cell in SerialMatrixFib()
351 parallel_reduceFibBody b; in parallel_reduceFib() local
353 b); // do parallel reduce on range [2, n) for b in parallel_reduceFib()
354 return b.sum.v[0][0]; in parallel_reduceFib()
369 parallel_scanFibBody(parallel_scanFibBody &b, oneapi::tbb::split) in parallel_scanFibBody()
371 output(b.output) {} in parallel_scanFibBody()
381 void assign(parallel_scanFibBody &b) { in assign()
382 product = b.product; in assign()
401 parallel_scanFibBody b(output); in parallel_scanFib() local
402 oneapi::tbb::parallel_scan(oneapi::tbb::blocked_range<int>(0, n, 3), b); in parallel_scanFib()
405 assert(n < 2 || output[n - 2] + output[n - 1] == b.product.v[0][1]); in parallel_scanFib()
407 return b.product.v[0][1]; in parallel_scanFib()
516 void Matrix2x2Multiply(const value a[2][2], const value b[2][2], value c[2][2]) { in Matrix2x2Multiply()
519 c[i][j] = a[i][0] * b[0][j] + a[i][1] * b[1][j]; in Matrix2x2Multiply()