fork download
  1. #include <math.h>
  2. #include <stdio.h>
  3. double v[1024];
  4.  
  5. double pnorm_i( int n, int i, double s, double p ) {
  6. return ( n == i )? s: pnorm_i( n, i + 1, s + pow( fabs( v[ i ] ), p ), p );
  7. }
  8. double pnorm( int n, double p ) {
  9. return pow( pnorm_i( n, 0, 0.0, p ), 1.0/2.0 );
  10. }
  11.  
  12. int main()
  13. {
  14. v[0] = 1/2; v[1] = -1/2;
  15. printf( "#1, 1-norm: %f\n", pnorm( 2, 1 ));
  16. printf( "#1, 2-norm: %f\n", pnorm( 2, 2 ));
  17.  
  18. v[0] = 1; v[1] = 1; v[2] = 1; v[3] = 1; v[4] = 1;
  19. printf( "#2, 1-norm: %f\n", pnorm( 5, 1 ));
  20. printf( "#2, 2-norm: %f\n", pnorm( 5, 2 ));
  21.  
  22. v[0] = -1; v[1] = 2; v[2] = 0; v[3] = 3;
  23. printf( "#3, 1-norm: %f\n", pnorm( 4, 1 ));
  24. printf( "#3, 2-norm: %f\n", pnorm( 4, 2 ));
  25. }
  26.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty