Closed GoogleCodeExporter closed 8 years ago
Pillada
Original comment by borderpa...@gmail.com
on 8 May 2012 at 1:52
Se ha implementado una primera versión que utiliza las funciones fmod(double,
double) y fmodf(float, float) de la biblioteca estándar. Esto, en principio,
debe ofrecer mayor compatibilidad que la sobrecarga fmod(float, float). Se ha
probado con Visual C++ y GCC.
En cuanto al unit test, se han adaptado todas las pruebas a la nueva
funcionalidad y renombrado los casos de prueba.
Evidentemente, fallan los casos de prueba configurados para el formato de
ángulo distinto al actual. Además de eso, se ha encontrado el siguiente
problema de precisión en
Truncate_AnglesGreaterThan2PiAreCorrectlyTruncated_Test:
<![CDATA[check fResultUT == EXPECTED_VALUE failed [0.785398006 !=
0.785398185]]]>
¿Sería aceptable?
Original comment by borderpa...@gmail.com
on 9 May 2012 at 4:15
Resultado de la revisión:
-Sería mejor llevarse a fmod a MathDefinitions.h, y crear una macro llamada
fmod_q, al estilo de las demás, para que escoja uina sobrecarga en función
del flag de precisión.
-Los tests deben funcionar sea cual sea la configuración del motor, igual que
el resto del código. En este caso, deberá funcionar tanto si está cofigurado
para usar grados como para radianes (hay muchos ejemplos en los demás tests
que hacen uso del preprocesador para elegir los valores según el caso).
-Para solventar la pérdida de precisión propia de los tipos de coma flotante,
utilizamos la clase SQFloat.
Original comment by Lince3D@gmail.com
on 9 May 2012 at 7:40
-Implementada la macro fmod_q en MathDefinitions.h
-Reescritos y reenombrados los test para hacerlos independientes al valor de
configuración de ángulos. Lista completa:
Truncate_FullRevolutionPositiveAngleIsTruncatedToZero_Test
Truncate_FullRevolutionNegativeAngleIsTruncatedToZero_Test
Truncate_PositiveAnglesGreaterThanFullRevolutionPositiveAngleAreCorrectlyTruncat
ed_Test
Truncate_NegativeAnglesLowerThanFullRevolutionNegativeAngleAreCorrectlyTruncated
_Test
Truncate_AnglesLowerThanFullRevolutionPositiveAngleAreNotTruncated_Test
Truncate_AnglesGreaterThanFullRevolutionNegativeAngleAreNotTruncated_Test
-Chequeo de la precisión mediante SQFloat::AreEquals en los tests que lo
requieren
Original comment by borderpa...@gmail.com
on 10 May 2012 at 12:21
Resultado de la revisión: Correcta.
-Sobra el include de <math.h> en SQAngle.
Original comment by Lince3D@gmail.com
on 10 May 2012 at 7:48
OK. Además, si te parece, voy a cambiar el nombre a los dos últimos test para
mantener el estilo de nombre con los anteriores. Los nuevos nombres serían
estos:
Truncate_PositiveAnglesLowerThanFullRevolutionPositiveAngleAreNotTruncated_Test
Truncate_NegativeAnglesGreaterThanFullRevolutionNegativeAngleAreNotTruncated_Tes
t
Original comment by borderpa...@gmail.com
on 10 May 2012 at 9:59
Original issue reported on code.google.com by
Lince3D@gmail.com
on 3 May 2012 at 9:05