[ create a new paste ] login | about

Link: http://codepad.org/8txeuFRk    [ raw code | output | fork ]

ajnsit - C, pasted on Jun 20:
#import <math.h>

int n = 10;
int i = 0, j = 0;
double arr[10];

int main() {

resetArr();
prArr();
function1();
prArr();

resetArr();
function2();
prArr();

}

void prArr() {
  printf(">>> ");
  for(i=0;i<n;i++) {
    printf("%G ",arr[i]);
  }
  printf("\n\n");
}

void resetArr() {
  for(i=0;i<n;i++) {
    arr[i] = i;
  }
}

void function1() {
  for(i=0; i<n; i++) {
    for (j=(i+1); j<n; j++) {
        double d = arr[i] - arr[j];

        double sqr = d * d + 0.01;
        double dist = sqrt(sqr);
        double mag = 1 / (sqr * dist);

        arr[i] -= d * arr[j] * mag;
        arr[j] += d * arr[i] * mag;
    }
  }
}

void function2() {
  for (i=0; i<n; i++) {
    for (j=0; j<n; j++) {
        if (i != j) {
            double d = arr[i] - arr[j];

            double sqr = d * d + 0.01;
            double dist = sqrt(sqr);
            double mag = 1 / (sqr * dist);

            arr[i] -= d * arr[j] * mag;
        }
    }
  }
}


Output:
1
2
3
4
5
6
>>> 0 1 2 3 4 5 6 7 8 9 

>>> 108.573 3.50854 3.27406 -3821.71 265.57 -2.38367 22.7385 -10215.1 -37.9955 8.96856 

>>> 108.573 -45.0075 5.19667 -112.155 3.89092 121.381 -0.885989 4.98394 6.95666 3.17141 



Create a new paste based on this one


Comments: