VecGeom can be compiled in single precision mode using -DSINGLE_PRECISION=ON.
This branch changes typedef Precision
from the default double
type to float
when configuring with SINGLE_PRECISION=ON. This changes consistently all associated types and interfaces to work in single precision. The changes do NOT affect the default VecGeom behavior in double precision.
In this mode, several tolerances were adapted to match the new precision (e.g. kTolerance
was decreased to 1E-3). Still, many tests are failing due to rounding errors. Fixing those and understanding the limitations of this mode in navigation is a long task thus postponed for later.
The failing tests are currently:
74/129 Test #74: ConcaveSExtruBenchmark ..............................Failed 1.46 sec
76/129 Test #76: ParaboloidScriptBenchmark ...........................Failed 1.75 sec
77/129 Test #77: ParallelepipedBenchmark .............................Failed 1.67 sec
79/129 Test #79: TubeBenchmark .......................................Failed 1.57 sec
80/129 Test #80: TorusBenchmark2 .....................................Failed 1.51 sec
81/129 Test #81: TrapezoidBenchmark ..................................Failed 2.01 sec
83/129 Test #83: OrbBenchmark ........................................Failed 1.54 sec
84/129 Test #84: SphereBenchmark .....................................Failed 1.45 sec
85/129 Test #85: HypeBenchmark .......................................Failed 1.42 sec
87/129 Test #87: ConeBenchmark .......................................Failed 1.50 sec
89/129 Test #89: ScaledBenchmark .....................................Failed 1.47 sec
91/129 Test #91: CutTubeBenchmark ....................................Failed 1.48 sec
92/129 Test #92: PolyconeBenchmark ...................................Failed 1.43 sec
98/129 Test #98: PlanesTest ..........................................Failed 0.01 sec
106/129 Test #106: TestVecGeomPolycone .................................Child aborted Exception: 0.15 sec
124/129 Test #124: TestOrb .............................................Child aborted Exception: 0.15 sec
125/129 Test #125: TestPolycone ........................................Child aborted Exception: 0.15 sec
129/129 Test #129: TestGenTrap .........................................Child aborted Exception: 0.15 sec
This branch addresses VECGEOM-559