These instructions will help you get started with the FPChecker text reports.
Edit me

Main Report

FPChecker can print the report in standard output using the -s option:

$ fpc-create-report -s
Generating FPChecker report...
Trace files found: 8

================== Main Report ===================
positive_infinity              0
negative_infinity              0
nan                            430
division_by_zero               0
cancellation                   123068684
comparison                     0
underflow                      0
latent_positive_infinity       0
latent_negative_infinity       0
latent_underflow               0

Files and Inputs

To see the lines and inputs affected by a given event, provide the event name to the -s option (e.g., positive_infinity or nan):

$ fpc-create-report -s nan
Generating FPChecker report...
Trace files found: 8

===== Nan Report =====
/usr/workspace/wsa/laguna/fpchecker/cpu_checking/apps/LULESH/lulesh-util.cc:208

===== Inputs =====
./lulesh2.0 -i 10 -p

Rounding Error Text Report

FPChecker can also print a rounding error text report with line-level error information:

$ fpc-create-report -s rounding

Example output:

$ fpc-create-report -s rounding

===== Rounding Error Report =====
Files with rounding errors: 1
Lines with rounding errors: 15
Max abs rounding error:   6.586799e+04
Max relative error:       5.148558e+05

--- File: /Users/lagunaperalt1/projects/fpchecker/FPChecker/tutorial/example_7/cg.cpp
Line   | Code                                                     |         Error |    Rel. Error
-------------------------------------------------------------------------------------------------
39     | guess = 0.5f * (guess + x / guess);                      |  5.132322e+02 |  9.998773e-01
52     | result += v1[i] * v2[i];                                 |  6.586799e+04 |  1.000000e+00
75     | result[i] += A[i * n + j] * v[j];                        |  2.300333e+01 |  9.583574e-01
90     | result[i] = v1[i] - alpha * v2[i];                       | -2.300333e+01 |  1.000020e+00
97     | result[i] = v1[i] + alpha * v2[i];                       | -2.199956e+02 |  1.184063e+00
111    | result[i] = r[i] + beta * p[i];                          |  1.090668e+04 |  1.000000e+00
146    | row.push_back(atof(token));                              |  0.000000e+00 |  0.000000e+00
229    | float alpha = rs_old / dot_product(p, Ap);               |  8.886326e-01 |  5.148558e+05
239    | float relative_residual = my_sqrt(rs_new) / relative_b;  |  7.291699e+02 |  1.000000e+00
248    | float beta = rs_new / rs_old;                            |  2.987656e-01 |  2.943871e-01
287    | float tolerance = (argc > 3) ? atof(argv[3]) : 1e-6f;    |  0.000000e+00 |  0.000000e+00

This report includes, per affected file and line:

  • Source line number
  • Source code snippet (when available)
  • Absolute rounding error (Error)
  • Relative rounding error (Rel. Error)

These metrics help identify numerically unstable operations and prioritize selective FP32/FP64 promotion in mixed-precision workflows.

For complete details, interpretation guidance, and examples, see Rounding Error Tracking.