Loading CMakeLists.txt +2 −2 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ project (graph_framework CXX) option (USE_PCH "Enable the use of precompiled headers" ON) option (SAVE_KERNEL_SOURCE "Writes the kernel source code to a file." OFF) option (USE_INPUT_CACHE "Cache the values kernel input values." OFF) option (USE_CONSTANT_CACHE "Cache the value of constantants in kernel registers." OFF) option (USE_CONSTANT_CACHE "Cache the value of constants in kernel registers." OFF) option (SHOW_USE_COUNT "Add a comment showing the use count in kernel sources." OFF) option (USE_INDEX_CACHE "Cache index values instead of computing them every time." OFF) option (USE_VERBOSE "Verbose jit option." OFF) Loading Loading @@ -175,7 +175,7 @@ function (register_project reg_name dir url default_tag sub_dir) WORKING_DIRECTORY ${${reg_name}_SOURCE_DIR} ) # Add a taraget to pull the latest version before building. Note dependency is # Add a target to pull the latest version before building. Note dependency is # registered in the sub project CMakeList.txt. Not sure how this should handle # multiple targets in a project yet. Name must match the subproject pull_ # dependency. Loading graph_benchmark/xrays_bench.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ /// /// @tparam T Base type of the calculation. /// @tparam NUM_TIMES Total number of times steps. /// @tparam SUB_STEPS Number of substeps. /// @tparam SUB_STEPS Number of sub-steps. /// @tparam NUM_RAYS Number of rays. //------------------------------------------------------------------------------ template<jit::float_scalar T, size_t NUM_TIMES, size_t SUB_STEPS, size_t NUM_RAYS> Loading Loading @@ -61,7 +61,7 @@ void bench_runner() { t->set(static_cast<T> (0.0)); // Inital conditions. // Initial conditions. omega->set(static_cast<T> (500.0)); x->set(static_cast<T> (2.5)); y->set(static_cast<T> (0.0)); Loading graph_c_binding/graph_c_binding.cpp +19 −19 Original line number Diff line number Diff line Loading @@ -491,8 +491,8 @@ extern "C" { /// @brief Create add node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left + right //------------------------------------------------------------------------------ graph_node graph_add(STRUCT_TAG graph_c_context *c, Loading Loading @@ -557,8 +557,8 @@ extern "C" { /// @brief Create Substract node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left - right //------------------------------------------------------------------------------ graph_node graph_sub(STRUCT_TAG graph_c_context *c, Loading Loading @@ -623,8 +623,8 @@ extern "C" { /// @brief Create Multiply node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left*right //------------------------------------------------------------------------------ graph_node graph_mul(STRUCT_TAG graph_c_context *c, Loading Loading @@ -689,8 +689,8 @@ extern "C" { /// @brief Create Divide node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left/right //------------------------------------------------------------------------------ graph_node graph_div(STRUCT_TAG graph_c_context *c, Loading Loading @@ -758,7 +758,7 @@ extern "C" { /// @brief Create Sqrt node. /// /// @param[in] c The graph C context. /// @param[in] arg The left opperand. /// @param[in] arg The left operand. /// @returns sqrt(arg) //------------------------------------------------------------------------------ graph_node graph_sqrt(STRUCT_TAG graph_c_context *c, Loading Loading @@ -822,7 +822,7 @@ extern "C" { /// @brief Create exp node. /// /// @param[in] c The graph C context. /// @param[in] arg The left opperand. /// @param[in] arg The left operand. /// @returns exp(arg) //------------------------------------------------------------------------------ graph_node graph_exp(STRUCT_TAG graph_c_context *c, Loading Loading @@ -886,7 +886,7 @@ extern "C" { /// @brief Create log node. /// /// @param[in] c The graph C context. /// @param[in] arg The left opperand. /// @param[in] arg The left operand. /// @returns log(arg) //------------------------------------------------------------------------------ graph_node graph_log(STRUCT_TAG graph_c_context *c, Loading Loading @@ -950,8 +950,8 @@ extern "C" { /// @brief Create Pow node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns pow(left, right) //------------------------------------------------------------------------------ graph_node graph_pow(STRUCT_TAG graph_c_context *c, Loading Loading @@ -1016,7 +1016,7 @@ extern "C" { /// @brief Create imaginary error function node. /// /// @param[in] c The graph C context. /// @param[in] arg The left opperand. /// @param[in] arg The left operand. /// @returns erfi(arg) //------------------------------------------------------------------------------ graph_node graph_erfi(STRUCT_TAG graph_c_context *c, Loading Loading @@ -1062,7 +1062,7 @@ extern "C" { /// @brief Create sine node. /// /// @param[in] c The graph C context. /// @param[in] arg The left opperand. /// @param[in] arg The left operand. /// @returns sin(arg) //------------------------------------------------------------------------------ graph_node graph_sin(STRUCT_TAG graph_c_context *c, Loading Loading @@ -1126,7 +1126,7 @@ extern "C" { /// @brief Create cosine node. /// /// @param[in] c The graph C context. /// @param[in] arg The left opperand. /// @param[in] arg The left operand. /// @returns cos(arg) //------------------------------------------------------------------------------ graph_node graph_cos(STRUCT_TAG graph_c_context *c, Loading Loading @@ -1190,8 +1190,8 @@ extern "C" { /// @brief Create arctangent node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns atan(left, right) //------------------------------------------------------------------------------ graph_node graph_atan(STRUCT_TAG graph_c_context *c, Loading Loading @@ -2461,7 +2461,7 @@ extern "C" { /// @param[in] random_state Optional random state, can be NULL if not used. /// @param[in] name Name for the kernel. /// @param[in] size Number of elements to operate on. /// @param[in] tol Tolarance to converge the function to. /// @param[in] tol Tolerance to converge the function to. /// @param[in] max_iter Maximum number of iterations before giving up. //------------------------------------------------------------------------------ void graph_add_converge_item(STRUCT_TAG graph_c_context *c, Loading graph_c_binding/graph_c_binding.h +23 −22 Original line number Diff line number Diff line Loading @@ -8,9 +8,10 @@ /// @tableofcontents /// /// @section graph_c_binding_into Introduction /// This section assumes the reader is already familar with developing C codes. /// The simplist method to link framework code into a C code is to create a C++ /// function with @code extern "C" @endcode First create a header file /// This section assumes the reader is already familiar with developing C /// codes. The simplest method to link framework code into a C code is to /// create a C++ function with @code extern "C" @endcode First create a header /// file /// <tt><i>c_callable</i>.h</tt> /// @code /// extern "C" { Loading @@ -20,7 +21,7 @@ /// /// Next create a source file <tt><i>c_callable</i>.c</tt> and add the /// framework. This example uses the equation of a line example from the /// @ref tutorial_workflow "making workflows" turorial. /// @ref tutorial_workflow "making workflows" tutorial. /// @code /// // Include the necessary framework headers. /// Loading Loading @@ -62,8 +63,8 @@ /// @section graph_c_binding_interface C Binding Interface /// An alternative is to use the @ref graph_c_binding.h "C Language interface". /// The C binding interface can be enabled as one of the <tt>cmake</tt> /// @ref build_system_user_options "conifgure options". As an example, we will /// convert the @ref tutorial_workflow "making workflows" turorial to use the /// @ref build_system_user_options "configure options". As an example, we will /// convert the @ref tutorial_workflow "making workflows" tutorial to use the /// C language bindings. /// @code /// #include <graph_c_binding.h> Loading Loading @@ -171,7 +172,7 @@ extern "C" { /// /// @param[in] type Base type. /// @param[in] use_safe_math Control is safe math is used. /// @returns A contructed C context. /// @returns A constructed C context. //------------------------------------------------------------------------------ STRUCT_TAG graph_c_context *graph_construct_context(const enum graph_type type, const bool use_safe_math); Loading Loading @@ -252,8 +253,8 @@ extern "C" { /// @brief Create Addition node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left + right //------------------------------------------------------------------------------ graph_node graph_add(STRUCT_TAG graph_c_context *c, Loading @@ -261,11 +262,11 @@ extern "C" { graph_node right); //------------------------------------------------------------------------------ /// @brief Create Substract node. /// @brief Create Subtract node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left - right //------------------------------------------------------------------------------ graph_node graph_sub(STRUCT_TAG graph_c_context *c, Loading @@ -276,8 +277,8 @@ extern "C" { /// @brief Create Multiply node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left*right //------------------------------------------------------------------------------ graph_node graph_mul(STRUCT_TAG graph_c_context *c, Loading @@ -288,8 +289,8 @@ extern "C" { /// @brief Create Divide node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left/right //------------------------------------------------------------------------------ graph_node graph_div(STRUCT_TAG graph_c_context *c, Loading Loading @@ -330,8 +331,8 @@ extern "C" { /// @brief Create Pow node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns pow(left, right) //------------------------------------------------------------------------------ graph_node graph_pow(STRUCT_TAG graph_c_context *c, Loading Loading @@ -372,8 +373,8 @@ extern "C" { /// @brief Create arctangent node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns atan(left, right) //------------------------------------------------------------------------------ graph_node graph_atan(STRUCT_TAG graph_c_context *c, Loading @@ -384,7 +385,7 @@ extern "C" { /// @brief Construct a random state node. /// /// @param[in] c The graph C context. /// @param[in] seed Intial random seed. /// @param[in] seed Initial random seed. /// @returns A random state node. //------------------------------------------------------------------------------ graph_node graph_random_state(STRUCT_TAG graph_c_context *c, Loading Loading @@ -523,7 +524,7 @@ extern "C" { /// @param[in] random_state Optional random state, can be NULL if not used. /// @param[in] name Name for the kernel. /// @param[in] size Number of elements to operate on. /// @param[in] tol Tolarance to converge the function to. /// @param[in] tol Tolerance to converge the function to. /// @param[in] max_iter Maximum number of iterations before giving up. //------------------------------------------------------------------------------ void graph_add_converge_item(STRUCT_TAG graph_c_context *c, Loading graph_docs/compiling.dox +19 −19 Original line number Diff line number Diff line Loading @@ -12,10 +12,10 @@ * The following section is for users of the framework. * * @subsection build_system_user_dependencies Dependencies * The graph_framwork requires three external dependencies and one optional * The graph_framework requires three external dependencies and one optional * dependency. <a href="https://llvm.org">LLVM</a> is another dependency that is * used for generating CPU code. However this is automatically obtained via the * build system. The graph_frame is written using the * build system. The graph_framework is written using the * <a href="https://www.cppreference.com/w/cpp/20.html">C++20</a> standard. The * C interface uses * <a href="https://www.cppreference.com/w/cpp/compiler_support/17.html">C17</a> Loading Loading @@ -49,7 +49,7 @@ @endcode * There are two ways to run cmake. From the command line the build system can * generated by using the <tt>cmake</tt> command with options set using the * the <tt>-D</tt> option. As an exampole. * the <tt>-D</tt> option. As an example. * @code cmake -DOPTION_NAME=OPTION_VALUE ../ @endcode Loading @@ -65,16 +65,16 @@ * <tt>-D</tt> option. * * @subsubsection build_system_user_options Build system Options * Initially, there will be no options. Along the botton, there are several * commands. Use the 'c' command to start the configuation process. Once * configured several options will apear. During this process cmake is cloning * the LLVM repository. So this step may take some time initally. Most of the * are various options for configuing LLVM and can be ignored. The important * Initially, there will be no options. Along the bottom, there are several * commands. Use the 'c' command to start the configuration process. Once * configured several options will appear. During this process cmake is cloning * the LLVM repository. So this step may take some time initially. Most of the * are various options for configuring LLVM and can be ignored. The important * options are listed below. * * <table> * <caption id="build_system_user_cmake_opts">Build options for users.</caption> * <tr><th>Option <th>Discrption * <tr><th>Option <th>Discretion * <tr><td><tt>CMAKE_BUILD_TYPE</tt> <td>Switch between * * <tt>Release</tt> * * <tt>Debug</tt> Loading @@ -92,7 +92,7 @@ * @note macOS users will need to change the default option for * <tt>CMAKE_CXX_COMPILER</tt> to <tt>clang++</tt>. This is due to the way the * build systems determines default include directories for system libraries. * This can be accomplished using the advacned options accessed from the <tt>t</tt> * This can be accomplished using the advanced options accessed from the <tt>t</tt> * command or setting this via the command line. * @code cmake -DCMAKE_CXX_COMPILER=clang++ ../ Loading Loading @@ -123,7 +123,7 @@ make -j10 @endcode * The <tt>-j<i>num_processes</i></tt> option determines number of parallel * instances to run. The build products will be found in assocated directories * instances to run. The build products will be found in associated directories * in the <tt>build</tt> directory. * * A list of individual components which can be built can be identified using Loading @@ -145,7 +145,7 @@ * * @subsection build_system_macros Macro Definitions * The build system defines some macros for defining targets, configuring debug * options, and configuing external dependences. * options, and configuring external dependences. * * @subsubsection build_system_targets Tool targets * Loading @@ -154,7 +154,7 @@ * Define a tool target.\n\n * <b>Parameters</b>\n * <tt>[in] <b>target</b></tt> The name of the target.\n * <tt>[in] <b>lang</b></tt> File extention for the target (c, cpp, f90).\n\n * <tt>[in] <b>lang</b></tt> File extension for the target (c, cpp, f90).\n\n * Target assumes there is a source file defined as <tt>target.lang</tt>. For * instance a C++ source file named <tt>foo.cpp</tt> is configured as * @code Loading @@ -167,12 +167,12 @@ * Define a test target.\n\n * <b>Parameters</b>\n * <tt>[in] <b>target</b></tt> The name of the target.\n * <tt>[in] <b>lang</b></tt> File extention for the target (c, cpp, f90).\n\n * The aguments are the same as <tt>add_tool_target</tt>. This also adds the * <tt>[in] <b>lang</b></tt> File extension for the target (c, cpp, f90).\n\n * The arguments are the same as <tt>add_tool_target</tt>. This also adds the * target as a unit test. * <hr> * * @subsubsection build_system_sanitizer Sanatizer flags * @subsubsection build_system_sanitizer Sanitizer flags * * <hr> * <tt>register_sanitizer_option(name)</tt>\n\n Loading @@ -198,7 +198,7 @@ * <tt>dir</tt>. This also adds a new build option for * <tt>BUILD_TAG_<i>DIR</i></tt>. The URL must have the format of * @code ${URL_PROTO}domain.com${URL_SEP}remining/url ${URL_PROTO}domain.com${URL_SEP}remaining/url @endcode * <hr> * Loading @@ -209,13 +209,13 @@ * @subsubsection build_system_dev_options Build System Options * <table> * <caption id="build_system_user_cmake_dev_opts">Build options for developers.</caption> * <tr><th>Option <th>Discription * <tr><th>Option <th>Description * <tr><td><tt>USE_PCH</tt> <td>Use precompiled headers during computation. Most users should keep this on. * <tr><td><tt>SAVE_KERNEL_SOURCE</tt> <td>Option to dump the generated compute kernel source code to disk. * <tr><td><tt>USE_INPUT_CACHE</tt> <td>Option to cache registers for the kernel arguments. * <tr><td><tt>USE_CONSTANT_CACHE</tt> <td>Option to use registers to cache constant values otherwise constants are inlined. * <tr><td><tt>SHOW_USE_COUNT</tt> <td>Generates information on the number of times a register is used. * <tr><td><tt>USE_INDEX_CACHE</tt> <td>Option to use registers to cache array indicies. * <tr><td><tt>USE_INDEX_CACHE</tt> <td>Option to use registers to cache array indices. * <tr><th colspan="2">Sanitizer Flags * <tr><td><tt>SANITIZE_ADDRESS</tt> <td>Use address sanitizer debugging option. * <tr><td><tt>SANITIZE_LEAK</tt> <td>Use leak sanitizer debugging option. Loading Loading
CMakeLists.txt +2 −2 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ project (graph_framework CXX) option (USE_PCH "Enable the use of precompiled headers" ON) option (SAVE_KERNEL_SOURCE "Writes the kernel source code to a file." OFF) option (USE_INPUT_CACHE "Cache the values kernel input values." OFF) option (USE_CONSTANT_CACHE "Cache the value of constantants in kernel registers." OFF) option (USE_CONSTANT_CACHE "Cache the value of constants in kernel registers." OFF) option (SHOW_USE_COUNT "Add a comment showing the use count in kernel sources." OFF) option (USE_INDEX_CACHE "Cache index values instead of computing them every time." OFF) option (USE_VERBOSE "Verbose jit option." OFF) Loading Loading @@ -175,7 +175,7 @@ function (register_project reg_name dir url default_tag sub_dir) WORKING_DIRECTORY ${${reg_name}_SOURCE_DIR} ) # Add a taraget to pull the latest version before building. Note dependency is # Add a target to pull the latest version before building. Note dependency is # registered in the sub project CMakeList.txt. Not sure how this should handle # multiple targets in a project yet. Name must match the subproject pull_ # dependency. Loading
graph_benchmark/xrays_bench.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ /// /// @tparam T Base type of the calculation. /// @tparam NUM_TIMES Total number of times steps. /// @tparam SUB_STEPS Number of substeps. /// @tparam SUB_STEPS Number of sub-steps. /// @tparam NUM_RAYS Number of rays. //------------------------------------------------------------------------------ template<jit::float_scalar T, size_t NUM_TIMES, size_t SUB_STEPS, size_t NUM_RAYS> Loading Loading @@ -61,7 +61,7 @@ void bench_runner() { t->set(static_cast<T> (0.0)); // Inital conditions. // Initial conditions. omega->set(static_cast<T> (500.0)); x->set(static_cast<T> (2.5)); y->set(static_cast<T> (0.0)); Loading
graph_c_binding/graph_c_binding.cpp +19 −19 Original line number Diff line number Diff line Loading @@ -491,8 +491,8 @@ extern "C" { /// @brief Create add node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left + right //------------------------------------------------------------------------------ graph_node graph_add(STRUCT_TAG graph_c_context *c, Loading Loading @@ -557,8 +557,8 @@ extern "C" { /// @brief Create Substract node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left - right //------------------------------------------------------------------------------ graph_node graph_sub(STRUCT_TAG graph_c_context *c, Loading Loading @@ -623,8 +623,8 @@ extern "C" { /// @brief Create Multiply node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left*right //------------------------------------------------------------------------------ graph_node graph_mul(STRUCT_TAG graph_c_context *c, Loading Loading @@ -689,8 +689,8 @@ extern "C" { /// @brief Create Divide node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left/right //------------------------------------------------------------------------------ graph_node graph_div(STRUCT_TAG graph_c_context *c, Loading Loading @@ -758,7 +758,7 @@ extern "C" { /// @brief Create Sqrt node. /// /// @param[in] c The graph C context. /// @param[in] arg The left opperand. /// @param[in] arg The left operand. /// @returns sqrt(arg) //------------------------------------------------------------------------------ graph_node graph_sqrt(STRUCT_TAG graph_c_context *c, Loading Loading @@ -822,7 +822,7 @@ extern "C" { /// @brief Create exp node. /// /// @param[in] c The graph C context. /// @param[in] arg The left opperand. /// @param[in] arg The left operand. /// @returns exp(arg) //------------------------------------------------------------------------------ graph_node graph_exp(STRUCT_TAG graph_c_context *c, Loading Loading @@ -886,7 +886,7 @@ extern "C" { /// @brief Create log node. /// /// @param[in] c The graph C context. /// @param[in] arg The left opperand. /// @param[in] arg The left operand. /// @returns log(arg) //------------------------------------------------------------------------------ graph_node graph_log(STRUCT_TAG graph_c_context *c, Loading Loading @@ -950,8 +950,8 @@ extern "C" { /// @brief Create Pow node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns pow(left, right) //------------------------------------------------------------------------------ graph_node graph_pow(STRUCT_TAG graph_c_context *c, Loading Loading @@ -1016,7 +1016,7 @@ extern "C" { /// @brief Create imaginary error function node. /// /// @param[in] c The graph C context. /// @param[in] arg The left opperand. /// @param[in] arg The left operand. /// @returns erfi(arg) //------------------------------------------------------------------------------ graph_node graph_erfi(STRUCT_TAG graph_c_context *c, Loading Loading @@ -1062,7 +1062,7 @@ extern "C" { /// @brief Create sine node. /// /// @param[in] c The graph C context. /// @param[in] arg The left opperand. /// @param[in] arg The left operand. /// @returns sin(arg) //------------------------------------------------------------------------------ graph_node graph_sin(STRUCT_TAG graph_c_context *c, Loading Loading @@ -1126,7 +1126,7 @@ extern "C" { /// @brief Create cosine node. /// /// @param[in] c The graph C context. /// @param[in] arg The left opperand. /// @param[in] arg The left operand. /// @returns cos(arg) //------------------------------------------------------------------------------ graph_node graph_cos(STRUCT_TAG graph_c_context *c, Loading Loading @@ -1190,8 +1190,8 @@ extern "C" { /// @brief Create arctangent node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns atan(left, right) //------------------------------------------------------------------------------ graph_node graph_atan(STRUCT_TAG graph_c_context *c, Loading Loading @@ -2461,7 +2461,7 @@ extern "C" { /// @param[in] random_state Optional random state, can be NULL if not used. /// @param[in] name Name for the kernel. /// @param[in] size Number of elements to operate on. /// @param[in] tol Tolarance to converge the function to. /// @param[in] tol Tolerance to converge the function to. /// @param[in] max_iter Maximum number of iterations before giving up. //------------------------------------------------------------------------------ void graph_add_converge_item(STRUCT_TAG graph_c_context *c, Loading
graph_c_binding/graph_c_binding.h +23 −22 Original line number Diff line number Diff line Loading @@ -8,9 +8,10 @@ /// @tableofcontents /// /// @section graph_c_binding_into Introduction /// This section assumes the reader is already familar with developing C codes. /// The simplist method to link framework code into a C code is to create a C++ /// function with @code extern "C" @endcode First create a header file /// This section assumes the reader is already familiar with developing C /// codes. The simplest method to link framework code into a C code is to /// create a C++ function with @code extern "C" @endcode First create a header /// file /// <tt><i>c_callable</i>.h</tt> /// @code /// extern "C" { Loading @@ -20,7 +21,7 @@ /// /// Next create a source file <tt><i>c_callable</i>.c</tt> and add the /// framework. This example uses the equation of a line example from the /// @ref tutorial_workflow "making workflows" turorial. /// @ref tutorial_workflow "making workflows" tutorial. /// @code /// // Include the necessary framework headers. /// Loading Loading @@ -62,8 +63,8 @@ /// @section graph_c_binding_interface C Binding Interface /// An alternative is to use the @ref graph_c_binding.h "C Language interface". /// The C binding interface can be enabled as one of the <tt>cmake</tt> /// @ref build_system_user_options "conifgure options". As an example, we will /// convert the @ref tutorial_workflow "making workflows" turorial to use the /// @ref build_system_user_options "configure options". As an example, we will /// convert the @ref tutorial_workflow "making workflows" tutorial to use the /// C language bindings. /// @code /// #include <graph_c_binding.h> Loading Loading @@ -171,7 +172,7 @@ extern "C" { /// /// @param[in] type Base type. /// @param[in] use_safe_math Control is safe math is used. /// @returns A contructed C context. /// @returns A constructed C context. //------------------------------------------------------------------------------ STRUCT_TAG graph_c_context *graph_construct_context(const enum graph_type type, const bool use_safe_math); Loading Loading @@ -252,8 +253,8 @@ extern "C" { /// @brief Create Addition node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left + right //------------------------------------------------------------------------------ graph_node graph_add(STRUCT_TAG graph_c_context *c, Loading @@ -261,11 +262,11 @@ extern "C" { graph_node right); //------------------------------------------------------------------------------ /// @brief Create Substract node. /// @brief Create Subtract node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left - right //------------------------------------------------------------------------------ graph_node graph_sub(STRUCT_TAG graph_c_context *c, Loading @@ -276,8 +277,8 @@ extern "C" { /// @brief Create Multiply node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left*right //------------------------------------------------------------------------------ graph_node graph_mul(STRUCT_TAG graph_c_context *c, Loading @@ -288,8 +289,8 @@ extern "C" { /// @brief Create Divide node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns left/right //------------------------------------------------------------------------------ graph_node graph_div(STRUCT_TAG graph_c_context *c, Loading Loading @@ -330,8 +331,8 @@ extern "C" { /// @brief Create Pow node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns pow(left, right) //------------------------------------------------------------------------------ graph_node graph_pow(STRUCT_TAG graph_c_context *c, Loading Loading @@ -372,8 +373,8 @@ extern "C" { /// @brief Create arctangent node. /// /// @param[in] c The graph C context. /// @param[in] left The left opperand. /// @param[in] right The right opperand. /// @param[in] left The left operand. /// @param[in] right The right operand. /// @returns atan(left, right) //------------------------------------------------------------------------------ graph_node graph_atan(STRUCT_TAG graph_c_context *c, Loading @@ -384,7 +385,7 @@ extern "C" { /// @brief Construct a random state node. /// /// @param[in] c The graph C context. /// @param[in] seed Intial random seed. /// @param[in] seed Initial random seed. /// @returns A random state node. //------------------------------------------------------------------------------ graph_node graph_random_state(STRUCT_TAG graph_c_context *c, Loading Loading @@ -523,7 +524,7 @@ extern "C" { /// @param[in] random_state Optional random state, can be NULL if not used. /// @param[in] name Name for the kernel. /// @param[in] size Number of elements to operate on. /// @param[in] tol Tolarance to converge the function to. /// @param[in] tol Tolerance to converge the function to. /// @param[in] max_iter Maximum number of iterations before giving up. //------------------------------------------------------------------------------ void graph_add_converge_item(STRUCT_TAG graph_c_context *c, Loading
graph_docs/compiling.dox +19 −19 Original line number Diff line number Diff line Loading @@ -12,10 +12,10 @@ * The following section is for users of the framework. * * @subsection build_system_user_dependencies Dependencies * The graph_framwork requires three external dependencies and one optional * The graph_framework requires three external dependencies and one optional * dependency. <a href="https://llvm.org">LLVM</a> is another dependency that is * used for generating CPU code. However this is automatically obtained via the * build system. The graph_frame is written using the * build system. The graph_framework is written using the * <a href="https://www.cppreference.com/w/cpp/20.html">C++20</a> standard. The * C interface uses * <a href="https://www.cppreference.com/w/cpp/compiler_support/17.html">C17</a> Loading Loading @@ -49,7 +49,7 @@ @endcode * There are two ways to run cmake. From the command line the build system can * generated by using the <tt>cmake</tt> command with options set using the * the <tt>-D</tt> option. As an exampole. * the <tt>-D</tt> option. As an example. * @code cmake -DOPTION_NAME=OPTION_VALUE ../ @endcode Loading @@ -65,16 +65,16 @@ * <tt>-D</tt> option. * * @subsubsection build_system_user_options Build system Options * Initially, there will be no options. Along the botton, there are several * commands. Use the 'c' command to start the configuation process. Once * configured several options will apear. During this process cmake is cloning * the LLVM repository. So this step may take some time initally. Most of the * are various options for configuing LLVM and can be ignored. The important * Initially, there will be no options. Along the bottom, there are several * commands. Use the 'c' command to start the configuration process. Once * configured several options will appear. During this process cmake is cloning * the LLVM repository. So this step may take some time initially. Most of the * are various options for configuring LLVM and can be ignored. The important * options are listed below. * * <table> * <caption id="build_system_user_cmake_opts">Build options for users.</caption> * <tr><th>Option <th>Discrption * <tr><th>Option <th>Discretion * <tr><td><tt>CMAKE_BUILD_TYPE</tt> <td>Switch between * * <tt>Release</tt> * * <tt>Debug</tt> Loading @@ -92,7 +92,7 @@ * @note macOS users will need to change the default option for * <tt>CMAKE_CXX_COMPILER</tt> to <tt>clang++</tt>. This is due to the way the * build systems determines default include directories for system libraries. * This can be accomplished using the advacned options accessed from the <tt>t</tt> * This can be accomplished using the advanced options accessed from the <tt>t</tt> * command or setting this via the command line. * @code cmake -DCMAKE_CXX_COMPILER=clang++ ../ Loading Loading @@ -123,7 +123,7 @@ make -j10 @endcode * The <tt>-j<i>num_processes</i></tt> option determines number of parallel * instances to run. The build products will be found in assocated directories * instances to run. The build products will be found in associated directories * in the <tt>build</tt> directory. * * A list of individual components which can be built can be identified using Loading @@ -145,7 +145,7 @@ * * @subsection build_system_macros Macro Definitions * The build system defines some macros for defining targets, configuring debug * options, and configuing external dependences. * options, and configuring external dependences. * * @subsubsection build_system_targets Tool targets * Loading @@ -154,7 +154,7 @@ * Define a tool target.\n\n * <b>Parameters</b>\n * <tt>[in] <b>target</b></tt> The name of the target.\n * <tt>[in] <b>lang</b></tt> File extention for the target (c, cpp, f90).\n\n * <tt>[in] <b>lang</b></tt> File extension for the target (c, cpp, f90).\n\n * Target assumes there is a source file defined as <tt>target.lang</tt>. For * instance a C++ source file named <tt>foo.cpp</tt> is configured as * @code Loading @@ -167,12 +167,12 @@ * Define a test target.\n\n * <b>Parameters</b>\n * <tt>[in] <b>target</b></tt> The name of the target.\n * <tt>[in] <b>lang</b></tt> File extention for the target (c, cpp, f90).\n\n * The aguments are the same as <tt>add_tool_target</tt>. This also adds the * <tt>[in] <b>lang</b></tt> File extension for the target (c, cpp, f90).\n\n * The arguments are the same as <tt>add_tool_target</tt>. This also adds the * target as a unit test. * <hr> * * @subsubsection build_system_sanitizer Sanatizer flags * @subsubsection build_system_sanitizer Sanitizer flags * * <hr> * <tt>register_sanitizer_option(name)</tt>\n\n Loading @@ -198,7 +198,7 @@ * <tt>dir</tt>. This also adds a new build option for * <tt>BUILD_TAG_<i>DIR</i></tt>. The URL must have the format of * @code ${URL_PROTO}domain.com${URL_SEP}remining/url ${URL_PROTO}domain.com${URL_SEP}remaining/url @endcode * <hr> * Loading @@ -209,13 +209,13 @@ * @subsubsection build_system_dev_options Build System Options * <table> * <caption id="build_system_user_cmake_dev_opts">Build options for developers.</caption> * <tr><th>Option <th>Discription * <tr><th>Option <th>Description * <tr><td><tt>USE_PCH</tt> <td>Use precompiled headers during computation. Most users should keep this on. * <tr><td><tt>SAVE_KERNEL_SOURCE</tt> <td>Option to dump the generated compute kernel source code to disk. * <tr><td><tt>USE_INPUT_CACHE</tt> <td>Option to cache registers for the kernel arguments. * <tr><td><tt>USE_CONSTANT_CACHE</tt> <td>Option to use registers to cache constant values otherwise constants are inlined. * <tr><td><tt>SHOW_USE_COUNT</tt> <td>Generates information on the number of times a register is used. * <tr><td><tt>USE_INDEX_CACHE</tt> <td>Option to use registers to cache array indicies. * <tr><td><tt>USE_INDEX_CACHE</tt> <td>Option to use registers to cache array indices. * <tr><th colspan="2">Sanitizer Flags * <tr><td><tt>SANITIZE_ADDRESS</tt> <td>Use address sanitizer debugging option. * <tr><td><tt>SANITIZE_LEAK</tt> <td>Use leak sanitizer debugging option. Loading