Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "cuda.h"
- #include <cstdio>
- #include <iostream>
- extern "C" {
- __global__
- void gcd(int N, int *pres, int *qres){
- //printf("Test\n");
- int x = (blockIdx.x * blockDim.x) + threadIdx.x ;
- int y = (blockIdx.y * blockDim.y) + threadIdx.y ;
- int thid = (y*N) + x;
- int a = x+1, b = y+1;
- //printf("%d %d\n", a, b);
- int p = 1, q = 0, r = 0, s = 1, c, quot, r_tmp, s_tmp;
- while (b != 0){
- c = a % b;
- quot = a/b;
- a = b;
- b = c;
- r_tmp = r; s_tmp = s;
- r = p - quot * r;
- s = q - quot * s;
- p = r_tmp; q = s_tmp;
- }
- //printf("%d %d %d %d\n", a, b, p, q);
- pres[thid] = p; qres[thid] = q;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement