PDA

View Full Version : [C] Come calcolare l'epsilon macchina e rmin.


PieceSpencer
23-12-2017, 18:39
dovrei calcolare l'epsilon macchina e rmin , entrambi in singola e doppia precisione . questi sono i due programmi:
#include <stdio.h>

void Singola_Precisione (float e, int b);

void Doppia_Precisione(double e, int b);

int main(void){
int base=2;
float e=1.0;


Singola_Precisione(e,base);


Doppia_Precisione(e,base);



return 0;

}

float Singola_Precisione(float e, int b){
float eps;

while(1.0+e!=1){

e=e/(float)b;
}
printf("l'epsilon macchina in dippia precisione e' %.16f", e*2);
}

double Doppia_Precisione(double e, int b){
double eps;

while(1.0+e!=1){

e=e/(double) b;
}
printf("l'epsilon macchina in dippia precisione e' %.32f", e*2);

}







rmin:
#include <stdio.h>

void r_min_Singola_Precisione(float e,int b);

void r_min_Doppia_Precisione (double e,int b);

int main(){
int b;
float rmin;
b=2;
rmin=1.0;

r_min_Singola_Precisione( rmin, b);

r_min_Doppia_Precisione ( rmin, b);

return 0;
}

void r_min_Singola_Precisione(float e,int b){
float rmin1;

while(e!=0){
rmin1=e;
e=rmin1/(float)b;
}

printf("rmin in singola precisione e' %.54f\n", e);
}

void r_min_Doppia_Precisione (double e,int b){
double rmin1;

while(e!=0){
rmin1=e;
e=rmin1/(double)b;
}
printf("rmin in doppia precisione e' %.32f\n", e);
}


nel primo esercizio mi trovo solo la precisione doppia e non capisco il perchè , mentre nell'rmin non mi trovo nessuno dei due...