mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-07 23:28:36 -06:00
Tutorial: Update step 7 style
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user