# ============================================================================== # sangi サンプルコード # ============================================================================== set(LIB23_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/include") # ヘルパー: サンプルターゲット作成 function(add_sangi_example EXAMPLE_NAME EXAMPLE_SOURCE) add_executable(${EXAMPLE_NAME} ${EXAMPLE_SOURCE}) target_include_directories(${EXAMPLE_NAME} PRIVATE ${LIB23_INCLUDE_DIR}) if(ARGN) target_link_libraries(${EXAMPLE_NAME} PRIVATE ${ARGN}) endif() set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "Examples") endfunction() # Int add_sangi_example(example-int example_int.cpp sangi_int) add_sangi_example(example-int-demo example_int_demo.cpp sangi_int) # Float add_sangi_example(example-float example_float.cpp sangi_float) add_sangi_example(example-float-demo example_float_demo.cpp sangi_float) # Rational add_sangi_example(example-rational example_rational.cpp sangi_rational) add_sangi_example(example-rational-demo example_rational_demo.cpp sangi_rational) # Multi-precision (Int + Float + Rational) add_sangi_example(example-mp example_mp.cpp sangi_rational) # Vector add_sangi_example(example-vector example_vector.cpp) add_sangi_example(example-vector-demo example_vector_demo.cpp) # Matrix add_sangi_example(example-matrix example_matrix.cpp sangi_rational) add_sangi_example(example-matrix-demo example_matrix_demo.cpp sangi_rational) # LinAlg (uses ThreadPool.hpp -> std::thread -> pthread on Linux) add_sangi_example(example-linalg example_linalg.cpp sangi_rational) # Polynomial add_sangi_example(example-polynomial example_polynomial.cpp) add_sangi_example(example-polynomial-factorization example_polynomial_factorization.cpp) # Roots add_sangi_example(example-roots example_roots.cpp) # Complex add_sangi_example(example-complex example_complex.cpp) # Optimization add_sangi_example(example-optimization example_optimization.cpp) # FFT add_sangi_example(example-fft example_fft.cpp) # Precision Showdown (Matrix + Float + Rational) add_sangi_example(example-precision-showdown example_precision_showdown.cpp sangi_rational)