myfunc.h 1023 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #ifndef _myfunc__h
  2. #define _myfunc__h
  3. double sqr( double );
  4. double power( double, int );
  5. double power( int, int );
  6. double power( double, double );
  7. double integ( Vector& );
  8. inline double power( double a, int n ) {
  9. double ans = 1.0;
  10. for( int i = 0; i < n; i++ )
  11. ans *= a;
  12. return ans;
  13. }
  14. inline double power( int a, int n ) {
  15. double ans = 1.0;
  16. double fa = (double) a;
  17. if( n == 0 )
  18. return 1.0;
  19. else if( n > 0 )
  20. for( int i = 0; i < n; i++ )
  21. ans *= fa;
  22. else
  23. for( int i = 0; i < -n; i++ )
  24. ans *= 1.0 / fa;
  25. return ans;
  26. }
  27. inline double power( double a, double n ) {
  28. if( a == 0.0 ) {
  29. if( n == 0.0 )
  30. return 1.0;
  31. else
  32. return 0.0;
  33. }
  34. return exp( n * log(a) );
  35. }
  36. inline double integ( Vector& w ) {
  37. double x, sum=0.0;
  38. int N = w.dim();
  39. for( int i = 0; i < N; i++ )
  40. sum += w[i];
  41. sum = (sum - (w[0] + w[N-1]) / 2.0);
  42. return sum;
  43. }
  44. #endif