calcH_MAG.c 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. t2 = cos(gPhi);
  2. t3 = cos(gTheta);
  3. t4 = sin(gPhi);
  4. t5 = sin(gTheta);
  5. t6 = q0*q0;
  6. t7 = q1*q1;
  7. t8 = q2*q2;
  8. t9 = q3*q3;
  9. t10 = t6+t7-t8-t9;
  10. t11 = sin(gPsi);
  11. t12 = cos(gPsi);
  12. t13 = q0*q2*2.0;
  13. t14 = q1*q3*2.0;
  14. t15 = t13+t14;
  15. t16 = q0*q3*2.0;
  16. t18 = q1*q2*2.0;
  17. t17 = t16-t18;
  18. t19 = t3*t11;
  19. t20 = t4*t5*t12;
  20. t21 = t19+t20;
  21. t22 = t16+t18;
  22. t23 = t5*t11;
  23. t41 = t3*t4*t12;
  24. t24 = t23-t41;
  25. t25 = q0*q1*2.0;
  26. t31 = q2*q3*2.0;
  27. t26 = t25-t31;
  28. t27 = t6-t7+t8-t9;
  29. t28 = t5*t12;
  30. t29 = t3*t4*t11;
  31. t30 = t28+t29;
  32. t32 = t3*t12;
  33. t46 = t4*t5*t11;
  34. t33 = t32-t46;
  35. t35 = t4*t17;
  36. t36 = t2*t5*t10;
  37. t37 = t2*t3*t15;
  38. t38 = t35+t36-t37;
  39. t39 = magZ*t38;
  40. t40 = t10*t21;
  41. t42 = t15*t24;
  42. t43 = t2*t12*t17;
  43. t44 = t40+t42-t43;
  44. t45 = magY*t44;
  45. t47 = t10*t33;
  46. t48 = t15*t30;
  47. t49 = t2*t11*t17;
  48. t50 = t47+t48+t49;
  49. t51 = magX*t50;
  50. t52 = -t39+t45+t51;
  51. t53 = 1.0/t52;
  52. t54 = t4*t27;
  53. t55 = t2*t3*t26;
  54. t56 = t2*t5*t22;
  55. t57 = -t54+t55+t56;
  56. t58 = magZ*t57;
  57. t59 = t21*t22;
  58. t60 = t24*t26;
  59. t61 = t2*t12*t27;
  60. t62 = t59-t60+t61;
  61. t63 = magY*t62;
  62. t64 = t26*t30;
  63. t65 = t22*t33;
  64. t66 = t2*t11*t27;
  65. t67 = t64-t65+t66;
  66. t68 = magX*t67;
  67. t69 = t58-t63+t68;
  68. t70 = t53*t69;
  69. t34 = tan(t70);
  70. t71 = t34*t34;
  71. t72 = t71+1.0;
  72. t73 = 1.0/(t52*t52);
  73. A0[0][0] = -t72*(t53*(magZ*(t4*t26+t2*t3*t27)+magY*(t24*t27+t2*t12*t26)+magX*(t27*t30-t2*t11*t26))-t69*t73*(magZ*(t4*t15+t2*t3*t17)+magY*(t17*t24+t2*t12*t15)+magX*(t17*t30-t2*t11*t15)));
  74. A0[0][1] = t72*(t53*(magZ*(t2*t3*t22-t2*t5*t26)+magY*(t22*t24+t21*t26)+magX*(t22*t30+t26*t33))+t69*t73*(magZ*(t2*t3*t10+t2*t5*t15)+magY*(t10*t24-t15*t21)+magX*(t10*t30-t15*t33)));
  75. A0[0][2] = t72*(t53*(-magZ*(t4*t22+t2*t5*t27)+magY*(t21*t27-t2*t12*t22)+magX*(t27*t33+t2*t11*t22))-t69*t73*(magZ*(t4*t10-t2*t5*t17)+magY*(t17*t21+t2*t10*t12)+magX*(t17*t33-t2*t10*t11)));