Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. #include "cuda.h"
  2. #include <cstdio>
  3. #include <iostream>
  4. extern "C" {
  5. __global__
  6. void gcd(int N, int *pres, int *qres){
  7. //printf("Test\n");
  8. int x = (blockIdx.x * blockDim.x) + threadIdx.x ;
  9. int y = (blockIdx.y * blockDim.y) + threadIdx.y ;
  10. int thid = (y*N) + x;
  11.  
  12.  
  13.  
  14. int a = x+1, b = y+1;
  15. //printf("%d %d\n", a, b);
  16. int p = 1, q = 0, r = 0, s = 1, c, quot, r_tmp, s_tmp;
  17. while (b != 0){
  18. c = a % b;
  19. quot = a/b;
  20. a = b;
  21. b = c;
  22. r_tmp = r; s_tmp = s;
  23. r = p - quot * r;
  24. s = q - quot * s;
  25. p = r_tmp; q = s_tmp;
  26. }
  27. //printf("%d %d %d %d\n", a, b, p, q);
  28.  
  29. pres[thid] = p; qres[thid] = q;
  30.  
  31. }
  32.  
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement