以下のプログラムを初心者にもわかりやすいように書き換えるとどうなりますか?

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
#define samesign(x, y) (((x) > 0) == ((y) > 0)) /* 同符号なら真 */

double F(double a, double b, double tolerance,
double (*f)(double), int imax, char **error)
{
int i;
double c, fa, fb, fc;

*error = NULL;
if (tolerance < 0) tolerance = 0;
if (b-a < 0) { c = a; a = b; b = c; }
fa = f(a); if (fa == 0) return a;
fb = f(b); if (fb == 0) return b;
if (samesign(fa, fb)) {
*error = "同符号.";
return 0;
}