#define WOKWI // Uncomment if running on Wokwi RP2040 emulator.
#include <stdio.h>
#include <stdlib.h>
/*#include <pico/stdlib.h>
#include <pico/stdio.h>
#include <pico/float.h>*/
float pi_single (int n) {
float pi=1.0;
for (int i= 1; i <=n; i++){
float numerator = 4.0 * i * i;
float denominator = numerator - 1;
pi = pi *( numerator/ denominator);
}
pi = pi *2.0;
return pi;
}
double pi_double (int n) {
double pi=1.0;
for (int i= 1; i <=n; i++){
double numerator = 4.0 * i * i;
double denominator = numerator - 1;
pi = pi *( numerator/ denominator);
}
pi = pi *2.0;
return pi;
}
int main() {
int n= 100000;
double pi= 3.14159265359;
float singlep= pi_single (n);
float compareds= (pi-singlep) ;
double doublep= pi_double(n);
double comparedd= (pi-doublep);
// Print a console message to inform user what's going on.
printf("Calculated value of PI using single- precsion = %f\n", singlep);
printf(" Approximation error = %f\n", compareds);
printf("Calculated value of PI using double- precsion = %lf\n", doublep);
printf(" Approximation error = %lf\n", comparedd);
// Returning zero indicates everything went okay.
return 0;
}