Facebook
From Mich, 5 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 238
  1. real Check(real x) //Funkcja zaokrąglająca błędy wynikające z konwersji liczb
  2. {
  3.         real _x;
  4.  
  5.         x = modf(x, &_x);
  6.  
  7.         if (fabs(x) <= 1e-5) x = 0;
  8.  
  9.         return x + _x;
  10. }
  11.  
  12. Zespolona& Zespolona::operator^(int q)
  13. {
  14.         real z = sqrt(Re*Re+Im*Im);
  15.         real sin_z = Im / z;
  16.         real angle = asin(sin_z);
  17.  
  18.         angle *= q;
  19.         z = pow(z, q);
  20.  
  21.         Re = cos(angle) * z;
  22.         Im = sin(angle) * z;
  23.  
  24.         Re = Check(Re);
  25.         Im = Check(Im);
  26.  
  27.         return *this;
  28. }