diff options
author | Brad King <brad.king@kitware.com> | 2022-10-28 14:02:37 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2022-10-28 14:03:10 (GMT) |
commit | 6b27854d268381cb8d29a500caa2ff3b4fe7da3c (patch) | |
tree | d581018ce70b5f97b47902f7524d97ee08a20525 /Help/guide/tutorial/Step7/MathFunctions | |
parent | 907bfc661b64d7895975e7e05bd9e677ad7f865e (diff) | |
parent | f9ef15f3dc55570eb492db155ebb5be6c41a7b73 (diff) | |
download | CMake-6b27854d268381cb8d29a500caa2ff3b4fe7da3c.zip CMake-6b27854d268381cb8d29a500caa2ff3b4fe7da3c.tar.gz CMake-6b27854d268381cb8d29a500caa2ff3b4fe7da3c.tar.bz2 |
Merge topic 'tutorial_step7_update'
f9ef15f3dc Tutorial: Update step 7 style
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7787
Diffstat (limited to 'Help/guide/tutorial/Step7/MathFunctions')
-rw-r--r-- | Help/guide/tutorial/Step7/MathFunctions/CMakeLists.txt | 20 | ||||
-rw-r--r-- | Help/guide/tutorial/Step7/MathFunctions/mysqrt.cxx | 10 |
2 files changed, 30 insertions, 0 deletions
diff --git a/Help/guide/tutorial/Step7/MathFunctions/CMakeLists.txt b/Help/guide/tutorial/Step7/MathFunctions/CMakeLists.txt index b4724c4..e5bdc4d 100644 --- a/Help/guide/tutorial/Step7/MathFunctions/CMakeLists.txt +++ b/Help/guide/tutorial/Step7/MathFunctions/CMakeLists.txt @@ -9,6 +9,26 @@ target_include_directories(MathFunctions # link our compiler flags interface library target_link_libraries(MathFunctions tutorial_compiler_flags) +# TODO 1: Include CheckCXXSourceCompiles + +# TODO 2: Use check_cxx_source_compiles with simple C++ code to verify +# availability of: +# * std::log +# * std::exp +# Store the results in HAVE_LOG and HAVE_EXP respectively. + +# Hint: Sample C++ code which uses log: +# #include <cmath> +# int main() { +# std::log(1.0); +# return 0; +# } + +# TODO 3: Conditionally on HAVE_LOG and HAVE_EXP, add private compile +# definitions "HAVE_LOG" and "HAVE_EXP" to the MathFunctions target. + +#Hint: Use target_compile_definitions() + # install libs set(installable_libs MathFunctions tutorial_compiler_flags) install(TARGETS ${installable_libs} DESTINATION lib) diff --git a/Help/guide/tutorial/Step7/MathFunctions/mysqrt.cxx b/Help/guide/tutorial/Step7/MathFunctions/mysqrt.cxx index abe767d..3d2492a 100644 --- a/Help/guide/tutorial/Step7/MathFunctions/mysqrt.cxx +++ b/Help/guide/tutorial/Step7/MathFunctions/mysqrt.cxx @@ -1,5 +1,6 @@ #include <iostream> +// TODO 4: include cmath #include "MathFunctions.h" // a hack square root calculation using simple operations @@ -9,6 +10,14 @@ double mysqrt(double x) return 0; } + // TODO 5: If both HAVE_LOG and HAVE_EXP are defined, use the following: + //// double result = std::exp(std::log(x) * 0.5); + //// std::cout << "Computing sqrt of " << x << " to be " << result + //// << " using log and exp" << std::endl; + // else, use the existing logic. + + // Hint: Don't forget the #endif before returning the result! + double result = x; // do ten iterations @@ -20,5 +29,6 @@ double mysqrt(double x) result = result + 0.5 * delta / result; std::cout << "Computing sqrt of " << x << " to be " << result << std::endl; } + return result; } |