I'm going crazy

  • Thread starter sid_galt
  • Start date
  • #1
sid_galt
502
1
[tex]
A=-[(x_i-X_j)cos\theta_j + (y_i-Y_J)sin\theta_j]
[/tex]
[tex]
B = (x_i-X_j)^2+(y_i-Y_j)^2
[/tex]
[tex]
E=(B-A^2)^{1/2}=(x_i-X_j)sin\theta_j+(y_i-Y_j)\theta_j
[/tex]

I implemented this in C++ as follows

A = -(p_c(0)(i) - p_v(0)(j))*cos(angle(j)) - (p_c(1)(i) - p_v(1)(j))*sin(angle(j))

B = (p_c(0)(i) - p_v(0)(j))*(p_c(0)(i) - p_v(0)(j)) + (p_c(1)(i) - p_v(1)(j))*(p_c(1)(i) - p_v(1)(j))

E=(p_c(0)(i) - p_v(0)(j))*sin(angle(j)) + (p_c(1)(i) - p_c(1)(j))*cos(angle(j))

F= sqrt(B-A*A)

(All parantheses instead of square brackets in arrays to avoid HTML encoding)
where
p_c(0)(i) =[tex]x_i[/tex]
p_c(1)(i) = [tex]y_i[/tex]
p_v(0)(j) = [tex]X_j[/tex]
p_v(1)(j) = [tex]Y_j[/tex]
angle(j) = [tex]\theta_j[/tex]

Well, here's the deal. Mathematically
[tex]E=(B-A^2)^{1/2}=(x_i-X_j)sin\theta_j+(y_i-Y_j)\theta_j[/tex]

However in C++, I am getting different values for E and F in C++ when mathematically they are the same. I am going insane.
Please help
 
Last edited:

Answers and Replies

  • #2
sid_galt
502
1
Hey guys, I really need help.
 
  • #3
dduardo
Staff Emeritus
1,901
3
Check that your not truncating values. Type-casting is very important in these situtations.
 
  • #4
sid_galt
502
1
I don't think so because
1. All the quantities are in double
2. The differences are too high, sometimes as high as -1
 
  • #5
dduardo
Staff Emeritus
1,901
3
I would try breaking up the equation and testing to see if your getting expected values.
 
  • #6
chronon
500
0
sid_galt said:
Well, here's the deal. Mathematically
[tex]E=(B-A^2)^{1/2}=(x_i-X_j)sin\theta_j+(y_i-Y_j)\theta_j[/tex]
[tex]E=(B-A^2)^{1/2}=|(x_i-X_j)\sin\theta_j-(y_i-Y_j)\cos\theta_j|[/tex]
 
  • #7
sid_galt
502
1
chronon said:
[tex]E=(B-A^2)^{1/2}=|(x_i-X_j)\sin\theta_j-(y_i-Y_j)\cos\theta_j|[/tex]

I tried fabs and fabsf on E. The differences are still there. I am using Dev C++ 4 as the compiler. Could there be something wrong with it?
 
  • #8
es
70
0
I just tried doing the math in my head but I don't think the equality holds for theta_j=0

E=0
F=abs(y_i-Y_i)

right?

Edit: Wrong. I think the second cosine just fell off when you posted the summary. If the cosine is there, and the absolute values are in place, I think the equality holds.
 
Last edited:

Suggested for: I'm going crazy

Replies
18
Views
844
  • Last Post
Replies
10
Views
479
  • Last Post
Replies
6
Views
537
Replies
10
Views
454
  • Last Post
Replies
2
Views
584
Replies
18
Views
664
Replies
8
Views
1K
Replies
1
Views
1K
Replies
32
Views
3K
  • Last Post
Replies
2
Views
598
Top