diff --git a/209.patch b/209.patch deleted file mode 100644 index b5fa47a..0000000 --- a/209.patch +++ /dev/null @@ -1,357 +0,0 @@ -From 814a3b00fe6e6d9b52cd95d8a348b2ce632be168 Mon Sep 17 00:00:00 2001 -From: Cary Phillips -Date: Tue, 7 Sep 2021 12:46:27 -0400 -Subject: [PATCH 1/4] Successor/predecessor functions use isnan() and isinf() - -isnan() and isinf() should more robust across different architectures -than testing bit patterns. - -Also, the unions should use uint32_t/uint64_t since they're guaranteed -to be the appropriate size. - -Signed-off-by: Cary Phillips ---- - src/Imath/ImathFun.cpp | 10 +++++----- - src/ImathTest/testFun.cpp | 4 ++-- - 2 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/src/Imath/ImathFun.cpp b/src/Imath/ImathFun.cpp -index da4af12..7479936 100644 ---- a/src/Imath/ImathFun.cpp -+++ b/src/Imath/ImathFun.cpp -@@ -13,11 +13,11 @@ succf (float f) IMATH_NOEXCEPT - union - { - float f; -- unsigned int i; -+ uint32_t i; - } u; - u.f = f; - -- if ((u.i & 0x7f800000) == 0x7f800000) -+ if (isinf(f) || isnan (f)) - { - // Nan or infinity; don't change value. - } -@@ -51,11 +51,11 @@ predf (float f) IMATH_NOEXCEPT - union - { - float f; -- unsigned int i; -+ uint32_t i; - } u; - u.f = f; - -- if ((u.i & 0x7f800000) == 0x7f800000) -+ if (isinf(f) || isnan (f)) - { - // Nan or infinity; don't change value. - } -@@ -93,7 +93,7 @@ succd (double d) IMATH_NOEXCEPT - } u; - u.d = d; - -- if ((u.i & 0x7ff0000000000000LL) == 0x7ff0000000000000LL) -+ if (isinf(d) || isnan (d)) - { - // Nan or infinity; don't change value. - } -diff --git a/src/ImathTest/testFun.cpp b/src/ImathTest/testFun.cpp -index 8b04f69..31f965c 100644 ---- a/src/ImathTest/testFun.cpp -+++ b/src/ImathTest/testFun.cpp -@@ -244,7 +244,7 @@ testFun() - testf (7); - testf (0.7); - -- union {float f; int i;} u; -+ union {float f; uint32_t i;} u; - u.i = 0x7f800000; // inf - testf (u.f, false); - u.i = 0xff800000; // -inf -@@ -264,7 +264,7 @@ testFun() - testd (7); - testd (0.7); - -- union {double d; Int64 i;} v; -+ union {double d; uint64_t i;} v; - v.i = 0x7ff0000000000000ULL; // inf - testd (v.d, false); - v.i = 0xfff0000000000000ULL; // -inf - -From fec07ba4bea34620f75fafc3d9a841f9fa4e4399 Mon Sep 17 00:00:00 2001 -From: Cary Phillips -Date: Tue, 7 Sep 2021 16:34:48 -0400 -Subject: [PATCH 2/4] Add debugging info to testf()/testd() - -Signed-off-by: Cary Phillips ---- - src/ImathTest/testFun.cpp | 58 +++++++++++++++++++++++++-------------- - 1 file changed, 38 insertions(+), 20 deletions(-) - -diff --git a/src/ImathTest/testFun.cpp b/src/ImathTest/testFun.cpp -index 31f965c..64dc06b 100644 ---- a/src/ImathTest/testFun.cpp -+++ b/src/ImathTest/testFun.cpp -@@ -19,17 +19,12 @@ - - using namespace std; - --#if ULONG_MAX == 18446744073709551615LU --typedef long unsigned int Int64; --#else -- typedef long long unsigned int Int64; --#endif -- - #if __cplusplus < 202002L - template - static inline To - bit_cast (From from) - { -+#warning "using custom bit_cast" - static_assert (sizeof (From) == sizeof (To), "Type sizes do not match"); - union - { -@@ -51,11 +46,17 @@ testf (float f, bool changeExpected = true) - float spf = IMATH_INTERNAL_NAMESPACE::succf (IMATH_INTERNAL_NAMESPACE::predf (f)); - float psf = IMATH_INTERNAL_NAMESPACE::predf (IMATH_INTERNAL_NAMESPACE::succf (f)); - -- printf ("f %.9g\n", f); -- printf ("sf %.9g\n", sf); -- printf ("pf %.9g\n", pf); -- printf ("spf %.9g\n", spf); -- printf ("psf %.9g\n", psf); -+ union {float f; uint32_t i;} u; -+ u.f = f; -+ printf ("f %.9g %x\n", f, u.i); -+ u.f = sf; -+ printf ("sf %.9g %x\n", sf, u.i); -+ u.f = pf; -+ printf ("pf %.9g %x\n", pf, u.i); -+ u.f = spf; -+ printf ("spf %.9g %x\n", spf, u.i); -+ u.f = psf; -+ printf ("psf %.9g %x\n", psf, u.i); - - fflush (stdout); - -@@ -67,8 +68,13 @@ testf (float f, bool changeExpected = true) - else - { - // No bit change expected if input was inf or NaN -- assert (bit_cast (pf) == bit_cast (f)); -- assert (bit_cast (sf) == bit_cast (f)); -+ uint32_t bc_f = bit_cast (f); -+ uint32_t bc_pf = bit_cast (pf); -+ uint32_t bc_sf = bit_cast (sf); -+ printf ("no change expected: f=%x pf=%x sf=%x\n", bc_f, bc_pf, bc_sf); -+ -+ assert (bit_cast (pf) == bit_cast (f)); -+ assert (bit_cast (sf) == bit_cast (f)); - } - } - -@@ -82,11 +88,18 @@ testd (double d, bool changeExpected = true) - double spd = IMATH_INTERNAL_NAMESPACE::succd (IMATH_INTERNAL_NAMESPACE::predd (d)); - double psd = IMATH_INTERNAL_NAMESPACE::predd (IMATH_INTERNAL_NAMESPACE::succd (d)); - -- printf ("d %.18lg\n", d); -- printf ("sd %.18lg\n", sd); -- printf ("pd %.18lg\n", pd); -- printf ("spd %.18lg\n", spd); -- printf ("psd %.18lg\n", psd); -+ union {double d; uint64_t i;} u; -+ -+ u.d = d; -+ printf ("d %.18lg %lx\n", d, u.i); -+ u.d = sd; -+ printf ("sd %.18lg %lx\n", sd, u.i); -+ u.d = pd; -+ printf ("pd %.18lg %lx\n", pd, u.i); -+ u.d = spd; -+ printf ("spd %.18lg %lx\n", spd, u.i); -+ u.d = psd; -+ printf ("psd %.18lg %lx\n", psd, u.i); - - fflush (stdout); - -@@ -97,9 +110,14 @@ testd (double d, bool changeExpected = true) - } - else - { -+ uint64_t bc_d = bit_cast (d); -+ uint64_t bc_pd = bit_cast (pd); -+ uint64_t bc_sd = bit_cast (sd); -+ printf ("no change expected: d=%lx pd=%lx sd=%lx\n", bc_d, bc_pd, bc_sd); -+ - // No bit change expected if input was inf or NaN -- assert (bit_cast (pd) == bit_cast (d)); -- assert (bit_cast (sd) == bit_cast (d)); -+ assert (bit_cast (pd) == bit_cast (d)); -+ assert (bit_cast (sd) == bit_cast (d)); - } - } - - -From a811db96bea18bc7daead22686b8f1eb0c9b9652 Mon Sep 17 00:00:00 2001 -From: Cary Phillips -Date: Wed, 8 Sep 2021 10:55:21 -0400 -Subject: [PATCH 3/4] testf()/testd() checks isnan() - -Signed-off-by: Cary Phillips ---- - src/ImathTest/testFun.cpp | 29 +++++++++++++++++++++++++---- - 1 file changed, 25 insertions(+), 4 deletions(-) - -diff --git a/src/ImathTest/testFun.cpp b/src/ImathTest/testFun.cpp -index 64dc06b..6493737 100644 ---- a/src/ImathTest/testFun.cpp -+++ b/src/ImathTest/testFun.cpp -@@ -24,7 +24,6 @@ using namespace std; - static inline To - bit_cast (From from) - { --#warning "using custom bit_cast" - static_assert (sizeof (From) == sizeof (To), "Type sizes do not match"); - union - { -@@ -71,10 +70,19 @@ testf (float f, bool changeExpected = true) - uint32_t bc_f = bit_cast (f); - uint32_t bc_pf = bit_cast (pf); - uint32_t bc_sf = bit_cast (sf); -- printf ("no change expected: f=%x pf=%x sf=%x\n", bc_f, bc_pf, bc_sf); - -- assert (bit_cast (pf) == bit_cast (f)); -- assert (bit_cast (sf) == bit_cast (f)); -+ if (isnan(f)) -+ { -+ printf ("no change expected [isnan(f)]: f=%x pf=%x sf=%x\n", bc_f, bc_pf, bc_sf); -+ assert (isnan(pf)); -+ assert (isnan(sf)); -+ } -+ else -+ { -+ printf ("no change expected: [!isnan(f)]: f=%x pf=%x sf=%x\n", bc_f, bc_pf, bc_sf); -+ assert (bit_cast (pf) == bit_cast (f)); -+ assert (bit_cast (sf) == bit_cast (f)); -+ } - } - } - -@@ -118,6 +126,19 @@ testd (double d, bool changeExpected = true) - // No bit change expected if input was inf or NaN - assert (bit_cast (pd) == bit_cast (d)); - assert (bit_cast (sd) == bit_cast (d)); -+ -+ if (isnan(d)) -+ { -+ printf ("no change expected [isnan(d)]: d=%lx pd=%lx sd=%lx\n", bc_d, bc_pd, bc_sd); -+ assert (isnan(pd)); -+ assert (isnan(sd)); -+ } -+ else -+ { -+ printf ("no change expected: [!isnan(d)]: d=%lx pd=%lx sd=%lx\n", bc_d, bc_pd, bc_sd); -+ assert (bit_cast (pd) == bit_cast (d)); -+ assert (bit_cast (sd) == bit_cast (d)); -+ } - } - } - - -From b2025649b4b242aeef3abee52f687c081e3ad651 Mon Sep 17 00:00:00 2001 -From: Cary Phillips -Date: Wed, 8 Sep 2021 13:53:57 -0400 -Subject: [PATCH 4/4] Fix typo in testd() - -Signed-off-by: Cary Phillips ---- - src/ImathTest/testFun.cpp | 41 ++++++++++++++++++++++++++------------- - 1 file changed, 27 insertions(+), 14 deletions(-) - -diff --git a/src/ImathTest/testFun.cpp b/src/ImathTest/testFun.cpp -index 6493737..dac195f 100644 ---- a/src/ImathTest/testFun.cpp -+++ b/src/ImathTest/testFun.cpp -@@ -14,6 +14,7 @@ - #include - #include - #include -+#include - #include - #include "testFun.h" - -@@ -35,6 +36,25 @@ using namespace std; - } - #endif - -+std::string -+formatBits (uint64_t x) -+{ -+ std::stringstream s; -+ uint64_t mask = 0x1ULL << 63; -+ for (int i=0; i<64; i++) -+ { -+ if (i > 0 && i%4 == 0) -+ s << " "; -+ if (x & mask) -+ s << "1"; -+ else -+ s << "0"; -+ mask >>= 1; -+ } -+ -+ return s.str(); -+} -+ - void - testf (float f, bool changeExpected = true) - { -@@ -99,15 +119,15 @@ testd (double d, bool changeExpected = true) - union {double d; uint64_t i;} u; - - u.d = d; -- printf ("d %.18lg %lx\n", d, u.i); -+ printf ("d %0.18lg %s\n", d, formatBits (u.i).c_str()); - u.d = sd; -- printf ("sd %.18lg %lx\n", sd, u.i); -+ printf ("sd %0.18lg %s\n", sd, formatBits (u.i).c_str()); - u.d = pd; -- printf ("pd %.18lg %lx\n", pd, u.i); -+ printf ("pd %0.18lg %s\n", pd, formatBits (u.i).c_str()); - u.d = spd; -- printf ("spd %.18lg %lx\n", spd, u.i); -+ printf ("spd %0.18lg %s\n", spd, formatBits (u.i).c_str()); - u.d = psd; -- printf ("psd %.18lg %lx\n", psd, u.i); -+ printf ("psd %0.18lg %s\n", psd, formatBits (u.i).c_str()); - - fflush (stdout); - -@@ -118,24 +138,17 @@ testd (double d, bool changeExpected = true) - } - else - { -- uint64_t bc_d = bit_cast (d); -- uint64_t bc_pd = bit_cast (pd); -- uint64_t bc_sd = bit_cast (sd); -- printf ("no change expected: d=%lx pd=%lx sd=%lx\n", bc_d, bc_pd, bc_sd); -- - // No bit change expected if input was inf or NaN -- assert (bit_cast (pd) == bit_cast (d)); -- assert (bit_cast (sd) == bit_cast (d)); - - if (isnan(d)) - { -- printf ("no change expected [isnan(d)]: d=%lx pd=%lx sd=%lx\n", bc_d, bc_pd, bc_sd); -+ printf ("no change expected [isnan(d)]\n"); - assert (isnan(pd)); - assert (isnan(sd)); - } - else - { -- printf ("no change expected: [!isnan(d)]: d=%lx pd=%lx sd=%lx\n", bc_d, bc_pd, bc_sd); -+ printf ("no change expected: [!isnan(d)]\n"); - assert (bit_cast (pd) == bit_cast (d)); - assert (bit_cast (sd) == bit_cast (d)); - } diff --git a/imath-docs.patch b/imath-docs.patch deleted file mode 100644 index 44dba8d..0000000 --- a/imath-docs.patch +++ /dev/null @@ -1,45 +0,0 @@ -Index: Imath-3.1.3/docs/CMakeLists.txt -=================================================================== ---- Imath-3.1.3.orig/docs/CMakeLists.txt -+++ Imath-3.1.3/docs/CMakeLists.txt -@@ -23,11 +23,10 @@ file(MAKE_DIRECTORY ${DOXYGEN_OUTPUT_DIR - add_custom_command(OUTPUT ${DOXYGEN_INDEX_FILE} - COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE_OUT} - MAIN_DEPENDENCY ${DOXYFILE_OUT} ${DOXYFILE_IN} -+ DEPENDS ${DOXYGEN_OUTPUT_DIR} - COMMENT "Running doxygen" - VERBATIM) - --add_custom_target(Doxygen ALL DEPENDS ${DOXYGEN_INDEX_FILE}) -- - add_custom_command(OUTPUT ${SPHINX_INDEX_FILE} - COMMAND - ${SPHINX_EXECUTABLE} -b html -@@ -39,9 +38,11 @@ add_custom_command(OUTPUT ${SPHINX_INDEX - MAIN_DEPENDENCY conf.py - COMMENT "Generating documentation with Sphinx") - --add_custom_target(Sphinx ALL DEPENDS ${SPHINX_INDEX_FILE}) -+add_custom_target(docs ALL DEPENDS ${SPHINX_INDEX_FILE} ${DOXYGEN_INDEX_FILE}) - - # Add an install target to install the docs --include(GNUInstallDirs) --install(DIRECTORY ${SPHINX_BUILD} --DESTINATION ${CMAKE_INSTALL_DOCDIR}) -+if(INSTALL_DOCS) -+ include(GNUInstallDirs) -+ install(DIRECTORY ${SPHINX_BUILD} -+ DESTINATION ${CMAKE_INSTALL_DOCDIR}) -+endif() -Index: Imath-3.1.3/CMakeLists.txt -=================================================================== ---- Imath-3.1.3.orig/CMakeLists.txt -+++ Imath-3.1.3/CMakeLists.txt -@@ -75,6 +75,7 @@ endif() - - option(DOCS "Set ON to build html documentation") - if (DOCS) -+ option(INSTALL_DOCS "Set ON to install html documentation" ON) - add_subdirectory(docs) - endif() -