From be41dee6b53dc7219b00c4ffe81b6c1527c4156e Mon Sep 17 00:00:00 2001 From: RaggleDodo Date: Wed, 31 Oct 2018 09:28:27 -0700 Subject: [PATCH] regenerate docs --- docs/_r_e_a_d_m_e_8md.html | 76 + docs/_r_e_a_d_m_e___a_d_e_8md.html | 76 + docs/_r_e_a_d_m_e___l_l_o_8md.html | 76 + docs/_r_e_a_d_m_e___p_b_m_8md.html | 76 + docs/ade_2test_2dynamic_2main_8cpp.html | 119 + docs/ade_2test_2log_2main_8cpp.html | 140 + docs/ade_2test_2static_2main_8cpp.html | 118 + docs/annotated.html | 117 + docs/api_8cpp.html | 203 + docs/api_8hpp.html | 225 ++ docs/api_8hpp_source.html | 119 + docs/bc_s.png | Bin 0 -> 676 bytes docs/bdwn.png | Bin 0 -> 147 bytes docs/classes.html | 110 + docs/closed.png | Bin 0 -> 132 bytes docs/common_8hpp.html | 112 + docs/common_8hpp_source.html | 90 + docs/coord_8cpp.html | 83 + docs/coord_8hpp.html | 155 + docs/coord_8hpp_source.html | 113 + docs/data_8cpp.html | 83 + docs/data_8hpp.html | 107 + docs/data_8hpp_source.html | 99 + .../dir_07f5977f5a29732e6f1f304a9e5526f5.html | 95 + .../dir_0e9e9c5a190fe51da95abd6edfca7e22.html | 92 + .../dir_1a42f74a9fab480c116ae93efd73ebda.html | 98 + .../dir_37a5bcfeff8e3f55b6b5ee63a08952c5.html | 109 + .../dir_41a258040bf916c8b05d97478d62b805.html | 88 + .../dir_511df3d22a1ba34af54775d379198203.html | 88 + .../dir_66854d0e4c68907385280347618fc414.html | 86 + .../dir_6f6f00817578f9e8e4d44dd2c955420f.html | 92 + .../dir_7b47e1970b7758588b9304009163c23a.html | 92 + .../dir_8539c1378b24b3c50dae3821abfc68b0.html | 94 + .../dir_97757236e3c067dca99452dec566d982.html | 96 + .../dir_c37806b71f3ece57dc14afd206973995.html | 90 + .../dir_c495df9960f78c27b549e0dc77eb659a.html | 88 + .../dir_d46f08f194e0dc0f4c06707ea2e9df24.html | 90 + .../dir_e27d2b201b2b67ab280cb2f6929c41a1.html | 107 + docs/doc.png | Bin 0 -> 746 bytes docs/doxygen.css | 1596 ++++++++ docs/doxygen.png | Bin 0 -> 3779 bytes docs/dtype_8cpp.html | 83 + docs/dtype_8hpp.html | 157 + docs/dtype_8hpp_source.html | 106 + docs/dynsections.js | 120 + docs/eval_8cpp.html | 81 + docs/eval_8hpp.html | 121 + docs/eval_8hpp_source.html | 137 + docs/files.html | 151 + docs/folderclosed.png | Bin 0 -> 616 bytes docs/folderopen.png | Bin 0 -> 597 bytes docs/functions.html | 467 +++ docs/functions_func.html | 368 ++ docs/functions_type.html | 83 + docs/functions_vars.html | 210 + docs/functor_8hpp.html | 131 + docs/functor_8hpp_source.html | 128 + docs/globals.html | 342 ++ docs/globals_defs.html | 104 + docs/globals_func.html | 247 ++ docs/globals_type.html | 92 + docs/globals_vars.html | 89 + docs/grader_8cpp.html | 81 + docs/grader_8hpp.html | 135 + docs/grader_8hpp_source.html | 114 + docs/graph_8cpp.html | 241 ++ docs/graph_8hpp.html | 149 + docs/graph_8hpp_source.html | 83 + docs/hierarchy.html | 118 + docs/index.html | 99 + docs/jquery.js | 115 + docs/llo_2test_2dynamic_2main_8cpp.html | 119 + docs/llo_2test_2regress_2main_8cpp.html | 811 ++++ docs/log_8cpp.html | 81 + docs/log_8hpp.html | 144 + docs/log_8hpp_source.html | 102 + docs/matops_8cpp.html | 83 + docs/matops_8hpp.html | 118 + docs/matops_8hpp_source.html | 88 + docs/md_ade__r_e_a_d_m_e__a_d_e.html | 112 + docs/md_llo__r_e_a_d_m_e__l_l_o.html | 80 + docs/md_pbm__r_e_a_d_m_e__p_b_m.html | 80 + docs/menu.js | 50 + docs/menudata.js | 183 + docs/namespaceade.html | 1519 +++++++ docs/namespacello.html | 3590 +++++++++++++++++ docs/namespacemembers.html | 623 +++ docs/namespacemembers_enum.html | 80 + docs/namespacemembers_eval.html | 248 ++ docs/namespacemembers_func.html | 445 ++ docs/namespacemembers_type.html | 107 + docs/namespacemembers_vars.html | 101 + docs/namespaces.html | 82 + docs/nav_f.png | Bin 0 -> 153 bytes docs/nav_g.png | Bin 0 -> 95 bytes docs/nav_h.png | Bin 0 -> 98 bytes docs/node_8hpp.html | 109 + docs/node_8hpp_source.html | 123 + docs/opcode_8cpp.html | 82 + docs/opcode_8hpp.html | 142 + docs/opcode_8hpp_source.html | 110 + docs/open.png | Bin 0 -> 123 bytes docs/operator_8cpp.html | 81 + docs/operator_8hpp.html | 244 ++ docs/operator_8hpp_source.html | 148 + docs/opmap_8cpp.html | 81 + docs/opmap_8hpp.html | 222 + docs/opmap_8hpp_source.html | 163 + docs/pages.html | 83 + docs/pbm_2test_2main_8cpp.html | 119 + docs/search/all_0.html | 30 + docs/search/all_0.js | 4 + docs/search/all_1.html | 30 + docs/search/all_1.js | 24 + docs/search/all_10.html | 30 + docs/search/all_10.js | 35 + docs/search/all_11.html | 30 + docs/search/all_11.js | 14 + docs/search/all_12.html | 30 + docs/search/all_12.js | 6 + docs/search/all_13.html | 30 + docs/search/all_13.js | 6 + docs/search/all_14.html | 30 + docs/search/all_14.js | 4 + docs/search/all_15.html | 30 + docs/search/all_15.js | 11 + docs/search/all_2.html | 30 + docs/search/all_2.js | 15 + docs/search/all_3.html | 30 + docs/search/all_3.js | 23 + docs/search/all_4.html | 30 + docs/search/all_4.js | 20 + docs/search/all_5.html | 30 + docs/search/all_5.js | 21 + docs/search/all_6.html | 30 + docs/search/all_6.js | 15 + docs/search/all_7.html | 30 + docs/search/all_7.js | 38 + docs/search/all_8.html | 30 + docs/search/all_8.js | 18 + docs/search/all_9.html | 30 + docs/search/all_9.js | 19 + docs/search/all_a.html | 30 + docs/search/all_a.js | 19 + docs/search/all_b.html | 30 + docs/search/all_b.js | 20 + docs/search/all_c.html | 30 + docs/search/all_c.js | 17 + docs/search/all_d.html | 30 + docs/search/all_d.js | 14 + docs/search/all_e.html | 30 + docs/search/all_e.js | 29 + docs/search/all_f.html | 30 + docs/search/all_f.js | 31 + docs/search/classes_0.html | 30 + docs/search/classes_0.js | 4 + docs/search/classes_1.html | 30 + docs/search/classes_1.js | 5 + docs/search/classes_2.html | 30 + docs/search/classes_2.js | 6 + docs/search/classes_3.html | 30 + docs/search/classes_3.js | 8 + docs/search/classes_4.html | 30 + docs/search/classes_4.js | 4 + docs/search/classes_5.html | 30 + docs/search/classes_5.js | 6 + docs/search/classes_6.html | 30 + docs/search/classes_6.js | 9 + docs/search/classes_7.html | 30 + docs/search/classes_7.js | 4 + docs/search/classes_8.html | 30 + docs/search/classes_8.js | 4 + docs/search/classes_9.html | 30 + docs/search/classes_9.js | 5 + docs/search/classes_a.html | 30 + docs/search/classes_a.js | 4 + docs/search/classes_b.html | 30 + docs/search/classes_b.js | 5 + docs/search/classes_c.html | 30 + docs/search/classes_c.js | 6 + docs/search/classes_d.html | 30 + docs/search/classes_d.js | 4 + docs/search/close.png | Bin 0 -> 273 bytes docs/search/defines_0.html | 30 + docs/search/defines_0.js | 5 + docs/search/defines_1.html | 30 + docs/search/defines_1.js | 4 + docs/search/defines_2.html | 30 + docs/search/defines_2.js | 4 + docs/search/defines_3.html | 30 + docs/search/defines_3.js | 5 + docs/search/defines_4.html | 30 + docs/search/defines_4.js | 4 + docs/search/defines_5.html | 30 + docs/search/defines_5.js | 4 + docs/search/defines_6.html | 30 + docs/search/defines_6.js | 5 + docs/search/enums_0.html | 30 + docs/search/enums_0.js | 4 + docs/search/enums_1.html | 30 + docs/search/enums_1.js | 4 + docs/search/enumvalues_0.html | 30 + docs/search/enumvalues_0.js | 4 + docs/search/enumvalues_1.html | 30 + docs/search/enumvalues_1.js | 5 + docs/search/enumvalues_10.html | 30 + docs/search/enumvalues_10.js | 7 + docs/search/enumvalues_2.html | 30 + docs/search/enumvalues_2.js | 4 + docs/search/enumvalues_3.html | 30 + docs/search/enumvalues_3.js | 5 + docs/search/enumvalues_4.html | 30 + docs/search/enumvalues_4.js | 5 + docs/search/enumvalues_5.html | 30 + docs/search/enumvalues_5.js | 5 + docs/search/enumvalues_6.html | 30 + docs/search/enumvalues_6.js | 4 + docs/search/enumvalues_7.html | 30 + docs/search/enumvalues_7.js | 4 + docs/search/enumvalues_8.html | 30 + docs/search/enumvalues_8.js | 7 + docs/search/enumvalues_9.html | 30 + docs/search/enumvalues_9.js | 5 + docs/search/enumvalues_a.html | 30 + docs/search/enumvalues_a.js | 6 + docs/search/enumvalues_b.html | 30 + docs/search/enumvalues_b.js | 5 + docs/search/enumvalues_c.html | 30 + docs/search/enumvalues_c.js | 4 + docs/search/enumvalues_d.html | 30 + docs/search/enumvalues_d.js | 7 + docs/search/enumvalues_e.html | 30 + docs/search/enumvalues_e.js | 6 + docs/search/enumvalues_f.html | 30 + docs/search/enumvalues_f.js | 4 + docs/search/files_0.html | 30 + docs/search/files_0.js | 5 + docs/search/files_1.html | 30 + docs/search/files_1.js | 6 + docs/search/files_2.html | 30 + docs/search/files_2.js | 7 + docs/search/files_3.html | 30 + docs/search/files_3.js | 5 + docs/search/files_4.html | 30 + docs/search/files_4.js | 4 + docs/search/files_5.html | 30 + docs/search/files_5.js | 7 + docs/search/files_6.html | 30 + docs/search/files_6.js | 5 + docs/search/files_7.html | 30 + docs/search/files_7.js | 6 + docs/search/files_8.html | 30 + docs/search/files_8.js | 4 + docs/search/files_9.html | 30 + docs/search/files_9.js | 9 + docs/search/files_a.html | 30 + docs/search/files_a.js | 7 + docs/search/files_b.html | 30 + docs/search/files_b.js | 11 + docs/search/files_c.html | 30 + docs/search/files_c.js | 18 + docs/search/functions_0.html | 30 + docs/search/functions_0.js | 12 + docs/search/functions_1.html | 30 + docs/search/functions_1.js | 10 + docs/search/functions_10.html | 30 + docs/search/functions_10.js | 7 + docs/search/functions_11.html | 30 + docs/search/functions_11.js | 5 + docs/search/functions_12.html | 30 + docs/search/functions_12.js | 5 + docs/search/functions_13.html | 30 + docs/search/functions_13.js | 4 + docs/search/functions_14.html | 30 + docs/search/functions_14.js | 11 + docs/search/functions_2.html | 30 + docs/search/functions_2.js | 14 + docs/search/functions_3.html | 30 + docs/search/functions_3.js | 7 + docs/search/functions_4.html | 30 + docs/search/functions_4.js | 14 + docs/search/functions_5.html | 30 + docs/search/functions_5.js | 10 + docs/search/functions_6.html | 30 + docs/search/functions_6.js | 31 + docs/search/functions_7.html | 30 + docs/search/functions_7.js | 6 + docs/search/functions_8.html | 30 + docs/search/functions_8.js | 9 + docs/search/functions_9.html | 30 + docs/search/functions_9.js | 11 + docs/search/functions_a.html | 30 + docs/search/functions_a.js | 15 + docs/search/functions_b.html | 30 + docs/search/functions_b.js | 8 + docs/search/functions_c.html | 30 + docs/search/functions_c.js | 9 + docs/search/functions_d.html | 30 + docs/search/functions_d.js | 20 + docs/search/functions_e.html | 30 + docs/search/functions_e.js | 17 + docs/search/functions_f.html | 30 + docs/search/functions_f.js | 14 + docs/search/mag_sel.png | Bin 0 -> 563 bytes docs/search/namespaces_0.html | 30 + docs/search/namespaces_0.js | 4 + docs/search/namespaces_1.html | 30 + docs/search/namespaces_1.js | 4 + docs/search/nomatches.html | 12 + docs/search/pages_0.html | 30 + docs/search/pages_0.js | 4 + docs/search/pages_1.html | 30 + docs/search/pages_1.js | 4 + docs/search/pages_2.html | 30 + docs/search/pages_2.js | 4 + docs/search/pages_3.html | 30 + docs/search/pages_3.js | 4 + docs/search/search.css | 271 ++ docs/search/search.js | 814 ++++ docs/search/search_l.png | Bin 0 -> 604 bytes docs/search/search_m.png | Bin 0 -> 158 bytes docs/search/search_r.png | Bin 0 -> 612 bytes docs/search/searchdata.js | 45 + docs/search/typedefs_0.html | 30 + docs/search/typedefs_0.js | 4 + docs/search/typedefs_1.html | 30 + docs/search/typedefs_1.js | 6 + docs/search/typedefs_2.html | 30 + docs/search/typedefs_2.js | 7 + docs/search/typedefs_3.html | 30 + docs/search/typedefs_3.js | 5 + docs/search/typedefs_4.html | 30 + docs/search/typedefs_4.js | 4 + docs/search/typedefs_5.html | 30 + docs/search/typedefs_5.js | 4 + docs/search/typedefs_6.html | 30 + docs/search/typedefs_6.js | 5 + docs/search/typedefs_7.html | 30 + docs/search/typedefs_7.js | 4 + docs/search/typedefs_8.html | 30 + docs/search/typedefs_8.js | 4 + docs/search/typedefs_9.html | 30 + docs/search/typedefs_9.js | 5 + docs/search/typedefs_a.html | 30 + docs/search/typedefs_a.js | 5 + docs/search/variables_0.html | 30 + docs/search/variables_0.js | 7 + docs/search/variables_1.html | 30 + docs/search/variables_1.js | 4 + docs/search/variables_2.html | 30 + docs/search/variables_2.js | 4 + docs/search/variables_3.html | 30 + docs/search/variables_3.js | 8 + docs/search/variables_4.html | 30 + docs/search/variables_4.js | 4 + docs/search/variables_5.html | 30 + docs/search/variables_5.js | 6 + docs/search/variables_6.html | 30 + docs/search/variables_6.js | 5 + docs/search/variables_7.html | 30 + docs/search/variables_7.js | 4 + docs/search/variables_8.html | 30 + docs/search/variables_8.js | 7 + docs/search/variables_9.html | 30 + docs/search/variables_9.js | 6 + docs/search/variables_a.html | 30 + docs/search/variables_a.js | 5 + docs/search/variables_b.html | 30 + docs/search/variables_b.js | 5 + docs/search/variables_c.html | 30 + docs/search/variables_c.js | 4 + docs/search/variables_d.html | 30 + docs/search/variables_d.js | 8 + docs/search/variables_e.html | 30 + docs/search/variables_e.js | 7 + docs/search/variables_f.html | 30 + docs/search/variables_f.js | 4 + docs/shape_8cpp.html | 82 + docs/shape_8hpp.html | 135 + docs/shape_8hpp_source.html | 113 + docs/shear_8cpp.html | 97 + docs/shear_8hpp.html | 120 + docs/shear_8hpp_source.html | 83 + docs/source_8cpp.html | 193 + docs/source_8hpp.html | 149 + docs/source_8hpp_source.html | 85 + docs/splitbar.png | Bin 0 -> 314 bytes docs/string_8cpp.html | 81 + docs/string_8hpp.html | 143 + docs/string_8hpp_source.html | 87 + docs/struct_a_p_i-members.html | 80 + docs/struct_a_p_i.html | 123 + docs/struct_a_p_i.png | Bin 0 -> 356 bytes docs/struct_c_o_o_r_d-members.html | 80 + docs/struct_c_o_o_r_d.html | 123 + docs/struct_c_o_o_r_d.png | Bin 0 -> 376 bytes docs/struct_d_t_y_p_e-members.html | 80 + docs/struct_d_t_y_p_e.html | 123 + docs/struct_d_t_y_p_e.png | Bin 0 -> 378 bytes docs/struct_f_u_n_c_t_o_r.html | 87 + docs/struct_f_u_n_c_t_o_r.png | Bin 0 -> 395 bytes docs/struct_l_o_g-members.html | 80 + docs/struct_l_o_g.html | 123 + docs/struct_l_o_g.png | Bin 0 -> 294 bytes docs/struct_n_o_d_e-members.html | 80 + docs/struct_n_o_d_e.html | 123 + docs/struct_n_o_d_e.png | Bin 0 -> 380 bytes docs/struct_r_e_g_r_e_s_s.html | 87 + docs/struct_r_e_g_r_e_s_s.png | Bin 0 -> 393 bytes docs/struct_s_h_a_p_e-members.html | 80 + docs/struct_s_h_a_p_e.html | 123 + docs/struct_s_h_a_p_e.png | Bin 0 -> 392 bytes docs/struct_t_e_n_s_o_r.html | 87 + docs/struct_t_e_n_s_o_r.png | Bin 0 -> 393 bytes docs/struct_test_logger-members.html | 86 + docs/struct_test_logger.html | 278 ++ docs/struct_test_logger.png | Bin 0 -> 454 bytes docs/structade_1_1_coord_map-members.html | 93 + docs/structade_1_1_coord_map.html | 422 ++ docs/structade_1_1_coord_map.png | Bin 0 -> 530 bytes docs/structade_1_1_def_logger-members.html | 87 + docs/structade_1_1_def_logger.html | 209 + docs/structade_1_1_def_logger.png | Bin 0 -> 509 bytes docs/structade_1_1_functor-members.html | 96 + docs/structade_1_1_functor.html | 462 +++ docs/structade_1_1_functor.png | Bin 0 -> 590 bytes docs/structade_1_1_path_finder-members.html | 90 + docs/structade_1_1_path_finder.html | 269 ++ docs/structade_1_1_path_finder.png | Bin 0 -> 494 bytes docs/structade_1_1_shape-members.html | 104 + docs/structade_1_1_shape.html | 722 ++++ docs/structade_1_1_tensor-members.html | 93 + docs/structade_1_1_tensor.html | 400 ++ docs/structade_1_1_tensor.png | Bin 0 -> 448 bytes docs/structade_1_1_tensorptr-members.html | 92 + docs/structade_1_1_tensorptr.html | 361 ++ docs/structade_1_1i_coord_map-members.html | 89 + docs/structade_1_1i_coord_map.html | 317 ++ docs/structade_1_1i_coord_map.png | Bin 0 -> 531 bytes docs/structade_1_1i_functor-members.html | 91 + docs/structade_1_1i_functor.html | 248 ++ docs/structade_1_1i_functor.png | Bin 0 -> 596 bytes docs/structade_1_1i_logger-members.html | 87 + docs/structade_1_1i_logger.html | 236 ++ docs/structade_1_1i_logger.png | Bin 0 -> 709 bytes docs/structade_1_1i_tensor-members.html | 88 + docs/structade_1_1i_tensor.html | 270 ++ docs/structade_1_1i_tensor.png | Bin 0 -> 865 bytes docs/structade_1_1i_traveler-members.html | 86 + docs/structade_1_1i_traveler.html | 204 + docs/structade_1_1i_traveler.png | Bin 0 -> 907 bytes docs/structllo_1_1_data_node-members.html | 92 + docs/structllo_1_1_data_node.html | 369 ++ docs/structllo_1_1_data_node.png | Bin 0 -> 534 bytes docs/structllo_1_1_eval_ctx-members.html | 87 + docs/structllo_1_1_eval_ctx.html | 216 + docs/structllo_1_1_evaluator-members.html | 90 + docs/structllo_1_1_evaluator.html | 294 ++ docs/structllo_1_1_evaluator.png | Bin 0 -> 453 bytes docs/structllo_1_1_executer-members.html | 84 + docs/structllo_1_1_executer.html | 133 + ...1ade_1_1_c_o_p_y_00_01_t_01_4-members.html | 84 + ...uter_3_01ade_1_1_c_o_p_y_00_01_t_01_4.html | 133 + ..._a_n_d___b_i_n_o_00_01_t_01_4-members.html | 84 + ...de_1_1_r_a_n_d___b_i_n_o_00_01_t_01_4.html | 133 + docs/structllo_1_1_generic_data-members.html | 89 + docs/structllo_1_1_generic_data.html | 242 ++ docs/structllo_1_1_generic_ref-members.html | 88 + docs/structllo_1_1_generic_ref.html | 229 ++ docs/structllo_1_1_graph_stat-members.html | 91 + docs/structllo_1_1_graph_stat.html | 282 ++ docs/structllo_1_1_graph_stat.png | Bin 0 -> 469 bytes docs/structllo_1_1_place_holder-members.html | 98 + docs/structllo_1_1_place_holder.html | 324 ++ docs/structllo_1_1_place_holder.png | Bin 0 -> 529 bytes docs/structllo_1_1_source-members.html | 95 + docs/structllo_1_1_source.html | 501 +++ docs/structllo_1_1_source.png | Bin 0 -> 463 bytes docs/structllo_1_1_vec_ref-members.html | 86 + docs/structllo_1_1_vec_ref.html | 152 + docs/structllo_1_1i_source-members.html | 88 + docs/structllo_1_1i_source.html | 268 ++ docs/structllo_1_1i_source.png | Bin 0 -> 462 bytes docs/sync_off.png | Bin 0 -> 853 bytes docs/sync_on.png | Bin 0 -> 845 bytes docs/tab_a.png | Bin 0 -> 142 bytes docs/tab_b.png | Bin 0 -> 169 bytes docs/tab_h.png | Bin 0 -> 177 bytes docs/tab_s.png | Bin 0 -> 184 bytes docs/tabs.css | 1 + docs/tensor_8cpp.html | 81 + docs/tensor_8hpp.html | 119 + docs/tensor_8hpp_source.html | 115 + docs/test__api_8cpp.html | 1375 +++++++ docs/test__coord_8cpp.html | 156 + docs/test__dtype_8cpp.html | 216 + docs/test__functor_8cpp.html | 186 + docs/test__grader_8cpp.html | 894 ++++ docs/test__load_8cpp.html | 226 ++ docs/test__log_8cpp.html | 305 ++ docs/test__node_8cpp.html | 186 + docs/test__save_8cpp.html | 142 + docs/test__shape_8cpp.html | 306 ++ docs/test__string_8cpp.html | 242 ++ docs/test__tensor_8cpp.html | 157 + docs/traveler_8hpp.html | 97 + docs/traveler_8hpp_source.html | 104 + 507 files changed, 44083 insertions(+) create mode 100644 docs/_r_e_a_d_m_e_8md.html create mode 100644 docs/_r_e_a_d_m_e___a_d_e_8md.html create mode 100644 docs/_r_e_a_d_m_e___l_l_o_8md.html create mode 100644 docs/_r_e_a_d_m_e___p_b_m_8md.html create mode 100644 docs/ade_2test_2dynamic_2main_8cpp.html create mode 100644 docs/ade_2test_2log_2main_8cpp.html create mode 100644 docs/ade_2test_2static_2main_8cpp.html create mode 100644 docs/annotated.html create mode 100644 docs/api_8cpp.html create mode 100644 docs/api_8hpp.html create mode 100644 docs/api_8hpp_source.html create mode 100644 docs/bc_s.png create mode 100644 docs/bdwn.png create mode 100644 docs/classes.html create mode 100644 docs/closed.png create mode 100644 docs/common_8hpp.html create mode 100644 docs/common_8hpp_source.html create mode 100644 docs/coord_8cpp.html create mode 100644 docs/coord_8hpp.html create mode 100644 docs/coord_8hpp_source.html create mode 100644 docs/data_8cpp.html create mode 100644 docs/data_8hpp.html create mode 100644 docs/data_8hpp_source.html create mode 100644 docs/dir_07f5977f5a29732e6f1f304a9e5526f5.html create mode 100644 docs/dir_0e9e9c5a190fe51da95abd6edfca7e22.html create mode 100644 docs/dir_1a42f74a9fab480c116ae93efd73ebda.html create mode 100644 docs/dir_37a5bcfeff8e3f55b6b5ee63a08952c5.html create mode 100644 docs/dir_41a258040bf916c8b05d97478d62b805.html create mode 100644 docs/dir_511df3d22a1ba34af54775d379198203.html create mode 100644 docs/dir_66854d0e4c68907385280347618fc414.html create mode 100644 docs/dir_6f6f00817578f9e8e4d44dd2c955420f.html create mode 100644 docs/dir_7b47e1970b7758588b9304009163c23a.html create mode 100644 docs/dir_8539c1378b24b3c50dae3821abfc68b0.html create mode 100644 docs/dir_97757236e3c067dca99452dec566d982.html create mode 100644 docs/dir_c37806b71f3ece57dc14afd206973995.html create mode 100644 docs/dir_c495df9960f78c27b549e0dc77eb659a.html create mode 100644 docs/dir_d46f08f194e0dc0f4c06707ea2e9df24.html create mode 100644 docs/dir_e27d2b201b2b67ab280cb2f6929c41a1.html create mode 100644 docs/doc.png create mode 100644 docs/doxygen.css create mode 100644 docs/doxygen.png create mode 100644 docs/dtype_8cpp.html create mode 100644 docs/dtype_8hpp.html create mode 100644 docs/dtype_8hpp_source.html create mode 100644 docs/dynsections.js create mode 100644 docs/eval_8cpp.html create mode 100644 docs/eval_8hpp.html create mode 100644 docs/eval_8hpp_source.html create mode 100644 docs/files.html create mode 100644 docs/folderclosed.png create mode 100644 docs/folderopen.png create mode 100644 docs/functions.html create mode 100644 docs/functions_func.html create mode 100644 docs/functions_type.html create mode 100644 docs/functions_vars.html create mode 100644 docs/functor_8hpp.html create mode 100644 docs/functor_8hpp_source.html create mode 100644 docs/globals.html create mode 100644 docs/globals_defs.html create mode 100644 docs/globals_func.html create mode 100644 docs/globals_type.html create mode 100644 docs/globals_vars.html create mode 100644 docs/grader_8cpp.html create mode 100644 docs/grader_8hpp.html create mode 100644 docs/grader_8hpp_source.html create mode 100644 docs/graph_8cpp.html create mode 100644 docs/graph_8hpp.html create mode 100644 docs/graph_8hpp_source.html create mode 100644 docs/hierarchy.html create mode 100644 docs/index.html create mode 100644 docs/jquery.js create mode 100644 docs/llo_2test_2dynamic_2main_8cpp.html create mode 100644 docs/llo_2test_2regress_2main_8cpp.html create mode 100644 docs/log_8cpp.html create mode 100644 docs/log_8hpp.html create mode 100644 docs/log_8hpp_source.html create mode 100644 docs/matops_8cpp.html create mode 100644 docs/matops_8hpp.html create mode 100644 docs/matops_8hpp_source.html create mode 100644 docs/md_ade__r_e_a_d_m_e__a_d_e.html create mode 100644 docs/md_llo__r_e_a_d_m_e__l_l_o.html create mode 100644 docs/md_pbm__r_e_a_d_m_e__p_b_m.html create mode 100644 docs/menu.js create mode 100644 docs/menudata.js create mode 100644 docs/namespaceade.html create mode 100644 docs/namespacello.html create mode 100644 docs/namespacemembers.html create mode 100644 docs/namespacemembers_enum.html create mode 100644 docs/namespacemembers_eval.html create mode 100644 docs/namespacemembers_func.html create mode 100644 docs/namespacemembers_type.html create mode 100644 docs/namespacemembers_vars.html create mode 100644 docs/namespaces.html create mode 100644 docs/nav_f.png create mode 100644 docs/nav_g.png create mode 100644 docs/nav_h.png create mode 100644 docs/node_8hpp.html create mode 100644 docs/node_8hpp_source.html create mode 100644 docs/opcode_8cpp.html create mode 100644 docs/opcode_8hpp.html create mode 100644 docs/opcode_8hpp_source.html create mode 100644 docs/open.png create mode 100644 docs/operator_8cpp.html create mode 100644 docs/operator_8hpp.html create mode 100644 docs/operator_8hpp_source.html create mode 100644 docs/opmap_8cpp.html create mode 100644 docs/opmap_8hpp.html create mode 100644 docs/opmap_8hpp_source.html create mode 100644 docs/pages.html create mode 100644 docs/pbm_2test_2main_8cpp.html create mode 100644 docs/search/all_0.html create mode 100644 docs/search/all_0.js create mode 100644 docs/search/all_1.html create mode 100644 docs/search/all_1.js create mode 100644 docs/search/all_10.html create mode 100644 docs/search/all_10.js create mode 100644 docs/search/all_11.html create mode 100644 docs/search/all_11.js create mode 100644 docs/search/all_12.html create mode 100644 docs/search/all_12.js create mode 100644 docs/search/all_13.html create mode 100644 docs/search/all_13.js create mode 100644 docs/search/all_14.html create mode 100644 docs/search/all_14.js create mode 100644 docs/search/all_15.html create mode 100644 docs/search/all_15.js create mode 100644 docs/search/all_2.html create mode 100644 docs/search/all_2.js create mode 100644 docs/search/all_3.html create mode 100644 docs/search/all_3.js create mode 100644 docs/search/all_4.html create mode 100644 docs/search/all_4.js create mode 100644 docs/search/all_5.html create mode 100644 docs/search/all_5.js create mode 100644 docs/search/all_6.html create mode 100644 docs/search/all_6.js create mode 100644 docs/search/all_7.html create mode 100644 docs/search/all_7.js create mode 100644 docs/search/all_8.html create mode 100644 docs/search/all_8.js create mode 100644 docs/search/all_9.html create mode 100644 docs/search/all_9.js create mode 100644 docs/search/all_a.html create mode 100644 docs/search/all_a.js create mode 100644 docs/search/all_b.html create mode 100644 docs/search/all_b.js create mode 100644 docs/search/all_c.html create mode 100644 docs/search/all_c.js create mode 100644 docs/search/all_d.html create mode 100644 docs/search/all_d.js create mode 100644 docs/search/all_e.html create mode 100644 docs/search/all_e.js create mode 100644 docs/search/all_f.html create mode 100644 docs/search/all_f.js create mode 100644 docs/search/classes_0.html create mode 100644 docs/search/classes_0.js create mode 100644 docs/search/classes_1.html create mode 100644 docs/search/classes_1.js create mode 100644 docs/search/classes_2.html create mode 100644 docs/search/classes_2.js create mode 100644 docs/search/classes_3.html create mode 100644 docs/search/classes_3.js create mode 100644 docs/search/classes_4.html create mode 100644 docs/search/classes_4.js create mode 100644 docs/search/classes_5.html create mode 100644 docs/search/classes_5.js create mode 100644 docs/search/classes_6.html create mode 100644 docs/search/classes_6.js create mode 100644 docs/search/classes_7.html create mode 100644 docs/search/classes_7.js create mode 100644 docs/search/classes_8.html create mode 100644 docs/search/classes_8.js create mode 100644 docs/search/classes_9.html create mode 100644 docs/search/classes_9.js create mode 100644 docs/search/classes_a.html create mode 100644 docs/search/classes_a.js create mode 100644 docs/search/classes_b.html create mode 100644 docs/search/classes_b.js create mode 100644 docs/search/classes_c.html create mode 100644 docs/search/classes_c.js create mode 100644 docs/search/classes_d.html create mode 100644 docs/search/classes_d.js create mode 100644 docs/search/close.png create mode 100644 docs/search/defines_0.html create mode 100644 docs/search/defines_0.js create mode 100644 docs/search/defines_1.html create mode 100644 docs/search/defines_1.js create mode 100644 docs/search/defines_2.html create mode 100644 docs/search/defines_2.js create mode 100644 docs/search/defines_3.html create mode 100644 docs/search/defines_3.js create mode 100644 docs/search/defines_4.html create mode 100644 docs/search/defines_4.js create mode 100644 docs/search/defines_5.html create mode 100644 docs/search/defines_5.js create mode 100644 docs/search/defines_6.html create mode 100644 docs/search/defines_6.js create mode 100644 docs/search/enums_0.html create mode 100644 docs/search/enums_0.js create mode 100644 docs/search/enums_1.html create mode 100644 docs/search/enums_1.js create mode 100644 docs/search/enumvalues_0.html create mode 100644 docs/search/enumvalues_0.js create mode 100644 docs/search/enumvalues_1.html create mode 100644 docs/search/enumvalues_1.js create mode 100644 docs/search/enumvalues_10.html create mode 100644 docs/search/enumvalues_10.js create mode 100644 docs/search/enumvalues_2.html create mode 100644 docs/search/enumvalues_2.js create mode 100644 docs/search/enumvalues_3.html create mode 100644 docs/search/enumvalues_3.js create mode 100644 docs/search/enumvalues_4.html create mode 100644 docs/search/enumvalues_4.js create mode 100644 docs/search/enumvalues_5.html create mode 100644 docs/search/enumvalues_5.js create mode 100644 docs/search/enumvalues_6.html create mode 100644 docs/search/enumvalues_6.js create mode 100644 docs/search/enumvalues_7.html create mode 100644 docs/search/enumvalues_7.js create mode 100644 docs/search/enumvalues_8.html create mode 100644 docs/search/enumvalues_8.js create mode 100644 docs/search/enumvalues_9.html create mode 100644 docs/search/enumvalues_9.js create mode 100644 docs/search/enumvalues_a.html create mode 100644 docs/search/enumvalues_a.js create mode 100644 docs/search/enumvalues_b.html create mode 100644 docs/search/enumvalues_b.js create mode 100644 docs/search/enumvalues_c.html create mode 100644 docs/search/enumvalues_c.js create mode 100644 docs/search/enumvalues_d.html create mode 100644 docs/search/enumvalues_d.js create mode 100644 docs/search/enumvalues_e.html create mode 100644 docs/search/enumvalues_e.js create mode 100644 docs/search/enumvalues_f.html create mode 100644 docs/search/enumvalues_f.js create mode 100644 docs/search/files_0.html create mode 100644 docs/search/files_0.js create mode 100644 docs/search/files_1.html create mode 100644 docs/search/files_1.js create mode 100644 docs/search/files_2.html create mode 100644 docs/search/files_2.js create mode 100644 docs/search/files_3.html create mode 100644 docs/search/files_3.js create mode 100644 docs/search/files_4.html create mode 100644 docs/search/files_4.js create mode 100644 docs/search/files_5.html create mode 100644 docs/search/files_5.js create mode 100644 docs/search/files_6.html create mode 100644 docs/search/files_6.js create mode 100644 docs/search/files_7.html create mode 100644 docs/search/files_7.js create mode 100644 docs/search/files_8.html create mode 100644 docs/search/files_8.js create mode 100644 docs/search/files_9.html create mode 100644 docs/search/files_9.js create mode 100644 docs/search/files_a.html create mode 100644 docs/search/files_a.js create mode 100644 docs/search/files_b.html create mode 100644 docs/search/files_b.js create mode 100644 docs/search/files_c.html create mode 100644 docs/search/files_c.js create mode 100644 docs/search/functions_0.html create mode 100644 docs/search/functions_0.js create mode 100644 docs/search/functions_1.html create mode 100644 docs/search/functions_1.js create mode 100644 docs/search/functions_10.html create mode 100644 docs/search/functions_10.js create mode 100644 docs/search/functions_11.html create mode 100644 docs/search/functions_11.js create mode 100644 docs/search/functions_12.html create mode 100644 docs/search/functions_12.js create mode 100644 docs/search/functions_13.html create mode 100644 docs/search/functions_13.js create mode 100644 docs/search/functions_14.html create mode 100644 docs/search/functions_14.js create mode 100644 docs/search/functions_2.html create mode 100644 docs/search/functions_2.js create mode 100644 docs/search/functions_3.html create mode 100644 docs/search/functions_3.js create mode 100644 docs/search/functions_4.html create mode 100644 docs/search/functions_4.js create mode 100644 docs/search/functions_5.html create mode 100644 docs/search/functions_5.js create mode 100644 docs/search/functions_6.html create mode 100644 docs/search/functions_6.js create mode 100644 docs/search/functions_7.html create mode 100644 docs/search/functions_7.js create mode 100644 docs/search/functions_8.html create mode 100644 docs/search/functions_8.js create mode 100644 docs/search/functions_9.html create mode 100644 docs/search/functions_9.js create mode 100644 docs/search/functions_a.html create mode 100644 docs/search/functions_a.js create mode 100644 docs/search/functions_b.html create mode 100644 docs/search/functions_b.js create mode 100644 docs/search/functions_c.html create mode 100644 docs/search/functions_c.js create mode 100644 docs/search/functions_d.html create mode 100644 docs/search/functions_d.js create mode 100644 docs/search/functions_e.html create mode 100644 docs/search/functions_e.js create mode 100644 docs/search/functions_f.html create mode 100644 docs/search/functions_f.js create mode 100644 docs/search/mag_sel.png create mode 100644 docs/search/namespaces_0.html create mode 100644 docs/search/namespaces_0.js create mode 100644 docs/search/namespaces_1.html create mode 100644 docs/search/namespaces_1.js create mode 100644 docs/search/nomatches.html create mode 100644 docs/search/pages_0.html create mode 100644 docs/search/pages_0.js create mode 100644 docs/search/pages_1.html create mode 100644 docs/search/pages_1.js create mode 100644 docs/search/pages_2.html create mode 100644 docs/search/pages_2.js create mode 100644 docs/search/pages_3.html create mode 100644 docs/search/pages_3.js create mode 100644 docs/search/search.css create mode 100644 docs/search/search.js create mode 100644 docs/search/search_l.png create mode 100644 docs/search/search_m.png create mode 100644 docs/search/search_r.png create mode 100644 docs/search/searchdata.js create mode 100644 docs/search/typedefs_0.html create mode 100644 docs/search/typedefs_0.js create mode 100644 docs/search/typedefs_1.html create mode 100644 docs/search/typedefs_1.js create mode 100644 docs/search/typedefs_2.html create mode 100644 docs/search/typedefs_2.js create mode 100644 docs/search/typedefs_3.html create mode 100644 docs/search/typedefs_3.js create mode 100644 docs/search/typedefs_4.html create mode 100644 docs/search/typedefs_4.js create mode 100644 docs/search/typedefs_5.html create mode 100644 docs/search/typedefs_5.js create mode 100644 docs/search/typedefs_6.html create mode 100644 docs/search/typedefs_6.js create mode 100644 docs/search/typedefs_7.html create mode 100644 docs/search/typedefs_7.js create mode 100644 docs/search/typedefs_8.html create mode 100644 docs/search/typedefs_8.js create mode 100644 docs/search/typedefs_9.html create mode 100644 docs/search/typedefs_9.js create mode 100644 docs/search/typedefs_a.html create mode 100644 docs/search/typedefs_a.js create mode 100644 docs/search/variables_0.html create mode 100644 docs/search/variables_0.js create mode 100644 docs/search/variables_1.html create mode 100644 docs/search/variables_1.js create mode 100644 docs/search/variables_2.html create mode 100644 docs/search/variables_2.js create mode 100644 docs/search/variables_3.html create mode 100644 docs/search/variables_3.js create mode 100644 docs/search/variables_4.html create mode 100644 docs/search/variables_4.js create mode 100644 docs/search/variables_5.html create mode 100644 docs/search/variables_5.js create mode 100644 docs/search/variables_6.html create mode 100644 docs/search/variables_6.js create mode 100644 docs/search/variables_7.html create mode 100644 docs/search/variables_7.js create mode 100644 docs/search/variables_8.html create mode 100644 docs/search/variables_8.js create mode 100644 docs/search/variables_9.html create mode 100644 docs/search/variables_9.js create mode 100644 docs/search/variables_a.html create mode 100644 docs/search/variables_a.js create mode 100644 docs/search/variables_b.html create mode 100644 docs/search/variables_b.js create mode 100644 docs/search/variables_c.html create mode 100644 docs/search/variables_c.js create mode 100644 docs/search/variables_d.html create mode 100644 docs/search/variables_d.js create mode 100644 docs/search/variables_e.html create mode 100644 docs/search/variables_e.js create mode 100644 docs/search/variables_f.html create mode 100644 docs/search/variables_f.js create mode 100644 docs/shape_8cpp.html create mode 100644 docs/shape_8hpp.html create mode 100644 docs/shape_8hpp_source.html create mode 100644 docs/shear_8cpp.html create mode 100644 docs/shear_8hpp.html create mode 100644 docs/shear_8hpp_source.html create mode 100644 docs/source_8cpp.html create mode 100644 docs/source_8hpp.html create mode 100644 docs/source_8hpp_source.html create mode 100644 docs/splitbar.png create mode 100644 docs/string_8cpp.html create mode 100644 docs/string_8hpp.html create mode 100644 docs/string_8hpp_source.html create mode 100644 docs/struct_a_p_i-members.html create mode 100644 docs/struct_a_p_i.html create mode 100644 docs/struct_a_p_i.png create mode 100644 docs/struct_c_o_o_r_d-members.html create mode 100644 docs/struct_c_o_o_r_d.html create mode 100644 docs/struct_c_o_o_r_d.png create mode 100644 docs/struct_d_t_y_p_e-members.html create mode 100644 docs/struct_d_t_y_p_e.html create mode 100644 docs/struct_d_t_y_p_e.png create mode 100644 docs/struct_f_u_n_c_t_o_r.html create mode 100644 docs/struct_f_u_n_c_t_o_r.png create mode 100644 docs/struct_l_o_g-members.html create mode 100644 docs/struct_l_o_g.html create mode 100644 docs/struct_l_o_g.png create mode 100644 docs/struct_n_o_d_e-members.html create mode 100644 docs/struct_n_o_d_e.html create mode 100644 docs/struct_n_o_d_e.png create mode 100644 docs/struct_r_e_g_r_e_s_s.html create mode 100644 docs/struct_r_e_g_r_e_s_s.png create mode 100644 docs/struct_s_h_a_p_e-members.html create mode 100644 docs/struct_s_h_a_p_e.html create mode 100644 docs/struct_s_h_a_p_e.png create mode 100644 docs/struct_t_e_n_s_o_r.html create mode 100644 docs/struct_t_e_n_s_o_r.png create mode 100644 docs/struct_test_logger-members.html create mode 100644 docs/struct_test_logger.html create mode 100644 docs/struct_test_logger.png create mode 100644 docs/structade_1_1_coord_map-members.html create mode 100644 docs/structade_1_1_coord_map.html create mode 100644 docs/structade_1_1_coord_map.png create mode 100644 docs/structade_1_1_def_logger-members.html create mode 100644 docs/structade_1_1_def_logger.html create mode 100644 docs/structade_1_1_def_logger.png create mode 100644 docs/structade_1_1_functor-members.html create mode 100644 docs/structade_1_1_functor.html create mode 100644 docs/structade_1_1_functor.png create mode 100644 docs/structade_1_1_path_finder-members.html create mode 100644 docs/structade_1_1_path_finder.html create mode 100644 docs/structade_1_1_path_finder.png create mode 100644 docs/structade_1_1_shape-members.html create mode 100644 docs/structade_1_1_shape.html create mode 100644 docs/structade_1_1_tensor-members.html create mode 100644 docs/structade_1_1_tensor.html create mode 100644 docs/structade_1_1_tensor.png create mode 100644 docs/structade_1_1_tensorptr-members.html create mode 100644 docs/structade_1_1_tensorptr.html create mode 100644 docs/structade_1_1i_coord_map-members.html create mode 100644 docs/structade_1_1i_coord_map.html create mode 100644 docs/structade_1_1i_coord_map.png create mode 100644 docs/structade_1_1i_functor-members.html create mode 100644 docs/structade_1_1i_functor.html create mode 100644 docs/structade_1_1i_functor.png create mode 100644 docs/structade_1_1i_logger-members.html create mode 100644 docs/structade_1_1i_logger.html create mode 100644 docs/structade_1_1i_logger.png create mode 100644 docs/structade_1_1i_tensor-members.html create mode 100644 docs/structade_1_1i_tensor.html create mode 100644 docs/structade_1_1i_tensor.png create mode 100644 docs/structade_1_1i_traveler-members.html create mode 100644 docs/structade_1_1i_traveler.html create mode 100644 docs/structade_1_1i_traveler.png create mode 100644 docs/structllo_1_1_data_node-members.html create mode 100644 docs/structllo_1_1_data_node.html create mode 100644 docs/structllo_1_1_data_node.png create mode 100644 docs/structllo_1_1_eval_ctx-members.html create mode 100644 docs/structllo_1_1_eval_ctx.html create mode 100644 docs/structllo_1_1_evaluator-members.html create mode 100644 docs/structllo_1_1_evaluator.html create mode 100644 docs/structllo_1_1_evaluator.png create mode 100644 docs/structllo_1_1_executer-members.html create mode 100644 docs/structllo_1_1_executer.html create mode 100644 docs/structllo_1_1_executer_3_01ade_1_1_c_o_p_y_00_01_t_01_4-members.html create mode 100644 docs/structllo_1_1_executer_3_01ade_1_1_c_o_p_y_00_01_t_01_4.html create mode 100644 docs/structllo_1_1_executer_3_01ade_1_1_r_a_n_d___b_i_n_o_00_01_t_01_4-members.html create mode 100644 docs/structllo_1_1_executer_3_01ade_1_1_r_a_n_d___b_i_n_o_00_01_t_01_4.html create mode 100644 docs/structllo_1_1_generic_data-members.html create mode 100644 docs/structllo_1_1_generic_data.html create mode 100644 docs/structllo_1_1_generic_ref-members.html create mode 100644 docs/structllo_1_1_generic_ref.html create mode 100644 docs/structllo_1_1_graph_stat-members.html create mode 100644 docs/structllo_1_1_graph_stat.html create mode 100644 docs/structllo_1_1_graph_stat.png create mode 100644 docs/structllo_1_1_place_holder-members.html create mode 100644 docs/structllo_1_1_place_holder.html create mode 100644 docs/structllo_1_1_place_holder.png create mode 100644 docs/structllo_1_1_source-members.html create mode 100644 docs/structllo_1_1_source.html create mode 100644 docs/structllo_1_1_source.png create mode 100644 docs/structllo_1_1_vec_ref-members.html create mode 100644 docs/structllo_1_1_vec_ref.html create mode 100644 docs/structllo_1_1i_source-members.html create mode 100644 docs/structllo_1_1i_source.html create mode 100644 docs/structllo_1_1i_source.png create mode 100644 docs/sync_off.png create mode 100644 docs/sync_on.png create mode 100644 docs/tab_a.png create mode 100644 docs/tab_b.png create mode 100644 docs/tab_h.png create mode 100644 docs/tab_s.png create mode 100644 docs/tabs.css create mode 100644 docs/tensor_8cpp.html create mode 100644 docs/tensor_8hpp.html create mode 100644 docs/tensor_8hpp_source.html create mode 100644 docs/test__api_8cpp.html create mode 100644 docs/test__coord_8cpp.html create mode 100644 docs/test__dtype_8cpp.html create mode 100644 docs/test__functor_8cpp.html create mode 100644 docs/test__grader_8cpp.html create mode 100644 docs/test__load_8cpp.html create mode 100644 docs/test__log_8cpp.html create mode 100644 docs/test__node_8cpp.html create mode 100644 docs/test__save_8cpp.html create mode 100644 docs/test__shape_8cpp.html create mode 100644 docs/test__string_8cpp.html create mode 100644 docs/test__tensor_8cpp.html create mode 100644 docs/traveler_8hpp.html create mode 100644 docs/traveler_8hpp_source.html diff --git a/docs/_r_e_a_d_m_e_8md.html b/docs/_r_e_a_d_m_e_8md.html new file mode 100644 index 000000000..9bc684ede --- /dev/null +++ b/docs/_r_e_a_d_m_e_8md.html @@ -0,0 +1,76 @@ + + + + + + + +Tenncor: README.md File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
README.md File Reference
+
+
+
+ + + + diff --git a/docs/_r_e_a_d_m_e___a_d_e_8md.html b/docs/_r_e_a_d_m_e___a_d_e_8md.html new file mode 100644 index 000000000..84b4e1c81 --- /dev/null +++ b/docs/_r_e_a_d_m_e___a_d_e_8md.html @@ -0,0 +1,76 @@ + + + + + + + +Tenncor: ade/README_ADE.md File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
ade/README_ADE.md File Reference
+
+
+
+ + + + diff --git a/docs/_r_e_a_d_m_e___l_l_o_8md.html b/docs/_r_e_a_d_m_e___l_l_o_8md.html new file mode 100644 index 000000000..5c569006c --- /dev/null +++ b/docs/_r_e_a_d_m_e___l_l_o_8md.html @@ -0,0 +1,76 @@ + + + + + + + +Tenncor: llo/README_LLO.md File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
llo/README_LLO.md File Reference
+
+
+
+ + + + diff --git a/docs/_r_e_a_d_m_e___p_b_m_8md.html b/docs/_r_e_a_d_m_e___p_b_m_8md.html new file mode 100644 index 000000000..f7d8f3c23 --- /dev/null +++ b/docs/_r_e_a_d_m_e___p_b_m_8md.html @@ -0,0 +1,76 @@ + + + + + + + +Tenncor: pbm/README_PBM.md File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
pbm/README_PBM.md File Reference
+
+
+
+ + + + diff --git a/docs/ade_2test_2dynamic_2main_8cpp.html b/docs/ade_2test_2dynamic_2main_8cpp.html new file mode 100644 index 000000000..5f776824e --- /dev/null +++ b/docs/ade_2test_2dynamic_2main_8cpp.html @@ -0,0 +1,119 @@ + + + + + + + +Tenncor: ade/test/dynamic/main.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
main.cpp File Reference
+
+
+
#include "gtest/gtest.h"
+#include "testutil/common.hpp"
+
+ + + +

+Functions

int main (int argc, char **argv)
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int argc,
char ** argv 
)
+
+ +
+
+
+ + + + diff --git a/docs/ade_2test_2log_2main_8cpp.html b/docs/ade_2test_2log_2main_8cpp.html new file mode 100644 index 000000000..07e5bb2a9 --- /dev/null +++ b/docs/ade_2test_2log_2main_8cpp.html @@ -0,0 +1,140 @@ + + + + + + + +Tenncor: ade/test/log/main.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
main.cpp File Reference
+
+
+
#include "gtest/gtest.h"
+#include "ade/test/log/common.hpp"
+
+ + + +

+Functions

int main (int argc, char **argv)
 
+ + + +

+Variables

std::shared_ptr< TestLoggertlogger = std::make_shared<TestLogger>()
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int argc,
char ** argv 
)
+
+ +
+
+

Variable Documentation

+ +

◆ tlogger

+ +
+
+ + + + +
std::shared_ptr<TestLogger> tlogger = std::make_shared<TestLogger>()
+
+ +
+
+
+ + + + diff --git a/docs/ade_2test_2static_2main_8cpp.html b/docs/ade_2test_2static_2main_8cpp.html new file mode 100644 index 000000000..afc772e9d --- /dev/null +++ b/docs/ade_2test_2static_2main_8cpp.html @@ -0,0 +1,118 @@ + + + + + + + +Tenncor: ade/test/static/main.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
main.cpp File Reference
+
+
+
#include "gtest/gtest.h"
+
+ + + +

+Functions

int main (int argc, char **argv)
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int argc,
char ** argv 
)
+
+ +
+
+
+ + + + diff --git a/docs/annotated.html b/docs/annotated.html new file mode 100644 index 000000000..90165ac52 --- /dev/null +++ b/docs/annotated.html @@ -0,0 +1,117 @@ + + + + + + + +Tenncor: Class List + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Nade
 CCoordMap
 CDefLoggerDefault implementation of iLogger used in ADE
 CFunctorFunctor of the graph mapping to operators specified by opcode argument
 CiCoordMapInterface for transforming coordinates and reversing the coordinate
 CiFunctorInterface of OPCODE-defined operation node
 CiLoggerInterface of logger used in ADE
 CiTensorInterface of traversible and differentiable nodes with shape information
 CiTravelerInterface to travel through graph, treating Tensor and iFunctor differently
 CPathFinder
 CShape
 CTensorLeaf of the graph commonly representing the variable in an equation
 CTensorptrSmart pointer to iTensor ensuring non-null references
 Nllo
 CDataNode
 CEvalCtxContext used to associate ade nodes to llo nodes under a particular graph
 CEvaluator
 CExecuter
 CExecuter< ade::COPY, T >
 CExecuter< ade::RAND_BINO, T >
 CGenericDataGenericData for holding data when passing up the tensor graph
 CGenericRef
 CGraphStat
 CiSourceInterface for leaves with tensor data
 CPlaceHolderDataNode of a leaf that can be assignable by data vectors
 CSourceLeaf evaluable holding tensor data
 CVecRef
 CAPI
 CCOORD
 CDTYPE
 CFUNCTOR
 CLOG
 CNODE
 CREGRESS
 CSHAPE
 CTENSOR
 CTestLogger
+
+
+ + + + diff --git a/docs/api_8cpp.html b/docs/api_8cpp.html new file mode 100644 index 000000000..ac856b9e1 --- /dev/null +++ b/docs/api_8cpp.html @@ -0,0 +1,203 @@ + + + + + + + +Tenncor: llo/src/api.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
api.cpp File Reference
+
+
+
#include "ade/functor.hpp"
+#include "llo/api.hpp"
+
+ + + +

+Namespaces

 llo
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

DataNode llo::one (ade::Shape shape)
 Returns DataNode with SYMBOLIC_ONE extended to input shape. More...
 
DataNode llo::abs (DataNode arg)
 Element-wise absolute operation. More...
 
DataNode llo::neg (DataNode arg)
 Element-wise negative operation. More...
 
DataNode llo::sin (DataNode arg)
 Element-wise sine operation. More...
 
DataNode llo::cos (DataNode arg)
 Element-wise cosine operation. More...
 
DataNode llo::tan (DataNode arg)
 Element-wise tangent operation. More...
 
DataNode llo::exp (DataNode arg)
 Element-wise exponent operation. More...
 
DataNode llo::log (DataNode arg)
 Element-wise natural log operation. More...
 
DataNode llo::sqrt (DataNode arg)
 Element-wise square root operation. More...
 
DataNode llo::round (DataNode arg)
 Element-wise round operation. More...
 
DataNode llo::flip (DataNode arg, uint8_t dim)
 Flip values of arg along specified dimension. More...
 
DataNode llo::pow (DataNode a, DataNode b)
 Element-wise operation: base ^ exponent. More...
 
DataNode llo::add (DataNode a, DataNode b)
 Element-wise operation: a + b. More...
 
DataNode llo::sum (std::vector< DataNode > args)
 Get Element-wise sum of args. More...
 
DataNode llo::sub (DataNode a, DataNode b)
 Element-wise operation: a - b. More...
 
DataNode llo::mul (DataNode a, DataNode b)
 Element-wise operation: a///b. More...
 
DataNode llo::prod (std::vector< DataNode > args)
 Get Element-wise product of args. More...
 
DataNode llo::div (DataNode a, DataNode b)
 Element-wise operation: a / b. More...
 
DataNode llo::eq (DataNode a, DataNode b)
 Element-wise operation: a == b. More...
 
DataNode llo::neq (DataNode a, DataNode b)
 Element-wise operation: a != b. More...
 
DataNode llo::lt (DataNode a, DataNode b)
 Element-wise operation: a < b. More...
 
DataNode llo::gt (DataNode a, DataNode b)
 Element-wise operation: a > b. More...
 
DataNode llo::min (std::vector< DataNode > args)
 Get Element-wise minimum of args. More...
 
DataNode llo::max (std::vector< DataNode > args)
 Get Element-wise maximum of args. More...
 
DataNode llo::clip (DataNode x, DataNode lo, DataNode hi)
 
DataNode llo::rand_binom (DataNode ntrials, DataNode prob)
 Generate random numbers according to std::binomial_distribution(a, b) More...
 
DataNode llo::rand_uniform (DataNode lower, DataNode upper)
 Generate random numbers according to std::uniform_distributon(a, b) More...
 
DataNode llo::rand_normal (DataNode mean, DataNode stdev)
 Generate random numbers according to std::normal_distribution(a, b) More...
 
DataNode llo::n_elems (DataNode arg)
 Get n_elem of input shape as value. More...
 
DataNode llo::n_dims (DataNode arg, uint8_t dim)
 Get value at specified dimension of input shape. More...
 
DataNode llo::reduce_max (DataNode arg)
 Get the max value. More...
 
DataNode llo::reduce_max (DataNode arg, uint8_t groupidx)
 Apply reduce_max to elements of coordinate range [groupidx:]. More...
 
DataNode llo::reduce_sum (DataNode arg)
 Get the sum of all values. More...
 
DataNode llo::reduce_sum (DataNode arg, uint8_t groupidx)
 Apply reduce_sum to elements of coordinate range [groupidx:]. More...
 
DataNode llo::permute (DataNode arg, std::vector< uint8_t > order)
 
DataNode llo::extend (DataNode arg, uint8_t after, std::vector< uint8_t > ext)
 
DataNode llo::matmul (DataNode a, DataNode b)
 
DataNode llo::convolute (DataNode canvas, DataNode window)
 
+
+ + + + diff --git a/docs/api_8hpp.html b/docs/api_8hpp.html new file mode 100644 index 000000000..eda7e55d0 --- /dev/null +++ b/docs/api_8hpp.html @@ -0,0 +1,225 @@ + + + + + + + +Tenncor: llo/api.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
api.hpp File Reference
+
+
+
#include "llo/node.hpp"
+
+

Go to the source code of this file.

+ + + + +

+Namespaces

 llo
 
+ + + +

+Macros

#define LLO_API_HPP
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

DataNode llo::one (ade::Shape shape)
 Returns DataNode with SYMBOLIC_ONE extended to input shape. More...
 
DataNode llo::abs (DataNode arg)
 Element-wise absolute operation. More...
 
DataNode llo::neg (DataNode arg)
 Element-wise negative operation. More...
 
DataNode llo::sin (DataNode arg)
 Element-wise sine operation. More...
 
DataNode llo::cos (DataNode arg)
 Element-wise cosine operation. More...
 
DataNode llo::tan (DataNode arg)
 Element-wise tangent operation. More...
 
DataNode llo::exp (DataNode arg)
 Element-wise exponent operation. More...
 
DataNode llo::log (DataNode arg)
 Element-wise natural log operation. More...
 
DataNode llo::sqrt (DataNode arg)
 Element-wise square root operation. More...
 
DataNode llo::round (DataNode arg)
 Element-wise round operation. More...
 
DataNode llo::flip (DataNode arg, uint8_t dim)
 Flip values of arg along specified dimension. More...
 
DataNode llo::pow (DataNode a, DataNode b)
 Element-wise operation: base ^ exponent. More...
 
DataNode llo::add (DataNode a, DataNode b)
 Element-wise operation: a + b. More...
 
DataNode llo::sum (std::vector< DataNode > args)
 Get Element-wise sum of args. More...
 
DataNode llo::sub (DataNode a, DataNode b)
 Element-wise operation: a - b. More...
 
DataNode llo::mul (DataNode a, DataNode b)
 Element-wise operation: a///b. More...
 
DataNode llo::prod (std::vector< DataNode > args)
 Get Element-wise product of args. More...
 
DataNode llo::div (DataNode a, DataNode b)
 Element-wise operation: a / b. More...
 
DataNode llo::eq (DataNode a, DataNode b)
 Element-wise operation: a == b. More...
 
DataNode llo::neq (DataNode a, DataNode b)
 Element-wise operation: a != b. More...
 
DataNode llo::lt (DataNode a, DataNode b)
 Element-wise operation: a < b. More...
 
DataNode llo::gt (DataNode a, DataNode b)
 Element-wise operation: a > b. More...
 
DataNode llo::min (std::vector< DataNode > args)
 Get Element-wise minimum of args. More...
 
DataNode llo::max (std::vector< DataNode > args)
 Get Element-wise maximum of args. More...
 
DataNode llo::clip (DataNode x, DataNode lo, DataNode hi)
 
DataNode llo::rand_binom (DataNode ntrials, DataNode prob)
 Generate random numbers according to std::binomial_distribution(a, b) More...
 
DataNode llo::rand_uniform (DataNode lower, DataNode upper)
 Generate random numbers according to std::uniform_distributon(a, b) More...
 
DataNode llo::rand_normal (DataNode mean, DataNode stdev)
 Generate random numbers according to std::normal_distribution(a, b) More...
 
DataNode llo::n_elems (DataNode arg)
 Get n_elem of input shape as value. More...
 
DataNode llo::n_dims (DataNode arg, uint8_t dim)
 Get value at specified dimension of input shape. More...
 
DataNode llo::reduce_max (DataNode arg)
 Get the max value. More...
 
DataNode llo::reduce_max (DataNode arg, uint8_t groupidx)
 Apply reduce_max to elements of coordinate range [groupidx:]. More...
 
DataNode llo::reduce_sum (DataNode arg)
 Get the sum of all values. More...
 
DataNode llo::reduce_sum (DataNode arg, uint8_t groupidx)
 Apply reduce_sum to elements of coordinate range [groupidx:]. More...
 
DataNode llo::permute (DataNode arg, std::vector< uint8_t > order)
 
DataNode llo::extend (DataNode arg, uint8_t after, std::vector< uint8_t > ext)
 
DataNode llo::matmul (DataNode a, DataNode b)
 
+

Macro Definition Documentation

+ +

◆ LLO_API_HPP

+ +
+
+ + + + +
#define LLO_API_HPP
+
+

api.hpp llo

+

Purpose: Define API to easily build equations

+ +
+
+
+ + + + diff --git a/docs/api_8hpp_source.html b/docs/api_8hpp_source.html new file mode 100644 index 000000000..71d324631 --- /dev/null +++ b/docs/api_8hpp_source.html @@ -0,0 +1,119 @@ + + + + + + + +Tenncor: llo/api.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
api.hpp
+
+
+Go to the documentation of this file.
1 
9 #include "llo/node.hpp"
10 
11 #ifndef LLO_API_HPP
12 #define LLO_API_HPP
13 
14 namespace llo
15 {
16 
18 DataNode one (ade::Shape shape);
19 
21 DataNode abs (DataNode arg);
22 
24 DataNode neg (DataNode arg);
25 
27 DataNode sin (DataNode arg);
28 
30 DataNode cos (DataNode arg);
31 
33 DataNode tan (DataNode arg);
34 
36 DataNode exp (DataNode arg);
37 
39 DataNode log (DataNode arg);
40 
42 DataNode sqrt (DataNode arg);
43 
45 DataNode round (DataNode arg);
46 
48 DataNode flip (DataNode arg, uint8_t dim);
49 
52 
55 
57 DataNode sum (std::vector<DataNode> args);
58 
61 
64 
66 DataNode prod (std::vector<DataNode> args);
67 
70 
73 
76 
79 
82 
84 DataNode min (std::vector<DataNode> args);
85 
87 DataNode max (std::vector<DataNode> args);
88 
92 
94 DataNode rand_binom (DataNode ntrials, DataNode prob);
95 
97 DataNode rand_uniform (DataNode lower, DataNode upper);
98 
100 DataNode rand_normal (DataNode mean, DataNode stdev);
101 
104 
106 DataNode n_dims (DataNode arg, uint8_t dim);
107 
110 
112 DataNode reduce_max (DataNode arg, uint8_t groupidx);
113 
116 
118 DataNode reduce_sum (DataNode arg, uint8_t groupidx);
119 
123 DataNode permute (DataNode arg, std::vector<uint8_t> order);
124 
127 DataNode extend (DataNode arg, uint8_t after, std::vector<uint8_t> ext);
128 
132 
133 // // NOT IMPLEMENTED
134 // DataNode convolute (DataNode canvas, DataNode window);
135 
136 }
137 
138 #endif // LLO_API_HPP
DataNode div(DataNode a, DataNode b)
Element-wise operation: a / b.
Definition: api.cpp:127
+
DataNode eq(DataNode a, DataNode b)
Element-wise operation: a == b.
Definition: api.cpp:136
+
DataNode neq(DataNode a, DataNode b)
Element-wise operation: a != b.
Definition: api.cpp:145
+
DataNode clip(DataNode x, DataNode lo, DataNode hi)
Definition: api.cpp:196
+
DataNode add(DataNode a, DataNode b)
Element-wise operation: a + b.
Definition: api.cpp:84
+
DataNode exp(DataNode arg)
Element-wise exponent operation.
Definition: api.cpp:45
+
DataNode flip(DataNode arg, uint8_t dim)
Flip values of arg along specified dimension.
Definition: api.cpp:69
+
DataNode tan(DataNode arg)
Element-wise tangent operation.
Definition: api.cpp:39
+
DataNode rand_normal(DataNode mean, DataNode stdev)
Generate random numbers according to std::normal_distribution(a, b)
Definition: api.cpp:219
+
DataNode lt(DataNode a, DataNode b)
Element-wise operation: a < b.
Definition: api.cpp:154
+
DataNode sqrt(DataNode arg)
Element-wise square root operation.
Definition: api.cpp:57
+
DataNode n_elems(DataNode arg)
Get n_elem of input shape as value.
Definition: api.cpp:228
+
DataNode prod(std::vector< DataNode > args)
Get Element-wise product of args.
Definition: api.cpp:115
+
DataNode n_dims(DataNode arg, uint8_t dim)
Get value at specified dimension of input shape.
Definition: api.cpp:233
+
DataNode neg(DataNode arg)
Element-wise negative operation.
Definition: api.cpp:21
+
DataNode cos(DataNode arg)
Element-wise cosine operation.
Definition: api.cpp:33
+
DataNode one(ade::Shape shape)
Returns DataNode with SYMBOLIC_ONE extended to input shape.
Definition: api.cpp:10
+
DataNode permute(DataNode arg, std::vector< uint8_t > order)
Definition: api.cpp:264
+
DataNode max(std::vector< DataNode > args)
Get Element-wise maximum of args.
Definition: api.cpp:184
+
DataNode mul(DataNode a, DataNode b)
Element-wise operation: a///b.
Definition: api.cpp:110
+
DataNode reduce_sum(DataNode arg)
Get the sum of all values.
Definition: api.cpp:251
+
DataNode rand_binom(DataNode ntrials, DataNode prob)
Generate random numbers according to std::binomial_distribution(a, b)
Definition: api.cpp:201
+
DataNode extend(DataNode arg, uint8_t after, std::vector< uint8_t > ext)
Definition: api.cpp:270
+
DataNode reduce_max(DataNode arg)
Get the max value.
Definition: api.cpp:238
+
Definition: shape.hpp:51
+
DataNode gt(DataNode a, DataNode b)
Element-wise operation: a > b.
Definition: api.cpp:163
+
DataNode rand_uniform(DataNode lower, DataNode upper)
Generate random numbers according to std::uniform_distributon(a, b)
Definition: api.cpp:210
+
DataNode sub(DataNode a, DataNode b)
Element-wise operation: a - b.
Definition: api.cpp:101
+ +
Definition: api.hpp:14
+
DataNode round(DataNode arg)
Element-wise round operation.
Definition: api.cpp:63
+
Definition: eval.hpp:132
+
DataNode pow(DataNode a, DataNode b)
Element-wise operation: base ^ exponent.
Definition: api.cpp:75
+
DataNode abs(DataNode arg)
Element-wise absolute operation.
Definition: api.cpp:15
+
DataNode sin(DataNode arg)
Element-wise sine operation.
Definition: api.cpp:27
+
DataNode sum(std::vector< DataNode > args)
Get Element-wise sum of args.
Definition: api.cpp:89
+
DataNode min(std::vector< DataNode > args)
Get Element-wise minimum of args.
Definition: api.cpp:172
+
DataNode matmul(DataNode a, DataNode b)
Definition: api.cpp:276
+
DataNode log(DataNode arg)
Element-wise natural log operation.
Definition: api.cpp:51
+
+ + + + diff --git a/docs/bc_s.png b/docs/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/docs/bdwn.png b/docs/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + + +Tenncor: Class Index + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
a | c | d | e | f | g | i | l | n | p | r | s | t | v
+ + + + + + + + + + + + + + + + + +
  a  
+
Evaluator (llo)   
  i  
+
  p  
+
TENSOR   
Executer (llo)   Tensorptr (ade)   
API   Executer< ade::COPY, T > (llo)   iCoordMap (ade)   PathFinder (ade)   TestLogger   
  c  
+
Executer< ade::RAND_BINO, T > (llo)   iFunctor (ade)   PlaceHolder (llo)   
  v  
+
  f  
+
iLogger (ade)   
  r  
+
COORD   iSource (llo)   VecRef (llo)   
CoordMap (ade)   Functor (ade)   iTensor (ade)   REGRESS   
  d  
+
FUNCTOR   iTraveler (ade)   
  s  
+
  g  
+
  l  
+
DataNode (llo)   SHAPE   
DefLogger (ade)   GenericData (llo)   LOG   Shape (ade)   
DTYPE   GenericRef (llo)   
  n  
+
Source (llo)   
  e  
+
GraphStat (llo)   
  t  
+
NODE   
EvalCtx (llo)   Tensor (ade)   
+
a | c | d | e | f | g | i | l | n | p | r | s | t | v
+
+ + + + diff --git a/docs/closed.png b/docs/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/docs/common_8hpp.html b/docs/common_8hpp.html new file mode 100644 index 000000000..110dae8f8 --- /dev/null +++ b/docs/common_8hpp.html @@ -0,0 +1,112 @@ + + + + + + + +Tenncor: ade/test/log/common.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
common.hpp File Reference
+
+
+
#include "ade/log/log.hpp"
+
+

Go to the source code of this file.

+ + + + +

+Classes

struct  TestLogger
 
+ + + +

+Variables

std::shared_ptr< TestLoggertlogger
 
+

Variable Documentation

+ +

◆ tlogger

+ +
+
+ + + + +
std::shared_ptr<TestLogger> tlogger
+
+ +
+
+
+ + + + diff --git a/docs/common_8hpp_source.html b/docs/common_8hpp_source.html new file mode 100644 index 000000000..06e167141 --- /dev/null +++ b/docs/common_8hpp_source.html @@ -0,0 +1,90 @@ + + + + + + + +Tenncor: ade/test/log/common.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
common.hpp
+
+
+Go to the documentation of this file.
1 #include "ade/log/log.hpp"
2 
3 struct TestLogger : public ade::iLogger
4 {
5  static std::string latest_warning_;
6  static std::string latest_error_;
7  static std::string latest_fatal_;
8 
9  void warn (std::string msg) const override
10  {
11  latest_warning_ = msg;
12  }
13 
14  void error (std::string msg) const override
15  {
16  latest_error_ = msg;
17  }
18 
19  void fatal (std::string msg) const override
20  {
21  latest_fatal_ = msg;
22  }
23 };
24 
25 extern std::shared_ptr<TestLogger> tlogger;
void fatal(std::string msg) const override
Notify user of message regarding fatal error, then finish him.
Definition: common.hpp:19
+
static std::string latest_error_
Definition: common.hpp:6
+
static std::string latest_warning_
Definition: common.hpp:5
+
Interface of logger used in ADE.
Definition: log.hpp:21
+
void warn(std::string msg) const override
Warn user of message regarding poor decisions.
Definition: common.hpp:9
+
static std::string latest_fatal_
Definition: common.hpp:7
+
void error(std::string msg) const override
Notify user of message regarding recoverable error.
Definition: common.hpp:14
+
std::shared_ptr< TestLogger > tlogger
Definition: main.cpp:11
+
Definition: common.hpp:3
+ +
+ + + + diff --git a/docs/coord_8cpp.html b/docs/coord_8cpp.html new file mode 100644 index 000000000..8a9886f19 --- /dev/null +++ b/docs/coord_8cpp.html @@ -0,0 +1,83 @@ + + + + + + + +Tenncor: ade/src/coord.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
coord.cpp File Reference
+
+
+
#include <cmath>
+#include "ade/log/log.hpp"
+#include "ade/coord.hpp"
+
+ + + + diff --git a/docs/coord_8hpp.html b/docs/coord_8hpp.html new file mode 100644 index 000000000..cd92f5fa1 --- /dev/null +++ b/docs/coord_8hpp.html @@ -0,0 +1,155 @@ + + + + + + + +Tenncor: ade/coord.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
coord.hpp File Reference
+
+
+
#include <cstring>
+#include <functional>
+#include "ade/shape.hpp"
+#include "ade/matops.hpp"
+
+

Go to the source code of this file.

+ + + + + + + +

+Classes

struct  ade::iCoordMap
 Interface for transforming coordinates and reversing the coordinate. More...
 
struct  ade::CoordMap
 
+ + + +

+Namespaces

 ade
 
+ + + +

+Macros

#define ADE_COORD_HPP
 
+ + + + +

+Typedefs

using ade::CoordPtrT = std::shared_ptr< iCoordMap >
 Type of iCoordMap smartpointer. More...
 
+ + + + + + + + + + + + +

+Functions

Shape ade::map_shape (CoordPtrT &mapper, const Shape &shape)
 Return transformed shape according to coordinate mapper on input shape. More...
 
CoordPtrT ade::reduce (uint8_t rank, std::vector< DimT > red)
 
CoordPtrT ade::extend (uint8_t rank, std::vector< DimT > ext)
 
CoordPtrT ade::permute (std::vector< uint8_t > order)
 
CoordPtrT ade::flip (uint8_t dim)
 
+ + + + +

+Variables

CoordPtrT ade::identity
 Identity matrix instance. More...
 
+

Macro Definition Documentation

+ +

◆ ADE_COORD_HPP

+ +
+
+ + + + +
#define ADE_COORD_HPP
+
+

coord.hpp ade

+

Purpose: Define shape/coordinate transformation functions

+ +
+
+
+ + + + diff --git a/docs/coord_8hpp_source.html b/docs/coord_8hpp_source.html new file mode 100644 index 000000000..9b02c99fe --- /dev/null +++ b/docs/coord_8hpp_source.html @@ -0,0 +1,113 @@ + + + + + + + +Tenncor: ade/coord.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
coord.hpp
+
+
+Go to the documentation of this file.
1 
9 #include <cstring>
10 #include <functional>
11 
12 #include "ade/shape.hpp"
13 #include "ade/matops.hpp"
14 
15 #ifndef ADE_COORD_HPP
16 #define ADE_COORD_HPP
17 
18 namespace ade
19 {
20 
22 struct iCoordMap
23 {
24  virtual ~iCoordMap (void) = default;
25 
27  virtual void forward (CoordT::iterator out,
28  CoordT::const_iterator in) const = 0;
29 
31  virtual void backward (CoordT::iterator out,
32  CoordT::const_iterator in) const = 0;
33 
36  virtual iCoordMap* reverse (void) const = 0;
37 
39  virtual std::string to_string (void) const = 0;
40 
43  virtual void access (std::function<void(const MatrixT&)> cb) const = 0;
44 };
45 
48 struct CoordMap final : public iCoordMap
49 {
50  CoordMap (std::function<void(MatrixT)> init)
51  {
52  std::memset(fwd_, 0, mat_size);
53  fwd_[rank_cap][rank_cap] = 1;
54  init(fwd_);
55  inverse(bwd_, fwd_);
56  }
57 
59  void forward (CoordT::iterator out,
60  CoordT::const_iterator in) const override;
61 
63  void backward (CoordT::iterator out,
64  CoordT::const_iterator in) const override;
65 
67  iCoordMap* reverse (void) const override
68  {
69  return new CoordMap(bwd_, fwd_);
70  }
71 
73  std::string to_string (void) const override
74  {
75  return ade::to_string(fwd_);
76  }
77 
79  void access (std::function<void(const MatrixT&)> cb) const override
80  {
81  cb(fwd_);
82  }
83 
84 private:
85  CoordMap (const MatrixT fwd, const MatrixT bwd)
86  {
87  std::memcpy(fwd_, fwd, mat_size);
88  std::memcpy(bwd_, bwd, mat_size);
89  }
90 
93 
96 };
97 
99 using CoordPtrT = std::shared_ptr<iCoordMap>;
100 
102 extern CoordPtrT identity;
103 
105 Shape map_shape (CoordPtrT& mapper, const Shape& shape);
106 
111 CoordPtrT reduce (uint8_t rank, std::vector<DimT> red);
112 
117 CoordPtrT extend (uint8_t rank, std::vector<DimT> ext);
118 
127 CoordPtrT permute (std::vector<uint8_t> order);
128 
132 CoordPtrT flip (uint8_t dim);
133 
134 }
135 
136 #endif // ADE_COORD_HPP
CoordPtrT identity
Identity matrix instance.
+
virtual void forward(CoordT::iterator out, CoordT::const_iterator in) const =0
Forward transform coordinates.
+
virtual ~iCoordMap(void)=default
+
const uint8_t rank_cap
Number of dimsensions in a shape/coordinate.
Definition: shape.hpp:36
+
virtual std::string to_string(void) const =0
Return string representation of coordinate transformer.
+
CoordPtrT extend(uint8_t rank, std::vector< DimT > ext)
+
std::shared_ptr< iCoordMap > CoordPtrT
Type of iCoordMap smartpointer.
Definition: coord.hpp:99
+
MatrixT bwd_
Inverse of the forward transformation matrix.
Definition: coord.hpp:95
+
void access(std::function< void(const MatrixT &)> cb) const override
Implementation of iCoordMap.
Definition: coord.hpp:79
+
CoordMap(std::function< void(MatrixT)> init)
Definition: coord.hpp:50
+
CoordPtrT reduce(uint8_t rank, std::vector< DimT > red)
+ +
virtual void access(std::function< void(const MatrixT &)> cb) const =0
+
void backward(CoordT::iterator out, CoordT::const_iterator in) const override
Implementation of iCoordMap.
+
Shape map_shape(CoordPtrT &mapper, const Shape &shape)
Return transformed shape according to coordinate mapper on input shape.
+
const size_t mat_size
Number of bytes in a homogeneous matrix.
Definition: matops.hpp:22
+
Interface for transforming coordinates and reversing the coordinate.
Definition: coord.hpp:22
+
double[mat_dim][mat_dim] MatrixT
Coordinate transformation matrix (using homogeneous)
Definition: matops.hpp:25
+ +
Definition: coord.hpp:18
+
Definition: coord.hpp:48
+
std::string to_string(void) const override
Implementation of iCoordMap.
Definition: coord.hpp:73
+
CoordPtrT permute(std::vector< uint8_t > order)
+
void forward(CoordT::iterator out, CoordT::const_iterator in) const override
Implementation of iCoordMap.
+
iCoordMap * reverse(void) const override
Implementation of iCoordMap.
Definition: coord.hpp:67
+
virtual iCoordMap * reverse(void) const =0
+
virtual void backward(CoordT::iterator out, CoordT::const_iterator in) const =0
Reverse transform coordinates.
+
CoordMap(const MatrixT fwd, const MatrixT bwd)
Definition: coord.hpp:85
+
Definition: shape.hpp:51
+
CoordPtrT flip(uint8_t dim)
+
std::string to_string(T arg)
Return string representation for common arguments.
Definition: string.hpp:67
+
MatrixT fwd_
Forward transformation matrix.
Definition: coord.hpp:92
+
void inverse(MatrixT out, const MatrixT &in)
Inverse in matrix and dump to out matrix.
+
+ + + + diff --git a/docs/data_8cpp.html b/docs/data_8cpp.html new file mode 100644 index 000000000..bb016705c --- /dev/null +++ b/docs/data_8cpp.html @@ -0,0 +1,83 @@ + + + + + + + +Tenncor: llo/src/data.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
data.cpp File Reference
+
+
+
#include <cstring>
+#include "ade/log/log.hpp"
+#include "llo/data.hpp"
+
+ + + + diff --git a/docs/data_8hpp.html b/docs/data_8hpp.html new file mode 100644 index 000000000..e79b9961c --- /dev/null +++ b/docs/data_8hpp.html @@ -0,0 +1,107 @@ + + + + + + + +Tenncor: llo/data.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
data.hpp File Reference
+
+
+
#include "ade/tensor.hpp"
+#include "llo/dtype.hpp"
+
+

Go to the source code of this file.

+ + + + + + + +

+Classes

struct  llo::GenericData
 GenericData for holding data when passing up the tensor graph. More...
 
struct  llo::GenericRef
 
+ + + +

+Namespaces

 llo
 
+ + + +

+Functions

void llo::fill_one (char *cptr, size_t n, DTYPE dtype)
 
+
+ + + + diff --git a/docs/data_8hpp_source.html b/docs/data_8hpp_source.html new file mode 100644 index 000000000..f72270d63 --- /dev/null +++ b/docs/data_8hpp_source.html @@ -0,0 +1,99 @@ + + + + + + + +Tenncor: llo/data.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
data.hpp
+
+
+Go to the documentation of this file.
1 
9 #include "ade/tensor.hpp"
10 
11 #include "llo/dtype.hpp"
12 
13 #ifndef LLO_DATA_HPP
14 #define LLO_DATA_HPP
15 
16 namespace llo
17 {
18 
21 {
22  GenericData (void) = default;
23 
24  GenericData (ade::Shape shape, DTYPE dtype);
25 
27  GenericData convert_to (DTYPE dtype) const;
28 
30  std::shared_ptr<char> data_;
31 
34 
37 };
38 
41 struct GenericRef
42 {
43  GenericRef (char* data, ade::Shape shape, DTYPE dtype) :
44  data_(data), shape_(shape), dtype_(dtype) {}
45 
46  GenericRef (GenericData& generic) :
47  data_(generic.data_.get()),
48  shape_(generic.shape_), dtype_(generic.dtype_) {}
49 
51  char* data_;
52 
55 
58 };
59 
60 void fill_one (char* cptr, size_t n, DTYPE dtype);
61 
62 }
63 
64 #endif // LLO_DATA_HPP
Definition: data.hpp:41
+
Definition: dtype.hpp:20
+
GenericRef(GenericData &generic)
Definition: data.hpp:46
+
ade::Shape shape_
Shape of data_.
Definition: data.hpp:33
+
void fill_one(char *cptr, size_t n, DTYPE dtype)
+
DTYPE dtype_
Data type of data_.
Definition: data.hpp:57
+
GenericData convert_to(DTYPE dtype) const
Return data converted to specified input type.
+
GenericData for holding data when passing up the tensor graph.
Definition: data.hpp:20
+ + +
ade::Shape shape_
Shape of data_.
Definition: data.hpp:54
+
Definition: test_dtype.cpp:12
+
Definition: shape.hpp:51
+
std::shared_ptr< char > data_
Smartpointer to a block of untyped data.
Definition: data.hpp:30
+
Definition: api.hpp:14
+
GenericData(void)=default
+
DTYPE dtype_
Data type of data_.
Definition: data.hpp:36
+
char * data_
Raw pointer to a block of untyped data.
Definition: data.hpp:51
+
GenericRef(char *data, ade::Shape shape, DTYPE dtype)
Definition: data.hpp:43
+
+ + + + diff --git a/docs/dir_07f5977f5a29732e6f1f304a9e5526f5.html b/docs/dir_07f5977f5a29732e6f1f304a9e5526f5.html new file mode 100644 index 000000000..d03d2167f --- /dev/null +++ b/docs/dir_07f5977f5a29732e6f1f304a9e5526f5.html @@ -0,0 +1,95 @@ + + + + + + + +Tenncor: pbm Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
pbm Directory Reference
+
+
+ + + + + + +

+Directories

directory  src
 
directory  test
 
+ + + + + +

+Files

file  graph.hpp [code]
 
file  source.hpp [code]
 
+
+ + + + diff --git a/docs/dir_0e9e9c5a190fe51da95abd6edfca7e22.html b/docs/dir_0e9e9c5a190fe51da95abd6edfca7e22.html new file mode 100644 index 000000000..952ae0c5a --- /dev/null +++ b/docs/dir_0e9e9c5a190fe51da95abd6edfca7e22.html @@ -0,0 +1,92 @@ + + + + + + + +Tenncor: llo/test/dynamic Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
dynamic Directory Reference
+
+
+ + + + + + + + + + +

+Files

file  main.cpp
 
file  test_api.cpp
 
file  test_dtype.cpp
 
file  test_node.cpp
 
+
+ + + + diff --git a/docs/dir_1a42f74a9fab480c116ae93efd73ebda.html b/docs/dir_1a42f74a9fab480c116ae93efd73ebda.html new file mode 100644 index 000000000..99830f9dc --- /dev/null +++ b/docs/dir_1a42f74a9fab480c116ae93efd73ebda.html @@ -0,0 +1,98 @@ + + + + + + + +Tenncor: llo/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+ + + + + + + + + + + + + + + + +

+Files

file  api.cpp
 
file  data.cpp
 
file  dtype.cpp
 
file  eval.cpp
 
file  operator.cpp
 
file  opmap.cpp
 
file  shear.cpp
 
+
+ + + + diff --git a/docs/dir_37a5bcfeff8e3f55b6b5ee63a08952c5.html b/docs/dir_37a5bcfeff8e3f55b6b5ee63a08952c5.html new file mode 100644 index 000000000..33677a3c6 --- /dev/null +++ b/docs/dir_37a5bcfeff8e3f55b6b5ee63a08952c5.html @@ -0,0 +1,109 @@ + + + + + + + +Tenncor: llo Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
llo Directory Reference
+
+
+ + + + + + +

+Directories

directory  src
 
directory  test
 
+ + + + + + + + + + + + + + + + + + + +

+Files

file  api.hpp [code]
 
file  data.hpp [code]
 
file  dtype.hpp [code]
 
file  eval.hpp [code]
 
file  node.hpp [code]
 
file  operator.hpp [code]
 
file  opmap.hpp [code]
 
file  shear.hpp [code]
 
file  traveler.hpp [code]
 
+
+ + + + diff --git a/docs/dir_41a258040bf916c8b05d97478d62b805.html b/docs/dir_41a258040bf916c8b05d97478d62b805.html new file mode 100644 index 000000000..7f6217ddf --- /dev/null +++ b/docs/dir_41a258040bf916c8b05d97478d62b805.html @@ -0,0 +1,88 @@ + + + + + + + +Tenncor: llo/test Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
test Directory Reference
+
+
+ + + + + + +

+Directories

directory  dynamic
 
directory  regress
 
+
+ + + + diff --git a/docs/dir_511df3d22a1ba34af54775d379198203.html b/docs/dir_511df3d22a1ba34af54775d379198203.html new file mode 100644 index 000000000..063d7cac1 --- /dev/null +++ b/docs/dir_511df3d22a1ba34af54775d379198203.html @@ -0,0 +1,88 @@ + + + + + + + +Tenncor: ade/test/static Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
static Directory Reference
+
+
+ + + + + + +

+Files

file  main.cpp
 
file  test_grader.cpp
 
+
+ + + + diff --git a/docs/dir_66854d0e4c68907385280347618fc414.html b/docs/dir_66854d0e4c68907385280347618fc414.html new file mode 100644 index 000000000..040fcb733 --- /dev/null +++ b/docs/dir_66854d0e4c68907385280347618fc414.html @@ -0,0 +1,86 @@ + + + + + + + +Tenncor: llo/test/regress Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
regress Directory Reference
+
+
+ + + + +

+Files

file  main.cpp
 
+
+ + + + diff --git a/docs/dir_6f6f00817578f9e8e4d44dd2c955420f.html b/docs/dir_6f6f00817578f9e8e4d44dd2c955420f.html new file mode 100644 index 000000000..1a341e856 --- /dev/null +++ b/docs/dir_6f6f00817578f9e8e4d44dd2c955420f.html @@ -0,0 +1,92 @@ + + + + + + + +Tenncor: ade/log Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
log Directory Reference
+
+
+ + + + + + + + + + +

+Files

file  log.cpp
 
file  log.hpp [code]
 
file  string.cpp
 
file  string.hpp [code]
 
+
+ + + + diff --git a/docs/dir_7b47e1970b7758588b9304009163c23a.html b/docs/dir_7b47e1970b7758588b9304009163c23a.html new file mode 100644 index 000000000..bf2eb014c --- /dev/null +++ b/docs/dir_7b47e1970b7758588b9304009163c23a.html @@ -0,0 +1,92 @@ + + + + + + + +Tenncor: ade/test/log Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
log Directory Reference
+
+
+ + + + + + + + + + +

+Files

file  common.hpp [code]
 
file  main.cpp
 
file  test_log.cpp
 
file  test_string.cpp
 
+
+ + + + diff --git a/docs/dir_8539c1378b24b3c50dae3821abfc68b0.html b/docs/dir_8539c1378b24b3c50dae3821abfc68b0.html new file mode 100644 index 000000000..b7f829cc3 --- /dev/null +++ b/docs/dir_8539c1378b24b3c50dae3821abfc68b0.html @@ -0,0 +1,94 @@ + + + + + + + +Tenncor: ade/test/dynamic Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
dynamic Directory Reference
+
+
+ + + + + + + + + + + + +

+Files

file  main.cpp
 
file  test_coord.cpp
 
file  test_functor.cpp
 
file  test_shape.cpp
 
file  test_tensor.cpp
 
+
+ + + + diff --git a/docs/dir_97757236e3c067dca99452dec566d982.html b/docs/dir_97757236e3c067dca99452dec566d982.html new file mode 100644 index 000000000..c05b88449 --- /dev/null +++ b/docs/dir_97757236e3c067dca99452dec566d982.html @@ -0,0 +1,96 @@ + + + + + + + +Tenncor: ade/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+ + + + + + + + + + + + + + +

+Files

file  coord.cpp
 
file  grader.cpp
 
file  matops.cpp
 
file  opcode.cpp
 
file  shape.cpp
 
file  tensor.cpp
 
+
+ + + + diff --git a/docs/dir_c37806b71f3ece57dc14afd206973995.html b/docs/dir_c37806b71f3ece57dc14afd206973995.html new file mode 100644 index 000000000..2bab12213 --- /dev/null +++ b/docs/dir_c37806b71f3ece57dc14afd206973995.html @@ -0,0 +1,90 @@ + + + + + + + +Tenncor: ade/test Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
test Directory Reference
+
+
+ + + + + + + + +

+Directories

directory  dynamic
 
directory  log
 
directory  static
 
+
+ + + + diff --git a/docs/dir_c495df9960f78c27b549e0dc77eb659a.html b/docs/dir_c495df9960f78c27b549e0dc77eb659a.html new file mode 100644 index 000000000..3650250c6 --- /dev/null +++ b/docs/dir_c495df9960f78c27b549e0dc77eb659a.html @@ -0,0 +1,88 @@ + + + + + + + +Tenncor: pbm/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+ + + + + + +

+Files

file  graph.cpp
 
file  source.cpp
 
+
+ + + + diff --git a/docs/dir_d46f08f194e0dc0f4c06707ea2e9df24.html b/docs/dir_d46f08f194e0dc0f4c06707ea2e9df24.html new file mode 100644 index 000000000..60f691591 --- /dev/null +++ b/docs/dir_d46f08f194e0dc0f4c06707ea2e9df24.html @@ -0,0 +1,90 @@ + + + + + + + +Tenncor: pbm/test Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
test Directory Reference
+
+
+ + + + + + + + +

+Files

file  main.cpp
 
file  test_load.cpp
 
file  test_save.cpp
 
+
+ + + + diff --git a/docs/dir_e27d2b201b2b67ab280cb2f6929c41a1.html b/docs/dir_e27d2b201b2b67ab280cb2f6929c41a1.html new file mode 100644 index 000000000..8e47f48bc --- /dev/null +++ b/docs/dir_e27d2b201b2b67ab280cb2f6929c41a1.html @@ -0,0 +1,107 @@ + + + + + + + +Tenncor: ade Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ade Directory Reference
+
+
+ + + + + + + + +

+Directories

directory  log
 
directory  src
 
directory  test
 
+ + + + + + + + + + + + + + + +

+Files

file  coord.hpp [code]
 
file  functor.hpp [code]
 
file  grader.hpp [code]
 
file  matops.hpp [code]
 
file  opcode.hpp [code]
 
file  shape.hpp [code]
 
file  tensor.hpp [code]
 
+
+ + + + diff --git a/docs/doc.png b/docs/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/docs/doxygen.css b/docs/doxygen.css new file mode 100644 index 000000000..266c8b3a6 --- /dev/null +++ b/docs/doxygen.css @@ -0,0 +1,1596 @@ +/* The standard CSS for doxygen 1.8.14 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +/* +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTableHead tr { +} + +table.markdownTableBodyLeft td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft { + text-align: left +} + +th.markdownTableHeadRight { + text-align: right +} + +th.markdownTableHeadCenter { + text-align: center +} +*/ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + + +/* @end */ diff --git a/docs/doxygen.png b/docs/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 GIT binary patch literal 3779 zcmV;!4m|ORP)tMIv#Q0*~7*`IBSO7_x;@a8#Zk6_PeKR_s92J&)(m+);m9Iz3blw)z#Gi zP!9lj4$%+*>Hz@HCmM9L9|8c+0u=!H$O3?R0Kgx|#WP<6fKfC8fM-CQZT|_r@`>VO zX^Hgb|9cJqpdJA5$MCEK`F_2@2Y@s>^+;pF`~jdI0Pvr|vl4`=C)EH@1IFe7pdJ8F zH(qGi004~QnF)Ggga~8v08kGAs2hKTATxr7pwfNk|4#_AaT>w8P6TV+R2kbS$v==} zAjf`s0g#V8lB+b3)5oEI*q+{Yt$MZDruD2^;$+(_%Qn+%v0X-bJO=;@kiJ^ygLBnC z?1OVv_%aex1M@jKU|Z~$eI?PoF4Vj>fDzyo zAiLfpXY*a^Sj-S5D0S3@#V$sRW)g)_1e#$%8xdM>Jm7?!h zu0P2X=xoN>^!4DoPRgph2(2va07yfpXF+WH7EOg1GY%Zn z7~1A<(z7Q$ktEXhW_?GMpHp9l_UL18F3KOsxu81pqoBiNbFSGsof-W z6~eloMoz=4?OOnl2J268x5rOY`dCk0us(uS#Ud4yqOr@?=Q57a}tit|BhY>}~frH1sP`ScHS_d)oqH^lYy zZ%VP`#10MlE~P?cE(%(#(AUSv_T{+;t@$U}El}(1ig`vZo`Rm;+5&(AYzJ^Ae=h2X z@Re%vHwZU>|f0NI&%$*4eJweC5OROQrpPMA@*w|o z()A==l}(@bv^&>H1Ob3C=<^|hob?0+xJ?QQ3-ueQC}zy&JQNib!OqSO@-=>XzxlSF zAZ^U*1l6EEmg3r};_HY>&Jo_{dOPEFTWPmt=U&F#+0(O59^UIlHbNX+eF8UzyDR*T z(=5X$VF3!gm@RooS-&iiUYGG^`hMR(07zr_xP`d!^BH?uD>Phl8Rdifx3Af^Zr`Ku ztL+~HkVeL#bJ)7;`=>;{KNRvjmc}1}c58Sr#Treq=4{xo!ATy|c>iRSp4`dzMMVd@ zL8?uwXDY}Wqgh4mH`|$BTXpUIu6A1-cSq%hJw;@^Zr8TP=GMh*p(m(tN7@!^D~sl$ zz^tf4II4|};+irE$Fnm4NTc5%p{PRA`%}Zk`CE5?#h3|xcyQsS#iONZ z6H(@^i9td!$z~bZiJLTax$o>r(p}3o@< zyD7%(>ZYvy=6$U3e!F{Z`uSaYy`xQyl?b{}eg|G3&fz*`QH@mDUn)1%#5u`0m$%D} z?;tZ0u(mWeMV0QtzjgN!lT*pNRj;6510Wwx?Yi_=tYw|J#7@(Xe7ifDzXuK;JB;QO z#bg~K$cgm$@{QiL_3yr}y&~wuv=P=#O&Tj=Sr)aCUlYmZMcw?)T?c%0rUe1cS+o!qs_ zQ6Gp)-{)V!;=q}llyK3|^WeLKyjf%y;xHku;9(vM!j|~<7w1c*Mk-;P{T&yG) z@C-8E?QPynNQ<8f01D`2qexcVEIOU?y}MG)TAE6&VT5`rK8s(4PE;uQ92LTXUQ<>^ ztyQ@=@kRdh@ebUG^Z6NWWIL;_IGJ2ST>$t!$m$qvtj0Qmw8moN6GUV^!QKNK zHBXCtUH8)RY9++gH_TUV4^=-j$t}dD3qsN7GclJ^Zc&(j6&a_!$jCf}%c5ey`pm~1)@{yI3 zTdWyB+*X{JFw#z;PwRr5evb2!ueWF;v`B0HoUu4-(~aL=z;OXUUEtG`_$)Oxw6FKg zEzY`CyKaSBK3xt#8gA|r_|Kehn_HYVBMpEwbn9-fI*!u*eTA1ef8Mkl1=!jV4oYwWYM}i`A>_F4nhmlCIC6WLa zY%;4&@AlnaG11ejl61Jev21|r*m+?Kru3;1tFDl}#!OzUp6c>go4{C|^erwpG*&h6bspUPJag}oOkN2912Y3I?(eRc@U9>z#HPBHC?nps7H5!zP``90!Q1n80jo+B3TWXp!8Pe zwuKuLLI6l3Gv@+QH*Y}2wPLPQ1^EZhT#+Ed8q8Wo z1pTmIBxv14-{l&QVKxAyQF#8Q@NeJwWdKk>?cpiJLkJr+aZ!Me+Cfp!?FWSRf^j2k z73BRR{WSKaMkJ>1Nbx5dan5hg^_}O{Tj6u%iV%#QGz0Q@j{R^Ik)Z*+(YvY2ziBG)?AmJa|JV%4UT$k`hcOg5r9R?5>?o~JzK zJCrj&{i#hG>N7!B4kNX(%igb%kDj0fOQThC-8mtfap82PNRXr1D>lbgg)dYTQ(kbx z`Ee5kXG~Bh+BHQBf|kJEy6(ga%WfhvdQNDuOfQoe377l#ht&DrMGeIsI5C<&ai zWG$|hop2@@q5YDa)_-A?B02W;#fH!%k`daQLEItaJJ8Yf1L%8x;kg?)k)00P-lH+w z)5$QNV6r2$YtnV(4o=0^3{kmaXn*Dm0F*fU(@o)yVVjk|ln8ea6BMy%vZAhW9|wvA z8RoDkVoMEz1d>|5(k0Nw>22ZT){V<3$^C-cN+|~hKt2)){+l-?3m@-$c?-dlzQ)q- zZ)j%n^gerV{|+t}9m1_&&Ly!9$rtG4XX|WQ8`xYzGC~U@nYh~g(z9)bdAl#xH)xd5a=@|qql z|FzEil{P5(@gy!4ek05i$>`E^G~{;pnf6ftpLh$h#W?^#4UkPfa;;?bsIe&kz!+40 zI|6`F2n020)-r`pFaZ38F!S-lJM-o&inOw|66=GMeP@xQU5ghQH{~5Uh~TMTd;I9` z>YhVB`e^EVj*S7JF39ZgNf}A-0DwOcTT63ydN$I3b?yBQtUI*_fae~kPvzoD$zjX3 zoqBe#>12im4WzZ=f^4+u=!lA|#r%1`WB0-6*3BL#at`47#ebPpR|D1b)3BjT34nYY z%Ds%d?5$|{LgOIaRO{{oC&RK`O91$fqwM0(C_TALcozu*fWHb%%q&p-q{_8*2Zsi^ zh1ZCnr^UYa;4vQEtHk{~zi>wwMC5o{S=$P0X681y`SXwFH?Ewn{x-MOZynmc)JT5v zuHLwh;tLfxRrr%|k370}GofLl7thg>ACWWY&msqaVu&ry+`7+Ss>NL^%T1|z{IGMA zW-SKl=V-^{(f!Kf^#3(|T2W47d(%JVCI4JgRrT1pNz>+ietmFToNv^`gzC@&O-)+i zPQ~RwK8%C_vf%;%e>NyTp~dM5;!C|N0Q^6|CEb7Bw=Vz~$1#FA;Z*?mKSC)Hl-20s t8QyHj(g6VK0RYbl8UjE)0O0w=e*@m04r>stuEhWV002ovPDHLkV1hl;dM*F} literal 0 HcmV?d00001 diff --git a/docs/dtype_8cpp.html b/docs/dtype_8cpp.html new file mode 100644 index 000000000..32c2b35d8 --- /dev/null +++ b/docs/dtype_8cpp.html @@ -0,0 +1,83 @@ + + + + + + + +Tenncor: llo/src/dtype.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
dtype.cpp File Reference
+
+
+
#include <unordered_map>
+#include "ade/log/log.hpp"
+#include "llo/dtype.hpp"
+
+ + + + diff --git a/docs/dtype_8hpp.html b/docs/dtype_8hpp.html new file mode 100644 index 000000000..b6c3c350e --- /dev/null +++ b/docs/dtype_8hpp.html @@ -0,0 +1,157 @@ + + + + + + + +Tenncor: llo/dtype.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
dtype.hpp File Reference
+
+
+
#include <string>
+
+

Go to the source code of this file.

+ + + + +

+Namespaces

 llo
 
+ + + + +

+Enumerations

enum  llo::DTYPE {
+  llo::BAD = 0, +llo::DOUBLE, +llo::FLOAT, +llo::INT8, +
+  llo::INT16, +llo::INT32, +llo::INT64, +llo::UINT8, +
+  llo::UINT16, +llo::UINT32, +llo::UINT64 +
+ }
 Enumerated representation of data types. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

std::string llo::nametype (DTYPE type)
 Return the string name of input DTYPE. More...
 
uint8_t llo::type_size (DTYPE type)
 Return the byte size of input DTYPE. More...
 
template<typename T >
DTYPE llo::get_type (void)
 Return the DTYPE of type in template. More...
 
template<>
DTYPE llo::get_type< double > (void)
 
template<>
DTYPE llo::get_type< float > (void)
 
template<>
DTYPE llo::get_type< int8_t > (void)
 
template<>
DTYPE llo::get_type< uint8_t > (void)
 
template<>
DTYPE llo::get_type< int16_t > (void)
 
template<>
DTYPE llo::get_type< uint16_t > (void)
 
template<>
DTYPE llo::get_type< int32_t > (void)
 
template<>
DTYPE llo::get_type< uint32_t > (void)
 
template<>
DTYPE llo::get_type< int64_t > (void)
 
template<>
DTYPE llo::get_type< uint64_t > (void)
 
+
+ + + + diff --git a/docs/dtype_8hpp_source.html b/docs/dtype_8hpp_source.html new file mode 100644 index 000000000..5d1b0d41f --- /dev/null +++ b/docs/dtype_8hpp_source.html @@ -0,0 +1,106 @@ + + + + + + + +Tenncor: llo/dtype.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
dtype.hpp
+
+
+Go to the documentation of this file.
1 
9 #include <string>
10 
11 #ifndef LLO_DTYPE_HPP
12 #define LLO_DTYPE_HPP
13 
14 namespace llo
15 {
16 
18 enum DTYPE
19 {
20  BAD = 0,
31 };
32 
34 std::string nametype (DTYPE type);
35 
37 uint8_t type_size (DTYPE type);
38 
40 template <typename T>
42 {
43  return DTYPE::BAD;
44 }
45 
46 template <>
47 DTYPE get_type<double> (void);
48 
49 template <>
50 DTYPE get_type<float> (void);
51 
52 template <>
53 DTYPE get_type<int8_t> (void);
54 
55 template <>
57 
58 template <>
60 
61 template <>
63 
64 template <>
66 
67 template <>
69 
70 template <>
72 
73 template <>
75 
76 }
77 
78 #endif // LLO_DTYPE_HPP
Definition: dtype.hpp:29
+
Definition: dtype.hpp:20
+
Definition: dtype.hpp:23
+
DTYPE get_type< uint32_t >(void)
+
DTYPE get_type< uint16_t >(void)
+
Definition: dtype.hpp:24
+
DTYPE get_type< int8_t >(void)
+
Definition: dtype.hpp:28
+
Definition: dtype.hpp:22
+
DTYPE get_type< double >(void)
+
DTYPE get_type< int16_t >(void)
+
DTYPE get_type< int64_t >(void)
+
DTYPE get_type< float >(void)
+
uint8_t type_size(DTYPE type)
Return the byte size of input DTYPE.
+
Definition: dtype.hpp:30
+
DTYPE get_type< int32_t >(void)
+
Definition: dtype.hpp:27
+
std::string nametype(DTYPE type)
Return the string name of input DTYPE.
+
Definition: test_dtype.cpp:12
+
Definition: api.hpp:14
+
DTYPE get_type(void)
Return the DTYPE of type in template.
Definition: dtype.hpp:41
+
Definition: dtype.hpp:26
+
Invalid data type.
Definition: dtype.hpp:21
+
DTYPE get_type< uint8_t >(void)
+
Definition: dtype.hpp:25
+
DTYPE get_type< uint64_t >(void)
+
+ + + + diff --git a/docs/dynsections.js b/docs/dynsections.js new file mode 100644 index 000000000..c1ce12260 --- /dev/null +++ b/docs/dynsections.js @@ -0,0 +1,120 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +Tenncor: llo/src/eval.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
eval.cpp File Reference
+
+
+
#include "llo/eval.hpp"
+
+ + + + diff --git a/docs/eval_8hpp.html b/docs/eval_8hpp.html new file mode 100644 index 000000000..9b8c6dc2d --- /dev/null +++ b/docs/eval_8hpp.html @@ -0,0 +1,121 @@ + + + + + + + +Tenncor: llo/eval.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
eval.hpp File Reference
+
+
+
#include <unordered_map>
+#include "ade/functor.hpp"
+#include "llo/opmap.hpp"
+
+

Go to the source code of this file.

+ + + + + + + + + + + + +

+Classes

struct  llo::iSource
 Interface for leaves with tensor data. More...
 
struct  llo::EvalCtx
 Context used to associate ade nodes to llo nodes under a particular graph. More...
 
struct  llo::Evaluator
 
struct  llo::DataNode
 
+ + + +

+Namespaces

 llo
 
+ + + + +

+Typedefs

using llo::SourcePoolT = std::unordered_map< ade::iTensor *, std::shared_ptr< iSource > >
 Type used by context to associate ade::Tensors to Sources. More...
 
+ + + + +

+Functions

void llo::calc_func_args (DataArgsT &out, const EvalCtx &ctx, DTYPE dtype, ade::iFunctor *func)
 Evaluate the data of children for func according to inputs ctx and dtype. More...
 
+
+ + + + diff --git a/docs/eval_8hpp_source.html b/docs/eval_8hpp_source.html new file mode 100644 index 000000000..d4fd1b70b --- /dev/null +++ b/docs/eval_8hpp_source.html @@ -0,0 +1,137 @@ + + + + + + + +Tenncor: llo/eval.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
eval.hpp
+
+
+Go to the documentation of this file.
1 
9 #include <unordered_map>
10 
11 #include "ade/functor.hpp"
12 
13 #include "llo/opmap.hpp"
14 
15 #ifndef LLO_EVAL_HPP
16 #define LLO_EVAL_HPP
17 
18 namespace llo
19 {
20 
22 struct iSource
23 {
24  virtual ~iSource (void) = default;
25 
27  virtual GenericData data (DTYPE dtype) const = 0;
28 
30  virtual DTYPE native_type (void) const = 0;
31 
33  virtual void reassign (const GenericRef& data) = 0;
34 
36  virtual const std::shared_ptr<ade::Tensor>& inner (void) const = 0;
37 };
38 
40 using SourcePoolT = std::unordered_map<ade::iTensor*,std::shared_ptr<iSource>>;
41 
43 struct EvalCtx final
44 {
45  EvalCtx (void) = default;
46 
47  EvalCtx (ade::iTensor* srckey, std::shared_ptr<iSource>& srcval)
48  {
49  if (srcval != nullptr && srckey != nullptr)
50  {
51  srcs_[srckey] = srcval;
52  }
53  }
54 
55  EvalCtx (std::vector<const EvalCtx*> contexas)
56  {
57  for (const EvalCtx* ctx : contexas)
58  {
59  srcs_.insert(ctx->srcs_.begin(), ctx->srcs_.end());
60  }
61  }
62 
65 };
66 
68 void calc_func_args (DataArgsT& out, const EvalCtx& ctx,
69  DTYPE dtype, ade::iFunctor* func);
70 
76 struct Evaluator final : public ade::iTraveler
77 {
78  Evaluator (const EvalCtx& ctx, DTYPE dtype) :
79  ctx_(&ctx), dtype_(dtype) {}
80 
82  void visit (ade::Tensor* leaf) override
83  {
84  if (leaf == ade::Tensor::SYMBOLIC_ONE.get())
85  {
87  fill_one(out_.data_.get(), 1, dtype_);
88  return;
89  }
90  auto srcpair = ctx_->srcs_.find(leaf);
91  if (ctx_->srcs_.end() != srcpair)
92  {
93  out_ = srcpair->second->data(dtype_);
94  }
95  else
96  {
97  if (leaf != ade::Tensor::SYMBOLIC_ZERO.get())
98  {
99  ade::warnf("evaluating an ade::Tensor %s without associated "
100  "Source according to input context... treating data as 0",
101  leaf->to_string().c_str()); // todo: describe ctx for comprehensive report
102  }
104  std::memset(out_.data_.get(), 0, type_size(dtype_));
105  }
106  }
107 
109  void visit (ade::iFunctor* func) override
110  {
111  ade::OPCODE opcode = func->get_code();
112  out_ = GenericData(func->shape(), dtype_);
113 
114  DataArgsT argdata;
115  calc_func_args(argdata, *ctx_, dtype_, func);
116  op_exec(opcode, out_, argdata);
117  }
118 
121 
122 private:
124  const EvalCtx* ctx_; // not owner
125 
128 };
129 
132 struct DataNode
133 {
135  ctx_(ctx), tensor_(tensor) {}
136 
137  virtual ~DataNode (void) = default;
138 
141  {
142  Evaluator eval(ctx_, dtype);
143  tensor_->accept(eval);
144  return eval.out_;
145  }
146 
149  {
150  ade::Tensorptr grad = tensor_->gradient(wrt);
151  return DataNode(ctx_, grad);
152  }
153 
156  {
157  return derive(wrt.tensor_.get());
158  }
159 
161  std::shared_ptr<llo::iSource> source (void) const
162  {
163  return get_src(tensor_);
164  }
165 
167  std::shared_ptr<llo::iSource> get_src (ade::Tensorptr target) const
168  {
169  std::shared_ptr<llo::iSource> out = nullptr;
170  auto it = ctx_.srcs_.find(target.get());
171  if (ctx_.srcs_.end() != it)
172  {
173  out = it->second;
174  }
175  return out;
176  }
177 
180 
183 };
184 
185 }
186 
187 #endif // LLO_EVAL_HPP
Definition: data.hpp:41
+ +
virtual const std::shared_ptr< ade::Tensor > & inner(void) const =0
Return internal tensor referencing this.
+
Interface of OPCODE-defined operation node.
Definition: functor.hpp:24
+
ade::Tensorptr tensor_
Subgraph root.
Definition: eval.hpp:182
+
iTensor * get(void) const
Return the raw pointer.
Definition: tensor.hpp:93
+
Interface for leaves with tensor data.
Definition: eval.hpp:22
+
virtual Tensorptr gradient(const iTensor *wrt)=0
Return the partial derivative of this with respect to input wrt.
+
std::vector< std::pair< ade::CoordPtrT, GenericData > > DataArgsT
Definition: opmap.hpp:20
+
DataNode derive(const ade::iTensor *wrt)
Return DataNode of gradient tree derived with respect to wrt tensor.
Definition: eval.hpp:148
+
OPCODE
Enumerated representation of operations.
Definition: opcode.hpp:22
+
Evaluator(const EvalCtx &ctx, DTYPE dtype)
Definition: eval.hpp:78
+
std::shared_ptr< llo::iSource > get_src(ade::Tensorptr target) const
Return iSource mapped by target if found in ctx_, otherwise null.
Definition: eval.hpp:167
+
DataNode derive(DataNode &wrt)
Return DataNode of gradient tree derived with respect to wrt DataNode.
Definition: eval.hpp:155
+
Smart pointer to iTensor ensuring non-null references.
Definition: tensor.hpp:57
+
virtual const Shape & shape(void) const =0
Return the shape held by this tensor.
+
SourcePoolT srcs_
List all ade-source mapping.
Definition: eval.hpp:64
+
void op_exec(ade::OPCODE opcode, GenericData &out, DataArgsT &data)
+
std::shared_ptr< llo::iSource > source(void) const
Return iSource mapped by tensor_ if found in ctx_, otherwise null.
Definition: eval.hpp:161
+
EvalCtx(ade::iTensor *srckey, std::shared_ptr< iSource > &srcval)
Definition: eval.hpp:47
+
Leaf of the graph commonly representing the variable in an equation.
Definition: tensor.hpp:116
+
virtual DTYPE native_type(void) const =0
Return the type of data stored.
+
GenericData out_
Output data evaluated upon visiting node.
Definition: eval.hpp:120
+
uint8_t type_size(DTYPE type)
Return the byte size of input DTYPE.
+
void warnf(std::string format, ARGS... args)
Warn using global logger with arguments.
Definition: log.hpp:80
+ +
void fill_one(char *cptr, size_t n, DTYPE dtype)
+
DTYPE dtype_
Output type when evaluating data.
Definition: eval.hpp:127
+
virtual void accept(iTraveler &visiter)=0
Obtain concrete information on either leaf or functor implementations.
+
EvalCtx(std::vector< const EvalCtx *> contexas)
Definition: eval.hpp:55
+
GenericData for holding data when passing up the tensor graph.
Definition: data.hpp:20
+
virtual OPCODE get_code(void) const =0
Return OPCODE mapping to forward and gradient operators.
+
std::unordered_map< ade::iTensor *, std::shared_ptr< iSource > > SourcePoolT
Type used by context to associate ade::Tensors to Sources.
Definition: eval.hpp:40
+
std::string to_string(void) const override
Implementation of iTensor.
Definition: tensor.hpp:153
+
const EvalCtx * ctx_
Context used when evaluating node.
Definition: eval.hpp:124
+
Interface to travel through graph, treating Tensor and iFunctor differently.
Definition: tensor.hpp:27
+
Interface of traversible and differentiable nodes with shape information.
Definition: tensor.hpp:39
+
virtual void reassign(const GenericRef &data)=0
Assign new data values.
+
virtual ~DataNode(void)=default
+
Definition: test_dtype.cpp:12
+
Definition: shape.hpp:51
+
static Tensorptr SYMBOLIC_ZERO
Represent a scalar containing value zero.
Definition: tensor.hpp:122
+
virtual ~iSource(void)=default
+
std::shared_ptr< char > data_
Smartpointer to a block of untyped data.
Definition: data.hpp:30
+
void visit(ade::iFunctor *func) override
Implementation of iTraveler.
Definition: eval.hpp:109
+
void visit(ade::Tensor *leaf) override
Implementation of iTraveler.
Definition: eval.hpp:82
+
Definition: api.hpp:14
+
Definition: eval.hpp:132
+
static Tensorptr SYMBOLIC_ONE
Represent a scalar containing value one.
Definition: tensor.hpp:119
+
void calc_func_args(DataArgsT &out, const EvalCtx &ctx, DTYPE dtype, ade::iFunctor *func)
Evaluate the data of children for func according to inputs ctx and dtype.
+
Definition: eval.hpp:76
+
Context used to associate ade nodes to llo nodes under a particular graph.
Definition: eval.hpp:43
+
DataNode(EvalCtx ctx, ade::Tensorptr tensor)
Definition: eval.hpp:134
+
EvalCtx ctx_
Accumulated context.
Definition: eval.hpp:179
+
GenericData data(DTYPE dtype)
Return data according to accumulated context and output type.
Definition: eval.hpp:140
+
EvalCtx(void)=default
+
virtual GenericData data(DTYPE dtype) const =0
Return data converted to input type.
+
+ + + + diff --git a/docs/files.html b/docs/files.html new file mode 100644 index 000000000..112766ed8 --- /dev/null +++ b/docs/files.html @@ -0,0 +1,151 @@ + + + + + + + +Tenncor: File List + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all files with brief descriptions:
+
+ + + + diff --git a/docs/folderclosed.png b/docs/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/docs/functions.html b/docs/functions.html new file mode 100644 index 000000000..c58ea558a --- /dev/null +++ b/docs/functions.html @@ -0,0 +1,467 @@ + + + + + + + +Tenncor: Class Members + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+ + +

- w -

+ + +

- ~ -

+
+ + + + diff --git a/docs/functions_func.html b/docs/functions_func.html new file mode 100644 index 000000000..1f32af900 --- /dev/null +++ b/docs/functions_func.html @@ -0,0 +1,368 @@ + + + + + + + +Tenncor: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- i -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+ + +

- w -

+ + +

- ~ -

+
+ + + + diff --git a/docs/functions_type.html b/docs/functions_type.html new file mode 100644 index 000000000..bb9c72eba --- /dev/null +++ b/docs/functions_type.html @@ -0,0 +1,83 @@ + + + + + + + +Tenncor: Class Members - Typedefs + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/docs/functions_vars.html b/docs/functions_vars.html new file mode 100644 index 000000000..dfe3d55ac --- /dev/null +++ b/docs/functions_vars.html @@ -0,0 +1,210 @@ + + + + + + + +Tenncor: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- f -

+ + +

- g -

+ + +

- l -

+ + +

- m -

+ + +

- o -

+ + +

- p -

+ + +

- s -

+ + +

- t -

+
+ + + + diff --git a/docs/functor_8hpp.html b/docs/functor_8hpp.html new file mode 100644 index 000000000..7d6ff90ca --- /dev/null +++ b/docs/functor_8hpp.html @@ -0,0 +1,131 @@ + + + + + + + +Tenncor: ade/functor.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
functor.hpp File Reference
+
+
+
#include <algorithm>
+#include <cassert>
+#include <list>
+#include <unordered_map>
+#include "ade/log/string.hpp"
+#include "ade/grader.hpp"
+
+

Go to the source code of this file.

+ + + + + + + + + + +

+Classes

struct  ade::iFunctor
 Interface of OPCODE-defined operation node. More...
 
struct  ade::PathFinder
 
struct  ade::Functor
 Functor of the graph mapping to operators specified by opcode argument. More...
 
+ + + +

+Namespaces

 ade
 
+ + + +

+Macros

#define ADE_FUNCTOR_HPP
 
+

Macro Definition Documentation

+ +

◆ ADE_FUNCTOR_HPP

+ +
+
+ + + + +
#define ADE_FUNCTOR_HPP
+
+

functor.hpp ade

+

Purpose: Define functor nodes of an equation graph

+ +
+
+
+ + + + diff --git a/docs/functor_8hpp_source.html b/docs/functor_8hpp_source.html new file mode 100644 index 000000000..a703fb8db --- /dev/null +++ b/docs/functor_8hpp_source.html @@ -0,0 +1,128 @@ + + + + + + + +Tenncor: ade/functor.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
functor.hpp
+
+
+Go to the documentation of this file.
1 
9 #include <algorithm>
10 #include <cassert>
11 #include <list>
12 #include <unordered_map>
13 
14 #include "ade/log/string.hpp"
15 #include "ade/grader.hpp"
16 
17 #ifndef ADE_FUNCTOR_HPP
18 #define ADE_FUNCTOR_HPP
19 
20 namespace ade
21 {
22 
24 struct iFunctor : public iTensor
25 {
26  virtual ~iFunctor (void) = default;
27 
29  void accept (iTraveler& visiter) override
30  {
31  visiter.visit(this);
32  }
33 
35  virtual OPCODE get_code (void) const = 0;
36 
38  virtual const ArgsT& get_children (void) const = 0;
39 };
40 
46 struct PathFinder final : public iTraveler
47 {
49  using ParentMapT = std::unordered_map<iTensor*,std::vector<bool>>;
50 
51  PathFinder (const iTensor* target) : target_(target) {}
52 
54  void visit (Tensor* leaf) override {}
55 
57  void visit (iFunctor* func) override
58  {
59  if (parents_.end() == parents_.find(func))
60  {
61  auto& children = func->get_children();
62  size_t n = children.size();
63  bool has_path = false;
64  std::vector<bool> path(n, false);
65  for (size_t i = 0; i < n; ++i)
66  {
67  Tensorptr tens = children[i].second;
68  if (tens.get() == target_)
69  {
70  path[i] = has_path = true;
71  }
72  else
73  {
74  tens->accept(*this);
75  if (parents_.end() != parents_.find(tens.get()))
76  {
77  path[i] = has_path = true;
78  }
79  }
80  }
81  if (has_path)
82  {
83  parents_[func] = path;
84  }
85  }
86  }
87 
89  const iTensor* target_;
90 
93 };
94 
96 struct Functor final : public iFunctor
97 {
99  static Functor* get (OPCODE opcode, ArgsT args)
100  {
101  std::string oname = opname(opcode);
102  const char* label = oname.c_str();
103  if (0 == args.size())
104  {
105  fatalf("cannot %s with no arguments", label);
106  }
107 
108  Shape shape = map_shape(args[0].first, args[0].second->shape());
109  for (size_t i = 1, n = args.size(); i < n; ++i)
110  {
111  Shape ishape = map_shape(args[i].first, args[i].second->shape());
112  if (false == ishape.compatible_after(shape, 0))
113  {
114  fatalf("cannot %s with incompatible shapes %s and %s", label,
115  shape.to_string().c_str(), ishape.to_string().c_str());
116  }
117  }
118  return new Functor(opcode, shape, args);
119  }
120 
122  const Shape& shape (void) const override
123  {
124  return shape_;
125  }
126 
128  Tensorptr gradient (const iTensor* wrt) override
129  {
130  if (this == wrt)
131  {
132  return shaped_one(shape_);
133  }
134 
135  // define traversal path from this to wrt
136  PathFinder finder(wrt);
137  accept(finder);
138  // no path to wrt
139  if (finder.parents_.empty())
140  {
141  return shaped_zero(wrt->shape());
142  }
143  // else there exists a path to wrt
144  // using pathfinder, breadth first traverse to wrt
145  std::list<std::pair<iTensor*,Tensorptr>> tmaps = {{this, shaped_one(shape_)}};
146  std::vector<Tensorptr> finalgrad;
147  while (false == tmaps.empty())
148  {
149  auto fpair = tmaps.front();
150  tmaps.pop_front();
151  iTensor* fwd = fpair.first;
152  auto bwd = fpair.second;
153  if (wrt == fwd)
154  {
155  finalgrad.push_back(bwd);
156  continue;
157  }
158  iFunctor* func = static_cast<iFunctor*>(fwd);
159  OPCODE opcode = func->get_code();
160  auto& paint = finder.parents_[func];
161  ArgsT children = func->get_children();
162  ArgsT grad_children;
163  std::transform(children.begin(), children.end(),
164  std::back_inserter(grad_children),
165  [](std::pair<CoordPtrT,Tensorptr>& child)
166  { return std::pair<CoordPtrT,Tensorptr>{
167  CoordPtrT(child.first->reverse()),
168  shaped_zero(child.second->shape())}; });
169  // for each painted child, calculate dThis/dChild
170  for (size_t i = 0, n = children.size(); i < n; ++i)
171  {
172  if (paint[i])
173  {
174  Tensorptr& child = children[i].second;
175  iTensor* tens = child.get();
176  auto zero = grad_children[i].second;
177  grad_children[i].second = bwd;
178  // pass down forward-gradient pair
179  tmaps.push_back({tens,
180  gradmap(opcode, children, grad_children)});
181  grad_children[i].second = zero;
182  }
183  }
184  }
185 
186  assert(finalgrad.size() > 0);
187  if (finalgrad.size() == 1)
188  {
189  return finalgrad[0];
190  }
191  ArgsT finalargs;
192  std::transform(finalgrad.begin(), finalgrad.end(),
193  std::back_inserter(finalargs),
194  [](Tensorptr& tens) -> std::pair<CoordPtrT,Tensorptr>
195  {
196  return {identity, tens};
197  });
198  return Functor::get(ADD, finalargs);
199  }
200 
202  std::string to_string (void) const override
203  {
204  return opname(opcode_);
205  }
206 
208  OPCODE get_code (void) const override
209  {
210  return opcode_;
211  }
212 
214  const ArgsT& get_children (void) const override
215  {
216  return args_;
217  }
218 
219 private:
220  Functor (OPCODE opcode, Shape shape, ArgsT args) :
221  opcode_(opcode), shape_(shape), args_(args) {}
222 
225 
228 
231 };
232 
233 }
234 
235 #endif // ADE_FUNCTOR_HPP
CoordPtrT identity
Identity matrix instance.
+
Functor of the graph mapping to operators specified by opcode argument.
Definition: functor.hpp:96
+
Interface of OPCODE-defined operation node.
Definition: functor.hpp:24
+
virtual ~iFunctor(void)=default
+
iTensor * get(void) const
Return the raw pointer.
Definition: tensor.hpp:93
+
std::vector< std::pair< CoordPtrT, Tensorptr > > ArgsT
Type of functor arguments.
Definition: grader.hpp:22
+
PathFinder(const iTensor *target)
Definition: functor.hpp:51
+
OPCODE
Enumerated representation of operations.
Definition: opcode.hpp:22
+
Tensorptr gradient(const iTensor *wrt) override
Implementation of iTensor.
Definition: functor.hpp:128
+
std::unordered_map< iTensor *, std::vector< bool > > ParentMapT
Type for mapping function nodes in path to boolean vector.
Definition: functor.hpp:49
+
static Functor * get(OPCODE opcode, ArgsT args)
Return a Functor with with input tensor and meta arguments.
Definition: functor.hpp:99
+
Smart pointer to iTensor ensuring non-null references.
Definition: tensor.hpp:57
+
virtual const Shape & shape(void) const =0
Return the shape held by this tensor.
+
virtual void visit(Tensor *leaf)=0
Visit leaf node.
+
std::string to_string(void) const
Return string representation of shape.
Definition: shape.hpp:138
+
void accept(iTraveler &visiter) override
Implementation of iTensor.
Definition: functor.hpp:29
+
std::shared_ptr< iCoordMap > CoordPtrT
Type of iCoordMap smartpointer.
Definition: coord.hpp:99
+
Leaf of the graph commonly representing the variable in an equation.
Definition: tensor.hpp:116
+
Tensorptr shaped_one(Shape shape)
Return a Tensor::SYMBOLIC_ONE extended to input shape.
+ +
Shape map_shape(CoordPtrT &mapper, const Shape &shape)
Return transformed shape according to coordinate mapper on input shape.
+
ParentMapT parents_
Map of parent nodes in path.
Definition: functor.hpp:92
+
bool compatible_after(const Shape &other, uint8_t idx) const
Definition: shape.hpp:126
+
OPCODE opcode_
OPCODE represented by functor.
Definition: functor.hpp:224
+
void fatalf(std::string format, ARGS... args)
Fatal using global logger with arguments.
Definition: log.hpp:94
+
virtual void accept(iTraveler &visiter)=0
Obtain concrete information on either leaf or functor implementations.
+
virtual OPCODE get_code(void) const =0
Return OPCODE mapping to forward and gradient operators.
+
const iTensor * target_
Target of tensor all paths are travelling to.
Definition: functor.hpp:89
+
OPCODE get_code(void) const override
Implementation of iFunctor.
Definition: functor.hpp:208
+
const ArgsT & get_children(void) const override
Implementation of iFunctor.
Definition: functor.hpp:214
+
Definition: functor.hpp:46
+
Definition: coord.hpp:18
+
void visit(Tensor *leaf) override
Implementation of iTraveler.
Definition: functor.hpp:54
+
ArgsT args_
Tensor arguments (and children)
Definition: functor.hpp:230
+
Interface to travel through graph, treating Tensor and iFunctor differently.
Definition: tensor.hpp:27
+
Interface of traversible and differentiable nodes with shape information.
Definition: tensor.hpp:39
+
virtual const ArgsT & get_children(void) const =0
Return children nodes as a vector of raw pointers.
+ +
void visit(iFunctor *func) override
Implementation of iTraveler.
Definition: functor.hpp:57
+
std::string to_string(void) const override
Implementation of iTensor.
Definition: functor.hpp:202
+
Definition: shape.hpp:51
+
Definition: opcode.hpp:51
+
Tensorptr gradmap(OPCODE op, ArgsT args, ArgsT &grads)
+
Shape shape_
Shape info built at construction time according to arguments.
Definition: functor.hpp:227
+
const Shape & shape(void) const override
Implementation of iTensor.
Definition: functor.hpp:122
+
std::string opname(OPCODE opcode)
Return the string name of input OPCODE.
+
Functor(OPCODE opcode, Shape shape, ArgsT args)
Definition: functor.hpp:220
+
Tensorptr shaped_zero(Shape shape)
Return a Tensor::SYMBOLIC_ZERO extended to input shape.
+
+ + + + diff --git a/docs/globals.html b/docs/globals.html new file mode 100644 index 000000000..6827061cc --- /dev/null +++ b/docs/globals.html @@ -0,0 +1,342 @@ + + + + + + + +Tenncor: File Members + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all file members with links to the files they belong to:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+
+ + + + diff --git a/docs/globals_defs.html b/docs/globals_defs.html new file mode 100644 index 000000000..e666d2bc0 --- /dev/null +++ b/docs/globals_defs.html @@ -0,0 +1,104 @@ + + + + + + + +Tenncor: File Members + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/docs/globals_func.html b/docs/globals_func.html new file mode 100644 index 000000000..41b1c90e7 --- /dev/null +++ b/docs/globals_func.html @@ -0,0 +1,247 @@ + + + + + + + +Tenncor: File Members + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- b -

+ + +

- c -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- l -

+ + +

- m -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+
+ + + + diff --git a/docs/globals_type.html b/docs/globals_type.html new file mode 100644 index 000000000..fa8070b8f --- /dev/null +++ b/docs/globals_type.html @@ -0,0 +1,92 @@ + + + + + + + +Tenncor: File Members + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/docs/globals_vars.html b/docs/globals_vars.html new file mode 100644 index 000000000..387097bde --- /dev/null +++ b/docs/globals_vars.html @@ -0,0 +1,89 @@ + + + + + + + +Tenncor: File Members + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/docs/grader_8cpp.html b/docs/grader_8cpp.html new file mode 100644 index 000000000..e8796fb10 --- /dev/null +++ b/docs/grader_8cpp.html @@ -0,0 +1,81 @@ + + + + + + + +Tenncor: ade/src/grader.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
grader.cpp File Reference
+
+
+
#include "ade/functor.hpp"
+
+ + + + diff --git a/docs/grader_8hpp.html b/docs/grader_8hpp.html new file mode 100644 index 000000000..5489db150 --- /dev/null +++ b/docs/grader_8hpp.html @@ -0,0 +1,135 @@ + + + + + + + +Tenncor: ade/grader.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
grader.hpp File Reference
+
+
+
#include "ade/opcode.hpp"
+#include "ade/tensor.hpp"
+#include "ade/coord.hpp"
+
+

Go to the source code of this file.

+ + + + +

+Namespaces

 ade
 
+ + + +

+Macros

#define GRAD_DECLARE(CODE)
 
+ + + + +

+Typedefs

using ade::ArgsT = std::vector< std::pair< CoordPtrT, Tensorptr > >
 Type of functor arguments. More...
 
+ + + + + + +

+Functions

template<OPCODE OP>
Tensorptr ade::grader (ArgsT &args, ArgsT &grads)
 
Tensorptr ade::gradmap (OPCODE op, ArgsT args, ArgsT &grads)
 
+

Macro Definition Documentation

+ +

◆ GRAD_DECLARE

+ +
+
+ + + + + + + + +
#define GRAD_DECLARE( CODE)
+
+Value:
template <>\
Tensorptr grader<CODE> (ArgsT&,ArgsT&);
std::vector< std::pair< CoordPtrT, Tensorptr > > ArgsT
Type of functor arguments.
Definition: grader.hpp:22
+
+
+
+
+ + + + diff --git a/docs/grader_8hpp_source.html b/docs/grader_8hpp_source.html new file mode 100644 index 000000000..7942f2db8 --- /dev/null +++ b/docs/grader_8hpp_source.html @@ -0,0 +1,114 @@ + + + + + + + +Tenncor: ade/grader.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
grader.hpp
+
+
+Go to the documentation of this file.
1 
9 #include "ade/opcode.hpp"
10 #include "ade/tensor.hpp"
11 #include "ade/coord.hpp"
12 
13 #ifndef ADE_GRADER_HPP
14 #define ADE_GRADER_HPP
15 
16 namespace ade
17 {
18 
19 // TODO: CONVERT TO GENERATED CONFIG
20 
22 using ArgsT = std::vector<std::pair<CoordPtrT,Tensorptr>>;
23 
24 template <OPCODE OP>
25 Tensorptr grader (ArgsT& args, ArgsT& grads)
26 {
27  throw std::bad_function_call();
28 }
29 
30 #define GRAD_DECLARE(CODE)template <>\
31 Tensorptr grader<CODE> (ArgsT&,ArgsT&);
32 
34 
36 
38 
40 
42 
44 
46 
48 
50 
52 
54 
56 
58 
60 
62 
64 
66 
68 
70 
72 
74 
76 
78 
80 
81 #undef GRAD_DECLARE
82 
83 Tensorptr gradmap (OPCODE op, ArgsT args, ArgsT& grads);
84 
85 }
86 
87 #endif // ADE_GRADER_HPP
Definition: opcode.hpp:79
+
Square root every element.
Definition: opcode.hpp:41
+
Sine every element.
Definition: opcode.hpp:31
+
Definition: opcode.hpp:92
+
Definition: opcode.hpp:87
+
std::vector< std::pair< CoordPtrT, Tensorptr > > ArgsT
Type of functor arguments.
Definition: grader.hpp:22
+
OPCODE
Enumerated representation of operations.
Definition: opcode.hpp:22
+
Definition: opcode.hpp:83
+
Definition: opcode.hpp:58
+
Definition: opcode.hpp:97
+
Smart pointer to iTensor ensuring non-null references.
Definition: tensor.hpp:57
+
Definition: opcode.hpp:66
+
Definition: opcode.hpp:48
+ +
Definition: opcode.hpp:70
+
Definition: test_log.cpp:10
+
Round every element.
Definition: opcode.hpp:43
+
Tensorptr grader(ArgsT &args, ArgsT &grads)
Definition: grader.hpp:25
+
#define GRAD_DECLARE(CODE)
Definition: grader.hpp:30
+
Definition: opcode.hpp:102
+
Definition: opcode.hpp:24
+
Definition: opcode.hpp:75
+
Make every element positive.
Definition: opcode.hpp:27
+
Definition: coord.hpp:18
+
Tangent every element.
Definition: opcode.hpp:35
+ +
Definition: opcode.hpp:62
+ +
Definition: opcode.hpp:55
+
Definition: opcode.hpp:51
+
Tensorptr gradmap(OPCODE op, ArgsT args, ArgsT &grads)
+
Exponent every element.
Definition: opcode.hpp:37
+
Negate the sign of every element.
Definition: opcode.hpp:29
+
Cosine every element.
Definition: opcode.hpp:33
+
+ + + + diff --git a/docs/graph_8cpp.html b/docs/graph_8cpp.html new file mode 100644 index 000000000..b4526b0ba --- /dev/null +++ b/docs/graph_8cpp.html @@ -0,0 +1,241 @@ + + + + + + + +Tenncor: pbm/src/graph.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
graph.cpp File Reference
+
+
+
#include <unordered_set>
+#include <list>
+#include <queue>
+#include <chrono>
+#include "ade/log/log.hpp"
+#include "llo/api.hpp"
+#include "pbm/graph.hpp"
+#include "pbm/source.hpp"
+
+ + + + + + + + + + + + + +

+Functions

static std::string make_uid (void *ptr, llo::EngineT &engine)
 
void save_coord (google::protobuf::RepeatedField< double > *coord, const ade::CoordPtrT &mapper)
 
ade::CoordPtrT load_coord (const google::protobuf::RepeatedField< double > &coord)
 
void save_graph (tenncor::Graph &out, std::vector< llo::DataNode > &roots)
 Marshal all equation graphs in roots vector to protobuf object. More...
 
std::vector< llo::DataNodeload_graph (const tenncor::Graph &in)
 Return all nodes in graph unmarshalled from protobuf object. More...
 
+

Function Documentation

+ +

◆ load_coord()

+ +
+
+ + + + + + + + +
ade::CoordPtrT load_coord (const google::protobuf::RepeatedField< double > & coord)
+
+ +
+
+ +

◆ load_graph()

+ +
+
+ + + + + + + + +
std::vector<llo::DataNode> load_graph (const tenncor::Graph & in)
+
+ +

Return all nodes in graph unmarshalled from protobuf object.

+ +
+
+ +

◆ make_uid()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static std::string make_uid (void * ptr,
llo::EngineTengine 
)
+
+static
+
+ +
+
+ +

◆ save_coord()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void save_coord (google::protobuf::RepeatedField< double > * coord,
const ade::CoordPtrTmapper 
)
+
+ +
+
+ +

◆ save_graph()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void save_graph (tenncor::Graph & out,
std::vector< llo::DataNode > & roots 
)
+
+ +

Marshal all equation graphs in roots vector to protobuf object.

+

graph.hpp pbm

+

Purpose: Define functions for marshal and unmarshal equation graph

+ +
+
+
+ + + + diff --git a/docs/graph_8hpp.html b/docs/graph_8hpp.html new file mode 100644 index 000000000..3bc3868d0 --- /dev/null +++ b/docs/graph_8hpp.html @@ -0,0 +1,149 @@ + + + + + + + +Tenncor: pbm/graph.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
graph.hpp File Reference
+
+
+
#include "llo/traveler.hpp"
+#include "pbm/graph.pb.h"
+
+

Go to the source code of this file.

+ + + + + + + + +

+Functions

void save_graph (tenncor::Graph &out, std::vector< llo::DataNode > &roots)
 Marshal all equation graphs in roots vector to protobuf object. More...
 
std::vector< llo::DataNodeload_graph (const tenncor::Graph &in)
 Return all nodes in graph unmarshalled from protobuf object. More...
 
+

Function Documentation

+ +

◆ load_graph()

+ +
+
+ + + + + + + + +
std::vector<llo::DataNode> load_graph (const tenncor::Graph & in)
+
+ +

Return all nodes in graph unmarshalled from protobuf object.

+ +
+
+ +

◆ save_graph()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void save_graph (tenncor::Graph & out,
std::vector< llo::DataNode > & roots 
)
+
+ +

Marshal all equation graphs in roots vector to protobuf object.

+

graph.hpp pbm

+

Purpose: Define functions for marshal and unmarshal equation graph

+ +
+
+
+ + + + diff --git a/docs/graph_8hpp_source.html b/docs/graph_8hpp_source.html new file mode 100644 index 000000000..4ce72e938 --- /dev/null +++ b/docs/graph_8hpp_source.html @@ -0,0 +1,83 @@ + + + + + + + +Tenncor: pbm/graph.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
graph.hpp
+
+
+Go to the documentation of this file.
1 
9 #include "llo/traveler.hpp"
10 
11 #include "pbm/graph.pb.h"
12 
14 void save_graph (tenncor::Graph& out, std::vector<llo::DataNode>& roots);
15 
17 std::vector<llo::DataNode> load_graph (const tenncor::Graph& in);
+
std::vector< llo::DataNode > load_graph(const tenncor::Graph &in)
Return all nodes in graph unmarshalled from protobuf object.
Definition: graph.cpp:113
+
void save_graph(tenncor::Graph &out, std::vector< llo::DataNode > &roots)
Marshal all equation graphs in roots vector to protobuf object.
Definition: graph.cpp:64
+
+ + + + diff --git a/docs/hierarchy.html b/docs/hierarchy.html new file mode 100644 index 000000000..c169ebc58 --- /dev/null +++ b/docs/hierarchy.html @@ -0,0 +1,118 @@ + + + + + + + +Tenncor: Class Hierarchy + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Cllo::DataNode
 Cllo::PlaceHolder< T >DataNode of a leaf that can be assignable by data vectors
 Cllo::EvalCtxContext used to associate ade nodes to llo nodes under a particular graph
 Cllo::Executer< OP, T >
 Cllo::Executer< ade::COPY, T >
 Cllo::Executer< ade::RAND_BINO, T >
 Cllo::GenericDataGenericData for holding data when passing up the tensor graph
 Cllo::GenericRef
 Cade::iCoordMapInterface for transforming coordinates and reversing the coordinate
 Cade::CoordMap
 Cade::iLoggerInterface of logger used in ADE
 Cade::DefLoggerDefault implementation of iLogger used in ADE
 CTestLogger
 Cllo::iSourceInterface for leaves with tensor data
 Cllo::Source< T >Leaf evaluable holding tensor data
 Cade::iTensorInterface of traversible and differentiable nodes with shape information
 Cade::iFunctorInterface of OPCODE-defined operation node
 Cade::FunctorFunctor of the graph mapping to operators specified by opcode argument
 Cade::TensorLeaf of the graph commonly representing the variable in an equation
 Cade::iTravelerInterface to travel through graph, treating Tensor and iFunctor differently
 Cade::PathFinder
 Cllo::Evaluator
 Cllo::GraphStat
 Cade::Shape
 Cade::TensorptrSmart pointer to iTensor ensuring non-null references
 CTest
 CLOG
 CTestament
 CREGRESS
 CTestModel
 CAPI
 CCOORD
 CDTYPE
 CFUNCTOR
 CNODE
 CSHAPE
 CTENSOR
 Cllo::VecRef< T >
+
+
+ + + + diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 000000000..a223e05eb --- /dev/null +++ b/docs/index.html @@ -0,0 +1,99 @@ + + + + + + + +Tenncor: Tenncor + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Tenncor
+
+
+

+

Synopsis

+

Tenncor libraries help developers build and evaluate tensor equations and its derivatives. A tensor is an N-dimensional container that organizes its content by some shape. An M by N matrix for instance, is a 2-dimensional tensor with a shape of [N, M] (according to Tenncor's x-y-z-... coordinate notation).

+

Components

+ +

This module supplies syntax tree for equation and generates derivative. Constraints to the equation is limited to each tensor's shape.

+ +

This module is a sample library of data operators mapped to the ADE opcodes. Expect this module to split when I decide to depend on external libraries (like eigen).

+ +

This module marshals llo-extended ade graph

+

Tools and utility

+
    +
  • DBG (Debugger)
  • +
+

Building

+

Tenncor uses bazel 0.15+.

+

Download bazel: https://docs.bazel.build/versions/master/install.html

+
+ + + + diff --git a/docs/jquery.js b/docs/jquery.js new file mode 100644 index 000000000..2771c749a --- /dev/null +++ b/docs/jquery.js @@ -0,0 +1,115 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + + + +
+ +
+
main.cpp File Reference
+
+
+
#include "gtest/gtest.h"
+#include "simple/jack.hpp"
+
+ + + +

+Functions

int main (int argc, char **argv)
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int argc,
char ** argv 
)
+
+ +
+
+ + + + + diff --git a/docs/llo_2test_2regress_2main_8cpp.html b/docs/llo_2test_2regress_2main_8cpp.html new file mode 100644 index 000000000..f6dbdf9ec --- /dev/null +++ b/docs/llo_2test_2regress_2main_8cpp.html @@ -0,0 +1,811 @@ + + + + + + + +Tenncor: llo/test/regress/main.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
main.cpp File Reference
+
+
+
#include <cassert>
+#include "gtest/gtest.h"
+#include "anteroc/testcase.hpp"
+#include "llo/api.hpp"
+
+ + + +

+Classes

struct  REGRESS
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void EXPECT_DATA_EQ (std::string name, std::vector< double > expect, std::vector< double > got)
 
void EXPECT_DATA_APPROX (std::string name, std::vector< double > expect, std::vector< double > got)
 
static ade::Shape get_shape (testify::GeneratedCase &gcase)
 
static std::vector< double > get_input_data (testify::GeneratedCase &gcase, std::string key)
 
static std::vector< double > get_output_data (testify::GeneratedCase &gcase, std::string key)
 
static void unary_op (antero::Testament *test, std::string tname, std::function< llo::DataNode(llo::DataNode &)> op)
 
static void binary_op (antero::Testament *test, std::string tname, std::function< llo::DataNode(llo::DataNode &, llo::DataNode &)> op)
 
int main (int argc, char **argv)
 
 TEST_F (REGRESS, Abs)
 
 TEST_F (REGRESS, Neg)
 
 TEST_F (REGRESS, Sin)
 
 TEST_F (REGRESS, Cos)
 
 TEST_F (REGRESS, Tan)
 
 TEST_F (REGRESS, Exp)
 
 TEST_F (REGRESS, Log)
 
 TEST_F (REGRESS, Sqrt)
 
 TEST_F (REGRESS, Pow)
 
 TEST_F (REGRESS, Add)
 
 TEST_F (REGRESS, Sub)
 
 TEST_F (REGRESS, Mul)
 
 TEST_F (REGRESS, Div)
 
 TEST_F (REGRESS, Matmul)
 
+

Function Documentation

+ +

◆ binary_op()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static void binary_op (antero::Testament * test,
std::string tname,
std::function< llo::DataNode(llo::DataNode &, llo::DataNode &)> op 
)
+
+static
+
+ +
+
+ +

◆ EXPECT_DATA_APPROX()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void EXPECT_DATA_APPROX (std::string name,
std::vector< double > expect,
std::vector< double > got 
)
+
+ +
+
+ +

◆ EXPECT_DATA_EQ()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void EXPECT_DATA_EQ (std::string name,
std::vector< double > expect,
std::vector< double > got 
)
+
+ +
+
+ +

◆ get_input_data()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static std::vector<double> get_input_data (testify::GeneratedCase & gcase,
std::string key 
)
+
+static
+
+ +
+
+ +

◆ get_output_data()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static std::vector<double> get_output_data (testify::GeneratedCase & gcase,
std::string key 
)
+
+static
+
+ +
+
+ +

◆ get_shape()

+ +
+
+ + + + + +
+ + + + + + + + +
static ade::Shape get_shape (testify::GeneratedCase & gcase)
+
+static
+
+ +
+
+ +

◆ main()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int argc,
char ** argv 
)
+
+ +
+
+ +

◆ TEST_F() [1/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Abs  
)
+
+ +
+
+ +

◆ TEST_F() [2/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Neg  
)
+
+ +
+
+ +

◆ TEST_F() [3/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Sin  
)
+
+ +
+
+ +

◆ TEST_F() [4/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Cos  
)
+
+ +
+
+ +

◆ TEST_F() [5/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Tan  
)
+
+ +
+
+ +

◆ TEST_F() [6/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Exp  
)
+
+ +
+
+ +

◆ TEST_F() [7/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Log  
)
+
+ +
+
+ +

◆ TEST_F() [8/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Sqrt  
)
+
+ +
+
+ +

◆ TEST_F() [9/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Pow  
)
+
+ +
+
+ +

◆ TEST_F() [10/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Add  
)
+
+ +
+
+ +

◆ TEST_F() [11/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Sub  
)
+
+ +
+
+ +

◆ TEST_F() [12/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Mul  
)
+
+ +
+
+ +

◆ TEST_F() [13/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Div  
)
+
+ +
+
+ +

◆ TEST_F() [14/14]

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST_F (REGRESS ,
Matmul  
)
+
+ +
+
+ +

◆ unary_op()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static void unary_op (antero::Testament * test,
std::string tname,
std::function< llo::DataNode(llo::DataNode &)> op 
)
+
+static
+
+ +
+
+
+ + + + diff --git a/docs/log_8cpp.html b/docs/log_8cpp.html new file mode 100644 index 000000000..57caa9273 --- /dev/null +++ b/docs/log_8cpp.html @@ -0,0 +1,81 @@ + + + + + + + +Tenncor: ade/log/log.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
log.cpp File Reference
+
+
+
#include "ade/log/log.hpp"
+
+ + + + diff --git a/docs/log_8hpp.html b/docs/log_8hpp.html new file mode 100644 index 000000000..d902ca6e0 --- /dev/null +++ b/docs/log_8hpp.html @@ -0,0 +1,144 @@ + + + + + + + +Tenncor: ade/log/log.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
log.hpp File Reference
+
+
+
#include <iostream>
+#include <memory>
+#include "ade/log/string.hpp"
+
+

Go to the source code of this file.

+ + + + + + + + +

+Classes

struct  ade::iLogger
 Interface of logger used in ADE. More...
 
struct  ade::DefLogger
 Default implementation of iLogger used in ADE. More...
 
+ + + +

+Namespaces

 ade
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void ade::set_logger (std::shared_ptr< iLogger > logger)
 Set input logger for ADE global logger. More...
 
const iLogger & ade::get_logger (void)
 Get reference to ADE global logger. More...
 
void ade::warn (std::string msg)
 Warn using global logger. More...
 
void ade::error (std::string msg)
 Error using global logger. More...
 
void ade::fatal (std::string msg)
 Fatal using global logger. More...
 
template<typename... ARGS>
void ade::warnf (std::string format, ARGS... args)
 Warn using global logger with arguments. More...
 
template<typename... ARGS>
void ade::errorf (std::string format, ARGS... args)
 Error using global logger with arguments. More...
 
template<typename... ARGS>
void ade::fatalf (std::string format, ARGS... args)
 Fatal using global logger with arguments. More...
 
+ + + + + + + +

+Variables

const std::string ade::warn_tag = "[WARNING]:"
 String tagged prepending a warning message in default logger. More...
 
const std::string ade::err_tag = "[ERROR]:"
 String tagged prepending an error message in default logger. More...
 
+
+ + + + diff --git a/docs/log_8hpp_source.html b/docs/log_8hpp_source.html new file mode 100644 index 000000000..a89c21011 --- /dev/null +++ b/docs/log_8hpp_source.html @@ -0,0 +1,102 @@ + + + + + + + +Tenncor: ade/log/log.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
log.hpp
+
+
+Go to the documentation of this file.
1 
9 #include <iostream>
10 #include <memory>
11 
12 #include "ade/log/string.hpp"
13 
14 #ifndef ADE_LOG_HPP
15 #define ADE_LOG_HPP
16 
17 namespace ade
18 {
19 
21 struct iLogger
22 {
23  virtual ~iLogger (void) = default;
24 
26  virtual void warn (std::string msg) const = 0;
27 
29  virtual void error (std::string msg) const = 0;
30 
32  virtual void fatal (std::string msg) const = 0;
33 };
34 
36 const std::string warn_tag = "[WARNING]:";
37 
39 const std::string err_tag = "[ERROR]:";
40 
42 struct DefLogger : public iLogger
43 {
45  void warn (std::string msg) const override
46  {
47  std::cerr << warn_tag << msg << std::endl;
48  }
49 
51  void error (std::string msg) const override
52  {
53  std::cerr << err_tag << msg << std::endl;
54  }
55 
57  void fatal (std::string msg) const override
58  {
59  throw std::runtime_error(msg);
60  }
61 };
62 
64 void set_logger (std::shared_ptr<iLogger> logger);
65 
67 const iLogger& get_logger (void);
68 
70 void warn (std::string msg);
71 
73 void error (std::string msg);
74 
76 void fatal (std::string msg);
77 
79 template <typename... ARGS>
80 void warnf (std::string format, ARGS... args)
81 {
82  warn(ade::sprintf(format, args...));
83 }
84 
86 template <typename... ARGS>
87 void errorf (std::string format, ARGS... args)
88 {
89  error(ade::sprintf(format, args...));
90 }
91 
93 template <typename... ARGS>
94 void fatalf (std::string format, ARGS... args)
95 {
96  fatal(ade::sprintf(format, args...));
97 }
98 
99 }
100 
101 #endif // ADE_LOG_HPP
std::string sprintf(std::string format, ARGS... args)
Return std::string with snprintf formatting.
Definition: string.hpp:85
+
virtual void error(std::string msg) const =0
Notify user of message regarding recoverable error.
+
void error(std::string msg)
Error using global logger.
+
const std::string err_tag
String tagged prepending an error message in default logger.
Definition: log.hpp:39
+
void set_logger(std::shared_ptr< iLogger > logger)
Set input logger for ADE global logger.
+
Interface of logger used in ADE.
Definition: log.hpp:21
+
const iLogger & get_logger(void)
Get reference to ADE global logger.
+
void warnf(std::string format, ARGS... args)
Warn using global logger with arguments.
Definition: log.hpp:80
+
void errorf(std::string format, ARGS... args)
Error using global logger with arguments.
Definition: log.hpp:87
+
void fatalf(std::string format, ARGS... args)
Fatal using global logger with arguments.
Definition: log.hpp:94
+
void warn(std::string msg) const override
Implementation of iLogger.
Definition: log.hpp:45
+
void warn(std::string msg)
Warn using global logger.
+
Definition: coord.hpp:18
+
virtual void warn(std::string msg) const =0
Warn user of message regarding poor decisions.
+
void fatal(std::string msg)
Fatal using global logger.
+ +
void fatal(std::string msg) const override
Implementation of iLogger.
Definition: log.hpp:57
+
Default implementation of iLogger used in ADE.
Definition: log.hpp:42
+
void error(std::string msg) const override
Implementation of iLogger.
Definition: log.hpp:51
+
virtual ~iLogger(void)=default
+
const std::string warn_tag
String tagged prepending a warning message in default logger.
Definition: log.hpp:36
+
virtual void fatal(std::string msg) const =0
Notify user of message regarding fatal error, then finish him.
+
+ + + + diff --git a/docs/matops_8cpp.html b/docs/matops_8cpp.html new file mode 100644 index 000000000..ea1f03a76 --- /dev/null +++ b/docs/matops_8cpp.html @@ -0,0 +1,83 @@ + + + + + + + +Tenncor: ade/src/matops.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matops.cpp File Reference
+
+
+
#include <cassert>
+#include <cstring>
+#include "ade/matops.hpp"
+
+ + + + diff --git a/docs/matops_8hpp.html b/docs/matops_8hpp.html new file mode 100644 index 000000000..0d4f54734 --- /dev/null +++ b/docs/matops_8hpp.html @@ -0,0 +1,118 @@ + + + + + + + +Tenncor: ade/matops.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matops.hpp File Reference
+
+
+
#include "ade/shape.hpp"
+
+

Go to the source code of this file.

+ + + + +

+Namespaces

 ade
 
+ + + + +

+Typedefs

using ade::MatrixT = double[mat_dim][mat_dim]
 Coordinate transformation matrix (using homogeneous) More...
 
+ + + + + + + +

+Functions

std::string ade::to_string (const MatrixT &mat)
 Return the string representation of input matrix. More...
 
void ade::inverse (MatrixT out, const MatrixT &in)
 Inverse in matrix and dump to out matrix. More...
 
+ + + + + + + +

+Variables

const uint8_t ade::mat_dim = rank_cap + 1
 Number of rows and columns for the homogeneous matrix. More...
 
const size_t ade::mat_size = sizeof(double) * mat_dim * mat_dim
 Number of bytes in a homogeneous matrix. More...
 
+
+ + + + diff --git a/docs/matops_8hpp_source.html b/docs/matops_8hpp_source.html new file mode 100644 index 000000000..12c4835b5 --- /dev/null +++ b/docs/matops_8hpp_source.html @@ -0,0 +1,88 @@ + + + + + + + +Tenncor: ade/matops.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matops.hpp
+
+
+Go to the documentation of this file.
1 
10 #include "ade/shape.hpp"
11 
12 #ifndef ADE_MATOPS_HPP
13 #define ADE_MATOPS_HPP
14 
15 namespace ade
16 {
17 
19 const uint8_t mat_dim = rank_cap + 1;
20 
22 const size_t mat_size = sizeof(double) * mat_dim * mat_dim;
23 
25 using MatrixT = double[mat_dim][mat_dim];
26 
28 std::string to_string (const MatrixT& mat);
29 
31 void inverse (MatrixT out, const MatrixT& in);
32 
33 }
34 
35 #endif
const uint8_t rank_cap
Number of dimsensions in a shape/coordinate.
Definition: shape.hpp:36
+
const uint8_t mat_dim
Number of rows and columns for the homogeneous matrix.
Definition: matops.hpp:19
+
const size_t mat_size
Number of bytes in a homogeneous matrix.
Definition: matops.hpp:22
+
double[mat_dim][mat_dim] MatrixT
Coordinate transformation matrix (using homogeneous)
Definition: matops.hpp:25
+ +
Definition: coord.hpp:18
+
std::string to_string(T arg)
Return string representation for common arguments.
Definition: string.hpp:67
+
void inverse(MatrixT out, const MatrixT &in)
Inverse in matrix and dump to out matrix.
+
+ + + + diff --git a/docs/md_ade__r_e_a_d_m_e__a_d_e.html b/docs/md_ade__r_e_a_d_m_e__a_d_e.html new file mode 100644 index 000000000..61d3747b9 --- /dev/null +++ b/docs/md_ade__r_e_a_d_m_e__a_d_e.html @@ -0,0 +1,112 @@ + + + + + + + +Tenncor: ADE (Automatic Differentiation Engine) + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
ADE (Automatic Differentiation Engine)
+
+
+

Given an equation built from tensors (variable defined by the shape of the data) and operations, generate a derivative of the equation.

+

What are shapes? And why are they here?

+

Shapes are arrays of integers representing how the data is sorted. A matrix is typically represented by a row and a column. In ADE, we treat row as the limit of the data along the y-axis, and the column as the data limit along the x-axis. Together, we represent a matrix by the shape [col, row].

+

Since equations involve shape-changing operations, we include shapes here to validate whether an equation is valid under the shape constraints. For example, a dot operation must be performed against matrices with a common dimension.

+

Where is the data?

+

Data calculation is not included here because implementing such operations are implementation details best deferred, because optimizing operations are hard. Instead, use an external library.

+

Adding more operations

+

Users must implement their own iTensor that performs a gradient operation (the chain rule of said operation).

+

Cons

+

Currently, this generator makes no guarantee on the efficiency of the generated equation.

+

Test Plan

+

ADE comprises of 5 components:

+
    +
  • Shape
  • +
  • Tensor
  • +
  • Fwder
  • +
  • Functor
  • +
  • Grader
  • +
+

With the exception of Grader, the remaining 4 components can have their test data auto-generated due to their expected output following an expected rule.

+

Shapes

+

Shapes behave like an array and and hold information regarding their initial integer array

+

Tensors

+

Tensors hold shape info, and their gradient is 1 or 0 depending on the node it's deriving with respect to

+

Fwders

+

Forwarders aggregate and transform shape information and fall in 3 classes:

+
    +
  • elementary (or identity): these reject non-scalar shapes that are not compatible with other non-scalar shapes
  • +
  • coordinate transformer: takes a single shape and an integer array argument. This integer array holds some dimension information on how to transform the shape.
  • +
  • multi-argument aggregators: such as matrix multiplication or convolution
  • +
+

Since all forwarders conform to a specific rule, their expected behavior can inferred from auto-generated input (mostly shapes).

+

Functors

+

Functors wrap the components and its gradient should conform to the grader associated with its initial opcode. Tests in functor should be minimal, but still cover trivial cases getting arguments, to_string and basic gradient outputs, due to potential typos later on.

+

Graders

+

Graders specify the chain rule mapped by a specific operation. Its behavior is adhoc, so it does not benefit from auto-generation. Easiest test is to stringify the generated equation tree and match against test data

+
+ + + + diff --git a/docs/md_llo__r_e_a_d_m_e__l_l_o.html b/docs/md_llo__r_e_a_d_m_e__l_l_o.html new file mode 100644 index 000000000..9d31ff6cc --- /dev/null +++ b/docs/md_llo__r_e_a_d_m_e__l_l_o.html @@ -0,0 +1,80 @@ + + + + + + + +Tenncor: LLO (Low-Level Operators) + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
LLO (Low-Level Operators)
+
+
+

Using ADE, construct an equation graph, wrap data-relevant arguments missing in ADE nodes (e.g.: flip dimension), then map the nodes to a low level implementation of the operator mapped by the node.

+

LLO provides an evaluation function which directs the appropriate arguments to the mapped operation implementation.

+

Future Work

+

In order for decouple the ADE extension from the operator implementations, we need to experiment and settle on a stable API. This module is ultimately a wrapper library for ADE, and operator libraries for the benefit of top-level executables.

+
+ + + + diff --git a/docs/md_pbm__r_e_a_d_m_e__p_b_m.html b/docs/md_pbm__r_e_a_d_m_e__p_b_m.html new file mode 100644 index 000000000..a2b3af35a --- /dev/null +++ b/docs/md_pbm__r_e_a_d_m_e__p_b_m.html @@ -0,0 +1,80 @@ + + + + + + + +Tenncor: PBM (Protobuf Marshaller) + + + + + + + + + +
+
+ + + + + + +
+
Tenncor +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
PBM (Protobuf Marshaller)
+
+
+

Serialize ADE and LLO-extended graphs created by top-level code in protobuf format.

+

Protobuf is platform independent format for structured data.

+

Why Protobuf

+

Because the library can be used across all the languages I'm familiar with. It's also more transparent and less bug-ridden than most free JSON parsing libraries.

+
+ + + + diff --git a/docs/menu.js b/docs/menu.js new file mode 100644 index 000000000..89aaf575c --- /dev/null +++ b/docs/menu.js @@ -0,0 +1,50 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/docs/menudata.js b/docs/menudata.js new file mode 100644 index 000000000..aa7c010b9 --- /dev/null +++ b/docs/menudata.js @@ -0,0 +1,183 @@ +/* +@ @licstart The following is the entire license notice for the +JavaScript code in this file. + +Copyright (C) 1997-2017 by Dimitri van Heesch + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +@licend The above is the entire license notice +for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Namespaces",url:"namespaces.html",children:[ +{text:"Namespace List",url:"namespaces.html"}, +{text:"Namespace Members",url:"namespacemembers.html",children:[ +{text:"All",url:"namespacemembers.html",children:[ +{text:"_",url:"namespacemembers.html#index__"}, +{text:"a",url:"namespacemembers.html#index_a"}, +{text:"b",url:"namespacemembers.html#index_b"}, +{text:"c",url:"namespacemembers.html#index_c"}, +{text:"d",url:"namespacemembers.html#index_d"}, +{text:"e",url:"namespacemembers.html#index_e"}, +{text:"f",url:"namespacemembers.html#index_f"}, +{text:"g",url:"namespacemembers.html#index_g"}, +{text:"i",url:"namespacemembers.html#index_i"}, +{text:"l",url:"namespacemembers.html#index_l"}, +{text:"m",url:"namespacemembers.html#index_m"}, +{text:"n",url:"namespacemembers.html#index_n"}, +{text:"o",url:"namespacemembers.html#index_o"}, +{text:"p",url:"namespacemembers.html#index_p"}, +{text:"r",url:"namespacemembers.html#index_r"}, +{text:"s",url:"namespacemembers.html#index_s"}, +{text:"t",url:"namespacemembers.html#index_t"}, +{text:"u",url:"namespacemembers.html#index_u"}, +{text:"w",url:"namespacemembers.html#index_w"}, +{text:"z",url:"namespacemembers.html#index_z"}]}, +{text:"Functions",url:"namespacemembers_func.html",children:[ +{text:"a",url:"namespacemembers_func.html#index_a"}, +{text:"b",url:"namespacemembers_func.html#index_b"}, +{text:"c",url:"namespacemembers_func.html#index_c"}, +{text:"d",url:"namespacemembers_func.html#index_d"}, +{text:"e",url:"namespacemembers_func.html#index_e"}, +{text:"f",url:"namespacemembers_func.html#index_f"}, +{text:"g",url:"namespacemembers_func.html#index_g"}, +{text:"i",url:"namespacemembers_func.html#index_i"}, +{text:"l",url:"namespacemembers_func.html#index_l"}, +{text:"m",url:"namespacemembers_func.html#index_m"}, +{text:"n",url:"namespacemembers_func.html#index_n"}, +{text:"o",url:"namespacemembers_func.html#index_o"}, +{text:"p",url:"namespacemembers_func.html#index_p"}, +{text:"r",url:"namespacemembers_func.html#index_r"}, +{text:"s",url:"namespacemembers_func.html#index_s"}, +{text:"t",url:"namespacemembers_func.html#index_t"}, +{text:"u",url:"namespacemembers_func.html#index_u"}, +{text:"w",url:"namespacemembers_func.html#index_w"}, +{text:"z",url:"namespacemembers_func.html#index_z"}]}, +{text:"Variables",url:"namespacemembers_vars.html"}, +{text:"Typedefs",url:"namespacemembers_type.html"}, +{text:"Enumerations",url:"namespacemembers_enum.html"}, +{text:"Enumerator",url:"namespacemembers_eval.html",children:[ +{text:"_",url:"namespacemembers_eval.html#index__"}, +{text:"a",url:"namespacemembers_eval.html#index_a"}, +{text:"b",url:"namespacemembers_eval.html#index_b"}, +{text:"c",url:"namespacemembers_eval.html#index_c"}, +{text:"d",url:"namespacemembers_eval.html#index_d"}, +{text:"e",url:"namespacemembers_eval.html#index_e"}, +{text:"f",url:"namespacemembers_eval.html#index_f"}, +{text:"g",url:"namespacemembers_eval.html#index_g"}, +{text:"i",url:"namespacemembers_eval.html#index_i"}, +{text:"l",url:"namespacemembers_eval.html#index_l"}, +{text:"m",url:"namespacemembers_eval.html#index_m"}, +{text:"n",url:"namespacemembers_eval.html#index_n"}, +{text:"p",url:"namespacemembers_eval.html#index_p"}, +{text:"r",url:"namespacemembers_eval.html#index_r"}, +{text:"s",url:"namespacemembers_eval.html#index_s"}, +{text:"t",url:"namespacemembers_eval.html#index_t"}, +{text:"u",url:"namespacemembers_eval.html#index_u"}]}]}]}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions.html#index_b"}, +{text:"c",url:"functions.html#index_c"}, +{text:"d",url:"functions.html#index_d"}, +{text:"e",url:"functions.html#index_e"}, +{text:"f",url:"functions.html#index_f"}, +{text:"g",url:"functions.html#index_g"}, +{text:"i",url:"functions.html#index_i"}, +{text:"l",url:"functions.html#index_l"}, +{text:"m",url:"functions.html#index_m"}, +{text:"n",url:"functions.html#index_n"}, +{text:"o",url:"functions.html#index_o"}, +{text:"p",url:"functions.html#index_p"}, +{text:"r",url:"functions.html#index_r"}, +{text:"s",url:"functions.html#index_s"}, +{text:"t",url:"functions.html#index_t"}, +{text:"v",url:"functions.html#index_v"}, +{text:"w",url:"functions.html#index_w"}, +{text:"~",url:"functions.html#index_0x7e"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"b",url:"functions_func.html#index_b"}, +{text:"c",url:"functions_func.html#index_c"}, +{text:"d",url:"functions_func.html#index_d"}, +{text:"e",url:"functions_func.html#index_e"}, +{text:"f",url:"functions_func.html#index_f"}, +{text:"g",url:"functions_func.html#index_g"}, +{text:"i",url:"functions_func.html#index_i"}, +{text:"m",url:"functions_func.html#index_m"}, +{text:"n",url:"functions_func.html#index_n"}, +{text:"o",url:"functions_func.html#index_o"}, +{text:"p",url:"functions_func.html#index_p"}, +{text:"r",url:"functions_func.html#index_r"}, +{text:"s",url:"functions_func.html#index_s"}, +{text:"t",url:"functions_func.html#index_t"}, +{text:"v",url:"functions_func.html#index_v"}, +{text:"w",url:"functions_func.html#index_w"}, +{text:"~",url:"functions_func.html#index_0x7e"}]}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"a",url:"functions_vars.html#index_a"}, +{text:"b",url:"functions_vars.html#index_b"}, +{text:"c",url:"functions_vars.html#index_c"}, +{text:"d",url:"functions_vars.html#index_d"}, +{text:"f",url:"functions_vars.html#index_f"}, +{text:"g",url:"functions_vars.html#index_g"}, +{text:"l",url:"functions_vars.html#index_l"}, +{text:"m",url:"functions_vars.html#index_m"}, +{text:"o",url:"functions_vars.html#index_o"}, +{text:"p",url:"functions_vars.html#index_p"}, +{text:"s",url:"functions_vars.html#index_s"}, +{text:"t",url:"functions_vars.html#index_t"}]}, +{text:"Typedefs",url:"functions_type.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"File Members",url:"globals.html",children:[ +{text:"All",url:"globals.html",children:[ +{text:"a",url:"globals.html#index_a"}, +{text:"b",url:"globals.html#index_b"}, +{text:"c",url:"globals.html#index_c"}, +{text:"d",url:"globals.html#index_d"}, +{text:"e",url:"globals.html#index_e"}, +{text:"f",url:"globals.html#index_f"}, +{text:"g",url:"globals.html#index_g"}, +{text:"l",url:"globals.html#index_l"}, +{text:"m",url:"globals.html#index_m"}, +{text:"n",url:"globals.html#index_n"}, +{text:"p",url:"globals.html#index_p"}, +{text:"r",url:"globals.html#index_r"}, +{text:"s",url:"globals.html#index_s"}, +{text:"t",url:"globals.html#index_t"}, +{text:"u",url:"globals.html#index_u"}]}, +{text:"Functions",url:"globals_func.html",children:[ +{text:"b",url:"globals_func.html#index_b"}, +{text:"c",url:"globals_func.html#index_c"}, +{text:"e",url:"globals_func.html#index_e"}, +{text:"f",url:"globals_func.html#index_f"}, +{text:"g",url:"globals_func.html#index_g"}, +{text:"l",url:"globals_func.html#index_l"}, +{text:"m",url:"globals_func.html#index_m"}, +{text:"r",url:"globals_func.html#index_r"}, +{text:"s",url:"globals_func.html#index_s"}, +{text:"t",url:"globals_func.html#index_t"}, +{text:"u",url:"globals_func.html#index_u"}]}, +{text:"Variables",url:"globals_vars.html"}, +{text:"Typedefs",url:"globals_type.html"}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/docs/namespaceade.html b/docs/namespaceade.html new file mode 100644 index 000000000..71ad9a398 --- /dev/null +++ b/docs/namespaceade.html @@ -0,0 +1,1519 @@ + + + + + + + +Tenncor: ade Namespace Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    ade Namespace Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  CoordMap
     
    struct  DefLogger
     Default implementation of iLogger used in ADE. More...
     
    struct  Functor
     Functor of the graph mapping to operators specified by opcode argument. More...
     
    struct  iCoordMap
     Interface for transforming coordinates and reversing the coordinate. More...
     
    struct  iFunctor
     Interface of OPCODE-defined operation node. More...
     
    struct  iLogger
     Interface of logger used in ADE. More...
     
    struct  iTensor
     Interface of traversible and differentiable nodes with shape information. More...
     
    struct  iTraveler
     Interface to travel through graph, treating Tensor and iFunctor differently. More...
     
    struct  PathFinder
     
    struct  Shape
     
    struct  Tensor
     Leaf of the graph commonly representing the variable in an equation. More...
     
    struct  Tensorptr
     Smart pointer to iTensor ensuring non-null references. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    using CoordPtrT = std::shared_ptr< iCoordMap >
     Type of iCoordMap smartpointer. More...
     
    using ArgsT = std::vector< std::pair< CoordPtrT, Tensorptr > >
     Type of functor arguments. More...
     
    using MatrixT = double[mat_dim][mat_dim]
     Coordinate transformation matrix (using homogeneous) More...
     
    using DimT = uint8_t
     Type used for shape dimension. More...
     
    using CDimT = int16_t
     Type used for coordinate dimensions. More...
     
    using NElemT = uint64_t
     
    using ShapeT = std::array< DimT, rank_cap >
     Array type used to hold dimension info in Shape. More...
     
    using CoordT = std::array< CDimT, rank_cap >
     
    + + + + +

    +Enumerations

    enum  OPCODE {
    +  COPY = 0, +ABS, +NEG, +SIN, +
    +  COS, +TAN, +EXP, +LOG, +
    +  SQRT, +ROUND, +POW, +ADD, +
    +  SUB, +MUL, +DIV, +MIN, +
    +  MAX, +EQ, +NE, +LT, +
    +  GT, +RAND_BINO, +RAND_UNIF, +RAND_NORM, +
    +  _BAD_OP +
    + }
     Enumerated representation of operations. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    Shape map_shape (CoordPtrT &mapper, const Shape &shape)
     Return transformed shape according to coordinate mapper on input shape. More...
     
    CoordPtrT reduce (uint8_t rank, std::vector< DimT > red)
     
    CoordPtrT extend (uint8_t rank, std::vector< DimT > ext)
     
    CoordPtrT permute (std::vector< uint8_t > order)
     
    CoordPtrT flip (uint8_t dim)
     
    template<OPCODE OP>
    Tensorptr grader (ArgsT &args, ArgsT &grads)
     
    Tensorptr gradmap (OPCODE op, ArgsT args, ArgsT &grads)
     
    void set_logger (std::shared_ptr< iLogger > logger)
     Set input logger for ADE global logger. More...
     
    const iLoggerget_logger (void)
     Get reference to ADE global logger. More...
     
    void warn (std::string msg)
     Warn using global logger. More...
     
    void error (std::string msg)
     Error using global logger. More...
     
    void fatal (std::string msg)
     Fatal using global logger. More...
     
    template<typename... ARGS>
    void warnf (std::string format, ARGS... args)
     Warn using global logger with arguments. More...
     
    template<typename... ARGS>
    void errorf (std::string format, ARGS... args)
     Error using global logger with arguments. More...
     
    template<typename... ARGS>
    void fatalf (std::string format, ARGS... args)
     Fatal using global logger with arguments. More...
     
    void to_stream (std::ostream &s, const char *str)
     Stream C-style strings to s. More...
     
    void to_stream (std::ostream &s, std::string str)
     Stream std::strings to s. More...
     
    void to_stream (std::ostream &s, int8_t c)
     Stream byte-size integers and display as numbers to s. More...
     
    void to_stream (std::ostream &s, uint8_t c)
     Stream byte-size unsigned integers and display as numbers to s. More...
     
    template<typename T >
    void to_stream (std::ostream &s, T val)
     Stream generic value to s. More...
     
    template<typename Iterator >
    void to_stream (std::ostream &s, Iterator begin, Iterator end)
     Stream values between iterators as an array. More...
     
    template<typename T >
    std::string to_string (T arg)
     Return string representation for common arguments. More...
     
    template<typename Iterator >
    std::string to_string (Iterator begin, Iterator end)
     Return string representation of values between iterators. More...
     
    template<typename... ARGS>
    std::string sprintf (std::string format, ARGS... args)
     Return std::string with snprintf formatting. More...
     
    std::string to_string (const MatrixT &mat)
     Return the string representation of input matrix. More...
     
    void inverse (MatrixT out, const MatrixT &in)
     Inverse in matrix and dump to out matrix. More...
     
    std::string opname (OPCODE opcode)
     Return the string name of input OPCODE. More...
     
    OPCODE name_op (std::string oname)
     Return the OPCODE of the string name. More...
     
    NElemT index (Shape shape, CoordT coord)
     
    CoordT coordinate (Shape shape, NElemT idx)
     
    Tensorptr shaped_one (Shape shape)
     Return a Tensor::SYMBOLIC_ONE extended to input shape. More...
     
    Tensorptr shaped_zero (Shape shape)
     Return a Tensor::SYMBOLIC_ZERO extended to input shape. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    CoordPtrT identity
     Identity matrix instance. More...
     
    const std::string warn_tag = "[WARNING]:"
     String tagged prepending a warning message in default logger. More...
     
    const std::string err_tag = "[ERROR]:"
     String tagged prepending an error message in default logger. More...
     
    const char arr_begin = '['
     Symbol for the start of an array as string. More...
     
    const char arr_end = ']'
     Symbol for the end of an array as string. More...
     
    const char arr_delim = '\\'
     Symbol for the delimter between elements of an array as string. More...
     
    const uint8_t mat_dim = rank_cap + 1
     Number of rows and columns for the homogeneous matrix. More...
     
    const size_t mat_size = sizeof(double) * mat_dim * mat_dim
     Number of bytes in a homogeneous matrix. More...
     
    const uint8_t rank_cap = 8
     Number of dimsensions in a shape/coordinate. More...
     
    +

    Detailed Description

    +

    grader.hpp ade

    +

    Purpose: Define derivative chain rules and map to OPCODEs

    +

    log.hpp ade

    +

    Purpose: Define log message handling interface

    +

    string.hpp ade

    +

    Purpose: Define string conversions for displaying various types

    +

    matops.hpp ade

    +

    Purpose: Define matrix operations for coordinate transformation This functions are here to avoid external dependencies in ADE

    +

    opcode.hpp ade

    +

    Purpose: Enumerate operators and define their function signature

    +

    shape.hpp ade

    +

    Purpose: Define shapes models and coordinate to flattened index mapping

    +

    tensor.hpp ade

    +

    Purpose: Define interfaces and building blocks for an equation graph

    +

    Typedef Documentation

    + +

    ◆ ArgsT

    + +
    +
    + + + + +
    using ade::ArgsT = typedef std::vector<std::pair<CoordPtrT,Tensorptr> >
    +
    + +

    Type of functor arguments.

    + +
    +
    + +

    ◆ CDimT

    + +
    +
    + + + + +
    using ade::CDimT = typedef int16_t
    +
    + +

    Type used for coordinate dimensions.

    + +
    +
    + +

    ◆ CoordPtrT

    + +
    +
    + + + + +
    using ade::CoordPtrT = typedef std::shared_ptr<iCoordMap>
    +
    + +

    Type of iCoordMap smartpointer.

    + +
    +
    + +

    ◆ CoordT

    + +
    +
    + + + + +
    using ade::CoordT = typedef std::array<CDimT,rank_cap>
    +
    +

    Array type used to hold dimension info when transforming coordinates Coordinates are allowed to be negative, negative dimensions are counted backward from the corresponding shape dimension For example, given shape=[5], coord=[-1] is the same as coord=[4]

    + +
    +
    + +

    ◆ DimT

    + +
    +
    + + + + +
    using ade::DimT = typedef uint8_t
    +
    + +

    Type used for shape dimension.

    + +
    +
    + +

    ◆ MatrixT

    + +
    +
    + + + + +
    using ade::MatrixT = typedef double[mat_dim][mat_dim]
    +
    + +

    Coordinate transformation matrix (using homogeneous)

    + +
    +
    + +

    ◆ NElemT

    + +
    +
    + + + + +
    using ade::NElemT = typedef uint64_t
    +
    +

    Type used for flattened index DimT having 8 bits and shape comprising of 8 DimT values means a maximum flattened index of (2 ^ 8) ^ 8 = 2 ^ 64

    + +
    +
    + +

    ◆ ShapeT

    + +
    +
    + + + + +
    using ade::ShapeT = typedef std::array<DimT,rank_cap>
    +
    + +

    Array type used to hold dimension info in Shape.

    + +
    +
    +

    Enumeration Type Documentation

    + +

    ◆ OPCODE

    + +
    +
    + + + + +
    enum ade::OPCODE
    +
    + +

    Enumerated representation of operations.

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Enumerator
    COPY 
    ABS 

    Make every element positive.

    +
    NEG 

    Negate the sign of every element.

    +
    SIN 

    Sine every element.

    +
    COS 

    Cosine every element.

    +
    TAN 

    Tangent every element.

    +
    EXP 

    Exponent every element.

    +
    LOG 

    Natural log every element.

    +
    SQRT 

    Square root every element.

    +
    ROUND 

    Round every element.

    +
    POW 

    Given tensors a, and b, for every mapped index i in range [0:max_nelems], apply std::pow operator to elements a[i] and b[i] Only accept 2 arguments

    +
    ADD 

    Given tensors, for every mapped index i in range [0:max_nelems], sum all elements arg[i] for arg in tensors

    +
    SUB 

    Given tensors a, and b, for every mapped index i in range [0:max_nelems], apply subtract elements a[i] and b[i] Only accept 2 arguments

    +
    MUL 

    Given tensors, for every mapped index i in range [0:max_nelems], multiply all elements arg[i] for arg in tensors

    +
    DIV 

    Given tensors a, and b, for every mapped index i in range [0:max_nelems], apply divide elements a[i] and b[i] Only accept 2 arguments

    +
    MIN 

    Given tensors, for every mapped index i in range [0:max_nelems], take the minimum all elements arg[i] for arg in tensors

    +
    MAX 

    Given tensors, for every mapped index i in range [0:max_nelems], take the maximum all elements arg[i] for arg in tensors

    +
    EQ 

    Given tensors a, and b, for every mapped index i in range [0:max_nelems], apply == operator to elements a[i] and b[i] Only accept 2 arguments

    +
    NE 

    Given tensors a, and b, for every mapped index i in range [0:max_nelems], apply != operator to elements a[i] and b[i] Only accept 2 arguments

    +
    LT 

    Given tensors a, and b, for every mapped index i in range [0:max_nelems], apply < operator to elements a[i] and b[i] Only accept 2 arguments

    +
    GT 

    Given tensors a, and b, for every mapped index i in range [0:max_nelems], apply > operator to elements a[i] and b[i] Only accept 2 arguments

    +
    RAND_BINO 

    Given tensors a, and b, for every mapped index i in range [0:max_nelems], apply std::binomial_distribution function to elements a[i] and b[i] Only accept 2 arguments

    +
    RAND_UNIF 

    Given tensors a, and b, for every mapped index i in range [0:max_nelems], apply std::uniform_distributon function to elements a[i] and b[i] Only accept 2 arguments

    +
    RAND_NORM 

    Given tensors a, and b, for every mapped index i in range [0:max_nelems], apply std::normal_distribution function to elements a[i] and b[i] Only accept 2 arguments

    +
    _BAD_OP 

    Sentinel value of bad opcodes.

    +
    + +
    +
    +

    Function Documentation

    + +

    ◆ coordinate()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    CoordT ade::coordinate (Shape shape,
    NElemT idx 
    )
    +
    +

    Return the coordinate of a flat index according to shape Coordinate dimensions are 0-based For example [0, 0, ..., 0] <-> 0

    + +
    +
    + +

    ◆ error()

    + +
    +
    + + + + + + + + +
    void ade::error (std::string msg)
    +
    + +

    Error using global logger.

    + +
    +
    + +

    ◆ errorf()

    + +
    +
    +
    +template<typename... ARGS>
    + + + + + + + + + + + + + + + + + + +
    void ade::errorf (std::string format,
    ARGS... args 
    )
    +
    + +

    Error using global logger with arguments.

    + +
    +
    + +

    ◆ extend()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    CoordPtrT ade::extend (uint8_t rank,
    std::vector< DimText 
    )
    +
    +

    Return coordinate mapper multiplying dimensions after rank by values in ext vector For example, given coordinate [6, 6, 2, 2], rank=2, and ext=[3, 3], mapper forward transforms to coordinate [6, 6, 6, 6]

    + +
    +
    + +

    ◆ fatal()

    + +
    +
    + + + + + + + + +
    void ade::fatal (std::string msg)
    +
    + +

    Fatal using global logger.

    + +
    +
    + +

    ◆ fatalf()

    + +
    +
    +
    +template<typename... ARGS>
    + + + + + + + + + + + + + + + + + + +
    void ade::fatalf (std::string format,
    ARGS... args 
    )
    +
    + +

    Fatal using global logger with arguments.

    + +
    +
    + +

    ◆ flip()

    + +
    +
    + + + + + + + + +
    CoordPtrT ade::flip (uint8_t dim)
    +
    +

    Return coordinate mapper flipping coordinate value at specified dimension Flipped dimension with original value x is represented as -x-1 (see CoordT definition)

    + +
    +
    + +

    ◆ get_logger()

    + +
    +
    + + + + + + + + +
    const iLogger& ade::get_logger (void )
    +
    + +

    Get reference to ADE global logger.

    + +
    +
    + +

    ◆ grader()

    + +
    +
    +
    +template<OPCODE OP>
    + + + + + + + + + + + + + + + + + + +
    Tensorptr ade::grader (ArgsTargs,
    ArgsTgrads 
    )
    +
    + +
    +
    + +

    ◆ gradmap()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Tensorptr ade::gradmap (OPCODE op,
    ArgsT args,
    ArgsTgrads 
    )
    +
    + +
    +
    + +

    ◆ index()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    NElemT ade::index (Shape shape,
    CoordT coord 
    )
    +
    +

    Return the flat index mapped by coord according to shape For example, 2-D tensor has indices in place of value as follows: [[0, 1, ..., n-1], [n, n+1, ..., 2*n-1]] The index follows the equation: index = coord[0]+coord[1]*shape[0]+... Invalid coordinate where the coordinate value is beyond the dimension for any index will report error

    + +
    +
    + +

    ◆ inverse()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void ade::inverse (MatrixT out,
    const MatrixTin 
    )
    +
    + +

    Inverse in matrix and dump to out matrix.

    + +
    +
    + +

    ◆ map_shape()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Shape ade::map_shape (CoordPtrTmapper,
    const Shapeshape 
    )
    +
    + +

    Return transformed shape according to coordinate mapper on input shape.

    + +
    +
    + +

    ◆ name_op()

    + +
    +
    + + + + + + + + +
    OPCODE ade::name_op (std::string oname)
    +
    + +

    Return the OPCODE of the string name.

    + +
    +
    + +

    ◆ opname()

    + +
    +
    + + + + + + + + +
    std::string ade::opname (OPCODE opcode)
    +
    + +

    Return the string name of input OPCODE.

    + +
    +
    + +

    ◆ permute()

    + +
    +
    + + + + + + + + +
    CoordPtrT ade::permute (std::vector< uint8_t > order)
    +
    +

    Return coordinate mapper permuting coordinate according to input order Order is a vector of indices of the dimensions to appear in order Indices not referenced by order but less than rank_cap will be appended by numerical order For example, given coordinate [1, 2, 3, 4], order=[1, 3], mapper forward transforms to coordinate [2, 4, 1, 3] Returned coordinate mapper will be a CoordMap instance, so inversibility requires order indices be unique, otherwise throw fatal error

    + +
    +
    + +

    ◆ reduce()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    CoordPtrT ade::reduce (uint8_t rank,
    std::vector< DimTred 
    )
    +
    +

    Return coordinate mapper dividing dimensions after rank by values in red vector For example, given coordinate [2, 2, 6, 6], rank=2, and red=[3, 3], mapper forward transforms to coordinate [2, 2, 2, 2]

    + +
    +
    + +

    ◆ set_logger()

    + +
    +
    + + + + + + + + +
    void ade::set_logger (std::shared_ptr< iLoggerlogger)
    +
    + +

    Set input logger for ADE global logger.

    + +
    +
    + +

    ◆ shaped_one()

    + +
    +
    + + + + + + + + +
    Tensorptr ade::shaped_one (Shape shape)
    +
    + +

    Return a Tensor::SYMBOLIC_ONE extended to input shape.

    + +
    +
    + +

    ◆ shaped_zero()

    + +
    +
    + + + + + + + + +
    Tensorptr ade::shaped_zero (Shape shape)
    +
    + +

    Return a Tensor::SYMBOLIC_ZERO extended to input shape.

    + +
    +
    + +

    ◆ sprintf()

    + +
    +
    +
    +template<typename... ARGS>
    + + + + + + + + + + + + + + + + + + +
    std::string ade::sprintf (std::string format,
    ARGS... args 
    )
    +
    + +

    Return std::string with snprintf formatting.

    + +
    +
    + +

    ◆ to_stream() [1/6]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void ade::to_stream (std::ostream & s,
    const char * str 
    )
    +
    + +

    Stream C-style strings to s.

    + +
    +
    + +

    ◆ to_stream() [2/6]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void ade::to_stream (std::ostream & s,
    std::string str 
    )
    +
    + +

    Stream std::strings to s.

    + +
    +
    + +

    ◆ to_stream() [3/6]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void ade::to_stream (std::ostream & s,
    int8_t c 
    )
    +
    + +

    Stream byte-size integers and display as numbers to s.

    + +
    +
    + +

    ◆ to_stream() [4/6]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void ade::to_stream (std::ostream & s,
    uint8_t c 
    )
    +
    + +

    Stream byte-size unsigned integers and display as numbers to s.

    + +
    +
    + +

    ◆ to_stream() [5/6]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    void ade::to_stream (std::ostream & s,
    val 
    )
    +
    + +

    Stream generic value to s.

    + +
    +
    + +

    ◆ to_stream() [6/6]

    + +
    +
    +
    +template<typename Iterator >
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void ade::to_stream (std::ostream & s,
    Iterator begin,
    Iterator end 
    )
    +
    + +

    Stream values between iterators as an array.

    + +
    +
    + +

    ◆ to_string() [1/3]

    + +
    +
    + + + + + + + + +
    std::string ade::to_string (const MatrixTmat)
    +
    + +

    Return the string representation of input matrix.

    + +
    +
    + +

    ◆ to_string() [2/3]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + +
    std::string ade::to_string (arg)
    +
    + +

    Return string representation for common arguments.

    + +
    +
    + +

    ◆ to_string() [3/3]

    + +
    +
    +
    +template<typename Iterator >
    + + + + + + + + + + + + + + + + + + +
    std::string ade::to_string (Iterator begin,
    Iterator end 
    )
    +
    + +

    Return string representation of values between iterators.

    + +
    +
    + +

    ◆ warn()

    + +
    +
    + + + + + + + + +
    void ade::warn (std::string msg)
    +
    + +

    Warn using global logger.

    + +
    +
    + +

    ◆ warnf()

    + +
    +
    +
    +template<typename... ARGS>
    + + + + + + + + + + + + + + + + + + +
    void ade::warnf (std::string format,
    ARGS... args 
    )
    +
    + +

    Warn using global logger with arguments.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ arr_begin

    + +
    +
    + + + + +
    const char ade::arr_begin = '['
    +
    + +

    Symbol for the start of an array as string.

    + +
    +
    + +

    ◆ arr_delim

    + +
    +
    + + + + +
    const char ade::arr_delim = '\\'
    +
    + +

    Symbol for the delimter between elements of an array as string.

    + +
    +
    + +

    ◆ arr_end

    + +
    +
    + + + + +
    const char ade::arr_end = ']'
    +
    + +

    Symbol for the end of an array as string.

    + +
    +
    + +

    ◆ err_tag

    + +
    +
    + + + + +
    const std::string ade::err_tag = "[ERROR]:"
    +
    + +

    String tagged prepending an error message in default logger.

    + +
    +
    + +

    ◆ identity

    + +
    +
    + + + + +
    CoordPtrT ade::identity
    +
    + +

    Identity matrix instance.

    + +
    +
    + +

    ◆ mat_dim

    + +
    +
    + + + + +
    const uint8_t ade::mat_dim = rank_cap + 1
    +
    + +

    Number of rows and columns for the homogeneous matrix.

    + +
    +
    + +

    ◆ mat_size

    + +
    +
    + + + + +
    const size_t ade::mat_size = sizeof(double) * mat_dim * mat_dim
    +
    + +

    Number of bytes in a homogeneous matrix.

    + +
    +
    + +

    ◆ rank_cap

    + +
    +
    + + + + +
    const uint8_t ade::rank_cap = 8
    +
    + +

    Number of dimsensions in a shape/coordinate.

    + +
    +
    + +

    ◆ warn_tag

    + +
    +
    + + + + +
    const std::string ade::warn_tag = "[WARNING]:"
    +
    + +

    String tagged prepending a warning message in default logger.

    + +
    +
    +
    + + + + diff --git a/docs/namespacello.html b/docs/namespacello.html new file mode 100644 index 000000000..cb127cc23 --- /dev/null +++ b/docs/namespacello.html @@ -0,0 +1,3590 @@ + + + + + + + +Tenncor: llo Namespace Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    llo Namespace Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  DataNode
     
    struct  EvalCtx
     Context used to associate ade nodes to llo nodes under a particular graph. More...
     
    struct  Evaluator
     
    struct  Executer
     
    struct  Executer< ade::COPY, T >
     
    struct  Executer< ade::RAND_BINO, T >
     
    struct  GenericData
     GenericData for holding data when passing up the tensor graph. More...
     
    struct  GenericRef
     
    struct  GraphStat
     
    struct  iSource
     Interface for leaves with tensor data. More...
     
    struct  PlaceHolder
     DataNode of a leaf that can be assignable by data vectors. More...
     
    struct  Source
     Leaf evaluable holding tensor data. More...
     
    struct  VecRef
     
    + + + + + + + + + +

    +Typedefs

    using SourcePoolT = std::unordered_map< ade::iTensor *, std::shared_ptr< iSource > >
     Type used by context to associate ade::Tensors to Sources. More...
     
    using EngineT = std::default_random_engine
     RNG engine used. More...
     
    using DataArgsT = std::vector< std::pair< ade::CoordPtrT, GenericData > >
     
    + + + + +

    +Enumerations

    enum  DTYPE {
    +  BAD = 0, +DOUBLE, +FLOAT, +INT8, +
    +  INT16, +INT32, +INT64, +UINT8, +
    +  UINT16, +UINT32, +UINT64 +
    + }
     Enumerated representation of data types. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    DataNode one (ade::Shape shape)
     Returns DataNode with SYMBOLIC_ONE extended to input shape. More...
     
    DataNode abs (DataNode arg)
     Element-wise absolute operation. More...
     
    DataNode neg (DataNode arg)
     Element-wise negative operation. More...
     
    DataNode sin (DataNode arg)
     Element-wise sine operation. More...
     
    DataNode cos (DataNode arg)
     Element-wise cosine operation. More...
     
    DataNode tan (DataNode arg)
     Element-wise tangent operation. More...
     
    DataNode exp (DataNode arg)
     Element-wise exponent operation. More...
     
    DataNode log (DataNode arg)
     Element-wise natural log operation. More...
     
    DataNode sqrt (DataNode arg)
     Element-wise square root operation. More...
     
    DataNode round (DataNode arg)
     Element-wise round operation. More...
     
    DataNode flip (DataNode arg, uint8_t dim)
     Flip values of arg along specified dimension. More...
     
    DataNode pow (DataNode a, DataNode b)
     Element-wise operation: base ^ exponent. More...
     
    DataNode add (DataNode a, DataNode b)
     Element-wise operation: a + b. More...
     
    DataNode sum (std::vector< DataNode > args)
     Get Element-wise sum of args. More...
     
    DataNode sub (DataNode a, DataNode b)
     Element-wise operation: a - b. More...
     
    DataNode mul (DataNode a, DataNode b)
     Element-wise operation: a///b. More...
     
    DataNode prod (std::vector< DataNode > args)
     Get Element-wise product of args. More...
     
    DataNode div (DataNode a, DataNode b)
     Element-wise operation: a / b. More...
     
    DataNode eq (DataNode a, DataNode b)
     Element-wise operation: a == b. More...
     
    DataNode neq (DataNode a, DataNode b)
     Element-wise operation: a != b. More...
     
    DataNode lt (DataNode a, DataNode b)
     Element-wise operation: a < b. More...
     
    DataNode gt (DataNode a, DataNode b)
     Element-wise operation: a > b. More...
     
    DataNode min (std::vector< DataNode > args)
     Get Element-wise minimum of args. More...
     
    DataNode max (std::vector< DataNode > args)
     Get Element-wise maximum of args. More...
     
    DataNode clip (DataNode x, DataNode lo, DataNode hi)
     
    DataNode rand_binom (DataNode ntrials, DataNode prob)
     Generate random numbers according to std::binomial_distribution(a, b) More...
     
    DataNode rand_uniform (DataNode lower, DataNode upper)
     Generate random numbers according to std::uniform_distributon(a, b) More...
     
    DataNode rand_normal (DataNode mean, DataNode stdev)
     Generate random numbers according to std::normal_distribution(a, b) More...
     
    DataNode n_elems (DataNode arg)
     Get n_elem of input shape as value. More...
     
    DataNode n_dims (DataNode arg, uint8_t dim)
     Get value at specified dimension of input shape. More...
     
    DataNode reduce_max (DataNode arg)
     Get the max value. More...
     
    DataNode reduce_max (DataNode arg, uint8_t groupidx)
     Apply reduce_max to elements of coordinate range [groupidx:]. More...
     
    DataNode reduce_sum (DataNode arg)
     Get the sum of all values. More...
     
    DataNode reduce_sum (DataNode arg, uint8_t groupidx)
     Apply reduce_sum to elements of coordinate range [groupidx:]. More...
     
    DataNode permute (DataNode arg, std::vector< uint8_t > order)
     
    DataNode extend (DataNode arg, uint8_t after, std::vector< uint8_t > ext)
     
    DataNode matmul (DataNode a, DataNode b)
     
    void fill_one (char *cptr, size_t n, DTYPE dtype)
     
    std::string nametype (DTYPE type)
     Return the string name of input DTYPE. More...
     
    uint8_t type_size (DTYPE type)
     Return the byte size of input DTYPE. More...
     
    template<typename T >
    DTYPE get_type (void)
     Return the DTYPE of type in template. More...
     
    template<>
    DTYPE get_type< double > (void)
     
    template<>
    DTYPE get_type< float > (void)
     
    template<>
    DTYPE get_type< int8_t > (void)
     
    template<>
    DTYPE get_type< uint8_t > (void)
     
    template<>
    DTYPE get_type< int16_t > (void)
     
    template<>
    DTYPE get_type< uint16_t > (void)
     
    template<>
    DTYPE get_type< int32_t > (void)
     
    template<>
    DTYPE get_type< uint32_t > (void)
     
    template<>
    DTYPE get_type< int64_t > (void)
     
    template<>
    DTYPE get_type< uint64_t > (void)
     
    void calc_func_args (DataArgsT &out, const EvalCtx &ctx, DTYPE dtype, ade::iFunctor *func)
     Evaluate the data of children for func according to inputs ctx and dtype. More...
     
    template<typename T >
    DataNode shaped_scalar (T scalar, ade::Shape shape)
     Return source holding a scalar value extended to input shape. More...
     
    EngineTget_engine (void)
     Return global random generator. More...
     
    template<typename T >
    void copy (T *out, ade::Shape outshape, VecRef< T > in)
     
    template<typename T >
    void unary (T *out, VecRef< T > in, std::function< T(const T &)> f)
     Generic unary operation assuming identity mapping (bijective) More...
     
    template<typename T >
    void abs (T *out, VecRef< T > in)
     
    template<>
    void abs< uint8_t > (uint8_t *out, VecRef< uint8_t > in)
     
    template<>
    void abs< uint16_t > (uint16_t *out, VecRef< uint16_t > in)
     
    template<>
    void abs< uint32_t > (uint32_t *out, VecRef< uint32_t > in)
     
    template<>
    void abs< uint64_t > (uint64_t *out, VecRef< uint64_t > in)
     
    template<typename T >
    void neg (T *out, VecRef< T > in)
     
    template<>
    void neg< uint8_t > (uint8_t *out, VecRef< uint8_t > in)
     
    template<>
    void neg< uint16_t > (uint16_t *out, VecRef< uint16_t > in)
     
    template<>
    void neg< uint32_t > (uint32_t *out, VecRef< uint32_t > in)
     
    template<>
    void neg< uint64_t > (uint64_t *out, VecRef< uint64_t > in)
     
    template<typename T >
    void bit_not (T *out, VecRef< T > in)
     
    template<typename T >
    void sin (T *out, VecRef< T > in)
     
    template<typename T >
    void cos (T *out, VecRef< T > in)
     
    template<typename T >
    void tan (T *out, VecRef< T > in)
     
    template<typename T >
    void exp (T *out, VecRef< T > in)
     
    template<typename T >
    void log (T *out, VecRef< T > in)
     
    template<typename T >
    void sqrt (T *out, VecRef< T > in)
     
    template<typename T >
    void round (T *out, VecRef< T > in)
     
    template<typename T >
    void binary (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b, std::function< T(const T &, const T &)> f)
     Generic binary operation assuming identity mapping (bijective) More...
     
    template<typename T >
    void pow (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void sub (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void div (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void eq (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void neq (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void lt (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void gt (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void rand_binom (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< double > b)
     
    template<>
    void rand_binom< double > (double *out, ade::Shape &outshape, VecRef< double > a, VecRef< double > b)
     
    template<>
    void rand_binom< float > (float *out, ade::Shape &outshape, VecRef< float > a, VecRef< double > b)
     
    template<typename T >
    void rand_uniform (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<>
    void rand_uniform< double > (double *out, ade::Shape &outshape, VecRef< double > a, VecRef< double > b)
     
    template<>
    void rand_uniform< float > (float *out, ade::Shape &outshape, VecRef< float > a, VecRef< float > b)
     
    template<typename T >
    void rand_normal (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<>
    void rand_normal< float > (float *out, ade::Shape &outshape, VecRef< float > a, VecRef< float > b)
     
    template<>
    void rand_normal< double > (double *out, ade::Shape &outshape, VecRef< double > a, VecRef< double > b)
     
    template<typename T >
    void nnary (T *out, ade::Shape &outshape, std::vector< VecRef< T >> args, std::function< void(T &, const T &)> acc)
     Generic n-nary operation (potentially surjective) More...
     
    template<typename T >
    void add (T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)
     
    template<typename T >
    void mul (T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)
     
    template<typename T >
    void min (T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)
     
    template<typename T >
    void max (T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)
     
    template<ade::OPCODE OP>
    void exec (GenericData &out, DataArgsT &data)
     
    void op_exec (ade::OPCODE opcode, GenericData &out, DataArgsT &data)
     
    DataNode zero_prune (DataNode root)
     
    DataNode convolute (DataNode canvas, DataNode window)
     
    static ade::Tensorptr prune0 (bool &is_zero, ade::iFunctor *func, std::vector< bool > zeros, ade::ArgsT args)
     
    +

    Detailed Description

    +

    data.hpp llo

    +

    Purpose: Define tensor data to pass up the equation graph

    +

    dtype.hpp llo

    +

    Purpose: Enumerate tensor data types

    +

    eval.hpp llo

    +

    Purpose: Define evaluation interface for calculating data

    +

    node.hpp llo

    +

    Purpose: Extend ade::iTensor with proxies that carry and evaluate tensor data

    +

    operator.hpp llo

    +

    Purpose: Define functions manipulating tensor data values No function in this file makes any attempt to check for nullptrs

    +

    opmap.hpp llo

    +

    Purpose: Associate ade::OPCODE to operations on data

    +

    traveler.hpp llo

    +

    Purpose: Define tensor iTraveler implementations given llo context

    +

    Typedef Documentation

    + +

    ◆ DataArgsT

    + +
    +
    + + + + +
    using llo::DataArgsT = typedef std::vector<std::pair<ade::CoordPtrT,GenericData> >
    +
    + +
    +
    + +

    ◆ EngineT

    + +
    +
    + + + + +
    using llo::EngineT = typedef std::default_random_engine
    +
    + +

    RNG engine used.

    + +
    +
    + +

    ◆ SourcePoolT

    + +
    +
    + + + + +
    using llo::SourcePoolT = typedef std::unordered_map<ade::iTensor*,std::shared_ptr<iSource> >
    +
    + +

    Type used by context to associate ade::Tensors to Sources.

    + +
    +
    +

    Enumeration Type Documentation

    + +

    ◆ DTYPE

    + +
    +
    + + + + +
    enum llo::DTYPE
    +
    + +

    Enumerated representation of data types.

    + + + + + + + + + + + + +
    Enumerator
    BAD 
    DOUBLE 

    Invalid data type.

    +
    FLOAT 
    INT8 
    INT16 
    INT32 
    INT64 
    UINT8 
    UINT16 
    UINT32 
    UINT64 
    + +
    +
    +

    Function Documentation

    + +

    ◆ abs() [1/2]

    + +
    +
    + + + + + + + + +
    DataNode llo::abs (DataNode arg)
    +
    + +

    Element-wise absolute operation.

    + +
    +
    + +

    ◆ abs() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    void llo::abs (T * out,
    VecRef< T > in 
    )
    +
    +

    Given reference to output array, and input vector ref, make output elements take absolute value of inputs

    + +
    +
    + +

    ◆ abs< uint16_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + +
    void llo::abs< uint16_t > (uint16_t * out,
    VecRef< uint16_t > in 
    )
    +
    + +
    +
    + +

    ◆ abs< uint32_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + +
    void llo::abs< uint32_t > (uint32_t * out,
    VecRef< uint32_t > in 
    )
    +
    + +
    +
    + +

    ◆ abs< uint64_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + +
    void llo::abs< uint64_t > (uint64_t * out,
    VecRef< uint64_t > in 
    )
    +
    + +
    +
    + +

    ◆ abs< uint8_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + +
    void llo::abs< uint8_t > (uint8_t * out,
    VecRef< uint8_t > in 
    )
    +
    + +
    +
    + +

    ◆ add() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::add (DataNode a,
    DataNode b 
    )
    +
    + +

    Element-wise operation: a + b.

    + +
    +
    + +

    ◆ add() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::add (T * out,
    ade::Shapeoutshape,
    std::vector< VecRef< T >> args 
    )
    +
    +

    Given arguments, for every mapped index i in range [0:max_nelems], sum all elements for all arguments

    + +
    +
    + +

    ◆ binary()

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::binary (T * out,
    ade::Shapeoutshape,
    VecRef< T > a,
    VecRef< T > b,
    std::function< T(const T &, const T &)> f 
    )
    +
    + +

    Generic binary operation assuming identity mapping (bijective)

    + +
    +
    + +

    ◆ bit_not()

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    void llo::bit_not (T * out,
    VecRef< T > in 
    )
    +
    +

    Given reference to output array, and input vector ref, make output elements take bitwise nots of inputs

    + +
    +
    + +

    ◆ calc_func_args()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::calc_func_args (DataArgsTout,
    const EvalCtxctx,
    DTYPE dtype,
    ade::iFunctorfunc 
    )
    +
    + +

    Evaluate the data of children for func according to inputs ctx and dtype.

    + +
    +
    + +

    ◆ clip()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    DataNode llo::clip (DataNode x,
    DataNode lo,
    DataNode hi 
    )
    +
    +

    Element-wise clip x between lo and hi Values in x larger than hi take value hi, vice versa for lo

    + +
    +
    + +

    ◆ convolute()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::convolute (DataNode canvas,
    DataNode window 
    )
    +
    + +
    +
    + +

    ◆ copy()

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::copy (T * out,
    ade::Shape outshape,
    VecRef< T > in 
    )
    +
    +

    Given reference to output array, expected output shape, and input vector ref, copy input elements to outputs according to mapper Resolve surjective conflicts by summing

    + +
    +
    + +

    ◆ cos() [1/2]

    + +
    +
    + + + + + + + + +
    DataNode llo::cos (DataNode arg)
    +
    + +

    Element-wise cosine operation.

    + +
    +
    + +

    ◆ cos() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    void llo::cos (T * out,
    VecRef< T > in 
    )
    +
    +

    Given reference to output array, and input vector ref, make output elements take cosine of inputs

    + +
    +
    + +

    ◆ div() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::div (DataNode a,
    DataNode b 
    )
    +
    + +

    Element-wise operation: a / b.

    + +
    +
    + +

    ◆ div() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::div (T * out,
    ade::Shapeoutshape,
    VecRef< T > a,
    VecRef< T > b 
    )
    +
    +

    Given arguments a, and b, for every pair of mapped elements sharing the same index divide Only accept 2 arguments

    + +
    +
    + +

    ◆ eq() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::eq (DataNode a,
    DataNode b 
    )
    +
    + +

    Element-wise operation: a == b.

    + +
    +
    + +

    ◆ eq() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::eq (T * out,
    ade::Shapeoutshape,
    VecRef< T > a,
    VecRef< T > b 
    )
    +
    +

    Given arguments a, and b, for every pair of mapped elements sharing the same index apply == operator Only accept 2 arguments

    + +
    +
    + +

    ◆ exec()

    + +
    +
    +
    +template<ade::OPCODE OP>
    + + + + + + + + + + + + + + + + + + +
    void llo::exec (GenericDataout,
    DataArgsTdata 
    )
    +
    + +
    +
    + +

    ◆ exp() [1/2]

    + +
    +
    + + + + + + + + +
    DataNode llo::exp (DataNode arg)
    +
    + +

    Element-wise exponent operation.

    + +
    +
    + +

    ◆ exp() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    void llo::exp (T * out,
    VecRef< T > in 
    )
    +
    +

    Given reference to output array, and input vector ref, make output elements take exponent of inputs

    + +
    +
    + +

    ◆ extend()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    DataNode llo::extend (DataNode arg,
    uint8_t after,
    std::vector< uint8_t > ext 
    )
    +
    +

    Concatenate input shape vector to input tensor's shape. expect value to expand into the new shape by duplicating

    + +
    +
    + +

    ◆ fill_one()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::fill_one (char * cptr,
    size_t n,
    DTYPE dtype 
    )
    +
    + +
    +
    + +

    ◆ flip()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::flip (DataNode arg,
    uint8_t dim 
    )
    +
    + +

    Flip values of arg along specified dimension.

    + +
    +
    + +

    ◆ get_engine()

    + +
    +
    + + + + + + + + +
    EngineT& llo::get_engine (void )
    +
    + +

    Return global random generator.

    + +
    +
    + +

    ◆ get_type()

    + +
    +
    +
    +template<typename T >
    + + + + + + + + +
    DTYPE llo::get_type (void )
    +
    + +

    Return the DTYPE of type in template.

    + +
    +
    + +

    ◆ get_type< double >()

    + +
    +
    +
    +template<>
    + + + + + + + + +
    DTYPE llo::get_type< double > (void )
    +
    + +
    +
    + +

    ◆ get_type< float >()

    + +
    +
    +
    +template<>
    + + + + + + + + +
    DTYPE llo::get_type< float > (void )
    +
    + +
    +
    + +

    ◆ get_type< int16_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + +
    DTYPE llo::get_type< int16_t > (void )
    +
    + +
    +
    + +

    ◆ get_type< int32_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + +
    DTYPE llo::get_type< int32_t > (void )
    +
    + +
    +
    + +

    ◆ get_type< int64_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + +
    DTYPE llo::get_type< int64_t > (void )
    +
    + +
    +
    + +

    ◆ get_type< int8_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + +
    DTYPE llo::get_type< int8_t > (void )
    +
    + +
    +
    + +

    ◆ get_type< uint16_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + +
    DTYPE llo::get_type< uint16_t > (void )
    +
    + +
    +
    + +

    ◆ get_type< uint32_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + +
    DTYPE llo::get_type< uint32_t > (void )
    +
    + +
    +
    + +

    ◆ get_type< uint64_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + +
    DTYPE llo::get_type< uint64_t > (void )
    +
    + +
    +
    + +

    ◆ get_type< uint8_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + +
    DTYPE llo::get_type< uint8_t > (void )
    +
    + +
    +
    + +

    ◆ gt() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::gt (DataNode a,
    DataNode b 
    )
    +
    + +

    Element-wise operation: a > b.

    + +
    +
    + +

    ◆ gt() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::gt (T * out,
    ade::Shapeoutshape,
    VecRef< T > a,
    VecRef< T > b 
    )
    +
    +

    Given arguments a, and b, for every pair of mapped elements sharing the same index apply > operator Only accept 2 arguments

    + +
    +
    + +

    ◆ log() [1/2]

    + +
    +
    + + + + + + + + +
    DataNode llo::log (DataNode arg)
    +
    + +

    Element-wise natural log operation.

    + +
    +
    + +

    ◆ log() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    void llo::log (T * out,
    VecRef< T > in 
    )
    +
    +

    Given reference to output array, and input vector ref, make output elements take natural log of inputs

    + +
    +
    + +

    ◆ lt() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::lt (DataNode a,
    DataNode b 
    )
    +
    + +

    Element-wise operation: a < b.

    + +
    +
    + +

    ◆ lt() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::lt (T * out,
    ade::Shapeoutshape,
    VecRef< T > a,
    VecRef< T > b 
    )
    +
    +

    Given arguments a, and b, for every pair of mapped elements sharing the same index apply < operator Only accept 2 arguments

    + +
    +
    + +

    ◆ matmul()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::matmul (DataNode a,
    DataNode b 
    )
    +
    +

    Matrix multiply 2 or 1 dimension matrices, Tensors with ranks higher than 2 throws runtime error

    + +
    +
    + +

    ◆ max() [1/2]

    + +
    +
    + + + + + + + + +
    DataNode llo::max (std::vector< DataNodeargs)
    +
    + +

    Get Element-wise maximum of args.

    + +
    +
    + +

    ◆ max() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::max (T * out,
    ade::Shapeoutshape,
    std::vector< VecRef< T >> args 
    )
    +
    +

    Given arguments, for every mapped index i in range [0:max_nelems], take the maximum all elements for all arguments

    + +
    +
    + +

    ◆ min() [1/2]

    + +
    +
    + + + + + + + + +
    DataNode llo::min (std::vector< DataNodeargs)
    +
    + +

    Get Element-wise minimum of args.

    + +
    +
    + +

    ◆ min() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::min (T * out,
    ade::Shapeoutshape,
    std::vector< VecRef< T >> args 
    )
    +
    +

    Given arguments, for every mapped index i in range [0:max_nelems], take the minimum all elements for all arguments

    + +
    +
    + +

    ◆ mul() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::mul (DataNode a,
    DataNode b 
    )
    +
    + +

    Element-wise operation: a///b.

    + +
    +
    + +

    ◆ mul() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::mul (T * out,
    ade::Shapeoutshape,
    std::vector< VecRef< T >> args 
    )
    +
    +

    Given arguments, for every mapped index i in range [0:max_nelems], multiply all elements for all arguments

    + +
    +
    + +

    ◆ n_dims()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::n_dims (DataNode arg,
    uint8_t dim 
    )
    +
    + +

    Get value at specified dimension of input shape.

    + +
    +
    + +

    ◆ n_elems()

    + +
    +
    + + + + + + + + +
    DataNode llo::n_elems (DataNode arg)
    +
    + +

    Get n_elem of input shape as value.

    + +
    +
    + +

    ◆ nametype()

    + +
    +
    + + + + + + + + +
    std::string llo::nametype (DTYPE type)
    +
    + +

    Return the string name of input DTYPE.

    + +
    +
    + +

    ◆ neg() [1/2]

    + +
    +
    + + + + + + + + +
    DataNode llo::neg (DataNode arg)
    +
    + +

    Element-wise negative operation.

    + +
    +
    + +

    ◆ neg() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    void llo::neg (T * out,
    VecRef< T > in 
    )
    +
    +

    Given reference to output array, and input vector ref, make output elements take negatives of inputs

    + +
    +
    + +

    ◆ neg< uint16_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + +
    void llo::neg< uint16_t > (uint16_t * out,
    VecRef< uint16_t > in 
    )
    +
    + +
    +
    + +

    ◆ neg< uint32_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + +
    void llo::neg< uint32_t > (uint32_t * out,
    VecRef< uint32_t > in 
    )
    +
    + +
    +
    + +

    ◆ neg< uint64_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + +
    void llo::neg< uint64_t > (uint64_t * out,
    VecRef< uint64_t > in 
    )
    +
    + +
    +
    + +

    ◆ neg< uint8_t >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + +
    void llo::neg< uint8_t > (uint8_t * out,
    VecRef< uint8_t > in 
    )
    +
    + +
    +
    + +

    ◆ neq() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::neq (DataNode a,
    DataNode b 
    )
    +
    + +

    Element-wise operation: a != b.

    + +
    +
    + +

    ◆ neq() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::neq (T * out,
    ade::Shapeoutshape,
    VecRef< T > a,
    VecRef< T > b 
    )
    +
    +

    Given arguments a, and b, for every pair of mapped elements sharing the same index apply != operator Only accept 2 arguments

    + +
    +
    + +

    ◆ nnary()

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::nnary (T * out,
    ade::Shapeoutshape,
    std::vector< VecRef< T >> args,
    std::function< void(T &, const T &)> acc 
    )
    +
    + +

    Generic n-nary operation (potentially surjective)

    + +
    +
    + +

    ◆ one()

    + +
    +
    + + + + + + + + +
    DataNode llo::one (ade::Shape shape)
    +
    + +

    Returns DataNode with SYMBOLIC_ONE extended to input shape.

    + +
    +
    + +

    ◆ op_exec()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::op_exec (ade::OPCODE opcode,
    GenericDataout,
    DataArgsTdata 
    )
    +
    + +
    +
    + +

    ◆ permute()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::permute (DataNode arg,
    std::vector< uint8_t > order 
    )
    +
    +

    Permute shape according to input indices. output shape take on input dimensions ordered by indices, and concatenated by unreferenced input dimensions ordered by input's original order

    + +
    +
    + +

    ◆ pow() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::pow (DataNode a,
    DataNode b 
    )
    +
    + +

    Element-wise operation: base ^ exponent.

    + +
    +
    + +

    ◆ pow() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::pow (T * out,
    ade::Shapeoutshape,
    VecRef< T > a,
    VecRef< T > b 
    )
    +
    +

    Given arguments a, and b, for every pair of mapped elements sharing the same index apply std::pow operator Only accept 2 arguments

    + +
    +
    + +

    ◆ prod()

    + +
    +
    + + + + + + + + +
    DataNode llo::prod (std::vector< DataNodeargs)
    +
    + +

    Get Element-wise product of args.

    + +
    +
    + +

    ◆ prune0()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static ade::Tensorptr llo::prune0 (bool & is_zero,
    ade::iFunctorfunc,
    std::vector< bool > zeros,
    ade::ArgsT args 
    )
    +
    +static
    +
    + +
    +
    + +

    ◆ rand_binom() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::rand_binom (DataNode ntrials,
    DataNode prob 
    )
    +
    + +

    Generate random numbers according to std::binomial_distribution(a, b)

    + +
    +
    + +

    ◆ rand_binom() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::rand_binom (T * out,
    ade::Shapeoutshape,
    VecRef< T > a,
    VecRef< double > b 
    )
    +
    +

    Given arguments a, and b, for every pair of mapped elements sharing the same index apply std::binomial_distribution function Only accept 2 arguments

    + +
    +
    + +

    ◆ rand_binom< double >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::rand_binom< double > (double * out,
    ade::Shapeoutshape,
    VecRef< double > a,
    VecRef< double > b 
    )
    +
    + +
    +
    + +

    ◆ rand_binom< float >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::rand_binom< float > (float * out,
    ade::Shapeoutshape,
    VecRef< float > a,
    VecRef< double > b 
    )
    +
    + +
    +
    + +

    ◆ rand_normal() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::rand_normal (DataNode mean,
    DataNode stdev 
    )
    +
    + +

    Generate random numbers according to std::normal_distribution(a, b)

    + +
    +
    + +

    ◆ rand_normal() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::rand_normal (T * out,
    ade::Shapeoutshape,
    VecRef< T > a,
    VecRef< T > b 
    )
    +
    +

    Given arguments a, and b, for every pair of mapped elements sharing the same index apply std::normal_distribution function Only accept 2 arguments

    + +
    +
    + +

    ◆ rand_normal< double >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::rand_normal< double > (double * out,
    ade::Shapeoutshape,
    VecRef< double > a,
    VecRef< double > b 
    )
    +
    + +
    +
    + +

    ◆ rand_normal< float >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::rand_normal< float > (float * out,
    ade::Shapeoutshape,
    VecRef< float > a,
    VecRef< float > b 
    )
    +
    + +
    +
    + +

    ◆ rand_uniform() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::rand_uniform (DataNode lower,
    DataNode upper 
    )
    +
    + +

    Generate random numbers according to std::uniform_distributon(a, b)

    + +
    +
    + +

    ◆ rand_uniform() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::rand_uniform (T * out,
    ade::Shapeoutshape,
    VecRef< T > a,
    VecRef< T > b 
    )
    +
    +

    Given arguments a, and b, for every pair of mapped elements sharing the same index apply std::uniform_distributon function Only accept 2 arguments

    + +
    +
    + +

    ◆ rand_uniform< double >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::rand_uniform< double > (double * out,
    ade::Shapeoutshape,
    VecRef< double > a,
    VecRef< double > b 
    )
    +
    + +
    +
    + +

    ◆ rand_uniform< float >()

    + +
    +
    +
    +template<>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::rand_uniform< float > (float * out,
    ade::Shapeoutshape,
    VecRef< float > a,
    VecRef< float > b 
    )
    +
    + +
    +
    + +

    ◆ reduce_max() [1/2]

    + +
    +
    + + + + + + + + +
    DataNode llo::reduce_max (DataNode arg)
    +
    + +

    Get the max value.

    + +
    +
    + +

    ◆ reduce_max() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::reduce_max (DataNode arg,
    uint8_t groupidx 
    )
    +
    + +

    Apply reduce_max to elements of coordinate range [groupidx:].

    + +
    +
    + +

    ◆ reduce_sum() [1/2]

    + +
    +
    + + + + + + + + +
    DataNode llo::reduce_sum (DataNode arg)
    +
    + +

    Get the sum of all values.

    + +
    +
    + +

    ◆ reduce_sum() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::reduce_sum (DataNode arg,
    uint8_t groupidx 
    )
    +
    + +

    Apply reduce_sum to elements of coordinate range [groupidx:].

    + +
    +
    + +

    ◆ round() [1/2]

    + +
    +
    + + + + + + + + +
    DataNode llo::round (DataNode arg)
    +
    + +

    Element-wise round operation.

    + +
    +
    + +

    ◆ round() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    void llo::round (T * out,
    VecRef< T > in 
    )
    +
    +

    Given reference to output array, and input vector ref, make output elements take rounded values of inputs

    + +
    +
    + +

    ◆ shaped_scalar()

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::shaped_scalar (scalar,
    ade::Shape shape 
    )
    +
    + +

    Return source holding a scalar value extended to input shape.

    + +
    +
    + +

    ◆ sin() [1/2]

    + +
    +
    + + + + + + + + +
    DataNode llo::sin (DataNode arg)
    +
    + +

    Element-wise sine operation.

    + +
    +
    + +

    ◆ sin() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    void llo::sin (T * out,
    VecRef< T > in 
    )
    +
    +

    Given reference to output array, and input vector ref, make output elements take sine of inputs

    + +
    +
    + +

    ◆ sqrt() [1/2]

    + +
    +
    + + + + + + + + +
    DataNode llo::sqrt (DataNode arg)
    +
    + +

    Element-wise square root operation.

    + +
    +
    + +

    ◆ sqrt() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    void llo::sqrt (T * out,
    VecRef< T > in 
    )
    +
    +

    Given reference to output array, and input vector ref, make output elements take square root of inputs

    + +
    +
    + +

    ◆ sub() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DataNode llo::sub (DataNode a,
    DataNode b 
    )
    +
    + +

    Element-wise operation: a - b.

    + +
    +
    + +

    ◆ sub() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::sub (T * out,
    ade::Shapeoutshape,
    VecRef< T > a,
    VecRef< T > b 
    )
    +
    +

    Given arguments a, and b, for every pair of mapped elements sharing the same index subtract Only accept 2 arguments

    + +
    +
    + +

    ◆ sum()

    + +
    +
    + + + + + + + + +
    DataNode llo::sum (std::vector< DataNodeargs)
    +
    + +

    Get Element-wise sum of args.

    + +
    +
    + +

    ◆ tan() [1/2]

    + +
    +
    + + + + + + + + +
    DataNode llo::tan (DataNode arg)
    +
    + +

    Element-wise tangent operation.

    + +
    +
    + +

    ◆ tan() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    void llo::tan (T * out,
    VecRef< T > in 
    )
    +
    +

    Given reference to output array, and input vector ref, make output elements take tangent of inputs

    + +
    +
    + +

    ◆ type_size()

    + +
    +
    + + + + + + + + +
    uint8_t llo::type_size (DTYPE type)
    +
    + +

    Return the byte size of input DTYPE.

    + +
    +
    + +

    ◆ unary()

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void llo::unary (T * out,
    VecRef< T > in,
    std::function< T(const T &)> f 
    )
    +
    + +

    Generic unary operation assuming identity mapping (bijective)

    + +
    +
    + +

    ◆ zero_prune()

    + +
    +
    + + + + + + + + +
    DataNode llo::zero_prune (DataNode root)
    +
    +

    Return tree that prunes zero branches in input according to OPCODE For example, add(x, 0) is converted to simply x, while mul(x, 0) is 0

    + +
    +
    +
    + + + + diff --git a/docs/namespacemembers.html b/docs/namespacemembers.html new file mode 100644 index 000000000..323329f19 --- /dev/null +++ b/docs/namespacemembers.html @@ -0,0 +1,623 @@ + + + + + + + +Tenncor: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - _ -

      +
    • _BAD_OP +: ade +
    • +
    + + +

    - a -

      +
    • ABS +: ade +
    • +
    • abs() +: llo +
    • +
    • abs< uint16_t >() +: llo +
    • +
    • abs< uint32_t >() +: llo +
    • +
    • abs< uint64_t >() +: llo +
    • +
    • abs< uint8_t >() +: llo +
    • +
    • ADD +: ade +
    • +
    • add() +: llo +
    • +
    • ArgsT +: ade +
    • +
    • arr_begin +: ade +
    • +
    • arr_delim +: ade +
    • +
    • arr_end +: ade +
    • +
    + + +

    - b -

      +
    • BAD +: llo +
    • +
    • binary() +: llo +
    • +
    • bit_not() +: llo +
    • +
    + + +

    - c -

      +
    • calc_func_args() +: llo +
    • +
    • CDimT +: ade +
    • +
    • clip() +: llo +
    • +
    • convolute() +: llo +
    • +
    • coordinate() +: ade +
    • +
    • CoordPtrT +: ade +
    • +
    • CoordT +: ade +
    • +
    • COPY +: ade +
    • +
    • copy() +: llo +
    • +
    • COS +: ade +
    • +
    • cos() +: llo +
    • +
    + + +

    - d -

      +
    • DataArgsT +: llo +
    • +
    • DimT +: ade +
    • +
    • DIV +: ade +
    • +
    • div() +: llo +
    • +
    • DOUBLE +: llo +
    • +
    • DTYPE +: llo +
    • +
    + + +

    - e -

      +
    • EngineT +: llo +
    • +
    • EQ +: ade +
    • +
    • eq() +: llo +
    • +
    • err_tag +: ade +
    • +
    • error() +: ade +
    • +
    • errorf() +: ade +
    • +
    • exec() +: llo +
    • +
    • EXP +: ade +
    • +
    • exp() +: llo +
    • +
    • extend() +: ade +, llo +
    • +
    + + +

    - f -

      +
    • fatal() +: ade +
    • +
    • fatalf() +: ade +
    • +
    • fill_one() +: llo +
    • +
    • flip() +: ade +, llo +
    • +
    • FLOAT +: llo +
    • +
    + + +

    - g -

      +
    • get_engine() +: llo +
    • +
    • get_logger() +: ade +
    • +
    • get_type() +: llo +
    • +
    • get_type< double >() +: llo +
    • +
    • get_type< float >() +: llo +
    • +
    • get_type< int16_t >() +: llo +
    • +
    • get_type< int32_t >() +: llo +
    • +
    • get_type< int64_t >() +: llo +
    • +
    • get_type< int8_t >() +: llo +
    • +
    • get_type< uint16_t >() +: llo +
    • +
    • get_type< uint32_t >() +: llo +
    • +
    • get_type< uint64_t >() +: llo +
    • +
    • get_type< uint8_t >() +: llo +
    • +
    • grader() +: ade +
    • +
    • gradmap() +: ade +
    • +
    • GT +: ade +
    • +
    • gt() +: llo +
    • +
    + + +

    - i -

      +
    • identity +: ade +
    • +
    • index() +: ade +
    • +
    • INT16 +: llo +
    • +
    • INT32 +: llo +
    • +
    • INT64 +: llo +
    • +
    • INT8 +: llo +
    • +
    • inverse() +: ade +
    • +
    + + +

    - l -

      +
    • LOG +: ade +
    • +
    • log() +: llo +
    • +
    • LT +: ade +
    • +
    • lt() +: llo +
    • +
    + + +

    - m -

      +
    • map_shape() +: ade +
    • +
    • mat_dim +: ade +
    • +
    • mat_size +: ade +
    • +
    • matmul() +: llo +
    • +
    • MatrixT +: ade +
    • +
    • MAX +: ade +
    • +
    • max() +: llo +
    • +
    • MIN +: ade +
    • +
    • min() +: llo +
    • +
    • MUL +: ade +
    • +
    • mul() +: llo +
    • +
    + + +

    - n -

      +
    • n_dims() +: llo +
    • +
    • n_elems() +: llo +
    • +
    • name_op() +: ade +
    • +
    • nametype() +: llo +
    • +
    • NE +: ade +
    • +
    • NEG +: ade +
    • +
    • neg() +: llo +
    • +
    • neg< uint16_t >() +: llo +
    • +
    • neg< uint32_t >() +: llo +
    • +
    • neg< uint64_t >() +: llo +
    • +
    • neg< uint8_t >() +: llo +
    • +
    • NElemT +: ade +
    • +
    • neq() +: llo +
    • +
    • nnary() +: llo +
    • +
    + + +

    - o -

      +
    • one() +: llo +
    • +
    • op_exec() +: llo +
    • +
    • OPCODE +: ade +
    • +
    • opname() +: ade +
    • +
    + + +

    - p -

      +
    • permute() +: ade +, llo +
    • +
    • POW +: ade +
    • +
    • pow() +: llo +
    • +
    • prod() +: llo +
    • +
    • prune0() +: llo +
    • +
    + + +

    - r -

      +
    • RAND_BINO +: ade +
    • +
    • rand_binom() +: llo +
    • +
    • rand_binom< double >() +: llo +
    • +
    • rand_binom< float >() +: llo +
    • +
    • RAND_NORM +: ade +
    • +
    • rand_normal() +: llo +
    • +
    • rand_normal< double >() +: llo +
    • +
    • rand_normal< float >() +: llo +
    • +
    • RAND_UNIF +: ade +
    • +
    • rand_uniform() +: llo +
    • +
    • rand_uniform< double >() +: llo +
    • +
    • rand_uniform< float >() +: llo +
    • +
    • rank_cap +: ade +
    • +
    • reduce() +: ade +
    • +
    • reduce_max() +: llo +
    • +
    • reduce_sum() +: llo +
    • +
    • ROUND +: ade +
    • +
    • round() +: llo +
    • +
    + + +

    - s -

      +
    • set_logger() +: ade +
    • +
    • shaped_one() +: ade +
    • +
    • shaped_scalar() +: llo +
    • +
    • shaped_zero() +: ade +
    • +
    • ShapeT +: ade +
    • +
    • SIN +: ade +
    • +
    • sin() +: llo +
    • +
    • SourcePoolT +: llo +
    • +
    • sprintf() +: ade +
    • +
    • SQRT +: ade +
    • +
    • sqrt() +: llo +
    • +
    • SUB +: ade +
    • +
    • sub() +: llo +
    • +
    • sum() +: llo +
    • +
    + + +

    - t -

      +
    • TAN +: ade +
    • +
    • tan() +: llo +
    • +
    • to_stream() +: ade +
    • +
    • to_string() +: ade +
    • +
    • type_size() +: llo +
    • +
    + + +

    - u -

      +
    • UINT16 +: llo +
    • +
    • UINT32 +: llo +
    • +
    • UINT64 +: llo +
    • +
    • UINT8 +: llo +
    • +
    • unary() +: llo +
    • +
    + + +

    - w -

      +
    • warn() +: ade +
    • +
    • warn_tag +: ade +
    • +
    • warnf() +: ade +
    • +
    + + +

    - z -

      +
    • zero_prune() +: llo +
    • +
    +
    + + + + diff --git a/docs/namespacemembers_enum.html b/docs/namespacemembers_enum.html new file mode 100644 index 000000000..a0ec3dca1 --- /dev/null +++ b/docs/namespacemembers_enum.html @@ -0,0 +1,80 @@ + + + + + + + +Tenncor: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
      +
    • DTYPE +: llo +
    • +
    • OPCODE +: ade +
    • +
    +
    + + + + diff --git a/docs/namespacemembers_eval.html b/docs/namespacemembers_eval.html new file mode 100644 index 000000000..121c3eb36 --- /dev/null +++ b/docs/namespacemembers_eval.html @@ -0,0 +1,248 @@ + + + + + + + +Tenncor: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - _ -

      +
    • _BAD_OP +: ade +
    • +
    + + +

    - a -

      +
    • ABS +: ade +
    • +
    • ADD +: ade +
    • +
    + + +

    - b -

      +
    • BAD +: llo +
    • +
    + + +

    - c -

      +
    • COPY +: ade +
    • +
    • COS +: ade +
    • +
    + + +

    - d -

      +
    • DIV +: ade +
    • +
    • DOUBLE +: llo +
    • +
    + + +

    - e -

    + + +

    - f -

      +
    • FLOAT +: llo +
    • +
    + + +

    - g -

      +
    • GT +: ade +
    • +
    + + +

    - i -

      +
    • INT16 +: llo +
    • +
    • INT32 +: llo +
    • +
    • INT64 +: llo +
    • +
    • INT8 +: llo +
    • +
    + + +

    - l -

    + + +

    - m -

    + + +

    - n -

    + + +

    - p -

      +
    • POW +: ade +
    • +
    + + +

    - r -

      +
    • RAND_BINO +: ade +
    • +
    • RAND_NORM +: ade +
    • +
    • RAND_UNIF +: ade +
    • +
    • ROUND +: ade +
    • +
    + + +

    - s -

      +
    • SIN +: ade +
    • +
    • SQRT +: ade +
    • +
    • SUB +: ade +
    • +
    + + +

    - t -

      +
    • TAN +: ade +
    • +
    + + +

    - u -

      +
    • UINT16 +: llo +
    • +
    • UINT32 +: llo +
    • +
    • UINT64 +: llo +
    • +
    • UINT8 +: llo +
    • +
    +
    + + + + diff --git a/docs/namespacemembers_func.html b/docs/namespacemembers_func.html new file mode 100644 index 000000000..1dc32ef68 --- /dev/null +++ b/docs/namespacemembers_func.html @@ -0,0 +1,445 @@ + + + + + + + +Tenncor: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - a -

      +
    • abs() +: llo +
    • +
    • abs< uint16_t >() +: llo +
    • +
    • abs< uint32_t >() +: llo +
    • +
    • abs< uint64_t >() +: llo +
    • +
    • abs< uint8_t >() +: llo +
    • +
    • add() +: llo +
    • +
    + + +

    - b -

      +
    • binary() +: llo +
    • +
    • bit_not() +: llo +
    • +
    + + +

    - c -

      +
    • calc_func_args() +: llo +
    • +
    • clip() +: llo +
    • +
    • convolute() +: llo +
    • +
    • coordinate() +: ade +
    • +
    • copy() +: llo +
    • +
    • cos() +: llo +
    • +
    + + +

    - d -

      +
    • div() +: llo +
    • +
    + + +

    - e -

      +
    • eq() +: llo +
    • +
    • error() +: ade +
    • +
    • errorf() +: ade +
    • +
    • exec() +: llo +
    • +
    • exp() +: llo +
    • +
    • extend() +: ade +, llo +
    • +
    + + +

    - f -

      +
    • fatal() +: ade +
    • +
    • fatalf() +: ade +
    • +
    • fill_one() +: llo +
    • +
    • flip() +: ade +, llo +
    • +
    + + +

    - g -

      +
    • get_engine() +: llo +
    • +
    • get_logger() +: ade +
    • +
    • get_type() +: llo +
    • +
    • get_type< double >() +: llo +
    • +
    • get_type< float >() +: llo +
    • +
    • get_type< int16_t >() +: llo +
    • +
    • get_type< int32_t >() +: llo +
    • +
    • get_type< int64_t >() +: llo +
    • +
    • get_type< int8_t >() +: llo +
    • +
    • get_type< uint16_t >() +: llo +
    • +
    • get_type< uint32_t >() +: llo +
    • +
    • get_type< uint64_t >() +: llo +
    • +
    • get_type< uint8_t >() +: llo +
    • +
    • grader() +: ade +
    • +
    • gradmap() +: ade +
    • +
    • gt() +: llo +
    • +
    + + +

    - i -

      +
    • index() +: ade +
    • +
    • inverse() +: ade +
    • +
    + + +

    - l -

      +
    • log() +: llo +
    • +
    • lt() +: llo +
    • +
    + + +

    - m -

      +
    • map_shape() +: ade +
    • +
    • matmul() +: llo +
    • +
    • max() +: llo +
    • +
    • min() +: llo +
    • +
    • mul() +: llo +
    • +
    + + +

    - n -

      +
    • n_dims() +: llo +
    • +
    • n_elems() +: llo +
    • +
    • name_op() +: ade +
    • +
    • nametype() +: llo +
    • +
    • neg() +: llo +
    • +
    • neg< uint16_t >() +: llo +
    • +
    • neg< uint32_t >() +: llo +
    • +
    • neg< uint64_t >() +: llo +
    • +
    • neg< uint8_t >() +: llo +
    • +
    • neq() +: llo +
    • +
    • nnary() +: llo +
    • +
    + + +

    - o -

      +
    • one() +: llo +
    • +
    • op_exec() +: llo +
    • +
    • opname() +: ade +
    • +
    + + +

    - p -

      +
    • permute() +: ade +, llo +
    • +
    • pow() +: llo +
    • +
    • prod() +: llo +
    • +
    • prune0() +: llo +
    • +
    + + +

    - r -

      +
    • rand_binom() +: llo +
    • +
    • rand_binom< double >() +: llo +
    • +
    • rand_binom< float >() +: llo +
    • +
    • rand_normal() +: llo +
    • +
    • rand_normal< double >() +: llo +
    • +
    • rand_normal< float >() +: llo +
    • +
    • rand_uniform() +: llo +
    • +
    • rand_uniform< double >() +: llo +
    • +
    • rand_uniform< float >() +: llo +
    • +
    • reduce() +: ade +
    • +
    • reduce_max() +: llo +
    • +
    • reduce_sum() +: llo +
    • +
    • round() +: llo +
    • +
    + + +

    - s -

      +
    • set_logger() +: ade +
    • +
    • shaped_one() +: ade +
    • +
    • shaped_scalar() +: llo +
    • +
    • shaped_zero() +: ade +
    • +
    • sin() +: llo +
    • +
    • sprintf() +: ade +
    • +
    • sqrt() +: llo +
    • +
    • sub() +: llo +
    • +
    • sum() +: llo +
    • +
    + + +

    - t -

      +
    • tan() +: llo +
    • +
    • to_stream() +: ade +
    • +
    • to_string() +: ade +
    • +
    • type_size() +: llo +
    • +
    + + +

    - u -

      +
    • unary() +: llo +
    • +
    + + +

    - w -

      +
    • warn() +: ade +
    • +
    • warnf() +: ade +
    • +
    + + +

    - z -

      +
    • zero_prune() +: llo +
    • +
    +
    + + + + diff --git a/docs/namespacemembers_type.html b/docs/namespacemembers_type.html new file mode 100644 index 000000000..c38df301e --- /dev/null +++ b/docs/namespacemembers_type.html @@ -0,0 +1,107 @@ + + + + + + + +Tenncor: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
      +
    • ArgsT +: ade +
    • +
    • CDimT +: ade +
    • +
    • CoordPtrT +: ade +
    • +
    • CoordT +: ade +
    • +
    • DataArgsT +: llo +
    • +
    • DimT +: ade +
    • +
    • EngineT +: llo +
    • +
    • MatrixT +: ade +
    • +
    • NElemT +: ade +
    • +
    • ShapeT +: ade +
    • +
    • SourcePoolT +: llo +
    • +
    +
    + + + + diff --git a/docs/namespacemembers_vars.html b/docs/namespacemembers_vars.html new file mode 100644 index 000000000..d7e9547cd --- /dev/null +++ b/docs/namespacemembers_vars.html @@ -0,0 +1,101 @@ + + + + + + + +Tenncor: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
      +
    • arr_begin +: ade +
    • +
    • arr_delim +: ade +
    • +
    • arr_end +: ade +
    • +
    • err_tag +: ade +
    • +
    • identity +: ade +
    • +
    • mat_dim +: ade +
    • +
    • mat_size +: ade +
    • +
    • rank_cap +: ade +
    • +
    • warn_tag +: ade +
    • +
    +
    + + + + diff --git a/docs/namespaces.html b/docs/namespaces.html new file mode 100644 index 000000000..8e6be629e --- /dev/null +++ b/docs/namespaces.html @@ -0,0 +1,82 @@ + + + + + + + +Tenncor: Namespace List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Namespace List
    +
    +
    +
    Here is a list of all namespaces with brief descriptions:
    + + + +
     Nade
     Nllo
    +
    +
    + + + + diff --git a/docs/nav_f.png b/docs/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/docs/nav_g.png b/docs/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL + + + + + + +Tenncor: llo/node.hpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    node.hpp File Reference
    +
    +
    +
    #include "llo/eval.hpp"
    +
    +

    Go to the source code of this file.

    + + + + + + + + +

    +Classes

    struct  llo::Source< T >
     Leaf evaluable holding tensor data. More...
     
    struct  llo::PlaceHolder< T >
     DataNode of a leaf that can be assignable by data vectors. More...
     
    + + + +

    +Namespaces

     llo
     
    + + + + + +

    +Functions

    template<typename T >
    DataNode llo::shaped_scalar (T scalar, ade::Shape shape)
     Return source holding a scalar value extended to input shape. More...
     
    +
    + + + + diff --git a/docs/node_8hpp_source.html b/docs/node_8hpp_source.html new file mode 100644 index 000000000..8aca4ef7b --- /dev/null +++ b/docs/node_8hpp_source.html @@ -0,0 +1,123 @@ + + + + + + + +Tenncor: llo/node.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    node.hpp
    +
    +
    +Go to the documentation of this file.
    1 
    9 #include "llo/eval.hpp"
    10 
    11 #ifndef LLO_NODE_HPP
    12 #define LLO_NODE_HPP
    13 
    14 namespace llo
    15 {
    16 
    18 template <typename T>
    19 struct Source final : public iSource
    20 {
    22  static DataNode get (ade::Shape shape, std::vector<T> data)
    23  {
    24  if (shape.n_elems() != data.size())
    25  {
    26  ade::fatalf("data size %d does not match shape %s",
    27  data.size(), shape.to_string().c_str());
    28  }
    29  auto tens = std::shared_ptr<ade::Tensor>(ade::Tensor::get(shape));
    30  auto src = std::shared_ptr<iSource>(new Source(tens, data));
    31  return DataNode(EvalCtx(tens.get(), src),
    32  std::static_pointer_cast<ade::iTensor>(tens));
    33  }
    34 
    36  static DataNode get_scalar (T value)
    37  {
    38  return Source<T>::get(ade::Shape(), {value});
    39  }
    40 
    41  static DataNode copy (const llo::Source<T>& other)
    42  {
    43  auto rawsrc = new Source<T>(other);
    44  auto src = std::shared_ptr<iSource>(rawsrc);
    45  std::shared_ptr<ade::Tensor> tens = rawsrc->inner();
    46  return DataNode(EvalCtx(tens.get(), src),
    47  std::static_pointer_cast<ade::iTensor>(tens));
    48  }
    49 
    51  GenericData data (DTYPE dtype) const override
    52  {
    53  DTYPE curtype = get_type<T>();
    54  GenericData out(tensor_->shape(), curtype);
    55  std::memcpy(out.data_.get(), &data_[0], sizeof(T) * data_.size());
    56  if (curtype != dtype)
    57  {
    58  return out.convert_to(dtype);
    59  }
    60  return out;
    61  }
    62 
    64  DTYPE native_type (void) const override
    65  {
    66  return get_type<T>();
    67  }
    68 
    70  void reassign (const GenericRef& data) override
    71  {
    72  const ade::Shape& internal_shape = tensor_->shape();
    73  if (false == data.shape_.compatible_after(internal_shape, 0))
    74  {
    75  ade::fatalf("cannot assign data of incompatible shaped %s to "
    76  "internal data of shape %s", data.shape_.to_string().c_str(),
    77  internal_shape.to_string().c_str());
    78  }
    79  std::memcpy(&data_[0], data.data_, sizeof(T) * data.shape_.n_elems());
    80  }
    81 
    83  const std::shared_ptr<ade::Tensor>& inner (void) const override
    84  {
    85  return tensor_;
    86  }
    87 
    88 private:
    89  Source (std::shared_ptr<ade::Tensor>& tensor, std::vector<T>& data) :
    90  tensor_(tensor), data_(data) {}
    91 
    92  Source (const Source<T>& other) :
    93  tensor_(other.tensor_), data_(other.data_) {}
    94 
    96  std::shared_ptr<ade::Tensor> tensor_;
    97 
    99  std::vector<T> data_;
    100 };
    101 
    103 template <typename T>
    104 struct PlaceHolder : public DataNode
    105 {
    107  DataNode(Source<T>::get(shape, std::vector<T>(shape.n_elems()))) {}
    108 
    109  PlaceHolder (const PlaceHolder&) = default;
    110  PlaceHolder (PlaceHolder&&) = default;
    111  PlaceHolder& operator = (const PlaceHolder&) = default;
    112  PlaceHolder& operator = (PlaceHolder&&) = default;
    113 
    115  PlaceHolder& operator = (std::vector<T> data)
    116  {
    117  auto key = static_cast<ade::Tensor*>(tensor_.get());
    118  auto src = ctx_.srcs_[key];
    119  GenericRef gdata((char*) &data[0], tensor_->shape(), get_type<T>());
    120  src->reassign(gdata);
    121  return *this;
    122  }
    123 };
    124 
    126 template <typename T>
    128 {
    129  DataNode snode = Source<double>::get_scalar(scalar);
    130  return DataNode(snode.ctx_, ade::Functor::get(ade::COPY, {
    131  {ade::extend(0, std::vector<ade::DimT>(shape.begin(), shape.end())),
    132  snode.tensor_}}));
    133 }
    134 
    135 }
    136 
    137 #endif // LLO_NODE_HPP
    Definition: data.hpp:41
    +
    ade::Tensorptr tensor_
    Subgraph root.
    Definition: eval.hpp:182
    +
    iTensor * get(void) const
    Return the raw pointer.
    Definition: tensor.hpp:93
    +
    static DataNode get(ade::Shape shape, std::vector< T > data)
    Return a Source of input shape and containing input data.
    Definition: node.hpp:22
    +
    Interface for leaves with tensor data.
    Definition: eval.hpp:22
    +
    Source(std::shared_ptr< ade::Tensor > &tensor, std::vector< T > &data)
    Definition: node.hpp:89
    +
    DTYPE native_type(void) const override
    Implementation of iSource.
    Definition: node.hpp:64
    +
    void reassign(const GenericRef &data) override
    Implementation of iSource.
    Definition: node.hpp:70
    +
    GenericData data(DTYPE dtype) const override
    Implementation of iSource.
    Definition: node.hpp:51
    +
    DataNode n_elems(DataNode arg)
    Get n_elem of input shape as value.
    Definition: api.cpp:228
    +
    static Functor * get(OPCODE opcode, ArgsT args)
    Return a Functor with with input tensor and meta arguments.
    Definition: functor.hpp:99
    +
    virtual const Shape & shape(void) const =0
    Return the shape held by this tensor.
    +
    PlaceHolder & operator=(const PlaceHolder &)=default
    + +
    std::string to_string(void) const
    Return string representation of shape.
    Definition: shape.hpp:138
    +
    SourcePoolT srcs_
    List all ade-source mapping.
    Definition: eval.hpp:64
    +
    Leaf of the graph commonly representing the variable in an equation.
    Definition: tensor.hpp:116
    +
    NElemT n_elems(void) const
    Return the total number of elements represented by the shape.
    Definition: shape.hpp:108
    +
    static Tensor * get(Shape shape)
    Return a Tensor with input shape.
    Definition: tensor.hpp:125
    +
    ade::Shape shape_
    Shape of data_.
    Definition: data.hpp:33
    +
    bool compatible_after(const Shape &other, uint8_t idx) const
    Definition: shape.hpp:126
    +
    std::vector< T > data_
    Tensor data.
    Definition: node.hpp:99
    +
    GenericData convert_to(DTYPE dtype) const
    Return data converted to specified input type.
    +
    Definition: opcode.hpp:24
    +
    void fatalf(std::string format, ARGS... args)
    Fatal using global logger with arguments.
    Definition: log.hpp:94
    +
    PlaceHolder(ade::Shape shape)
    Definition: node.hpp:106
    +
    GenericData for holding data when passing up the tensor graph.
    Definition: data.hpp:20
    +
    Source(const Source< T > &other)
    Definition: node.hpp:92
    +
    static DataNode copy(const llo::Source< T > &other)
    Definition: node.hpp:41
    +
    Definition: test_dtype.cpp:12
    +
    Definition: shape.hpp:51
    +
    std::shared_ptr< ade::Tensor > tensor_
    Tensor node of subgraph.
    Definition: node.hpp:96
    +
    std::shared_ptr< char > data_
    Smartpointer to a block of untyped data.
    Definition: data.hpp:30
    +
    Definition: api.hpp:14
    +
    Definition: eval.hpp:132
    +
    DataNode of a leaf that can be assignable by data vectors.
    Definition: node.hpp:104
    +
    Leaf evaluable holding tensor data.
    Definition: node.hpp:19
    +
    Context used to associate ade nodes to llo nodes under a particular graph.
    Definition: eval.hpp:43
    +
    EvalCtx ctx_
    Accumulated context.
    Definition: eval.hpp:179
    +
    GenericData data(DTYPE dtype)
    Return data according to accumulated context and output type.
    Definition: eval.hpp:140
    +
    const std::shared_ptr< ade::Tensor > & inner(void) const override
    Implementation of iSource.
    Definition: node.hpp:83
    +
    static DataNode get_scalar(T value)
    Return a source instance with a scalar as tensor data.
    Definition: node.hpp:36
    +
    DataNode shaped_scalar(T scalar, ade::Shape shape)
    Return source holding a scalar value extended to input shape.
    Definition: node.hpp:127
    +
    + + + + diff --git a/docs/opcode_8cpp.html b/docs/opcode_8cpp.html new file mode 100644 index 000000000..58adf6e39 --- /dev/null +++ b/docs/opcode_8cpp.html @@ -0,0 +1,82 @@ + + + + + + + +Tenncor: ade/src/opcode.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    opcode.cpp File Reference
    +
    +
    +
    #include <unordered_map>
    +#include "ade/opcode.hpp"
    +
    + + + + diff --git a/docs/opcode_8hpp.html b/docs/opcode_8hpp.html new file mode 100644 index 000000000..dc2e25ae4 --- /dev/null +++ b/docs/opcode_8hpp.html @@ -0,0 +1,142 @@ + + + + + + + +Tenncor: ade/opcode.hpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    opcode.hpp File Reference
    +
    +
    +
    #include <string>
    +#include "ade/shape.hpp"
    +
    +

    Go to the source code of this file.

    + + + + +

    +Namespaces

     ade
     
    + + + + +

    +Enumerations

    enum  ade::OPCODE {
    +  ade::COPY = 0, +ade::ABS, +ade::NEG, +ade::SIN, +
    +  ade::COS, +ade::TAN, +ade::EXP, +ade::LOG, +
    +  ade::SQRT, +ade::ROUND, +ade::POW, +ade::ADD, +
    +  ade::SUB, +ade::MUL, +ade::DIV, +ade::MIN, +
    +  ade::MAX, +ade::EQ, +ade::NE, +ade::LT, +
    +  ade::GT, +ade::RAND_BINO, +ade::RAND_UNIF, +ade::RAND_NORM, +
    +  ade::_BAD_OP +
    + }
     Enumerated representation of operations. More...
     
    + + + + + + + +

    +Functions

    std::string ade::opname (OPCODE opcode)
     Return the string name of input OPCODE. More...
     
    OPCODE ade::name_op (std::string oname)
     Return the OPCODE of the string name. More...
     
    +
    + + + + diff --git a/docs/opcode_8hpp_source.html b/docs/opcode_8hpp_source.html new file mode 100644 index 000000000..d09cb0aba --- /dev/null +++ b/docs/opcode_8hpp_source.html @@ -0,0 +1,110 @@ + + + + + + + +Tenncor: ade/opcode.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    opcode.hpp
    +
    +
    +Go to the documentation of this file.
    1 
    9 #include <string>
    10 
    11 #include "ade/shape.hpp"
    12 
    13 #ifndef ADE_OPCODE_HPP
    14 #define ADE_OPCODE_HPP
    15 
    16 namespace ade
    17 {
    18 
    19 // TODO: CONVERT TO GENERATED CONFIG
    20 
    22 enum OPCODE
    23 {
    24  COPY = 0,
    25 
    27  ABS,
    29  NEG,
    31  SIN,
    33  COS,
    35  TAN,
    37  EXP,
    39  LOG,
    44 
    48  POW,
    51  ADD,
    55  SUB,
    58  MUL,
    62  DIV,
    66  MIN,
    70  MAX,
    71 
    75  EQ,
    79  NE,
    83  LT,
    87  GT,
    103 
    106 };
    107 
    109 std::string opname (OPCODE opcode);
    110 
    112 OPCODE name_op (std::string oname);
    113 
    114 }
    115 
    116 #endif // ADE_OPCODE_HPP
    Definition: opcode.hpp:79
    +
    Square root every element.
    Definition: opcode.hpp:41
    +
    Sine every element.
    Definition: opcode.hpp:31
    +
    Definition: opcode.hpp:92
    +
    Definition: opcode.hpp:87
    +
    OPCODE
    Enumerated representation of operations.
    Definition: opcode.hpp:22
    +
    Definition: opcode.hpp:83
    +
    Definition: opcode.hpp:58
    +
    OPCODE name_op(std::string oname)
    Return the OPCODE of the string name.
    +
    Definition: opcode.hpp:97
    +
    Definition: opcode.hpp:66
    +
    Definition: opcode.hpp:48
    +
    Definition: opcode.hpp:70
    +
    Round every element.
    Definition: opcode.hpp:43
    +
    Definition: opcode.hpp:102
    +
    Definition: opcode.hpp:24
    + +
    Definition: opcode.hpp:75
    +
    Make every element positive.
    Definition: opcode.hpp:27
    +
    Definition: coord.hpp:18
    +
    Tangent every element.
    Definition: opcode.hpp:35
    +
    Definition: opcode.hpp:62
    +
    Definition: opcode.hpp:55
    +
    Definition: opcode.hpp:51
    +
    Natural log every element.
    Definition: opcode.hpp:39
    +
    std::string opname(OPCODE opcode)
    Return the string name of input OPCODE.
    +
    Exponent every element.
    Definition: opcode.hpp:37
    +
    Negate the sign of every element.
    Definition: opcode.hpp:29
    +
    Sentinel value of bad opcodes.
    Definition: opcode.hpp:105
    +
    Cosine every element.
    Definition: opcode.hpp:33
    +
    + + + + diff --git a/docs/open.png b/docs/open.png new file mode 100644 index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + +Tenncor: llo/src/operator.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    operator.cpp File Reference
    +
    +
    +
    #include "llo/operator.hpp"
    +
    + + + + diff --git a/docs/operator_8hpp.html b/docs/operator_8hpp.html new file mode 100644 index 000000000..47e030d41 --- /dev/null +++ b/docs/operator_8hpp.html @@ -0,0 +1,244 @@ + + + + + + + +Tenncor: llo/operator.hpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    operator.hpp File Reference
    +
    +
    +
    #include <cstring>
    +#include <cmath>
    +#include <functional>
    +#include <random>
    +#include "ade/coord.hpp"
    +
    +

    Go to the source code of this file.

    + + + + +

    +Classes

    struct  llo::VecRef< T >
     
    + + + +

    +Namespaces

     llo
     
    + + + + +

    +Typedefs

    using llo::EngineT = std::default_random_engine
     RNG engine used. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    EngineT & llo::get_engine (void)
     Return global random generator. More...
     
    template<typename T >
    void llo::copy (T *out, ade::Shape outshape, VecRef< T > in)
     
    template<typename T >
    void llo::unary (T *out, VecRef< T > in, std::function< T(const T &)> f)
     Generic unary operation assuming identity mapping (bijective) More...
     
    template<typename T >
    void llo::abs (T *out, VecRef< T > in)
     
    template<>
    void llo::abs< uint8_t > (uint8_t *out, VecRef< uint8_t > in)
     
    template<>
    void llo::abs< uint16_t > (uint16_t *out, VecRef< uint16_t > in)
     
    template<>
    void llo::abs< uint32_t > (uint32_t *out, VecRef< uint32_t > in)
     
    template<>
    void llo::abs< uint64_t > (uint64_t *out, VecRef< uint64_t > in)
     
    template<typename T >
    void llo::neg (T *out, VecRef< T > in)
     
    template<>
    void llo::neg< uint8_t > (uint8_t *out, VecRef< uint8_t > in)
     
    template<>
    void llo::neg< uint16_t > (uint16_t *out, VecRef< uint16_t > in)
     
    template<>
    void llo::neg< uint32_t > (uint32_t *out, VecRef< uint32_t > in)
     
    template<>
    void llo::neg< uint64_t > (uint64_t *out, VecRef< uint64_t > in)
     
    template<typename T >
    void llo::bit_not (T *out, VecRef< T > in)
     
    template<typename T >
    void llo::sin (T *out, VecRef< T > in)
     
    template<typename T >
    void llo::cos (T *out, VecRef< T > in)
     
    template<typename T >
    void llo::tan (T *out, VecRef< T > in)
     
    template<typename T >
    void llo::exp (T *out, VecRef< T > in)
     
    template<typename T >
    void llo::log (T *out, VecRef< T > in)
     
    template<typename T >
    void llo::sqrt (T *out, VecRef< T > in)
     
    template<typename T >
    void llo::round (T *out, VecRef< T > in)
     
    template<typename T >
    void llo::binary (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b, std::function< T(const T &, const T &)> f)
     Generic binary operation assuming identity mapping (bijective) More...
     
    template<typename T >
    void llo::pow (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void llo::sub (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void llo::div (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void llo::eq (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void llo::neq (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void llo::lt (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void llo::gt (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<typename T >
    void llo::rand_binom (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< double > b)
     
    template<>
    void llo::rand_binom< double > (double *out, ade::Shape &outshape, VecRef< double > a, VecRef< double > b)
     
    template<>
    void llo::rand_binom< float > (float *out, ade::Shape &outshape, VecRef< float > a, VecRef< double > b)
     
    template<typename T >
    void llo::rand_uniform (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<>
    void llo::rand_uniform< double > (double *out, ade::Shape &outshape, VecRef< double > a, VecRef< double > b)
     
    template<>
    void llo::rand_uniform< float > (float *out, ade::Shape &outshape, VecRef< float > a, VecRef< float > b)
     
    template<typename T >
    void llo::rand_normal (T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
     
    template<>
    void llo::rand_normal< float > (float *out, ade::Shape &outshape, VecRef< float > a, VecRef< float > b)
     
    template<>
    void llo::rand_normal< double > (double *out, ade::Shape &outshape, VecRef< double > a, VecRef< double > b)
     
    template<typename T >
    void llo::nnary (T *out, ade::Shape &outshape, std::vector< VecRef< T >> args, std::function< void(T &, const T &)> acc)
     Generic n-nary operation (potentially surjective) More...
     
    template<typename T >
    void llo::add (T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)
     
    template<typename T >
    void llo::mul (T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)
     
    template<typename T >
    void llo::min (T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)
     
    template<typename T >
    void llo::max (T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)
     
    +
    + + + + diff --git a/docs/operator_8hpp_source.html b/docs/operator_8hpp_source.html new file mode 100644 index 000000000..8809a7ef9 --- /dev/null +++ b/docs/operator_8hpp_source.html @@ -0,0 +1,148 @@ + + + + + + + +Tenncor: llo/operator.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    operator.hpp
    +
    +
    +Go to the documentation of this file.
    1 
    10 #include <cstring>
    11 #include <cmath>
    12 #include <functional>
    13 #include <random>
    14 
    15 #include "ade/coord.hpp"
    16 
    17 #ifndef LLO_OPERATOR_HPP
    18 #define LLO_OPERATOR_HPP
    19 
    20 namespace llo
    21 {
    22 
    24 using EngineT = std::default_random_engine;
    25 
    27 EngineT& get_engine (void);
    28 
    31 template <typename T>
    32 struct VecRef
    33 {
    35  const T* data;
    37 };
    38 
    42 template <typename T>
    43 void copy (T* out, ade::Shape outshape, VecRef<T> in)
    44 {
    45  ade::NElemT nout = outshape.n_elems();
    46  ade::NElemT nin = in.shape.n_elems();
    47  ade::CoordT coord;
    48  if (nout > nin) // non-surjective
    49  {
    50  for (ade::NElemT outidx = 0; outidx < nout; ++outidx)
    51  {
    52  in.mapper->backward(coord.begin(),
    53  ade::coordinate(outshape, outidx).begin());
    54  ade::NElemT i = ade::index(in.shape, coord);
    55  out[outidx] = in.data[i];
    56  }
    57  }
    58  else // resolve surjective conflicts
    59  {
    60  bool visited[nout];
    61  std::memset(visited, false, nout);
    62  for (ade::NElemT i = 0; i < nin; ++i)
    63  {
    64  in.mapper->forward(coord.begin(),
    65  ade::coordinate(in.shape, i).begin());
    66  ade::NElemT outidx = ade::index(outshape, coord);
    67  if (visited[outidx])
    68  {
    69  out[outidx] += in.data[i];
    70  }
    71  else
    72  {
    73  out[outidx] = in.data[i];
    74  visited[outidx] = true;
    75  }
    76  }
    77  // todo: do something/check non-visited elements
    78  }
    79 }
    80 
    82 template <typename T>
    83 void unary (T* out, VecRef<T> in, std::function<T(const T&)> f)
    84 {
    85  ade::NElemT n = in.shape.n_elems();
    86  for (ade::NElemT i = 0; i < n; ++i)
    87  {
    88  out[i] = f(in.data[i]);
    89  }
    90 }
    91 
    94 template <typename T>
    95 void abs (T* out, VecRef<T> in)
    96 {
    97  unary<T>(out, in, [](const T& src) { return std::abs(src); });
    98 }
    99 
    100 template <>
    101 void abs<uint8_t> (uint8_t* out, VecRef<uint8_t> in);
    102 
    103 template <>
    104 void abs<uint16_t> (uint16_t* out, VecRef<uint16_t> in);
    105 
    106 template <>
    107 void abs<uint32_t> (uint32_t* out, VecRef<uint32_t> in);
    108 
    109 template <>
    110 void abs<uint64_t> (uint64_t* out, VecRef<uint64_t> in);
    111 
    114 template <typename T>
    115 void neg (T* out, VecRef<T> in)
    116 {
    117  unary<T>(out, in, [](const T& src) { return -src; });
    118 }
    119 
    120 template <>
    121 void neg<uint8_t> (uint8_t* out, VecRef<uint8_t> in);
    122 
    123 template <>
    124 void neg<uint16_t> (uint16_t* out, VecRef<uint16_t> in);
    125 
    126 template <>
    127 void neg<uint32_t> (uint32_t* out, VecRef<uint32_t> in);
    128 
    129 template <>
    130 void neg<uint64_t> (uint64_t* out, VecRef<uint64_t> in);
    131 
    134 template <typename T>
    135 void bit_not (T* out, VecRef<T> in)
    136 {
    137  unary<T>(out, in, [](const T& src) { return !src; });
    138 }
    139 
    142 template <typename T>
    143 void sin (T* out, VecRef<T> in)
    144 {
    145  unary<T>(out, in, [](const T& src) { return std::sin(src); });
    146 }
    147 
    150 template <typename T>
    151 void cos (T* out, VecRef<T> in)
    152 {
    153  unary<T>(out, in, [](const T& src) { return std::cos(src); });
    154 }
    155 
    158 template <typename T>
    159 void tan (T* out, VecRef<T> in)
    160 {
    161  unary<T>(out, in, [](const T& src) { return std::tan(src); });
    162 }
    163 
    166 template <typename T>
    167 void exp (T* out, VecRef<T> in)
    168 {
    169  unary<T>(out, in, [](const T& src) { return std::exp(src); });
    170 }
    171 
    174 template <typename T>
    175 void log (T* out, VecRef<T> in)
    176 {
    177  unary<T>(out, in, [](const T& src) { return std::log(src); });
    178 }
    179 
    182 template <typename T>
    183 void sqrt (T* out, VecRef<T> in)
    184 {
    185  unary<T>(out, in, [](const T& src) { return std::sqrt(src); });
    186 }
    187 
    190 template <typename T>
    191 void round (T* out, VecRef<T> in)
    192 {
    193  unary<T>(out, in, [](const T& src) { return std::round(src); });
    194 }
    195 
    197 template <typename T>
    198 void binary (T* out, ade::Shape& outshape, VecRef<T> a, VecRef<T> b,
    199  std::function<T(const T&,const T&)> f)
    200 {
    201  ade::NElemT n = outshape.n_elems();
    202  ade::CoordT acoord;
    203  ade::CoordT bcoord;
    204  for (ade::NElemT i = 0; i < n; ++i)
    205  {
    206  a.mapper->backward(acoord.begin(),
    207  ade::coordinate(outshape, i).begin());
    208  b.mapper->backward(bcoord.begin(),
    209  ade::coordinate(outshape, i).begin());
    210  out[i] = f(a.data[ade::index(a.shape, acoord)],
    211  b.data[ade::index(b.shape, bcoord)]);
    212  }
    213 }
    214 
    218 template <typename T>
    219 void pow (T* out, ade::Shape& outshape, VecRef<T> a, VecRef<T> b)
    220 {
    221  binary<T>(out, outshape, a, b,
    222  [](const T& b, const T& x) { return std::pow(b, x); });
    223 }
    224 
    228 template <typename T>
    229 void sub (T* out, ade::Shape& outshape, VecRef<T> a, VecRef<T> b)
    230 {
    231  binary<T>(out, outshape, a, b,
    232  [](const T& a, const T& b) { return a - b; });
    233 }
    234 
    238 template <typename T>
    239 void div (T* out, ade::Shape& outshape, VecRef<T> a, VecRef<T> b)
    240 {
    241  binary<T>(out, outshape, a, b,
    242  [](const T& a, const T& b) { return a / b; });
    243 }
    244 
    248 template <typename T>
    249 void eq (T* out, ade::Shape& outshape, VecRef<T> a, VecRef<T> b)
    250 {
    251  binary<T>(out, outshape, a, b,
    252  [](const T& a, const T& b) { return a == b; });
    253 }
    254 
    258 template <typename T>
    259 void neq (T* out, ade::Shape& outshape, VecRef<T> a, VecRef<T> b)
    260 {
    261  binary<T>(out, outshape, a, b,
    262  [](const T& a, const T& b) { return a != b; });
    263 }
    264 
    268 template <typename T>
    269 void lt (T* out, ade::Shape& outshape, VecRef<T> a, VecRef<T> b)
    270 {
    271  binary<T>(out, outshape, a, b,
    272  [](const T& a, const T& b) { return a < b; });
    273 }
    274 
    278 template <typename T>
    279 void gt (T* out, ade::Shape& outshape, VecRef<T> a, VecRef<T> b)
    280 {
    281  binary<T>(out, outshape, a, b,
    282  [](const T& a, const T& b) { return a > b; });
    283 }
    284 
    288 template <typename T>
    289 void rand_binom (T* out, ade::Shape& outshape, VecRef<T> a, VecRef<double> b)
    290 {
    291  ade::NElemT n = outshape.n_elems();
    292  ade::CoordT acoord;
    293  ade::CoordT bcoord;
    294  for (ade::NElemT i = 0; i < n; ++i)
    295  {
    296  a.mapper->backward(acoord.begin(),
    297  ade::coordinate(outshape, i).begin());
    298  b.mapper->backward(bcoord.begin(),
    299  ade::coordinate(outshape, i).begin());
    300  std::binomial_distribution<T> dist(
    301  a.data[ade::index(a.shape, acoord)],
    302  b.data[ade::index(b.shape, bcoord)]);
    303  out[i] = dist(get_engine());
    304  }
    305 }
    306 
    307 template <>
    308 void rand_binom<double> (double* out,
    309  ade::Shape& outshape, VecRef<double> a, VecRef<double> b);
    310 
    311 template <>
    312 void rand_binom<float> (float* out,
    313  ade::Shape& outshape, VecRef<float> a, VecRef<double> b);
    314 
    318 template <typename T>
    319 void rand_uniform (T* out,
    320  ade::Shape& outshape, VecRef<T> a, VecRef<T> b)
    321 {
    322  binary<T>(out, outshape, a, b,
    323  [](const T& a, const T& b)
    324  {
    325  std::uniform_int_distribution<T> dist(a, b);
    326  return dist(get_engine());
    327  });
    328 }
    329 
    330 template <>
    331 void rand_uniform<double> (double* out,
    332  ade::Shape& outshape, VecRef<double> a, VecRef<double> b);
    333 
    334 template <>
    335 void rand_uniform<float> (float* out,
    336  ade::Shape& outshape, VecRef<float> a, VecRef<float> b);
    337 
    341 template <typename T>
    342 void rand_normal (T* out, ade::Shape& outshape, VecRef<T> a, VecRef<T> b)
    343 {
    344  throw std::bad_function_call();
    345 }
    346 
    347 template <>
    348 void rand_normal<float> (float* out,
    349  ade::Shape& outshape, VecRef<float> a, VecRef<float> b);
    350 
    351 template <>
    352 void rand_normal<double> (double* out,
    353  ade::Shape& outshape, VecRef<double> a, VecRef<double> b);
    354 
    356 template <typename T>
    357 void nnary (T* out, ade::Shape& outshape, std::vector<VecRef<T>> args,
    358  std::function<void(T&, const T&)> acc)
    359 {
    360  ade::NElemT nout = outshape.n_elems();
    361  bool visited[nout];
    362  std::memset(visited, false, nout);
    363  ade::CoordT coord;
    364  size_t nargs = args.size();
    365  if (nargs == 1 && nout > args[0].shape.n_elems()) // resolve extensions
    366  {
    367  VecRef<T>& arg = args[0];
    368  for (ade::NElemT outidx = 0; outidx < nout; ++outidx)
    369  {
    370  arg.mapper->backward(coord.begin(),
    371  ade::coordinate(outshape, outidx).begin());
    372  ade::NElemT i = ade::index(arg.shape, coord);
    373  out[outidx] = arg.data[i];
    374  }
    375  }
    376  else
    377  {
    378  for (size_t i = 0; i < nargs; ++i)
    379  {
    380  VecRef<T>& arg = args[i];
    381  for (ade::NElemT i = 0, n = arg.shape.n_elems(); i < n; ++i)
    382  {
    383  arg.mapper->forward(coord.begin(),
    384  ade::coordinate(arg.shape, i).begin());
    385  ade::NElemT outidx = ade::index(outshape, coord);
    386  if (visited[outidx])
    387  {
    388  acc(out[outidx], arg.data[i]);
    389  }
    390  else
    391  {
    392  out[outidx] = arg.data[i];
    393  visited[outidx] = true;
    394  }
    395  }
    396  }
    397  // todo: do something/check non-visited elements
    398  }
    399 }
    400 
    403 template <typename T>
    404 void add (T* out, ade::Shape& outshape, std::vector<VecRef<T>> args)
    405 {
    406  nnary<T>(out, outshape, args,
    407  [](T& out, const T& val) { out += val; });
    408 }
    409 
    412 template <typename T>
    413 void mul (T* out, ade::Shape& outshape, std::vector<VecRef<T>> args)
    414 {
    415  nnary<T>(out, outshape, args,
    416  [](T& out, const T& val) { out *= val; });
    417 }
    418 
    421 template <typename T>
    422 void min (T* out, ade::Shape& outshape, std::vector<VecRef<T>> args)
    423 {
    424  nnary<T>(out, outshape, args,
    425  [](T& out, const T& val) { out = std::min(out, val); });
    426 }
    427 
    430 template <typename T>
    431 void max (T* out, ade::Shape& outshape, std::vector<VecRef<T>> args)
    432 {
    433  nnary<T>(out, outshape, args,
    434  [](T& out, const T& val) { out = std::max(out, val); });
    435 }
    436 
    437 }
    438 
    439 #endif // LLO_OPERATOR_HPP
    void abs< uint64_t >(uint64_t *out, VecRef< uint64_t > in)
    +
    DataNode div(DataNode a, DataNode b)
    Element-wise operation: a / b.
    Definition: api.cpp:127
    +
    DataNode eq(DataNode a, DataNode b)
    Element-wise operation: a == b.
    Definition: api.cpp:136
    +
    const T * data
    Definition: operator.hpp:35
    +
    void tan(T *out, VecRef< T > in)
    Definition: operator.hpp:159
    +
    void rand_binom< double >(double *out, ade::Shape &outshape, VecRef< double > a, VecRef< double > b)
    +
    DataNode neq(DataNode a, DataNode b)
    Element-wise operation: a != b.
    Definition: api.cpp:145
    +
    uint64_t NElemT
    Definition: shape.hpp:33
    +
    DataNode add(DataNode a, DataNode b)
    Element-wise operation: a + b.
    Definition: api.cpp:84
    +
    void neg< uint8_t >(uint8_t *out, VecRef< uint8_t > in)
    +
    DataNode exp(DataNode arg)
    Element-wise exponent operation.
    Definition: api.cpp:45
    +
    DataNode tan(DataNode arg)
    Element-wise tangent operation.
    Definition: api.cpp:39
    +
    DataNode rand_normal(DataNode mean, DataNode stdev)
    Generate random numbers according to std::normal_distribution(a, b)
    Definition: api.cpp:219
    +
    void nnary(T *out, ade::Shape &outshape, std::vector< VecRef< T >> args, std::function< void(T &, const T &)> acc)
    Generic n-nary operation (potentially surjective)
    Definition: operator.hpp:357
    +
    void neg< uint16_t >(uint16_t *out, VecRef< uint16_t > in)
    +
    DataNode lt(DataNode a, DataNode b)
    Element-wise operation: a < b.
    Definition: api.cpp:154
    +
    DataNode sqrt(DataNode arg)
    Element-wise square root operation.
    Definition: api.cpp:57
    +
    void exp(T *out, VecRef< T > in)
    Definition: operator.hpp:167
    +
    EngineT & get_engine(void)
    Return global random generator.
    +
    void abs< uint32_t >(uint32_t *out, VecRef< uint32_t > in)
    +
    ade::CoordPtrT mapper
    Definition: operator.hpp:34
    +
    DataNode neg(DataNode arg)
    Element-wise negative operation.
    Definition: api.cpp:21
    +
    std::shared_ptr< iCoordMap > CoordPtrT
    Type of iCoordMap smartpointer.
    Definition: coord.hpp:99
    +
    Definition: operator.hpp:32
    +
    std::default_random_engine EngineT
    RNG engine used.
    Definition: operator.hpp:24
    +
    NElemT n_elems(void) const
    Return the total number of elements represented by the shape.
    Definition: shape.hpp:108
    +
    DataNode cos(DataNode arg)
    Element-wise cosine operation.
    Definition: api.cpp:33
    +
    void unary(T *out, VecRef< T > in, std::function< T(const T &)> f)
    Generic unary operation assuming identity mapping (bijective)
    Definition: operator.hpp:83
    +
    void copy(T *out, ade::Shape outshape, VecRef< T > in)
    Definition: operator.hpp:43
    +
    void cos(T *out, VecRef< T > in)
    Definition: operator.hpp:151
    +
    void rand_normal< double >(double *out, ade::Shape &outshape, VecRef< double > a, VecRef< double > b)
    +
    DataNode max(std::vector< DataNode > args)
    Get Element-wise maximum of args.
    Definition: api.cpp:184
    +
    DataNode mul(DataNode a, DataNode b)
    Element-wise operation: a///b.
    Definition: api.cpp:110
    +
    void round(T *out, VecRef< T > in)
    Definition: operator.hpp:191
    +
    void rand_binom< float >(float *out, ade::Shape &outshape, VecRef< float > a, VecRef< double > b)
    +
    void min(T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)
    Definition: operator.hpp:422
    +
    DataNode rand_binom(DataNode ntrials, DataNode prob)
    Generate random numbers according to std::binomial_distribution(a, b)
    Definition: api.cpp:201
    +
    void rand_uniform< float >(float *out, ade::Shape &outshape, VecRef< float > a, VecRef< float > b)
    + +
    void abs< uint8_t >(uint8_t *out, VecRef< uint8_t > in)
    +
    void rand_uniform< double >(double *out, ade::Shape &outshape, VecRef< double > a, VecRef< double > b)
    +
    NElemT index(Shape shape, CoordT coord)
    +
    void sqrt(T *out, VecRef< T > in)
    Definition: operator.hpp:183
    +
    Definition: shape.hpp:51
    +
    void neg< uint64_t >(uint64_t *out, VecRef< uint64_t > in)
    +
    DataNode gt(DataNode a, DataNode b)
    Element-wise operation: a > b.
    Definition: api.cpp:163
    +
    DataNode rand_uniform(DataNode lower, DataNode upper)
    Generate random numbers according to std::uniform_distributon(a, b)
    Definition: api.cpp:210
    +
    std::array< CDimT, rank_cap > CoordT
    Definition: shape.hpp:45
    +
    DataNode sub(DataNode a, DataNode b)
    Element-wise operation: a - b.
    Definition: api.cpp:101
    +
    Definition: api.hpp:14
    +
    void binary(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b, std::function< T(const T &, const T &)> f)
    Generic binary operation assuming identity mapping (bijective)
    Definition: operator.hpp:198
    +
    ade::Shape shape
    Definition: operator.hpp:36
    +
    DataNode round(DataNode arg)
    Element-wise round operation.
    Definition: api.cpp:63
    +
    CoordT coordinate(Shape shape, NElemT idx)
    +
    void log(T *out, VecRef< T > in)
    Definition: operator.hpp:175
    +
    void abs< uint16_t >(uint16_t *out, VecRef< uint16_t > in)
    +
    DataNode pow(DataNode a, DataNode b)
    Element-wise operation: base ^ exponent.
    Definition: api.cpp:75
    +
    void max(T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)
    Definition: operator.hpp:431
    +
    DataNode abs(DataNode arg)
    Element-wise absolute operation.
    Definition: api.cpp:15
    +
    void abs(T *out, VecRef< T > in)
    Definition: operator.hpp:95
    +
    DataNode sin(DataNode arg)
    Element-wise sine operation.
    Definition: api.cpp:27
    +
    void sin(T *out, VecRef< T > in)
    Definition: operator.hpp:143
    +
    DataNode min(std::vector< DataNode > args)
    Get Element-wise minimum of args.
    Definition: api.cpp:172
    +
    void rand_normal< float >(float *out, ade::Shape &outshape, VecRef< float > a, VecRef< float > b)
    +
    void pow(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)
    Definition: operator.hpp:219
    +
    DataNode log(DataNode arg)
    Element-wise natural log operation.
    Definition: api.cpp:51
    +
    void bit_not(T *out, VecRef< T > in)
    Definition: operator.hpp:135
    +
    void neg< uint32_t >(uint32_t *out, VecRef< uint32_t > in)
    +
    + + + + diff --git a/docs/opmap_8cpp.html b/docs/opmap_8cpp.html new file mode 100644 index 000000000..ce231acf8 --- /dev/null +++ b/docs/opmap_8cpp.html @@ -0,0 +1,81 @@ + + + + + + + +Tenncor: llo/src/opmap.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    opmap.cpp File Reference
    +
    +
    +
    #include "llo/opmap.hpp"
    +
    + + + + diff --git a/docs/opmap_8hpp.html b/docs/opmap_8hpp.html new file mode 100644 index 000000000..2823b69cd --- /dev/null +++ b/docs/opmap_8hpp.html @@ -0,0 +1,222 @@ + + + + + + + +Tenncor: llo/opmap.hpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    opmap.hpp File Reference
    +
    +
    +
    #include "ade/opcode.hpp"
    +#include "llo/data.hpp"
    +#include "llo/operator.hpp"
    +
    +

    Go to the source code of this file.

    + + + + + + + + +

    +Classes

    struct  llo::Executer< OP, T >
     
    struct  llo::Executer< ade::COPY, T >
     
    struct  llo::Executer< ade::RAND_BINO, T >
     
    + + + +

    +Namespaces

     llo
     
    + + + + + + + +

    +Macros

    #define UNARY(OP, METHOD)
     
    #define BINARY(OP, METHOD)
     
    #define NARY(OP, METHOD)
     
    + + + +

    +Typedefs

    using llo::DataArgsT = std::vector< std::pair< ade::CoordPtrT, GenericData > >
     
    + + + + + + +

    +Functions

    template<ade::OPCODE OP>
    void llo::exec (GenericData &out, DataArgsT &data)
     
    void llo::op_exec (ade::OPCODE opcode, GenericData &out, DataArgsT &data)
     
    +

    Macro Definition Documentation

    + +

    ◆ BINARY

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    #define BINARY( OP,
     METHOD 
    )
    +
    +Value:
    template <typename T> struct Executer<ade::OP,T>{\
    static void exec (GenericData& out, DataArgsT& data) {\
    METHOD((T*) out.data_.get(), out.shape_, VecRef<T>{data[0].first,\
    (T*) data[0].second.data_.get(), data[0].second.shape_}, VecRef<T>{\
    data[1].first, (T*) data[1].second.data_.get(), data[1].second.shape_}); } };
    std::vector< std::pair< ade::CoordPtrT, GenericData > > DataArgsT
    Definition: opmap.hpp:20
    +
    Definition: coord.hpp:18
    +
    void exec(GenericData &out, DataArgsT &data)
    Definition: opmap.hpp:112
    +
    +
    +
    + +

    ◆ NARY

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    #define NARY( OP,
     METHOD 
    )
    +
    +Value:
    template <typename T> struct Executer<ade::OP,T> {\
    static void exec (GenericData& out, DataArgsT& data){\
    std::vector<VecRef<T>> args(data.size());\
    std::transform(data.begin(), data.end(), args.begin(),\
    [](std::pair<ade::CoordPtrT,GenericData>& gd) { return VecRef<T>{gd.first,\
    (T*) gd.second.data_.get(), gd.second.shape_}; });\
    METHOD((T*) out.data_.get(), out.shape_, args); } };
    std::vector< std::pair< ade::CoordPtrT, GenericData > > DataArgsT
    Definition: opmap.hpp:20
    +
    Definition: coord.hpp:18
    +
    void exec(GenericData &out, DataArgsT &data)
    Definition: opmap.hpp:112
    +
    +
    +
    + +

    ◆ UNARY

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    #define UNARY( OP,
     METHOD 
    )
    +
    +Value:
    template <typename T>struct Executer<ade::OP,T>{\
    static void exec (GenericData& out, DataArgsT& data) {\
    METHOD((T*) out.data_.get(), VecRef<T>{data[0].first,\
    (T*) data[0].second.data_.get(), data[0].second.shape_}); } };
    std::vector< std::pair< ade::CoordPtrT, GenericData > > DataArgsT
    Definition: opmap.hpp:20
    +
    Definition: coord.hpp:18
    +
    void exec(GenericData &out, DataArgsT &data)
    Definition: opmap.hpp:112
    +
    +
    +
    +
    + + + + diff --git a/docs/opmap_8hpp_source.html b/docs/opmap_8hpp_source.html new file mode 100644 index 000000000..31f952e12 --- /dev/null +++ b/docs/opmap_8hpp_source.html @@ -0,0 +1,163 @@ + + + + + + + +Tenncor: llo/opmap.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    opmap.hpp
    +
    +
    +Go to the documentation of this file.
    1 
    9 #include "ade/opcode.hpp"
    10 
    11 #include "llo/data.hpp"
    12 #include "llo/operator.hpp"
    13 
    14 #ifndef LLO_OPMAP_HPP
    15 #define LLO_OPMAP_HPP
    16 
    17 namespace llo
    18 {
    19 
    20 using DataArgsT = std::vector<std::pair<ade::CoordPtrT,GenericData>>;
    21 
    22 template <ade::OPCODE OP, typename T>
    23 struct Executer
    24 {
    25  static void exec (GenericData& out, DataArgsT& data)
    26  {
    27  ade::fatalf("cannot %s of type %s", ade::opname(OP).c_str(),
    28  nametype(get_type<T>()).c_str());
    29  }
    30 };
    31 
    32 template <typename T>
    33 struct Executer<ade::COPY,T>
    34 {
    35  static void exec (GenericData& out, DataArgsT& data)
    36  {
    37  copy((T*) out.data_.get(), out.shape_, VecRef<T>{
    38  data[0].first,
    39  (T*) data[0].second.data_.get(),
    40  data[0].second.shape_,
    41  });
    42  }
    43 };
    44 
    45 #define UNARY(OP, METHOD)template <typename T>struct Executer<ade::OP,T>{\
    46 static void exec (GenericData& out, DataArgsT& data) {\
    47 METHOD((T*) out.data_.get(), VecRef<T>{data[0].first,\
    48 (T*) data[0].second.data_.get(), data[0].second.shape_}); } };
    49 
    50 UNARY(ABS, abs)
    51 UNARY(NEG, neg)
    52 UNARY(SIN, sin)
    53 UNARY(COS, cos)
    54 UNARY(TAN, tan)
    55 UNARY(EXP, exp)
    56 UNARY(LOG, log)
    57 UNARY(SQRT, sqrt)
    59 
    60 #undef UNARY
    61 
    62 #define BINARY(OP, METHOD)template <typename T> struct Executer<ade::OP,T>{\
    63 static void exec (GenericData& out, DataArgsT& data) {\
    64 METHOD((T*) out.data_.get(), out.shape_, VecRef<T>{data[0].first,\
    65 (T*) data[0].second.data_.get(), data[0].second.shape_}, VecRef<T>{\
    66 data[1].first, (T*) data[1].second.data_.get(), data[1].second.shape_}); } };
    67 
    68 BINARY(POW, pow)
    69 BINARY(SUB, sub)
    70 BINARY(DIV, div)
    71 BINARY(EQ, eq)
    72 BINARY(NE, neq)
    73 BINARY(LT, lt)
    74 BINARY(GT, gt)
    75 
    76 template <typename T>
    78 {
    79  static void exec (GenericData& out, DataArgsT& data)
    80  {
    81  rand_binom((T*) out.data_.get(), out.shape_,
    82  VecRef<T>{data[0].first,
    83  (T*) data[0].second.data_.get(),
    84  data[0].second.shape_},
    85  VecRef<double>{data[1].first,
    86  (double*) data[1].second.data_.get(),
    87  data[1].second.shape_});
    88  }
    89 };
    90 
    93 
    94 #undef BINARY
    95 
    96 #define NARY(OP, METHOD)template <typename T> struct Executer<ade::OP,T> {\
    97 static void exec (GenericData& out, DataArgsT& data){\
    98 std::vector<VecRef<T>> args(data.size());\
    99 std::transform(data.begin(), data.end(), args.begin(),\
    100 [](std::pair<ade::CoordPtrT,GenericData>& gd) { return VecRef<T>{gd.first,\
    101 (T*) gd.second.data_.get(), gd.second.shape_}; });\
    102 METHOD((T*) out.data_.get(), out.shape_, args); } };
    103 
    104 NARY(ADD, add)
    105 NARY(MUL, mul)
    106 NARY(MIN, min)
    107 NARY(MAX, max)
    108 
    109 #undef NARY
    110 
    111 template <ade::OPCODE OP>
    112 void exec (GenericData& out, DataArgsT& data)
    113 {
    114  switch (out.dtype_)
    115  {
    116  case DOUBLE:
    117  Executer<OP,double>::exec(out, data);
    118  break;
    119  case FLOAT:
    120  Executer<OP,float>::exec(out, data);
    121  break;
    122  case INT8:
    123  Executer<OP,int8_t>::exec(out, data);
    124  break;
    125  case INT16:
    126  Executer<OP,int16_t>::exec(out, data);
    127  break;
    128  case INT32:
    129  Executer<OP,int32_t>::exec(out, data);
    130  break;
    131  case INT64:
    132  Executer<OP,int64_t>::exec(out, data);
    133  break;
    134  case UINT8:
    135  Executer<OP,uint8_t>::exec(out, data);
    136  break;
    137  case UINT16:
    138  Executer<OP,uint16_t>::exec(out, data);
    139  break;
    140  case UINT32:
    141  Executer<OP,uint32_t>::exec(out, data);
    142  break;
    143  case UINT64:
    144  Executer<OP,uint64_t>::exec(out, data);
    145  break;
    146  default:
    147  ade::fatal("executing bad type");
    148  }
    149 }
    150 
    151 void op_exec (ade::OPCODE opcode, GenericData& out, DataArgsT& data);
    152 
    153 }
    154 
    155 #endif // LLO_OPMAP_HPP
    Definition: dtype.hpp:29
    +
    Definition: opcode.hpp:79
    +
    Square root every element.
    Definition: opcode.hpp:41
    +
    DataNode div(DataNode a, DataNode b)
    Element-wise operation: a / b.
    Definition: api.cpp:127
    +
    DataNode eq(DataNode a, DataNode b)
    Element-wise operation: a == b.
    Definition: api.cpp:136
    +
    Definition: dtype.hpp:23
    +
    Sine every element.
    Definition: opcode.hpp:31
    +
    Definition: opcode.hpp:92
    +
    DataNode neq(DataNode a, DataNode b)
    Element-wise operation: a != b.
    Definition: api.cpp:145
    +
    Definition: opcode.hpp:87
    +
    std::vector< std::pair< ade::CoordPtrT, GenericData > > DataArgsT
    Definition: opmap.hpp:20
    +
    Definition: dtype.hpp:24
    +
    static void exec(GenericData &out, DataArgsT &data)
    Definition: opmap.hpp:79
    +
    Definition: dtype.hpp:28
    +
    DataNode add(DataNode a, DataNode b)
    Element-wise operation: a + b.
    Definition: api.cpp:84
    +
    DataNode exp(DataNode arg)
    Element-wise exponent operation.
    Definition: api.cpp:45
    +
    Definition: dtype.hpp:22
    +
    DataNode tan(DataNode arg)
    Element-wise tangent operation.
    Definition: api.cpp:39
    +
    DataNode rand_normal(DataNode mean, DataNode stdev)
    Generate random numbers according to std::normal_distribution(a, b)
    Definition: api.cpp:219
    +
    #define BINARY(OP, METHOD)
    Definition: opmap.hpp:62
    +
    OPCODE
    Enumerated representation of operations.
    Definition: opcode.hpp:22
    +
    Definition: opcode.hpp:83
    +
    DataNode lt(DataNode a, DataNode b)
    Element-wise operation: a < b.
    Definition: api.cpp:154
    +
    DataNode sqrt(DataNode arg)
    Element-wise square root operation.
    Definition: api.cpp:57
    +
    Definition: opcode.hpp:58
    +
    Definition: opcode.hpp:97
    + +
    Definition: opcode.hpp:66
    +
    Definition: opcode.hpp:48
    +
    DataNode neg(DataNode arg)
    Element-wise negative operation.
    Definition: api.cpp:21
    + +
    Definition: operator.hpp:32
    +
    void op_exec(ade::OPCODE opcode, GenericData &out, DataArgsT &data)
    +
    DataNode cos(DataNode arg)
    Element-wise cosine operation.
    Definition: api.cpp:33
    +
    static void exec(GenericData &out, DataArgsT &data)
    Definition: opmap.hpp:25
    +
    Definition: opcode.hpp:70
    +
    ade::Shape shape_
    Shape of data_.
    Definition: data.hpp:33
    +
    Definition: test_log.cpp:10
    +
    Definition: dtype.hpp:30
    +
    void copy(T *out, ade::Shape outshape, VecRef< T > in)
    Definition: operator.hpp:43
    +
    Round every element.
    Definition: opcode.hpp:43
    +
    Definition: opcode.hpp:102
    +
    Definition: opcode.hpp:24
    +
    void fatalf(std::string format, ARGS... args)
    Fatal using global logger with arguments.
    Definition: log.hpp:94
    +
    GenericData for holding data when passing up the tensor graph.
    Definition: data.hpp:20
    + +
    Definition: opcode.hpp:75
    +
    Make every element positive.
    Definition: opcode.hpp:27
    +
    DataNode max(std::vector< DataNode > args)
    Get Element-wise maximum of args.
    Definition: api.cpp:184
    +
    DataNode mul(DataNode a, DataNode b)
    Element-wise operation: a///b.
    Definition: api.cpp:110
    +
    Definition: coord.hpp:18
    +
    Tangent every element.
    Definition: opcode.hpp:35
    +
    Definition: opmap.hpp:23
    +
    void fatal(std::string msg)
    Fatal using global logger.
    +
    Definition: opcode.hpp:62
    +
    DataNode rand_binom(DataNode ntrials, DataNode prob)
    Generate random numbers according to std::binomial_distribution(a, b)
    Definition: api.cpp:201
    +
    Definition: dtype.hpp:27
    +
    std::string nametype(DTYPE type)
    Return the string name of input DTYPE.
    +
    Definition: opcode.hpp:55
    +
    DataNode gt(DataNode a, DataNode b)
    Element-wise operation: a > b.
    Definition: api.cpp:163
    +
    DataNode rand_uniform(DataNode lower, DataNode upper)
    Generate random numbers according to std::uniform_distributon(a, b)
    Definition: api.cpp:210
    +
    DataNode sub(DataNode a, DataNode b)
    Element-wise operation: a - b.
    Definition: api.cpp:101
    +
    std::shared_ptr< char > data_
    Smartpointer to a block of untyped data.
    Definition: data.hpp:30
    +
    Definition: opcode.hpp:51
    +
    Definition: api.hpp:14
    +
    DataNode round(DataNode arg)
    Element-wise round operation.
    Definition: api.cpp:63
    +
    std::string opname(OPCODE opcode)
    Return the string name of input OPCODE.
    +
    static void exec(GenericData &out, DataArgsT &data)
    Definition: opmap.hpp:35
    +
    Exponent every element.
    Definition: opcode.hpp:37
    +
    Negate the sign of every element.
    Definition: opcode.hpp:29
    +
    DataNode pow(DataNode a, DataNode b)
    Element-wise operation: base ^ exponent.
    Definition: api.cpp:75
    +
    DataNode abs(DataNode arg)
    Element-wise absolute operation.
    Definition: api.cpp:15
    +
    DataNode sin(DataNode arg)
    Element-wise sine operation.
    Definition: api.cpp:27
    +
    Definition: dtype.hpp:26
    +
    #define UNARY(OP, METHOD)
    Definition: opmap.hpp:45
    +
    DataNode min(std::vector< DataNode > args)
    Get Element-wise minimum of args.
    Definition: api.cpp:172
    +
    Invalid data type.
    Definition: dtype.hpp:21
    +
    DTYPE dtype_
    Data type of data_.
    Definition: data.hpp:36
    +
    #define NARY(OP, METHOD)
    Definition: opmap.hpp:96
    +
    DataNode log(DataNode arg)
    Element-wise natural log operation.
    Definition: api.cpp:51
    +
    Cosine every element.
    Definition: opcode.hpp:33
    +
    Definition: dtype.hpp:25
    +
    void exec(GenericData &out, DataArgsT &data)
    Definition: opmap.hpp:112
    +
    + + + + diff --git a/docs/pages.html b/docs/pages.html new file mode 100644 index 000000000..00770e664 --- /dev/null +++ b/docs/pages.html @@ -0,0 +1,83 @@ + + + + + + + +Tenncor: Related Pages + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    +
    + + + + diff --git a/docs/pbm_2test_2main_8cpp.html b/docs/pbm_2test_2main_8cpp.html new file mode 100644 index 000000000..7fbcccb08 --- /dev/null +++ b/docs/pbm_2test_2main_8cpp.html @@ -0,0 +1,119 @@ + + + + + + + +Tenncor: pbm/test/main.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    main.cpp File Reference
    +
    +
    +
    #include "gtest/gtest.h"
    +#include "pbm/graph.pb.h"
    +
    + + + +

    +Functions

    int main (int argc, char **argv)
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int main (int argc,
    char ** argv 
    )
    +
    + +
    +
    +
    + + + + diff --git a/docs/search/all_0.html b/docs/search/all_0.html new file mode 100644 index 000000000..5125b9400 --- /dev/null +++ b/docs/search/all_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_0.js b/docs/search/all_0.js new file mode 100644 index 000000000..c01e07b41 --- /dev/null +++ b/docs/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5fbad_5fop',['_BAD_OP',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a16467a09b585036ad3816697c849695a',1,'ade']]] +]; diff --git a/docs/search/all_1.html b/docs/search/all_1.html new file mode 100644 index 000000000..b8ff87111 --- /dev/null +++ b/docs/search/all_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_1.js b/docs/search/all_1.js new file mode 100644 index 000000000..9f69d78a4 --- /dev/null +++ b/docs/search/all_1.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['abs',['ABS',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773adfab6b2b630b060edd8fcc995f62297b',1,'ade::ABS()'],['../namespacello.html#a52a0fbefad25868ae1303adc10099747',1,'llo::abs(DataNode arg)'],['../namespacello.html#af3ffcdedba093a42da3e937e945aba30',1,'llo::abs(T *out, VecRef< T > in)']]], + ['abs_3c_20uint16_5ft_20_3e',['abs< uint16_t >',['../namespacello.html#a3225c21e361f4174c5cb7b0b7517cd35',1,'llo']]], + ['abs_3c_20uint32_5ft_20_3e',['abs< uint32_t >',['../namespacello.html#a3a9fcb6f5c2acaf81fe507d88f4d1545',1,'llo']]], + ['abs_3c_20uint64_5ft_20_3e',['abs< uint64_t >',['../namespacello.html#a6cc677bc649f2d5d28b13ee527a84623',1,'llo']]], + ['abs_3c_20uint8_5ft_20_3e',['abs< uint8_t >',['../namespacello.html#a4eccdc385167ad9aa81ea1f64df7b236',1,'llo']]], + ['accept',['accept',['../structade_1_1i_functor.html#a66d87d6447e6d7336e2c118cc1e18a55',1,'ade::iFunctor::accept()'],['../structade_1_1i_tensor.html#aa7a69b3831cc43a6d173c08848662b24',1,'ade::iTensor::accept()'],['../structade_1_1_tensor.html#ae994443392939b32cf9ec98e91f7638a',1,'ade::Tensor::accept()']]], + ['access',['access',['../structade_1_1i_coord_map.html#a180b66d9db3782b17d7507bfe6967236',1,'ade::iCoordMap::access()'],['../structade_1_1_coord_map.html#aa0509214368694f866addb0df5df784a',1,'ade::CoordMap::access()']]], + ['add',['ADD',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a9b4c1fab2f78aa34195cd1867e009ce3',1,'ade::ADD()'],['../namespacello.html#af0313753acb9bfd2ece42d468b9f41f9',1,'llo::add(DataNode a, DataNode b)'],['../namespacello.html#a891db6a8dd93b21745773a877d795044',1,'llo::add(T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)']]], + ['ade',['ade',['../namespaceade.html',1,'']]], + ['ade_5fcoord_5fhpp',['ADE_COORD_HPP',['../coord_8hpp.html#af0fa2323b446db07c46b6318a8ac10d0',1,'coord.hpp']]], + ['ade_5ffunctor_5fhpp',['ADE_FUNCTOR_HPP',['../functor_8hpp.html#a646c8c5e369c97d29823863ca56374b0',1,'functor.hpp']]], + ['api',['API',['../struct_a_p_i.html',1,'']]], + ['api_2ecpp',['api.cpp',['../api_8cpp.html',1,'']]], + ['api_2ehpp',['api.hpp',['../api_8hpp.html',1,'']]], + ['args_5f',['args_',['../structade_1_1_functor.html#a2c261d16440fc9d99a95a7a95c0573ce',1,'ade::Functor']]], + ['argst',['ArgsT',['../namespaceade.html#af28393f7365a2b01ebee3cb9b4a5ec11',1,'ade']]], + ['arr_5fbegin',['arr_begin',['../namespaceade.html#a2788b3e7b5d64dcb2b02c9ec53e1a6a1',1,'ade']]], + ['arr_5fdelim',['arr_delim',['../namespaceade.html#aa157a23f2c70a246562811220c5a00ed',1,'ade']]], + ['arr_5fend',['arr_end',['../namespaceade.html#ad0fd9e5ccff6669129f50e104c22cb9a',1,'ade']]], + ['at',['at',['../structade_1_1_shape.html#ab75dac360d94e88c3215b9dcf1e29752',1,'ade::Shape']]], + ['ade_20_28automatic_20differentiation_20engine_29',['ADE (Automatic Differentiation Engine)',['../md_ade__r_e_a_d_m_e__a_d_e.html',1,'']]] +]; diff --git a/docs/search/all_10.html b/docs/search/all_10.html new file mode 100644 index 000000000..50bc449e1 --- /dev/null +++ b/docs/search/all_10.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_10.js b/docs/search/all_10.js new file mode 100644 index 000000000..9c46ca85e --- /dev/null +++ b/docs/search/all_10.js @@ -0,0 +1,35 @@ +var searchData= +[ + ['tenncor',['Tenncor',['../index.html',1,'']]], + ['tan',['tan',['../namespacello.html#a9b4eea566390c8d533918d460eb7c98f',1,'llo::tan(DataNode arg)'],['../namespacello.html#ab2aa244b48aa8b6ebf724a554002c3d0',1,'llo::tan(T *out, VecRef< T > in)'],['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a67b3abdb5169099d1a90b1852eece417',1,'ade::TAN()']]], + ['target_5f',['target_',['../structade_1_1_path_finder.html#ade3a284e63e52e2cf2ea395e9a512207',1,'ade::PathFinder']]], + ['teardown',['TearDown',['../struct_c_o_o_r_d.html#a4d0ce8968404b9026081a71880b752a1',1,'COORD::TearDown()'],['../struct_s_h_a_p_e.html#a431c4086d62fbeefd75c6ba15ab0234f',1,'SHAPE::TearDown()'],['../struct_l_o_g.html#a010bcb9309098fe9c0496f8e5ab002f0',1,'LOG::TearDown()'],['../struct_a_p_i.html#a11d8384d704cec34cfb08aad9742472c',1,'API::TearDown()'],['../struct_d_t_y_p_e.html#a328f14706c9d297aa59d885a2dc40f86',1,'DTYPE::TearDown()'],['../struct_n_o_d_e.html#a19335d31d29d44019fe67655b97ce1f8',1,'NODE::TearDown()']]], + ['tensor',['Tensor',['../structade_1_1_tensor.html',1,'ade::Tensor'],['../struct_t_e_n_s_o_r.html',1,'TENSOR'],['../structade_1_1_tensor.html#ae6bba462f252fd2c8c4d50cca35f0b93',1,'ade::Tensor::Tensor()']]], + ['tensor_2ecpp',['tensor.cpp',['../tensor_8cpp.html',1,'']]], + ['tensor_2ehpp',['tensor.hpp',['../tensor_8hpp.html',1,'']]], + ['tensor_5f',['tensor_',['../structllo_1_1_data_node.html#a91515954ca80b4dcc92be39987e78065',1,'llo::DataNode::tensor_()'],['../structllo_1_1_source.html#aa818c23eb6b31cc0baa1d3275a862e0e',1,'llo::Source::tensor_()']]], + ['tensorptr',['Tensorptr',['../structade_1_1_tensorptr.html',1,'ade::Tensorptr'],['../structade_1_1_tensorptr.html#a0a689a5fc65e812539dce83d064912c0',1,'ade::Tensorptr::Tensorptr(iTensor &tens)'],['../structade_1_1_tensorptr.html#a98822824f7bfea19f31f38f47de18401',1,'ade::Tensorptr::Tensorptr(iTensor *tens)'],['../structade_1_1_tensorptr.html#ad3d85def7b088f5063c9fa59650d7071',1,'ade::Tensorptr::Tensorptr(std::shared_ptr< iTensor > tens)']]], + ['test',['TEST',['../test__string_8cpp.html#abab0266d1276755176bb76ecf27368a1',1,'TEST(STREAM, StringFmt): test_string.cpp'],['../test__string_8cpp.html#a7ddec4da6a918781d3cf67e48252dfa2',1,'TEST(STREAM, GenericFmt): test_string.cpp'],['../test__string_8cpp.html#a3ed15a36b22407a7a190f0df64048f95',1,'TEST(STREAM, Iterators): test_string.cpp'],['../test__string_8cpp.html#a2adecd32e3d9f3127d365f2891d635ff',1,'TEST(STRING, Iterators): test_string.cpp'],['../test__string_8cpp.html#ae5d0866efe130b2fb8c3274e6e0a8b63',1,'TEST(STRING, Sprintf): test_string.cpp'],['../test__grader_8cpp.html#aaa8802c17085c3952c5c05fd063a0d60',1,'TEST(GRADER, COPY): test_grader.cpp'],['../test__grader_8cpp.html#aad46f9ff442df5c40616a94abecb4586',1,'TEST(GRADER, ABS): test_grader.cpp'],['../test__grader_8cpp.html#ae2f5606d0023f487474c2cac037e73c8',1,'TEST(GRADER, NEG): test_grader.cpp'],['../test__grader_8cpp.html#af2e1669ae0f03be9f53574b3ac78e57a',1,'TEST(GRADER, SIN): test_grader.cpp'],['../test__grader_8cpp.html#a06b58580a8cc73185f40a1b3e4f32725',1,'TEST(GRADER, COS): test_grader.cpp'],['../test__grader_8cpp.html#ae01ecda925f18e3d2475162d9372af7b',1,'TEST(GRADER, TAN): test_grader.cpp'],['../test__grader_8cpp.html#a950d8fc3ca6c10a819932f098a160ff4',1,'TEST(GRADER, EXP): test_grader.cpp'],['../test__grader_8cpp.html#ab524c57c820f4f4b3b0962a2b21f89a7',1,'TEST(GRADER, LOG): test_grader.cpp'],['../test__grader_8cpp.html#a214cf5b289b6d028a203236aae037a85',1,'TEST(GRADER, SQRT): test_grader.cpp'],['../test__grader_8cpp.html#a078c34a9d35f5015edaf94d37edc846b',1,'TEST(GRADER, ROUND): test_grader.cpp'],['../test__grader_8cpp.html#a698ef2b53037577246143879803a513a',1,'TEST(GRADER, POW): test_grader.cpp'],['../test__grader_8cpp.html#a42d137ae0bc9936c9a3d7fe0c1b90ba1',1,'TEST(GRADER, ADD): test_grader.cpp'],['../test__grader_8cpp.html#a94ffc126992d7b674cd347f9edb64a25',1,'TEST(GRADER, SUB): test_grader.cpp'],['../test__grader_8cpp.html#af3be746e719ca7e0169a164eb28b50fd',1,'TEST(GRADER, MUL): test_grader.cpp'],['../test__grader_8cpp.html#ad982a4311e0a9632e2cf27f638b5db10',1,'TEST(GRADER, DIV): test_grader.cpp'],['../test__grader_8cpp.html#ad467d76b8a74bdc6f4e774057bfbd57a',1,'TEST(GRADER, EQ): test_grader.cpp'],['../test__grader_8cpp.html#a8f4859973079f13c6668102027bc0baf',1,'TEST(GRADER, NE): test_grader.cpp'],['../test__grader_8cpp.html#ab9c15b0e6ba627a557de0da7e044aefc',1,'TEST(GRADER, LT): test_grader.cpp'],['../test__grader_8cpp.html#aa86e7dd966da9cfe4780a3ff7c3f90ec',1,'TEST(GRADER, GT): test_grader.cpp'],['../test__grader_8cpp.html#a25f9f599e0165b5504e21d15b07c6f80',1,'TEST(GRADER, RAND_BINO): test_grader.cpp'],['../test__grader_8cpp.html#a2c439e35e1ee8f0353c784ba63260da0',1,'TEST(GRADER, RAND_UNIF): test_grader.cpp'],['../test__grader_8cpp.html#a3961dda2dba037ea753ef05f2b04db94',1,'TEST(GRADER, RAND_NORM): test_grader.cpp'],['../test__load_8cpp.html#a1ac146dbb8f838f9030e763c84c8b8e4',1,'TEST(LOAD, LoadGraph): test_load.cpp'],['../test__save_8cpp.html#a85764cb03807e406f7b69ef78eb904d2',1,'TEST(SAVE, SaveGraph): test_save.cpp']]], + ['test_5fapi_2ecpp',['test_api.cpp',['../test__api_8cpp.html',1,'']]], + ['test_5fcoord_2ecpp',['test_coord.cpp',['../test__coord_8cpp.html',1,'']]], + ['test_5fdtype_2ecpp',['test_dtype.cpp',['../test__dtype_8cpp.html',1,'']]], + ['test_5ff',['TEST_F',['../test__coord_8cpp.html#a14529b90737598b8ae25224e080b426e',1,'TEST_F(COORD, Inverse): test_coord.cpp'],['../test__coord_8cpp.html#aba12fd55610ec84812e82d3d17c33f29',1,'TEST_F(COORD, Identity): test_coord.cpp'],['../test__functor_8cpp.html#a3dd9cfcf63804f6b9615545155c886b2',1,'TEST_F(FUNCTOR, Childrens): test_functor.cpp'],['../test__functor_8cpp.html#afbf9dde2ff9d079b97d61c47b0a9a7de',1,'TEST_F(FUNCTOR, ToString): test_functor.cpp'],['../test__functor_8cpp.html#a8bb6cd552f763abbe52fa416ec815abd',1,'TEST_F(FUNCTOR, OpNaming): test_functor.cpp'],['../test__shape_8cpp.html#abe63988ecd263f490f0ea1df413b7998',1,'TEST_F(SHAPE, Init): test_shape.cpp'],['../test__shape_8cpp.html#ab44c00719edd7b8270fd8782c5e93ffe',1,'TEST_F(SHAPE, VecAssign): test_shape.cpp'],['../test__shape_8cpp.html#a0cb1db2156771a3a6f37f32df05f317c',1,'TEST_F(SHAPE, Moves): test_shape.cpp'],['../test__shape_8cpp.html#a887e46683d9cc26322666656ba7f0f64',1,'TEST_F(SHAPE, NElems): test_shape.cpp'],['../test__shape_8cpp.html#ac89ec92444eff33564d28b3f2d575ece',1,'TEST_F(SHAPE, Compatible): test_shape.cpp'],['../test__shape_8cpp.html#a3b19dcc494d14f426d5edb13cf544ade',1,'TEST_F(SHAPE, Coordinates): test_shape.cpp'],['../test__shape_8cpp.html#ae3d35a83498ac8c8984a7bb8ff023e41',1,'TEST_F(SHAPE, ToString): test_shape.cpp'],['../test__tensor_8cpp.html#a7144711a0887c030da37b00d1748d185',1,'TEST_F(TENSOR, Gradient): test_tensor.cpp'],['../test__tensor_8cpp.html#abe6c099e0ef764491ffcde881c6c7c84',1,'TEST_F(TENSOR, ToString): test_tensor.cpp'],['../test__log_8cpp.html#a5760a0b1020470356b71ae48d7c152dd',1,'TEST_F(LOG, Default): test_log.cpp'],['../test__log_8cpp.html#a7101900df36fa2aec6e6a36a0cfb1366',1,'TEST_F(LOG, Warn): test_log.cpp'],['../test__log_8cpp.html#a2beca8dd51b7b63e7bd576e8c4773e70',1,'TEST_F(LOG, WarnFmt): test_log.cpp'],['../test__log_8cpp.html#a4cfe03fd204e9d237821ed80629fd1b8',1,'TEST_F(LOG, Error): test_log.cpp'],['../test__log_8cpp.html#adb3100e6a07584a8adffc7b51992bed5',1,'TEST_F(LOG, ErrorFmt): test_log.cpp'],['../test__log_8cpp.html#a426862788c8b85820f2f137ee5bb4957',1,'TEST_F(LOG, Fatal): test_log.cpp'],['../test__log_8cpp.html#ad86f967b731f206b5a38348095dc1be2',1,'TEST_F(LOG, FatalFmt): test_log.cpp'],['../test__api_8cpp.html#a461c984a6247f220fde82579b8fab468',1,'TEST_F(API, Abs): test_api.cpp'],['../test__api_8cpp.html#a48a67dcd99184f9c5451fbc27b18439b',1,'TEST_F(API, Neg): test_api.cpp'],['../test__api_8cpp.html#a3a340d7c7c92253cbeb307fd49ebda30',1,'TEST_F(API, Sin): test_api.cpp'],['../test__api_8cpp.html#a21109270c4c95ad524d5d86392b7cf8b',1,'TEST_F(API, Cos): test_api.cpp'],['../test__api_8cpp.html#a6058800160c6bdedfb46271934bca012',1,'TEST_F(API, Tan): test_api.cpp'],['../test__api_8cpp.html#ad4aac26090d20c25bf2302b06fca68c0',1,'TEST_F(API, Exp): test_api.cpp'],['../test__api_8cpp.html#ae44ed8d3c782a473c5d7640a83981aa0',1,'TEST_F(API, Log): test_api.cpp'],['../test__api_8cpp.html#a71aaae207128ed5b63e9ea355bdabe04',1,'TEST_F(API, Sqrt): test_api.cpp'],['../test__api_8cpp.html#ae281bca03267474c3d95e27680cbd379',1,'TEST_F(API, Round): test_api.cpp'],['../test__api_8cpp.html#a61d9bf2c1a58f81bbdf917b0e88e33dc',1,'TEST_F(API, Flip): test_api.cpp'],['../test__api_8cpp.html#abe9dfec523d97cf990782d316987e5ab',1,'TEST_F(API, Pow): test_api.cpp'],['../test__api_8cpp.html#a945d667b859ceb5f4a9a8abba86a625e',1,'TEST_F(API, Add): test_api.cpp'],['../test__api_8cpp.html#a7fc6fbb4349c809aeba735400c12f471',1,'TEST_F(API, Sub): test_api.cpp'],['../test__api_8cpp.html#a5dd589b167f1105081003f4ccd4f61c6',1,'TEST_F(API, Mul): test_api.cpp'],['../test__api_8cpp.html#a4dbd00e9f8783b52e2202e5834d53be5',1,'TEST_F(API, Div): test_api.cpp'],['../test__api_8cpp.html#a33afece09ea0b40fe91dfc50d4d8d235',1,'TEST_F(API, Min): test_api.cpp'],['../test__api_8cpp.html#ab6098e32e19efe3e38b2f0b10851dcd5',1,'TEST_F(API, Max): test_api.cpp'],['../test__api_8cpp.html#a606bfa4f0a176e06aea72e5c29831bf4',1,'TEST_F(API, Eq): test_api.cpp'],['../test__api_8cpp.html#accaaea6b56c31c276b32d9bb4df3a9b3',1,'TEST_F(API, Neq): test_api.cpp'],['../test__api_8cpp.html#ae902852811aba465879ba6c922d8e64e',1,'TEST_F(API, Lt): test_api.cpp'],['../test__api_8cpp.html#a3570e66ac5db522f59c4ef79366f3244',1,'TEST_F(API, Gt): test_api.cpp'],['../test__api_8cpp.html#aa8d49738c4426156768cee274b042cd5',1,'TEST_F(API, NElems): test_api.cpp'],['../test__api_8cpp.html#a8cdf739fb5856ddf4f6650d72eedc515',1,'TEST_F(API, NDims): test_api.cpp'],['../test__api_8cpp.html#a6469a9d8a5433b267b559d00a05fe2c8',1,'TEST_F(API, Rmax): test_api.cpp'],['../test__api_8cpp.html#a2bbd7afa5da39c828741e81fd17f1ba4',1,'TEST_F(API, Rsum): test_api.cpp'],['../test__api_8cpp.html#a7da937909092b7a9676e80813e1a0779',1,'TEST_F(API, Matmul2d): test_api.cpp'],['../test__api_8cpp.html#ae05f8d6eb95c4f4992fbf3228f7ffe70',1,'TEST_F(API, Permute): test_api.cpp'],['../test__api_8cpp.html#ab7aa36a76311f19227ae781092fde71f',1,'TEST_F(API, Extend): test_api.cpp'],['../test__dtype_8cpp.html#a85553be309a66da146efc03cd3e3ca44',1,'TEST_F(DTYPE, DataConvert): test_dtype.cpp'],['../test__dtype_8cpp.html#ae27eeac898300abf76d182dc01594594',1,'TEST_F(DTYPE, GetType): test_dtype.cpp'],['../test__dtype_8cpp.html#a6b66e5d2d41c6de27ce260fdd169d3d1',1,'TEST_F(DTYPE, TypeSize): test_dtype.cpp'],['../test__dtype_8cpp.html#a7d2ffd71a1ff5b666ca266ec442f9039',1,'TEST_F(DTYPE, TypeName): test_dtype.cpp'],['../test__node_8cpp.html#a34a413530a870bf73ca80e59b72ab26c',1,'TEST_F(NODE, MismatchSource): test_node.cpp'],['../test__node_8cpp.html#a77d8520509d739901f84ad7ad0a79f35',1,'TEST_F(NODE, SourceRetype): test_node.cpp'],['../test__node_8cpp.html#a809a08201dc7e16ac29e2c094087999d',1,'TEST_F(NODE, PlaceHolder): test_node.cpp'],['../llo_2test_2regress_2main_8cpp.html#af7fab4a34653ee432d2669b3f5b19471',1,'TEST_F(REGRESS, Abs): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a789e355f1626c6c1413937d1967ce448',1,'TEST_F(REGRESS, Neg): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a8b21bd0c3511c163d9ce264f431c0c48',1,'TEST_F(REGRESS, Sin): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a08f7e28a807ecc8a71469bbf027c8e11',1,'TEST_F(REGRESS, Cos): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a55115592c770163ccb6893cb766610d3',1,'TEST_F(REGRESS, Tan): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#ab79026e71d30dee7968b1f9cd6b45eea',1,'TEST_F(REGRESS, Exp): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#ade95973f9f99a7a28d19e8ebcf309bff',1,'TEST_F(REGRESS, Log): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a7f7e577da4734758709d0ca63818315a',1,'TEST_F(REGRESS, Sqrt): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a72c2195916358d35226437116567cb08',1,'TEST_F(REGRESS, Pow): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#acf49615c6711c0602e8f504939a8c9f7',1,'TEST_F(REGRESS, Add): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#ad096fe14a01c03fc472fd70f06bd7095',1,'TEST_F(REGRESS, Sub): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a8816b2b81a1b2d3726135f81b5d705de',1,'TEST_F(REGRESS, Mul): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a9a8dc4aa89c314c6e81fdf4acddb8f09',1,'TEST_F(REGRESS, Div): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#add7169a00f0e99cf8dee272805a974ac',1,'TEST_F(REGRESS, Matmul): main.cpp']]], + ['test_5ffunctor_2ecpp',['test_functor.cpp',['../test__functor_8cpp.html',1,'']]], + ['test_5fgrader_2ecpp',['test_grader.cpp',['../test__grader_8cpp.html',1,'']]], + ['test_5fload_2ecpp',['test_load.cpp',['../test__load_8cpp.html',1,'']]], + ['test_5flog_2ecpp',['test_log.cpp',['../test__log_8cpp.html',1,'']]], + ['test_5fnode_2ecpp',['test_node.cpp',['../test__node_8cpp.html',1,'']]], + ['test_5fsave_2ecpp',['test_save.cpp',['../test__save_8cpp.html',1,'']]], + ['test_5fshape_2ecpp',['test_shape.cpp',['../test__shape_8cpp.html',1,'']]], + ['test_5fstring_2ecpp',['test_string.cpp',['../test__string_8cpp.html',1,'']]], + ['test_5ftensor_2ecpp',['test_tensor.cpp',['../test__tensor_8cpp.html',1,'']]], + ['testdir',['testdir',['../test__grader_8cpp.html#a22a28dea1580362dcf348edf48060f93',1,'testdir(): test_grader.cpp'],['../test__load_8cpp.html#a22a28dea1580362dcf348edf48060f93',1,'testdir(): test_load.cpp'],['../test__save_8cpp.html#a22a28dea1580362dcf348edf48060f93',1,'testdir(): test_save.cpp']]], + ['testlogger',['TestLogger',['../struct_test_logger.html',1,'']]], + ['tlogger',['tlogger',['../common_8hpp.html#aef40dbefb5f1f67b02b9d7b529c00a31',1,'tlogger(): main.cpp'],['../ade_2test_2log_2main_8cpp.html#aef40dbefb5f1f67b02b9d7b529c00a31',1,'tlogger(): main.cpp']]], + ['to_5fstream',['to_stream',['../namespaceade.html#ac70e520ffea99b4a14accbe6e8c7ba3e',1,'ade::to_stream(std::ostream &s, const char *str)'],['../namespaceade.html#a47a30a98743ceffb8fe53f8417e75c2e',1,'ade::to_stream(std::ostream &s, std::string str)'],['../namespaceade.html#afa6579eb8eb4c8438765fc25cc4fa5cb',1,'ade::to_stream(std::ostream &s, int8_t c)'],['../namespaceade.html#ab40db58a13933043501a4704ca57537b',1,'ade::to_stream(std::ostream &s, uint8_t c)'],['../namespaceade.html#a0a05af351060ccb6f0bc35fe8d4ae1a5',1,'ade::to_stream(std::ostream &s, T val)'],['../namespaceade.html#a807e29a2077151f4237bb494efe16152',1,'ade::to_stream(std::ostream &s, Iterator begin, Iterator end)']]], + ['to_5fstring',['to_string',['../structade_1_1i_coord_map.html#a1303dc91fea22702ba403732ba25227f',1,'ade::iCoordMap::to_string()'],['../structade_1_1_coord_map.html#a35bd718362918b31a1f0f2a86c2a3c3b',1,'ade::CoordMap::to_string()'],['../structade_1_1_functor.html#a4503e570f95a289825384be36689be9a',1,'ade::Functor::to_string()'],['../structade_1_1_shape.html#a92348dfc2c555cae7d1d42a48f59bd6d',1,'ade::Shape::to_string()'],['../structade_1_1i_tensor.html#a01138fc6bce780fcd4b4e495ca050fce',1,'ade::iTensor::to_string()'],['../structade_1_1_tensor.html#ac589897b8d4294ab3d272c1600bd4064',1,'ade::Tensor::to_string()'],['../namespaceade.html#a1d72ab33ed6956796fabebb356dabe43',1,'ade::to_string(T arg)'],['../namespaceade.html#ac98621990f6185b80c4476d07d5c8e11',1,'ade::to_string(Iterator begin, Iterator end)'],['../namespaceade.html#adf0ae4c17a6835d771a3e8e1502f9ad6',1,'ade::to_string(const MatrixT &mat)']]], + ['traveler_2ehpp',['traveler.hpp',['../traveler_8hpp.html',1,'']]], + ['tree_5feq',['TREE_EQ',['../test__grader_8cpp.html#a0cba1d9d20f96f84c9189c047ae75086',1,'test_grader.cpp']]], + ['trim',['trim',['../test__grader_8cpp.html#a6ef734356291c638e5787a6c668192d4',1,'trim(std::string &s): test_grader.cpp'],['../test__load_8cpp.html#a6ef734356291c638e5787a6c668192d4',1,'trim(std::string &s): test_load.cpp']]], + ['type_5fsize',['type_size',['../namespacello.html#a1d2737ee3c869bb60c8dfef549eae3ed',1,'llo']]] +]; diff --git a/docs/search/all_11.html b/docs/search/all_11.html new file mode 100644 index 000000000..b35c8bf0e --- /dev/null +++ b/docs/search/all_11.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_11.js b/docs/search/all_11.js new file mode 100644 index 000000000..d2221595b --- /dev/null +++ b/docs/search/all_11.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['uint16',['UINT16',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79aa08029bdbcc184c577f70541a340f7da',1,'llo']]], + ['uint32',['UINT32',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a63a8201a57e6374df7de777bb94bf854',1,'llo']]], + ['uint64',['UINT64',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79aa1d5035a713da797ece7e9ea5c41ae33',1,'llo']]], + ['uint8',['UINT8',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a214af4113e91e39af7b2754922913b7f',1,'llo']]], + ['unary',['UNARY',['../opmap_8hpp.html#af8ab03742db276a0f267133610820fd9',1,'UNARY(): opmap.hpp'],['../namespacello.html#a74cca98f42f830d2f5c6cffac9741949',1,'llo::unary()']]], + ['unary_5felementary',['unary_elementary',['../test__api_8cpp.html#aab3ca48935be2000354a511ba726fb3d',1,'test_api.cpp']]], + ['unary_5fgeneric',['unary_generic',['../test__api_8cpp.html#a7effea8de7ba25a324ab55ae9adc2493',1,'test_api.cpp']]], + ['unary_5fop',['unary_op',['../llo_2test_2regress_2main_8cpp.html#ac87f4b052708b49698d283e5780b8541',1,'main.cpp']]], + ['unarydblf',['UnaryDblF',['../test__api_8cpp.html#af863536444756eb5bb525470a3d368c6',1,'test_api.cpp']]], + ['unaryopf',['UnaryOpF',['../test__api_8cpp.html#a802c759275175c3bb135d502defdba6d',1,'test_api.cpp']]], + ['unpack_5fsource',['UNPACK_SOURCE',['../source_8cpp.html#ab5bda89ebf78d0e308a4886a4abc3d82',1,'source.cpp']]] +]; diff --git a/docs/search/all_12.html b/docs/search/all_12.html new file mode 100644 index 000000000..fd265245b --- /dev/null +++ b/docs/search/all_12.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_12.js b/docs/search/all_12.js new file mode 100644 index 000000000..174bb3def --- /dev/null +++ b/docs/search/all_12.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['vecref',['VecRef',['../structllo_1_1_vec_ref.html',1,'llo']]], + ['vector_5fassign',['vector_assign',['../structade_1_1_shape.html#ad84123094695df9886c8cc8f76d4d21e',1,'ade::Shape']]], + ['visit',['visit',['../structade_1_1_path_finder.html#abea2f985569ec7769f0ec82281248c7e',1,'ade::PathFinder::visit(Tensor *leaf) override'],['../structade_1_1_path_finder.html#a57a63c9dcad0c13df7af259622c9350b',1,'ade::PathFinder::visit(iFunctor *func) override'],['../structade_1_1i_traveler.html#a61de422a7412edfe9406c0a53a9c2c03',1,'ade::iTraveler::visit(Tensor *leaf)=0'],['../structade_1_1i_traveler.html#a6ae5c7df26de362b580a70928a3096dd',1,'ade::iTraveler::visit(iFunctor *func)=0'],['../structllo_1_1_evaluator.html#a205b9f59926a92f905a5cf59cdc76910',1,'llo::Evaluator::visit(ade::Tensor *leaf) override'],['../structllo_1_1_evaluator.html#a4c26da320010feab705f66f6f760a414',1,'llo::Evaluator::visit(ade::iFunctor *func) override'],['../structllo_1_1_graph_stat.html#a7d34acb63dc939892ddbb59243d8335a',1,'llo::GraphStat::visit(ade::Tensor *leaf) override'],['../structllo_1_1_graph_stat.html#afdb73a1a0a23db4ef8e8e17487613834',1,'llo::GraphStat::visit(ade::iFunctor *func) override']]] +]; diff --git a/docs/search/all_13.html b/docs/search/all_13.html new file mode 100644 index 000000000..04f66e2fe --- /dev/null +++ b/docs/search/all_13.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_13.js b/docs/search/all_13.js new file mode 100644 index 000000000..b45f41c1e --- /dev/null +++ b/docs/search/all_13.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['warn',['warn',['../structade_1_1i_logger.html#a67a4f91050f91844a719ae49169c479e',1,'ade::iLogger::warn()'],['../structade_1_1_def_logger.html#a7b8b85dbdf2fa536556df47f1811b713',1,'ade::DefLogger::warn()'],['../struct_test_logger.html#accc25d91d021c85df7f3d1a5d98ebe16',1,'TestLogger::warn()'],['../namespaceade.html#a947ed7832b3fd461a41b28928e2aebbd',1,'ade::warn()']]], + ['warn_5ftag',['warn_tag',['../namespaceade.html#a880e280affae2d0aa13b096dcf0232b6',1,'ade']]], + ['warnf',['warnf',['../namespaceade.html#ac8c5293665e9489b0ecb83a8b1a9f2c0',1,'ade']]] +]; diff --git a/docs/search/all_14.html b/docs/search/all_14.html new file mode 100644 index 000000000..285f34bd2 --- /dev/null +++ b/docs/search/all_14.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_14.js b/docs/search/all_14.js new file mode 100644 index 000000000..1d80380fb --- /dev/null +++ b/docs/search/all_14.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['zero_5fprune',['zero_prune',['../namespacello.html#a14546b24ce18e593f0c6e9bdf2736296',1,'llo']]] +]; diff --git a/docs/search/all_15.html b/docs/search/all_15.html new file mode 100644 index 000000000..0ed74e012 --- /dev/null +++ b/docs/search/all_15.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_15.js b/docs/search/all_15.js new file mode 100644 index 000000000..7959884a8 --- /dev/null +++ b/docs/search/all_15.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['_7edatanode',['~DataNode',['../structllo_1_1_data_node.html#a1f61ba5ab97be1c02ee8583dc0b6f1f2',1,'llo::DataNode']]], + ['_7eicoordmap',['~iCoordMap',['../structade_1_1i_coord_map.html#a4e8f4d22d68fbf9512f97bfb4d317009',1,'ade::iCoordMap']]], + ['_7eifunctor',['~iFunctor',['../structade_1_1i_functor.html#a9f5aebb693faea7cc5a822ca403f40c0',1,'ade::iFunctor']]], + ['_7eilogger',['~iLogger',['../structade_1_1i_logger.html#a83e0deab12ad9a5ade032c6fb177ab97',1,'ade::iLogger']]], + ['_7eisource',['~iSource',['../structllo_1_1i_source.html#a38da28ad557c2e08df9366441acd3177',1,'llo::iSource']]], + ['_7eitensor',['~iTensor',['../structade_1_1i_tensor.html#a1eb974b967ef2da732ee074e73631342',1,'ade::iTensor']]], + ['_7eitraveler',['~iTraveler',['../structade_1_1i_traveler.html#af8279cb7fbe1363298287f4e2061254a',1,'ade::iTraveler']]], + ['_7etensorptr',['~Tensorptr',['../structade_1_1_tensorptr.html#ad80d90228d477bac5a71ff2cd2f51aa4',1,'ade::Tensorptr']]] +]; diff --git a/docs/search/all_2.html b/docs/search/all_2.html new file mode 100644 index 000000000..2f17735ef --- /dev/null +++ b/docs/search/all_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_2.js b/docs/search/all_2.js new file mode 100644 index 000000000..b913c660c --- /dev/null +++ b/docs/search/all_2.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['backward',['backward',['../structade_1_1i_coord_map.html#ad40fe274c62ad72e920c6496d0951ec1',1,'ade::iCoordMap::backward()'],['../structade_1_1_coord_map.html#af3f34b43814282f682569a1c5c599889',1,'ade::CoordMap::backward()']]], + ['bad',['BAD',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79ac3277e31d922eddc0989f5db69623f31',1,'llo']]], + ['begin',['begin',['../structade_1_1_shape.html#ac5bcad1a815356a3623978f9608abf50',1,'ade::Shape::begin(void)'],['../structade_1_1_shape.html#ad677c4671e1b24bedaf1736bfddc1dac',1,'ade::Shape::begin(void) const']]], + ['binary',['binary',['../namespacello.html#ac4a1076a38873547b0d260db193ebcf3',1,'llo::binary()'],['../opmap_8hpp.html#a403d496dccddc6ca6650fab2a2d457ae',1,'BINARY(): opmap.hpp']]], + ['binary_5felementary',['binary_elementary',['../test__api_8cpp.html#af6d830a1830cf33e5ede7e3934afa326',1,'test_api.cpp']]], + ['binary_5felementary_5fint',['binary_elementary_int',['../test__api_8cpp.html#a4e5d2bfc9883f8338558a112ddc8b31e',1,'test_api.cpp']]], + ['binary_5fop',['binary_op',['../llo_2test_2regress_2main_8cpp.html#a66c7b10899c86913f1f2882ce8809b50',1,'main.cpp']]], + ['binarybwdf',['BinaryBwdF',['../test__api_8cpp.html#a6cb611b7fa6349c0100441a53436355e',1,'test_api.cpp']]], + ['binaryfwdf',['BinaryFwdF',['../test__api_8cpp.html#afc6a67acd6e318317965cb0470942d09',1,'test_api.cpp']]], + ['binaryopf',['BinaryOpF',['../test__api_8cpp.html#ae8b4913dc1af71d011a683f98fad3b6c',1,'test_api.cpp']]], + ['bit_5fnot',['bit_not',['../namespacello.html#a3fdd352e3c757f8bdac73998cbb7ad4e',1,'llo']]], + ['bwd_5f',['bwd_',['../structade_1_1_coord_map.html#aad5c6a9ae3997e1db9dd73cb644bf985',1,'ade::CoordMap']]] +]; diff --git a/docs/search/all_3.html b/docs/search/all_3.html new file mode 100644 index 000000000..a3e6f7dbb --- /dev/null +++ b/docs/search/all_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_3.js b/docs/search/all_3.js new file mode 100644 index 000000000..7c1bc6a1b --- /dev/null +++ b/docs/search/all_3.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['calc_5ffunc_5fargs',['calc_func_args',['../namespacello.html#ad8e6bc2ab4c779ed29586c9ccef37a5d',1,'llo']]], + ['cdimt',['CDimT',['../namespaceade.html#a3d51824d72b7db5898f13557cbb46bfe',1,'ade']]], + ['clip',['clip',['../namespacello.html#a425d01817a20300ff7f78e350f1d37d0',1,'llo']]], + ['common_2ehpp',['common.hpp',['../common_8hpp.html',1,'']]], + ['compatible_5fafter',['compatible_after',['../structade_1_1_shape.html#a486f09d5fd8c99ac078e6ddf58797c96',1,'ade::Shape']]], + ['compatible_5fbefore',['compatible_before',['../structade_1_1_shape.html#ab80adb387453a25c3d22193308a512cf',1,'ade::Shape']]], + ['const_5fiterator',['const_iterator',['../structade_1_1_shape.html#af5d9eb48851f23a0ea928618459da7c7',1,'ade::Shape']]], + ['convert_5fto',['convert_to',['../structllo_1_1_generic_data.html#ac689472ef80809db20ad83f60042dac7',1,'llo::GenericData']]], + ['convolute',['convolute',['../namespacello.html#a9645a3f849dea1f258d1560b9c9a43fd',1,'llo']]], + ['coord',['COORD',['../struct_c_o_o_r_d.html',1,'']]], + ['coord_2ecpp',['coord.cpp',['../coord_8cpp.html',1,'']]], + ['coord_2ehpp',['coord.hpp',['../coord_8hpp.html',1,'']]], + ['coordinate',['coordinate',['../namespaceade.html#a785be8ee10cd4af039c458e057b32263',1,'ade']]], + ['coordmap',['CoordMap',['../structade_1_1_coord_map.html',1,'ade::CoordMap'],['../structade_1_1_coord_map.html#afb5c1dcf8267026e74f1fe3b3997785f',1,'ade::CoordMap::CoordMap(std::function< void(MatrixT)> init)'],['../structade_1_1_coord_map.html#a2d0a0d6d4652a4fae7eb649059e26f78',1,'ade::CoordMap::CoordMap(const MatrixT fwd, const MatrixT bwd)']]], + ['coordptrt',['CoordPtrT',['../namespaceade.html#a0ef5f1cbd91bffedaec8b24004b5597a',1,'ade']]], + ['coordt',['CoordT',['../namespaceade.html#a2abdde771b6a0fd0afdafaed7ab00c48',1,'ade']]], + ['copy',['copy',['../structllo_1_1_source.html#a7dae00390e432d4f37a49b7e33c6e56b',1,'llo::Source::copy()'],['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773abf9aec1aa2d891d7cd8a1673a89cea64',1,'ade::COPY()'],['../namespacello.html#ac25d9e7ad56ef420d9b9b84ef0c4db7b',1,'llo::copy()']]], + ['cos',['COS',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773ab012d188973892aff5f535e0be0fa2e1',1,'ade::COS()'],['../namespacello.html#a7921091f3f204d2cf19614825c65479a',1,'llo::cos(DataNode arg)'],['../namespacello.html#a999fe26a576045e8a45b416b7708c51a',1,'llo::cos(T *out, VecRef< T > in)']]], + ['create_5f2d',['create_2d',['../test__api_8cpp.html#a3e00b669d9f91f8b968d524d8edfff73',1,'test_api.cpp']]], + ['ctx_5f',['ctx_',['../structllo_1_1_evaluator.html#a05118225a96ac85f599b49c9518239c9',1,'llo::Evaluator::ctx_()'],['../structllo_1_1_data_node.html#a28da1646a89edad7e57efddfdcf350d1',1,'llo::DataNode::ctx_()']]] +]; diff --git a/docs/search/all_4.html b/docs/search/all_4.html new file mode 100644 index 000000000..6452295dc --- /dev/null +++ b/docs/search/all_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_4.js b/docs/search/all_4.js new file mode 100644 index 000000000..4469416e6 --- /dev/null +++ b/docs/search/all_4.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['data',['data',['../structllo_1_1_vec_ref.html#aa983a78799dc41a8b51168b14b212d54',1,'llo::VecRef::data()'],['../structllo_1_1i_source.html#a90ea20f6def00bb4522a5c7baf27b8f6',1,'llo::iSource::data()'],['../structllo_1_1_data_node.html#a4772b4e9bd7253d02f5a89e57be1c386',1,'llo::DataNode::data()'],['../structllo_1_1_source.html#a33d7a472b44a4cde6c7d218818f57be1',1,'llo::Source::data()']]], + ['data_2ecpp',['data.cpp',['../data_8cpp.html',1,'']]], + ['data_2ehpp',['data.hpp',['../data_8hpp.html',1,'']]], + ['data_5f',['data_',['../structllo_1_1_generic_data.html#a6f12c56eaeb79cf14b926980a6203da1',1,'llo::GenericData::data_()'],['../structllo_1_1_generic_ref.html#a9d314ae707d61bd500586b25fc34bc76',1,'llo::GenericRef::data_()'],['../structllo_1_1_source.html#a59aacad93562a1b1601259655f707966',1,'llo::Source::data_()']]], + ['dataargst',['DataArgsT',['../namespacello.html#a6ec0ba51bfa245ed21dfe6b84bc995c1',1,'llo']]], + ['datanode',['DataNode',['../structllo_1_1_data_node.html',1,'llo::DataNode'],['../structllo_1_1_data_node.html#afdc532ff71063be67c2114ecc8d121d2',1,'llo::DataNode::DataNode()']]], + ['default_5frange',['default_range',['../test__api_8cpp.html#a5ef6340bc2e388db4b4318435dd76bae',1,'test_api.cpp']]], + ['deflogger',['DefLogger',['../structade_1_1_def_logger.html',1,'ade']]], + ['derive',['derive',['../structllo_1_1_data_node.html#affa0248c9c5c7fa4188d13b4b67c9e06',1,'llo::DataNode::derive(const ade::iTensor *wrt)'],['../structllo_1_1_data_node.html#a5098c8a0184b333b1acdeda02cdee3e2',1,'llo::DataNode::derive(DataNode &wrt)']]], + ['dims_5f',['dims_',['../structade_1_1_shape.html#a0ed417376c158cf66d6803dd88262446',1,'ade::Shape']]], + ['dimt',['DimT',['../namespaceade.html#a127eeea15ccaee9ff162f34393f314c2',1,'ade']]], + ['div',['DIV',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a6cb5637144c6ab897e097348d9456cb5',1,'ade::DIV()'],['../namespacello.html#ab035ae9901aba246c002cc2daee6d9f4',1,'llo::div(DataNode a, DataNode b)'],['../namespacello.html#a9b229ad91f79cdc35b02e9a833e6a7ae',1,'llo::div(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]], + ['double',['DOUBLE',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a35d71cf0301e9015fcf78befaa352c95',1,'llo']]], + ['dtype',['DTYPE',['../struct_d_t_y_p_e.html',1,'DTYPE'],['../namespacello.html#a864d1f98406a21c285a4ea3768804a79',1,'llo::DTYPE()']]], + ['dtype_2ecpp',['dtype.cpp',['../dtype_8cpp.html',1,'']]], + ['dtype_2ehpp',['dtype.hpp',['../dtype_8hpp.html',1,'']]], + ['dtype_5f',['dtype_',['../structllo_1_1_generic_data.html#a48c849e0c1e6a394859094a2e1c23d84',1,'llo::GenericData::dtype_()'],['../structllo_1_1_generic_ref.html#aab703bd680370c62004c94d89500db80',1,'llo::GenericRef::dtype_()'],['../structllo_1_1_evaluator.html#a22584dfbc04d95532eb71cb64c9319e8',1,'llo::Evaluator::dtype_()']]] +]; diff --git a/docs/search/all_5.html b/docs/search/all_5.html new file mode 100644 index 000000000..e59e1d536 --- /dev/null +++ b/docs/search/all_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_5.js b/docs/search/all_5.js new file mode 100644 index 000000000..d4db78083 --- /dev/null +++ b/docs/search/all_5.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['end',['end',['../structade_1_1_shape.html#a85700f185320892b5dde0474c88fd33c',1,'ade::Shape::end(void)'],['../structade_1_1_shape.html#a8df8b0d454942a59441c8adcebdc176a',1,'ade::Shape::end(void) const']]], + ['enginet',['EngineT',['../namespacello.html#a80fc8a112cc3f147a818d53f6045ac0b',1,'llo']]], + ['eq',['eq',['../namespacello.html#aa2d739fa5274447afc312cbf8b08fb69',1,'llo::eq(DataNode a, DataNode b)'],['../namespacello.html#aca5851f201d459bb8cc17c0487697560',1,'llo::eq(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)'],['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a1016f8ef7ae15c5351cea9bec2eebe4e',1,'ade::EQ()']]], + ['err_5ftag',['err_tag',['../namespaceade.html#aef738ac0191330e6ce356cf476bde3d1',1,'ade']]], + ['error',['error',['../structade_1_1i_logger.html#a8ed2bc690b40832e873f7458e69dcf6b',1,'ade::iLogger::error()'],['../structade_1_1_def_logger.html#a5a30f80d76f4690733221d0da91ff3f2',1,'ade::DefLogger::error()'],['../struct_test_logger.html#a251edd0536f34a74c69f3cbecc1f022f',1,'TestLogger::error()'],['../namespaceade.html#aceb07f5c4cd3b4b950d5413f37940008',1,'ade::error()']]], + ['errorf',['errorf',['../namespaceade.html#ae5984b9b87d8b61be95b9b8b7993619c',1,'ade']]], + ['eval_2ecpp',['eval.cpp',['../eval_8cpp.html',1,'']]], + ['eval_2ehpp',['eval.hpp',['../eval_8hpp.html',1,'']]], + ['evalctx',['EvalCtx',['../structllo_1_1_eval_ctx.html',1,'llo::EvalCtx'],['../structllo_1_1_eval_ctx.html#a61e246ee388a79aac89dba080f615584',1,'llo::EvalCtx::EvalCtx(void)=default'],['../structllo_1_1_eval_ctx.html#aeae11f0561b0526251c2bb14abcb065e',1,'llo::EvalCtx::EvalCtx(ade::iTensor *srckey, std::shared_ptr< iSource > &srcval)'],['../structllo_1_1_eval_ctx.html#adce7cb30344dceeb52c3a5e8336e2e58',1,'llo::EvalCtx::EvalCtx(std::vector< const EvalCtx *> contexas)']]], + ['evaluator',['Evaluator',['../structllo_1_1_evaluator.html',1,'llo::Evaluator'],['../structllo_1_1_evaluator.html#afdedeffc8cc66b6afce2bc4b8e3804b2',1,'llo::Evaluator::Evaluator()']]], + ['exec',['exec',['../structllo_1_1_executer.html#a5a9b22b4775b26785f566ea034e57ae3',1,'llo::Executer::exec()'],['../structllo_1_1_executer_3_01ade_1_1_c_o_p_y_00_01_t_01_4.html#a97a6a95f2c04f521a9f3453f5cfef27c',1,'llo::Executer< ade::COPY, T >::exec()'],['../structllo_1_1_executer_3_01ade_1_1_r_a_n_d___b_i_n_o_00_01_t_01_4.html#a8fba0209c67769c9f73bb95d92b1a9c6',1,'llo::Executer< ade::RAND_BINO, T >::exec()'],['../namespacello.html#a0cc1d4f37f8f5fda5d4174c25d3f3bee',1,'llo::exec()']]], + ['executer',['Executer',['../structllo_1_1_executer.html',1,'llo']]], + ['executer_3c_20ade_3a_3acopy_2c_20t_20_3e',['Executer< ade::COPY, T >',['../structllo_1_1_executer_3_01ade_1_1_c_o_p_y_00_01_t_01_4.html',1,'llo']]], + ['executer_3c_20ade_3a_3arand_5fbino_2c_20t_20_3e',['Executer< ade::RAND_BINO, T >',['../structllo_1_1_executer_3_01ade_1_1_r_a_n_d___b_i_n_o_00_01_t_01_4.html',1,'llo']]], + ['exp',['EXP',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a355d60c052f136fad52743771ca684ff',1,'ade::EXP()'],['../namespacello.html#aa1982f8e28ad1c73fca3e182339124f7',1,'llo::exp(DataNode arg)'],['../namespacello.html#aea287e4a457edc851dec192ec953d223',1,'llo::exp(T *out, VecRef< T > in)']]], + ['expect_5fdata_5fapprox',['EXPECT_DATA_APPROX',['../llo_2test_2regress_2main_8cpp.html#ad6fccc93188af1af28b116941ff490ef',1,'main.cpp']]], + ['expect_5fdata_5feq',['EXPECT_DATA_EQ',['../llo_2test_2regress_2main_8cpp.html#aacbf9775c41173e91bb77ece4da7760a',1,'main.cpp']]], + ['extend',['extend',['../namespaceade.html#a2e24a1916ee316af7fb7f14bef651051',1,'ade::extend()'],['../namespacello.html#a47b85e222497ab4a1958fb95b2b47970',1,'llo::extend()']]] +]; diff --git a/docs/search/all_6.html b/docs/search/all_6.html new file mode 100644 index 000000000..f75a754e9 --- /dev/null +++ b/docs/search/all_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_6.js b/docs/search/all_6.js new file mode 100644 index 000000000..eb303adbf --- /dev/null +++ b/docs/search/all_6.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['fatal',['fatal',['../structade_1_1i_logger.html#a0410a8ec51f37b8f742b78ffd30237aa',1,'ade::iLogger::fatal()'],['../structade_1_1_def_logger.html#a40a4bc33563eaa415f1b929640e91157',1,'ade::DefLogger::fatal()'],['../struct_test_logger.html#abd50bacaa15f868caf73ad2195582177',1,'TestLogger::fatal()'],['../namespaceade.html#a905c54ebacff42db4f0d8087ff048a38',1,'ade::fatal()']]], + ['fatalf',['fatalf',['../namespaceade.html#a35150767a59a9ede58773e4f732a5ec5',1,'ade']]], + ['fill_5fone',['fill_one',['../namespacello.html#a1f4abb31b85db683c258eb9fef664dd9',1,'llo']]], + ['flip',['flip',['../namespaceade.html#aaff83dc21ff0e7b15ca19f1ccb726bea',1,'ade::flip()'],['../namespacello.html#a62db30d8fc22051ff8a997a6264ca6b3',1,'llo::flip()']]], + ['float',['FLOAT',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a2f3e44191fe41db12541b2e7ba276dbc',1,'llo']]], + ['forward',['forward',['../structade_1_1i_coord_map.html#abc27f1c79994569812647d63401e208d',1,'ade::iCoordMap::forward()'],['../structade_1_1_coord_map.html#a179711b98f6980bd4e5e8f592fccb0c6',1,'ade::CoordMap::forward()']]], + ['freivald',['freivald',['../test__api_8cpp.html#a670fd79bcde3bae160f6ddd5d8f6d903',1,'test_api.cpp']]], + ['freivald_5fn',['FREIVALD_N',['../test__api_8cpp.html#ac6f5744451d4abbb5df1e089c8d02c31',1,'test_api.cpp']]], + ['funcs_5f',['funcs_',['../structllo_1_1_graph_stat.html#a90f4b21c36dd46a3ec9c681dd0062f98',1,'llo::GraphStat']]], + ['functor',['Functor',['../structade_1_1_functor.html',1,'ade::Functor'],['../struct_f_u_n_c_t_o_r.html',1,'FUNCTOR'],['../structade_1_1_functor.html#a10f8297f3357a778a93b3c57167417a6',1,'ade::Functor::Functor()']]], + ['functor_2ehpp',['functor.hpp',['../functor_8hpp.html',1,'']]], + ['fwd_5f',['fwd_',['../structade_1_1_coord_map.html#ad0bb539056fd8f8acce96109ff41f6da',1,'ade::CoordMap']]] +]; diff --git a/docs/search/all_7.html b/docs/search/all_7.html new file mode 100644 index 000000000..88acd9466 --- /dev/null +++ b/docs/search/all_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_7.js b/docs/search/all_7.js new file mode 100644 index 000000000..3a1a4f060 --- /dev/null +++ b/docs/search/all_7.js @@ -0,0 +1,38 @@ +var searchData= +[ + ['genericdata',['GenericData',['../structllo_1_1_generic_data.html',1,'llo::GenericData'],['../structllo_1_1_generic_data.html#a55a23000ad17dc42ac4d1b7085bea40c',1,'llo::GenericData::GenericData(void)=default'],['../structllo_1_1_generic_data.html#aec83aa8596ec0504c0379f14d33aab5e',1,'llo::GenericData::GenericData(ade::Shape shape, DTYPE dtype)']]], + ['genericref',['GenericRef',['../structllo_1_1_generic_ref.html',1,'llo::GenericRef'],['../structllo_1_1_generic_ref.html#aeecba1404dbeb7670f5173f4cf93c2c6',1,'llo::GenericRef::GenericRef(char *data, ade::Shape shape, DTYPE dtype)'],['../structllo_1_1_generic_ref.html#a68bfd5024e80187e0ca1e620df1be1de',1,'llo::GenericRef::GenericRef(GenericData &generic)']]], + ['get',['get',['../structade_1_1_functor.html#aa2292d9f235bc1ee0615a5ad4c88d8ba',1,'ade::Functor::get()'],['../structade_1_1_tensorptr.html#abe33b19e27214d8995fa92781432c59c',1,'ade::Tensorptr::get()'],['../structade_1_1_tensor.html#a12d316a94c3e1a766afa4df1c74970cf',1,'ade::Tensor::get()'],['../structllo_1_1_source.html#ae6cb2e2a4b948f6920400b8fd1f83782',1,'llo::Source::get()']]], + ['get_5fchildren',['get_children',['../structade_1_1i_functor.html#a074e2f5304eb5d59e585e480d27f8953',1,'ade::iFunctor::get_children()'],['../structade_1_1_functor.html#ab15cc2bb1f427f25b16d78080f5a0572',1,'ade::Functor::get_children()']]], + ['get_5fcode',['get_code',['../structade_1_1i_functor.html#aa709a158c3e4df237b9fad463771487f',1,'ade::iFunctor::get_code()'],['../structade_1_1_functor.html#a7f11bd1d4f4ddc2ccdb7ab283c562b49',1,'ade::Functor::get_code()']]], + ['get_5fengine',['get_engine',['../namespacello.html#a61884656c3aa93b200183b6047ef40dd',1,'llo']]], + ['get_5finput_5fdata',['get_input_data',['../llo_2test_2regress_2main_8cpp.html#a3d50348b16e67f307241135e258c3f0d',1,'main.cpp']]], + ['get_5flogger',['get_logger',['../namespaceade.html#aeac9c84fbc8ce71ca86397d050d0948c',1,'ade']]], + ['get_5foutput_5fdata',['get_output_data',['../llo_2test_2regress_2main_8cpp.html#aef2c45e3061d201c20ec88b8ca9246b3',1,'main.cpp']]], + ['get_5fscalar',['get_scalar',['../structllo_1_1_source.html#a4b41d81c37d0db19be491ae7cd884c3e',1,'llo::Source']]], + ['get_5fshape',['get_shape',['../llo_2test_2regress_2main_8cpp.html#a6f292812a763a0b1470f6cdb4af18542',1,'main.cpp']]], + ['get_5fsrc',['get_src',['../structllo_1_1_data_node.html#a996b653ad205b29ab80922fd1c79337a',1,'llo::DataNode']]], + ['get_5ftype',['get_type',['../namespacello.html#af64d944f20a11333d9ef0ac956f31b86',1,'llo']]], + ['get_5ftype_3c_20double_20_3e',['get_type< double >',['../namespacello.html#aaaf182fb85986a52f70546748dc69cd9',1,'llo']]], + ['get_5ftype_3c_20float_20_3e',['get_type< float >',['../namespacello.html#a3cff688f2e1a47a694e4f6ea1f88d0c1',1,'llo']]], + ['get_5ftype_3c_20int16_5ft_20_3e',['get_type< int16_t >',['../namespacello.html#a98e452f8b40c4ead9e7139863f247696',1,'llo']]], + ['get_5ftype_3c_20int32_5ft_20_3e',['get_type< int32_t >',['../namespacello.html#a017892687a7820248376db67b72e03bd',1,'llo']]], + ['get_5ftype_3c_20int64_5ft_20_3e',['get_type< int64_t >',['../namespacello.html#a9eff1e393986c5739a1b866127b73f22',1,'llo']]], + ['get_5ftype_3c_20int8_5ft_20_3e',['get_type< int8_t >',['../namespacello.html#af4a321e2bf82c2412ba492b756f491ef',1,'llo']]], + ['get_5ftype_3c_20uint16_5ft_20_3e',['get_type< uint16_t >',['../namespacello.html#a63d42c80b0a8b48dfab5ca9ad10fef05',1,'llo']]], + ['get_5ftype_3c_20uint32_5ft_20_3e',['get_type< uint32_t >',['../namespacello.html#a0e80d784e11ec48c23d4f585a28298f2',1,'llo']]], + ['get_5ftype_3c_20uint64_5ft_20_3e',['get_type< uint64_t >',['../namespacello.html#ac7d46386eb33cedc3a2edbf1f592d6f2',1,'llo']]], + ['get_5ftype_3c_20uint8_5ft_20_3e',['get_type< uint8_t >',['../namespacello.html#aa0ff02d900a47981be5534edc4a2c0bb',1,'llo']]], + ['global_5fctx_5f',['global_ctx_',['../structllo_1_1_graph_stat.html#a8e493d11f23bdbf22e037d8ab54655ee',1,'llo::GraphStat']]], + ['grad_5fdeclare',['GRAD_DECLARE',['../grader_8hpp.html#acb2a44ebd475812985843f8903e4f3a6',1,'grader.hpp']]], + ['grader',['grader',['../namespaceade.html#a1f416c166cd10d1f7fd049d9f379be11',1,'ade']]], + ['grader_2ecpp',['grader.cpp',['../grader_8cpp.html',1,'']]], + ['grader_2ehpp',['grader.hpp',['../grader_8hpp.html',1,'']]], + ['gradient',['gradient',['../structade_1_1_functor.html#aa8a91aa5d7298a658d5b15167b8528ec',1,'ade::Functor::gradient()'],['../structade_1_1i_tensor.html#a6ac779f81888c46b40804c9f716eaf10',1,'ade::iTensor::gradient()'],['../structade_1_1_tensor.html#a00463a6a5011279d917bf08c7b45ea2b',1,'ade::Tensor::gradient()']]], + ['gradmap',['gradmap',['../namespaceade.html#a925a1c9fe2f12c3c0138376c1c0b74a3',1,'ade']]], + ['graph_2ecpp',['graph.cpp',['../graph_8cpp.html',1,'']]], + ['graph_2ehpp',['graph.hpp',['../graph_8hpp.html',1,'']]], + ['graphsize_5f',['graphsize_',['../structllo_1_1_graph_stat.html#a6bf0af2bf942d9bfa806edc4306f6213',1,'llo::GraphStat']]], + ['graphstat',['GraphStat',['../structllo_1_1_graph_stat.html',1,'llo::GraphStat'],['../structllo_1_1_graph_stat.html#af796f28c6a30fc143ee8c0708e290fa9',1,'llo::GraphStat::GraphStat()']]], + ['gt',['gt',['../namespacello.html#a3465603256b700c902f23582a9a5f8f1',1,'llo::gt(DataNode a, DataNode b)'],['../namespacello.html#a8ae7b7bbdc2eab5e5eca92ab98914883',1,'llo::gt(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)'],['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773aecc04dea4b702e73eca0ce97a7e3b7cc',1,'ade::GT()']]] +]; diff --git a/docs/search/all_8.html b/docs/search/all_8.html new file mode 100644 index 000000000..b74d5fd80 --- /dev/null +++ b/docs/search/all_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_8.js b/docs/search/all_8.js new file mode 100644 index 000000000..1a93c928e --- /dev/null +++ b/docs/search/all_8.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['icoordmap',['iCoordMap',['../structade_1_1i_coord_map.html',1,'ade']]], + ['identity',['identity',['../namespaceade.html#a8e19aa78dafc96799e95e38b251a9f57',1,'ade']]], + ['ifunctor',['iFunctor',['../structade_1_1i_functor.html',1,'ade']]], + ['ilogger',['iLogger',['../structade_1_1i_logger.html',1,'ade']]], + ['index',['index',['../namespaceade.html#ae4b0a59c967fe9699b5b66de3c8fab49',1,'ade']]], + ['inner',['inner',['../structllo_1_1i_source.html#ad0b1b3594e603b0f1ff19184b5229ec1',1,'llo::iSource::inner()'],['../structllo_1_1_source.html#aca2b1b1aad74573743859329c23ebdd4',1,'llo::Source::inner()']]], + ['int16',['INT16',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a52f44b41480bc31628ad88eabc015515',1,'llo']]], + ['int32',['INT32',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a0a0652b2a4eb65adde478162972a77d2',1,'llo']]], + ['int64',['INT64',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79acd3b41289ed95bf11783680aca7a27e6',1,'llo']]], + ['int8',['INT8',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a12884e53affa638281f7e366a7646548',1,'llo']]], + ['inverse',['inverse',['../namespaceade.html#ad9cbea696e35b2eca835de3a246409d0',1,'ade']]], + ['isource',['iSource',['../structllo_1_1i_source.html',1,'llo']]], + ['itensor',['iTensor',['../structade_1_1i_tensor.html',1,'ade']]], + ['iterator',['iterator',['../structade_1_1_shape.html#a724478494d1b325cc5f16e35d3c72172',1,'ade::Shape']]], + ['itraveler',['iTraveler',['../structade_1_1i_traveler.html',1,'ade']]] +]; diff --git a/docs/search/all_9.html b/docs/search/all_9.html new file mode 100644 index 000000000..95e88dd25 --- /dev/null +++ b/docs/search/all_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_9.js b/docs/search/all_9.js new file mode 100644 index 000000000..fd906f92e --- /dev/null +++ b/docs/search/all_9.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['latest_5ferror_5f',['latest_error_',['../struct_test_logger.html#af97eb348dbf90d477beb2a23063526c8',1,'TestLogger']]], + ['latest_5ffatal_5f',['latest_fatal_',['../struct_test_logger.html#a664a7f4e5b22548f90de016ed812afb4',1,'TestLogger']]], + ['latest_5fwarning_5f',['latest_warning_',['../struct_test_logger.html#ac1e539aa60f1ca70a1a9f8ed4e524dcf',1,'TestLogger']]], + ['leaves_5f',['leaves_',['../structllo_1_1_graph_stat.html#af7721cf0f9c857e03abacd3d49575765',1,'llo::GraphStat']]], + ['llo',['llo',['../namespacello.html',1,'']]], + ['llo_5fapi_5fhpp',['LLO_API_HPP',['../api_8hpp.html#ab268c0e936bd1337da5e031cb5de46d5',1,'api.hpp']]], + ['llo_5fshear_5fhpp',['LLO_SHEAR_HPP',['../shear_8hpp.html#a47c95be1c1a4c6272f144cef3fc5144d',1,'shear.hpp']]], + ['load_5fcoord',['load_coord',['../graph_8cpp.html#a346c9cdaee1257a84dff7dd5efa4fbae',1,'graph.cpp']]], + ['load_5fgraph',['load_graph',['../graph_8hpp.html#ae35ecd49b330c50df22594ad87eb9ad5',1,'load_graph(const tenncor::Graph &in): graph.cpp'],['../graph_8cpp.html#ae35ecd49b330c50df22594ad87eb9ad5',1,'load_graph(const tenncor::Graph &in): graph.cpp']]], + ['load_5fsource',['load_source',['../source_8hpp.html#afa8b9b2d46a75dbb8c1810bea63f6bc9',1,'load_source(const tenncor::Source &source): source.cpp'],['../source_8cpp.html#afa8b9b2d46a75dbb8c1810bea63f6bc9',1,'load_source(const tenncor::Source &source): source.cpp']]], + ['log',['LOG',['../struct_l_o_g.html',1,'LOG'],['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773aeb38f544007d1c5f5c08533ea41b8d92',1,'ade::LOG()'],['../namespacello.html#ae89b1685de2ca1d943ea292d4b4db4b4',1,'llo::log(DataNode arg)'],['../namespacello.html#ab1380d9ae294bf7d8e3d6cef4ef40396',1,'llo::log(T *out, VecRef< T > in)']]], + ['log_2ecpp',['log.cpp',['../log_8cpp.html',1,'']]], + ['log_2ehpp',['log.hpp',['../log_8hpp.html',1,'']]], + ['lt',['lt',['../namespacello.html#ad10eccbdafb491529a3886084e1664ef',1,'llo::lt(DataNode a, DataNode b)'],['../namespacello.html#a37ca02223b4f25f1d4f8c99c74a82619',1,'llo::lt(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)'],['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773ac2146256dad7ef84440a9e36f8af282f',1,'ade::LT()']]], + ['ltrim',['ltrim',['../test__grader_8cpp.html#a47084ee818936eef3c48be492c0e860f',1,'ltrim(std::string &s): test_grader.cpp'],['../test__load_8cpp.html#a47084ee818936eef3c48be492c0e860f',1,'ltrim(std::string &s): test_load.cpp']]], + ['llo_20_28low_2dlevel_20operators_29',['LLO (Low-Level Operators)',['../md_llo__r_e_a_d_m_e__l_l_o.html',1,'']]] +]; diff --git a/docs/search/all_a.html b/docs/search/all_a.html new file mode 100644 index 000000000..3148a8e51 --- /dev/null +++ b/docs/search/all_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_a.js b/docs/search/all_a.js new file mode 100644 index 000000000..2232cbbbe --- /dev/null +++ b/docs/search/all_a.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['main',['main',['../ade_2test_2dynamic_2main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): main.cpp'],['../ade_2test_2log_2main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): main.cpp'],['../ade_2test_2static_2main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): main.cpp'],['../llo_2test_2dynamic_2main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): main.cpp'],['../pbm_2test_2main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): main.cpp']]], + ['main_2ecpp',['main.cpp',['../ade_2test_2dynamic_2main_8cpp.html',1,'(Global Namespace)'],['../ade_2test_2log_2main_8cpp.html',1,'(Global Namespace)'],['../ade_2test_2static_2main_8cpp.html',1,'(Global Namespace)'],['../llo_2test_2dynamic_2main_8cpp.html',1,'(Global Namespace)'],['../llo_2test_2regress_2main_8cpp.html',1,'(Global Namespace)'],['../pbm_2test_2main_8cpp.html',1,'(Global Namespace)']]], + ['make_5fuid',['make_uid',['../graph_8cpp.html#a0880348a71f5d3d25b7fb10fb80086f7',1,'graph.cpp']]], + ['map_5fshape',['map_shape',['../namespaceade.html#a34346ff7bd94cf141c15feb9989c9874',1,'ade']]], + ['mapper',['mapper',['../structllo_1_1_vec_ref.html#abc4190dd3afcff84ca539d1f55ab7c68',1,'llo::VecRef']]], + ['mat_5fdim',['mat_dim',['../namespaceade.html#a5d20bdd43f50367b1d8780c145cfe0f3',1,'ade']]], + ['mat_5fsize',['mat_size',['../namespaceade.html#a2510c0d77a622cfaa58a0865d86ce8d5',1,'ade']]], + ['matmul',['matmul',['../namespacello.html#a852153aa9a698dea603d1a2f04cf10ce',1,'llo']]], + ['matops_2ecpp',['matops.cpp',['../matops_8cpp.html',1,'']]], + ['matops_2ehpp',['matops.hpp',['../matops_8hpp.html',1,'']]], + ['matrixt',['MatrixT',['../namespaceade.html#ae0f6687dd704fcf5c00f841da0509246',1,'ade']]], + ['matvect',['MatVecT',['../test__api_8cpp.html#af816362a86a0829de834ee7c8ddb8a57',1,'test_api.cpp']]], + ['max',['max',['../namespacello.html#a90a19c85f0d98170beab5f85462d5db7',1,'llo::max(std::vector< DataNode > args)'],['../namespacello.html#a0eba005c4545a4522bac459d42c7c140',1,'llo::max(T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)'],['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a673bead42397992e7015f7c020764ba2',1,'ade::MAX()']]], + ['min',['min',['../namespacello.html#af82275fc2bc853a681725d4a593a37e0',1,'llo::min(std::vector< DataNode > args)'],['../namespacello.html#a46192797ea05f96e5f1fbc728f43b2c4',1,'llo::min(T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)'],['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a8e2757c5898e55c8cfe7779f5b9cd5a0',1,'ade::MIN()']]], + ['move_5fhelper',['move_helper',['../structade_1_1_shape.html#ae2cffe358880cabd1a4a06b56c15e2b5',1,'ade::Shape']]], + ['mul',['MUL',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773aac675708a09412dc558640dbb0702986',1,'ade::MUL()'],['../namespacello.html#ae1f6c9f1f8c72c29b3805dbcc9161b13',1,'llo::mul(DataNode a, DataNode b)'],['../namespacello.html#a908f5da99f5702b96e79b3bf63bf1630',1,'llo::mul(T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)']]] +]; diff --git a/docs/search/all_b.html b/docs/search/all_b.html new file mode 100644 index 000000000..f2a3c8d0e --- /dev/null +++ b/docs/search/all_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_b.js b/docs/search/all_b.js new file mode 100644 index 000000000..5cff60d6e --- /dev/null +++ b/docs/search/all_b.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['n_5fdims',['n_dims',['../namespacello.html#afa477115431e64f3f3c8de171e314842',1,'llo']]], + ['n_5felems',['n_elems',['../structade_1_1_shape.html#a04fd9614b166a1519221441abeff050d',1,'ade::Shape::n_elems()'],['../namespacello.html#acea4dfe9be22fa6dc82eab15a883d812',1,'llo::n_elems()']]], + ['name_5fop',['name_op',['../namespaceade.html#a8f0d102e4fe792b98b84bff469dc55a1',1,'ade']]], + ['nametype',['nametype',['../namespacello.html#a8a9769d3b2850638feb6a1b7b731da30',1,'llo']]], + ['nary',['NARY',['../opmap_8hpp.html#acefb246ccc8de67677e36e7b110b058b',1,'opmap.hpp']]], + ['native_5ftype',['native_type',['../structllo_1_1i_source.html#af7dacf3af20cd637516cc1803207b483',1,'llo::iSource::native_type()'],['../structllo_1_1_source.html#a7840aafe93147ea135358cca681d2887',1,'llo::Source::native_type()']]], + ['ne',['NE',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773afe8facc035cb5cbacc88e59b50490a91',1,'ade']]], + ['neg',['neg',['../namespacello.html#a2b70118e9b3e36d53a27e04d9f542aaa',1,'llo::neg(DataNode arg)'],['../namespacello.html#a2523a51704ba46880ed6b0ed38aa0259',1,'llo::neg(T *out, VecRef< T > in)'],['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a3daf1fa0dd087729555fed4380e517c1',1,'ade::NEG()']]], + ['neg_3c_20uint16_5ft_20_3e',['neg< uint16_t >',['../namespacello.html#a26997fff05dbe6209d720e66cb7c2693',1,'llo']]], + ['neg_3c_20uint32_5ft_20_3e',['neg< uint32_t >',['../namespacello.html#acc26536b3f54b814ca59d94fa87d2728',1,'llo']]], + ['neg_3c_20uint64_5ft_20_3e',['neg< uint64_t >',['../namespacello.html#a9d20723f32966a0b8341676f61f7aa4f',1,'llo']]], + ['neg_3c_20uint8_5ft_20_3e',['neg< uint8_t >',['../namespacello.html#a6580f013947aa53d8e53e6fbd2722afa',1,'llo']]], + ['nelemt',['NElemT',['../namespaceade.html#a2fba34a89f37ea9ee310914daefd880d',1,'ade']]], + ['neq',['neq',['../namespacello.html#a531e1349ac82085fffb5791860ddc453',1,'llo::neq(DataNode a, DataNode b)'],['../namespacello.html#ab6719aec5379449c5df745796e3ce677',1,'llo::neq(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]], + ['nnary',['nnary',['../namespacello.html#a8c77a8e53c0227e523c81699b9c2aab9',1,'llo']]], + ['node',['NODE',['../struct_n_o_d_e.html',1,'']]], + ['node_2ehpp',['node.hpp',['../node_8hpp.html',1,'']]] +]; diff --git a/docs/search/all_c.html b/docs/search/all_c.html new file mode 100644 index 000000000..637681075 --- /dev/null +++ b/docs/search/all_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_c.js b/docs/search/all_c.js new file mode 100644 index 000000000..cd0689a6f --- /dev/null +++ b/docs/search/all_c.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['one',['one',['../namespacello.html#a4dc49819de341f92cb313b4c65c4d8ca',1,'llo']]], + ['op_5fexec',['op_exec',['../namespacello.html#adf503fcb029864e47a51221d0a50de85',1,'llo']]], + ['opcode',['OPCODE',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773',1,'ade']]], + ['opcode_2ecpp',['opcode.cpp',['../opcode_8cpp.html',1,'']]], + ['opcode_2ehpp',['opcode.hpp',['../opcode_8hpp.html',1,'']]], + ['opcode_5f',['opcode_',['../structade_1_1_functor.html#a2f5e5c19874c7b2671819ea05f2994b7',1,'ade::Functor']]], + ['operator_2d_3e',['operator->',['../structade_1_1_tensorptr.html#a530e6549d45b7f3f357905198879aa0f',1,'ade::Tensorptr::operator->(void)'],['../structade_1_1_tensorptr.html#a92da5a589d2f479753acc953f8bc0b61',1,'ade::Tensorptr::operator->(void) const']]], + ['operator_2ecpp',['operator.cpp',['../operator_8cpp.html',1,'']]], + ['operator_2ehpp',['operator.hpp',['../operator_8hpp.html',1,'']]], + ['operator_3d',['operator=',['../structade_1_1_shape.html#acd2a09bd0d441203386e75fe5251d697',1,'ade::Shape::operator=(const Shape &other)=default'],['../structade_1_1_shape.html#a6d9ebce77260266dbc73e8d3b0a08993',1,'ade::Shape::operator=(const std::vector< DimT > &dims)'],['../structade_1_1_shape.html#aff04970d322736d89caeece427a3ac03',1,'ade::Shape::operator=(Shape &&other)'],['../structllo_1_1_place_holder.html#aab58d2d748a70fc664ab2dd6b3ea127e',1,'llo::PlaceHolder::operator=(const PlaceHolder &)=default'],['../structllo_1_1_place_holder.html#a9a6a471cce08b99c9b6b3e234f81264c',1,'llo::PlaceHolder::operator=(PlaceHolder &&)=default'],['../structllo_1_1_place_holder.html#a1419b4720161fa203f1b8ee482534019',1,'llo::PlaceHolder::operator=(std::vector< T > data)']]], + ['opmap_2ecpp',['opmap.cpp',['../opmap_8cpp.html',1,'']]], + ['opmap_2ehpp',['opmap.hpp',['../opmap_8hpp.html',1,'']]], + ['opname',['opname',['../namespaceade.html#afcde656fd1d8db590042832b525d45be',1,'ade']]], + ['out_5f',['out_',['../structllo_1_1_evaluator.html#a1f837101f861c151b928f362028ebc65',1,'llo::Evaluator']]] +]; diff --git a/docs/search/all_d.html b/docs/search/all_d.html new file mode 100644 index 000000000..cc52c79fb --- /dev/null +++ b/docs/search/all_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_d.js b/docs/search/all_d.js new file mode 100644 index 000000000..5ead4f7c9 --- /dev/null +++ b/docs/search/all_d.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['pbm_20_28protobuf_20marshaller_29',['PBM (Protobuf Marshaller)',['../md_pbm__r_e_a_d_m_e__p_b_m.html',1,'']]], + ['pack_5fdata',['PACK_DATA',['../source_8cpp.html#ab171e03bf6b7bf75db1fb1b0f49de66a',1,'source.cpp']]], + ['parentmapt',['ParentMapT',['../structade_1_1_path_finder.html#a087d42a0dfacb07420cb00602a7fa848',1,'ade::PathFinder']]], + ['parents_5f',['parents_',['../structade_1_1_path_finder.html#a7748417958bed305338af5e238dc5362',1,'ade::PathFinder']]], + ['pathfinder',['PathFinder',['../structade_1_1_path_finder.html',1,'ade::PathFinder'],['../structade_1_1_path_finder.html#a97e908678c6b0136bf6e0ccaaa1e5b4f',1,'ade::PathFinder::PathFinder()']]], + ['permute',['permute',['../namespaceade.html#a710e31803e0e22e65d94ee855b411634',1,'ade::permute()'],['../namespacello.html#a79672cad76a10788719f85cdf2466f82',1,'llo::permute()']]], + ['placeholder',['PlaceHolder',['../structllo_1_1_place_holder.html',1,'llo::PlaceHolder< T >'],['../structllo_1_1_place_holder.html#ac342364040e547d2b9a5b9a8dce2e805',1,'llo::PlaceHolder::PlaceHolder(ade::Shape shape)'],['../structllo_1_1_place_holder.html#aefc2afa23afecbc078e62557b0f1de30',1,'llo::PlaceHolder::PlaceHolder(const PlaceHolder &)=default'],['../structllo_1_1_place_holder.html#a2f841994ecf7cd08ef3b888e63883776',1,'llo::PlaceHolder::PlaceHolder(PlaceHolder &&)=default']]], + ['pow',['POW',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a66445942a1762a2ecbd885dd235e9699',1,'ade::POW()'],['../namespacello.html#ae235b0d4d0f0a0de283d9fe1275f7f21',1,'llo::pow(DataNode a, DataNode b)'],['../namespacello.html#aa56e03e88d5be448c2d06294014a1ff5',1,'llo::pow(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]], + ['prod',['prod',['../namespacello.html#a0cfc133665440a351813d16951840063',1,'llo']]], + ['prune0',['prune0',['../namespacello.html#a226bb5e882e8849525865fb52034e618',1,'llo']]], + ['ptr_5f',['ptr_',['../structade_1_1_tensorptr.html#a55f00218f0e721910cc1d156f6dae2ad',1,'ade::Tensorptr']]] +]; diff --git a/docs/search/all_e.html b/docs/search/all_e.html new file mode 100644 index 000000000..85b39bd48 --- /dev/null +++ b/docs/search/all_e.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_e.js b/docs/search/all_e.js new file mode 100644 index 000000000..e5622f1eb --- /dev/null +++ b/docs/search/all_e.js @@ -0,0 +1,29 @@ +var searchData= +[ + ['rand_5fbino',['RAND_BINO',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773abf32a3343444bd0e85ec3ae8581e4311',1,'ade']]], + ['rand_5fbinom',['rand_binom',['../namespacello.html#a732d1e31951c47096b4bbbcc4c01886d',1,'llo::rand_binom(DataNode ntrials, DataNode prob)'],['../namespacello.html#a7c719d1c80cf4b57c3068f5bf2a39a72',1,'llo::rand_binom(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< double > b)']]], + ['rand_5fbinom_3c_20double_20_3e',['rand_binom< double >',['../namespacello.html#a7d2d8a9bdf1e3566cf5357c198de9c5b',1,'llo']]], + ['rand_5fbinom_3c_20float_20_3e',['rand_binom< float >',['../namespacello.html#a6590c80bbbd9bfc8936575b95758cf32',1,'llo']]], + ['rand_5fnorm',['RAND_NORM',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773aae72ec7426c64d6395224da3848a51db',1,'ade']]], + ['rand_5fnormal',['rand_normal',['../namespacello.html#a8712bb61bd6b1e5d5e668081d2d98fcd',1,'llo::rand_normal(DataNode mean, DataNode stdev)'],['../namespacello.html#ad1c7348a56a9534c6ff9baa65ebb43dc',1,'llo::rand_normal(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]], + ['rand_5fnormal_3c_20double_20_3e',['rand_normal< double >',['../namespacello.html#a1b742c2923ceb0fc9a1877ab20cabbdb',1,'llo']]], + ['rand_5fnormal_3c_20float_20_3e',['rand_normal< float >',['../namespacello.html#a502ebfee3eb91123ca56a38862c62801',1,'llo']]], + ['rand_5funif',['RAND_UNIF',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773afc3fa8e9341d334bede4b5788f1cdebc',1,'ade']]], + ['rand_5funiform',['rand_uniform',['../namespacello.html#aea75f39584ff0af02e227bbf376e201a',1,'llo::rand_uniform(DataNode lower, DataNode upper)'],['../namespacello.html#adbeb24b7f0ff24b9ad4a4d62801585ff',1,'llo::rand_uniform(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]], + ['rand_5funiform_3c_20double_20_3e',['rand_uniform< double >',['../namespacello.html#a629e4865c5521554995d7b88847695de',1,'llo']]], + ['rand_5funiform_3c_20float_20_3e',['rand_uniform< float >',['../namespacello.html#a1d9acac2589dd4ed27c9f32d31e81c93',1,'llo']]], + ['rank_5fcap',['rank_cap',['../namespaceade.html#abe7612b911dddb042aa394cc0125ea69',1,'ade']]], + ['readme_2emd',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]], + ['readme_5fade_2emd',['README_ADE.md',['../_r_e_a_d_m_e___a_d_e_8md.html',1,'']]], + ['readme_5fllo_2emd',['README_LLO.md',['../_r_e_a_d_m_e___l_l_o_8md.html',1,'']]], + ['readme_5fpbm_2emd',['README_PBM.md',['../_r_e_a_d_m_e___p_b_m_8md.html',1,'']]], + ['reassign',['reassign',['../structllo_1_1i_source.html#acf73e2fb7c30badf0385bed1c045872a',1,'llo::iSource::reassign()'],['../structllo_1_1_source.html#a3a7f23b0c43e7c4469552070e291b990',1,'llo::Source::reassign()']]], + ['reduce',['reduce',['../namespaceade.html#a1d2eb371602481a51ca229517eb892b7',1,'ade']]], + ['reduce_5fmax',['reduce_max',['../namespacello.html#a593f8b0cb1ef6249d939c3b7baa11300',1,'llo::reduce_max(DataNode arg)'],['../namespacello.html#a66b3c665abfeca16fa70b839a4d586a8',1,'llo::reduce_max(DataNode arg, uint8_t groupidx)']]], + ['reduce_5fsum',['reduce_sum',['../namespacello.html#a1a24a48c5a6c0124ac2b51270b6af617',1,'llo::reduce_sum(DataNode arg)'],['../namespacello.html#ab93f78824f782df54569502781db8017',1,'llo::reduce_sum(DataNode arg, uint8_t groupidx)']]], + ['ref',['ref',['../structade_1_1_tensorptr.html#a43e398be476f6a57ffbb42b93d314fa9',1,'ade::Tensorptr']]], + ['regress',['REGRESS',['../struct_r_e_g_r_e_s_s.html',1,'']]], + ['reverse',['reverse',['../structade_1_1i_coord_map.html#aefa18191949c10d211e16c7d07957f88',1,'ade::iCoordMap::reverse()'],['../structade_1_1_coord_map.html#a729c3bc4daf89f8185d22c199dab88a4',1,'ade::CoordMap::reverse()']]], + ['round',['round',['../namespacello.html#ad7dc30f99ed6f7b894cd51a508d96bbc',1,'llo::round(DataNode arg)'],['../namespacello.html#af2a4ec16dc83e924a43ac86a3893b411',1,'llo::round(T *out, VecRef< T > in)'],['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a6eb73e3db0bc05df6d4897bbbb4af51f',1,'ade::ROUND()']]], + ['rtrim',['rtrim',['../test__grader_8cpp.html#af6d6bd5c29782e3b958b5f7c0d1ea9e3',1,'rtrim(std::string &s): test_grader.cpp'],['../test__load_8cpp.html#af6d6bd5c29782e3b958b5f7c0d1ea9e3',1,'rtrim(std::string &s): test_load.cpp']]] +]; diff --git a/docs/search/all_f.html b/docs/search/all_f.html new file mode 100644 index 000000000..89fa15a65 --- /dev/null +++ b/docs/search/all_f.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_f.js b/docs/search/all_f.js new file mode 100644 index 000000000..aa4151f52 --- /dev/null +++ b/docs/search/all_f.js @@ -0,0 +1,31 @@ +var searchData= +[ + ['save_5fcoord',['save_coord',['../graph_8cpp.html#a984a78ce06b9ac2682e540a7d381fb62',1,'graph.cpp']]], + ['save_5fdata',['save_data',['../source_8hpp.html#a3c782b5c27b28c8b5a14ccafe758a092',1,'save_data(tenncor::Source *out, llo::iSource *in): source.cpp'],['../source_8cpp.html#a3c782b5c27b28c8b5a14ccafe758a092',1,'save_data(tenncor::Source *out, llo::iSource *in): source.cpp']]], + ['save_5fgraph',['save_graph',['../graph_8hpp.html#a11863a9583c183f1f7393fe9589f4435',1,'save_graph(tenncor::Graph &out, std::vector< llo::DataNode > &roots): graph.cpp'],['../graph_8cpp.html#a11863a9583c183f1f7393fe9589f4435',1,'save_graph(tenncor::Graph &out, std::vector< llo::DataNode > &roots): graph.cpp']]], + ['set_5flogger',['set_logger',['../namespaceade.html#af247a5c3f8cc0572f7756a94f49ace26',1,'ade']]], + ['shape',['SHAPE',['../struct_s_h_a_p_e.html',1,'SHAPE'],['../structade_1_1_shape.html',1,'ade::Shape'],['../structade_1_1_shape.html#a75d3e1cea374e9aa648fac6b4cadbb04',1,'ade::Shape::Shape(void)'],['../structade_1_1_shape.html#a30248491a0ecde17ae698ff6419917c6',1,'ade::Shape::Shape(std::vector< DimT > dims)'],['../structade_1_1_shape.html#a4f965312d8df445063305ea750220b3d',1,'ade::Shape::Shape(const Shape &other)=default'],['../structade_1_1_shape.html#ab5dd96f6f468e8b17e66e94ec22a9b41',1,'ade::Shape::Shape(Shape &&other)'],['../structllo_1_1_vec_ref.html#ac09758f7baf82d43c04c41193c3a12c5',1,'llo::VecRef::shape()'],['../structade_1_1_functor.html#a00c3cbc202d5c94ab9a2fa2270e3a688',1,'ade::Functor::shape()'],['../structade_1_1i_tensor.html#a782c626a29501f974532905657c8d66b',1,'ade::iTensor::shape()'],['../structade_1_1_tensor.html#a7460655c01d7be7fed376d30b8aa3804',1,'ade::Tensor::shape()']]], + ['shape_2ecpp',['shape.cpp',['../shape_8cpp.html',1,'']]], + ['shape_2ehpp',['shape.hpp',['../shape_8hpp.html',1,'']]], + ['shape_5f',['shape_',['../structade_1_1_functor.html#a99fbfe6298c8fea43e632ea75bf68973',1,'ade::Functor::shape_()'],['../structade_1_1_tensor.html#af401269d959b23081bcdaea831d7bf0c',1,'ade::Tensor::shape_()'],['../structllo_1_1_generic_data.html#a1d47f789145b4bd9c59d1937517689bf',1,'llo::GenericData::shape_()'],['../structllo_1_1_generic_ref.html#a9fb0ad1652ef1e835d87906d03081a2a',1,'llo::GenericRef::shape_()']]], + ['shaped_5fone',['shaped_one',['../namespaceade.html#af467998d5df53ca21a0d0c19f3a7afaa',1,'ade']]], + ['shaped_5fscalar',['shaped_scalar',['../namespacello.html#a2d0d6658687aa47d631679302c3cc3b7',1,'llo']]], + ['shaped_5fzero',['shaped_zero',['../namespaceade.html#a0dd34842c0ca097338a8dad3614e8061',1,'ade']]], + ['shapet',['ShapeT',['../namespaceade.html#ae85a1831aeb0b2b43c3730301cbaec30',1,'ade']]], + ['shear_2ecpp',['shear.cpp',['../shear_8cpp.html',1,'']]], + ['shear_2ehpp',['shear.hpp',['../shear_8hpp.html',1,'']]], + ['sin',['sin',['../namespacello.html#ad10afc6cb9a918b836b007de06cafd0d',1,'llo::sin(DataNode arg)'],['../namespacello.html#a7ada6615379c84d32f577bf21ffd4d77',1,'llo::sin(T *out, VecRef< T > in)'],['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a08c22fa19b9303df105f9196b193c122',1,'ade::SIN()']]], + ['source',['Source',['../structllo_1_1_source.html',1,'llo::Source< T >'],['../structllo_1_1_source.html#a7ee289a948b908f3fa739b56eb0f021e',1,'llo::Source::Source(std::shared_ptr< ade::Tensor > &tensor, std::vector< T > &data)'],['../structllo_1_1_source.html#ae8c90f69b2ffd3828f934e781b7b5d8d',1,'llo::Source::Source(const Source< T > &other)'],['../structllo_1_1_data_node.html#a412496c79e9b7ffe52ea7db0d8b1e794',1,'llo::DataNode::source()']]], + ['source_2ecpp',['source.cpp',['../source_8cpp.html',1,'']]], + ['source_2ehpp',['source.hpp',['../source_8hpp.html',1,'']]], + ['sourcepoolt',['SourcePoolT',['../namespacello.html#aa2c6ef7ce0d8ecee33d253b58c1ee8f6',1,'llo']]], + ['sprintf',['sprintf',['../namespaceade.html#ac669931e7bcc942bd2167d58daa7f42e',1,'ade']]], + ['sqrt',['sqrt',['../namespacello.html#a3faeaadbbce6cc14981ddbcf4d6d9ec7',1,'llo::sqrt(DataNode arg)'],['../namespacello.html#a40740fc01ce4d1408ec880d7acadf57d',1,'llo::sqrt(T *out, VecRef< T > in)'],['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a3de0a8c8e2f14ff6c4a2e2391f7c707c',1,'ade::SQRT()']]], + ['srcs_5f',['srcs_',['../structllo_1_1_eval_ctx.html#a0ddb52e14cc494bee81cb9927fc6d081',1,'llo::EvalCtx']]], + ['string_2ecpp',['string.cpp',['../string_8cpp.html',1,'']]], + ['string_2ehpp',['string.hpp',['../string_8hpp.html',1,'']]], + ['sub',['sub',['../namespacello.html#af2176f982795aabc46dec8f869a121a9',1,'llo::sub(DataNode a, DataNode b)'],['../namespacello.html#a8d63aab2daa521a780c4afd376cb8db7',1,'llo::sub(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)'],['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773afcd6003b78891d85f1c5f9bb16cd0c2b',1,'ade::SUB()']]], + ['sum',['sum',['../namespacello.html#aa1d7015f59d30357ebbd3fe8cf9f3859',1,'llo']]], + ['symbolic_5fone',['SYMBOLIC_ONE',['../structade_1_1_tensor.html#a21edc3441632e34df586632f813d2629',1,'ade::Tensor']]], + ['symbolic_5fzero',['SYMBOLIC_ZERO',['../structade_1_1_tensor.html#a8c62991c6440560181d34f8be02ee4f5',1,'ade::Tensor']]] +]; diff --git a/docs/search/classes_0.html b/docs/search/classes_0.html new file mode 100644 index 000000000..e935fdf72 --- /dev/null +++ b/docs/search/classes_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_0.js b/docs/search/classes_0.js new file mode 100644 index 000000000..e9d146427 --- /dev/null +++ b/docs/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['api',['API',['../struct_a_p_i.html',1,'']]] +]; diff --git a/docs/search/classes_1.html b/docs/search/classes_1.html new file mode 100644 index 000000000..3df6e80ac --- /dev/null +++ b/docs/search/classes_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_1.js b/docs/search/classes_1.js new file mode 100644 index 000000000..95c80933f --- /dev/null +++ b/docs/search/classes_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['coord',['COORD',['../struct_c_o_o_r_d.html',1,'']]], + ['coordmap',['CoordMap',['../structade_1_1_coord_map.html',1,'ade']]] +]; diff --git a/docs/search/classes_2.html b/docs/search/classes_2.html new file mode 100644 index 000000000..028694ffa --- /dev/null +++ b/docs/search/classes_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_2.js b/docs/search/classes_2.js new file mode 100644 index 000000000..ca92a557f --- /dev/null +++ b/docs/search/classes_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['datanode',['DataNode',['../structllo_1_1_data_node.html',1,'llo']]], + ['deflogger',['DefLogger',['../structade_1_1_def_logger.html',1,'ade']]], + ['dtype',['DTYPE',['../struct_d_t_y_p_e.html',1,'']]] +]; diff --git a/docs/search/classes_3.html b/docs/search/classes_3.html new file mode 100644 index 000000000..2b1abe383 --- /dev/null +++ b/docs/search/classes_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_3.js b/docs/search/classes_3.js new file mode 100644 index 000000000..f53bd1206 --- /dev/null +++ b/docs/search/classes_3.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['evalctx',['EvalCtx',['../structllo_1_1_eval_ctx.html',1,'llo']]], + ['evaluator',['Evaluator',['../structllo_1_1_evaluator.html',1,'llo']]], + ['executer',['Executer',['../structllo_1_1_executer.html',1,'llo']]], + ['executer_3c_20ade_3a_3acopy_2c_20t_20_3e',['Executer< ade::COPY, T >',['../structllo_1_1_executer_3_01ade_1_1_c_o_p_y_00_01_t_01_4.html',1,'llo']]], + ['executer_3c_20ade_3a_3arand_5fbino_2c_20t_20_3e',['Executer< ade::RAND_BINO, T >',['../structllo_1_1_executer_3_01ade_1_1_r_a_n_d___b_i_n_o_00_01_t_01_4.html',1,'llo']]] +]; diff --git a/docs/search/classes_4.html b/docs/search/classes_4.html new file mode 100644 index 000000000..873521494 --- /dev/null +++ b/docs/search/classes_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_4.js b/docs/search/classes_4.js new file mode 100644 index 000000000..2ff480db0 --- /dev/null +++ b/docs/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['functor',['Functor',['../structade_1_1_functor.html',1,'ade::Functor'],['../struct_f_u_n_c_t_o_r.html',1,'FUNCTOR']]] +]; diff --git a/docs/search/classes_5.html b/docs/search/classes_5.html new file mode 100644 index 000000000..ba8b1c69b --- /dev/null +++ b/docs/search/classes_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_5.js b/docs/search/classes_5.js new file mode 100644 index 000000000..7e78918e3 --- /dev/null +++ b/docs/search/classes_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['genericdata',['GenericData',['../structllo_1_1_generic_data.html',1,'llo']]], + ['genericref',['GenericRef',['../structllo_1_1_generic_ref.html',1,'llo']]], + ['graphstat',['GraphStat',['../structllo_1_1_graph_stat.html',1,'llo']]] +]; diff --git a/docs/search/classes_6.html b/docs/search/classes_6.html new file mode 100644 index 000000000..f5850938d --- /dev/null +++ b/docs/search/classes_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_6.js b/docs/search/classes_6.js new file mode 100644 index 000000000..b54cbe37c --- /dev/null +++ b/docs/search/classes_6.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['icoordmap',['iCoordMap',['../structade_1_1i_coord_map.html',1,'ade']]], + ['ifunctor',['iFunctor',['../structade_1_1i_functor.html',1,'ade']]], + ['ilogger',['iLogger',['../structade_1_1i_logger.html',1,'ade']]], + ['isource',['iSource',['../structllo_1_1i_source.html',1,'llo']]], + ['itensor',['iTensor',['../structade_1_1i_tensor.html',1,'ade']]], + ['itraveler',['iTraveler',['../structade_1_1i_traveler.html',1,'ade']]] +]; diff --git a/docs/search/classes_7.html b/docs/search/classes_7.html new file mode 100644 index 000000000..6418529c0 --- /dev/null +++ b/docs/search/classes_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_7.js b/docs/search/classes_7.js new file mode 100644 index 000000000..e49c055ae --- /dev/null +++ b/docs/search/classes_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['log',['LOG',['../struct_l_o_g.html',1,'']]] +]; diff --git a/docs/search/classes_8.html b/docs/search/classes_8.html new file mode 100644 index 000000000..87af6f601 --- /dev/null +++ b/docs/search/classes_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_8.js b/docs/search/classes_8.js new file mode 100644 index 000000000..c51f093b5 --- /dev/null +++ b/docs/search/classes_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['node',['NODE',['../struct_n_o_d_e.html',1,'']]] +]; diff --git a/docs/search/classes_9.html b/docs/search/classes_9.html new file mode 100644 index 000000000..f830ae04b --- /dev/null +++ b/docs/search/classes_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_9.js b/docs/search/classes_9.js new file mode 100644 index 000000000..ad027e8ef --- /dev/null +++ b/docs/search/classes_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['pathfinder',['PathFinder',['../structade_1_1_path_finder.html',1,'ade']]], + ['placeholder',['PlaceHolder',['../structllo_1_1_place_holder.html',1,'llo']]] +]; diff --git a/docs/search/classes_a.html b/docs/search/classes_a.html new file mode 100644 index 000000000..0fd3b7ac3 --- /dev/null +++ b/docs/search/classes_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_a.js b/docs/search/classes_a.js new file mode 100644 index 000000000..42552a5b0 --- /dev/null +++ b/docs/search/classes_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['regress',['REGRESS',['../struct_r_e_g_r_e_s_s.html',1,'']]] +]; diff --git a/docs/search/classes_b.html b/docs/search/classes_b.html new file mode 100644 index 000000000..886abdfcd --- /dev/null +++ b/docs/search/classes_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_b.js b/docs/search/classes_b.js new file mode 100644 index 000000000..d9abd61a7 --- /dev/null +++ b/docs/search/classes_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['shape',['SHAPE',['../struct_s_h_a_p_e.html',1,'SHAPE'],['../structade_1_1_shape.html',1,'ade::Shape']]], + ['source',['Source',['../structllo_1_1_source.html',1,'llo']]] +]; diff --git a/docs/search/classes_c.html b/docs/search/classes_c.html new file mode 100644 index 000000000..52ec26763 --- /dev/null +++ b/docs/search/classes_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_c.js b/docs/search/classes_c.js new file mode 100644 index 000000000..0783b440e --- /dev/null +++ b/docs/search/classes_c.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['tensor',['Tensor',['../structade_1_1_tensor.html',1,'ade::Tensor'],['../struct_t_e_n_s_o_r.html',1,'TENSOR']]], + ['tensorptr',['Tensorptr',['../structade_1_1_tensorptr.html',1,'ade']]], + ['testlogger',['TestLogger',['../struct_test_logger.html',1,'']]] +]; diff --git a/docs/search/classes_d.html b/docs/search/classes_d.html new file mode 100644 index 000000000..652508df3 --- /dev/null +++ b/docs/search/classes_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_d.js b/docs/search/classes_d.js new file mode 100644 index 000000000..865bff904 --- /dev/null +++ b/docs/search/classes_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['vecref',['VecRef',['../structllo_1_1_vec_ref.html',1,'llo']]] +]; diff --git a/docs/search/close.png b/docs/search/close.png new file mode 100644 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 GIT binary patch literal 273 zcmV+s0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN literal 0 HcmV?d00001 diff --git a/docs/search/defines_0.html b/docs/search/defines_0.html new file mode 100644 index 000000000..3bffafa9b --- /dev/null +++ b/docs/search/defines_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_0.js b/docs/search/defines_0.js new file mode 100644 index 000000000..e6a8589c5 --- /dev/null +++ b/docs/search/defines_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ade_5fcoord_5fhpp',['ADE_COORD_HPP',['../coord_8hpp.html#af0fa2323b446db07c46b6318a8ac10d0',1,'coord.hpp']]], + ['ade_5ffunctor_5fhpp',['ADE_FUNCTOR_HPP',['../functor_8hpp.html#a646c8c5e369c97d29823863ca56374b0',1,'functor.hpp']]] +]; diff --git a/docs/search/defines_1.html b/docs/search/defines_1.html new file mode 100644 index 000000000..ca5bb94e3 --- /dev/null +++ b/docs/search/defines_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_1.js b/docs/search/defines_1.js new file mode 100644 index 000000000..959b7154c --- /dev/null +++ b/docs/search/defines_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['binary',['BINARY',['../opmap_8hpp.html#a403d496dccddc6ca6650fab2a2d457ae',1,'opmap.hpp']]] +]; diff --git a/docs/search/defines_2.html b/docs/search/defines_2.html new file mode 100644 index 000000000..7cc1a74c0 --- /dev/null +++ b/docs/search/defines_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_2.js b/docs/search/defines_2.js new file mode 100644 index 000000000..87583591d --- /dev/null +++ b/docs/search/defines_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['grad_5fdeclare',['GRAD_DECLARE',['../grader_8hpp.html#acb2a44ebd475812985843f8903e4f3a6',1,'grader.hpp']]] +]; diff --git a/docs/search/defines_3.html b/docs/search/defines_3.html new file mode 100644 index 000000000..3d0ac1231 --- /dev/null +++ b/docs/search/defines_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_3.js b/docs/search/defines_3.js new file mode 100644 index 000000000..e7442ebb9 --- /dev/null +++ b/docs/search/defines_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['llo_5fapi_5fhpp',['LLO_API_HPP',['../api_8hpp.html#ab268c0e936bd1337da5e031cb5de46d5',1,'api.hpp']]], + ['llo_5fshear_5fhpp',['LLO_SHEAR_HPP',['../shear_8hpp.html#a47c95be1c1a4c6272f144cef3fc5144d',1,'shear.hpp']]] +]; diff --git a/docs/search/defines_4.html b/docs/search/defines_4.html new file mode 100644 index 000000000..201f927fc --- /dev/null +++ b/docs/search/defines_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_4.js b/docs/search/defines_4.js new file mode 100644 index 000000000..a5eeda05c --- /dev/null +++ b/docs/search/defines_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['nary',['NARY',['../opmap_8hpp.html#acefb246ccc8de67677e36e7b110b058b',1,'opmap.hpp']]] +]; diff --git a/docs/search/defines_5.html b/docs/search/defines_5.html new file mode 100644 index 000000000..92d51a584 --- /dev/null +++ b/docs/search/defines_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_5.js b/docs/search/defines_5.js new file mode 100644 index 000000000..59c10fff2 --- /dev/null +++ b/docs/search/defines_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pack_5fdata',['PACK_DATA',['../source_8cpp.html#ab171e03bf6b7bf75db1fb1b0f49de66a',1,'source.cpp']]] +]; diff --git a/docs/search/defines_6.html b/docs/search/defines_6.html new file mode 100644 index 000000000..fa5d74ce1 --- /dev/null +++ b/docs/search/defines_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_6.js b/docs/search/defines_6.js new file mode 100644 index 000000000..35fc53995 --- /dev/null +++ b/docs/search/defines_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['unary',['UNARY',['../opmap_8hpp.html#af8ab03742db276a0f267133610820fd9',1,'opmap.hpp']]], + ['unpack_5fsource',['UNPACK_SOURCE',['../source_8cpp.html#ab5bda89ebf78d0e308a4886a4abc3d82',1,'source.cpp']]] +]; diff --git a/docs/search/enums_0.html b/docs/search/enums_0.html new file mode 100644 index 000000000..9efcd1b75 --- /dev/null +++ b/docs/search/enums_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enums_0.js b/docs/search/enums_0.js new file mode 100644 index 000000000..a17ef4dec --- /dev/null +++ b/docs/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['dtype',['DTYPE',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79',1,'llo']]] +]; diff --git a/docs/search/enums_1.html b/docs/search/enums_1.html new file mode 100644 index 000000000..0edd7796e --- /dev/null +++ b/docs/search/enums_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enums_1.js b/docs/search/enums_1.js new file mode 100644 index 000000000..0fdc94777 --- /dev/null +++ b/docs/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['opcode',['OPCODE',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773',1,'ade']]] +]; diff --git a/docs/search/enumvalues_0.html b/docs/search/enumvalues_0.html new file mode 100644 index 000000000..03fdfad99 --- /dev/null +++ b/docs/search/enumvalues_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_0.js b/docs/search/enumvalues_0.js new file mode 100644 index 000000000..c01e07b41 --- /dev/null +++ b/docs/search/enumvalues_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5fbad_5fop',['_BAD_OP',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a16467a09b585036ad3816697c849695a',1,'ade']]] +]; diff --git a/docs/search/enumvalues_1.html b/docs/search/enumvalues_1.html new file mode 100644 index 000000000..abeea5641 --- /dev/null +++ b/docs/search/enumvalues_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_1.js b/docs/search/enumvalues_1.js new file mode 100644 index 000000000..60bf25f8f --- /dev/null +++ b/docs/search/enumvalues_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['abs',['ABS',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773adfab6b2b630b060edd8fcc995f62297b',1,'ade']]], + ['add',['ADD',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a9b4c1fab2f78aa34195cd1867e009ce3',1,'ade']]] +]; diff --git a/docs/search/enumvalues_10.html b/docs/search/enumvalues_10.html new file mode 100644 index 000000000..f6a557e8b --- /dev/null +++ b/docs/search/enumvalues_10.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_10.js b/docs/search/enumvalues_10.js new file mode 100644 index 000000000..ac82775f9 --- /dev/null +++ b/docs/search/enumvalues_10.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['uint16',['UINT16',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79aa08029bdbcc184c577f70541a340f7da',1,'llo']]], + ['uint32',['UINT32',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a63a8201a57e6374df7de777bb94bf854',1,'llo']]], + ['uint64',['UINT64',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79aa1d5035a713da797ece7e9ea5c41ae33',1,'llo']]], + ['uint8',['UINT8',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a214af4113e91e39af7b2754922913b7f',1,'llo']]] +]; diff --git a/docs/search/enumvalues_2.html b/docs/search/enumvalues_2.html new file mode 100644 index 000000000..90289986a --- /dev/null +++ b/docs/search/enumvalues_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_2.js b/docs/search/enumvalues_2.js new file mode 100644 index 000000000..bc10796bc --- /dev/null +++ b/docs/search/enumvalues_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bad',['BAD',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79ac3277e31d922eddc0989f5db69623f31',1,'llo']]] +]; diff --git a/docs/search/enumvalues_3.html b/docs/search/enumvalues_3.html new file mode 100644 index 000000000..b152efcb5 --- /dev/null +++ b/docs/search/enumvalues_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_3.js b/docs/search/enumvalues_3.js new file mode 100644 index 000000000..90bc15ff0 --- /dev/null +++ b/docs/search/enumvalues_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['copy',['COPY',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773abf9aec1aa2d891d7cd8a1673a89cea64',1,'ade']]], + ['cos',['COS',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773ab012d188973892aff5f535e0be0fa2e1',1,'ade']]] +]; diff --git a/docs/search/enumvalues_4.html b/docs/search/enumvalues_4.html new file mode 100644 index 000000000..3f50abb8b --- /dev/null +++ b/docs/search/enumvalues_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_4.js b/docs/search/enumvalues_4.js new file mode 100644 index 000000000..1b2bcba14 --- /dev/null +++ b/docs/search/enumvalues_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['div',['DIV',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a6cb5637144c6ab897e097348d9456cb5',1,'ade']]], + ['double',['DOUBLE',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a35d71cf0301e9015fcf78befaa352c95',1,'llo']]] +]; diff --git a/docs/search/enumvalues_5.html b/docs/search/enumvalues_5.html new file mode 100644 index 000000000..b6f20f292 --- /dev/null +++ b/docs/search/enumvalues_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_5.js b/docs/search/enumvalues_5.js new file mode 100644 index 000000000..9bb2d68eb --- /dev/null +++ b/docs/search/enumvalues_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['eq',['EQ',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a1016f8ef7ae15c5351cea9bec2eebe4e',1,'ade']]], + ['exp',['EXP',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a355d60c052f136fad52743771ca684ff',1,'ade']]] +]; diff --git a/docs/search/enumvalues_6.html b/docs/search/enumvalues_6.html new file mode 100644 index 000000000..93be12950 --- /dev/null +++ b/docs/search/enumvalues_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_6.js b/docs/search/enumvalues_6.js new file mode 100644 index 000000000..ffb3aec70 --- /dev/null +++ b/docs/search/enumvalues_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['float',['FLOAT',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a2f3e44191fe41db12541b2e7ba276dbc',1,'llo']]] +]; diff --git a/docs/search/enumvalues_7.html b/docs/search/enumvalues_7.html new file mode 100644 index 000000000..9fefbd651 --- /dev/null +++ b/docs/search/enumvalues_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_7.js b/docs/search/enumvalues_7.js new file mode 100644 index 000000000..bb1fbe5c2 --- /dev/null +++ b/docs/search/enumvalues_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['gt',['GT',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773aecc04dea4b702e73eca0ce97a7e3b7cc',1,'ade']]] +]; diff --git a/docs/search/enumvalues_8.html b/docs/search/enumvalues_8.html new file mode 100644 index 000000000..03f17f865 --- /dev/null +++ b/docs/search/enumvalues_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_8.js b/docs/search/enumvalues_8.js new file mode 100644 index 000000000..2607cf976 --- /dev/null +++ b/docs/search/enumvalues_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['int16',['INT16',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a52f44b41480bc31628ad88eabc015515',1,'llo']]], + ['int32',['INT32',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a0a0652b2a4eb65adde478162972a77d2',1,'llo']]], + ['int64',['INT64',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79acd3b41289ed95bf11783680aca7a27e6',1,'llo']]], + ['int8',['INT8',['../namespacello.html#a864d1f98406a21c285a4ea3768804a79a12884e53affa638281f7e366a7646548',1,'llo']]] +]; diff --git a/docs/search/enumvalues_9.html b/docs/search/enumvalues_9.html new file mode 100644 index 000000000..e60fe2726 --- /dev/null +++ b/docs/search/enumvalues_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_9.js b/docs/search/enumvalues_9.js new file mode 100644 index 000000000..2b66e5879 --- /dev/null +++ b/docs/search/enumvalues_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['log',['LOG',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773aeb38f544007d1c5f5c08533ea41b8d92',1,'ade']]], + ['lt',['LT',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773ac2146256dad7ef84440a9e36f8af282f',1,'ade']]] +]; diff --git a/docs/search/enumvalues_a.html b/docs/search/enumvalues_a.html new file mode 100644 index 000000000..1ec3a2a87 --- /dev/null +++ b/docs/search/enumvalues_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_a.js b/docs/search/enumvalues_a.js new file mode 100644 index 000000000..ab867ea86 --- /dev/null +++ b/docs/search/enumvalues_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['max',['MAX',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a673bead42397992e7015f7c020764ba2',1,'ade']]], + ['min',['MIN',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a8e2757c5898e55c8cfe7779f5b9cd5a0',1,'ade']]], + ['mul',['MUL',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773aac675708a09412dc558640dbb0702986',1,'ade']]] +]; diff --git a/docs/search/enumvalues_b.html b/docs/search/enumvalues_b.html new file mode 100644 index 000000000..bfc2bf3f4 --- /dev/null +++ b/docs/search/enumvalues_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_b.js b/docs/search/enumvalues_b.js new file mode 100644 index 000000000..e4e54af42 --- /dev/null +++ b/docs/search/enumvalues_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ne',['NE',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773afe8facc035cb5cbacc88e59b50490a91',1,'ade']]], + ['neg',['NEG',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a3daf1fa0dd087729555fed4380e517c1',1,'ade']]] +]; diff --git a/docs/search/enumvalues_c.html b/docs/search/enumvalues_c.html new file mode 100644 index 000000000..36070b87e --- /dev/null +++ b/docs/search/enumvalues_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_c.js b/docs/search/enumvalues_c.js new file mode 100644 index 000000000..176403c4d --- /dev/null +++ b/docs/search/enumvalues_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pow',['POW',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a66445942a1762a2ecbd885dd235e9699',1,'ade']]] +]; diff --git a/docs/search/enumvalues_d.html b/docs/search/enumvalues_d.html new file mode 100644 index 000000000..e15d8c992 --- /dev/null +++ b/docs/search/enumvalues_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_d.js b/docs/search/enumvalues_d.js new file mode 100644 index 000000000..c58575719 --- /dev/null +++ b/docs/search/enumvalues_d.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['rand_5fbino',['RAND_BINO',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773abf32a3343444bd0e85ec3ae8581e4311',1,'ade']]], + ['rand_5fnorm',['RAND_NORM',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773aae72ec7426c64d6395224da3848a51db',1,'ade']]], + ['rand_5funif',['RAND_UNIF',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773afc3fa8e9341d334bede4b5788f1cdebc',1,'ade']]], + ['round',['ROUND',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a6eb73e3db0bc05df6d4897bbbb4af51f',1,'ade']]] +]; diff --git a/docs/search/enumvalues_e.html b/docs/search/enumvalues_e.html new file mode 100644 index 000000000..1b3e388be --- /dev/null +++ b/docs/search/enumvalues_e.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_e.js b/docs/search/enumvalues_e.js new file mode 100644 index 000000000..3043d52fe --- /dev/null +++ b/docs/search/enumvalues_e.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['sin',['SIN',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a08c22fa19b9303df105f9196b193c122',1,'ade']]], + ['sqrt',['SQRT',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a3de0a8c8e2f14ff6c4a2e2391f7c707c',1,'ade']]], + ['sub',['SUB',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773afcd6003b78891d85f1c5f9bb16cd0c2b',1,'ade']]] +]; diff --git a/docs/search/enumvalues_f.html b/docs/search/enumvalues_f.html new file mode 100644 index 000000000..eb1f3db3a --- /dev/null +++ b/docs/search/enumvalues_f.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_f.js b/docs/search/enumvalues_f.js new file mode 100644 index 000000000..5b650614f --- /dev/null +++ b/docs/search/enumvalues_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tan',['TAN',['../namespaceade.html#a608b0009e35de2aa479a4fcae513b773a67b3abdb5169099d1a90b1852eece417',1,'ade']]] +]; diff --git a/docs/search/files_0.html b/docs/search/files_0.html new file mode 100644 index 000000000..49606c82c --- /dev/null +++ b/docs/search/files_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_0.js b/docs/search/files_0.js new file mode 100644 index 000000000..552ae2042 --- /dev/null +++ b/docs/search/files_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['api_2ecpp',['api.cpp',['../api_8cpp.html',1,'']]], + ['api_2ehpp',['api.hpp',['../api_8hpp.html',1,'']]] +]; diff --git a/docs/search/files_1.html b/docs/search/files_1.html new file mode 100644 index 000000000..c8871748e --- /dev/null +++ b/docs/search/files_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_1.js b/docs/search/files_1.js new file mode 100644 index 000000000..792c2ab54 --- /dev/null +++ b/docs/search/files_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['common_2ehpp',['common.hpp',['../common_8hpp.html',1,'']]], + ['coord_2ecpp',['coord.cpp',['../coord_8cpp.html',1,'']]], + ['coord_2ehpp',['coord.hpp',['../coord_8hpp.html',1,'']]] +]; diff --git a/docs/search/files_2.html b/docs/search/files_2.html new file mode 100644 index 000000000..99bdf21c8 --- /dev/null +++ b/docs/search/files_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_2.js b/docs/search/files_2.js new file mode 100644 index 000000000..938e9686b --- /dev/null +++ b/docs/search/files_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['data_2ecpp',['data.cpp',['../data_8cpp.html',1,'']]], + ['data_2ehpp',['data.hpp',['../data_8hpp.html',1,'']]], + ['dtype_2ecpp',['dtype.cpp',['../dtype_8cpp.html',1,'']]], + ['dtype_2ehpp',['dtype.hpp',['../dtype_8hpp.html',1,'']]] +]; diff --git a/docs/search/files_3.html b/docs/search/files_3.html new file mode 100644 index 000000000..f8e543a84 --- /dev/null +++ b/docs/search/files_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_3.js b/docs/search/files_3.js new file mode 100644 index 000000000..f768c002a --- /dev/null +++ b/docs/search/files_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['eval_2ecpp',['eval.cpp',['../eval_8cpp.html',1,'']]], + ['eval_2ehpp',['eval.hpp',['../eval_8hpp.html',1,'']]] +]; diff --git a/docs/search/files_4.html b/docs/search/files_4.html new file mode 100644 index 000000000..2ebb46c7e --- /dev/null +++ b/docs/search/files_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_4.js b/docs/search/files_4.js new file mode 100644 index 000000000..29386f4ab --- /dev/null +++ b/docs/search/files_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['functor_2ehpp',['functor.hpp',['../functor_8hpp.html',1,'']]] +]; diff --git a/docs/search/files_5.html b/docs/search/files_5.html new file mode 100644 index 000000000..268b7eb53 --- /dev/null +++ b/docs/search/files_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_5.js b/docs/search/files_5.js new file mode 100644 index 000000000..76a69b601 --- /dev/null +++ b/docs/search/files_5.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['grader_2ecpp',['grader.cpp',['../grader_8cpp.html',1,'']]], + ['grader_2ehpp',['grader.hpp',['../grader_8hpp.html',1,'']]], + ['graph_2ecpp',['graph.cpp',['../graph_8cpp.html',1,'']]], + ['graph_2ehpp',['graph.hpp',['../graph_8hpp.html',1,'']]] +]; diff --git a/docs/search/files_6.html b/docs/search/files_6.html new file mode 100644 index 000000000..98fc6666c --- /dev/null +++ b/docs/search/files_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_6.js b/docs/search/files_6.js new file mode 100644 index 000000000..98b22edee --- /dev/null +++ b/docs/search/files_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['log_2ecpp',['log.cpp',['../log_8cpp.html',1,'']]], + ['log_2ehpp',['log.hpp',['../log_8hpp.html',1,'']]] +]; diff --git a/docs/search/files_7.html b/docs/search/files_7.html new file mode 100644 index 000000000..49507dedb --- /dev/null +++ b/docs/search/files_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_7.js b/docs/search/files_7.js new file mode 100644 index 000000000..d4234e67d --- /dev/null +++ b/docs/search/files_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['main_2ecpp',['main.cpp',['../ade_2test_2dynamic_2main_8cpp.html',1,'(Global Namespace)'],['../ade_2test_2log_2main_8cpp.html',1,'(Global Namespace)'],['../ade_2test_2static_2main_8cpp.html',1,'(Global Namespace)'],['../llo_2test_2dynamic_2main_8cpp.html',1,'(Global Namespace)'],['../llo_2test_2regress_2main_8cpp.html',1,'(Global Namespace)'],['../pbm_2test_2main_8cpp.html',1,'(Global Namespace)']]], + ['matops_2ecpp',['matops.cpp',['../matops_8cpp.html',1,'']]], + ['matops_2ehpp',['matops.hpp',['../matops_8hpp.html',1,'']]] +]; diff --git a/docs/search/files_8.html b/docs/search/files_8.html new file mode 100644 index 000000000..12c6630be --- /dev/null +++ b/docs/search/files_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_8.js b/docs/search/files_8.js new file mode 100644 index 000000000..312c17b3a --- /dev/null +++ b/docs/search/files_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['node_2ehpp',['node.hpp',['../node_8hpp.html',1,'']]] +]; diff --git a/docs/search/files_9.html b/docs/search/files_9.html new file mode 100644 index 000000000..cabcae2f8 --- /dev/null +++ b/docs/search/files_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_9.js b/docs/search/files_9.js new file mode 100644 index 000000000..95f3313b6 --- /dev/null +++ b/docs/search/files_9.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['opcode_2ecpp',['opcode.cpp',['../opcode_8cpp.html',1,'']]], + ['opcode_2ehpp',['opcode.hpp',['../opcode_8hpp.html',1,'']]], + ['operator_2ecpp',['operator.cpp',['../operator_8cpp.html',1,'']]], + ['operator_2ehpp',['operator.hpp',['../operator_8hpp.html',1,'']]], + ['opmap_2ecpp',['opmap.cpp',['../opmap_8cpp.html',1,'']]], + ['opmap_2ehpp',['opmap.hpp',['../opmap_8hpp.html',1,'']]] +]; diff --git a/docs/search/files_a.html b/docs/search/files_a.html new file mode 100644 index 000000000..f7402215c --- /dev/null +++ b/docs/search/files_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_a.js b/docs/search/files_a.js new file mode 100644 index 000000000..e25188ad4 --- /dev/null +++ b/docs/search/files_a.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['readme_2emd',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]], + ['readme_5fade_2emd',['README_ADE.md',['../_r_e_a_d_m_e___a_d_e_8md.html',1,'']]], + ['readme_5fllo_2emd',['README_LLO.md',['../_r_e_a_d_m_e___l_l_o_8md.html',1,'']]], + ['readme_5fpbm_2emd',['README_PBM.md',['../_r_e_a_d_m_e___p_b_m_8md.html',1,'']]] +]; diff --git a/docs/search/files_b.html b/docs/search/files_b.html new file mode 100644 index 000000000..7be100307 --- /dev/null +++ b/docs/search/files_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_b.js b/docs/search/files_b.js new file mode 100644 index 000000000..4d2eb329c --- /dev/null +++ b/docs/search/files_b.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['shape_2ecpp',['shape.cpp',['../shape_8cpp.html',1,'']]], + ['shape_2ehpp',['shape.hpp',['../shape_8hpp.html',1,'']]], + ['shear_2ecpp',['shear.cpp',['../shear_8cpp.html',1,'']]], + ['shear_2ehpp',['shear.hpp',['../shear_8hpp.html',1,'']]], + ['source_2ecpp',['source.cpp',['../source_8cpp.html',1,'']]], + ['source_2ehpp',['source.hpp',['../source_8hpp.html',1,'']]], + ['string_2ecpp',['string.cpp',['../string_8cpp.html',1,'']]], + ['string_2ehpp',['string.hpp',['../string_8hpp.html',1,'']]] +]; diff --git a/docs/search/files_c.html b/docs/search/files_c.html new file mode 100644 index 000000000..c769b49bd --- /dev/null +++ b/docs/search/files_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_c.js b/docs/search/files_c.js new file mode 100644 index 000000000..ca1c40f09 --- /dev/null +++ b/docs/search/files_c.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['tensor_2ecpp',['tensor.cpp',['../tensor_8cpp.html',1,'']]], + ['tensor_2ehpp',['tensor.hpp',['../tensor_8hpp.html',1,'']]], + ['test_5fapi_2ecpp',['test_api.cpp',['../test__api_8cpp.html',1,'']]], + ['test_5fcoord_2ecpp',['test_coord.cpp',['../test__coord_8cpp.html',1,'']]], + ['test_5fdtype_2ecpp',['test_dtype.cpp',['../test__dtype_8cpp.html',1,'']]], + ['test_5ffunctor_2ecpp',['test_functor.cpp',['../test__functor_8cpp.html',1,'']]], + ['test_5fgrader_2ecpp',['test_grader.cpp',['../test__grader_8cpp.html',1,'']]], + ['test_5fload_2ecpp',['test_load.cpp',['../test__load_8cpp.html',1,'']]], + ['test_5flog_2ecpp',['test_log.cpp',['../test__log_8cpp.html',1,'']]], + ['test_5fnode_2ecpp',['test_node.cpp',['../test__node_8cpp.html',1,'']]], + ['test_5fsave_2ecpp',['test_save.cpp',['../test__save_8cpp.html',1,'']]], + ['test_5fshape_2ecpp',['test_shape.cpp',['../test__shape_8cpp.html',1,'']]], + ['test_5fstring_2ecpp',['test_string.cpp',['../test__string_8cpp.html',1,'']]], + ['test_5ftensor_2ecpp',['test_tensor.cpp',['../test__tensor_8cpp.html',1,'']]], + ['traveler_2ehpp',['traveler.hpp',['../traveler_8hpp.html',1,'']]] +]; diff --git a/docs/search/functions_0.html b/docs/search/functions_0.html new file mode 100644 index 000000000..0539c8ced --- /dev/null +++ b/docs/search/functions_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_0.js b/docs/search/functions_0.js new file mode 100644 index 000000000..29efcbb30 --- /dev/null +++ b/docs/search/functions_0.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['abs',['abs',['../namespacello.html#a52a0fbefad25868ae1303adc10099747',1,'llo::abs(DataNode arg)'],['../namespacello.html#af3ffcdedba093a42da3e937e945aba30',1,'llo::abs(T *out, VecRef< T > in)']]], + ['abs_3c_20uint16_5ft_20_3e',['abs< uint16_t >',['../namespacello.html#a3225c21e361f4174c5cb7b0b7517cd35',1,'llo']]], + ['abs_3c_20uint32_5ft_20_3e',['abs< uint32_t >',['../namespacello.html#a3a9fcb6f5c2acaf81fe507d88f4d1545',1,'llo']]], + ['abs_3c_20uint64_5ft_20_3e',['abs< uint64_t >',['../namespacello.html#a6cc677bc649f2d5d28b13ee527a84623',1,'llo']]], + ['abs_3c_20uint8_5ft_20_3e',['abs< uint8_t >',['../namespacello.html#a4eccdc385167ad9aa81ea1f64df7b236',1,'llo']]], + ['accept',['accept',['../structade_1_1i_functor.html#a66d87d6447e6d7336e2c118cc1e18a55',1,'ade::iFunctor::accept()'],['../structade_1_1i_tensor.html#aa7a69b3831cc43a6d173c08848662b24',1,'ade::iTensor::accept()'],['../structade_1_1_tensor.html#ae994443392939b32cf9ec98e91f7638a',1,'ade::Tensor::accept()']]], + ['access',['access',['../structade_1_1i_coord_map.html#a180b66d9db3782b17d7507bfe6967236',1,'ade::iCoordMap::access()'],['../structade_1_1_coord_map.html#aa0509214368694f866addb0df5df784a',1,'ade::CoordMap::access()']]], + ['add',['add',['../namespacello.html#af0313753acb9bfd2ece42d468b9f41f9',1,'llo::add(DataNode a, DataNode b)'],['../namespacello.html#a891db6a8dd93b21745773a877d795044',1,'llo::add(T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)']]], + ['at',['at',['../structade_1_1_shape.html#ab75dac360d94e88c3215b9dcf1e29752',1,'ade::Shape']]] +]; diff --git a/docs/search/functions_1.html b/docs/search/functions_1.html new file mode 100644 index 000000000..4878b3d12 --- /dev/null +++ b/docs/search/functions_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_1.js b/docs/search/functions_1.js new file mode 100644 index 000000000..b74a08552 --- /dev/null +++ b/docs/search/functions_1.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['backward',['backward',['../structade_1_1i_coord_map.html#ad40fe274c62ad72e920c6496d0951ec1',1,'ade::iCoordMap::backward()'],['../structade_1_1_coord_map.html#af3f34b43814282f682569a1c5c599889',1,'ade::CoordMap::backward()']]], + ['begin',['begin',['../structade_1_1_shape.html#ac5bcad1a815356a3623978f9608abf50',1,'ade::Shape::begin(void)'],['../structade_1_1_shape.html#ad677c4671e1b24bedaf1736bfddc1dac',1,'ade::Shape::begin(void) const']]], + ['binary',['binary',['../namespacello.html#ac4a1076a38873547b0d260db193ebcf3',1,'llo']]], + ['binary_5felementary',['binary_elementary',['../test__api_8cpp.html#af6d830a1830cf33e5ede7e3934afa326',1,'test_api.cpp']]], + ['binary_5felementary_5fint',['binary_elementary_int',['../test__api_8cpp.html#a4e5d2bfc9883f8338558a112ddc8b31e',1,'test_api.cpp']]], + ['binary_5fop',['binary_op',['../llo_2test_2regress_2main_8cpp.html#a66c7b10899c86913f1f2882ce8809b50',1,'main.cpp']]], + ['bit_5fnot',['bit_not',['../namespacello.html#a3fdd352e3c757f8bdac73998cbb7ad4e',1,'llo']]] +]; diff --git a/docs/search/functions_10.html b/docs/search/functions_10.html new file mode 100644 index 000000000..6f6fbae23 --- /dev/null +++ b/docs/search/functions_10.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_10.js b/docs/search/functions_10.js new file mode 100644 index 000000000..bc7f92cb4 --- /dev/null +++ b/docs/search/functions_10.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['unary',['unary',['../namespacello.html#a74cca98f42f830d2f5c6cffac9741949',1,'llo']]], + ['unary_5felementary',['unary_elementary',['../test__api_8cpp.html#aab3ca48935be2000354a511ba726fb3d',1,'test_api.cpp']]], + ['unary_5fgeneric',['unary_generic',['../test__api_8cpp.html#a7effea8de7ba25a324ab55ae9adc2493',1,'test_api.cpp']]], + ['unary_5fop',['unary_op',['../llo_2test_2regress_2main_8cpp.html#ac87f4b052708b49698d283e5780b8541',1,'main.cpp']]] +]; diff --git a/docs/search/functions_11.html b/docs/search/functions_11.html new file mode 100644 index 000000000..dd88d8b7e --- /dev/null +++ b/docs/search/functions_11.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_11.js b/docs/search/functions_11.js new file mode 100644 index 000000000..6ae8ee9de --- /dev/null +++ b/docs/search/functions_11.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['vector_5fassign',['vector_assign',['../structade_1_1_shape.html#ad84123094695df9886c8cc8f76d4d21e',1,'ade::Shape']]], + ['visit',['visit',['../structade_1_1_path_finder.html#abea2f985569ec7769f0ec82281248c7e',1,'ade::PathFinder::visit(Tensor *leaf) override'],['../structade_1_1_path_finder.html#a57a63c9dcad0c13df7af259622c9350b',1,'ade::PathFinder::visit(iFunctor *func) override'],['../structade_1_1i_traveler.html#a61de422a7412edfe9406c0a53a9c2c03',1,'ade::iTraveler::visit(Tensor *leaf)=0'],['../structade_1_1i_traveler.html#a6ae5c7df26de362b580a70928a3096dd',1,'ade::iTraveler::visit(iFunctor *func)=0'],['../structllo_1_1_evaluator.html#a205b9f59926a92f905a5cf59cdc76910',1,'llo::Evaluator::visit(ade::Tensor *leaf) override'],['../structllo_1_1_evaluator.html#a4c26da320010feab705f66f6f760a414',1,'llo::Evaluator::visit(ade::iFunctor *func) override'],['../structllo_1_1_graph_stat.html#a7d34acb63dc939892ddbb59243d8335a',1,'llo::GraphStat::visit(ade::Tensor *leaf) override'],['../structllo_1_1_graph_stat.html#afdb73a1a0a23db4ef8e8e17487613834',1,'llo::GraphStat::visit(ade::iFunctor *func) override']]] +]; diff --git a/docs/search/functions_12.html b/docs/search/functions_12.html new file mode 100644 index 000000000..7093d19fe --- /dev/null +++ b/docs/search/functions_12.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_12.js b/docs/search/functions_12.js new file mode 100644 index 000000000..f270bbeca --- /dev/null +++ b/docs/search/functions_12.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['warn',['warn',['../structade_1_1i_logger.html#a67a4f91050f91844a719ae49169c479e',1,'ade::iLogger::warn()'],['../structade_1_1_def_logger.html#a7b8b85dbdf2fa536556df47f1811b713',1,'ade::DefLogger::warn()'],['../struct_test_logger.html#accc25d91d021c85df7f3d1a5d98ebe16',1,'TestLogger::warn()'],['../namespaceade.html#a947ed7832b3fd461a41b28928e2aebbd',1,'ade::warn()']]], + ['warnf',['warnf',['../namespaceade.html#ac8c5293665e9489b0ecb83a8b1a9f2c0',1,'ade']]] +]; diff --git a/docs/search/functions_13.html b/docs/search/functions_13.html new file mode 100644 index 000000000..051a1eb82 --- /dev/null +++ b/docs/search/functions_13.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_13.js b/docs/search/functions_13.js new file mode 100644 index 000000000..1d80380fb --- /dev/null +++ b/docs/search/functions_13.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['zero_5fprune',['zero_prune',['../namespacello.html#a14546b24ce18e593f0c6e9bdf2736296',1,'llo']]] +]; diff --git a/docs/search/functions_14.html b/docs/search/functions_14.html new file mode 100644 index 000000000..d5fdbda44 --- /dev/null +++ b/docs/search/functions_14.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_14.js b/docs/search/functions_14.js new file mode 100644 index 000000000..7959884a8 --- /dev/null +++ b/docs/search/functions_14.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['_7edatanode',['~DataNode',['../structllo_1_1_data_node.html#a1f61ba5ab97be1c02ee8583dc0b6f1f2',1,'llo::DataNode']]], + ['_7eicoordmap',['~iCoordMap',['../structade_1_1i_coord_map.html#a4e8f4d22d68fbf9512f97bfb4d317009',1,'ade::iCoordMap']]], + ['_7eifunctor',['~iFunctor',['../structade_1_1i_functor.html#a9f5aebb693faea7cc5a822ca403f40c0',1,'ade::iFunctor']]], + ['_7eilogger',['~iLogger',['../structade_1_1i_logger.html#a83e0deab12ad9a5ade032c6fb177ab97',1,'ade::iLogger']]], + ['_7eisource',['~iSource',['../structllo_1_1i_source.html#a38da28ad557c2e08df9366441acd3177',1,'llo::iSource']]], + ['_7eitensor',['~iTensor',['../structade_1_1i_tensor.html#a1eb974b967ef2da732ee074e73631342',1,'ade::iTensor']]], + ['_7eitraveler',['~iTraveler',['../structade_1_1i_traveler.html#af8279cb7fbe1363298287f4e2061254a',1,'ade::iTraveler']]], + ['_7etensorptr',['~Tensorptr',['../structade_1_1_tensorptr.html#ad80d90228d477bac5a71ff2cd2f51aa4',1,'ade::Tensorptr']]] +]; diff --git a/docs/search/functions_2.html b/docs/search/functions_2.html new file mode 100644 index 000000000..67d2a392c --- /dev/null +++ b/docs/search/functions_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_2.js b/docs/search/functions_2.js new file mode 100644 index 000000000..2211a5e7f --- /dev/null +++ b/docs/search/functions_2.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['calc_5ffunc_5fargs',['calc_func_args',['../namespacello.html#ad8e6bc2ab4c779ed29586c9ccef37a5d',1,'llo']]], + ['clip',['clip',['../namespacello.html#a425d01817a20300ff7f78e350f1d37d0',1,'llo']]], + ['compatible_5fafter',['compatible_after',['../structade_1_1_shape.html#a486f09d5fd8c99ac078e6ddf58797c96',1,'ade::Shape']]], + ['compatible_5fbefore',['compatible_before',['../structade_1_1_shape.html#ab80adb387453a25c3d22193308a512cf',1,'ade::Shape']]], + ['convert_5fto',['convert_to',['../structllo_1_1_generic_data.html#ac689472ef80809db20ad83f60042dac7',1,'llo::GenericData']]], + ['convolute',['convolute',['../namespacello.html#a9645a3f849dea1f258d1560b9c9a43fd',1,'llo']]], + ['coordinate',['coordinate',['../namespaceade.html#a785be8ee10cd4af039c458e057b32263',1,'ade']]], + ['coordmap',['CoordMap',['../structade_1_1_coord_map.html#afb5c1dcf8267026e74f1fe3b3997785f',1,'ade::CoordMap::CoordMap(std::function< void(MatrixT)> init)'],['../structade_1_1_coord_map.html#a2d0a0d6d4652a4fae7eb649059e26f78',1,'ade::CoordMap::CoordMap(const MatrixT fwd, const MatrixT bwd)']]], + ['copy',['copy',['../structllo_1_1_source.html#a7dae00390e432d4f37a49b7e33c6e56b',1,'llo::Source::copy()'],['../namespacello.html#ac25d9e7ad56ef420d9b9b84ef0c4db7b',1,'llo::copy()']]], + ['cos',['cos',['../namespacello.html#a7921091f3f204d2cf19614825c65479a',1,'llo::cos(DataNode arg)'],['../namespacello.html#a999fe26a576045e8a45b416b7708c51a',1,'llo::cos(T *out, VecRef< T > in)']]], + ['create_5f2d',['create_2d',['../test__api_8cpp.html#a3e00b669d9f91f8b968d524d8edfff73',1,'test_api.cpp']]] +]; diff --git a/docs/search/functions_3.html b/docs/search/functions_3.html new file mode 100644 index 000000000..1f0eedb33 --- /dev/null +++ b/docs/search/functions_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_3.js b/docs/search/functions_3.js new file mode 100644 index 000000000..18ceffce1 --- /dev/null +++ b/docs/search/functions_3.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['data',['data',['../structllo_1_1i_source.html#a90ea20f6def00bb4522a5c7baf27b8f6',1,'llo::iSource::data()'],['../structllo_1_1_data_node.html#a4772b4e9bd7253d02f5a89e57be1c386',1,'llo::DataNode::data()'],['../structllo_1_1_source.html#a33d7a472b44a4cde6c7d218818f57be1',1,'llo::Source::data()']]], + ['datanode',['DataNode',['../structllo_1_1_data_node.html#afdc532ff71063be67c2114ecc8d121d2',1,'llo::DataNode']]], + ['derive',['derive',['../structllo_1_1_data_node.html#affa0248c9c5c7fa4188d13b4b67c9e06',1,'llo::DataNode::derive(const ade::iTensor *wrt)'],['../structllo_1_1_data_node.html#a5098c8a0184b333b1acdeda02cdee3e2',1,'llo::DataNode::derive(DataNode &wrt)']]], + ['div',['div',['../namespacello.html#ab035ae9901aba246c002cc2daee6d9f4',1,'llo::div(DataNode a, DataNode b)'],['../namespacello.html#a9b229ad91f79cdc35b02e9a833e6a7ae',1,'llo::div(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]] +]; diff --git a/docs/search/functions_4.html b/docs/search/functions_4.html new file mode 100644 index 000000000..c5bf87a47 --- /dev/null +++ b/docs/search/functions_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_4.js b/docs/search/functions_4.js new file mode 100644 index 000000000..bc9679b1f --- /dev/null +++ b/docs/search/functions_4.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['end',['end',['../structade_1_1_shape.html#a85700f185320892b5dde0474c88fd33c',1,'ade::Shape::end(void)'],['../structade_1_1_shape.html#a8df8b0d454942a59441c8adcebdc176a',1,'ade::Shape::end(void) const']]], + ['eq',['eq',['../namespacello.html#aa2d739fa5274447afc312cbf8b08fb69',1,'llo::eq(DataNode a, DataNode b)'],['../namespacello.html#aca5851f201d459bb8cc17c0487697560',1,'llo::eq(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]], + ['error',['error',['../structade_1_1i_logger.html#a8ed2bc690b40832e873f7458e69dcf6b',1,'ade::iLogger::error()'],['../structade_1_1_def_logger.html#a5a30f80d76f4690733221d0da91ff3f2',1,'ade::DefLogger::error()'],['../struct_test_logger.html#a251edd0536f34a74c69f3cbecc1f022f',1,'TestLogger::error()'],['../namespaceade.html#aceb07f5c4cd3b4b950d5413f37940008',1,'ade::error()']]], + ['errorf',['errorf',['../namespaceade.html#ae5984b9b87d8b61be95b9b8b7993619c',1,'ade']]], + ['evalctx',['EvalCtx',['../structllo_1_1_eval_ctx.html#a61e246ee388a79aac89dba080f615584',1,'llo::EvalCtx::EvalCtx(void)=default'],['../structllo_1_1_eval_ctx.html#aeae11f0561b0526251c2bb14abcb065e',1,'llo::EvalCtx::EvalCtx(ade::iTensor *srckey, std::shared_ptr< iSource > &srcval)'],['../structllo_1_1_eval_ctx.html#adce7cb30344dceeb52c3a5e8336e2e58',1,'llo::EvalCtx::EvalCtx(std::vector< const EvalCtx *> contexas)']]], + ['evaluator',['Evaluator',['../structllo_1_1_evaluator.html#afdedeffc8cc66b6afce2bc4b8e3804b2',1,'llo::Evaluator']]], + ['exec',['exec',['../structllo_1_1_executer.html#a5a9b22b4775b26785f566ea034e57ae3',1,'llo::Executer::exec()'],['../structllo_1_1_executer_3_01ade_1_1_c_o_p_y_00_01_t_01_4.html#a97a6a95f2c04f521a9f3453f5cfef27c',1,'llo::Executer< ade::COPY, T >::exec()'],['../structllo_1_1_executer_3_01ade_1_1_r_a_n_d___b_i_n_o_00_01_t_01_4.html#a8fba0209c67769c9f73bb95d92b1a9c6',1,'llo::Executer< ade::RAND_BINO, T >::exec()'],['../namespacello.html#a0cc1d4f37f8f5fda5d4174c25d3f3bee',1,'llo::exec()']]], + ['exp',['exp',['../namespacello.html#aa1982f8e28ad1c73fca3e182339124f7',1,'llo::exp(DataNode arg)'],['../namespacello.html#aea287e4a457edc851dec192ec953d223',1,'llo::exp(T *out, VecRef< T > in)']]], + ['expect_5fdata_5fapprox',['EXPECT_DATA_APPROX',['../llo_2test_2regress_2main_8cpp.html#ad6fccc93188af1af28b116941ff490ef',1,'main.cpp']]], + ['expect_5fdata_5feq',['EXPECT_DATA_EQ',['../llo_2test_2regress_2main_8cpp.html#aacbf9775c41173e91bb77ece4da7760a',1,'main.cpp']]], + ['extend',['extend',['../namespaceade.html#a2e24a1916ee316af7fb7f14bef651051',1,'ade::extend()'],['../namespacello.html#a47b85e222497ab4a1958fb95b2b47970',1,'llo::extend()']]] +]; diff --git a/docs/search/functions_5.html b/docs/search/functions_5.html new file mode 100644 index 000000000..a34446ce7 --- /dev/null +++ b/docs/search/functions_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_5.js b/docs/search/functions_5.js new file mode 100644 index 000000000..846386dfc --- /dev/null +++ b/docs/search/functions_5.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['fatal',['fatal',['../structade_1_1i_logger.html#a0410a8ec51f37b8f742b78ffd30237aa',1,'ade::iLogger::fatal()'],['../structade_1_1_def_logger.html#a40a4bc33563eaa415f1b929640e91157',1,'ade::DefLogger::fatal()'],['../struct_test_logger.html#abd50bacaa15f868caf73ad2195582177',1,'TestLogger::fatal()'],['../namespaceade.html#a905c54ebacff42db4f0d8087ff048a38',1,'ade::fatal()']]], + ['fatalf',['fatalf',['../namespaceade.html#a35150767a59a9ede58773e4f732a5ec5',1,'ade']]], + ['fill_5fone',['fill_one',['../namespacello.html#a1f4abb31b85db683c258eb9fef664dd9',1,'llo']]], + ['flip',['flip',['../namespaceade.html#aaff83dc21ff0e7b15ca19f1ccb726bea',1,'ade::flip()'],['../namespacello.html#a62db30d8fc22051ff8a997a6264ca6b3',1,'llo::flip()']]], + ['forward',['forward',['../structade_1_1i_coord_map.html#abc27f1c79994569812647d63401e208d',1,'ade::iCoordMap::forward()'],['../structade_1_1_coord_map.html#a179711b98f6980bd4e5e8f592fccb0c6',1,'ade::CoordMap::forward()']]], + ['freivald',['freivald',['../test__api_8cpp.html#a670fd79bcde3bae160f6ddd5d8f6d903',1,'test_api.cpp']]], + ['functor',['Functor',['../structade_1_1_functor.html#a10f8297f3357a778a93b3c57167417a6',1,'ade::Functor']]] +]; diff --git a/docs/search/functions_6.html b/docs/search/functions_6.html new file mode 100644 index 000000000..6fd4b1f37 --- /dev/null +++ b/docs/search/functions_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_6.js b/docs/search/functions_6.js new file mode 100644 index 000000000..48cc09b39 --- /dev/null +++ b/docs/search/functions_6.js @@ -0,0 +1,31 @@ +var searchData= +[ + ['genericdata',['GenericData',['../structllo_1_1_generic_data.html#a55a23000ad17dc42ac4d1b7085bea40c',1,'llo::GenericData::GenericData(void)=default'],['../structllo_1_1_generic_data.html#aec83aa8596ec0504c0379f14d33aab5e',1,'llo::GenericData::GenericData(ade::Shape shape, DTYPE dtype)']]], + ['genericref',['GenericRef',['../structllo_1_1_generic_ref.html#aeecba1404dbeb7670f5173f4cf93c2c6',1,'llo::GenericRef::GenericRef(char *data, ade::Shape shape, DTYPE dtype)'],['../structllo_1_1_generic_ref.html#a68bfd5024e80187e0ca1e620df1be1de',1,'llo::GenericRef::GenericRef(GenericData &generic)']]], + ['get',['get',['../structade_1_1_functor.html#aa2292d9f235bc1ee0615a5ad4c88d8ba',1,'ade::Functor::get()'],['../structade_1_1_tensorptr.html#abe33b19e27214d8995fa92781432c59c',1,'ade::Tensorptr::get()'],['../structade_1_1_tensor.html#a12d316a94c3e1a766afa4df1c74970cf',1,'ade::Tensor::get()'],['../structllo_1_1_source.html#ae6cb2e2a4b948f6920400b8fd1f83782',1,'llo::Source::get()']]], + ['get_5fchildren',['get_children',['../structade_1_1i_functor.html#a074e2f5304eb5d59e585e480d27f8953',1,'ade::iFunctor::get_children()'],['../structade_1_1_functor.html#ab15cc2bb1f427f25b16d78080f5a0572',1,'ade::Functor::get_children()']]], + ['get_5fcode',['get_code',['../structade_1_1i_functor.html#aa709a158c3e4df237b9fad463771487f',1,'ade::iFunctor::get_code()'],['../structade_1_1_functor.html#a7f11bd1d4f4ddc2ccdb7ab283c562b49',1,'ade::Functor::get_code()']]], + ['get_5fengine',['get_engine',['../namespacello.html#a61884656c3aa93b200183b6047ef40dd',1,'llo']]], + ['get_5finput_5fdata',['get_input_data',['../llo_2test_2regress_2main_8cpp.html#a3d50348b16e67f307241135e258c3f0d',1,'main.cpp']]], + ['get_5flogger',['get_logger',['../namespaceade.html#aeac9c84fbc8ce71ca86397d050d0948c',1,'ade']]], + ['get_5foutput_5fdata',['get_output_data',['../llo_2test_2regress_2main_8cpp.html#aef2c45e3061d201c20ec88b8ca9246b3',1,'main.cpp']]], + ['get_5fscalar',['get_scalar',['../structllo_1_1_source.html#a4b41d81c37d0db19be491ae7cd884c3e',1,'llo::Source']]], + ['get_5fshape',['get_shape',['../llo_2test_2regress_2main_8cpp.html#a6f292812a763a0b1470f6cdb4af18542',1,'main.cpp']]], + ['get_5fsrc',['get_src',['../structllo_1_1_data_node.html#a996b653ad205b29ab80922fd1c79337a',1,'llo::DataNode']]], + ['get_5ftype',['get_type',['../namespacello.html#af64d944f20a11333d9ef0ac956f31b86',1,'llo']]], + ['get_5ftype_3c_20double_20_3e',['get_type< double >',['../namespacello.html#aaaf182fb85986a52f70546748dc69cd9',1,'llo']]], + ['get_5ftype_3c_20float_20_3e',['get_type< float >',['../namespacello.html#a3cff688f2e1a47a694e4f6ea1f88d0c1',1,'llo']]], + ['get_5ftype_3c_20int16_5ft_20_3e',['get_type< int16_t >',['../namespacello.html#a98e452f8b40c4ead9e7139863f247696',1,'llo']]], + ['get_5ftype_3c_20int32_5ft_20_3e',['get_type< int32_t >',['../namespacello.html#a017892687a7820248376db67b72e03bd',1,'llo']]], + ['get_5ftype_3c_20int64_5ft_20_3e',['get_type< int64_t >',['../namespacello.html#a9eff1e393986c5739a1b866127b73f22',1,'llo']]], + ['get_5ftype_3c_20int8_5ft_20_3e',['get_type< int8_t >',['../namespacello.html#af4a321e2bf82c2412ba492b756f491ef',1,'llo']]], + ['get_5ftype_3c_20uint16_5ft_20_3e',['get_type< uint16_t >',['../namespacello.html#a63d42c80b0a8b48dfab5ca9ad10fef05',1,'llo']]], + ['get_5ftype_3c_20uint32_5ft_20_3e',['get_type< uint32_t >',['../namespacello.html#a0e80d784e11ec48c23d4f585a28298f2',1,'llo']]], + ['get_5ftype_3c_20uint64_5ft_20_3e',['get_type< uint64_t >',['../namespacello.html#ac7d46386eb33cedc3a2edbf1f592d6f2',1,'llo']]], + ['get_5ftype_3c_20uint8_5ft_20_3e',['get_type< uint8_t >',['../namespacello.html#aa0ff02d900a47981be5534edc4a2c0bb',1,'llo']]], + ['grader',['grader',['../namespaceade.html#a1f416c166cd10d1f7fd049d9f379be11',1,'ade']]], + ['gradient',['gradient',['../structade_1_1_functor.html#aa8a91aa5d7298a658d5b15167b8528ec',1,'ade::Functor::gradient()'],['../structade_1_1i_tensor.html#a6ac779f81888c46b40804c9f716eaf10',1,'ade::iTensor::gradient()'],['../structade_1_1_tensor.html#a00463a6a5011279d917bf08c7b45ea2b',1,'ade::Tensor::gradient()']]], + ['gradmap',['gradmap',['../namespaceade.html#a925a1c9fe2f12c3c0138376c1c0b74a3',1,'ade']]], + ['graphstat',['GraphStat',['../structllo_1_1_graph_stat.html#af796f28c6a30fc143ee8c0708e290fa9',1,'llo::GraphStat']]], + ['gt',['gt',['../namespacello.html#a3465603256b700c902f23582a9a5f8f1',1,'llo::gt(DataNode a, DataNode b)'],['../namespacello.html#a8ae7b7bbdc2eab5e5eca92ab98914883',1,'llo::gt(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]] +]; diff --git a/docs/search/functions_7.html b/docs/search/functions_7.html new file mode 100644 index 000000000..6e09abf1b --- /dev/null +++ b/docs/search/functions_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_7.js b/docs/search/functions_7.js new file mode 100644 index 000000000..65128c6b6 --- /dev/null +++ b/docs/search/functions_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['index',['index',['../namespaceade.html#ae4b0a59c967fe9699b5b66de3c8fab49',1,'ade']]], + ['inner',['inner',['../structllo_1_1i_source.html#ad0b1b3594e603b0f1ff19184b5229ec1',1,'llo::iSource::inner()'],['../structllo_1_1_source.html#aca2b1b1aad74573743859329c23ebdd4',1,'llo::Source::inner()']]], + ['inverse',['inverse',['../namespaceade.html#ad9cbea696e35b2eca835de3a246409d0',1,'ade']]] +]; diff --git a/docs/search/functions_8.html b/docs/search/functions_8.html new file mode 100644 index 000000000..d59ea9719 --- /dev/null +++ b/docs/search/functions_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_8.js b/docs/search/functions_8.js new file mode 100644 index 000000000..7d342fdfc --- /dev/null +++ b/docs/search/functions_8.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['load_5fcoord',['load_coord',['../graph_8cpp.html#a346c9cdaee1257a84dff7dd5efa4fbae',1,'graph.cpp']]], + ['load_5fgraph',['load_graph',['../graph_8hpp.html#ae35ecd49b330c50df22594ad87eb9ad5',1,'load_graph(const tenncor::Graph &in): graph.cpp'],['../graph_8cpp.html#ae35ecd49b330c50df22594ad87eb9ad5',1,'load_graph(const tenncor::Graph &in): graph.cpp']]], + ['load_5fsource',['load_source',['../source_8hpp.html#afa8b9b2d46a75dbb8c1810bea63f6bc9',1,'load_source(const tenncor::Source &source): source.cpp'],['../source_8cpp.html#afa8b9b2d46a75dbb8c1810bea63f6bc9',1,'load_source(const tenncor::Source &source): source.cpp']]], + ['log',['log',['../namespacello.html#ae89b1685de2ca1d943ea292d4b4db4b4',1,'llo::log(DataNode arg)'],['../namespacello.html#ab1380d9ae294bf7d8e3d6cef4ef40396',1,'llo::log(T *out, VecRef< T > in)']]], + ['lt',['lt',['../namespacello.html#ad10eccbdafb491529a3886084e1664ef',1,'llo::lt(DataNode a, DataNode b)'],['../namespacello.html#a37ca02223b4f25f1d4f8c99c74a82619',1,'llo::lt(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]], + ['ltrim',['ltrim',['../test__grader_8cpp.html#a47084ee818936eef3c48be492c0e860f',1,'ltrim(std::string &s): test_grader.cpp'],['../test__load_8cpp.html#a47084ee818936eef3c48be492c0e860f',1,'ltrim(std::string &s): test_load.cpp']]] +]; diff --git a/docs/search/functions_9.html b/docs/search/functions_9.html new file mode 100644 index 000000000..5ccec4291 --- /dev/null +++ b/docs/search/functions_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_9.js b/docs/search/functions_9.js new file mode 100644 index 000000000..925029948 --- /dev/null +++ b/docs/search/functions_9.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['main',['main',['../ade_2test_2dynamic_2main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): main.cpp'],['../ade_2test_2log_2main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): main.cpp'],['../ade_2test_2static_2main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): main.cpp'],['../llo_2test_2dynamic_2main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): main.cpp'],['../pbm_2test_2main_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): main.cpp']]], + ['make_5fuid',['make_uid',['../graph_8cpp.html#a0880348a71f5d3d25b7fb10fb80086f7',1,'graph.cpp']]], + ['map_5fshape',['map_shape',['../namespaceade.html#a34346ff7bd94cf141c15feb9989c9874',1,'ade']]], + ['matmul',['matmul',['../namespacello.html#a852153aa9a698dea603d1a2f04cf10ce',1,'llo']]], + ['max',['max',['../namespacello.html#a90a19c85f0d98170beab5f85462d5db7',1,'llo::max(std::vector< DataNode > args)'],['../namespacello.html#a0eba005c4545a4522bac459d42c7c140',1,'llo::max(T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)']]], + ['min',['min',['../namespacello.html#af82275fc2bc853a681725d4a593a37e0',1,'llo::min(std::vector< DataNode > args)'],['../namespacello.html#a46192797ea05f96e5f1fbc728f43b2c4',1,'llo::min(T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)']]], + ['move_5fhelper',['move_helper',['../structade_1_1_shape.html#ae2cffe358880cabd1a4a06b56c15e2b5',1,'ade::Shape']]], + ['mul',['mul',['../namespacello.html#ae1f6c9f1f8c72c29b3805dbcc9161b13',1,'llo::mul(DataNode a, DataNode b)'],['../namespacello.html#a908f5da99f5702b96e79b3bf63bf1630',1,'llo::mul(T *out, ade::Shape &outshape, std::vector< VecRef< T >> args)']]] +]; diff --git a/docs/search/functions_a.html b/docs/search/functions_a.html new file mode 100644 index 000000000..3958eb7b9 --- /dev/null +++ b/docs/search/functions_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_a.js b/docs/search/functions_a.js new file mode 100644 index 000000000..524e1dd63 --- /dev/null +++ b/docs/search/functions_a.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['n_5fdims',['n_dims',['../namespacello.html#afa477115431e64f3f3c8de171e314842',1,'llo']]], + ['n_5felems',['n_elems',['../structade_1_1_shape.html#a04fd9614b166a1519221441abeff050d',1,'ade::Shape::n_elems()'],['../namespacello.html#acea4dfe9be22fa6dc82eab15a883d812',1,'llo::n_elems()']]], + ['name_5fop',['name_op',['../namespaceade.html#a8f0d102e4fe792b98b84bff469dc55a1',1,'ade']]], + ['nametype',['nametype',['../namespacello.html#a8a9769d3b2850638feb6a1b7b731da30',1,'llo']]], + ['native_5ftype',['native_type',['../structllo_1_1i_source.html#af7dacf3af20cd637516cc1803207b483',1,'llo::iSource::native_type()'],['../structllo_1_1_source.html#a7840aafe93147ea135358cca681d2887',1,'llo::Source::native_type()']]], + ['neg',['neg',['../namespacello.html#a2b70118e9b3e36d53a27e04d9f542aaa',1,'llo::neg(DataNode arg)'],['../namespacello.html#a2523a51704ba46880ed6b0ed38aa0259',1,'llo::neg(T *out, VecRef< T > in)']]], + ['neg_3c_20uint16_5ft_20_3e',['neg< uint16_t >',['../namespacello.html#a26997fff05dbe6209d720e66cb7c2693',1,'llo']]], + ['neg_3c_20uint32_5ft_20_3e',['neg< uint32_t >',['../namespacello.html#acc26536b3f54b814ca59d94fa87d2728',1,'llo']]], + ['neg_3c_20uint64_5ft_20_3e',['neg< uint64_t >',['../namespacello.html#a9d20723f32966a0b8341676f61f7aa4f',1,'llo']]], + ['neg_3c_20uint8_5ft_20_3e',['neg< uint8_t >',['../namespacello.html#a6580f013947aa53d8e53e6fbd2722afa',1,'llo']]], + ['neq',['neq',['../namespacello.html#a531e1349ac82085fffb5791860ddc453',1,'llo::neq(DataNode a, DataNode b)'],['../namespacello.html#ab6719aec5379449c5df745796e3ce677',1,'llo::neq(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]], + ['nnary',['nnary',['../namespacello.html#a8c77a8e53c0227e523c81699b9c2aab9',1,'llo']]] +]; diff --git a/docs/search/functions_b.html b/docs/search/functions_b.html new file mode 100644 index 000000000..b99b702d2 --- /dev/null +++ b/docs/search/functions_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_b.js b/docs/search/functions_b.js new file mode 100644 index 000000000..0a5565b03 --- /dev/null +++ b/docs/search/functions_b.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['one',['one',['../namespacello.html#a4dc49819de341f92cb313b4c65c4d8ca',1,'llo']]], + ['op_5fexec',['op_exec',['../namespacello.html#adf503fcb029864e47a51221d0a50de85',1,'llo']]], + ['operator_2d_3e',['operator->',['../structade_1_1_tensorptr.html#a530e6549d45b7f3f357905198879aa0f',1,'ade::Tensorptr::operator->(void)'],['../structade_1_1_tensorptr.html#a92da5a589d2f479753acc953f8bc0b61',1,'ade::Tensorptr::operator->(void) const']]], + ['operator_3d',['operator=',['../structade_1_1_shape.html#acd2a09bd0d441203386e75fe5251d697',1,'ade::Shape::operator=(const Shape &other)=default'],['../structade_1_1_shape.html#a6d9ebce77260266dbc73e8d3b0a08993',1,'ade::Shape::operator=(const std::vector< DimT > &dims)'],['../structade_1_1_shape.html#aff04970d322736d89caeece427a3ac03',1,'ade::Shape::operator=(Shape &&other)'],['../structllo_1_1_place_holder.html#aab58d2d748a70fc664ab2dd6b3ea127e',1,'llo::PlaceHolder::operator=(const PlaceHolder &)=default'],['../structllo_1_1_place_holder.html#a9a6a471cce08b99c9b6b3e234f81264c',1,'llo::PlaceHolder::operator=(PlaceHolder &&)=default'],['../structllo_1_1_place_holder.html#a1419b4720161fa203f1b8ee482534019',1,'llo::PlaceHolder::operator=(std::vector< T > data)']]], + ['opname',['opname',['../namespaceade.html#afcde656fd1d8db590042832b525d45be',1,'ade']]] +]; diff --git a/docs/search/functions_c.html b/docs/search/functions_c.html new file mode 100644 index 000000000..3a33d874d --- /dev/null +++ b/docs/search/functions_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_c.js b/docs/search/functions_c.js new file mode 100644 index 000000000..5fea80458 --- /dev/null +++ b/docs/search/functions_c.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['pathfinder',['PathFinder',['../structade_1_1_path_finder.html#a97e908678c6b0136bf6e0ccaaa1e5b4f',1,'ade::PathFinder']]], + ['permute',['permute',['../namespaceade.html#a710e31803e0e22e65d94ee855b411634',1,'ade::permute()'],['../namespacello.html#a79672cad76a10788719f85cdf2466f82',1,'llo::permute()']]], + ['placeholder',['PlaceHolder',['../structllo_1_1_place_holder.html#ac342364040e547d2b9a5b9a8dce2e805',1,'llo::PlaceHolder::PlaceHolder(ade::Shape shape)'],['../structllo_1_1_place_holder.html#aefc2afa23afecbc078e62557b0f1de30',1,'llo::PlaceHolder::PlaceHolder(const PlaceHolder &)=default'],['../structllo_1_1_place_holder.html#a2f841994ecf7cd08ef3b888e63883776',1,'llo::PlaceHolder::PlaceHolder(PlaceHolder &&)=default']]], + ['pow',['pow',['../namespacello.html#ae235b0d4d0f0a0de283d9fe1275f7f21',1,'llo::pow(DataNode a, DataNode b)'],['../namespacello.html#aa56e03e88d5be448c2d06294014a1ff5',1,'llo::pow(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]], + ['prod',['prod',['../namespacello.html#a0cfc133665440a351813d16951840063',1,'llo']]], + ['prune0',['prune0',['../namespacello.html#a226bb5e882e8849525865fb52034e618',1,'llo']]] +]; diff --git a/docs/search/functions_d.html b/docs/search/functions_d.html new file mode 100644 index 000000000..31b75b889 --- /dev/null +++ b/docs/search/functions_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_d.js b/docs/search/functions_d.js new file mode 100644 index 000000000..f51c9a473 --- /dev/null +++ b/docs/search/functions_d.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['rand_5fbinom',['rand_binom',['../namespacello.html#a732d1e31951c47096b4bbbcc4c01886d',1,'llo::rand_binom(DataNode ntrials, DataNode prob)'],['../namespacello.html#a7c719d1c80cf4b57c3068f5bf2a39a72',1,'llo::rand_binom(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< double > b)']]], + ['rand_5fbinom_3c_20double_20_3e',['rand_binom< double >',['../namespacello.html#a7d2d8a9bdf1e3566cf5357c198de9c5b',1,'llo']]], + ['rand_5fbinom_3c_20float_20_3e',['rand_binom< float >',['../namespacello.html#a6590c80bbbd9bfc8936575b95758cf32',1,'llo']]], + ['rand_5fnormal',['rand_normal',['../namespacello.html#a8712bb61bd6b1e5d5e668081d2d98fcd',1,'llo::rand_normal(DataNode mean, DataNode stdev)'],['../namespacello.html#ad1c7348a56a9534c6ff9baa65ebb43dc',1,'llo::rand_normal(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]], + ['rand_5fnormal_3c_20double_20_3e',['rand_normal< double >',['../namespacello.html#a1b742c2923ceb0fc9a1877ab20cabbdb',1,'llo']]], + ['rand_5fnormal_3c_20float_20_3e',['rand_normal< float >',['../namespacello.html#a502ebfee3eb91123ca56a38862c62801',1,'llo']]], + ['rand_5funiform',['rand_uniform',['../namespacello.html#aea75f39584ff0af02e227bbf376e201a',1,'llo::rand_uniform(DataNode lower, DataNode upper)'],['../namespacello.html#adbeb24b7f0ff24b9ad4a4d62801585ff',1,'llo::rand_uniform(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]], + ['rand_5funiform_3c_20double_20_3e',['rand_uniform< double >',['../namespacello.html#a629e4865c5521554995d7b88847695de',1,'llo']]], + ['rand_5funiform_3c_20float_20_3e',['rand_uniform< float >',['../namespacello.html#a1d9acac2589dd4ed27c9f32d31e81c93',1,'llo']]], + ['reassign',['reassign',['../structllo_1_1i_source.html#acf73e2fb7c30badf0385bed1c045872a',1,'llo::iSource::reassign()'],['../structllo_1_1_source.html#a3a7f23b0c43e7c4469552070e291b990',1,'llo::Source::reassign()']]], + ['reduce',['reduce',['../namespaceade.html#a1d2eb371602481a51ca229517eb892b7',1,'ade']]], + ['reduce_5fmax',['reduce_max',['../namespacello.html#a593f8b0cb1ef6249d939c3b7baa11300',1,'llo::reduce_max(DataNode arg)'],['../namespacello.html#a66b3c665abfeca16fa70b839a4d586a8',1,'llo::reduce_max(DataNode arg, uint8_t groupidx)']]], + ['reduce_5fsum',['reduce_sum',['../namespacello.html#a1a24a48c5a6c0124ac2b51270b6af617',1,'llo::reduce_sum(DataNode arg)'],['../namespacello.html#ab93f78824f782df54569502781db8017',1,'llo::reduce_sum(DataNode arg, uint8_t groupidx)']]], + ['ref',['ref',['../structade_1_1_tensorptr.html#a43e398be476f6a57ffbb42b93d314fa9',1,'ade::Tensorptr']]], + ['reverse',['reverse',['../structade_1_1i_coord_map.html#aefa18191949c10d211e16c7d07957f88',1,'ade::iCoordMap::reverse()'],['../structade_1_1_coord_map.html#a729c3bc4daf89f8185d22c199dab88a4',1,'ade::CoordMap::reverse()']]], + ['round',['round',['../namespacello.html#ad7dc30f99ed6f7b894cd51a508d96bbc',1,'llo::round(DataNode arg)'],['../namespacello.html#af2a4ec16dc83e924a43ac86a3893b411',1,'llo::round(T *out, VecRef< T > in)']]], + ['rtrim',['rtrim',['../test__grader_8cpp.html#af6d6bd5c29782e3b958b5f7c0d1ea9e3',1,'rtrim(std::string &s): test_grader.cpp'],['../test__load_8cpp.html#af6d6bd5c29782e3b958b5f7c0d1ea9e3',1,'rtrim(std::string &s): test_load.cpp']]] +]; diff --git a/docs/search/functions_e.html b/docs/search/functions_e.html new file mode 100644 index 000000000..cddb9bb58 --- /dev/null +++ b/docs/search/functions_e.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_e.js b/docs/search/functions_e.js new file mode 100644 index 000000000..cadb5f3e2 --- /dev/null +++ b/docs/search/functions_e.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['save_5fcoord',['save_coord',['../graph_8cpp.html#a984a78ce06b9ac2682e540a7d381fb62',1,'graph.cpp']]], + ['save_5fdata',['save_data',['../source_8hpp.html#a3c782b5c27b28c8b5a14ccafe758a092',1,'save_data(tenncor::Source *out, llo::iSource *in): source.cpp'],['../source_8cpp.html#a3c782b5c27b28c8b5a14ccafe758a092',1,'save_data(tenncor::Source *out, llo::iSource *in): source.cpp']]], + ['save_5fgraph',['save_graph',['../graph_8hpp.html#a11863a9583c183f1f7393fe9589f4435',1,'save_graph(tenncor::Graph &out, std::vector< llo::DataNode > &roots): graph.cpp'],['../graph_8cpp.html#a11863a9583c183f1f7393fe9589f4435',1,'save_graph(tenncor::Graph &out, std::vector< llo::DataNode > &roots): graph.cpp']]], + ['set_5flogger',['set_logger',['../namespaceade.html#af247a5c3f8cc0572f7756a94f49ace26',1,'ade']]], + ['shape',['Shape',['../structade_1_1_shape.html#a75d3e1cea374e9aa648fac6b4cadbb04',1,'ade::Shape::Shape(void)'],['../structade_1_1_shape.html#a30248491a0ecde17ae698ff6419917c6',1,'ade::Shape::Shape(std::vector< DimT > dims)'],['../structade_1_1_shape.html#a4f965312d8df445063305ea750220b3d',1,'ade::Shape::Shape(const Shape &other)=default'],['../structade_1_1_shape.html#ab5dd96f6f468e8b17e66e94ec22a9b41',1,'ade::Shape::Shape(Shape &&other)'],['../structade_1_1_functor.html#a00c3cbc202d5c94ab9a2fa2270e3a688',1,'ade::Functor::shape()'],['../structade_1_1i_tensor.html#a782c626a29501f974532905657c8d66b',1,'ade::iTensor::shape()'],['../structade_1_1_tensor.html#a7460655c01d7be7fed376d30b8aa3804',1,'ade::Tensor::shape()']]], + ['shaped_5fone',['shaped_one',['../namespaceade.html#af467998d5df53ca21a0d0c19f3a7afaa',1,'ade']]], + ['shaped_5fscalar',['shaped_scalar',['../namespacello.html#a2d0d6658687aa47d631679302c3cc3b7',1,'llo']]], + ['shaped_5fzero',['shaped_zero',['../namespaceade.html#a0dd34842c0ca097338a8dad3614e8061',1,'ade']]], + ['sin',['sin',['../namespacello.html#ad10afc6cb9a918b836b007de06cafd0d',1,'llo::sin(DataNode arg)'],['../namespacello.html#a7ada6615379c84d32f577bf21ffd4d77',1,'llo::sin(T *out, VecRef< T > in)']]], + ['source',['Source',['../structllo_1_1_source.html#a7ee289a948b908f3fa739b56eb0f021e',1,'llo::Source::Source(std::shared_ptr< ade::Tensor > &tensor, std::vector< T > &data)'],['../structllo_1_1_source.html#ae8c90f69b2ffd3828f934e781b7b5d8d',1,'llo::Source::Source(const Source< T > &other)'],['../structllo_1_1_data_node.html#a412496c79e9b7ffe52ea7db0d8b1e794',1,'llo::DataNode::source()']]], + ['sprintf',['sprintf',['../namespaceade.html#ac669931e7bcc942bd2167d58daa7f42e',1,'ade']]], + ['sqrt',['sqrt',['../namespacello.html#a3faeaadbbce6cc14981ddbcf4d6d9ec7',1,'llo::sqrt(DataNode arg)'],['../namespacello.html#a40740fc01ce4d1408ec880d7acadf57d',1,'llo::sqrt(T *out, VecRef< T > in)']]], + ['sub',['sub',['../namespacello.html#af2176f982795aabc46dec8f869a121a9',1,'llo::sub(DataNode a, DataNode b)'],['../namespacello.html#a8d63aab2daa521a780c4afd376cb8db7',1,'llo::sub(T *out, ade::Shape &outshape, VecRef< T > a, VecRef< T > b)']]], + ['sum',['sum',['../namespacello.html#aa1d7015f59d30357ebbd3fe8cf9f3859',1,'llo']]] +]; diff --git a/docs/search/functions_f.html b/docs/search/functions_f.html new file mode 100644 index 000000000..496729261 --- /dev/null +++ b/docs/search/functions_f.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_f.js b/docs/search/functions_f.js new file mode 100644 index 000000000..445b1e5ff --- /dev/null +++ b/docs/search/functions_f.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['tan',['tan',['../namespacello.html#a9b4eea566390c8d533918d460eb7c98f',1,'llo::tan(DataNode arg)'],['../namespacello.html#ab2aa244b48aa8b6ebf724a554002c3d0',1,'llo::tan(T *out, VecRef< T > in)']]], + ['teardown',['TearDown',['../struct_c_o_o_r_d.html#a4d0ce8968404b9026081a71880b752a1',1,'COORD::TearDown()'],['../struct_s_h_a_p_e.html#a431c4086d62fbeefd75c6ba15ab0234f',1,'SHAPE::TearDown()'],['../struct_l_o_g.html#a010bcb9309098fe9c0496f8e5ab002f0',1,'LOG::TearDown()'],['../struct_a_p_i.html#a11d8384d704cec34cfb08aad9742472c',1,'API::TearDown()'],['../struct_d_t_y_p_e.html#a328f14706c9d297aa59d885a2dc40f86',1,'DTYPE::TearDown()'],['../struct_n_o_d_e.html#a19335d31d29d44019fe67655b97ce1f8',1,'NODE::TearDown()']]], + ['tensor',['Tensor',['../structade_1_1_tensor.html#ae6bba462f252fd2c8c4d50cca35f0b93',1,'ade::Tensor']]], + ['tensorptr',['Tensorptr',['../structade_1_1_tensorptr.html#a0a689a5fc65e812539dce83d064912c0',1,'ade::Tensorptr::Tensorptr(iTensor &tens)'],['../structade_1_1_tensorptr.html#a98822824f7bfea19f31f38f47de18401',1,'ade::Tensorptr::Tensorptr(iTensor *tens)'],['../structade_1_1_tensorptr.html#ad3d85def7b088f5063c9fa59650d7071',1,'ade::Tensorptr::Tensorptr(std::shared_ptr< iTensor > tens)']]], + ['test',['TEST',['../test__string_8cpp.html#abab0266d1276755176bb76ecf27368a1',1,'TEST(STREAM, StringFmt): test_string.cpp'],['../test__string_8cpp.html#a7ddec4da6a918781d3cf67e48252dfa2',1,'TEST(STREAM, GenericFmt): test_string.cpp'],['../test__string_8cpp.html#a3ed15a36b22407a7a190f0df64048f95',1,'TEST(STREAM, Iterators): test_string.cpp'],['../test__string_8cpp.html#a2adecd32e3d9f3127d365f2891d635ff',1,'TEST(STRING, Iterators): test_string.cpp'],['../test__string_8cpp.html#ae5d0866efe130b2fb8c3274e6e0a8b63',1,'TEST(STRING, Sprintf): test_string.cpp'],['../test__grader_8cpp.html#aaa8802c17085c3952c5c05fd063a0d60',1,'TEST(GRADER, COPY): test_grader.cpp'],['../test__grader_8cpp.html#aad46f9ff442df5c40616a94abecb4586',1,'TEST(GRADER, ABS): test_grader.cpp'],['../test__grader_8cpp.html#ae2f5606d0023f487474c2cac037e73c8',1,'TEST(GRADER, NEG): test_grader.cpp'],['../test__grader_8cpp.html#af2e1669ae0f03be9f53574b3ac78e57a',1,'TEST(GRADER, SIN): test_grader.cpp'],['../test__grader_8cpp.html#a06b58580a8cc73185f40a1b3e4f32725',1,'TEST(GRADER, COS): test_grader.cpp'],['../test__grader_8cpp.html#ae01ecda925f18e3d2475162d9372af7b',1,'TEST(GRADER, TAN): test_grader.cpp'],['../test__grader_8cpp.html#a950d8fc3ca6c10a819932f098a160ff4',1,'TEST(GRADER, EXP): test_grader.cpp'],['../test__grader_8cpp.html#ab524c57c820f4f4b3b0962a2b21f89a7',1,'TEST(GRADER, LOG): test_grader.cpp'],['../test__grader_8cpp.html#a214cf5b289b6d028a203236aae037a85',1,'TEST(GRADER, SQRT): test_grader.cpp'],['../test__grader_8cpp.html#a078c34a9d35f5015edaf94d37edc846b',1,'TEST(GRADER, ROUND): test_grader.cpp'],['../test__grader_8cpp.html#a698ef2b53037577246143879803a513a',1,'TEST(GRADER, POW): test_grader.cpp'],['../test__grader_8cpp.html#a42d137ae0bc9936c9a3d7fe0c1b90ba1',1,'TEST(GRADER, ADD): test_grader.cpp'],['../test__grader_8cpp.html#a94ffc126992d7b674cd347f9edb64a25',1,'TEST(GRADER, SUB): test_grader.cpp'],['../test__grader_8cpp.html#af3be746e719ca7e0169a164eb28b50fd',1,'TEST(GRADER, MUL): test_grader.cpp'],['../test__grader_8cpp.html#ad982a4311e0a9632e2cf27f638b5db10',1,'TEST(GRADER, DIV): test_grader.cpp'],['../test__grader_8cpp.html#ad467d76b8a74bdc6f4e774057bfbd57a',1,'TEST(GRADER, EQ): test_grader.cpp'],['../test__grader_8cpp.html#a8f4859973079f13c6668102027bc0baf',1,'TEST(GRADER, NE): test_grader.cpp'],['../test__grader_8cpp.html#ab9c15b0e6ba627a557de0da7e044aefc',1,'TEST(GRADER, LT): test_grader.cpp'],['../test__grader_8cpp.html#aa86e7dd966da9cfe4780a3ff7c3f90ec',1,'TEST(GRADER, GT): test_grader.cpp'],['../test__grader_8cpp.html#a25f9f599e0165b5504e21d15b07c6f80',1,'TEST(GRADER, RAND_BINO): test_grader.cpp'],['../test__grader_8cpp.html#a2c439e35e1ee8f0353c784ba63260da0',1,'TEST(GRADER, RAND_UNIF): test_grader.cpp'],['../test__grader_8cpp.html#a3961dda2dba037ea753ef05f2b04db94',1,'TEST(GRADER, RAND_NORM): test_grader.cpp'],['../test__load_8cpp.html#a1ac146dbb8f838f9030e763c84c8b8e4',1,'TEST(LOAD, LoadGraph): test_load.cpp'],['../test__save_8cpp.html#a85764cb03807e406f7b69ef78eb904d2',1,'TEST(SAVE, SaveGraph): test_save.cpp']]], + ['test_5ff',['TEST_F',['../test__coord_8cpp.html#a14529b90737598b8ae25224e080b426e',1,'TEST_F(COORD, Inverse): test_coord.cpp'],['../test__coord_8cpp.html#aba12fd55610ec84812e82d3d17c33f29',1,'TEST_F(COORD, Identity): test_coord.cpp'],['../test__functor_8cpp.html#a3dd9cfcf63804f6b9615545155c886b2',1,'TEST_F(FUNCTOR, Childrens): test_functor.cpp'],['../test__functor_8cpp.html#afbf9dde2ff9d079b97d61c47b0a9a7de',1,'TEST_F(FUNCTOR, ToString): test_functor.cpp'],['../test__functor_8cpp.html#a8bb6cd552f763abbe52fa416ec815abd',1,'TEST_F(FUNCTOR, OpNaming): test_functor.cpp'],['../test__shape_8cpp.html#abe63988ecd263f490f0ea1df413b7998',1,'TEST_F(SHAPE, Init): test_shape.cpp'],['../test__shape_8cpp.html#ab44c00719edd7b8270fd8782c5e93ffe',1,'TEST_F(SHAPE, VecAssign): test_shape.cpp'],['../test__shape_8cpp.html#a0cb1db2156771a3a6f37f32df05f317c',1,'TEST_F(SHAPE, Moves): test_shape.cpp'],['../test__shape_8cpp.html#a887e46683d9cc26322666656ba7f0f64',1,'TEST_F(SHAPE, NElems): test_shape.cpp'],['../test__shape_8cpp.html#ac89ec92444eff33564d28b3f2d575ece',1,'TEST_F(SHAPE, Compatible): test_shape.cpp'],['../test__shape_8cpp.html#a3b19dcc494d14f426d5edb13cf544ade',1,'TEST_F(SHAPE, Coordinates): test_shape.cpp'],['../test__shape_8cpp.html#ae3d35a83498ac8c8984a7bb8ff023e41',1,'TEST_F(SHAPE, ToString): test_shape.cpp'],['../test__tensor_8cpp.html#a7144711a0887c030da37b00d1748d185',1,'TEST_F(TENSOR, Gradient): test_tensor.cpp'],['../test__tensor_8cpp.html#abe6c099e0ef764491ffcde881c6c7c84',1,'TEST_F(TENSOR, ToString): test_tensor.cpp'],['../test__log_8cpp.html#a5760a0b1020470356b71ae48d7c152dd',1,'TEST_F(LOG, Default): test_log.cpp'],['../test__log_8cpp.html#a7101900df36fa2aec6e6a36a0cfb1366',1,'TEST_F(LOG, Warn): test_log.cpp'],['../test__log_8cpp.html#a2beca8dd51b7b63e7bd576e8c4773e70',1,'TEST_F(LOG, WarnFmt): test_log.cpp'],['../test__log_8cpp.html#a4cfe03fd204e9d237821ed80629fd1b8',1,'TEST_F(LOG, Error): test_log.cpp'],['../test__log_8cpp.html#adb3100e6a07584a8adffc7b51992bed5',1,'TEST_F(LOG, ErrorFmt): test_log.cpp'],['../test__log_8cpp.html#a426862788c8b85820f2f137ee5bb4957',1,'TEST_F(LOG, Fatal): test_log.cpp'],['../test__log_8cpp.html#ad86f967b731f206b5a38348095dc1be2',1,'TEST_F(LOG, FatalFmt): test_log.cpp'],['../test__api_8cpp.html#a461c984a6247f220fde82579b8fab468',1,'TEST_F(API, Abs): test_api.cpp'],['../test__api_8cpp.html#a48a67dcd99184f9c5451fbc27b18439b',1,'TEST_F(API, Neg): test_api.cpp'],['../test__api_8cpp.html#a3a340d7c7c92253cbeb307fd49ebda30',1,'TEST_F(API, Sin): test_api.cpp'],['../test__api_8cpp.html#a21109270c4c95ad524d5d86392b7cf8b',1,'TEST_F(API, Cos): test_api.cpp'],['../test__api_8cpp.html#a6058800160c6bdedfb46271934bca012',1,'TEST_F(API, Tan): test_api.cpp'],['../test__api_8cpp.html#ad4aac26090d20c25bf2302b06fca68c0',1,'TEST_F(API, Exp): test_api.cpp'],['../test__api_8cpp.html#ae44ed8d3c782a473c5d7640a83981aa0',1,'TEST_F(API, Log): test_api.cpp'],['../test__api_8cpp.html#a71aaae207128ed5b63e9ea355bdabe04',1,'TEST_F(API, Sqrt): test_api.cpp'],['../test__api_8cpp.html#ae281bca03267474c3d95e27680cbd379',1,'TEST_F(API, Round): test_api.cpp'],['../test__api_8cpp.html#a61d9bf2c1a58f81bbdf917b0e88e33dc',1,'TEST_F(API, Flip): test_api.cpp'],['../test__api_8cpp.html#abe9dfec523d97cf990782d316987e5ab',1,'TEST_F(API, Pow): test_api.cpp'],['../test__api_8cpp.html#a945d667b859ceb5f4a9a8abba86a625e',1,'TEST_F(API, Add): test_api.cpp'],['../test__api_8cpp.html#a7fc6fbb4349c809aeba735400c12f471',1,'TEST_F(API, Sub): test_api.cpp'],['../test__api_8cpp.html#a5dd589b167f1105081003f4ccd4f61c6',1,'TEST_F(API, Mul): test_api.cpp'],['../test__api_8cpp.html#a4dbd00e9f8783b52e2202e5834d53be5',1,'TEST_F(API, Div): test_api.cpp'],['../test__api_8cpp.html#a33afece09ea0b40fe91dfc50d4d8d235',1,'TEST_F(API, Min): test_api.cpp'],['../test__api_8cpp.html#ab6098e32e19efe3e38b2f0b10851dcd5',1,'TEST_F(API, Max): test_api.cpp'],['../test__api_8cpp.html#a606bfa4f0a176e06aea72e5c29831bf4',1,'TEST_F(API, Eq): test_api.cpp'],['../test__api_8cpp.html#accaaea6b56c31c276b32d9bb4df3a9b3',1,'TEST_F(API, Neq): test_api.cpp'],['../test__api_8cpp.html#ae902852811aba465879ba6c922d8e64e',1,'TEST_F(API, Lt): test_api.cpp'],['../test__api_8cpp.html#a3570e66ac5db522f59c4ef79366f3244',1,'TEST_F(API, Gt): test_api.cpp'],['../test__api_8cpp.html#aa8d49738c4426156768cee274b042cd5',1,'TEST_F(API, NElems): test_api.cpp'],['../test__api_8cpp.html#a8cdf739fb5856ddf4f6650d72eedc515',1,'TEST_F(API, NDims): test_api.cpp'],['../test__api_8cpp.html#a6469a9d8a5433b267b559d00a05fe2c8',1,'TEST_F(API, Rmax): test_api.cpp'],['../test__api_8cpp.html#a2bbd7afa5da39c828741e81fd17f1ba4',1,'TEST_F(API, Rsum): test_api.cpp'],['../test__api_8cpp.html#a7da937909092b7a9676e80813e1a0779',1,'TEST_F(API, Matmul2d): test_api.cpp'],['../test__api_8cpp.html#ae05f8d6eb95c4f4992fbf3228f7ffe70',1,'TEST_F(API, Permute): test_api.cpp'],['../test__api_8cpp.html#ab7aa36a76311f19227ae781092fde71f',1,'TEST_F(API, Extend): test_api.cpp'],['../test__dtype_8cpp.html#a85553be309a66da146efc03cd3e3ca44',1,'TEST_F(DTYPE, DataConvert): test_dtype.cpp'],['../test__dtype_8cpp.html#ae27eeac898300abf76d182dc01594594',1,'TEST_F(DTYPE, GetType): test_dtype.cpp'],['../test__dtype_8cpp.html#a6b66e5d2d41c6de27ce260fdd169d3d1',1,'TEST_F(DTYPE, TypeSize): test_dtype.cpp'],['../test__dtype_8cpp.html#a7d2ffd71a1ff5b666ca266ec442f9039',1,'TEST_F(DTYPE, TypeName): test_dtype.cpp'],['../test__node_8cpp.html#a34a413530a870bf73ca80e59b72ab26c',1,'TEST_F(NODE, MismatchSource): test_node.cpp'],['../test__node_8cpp.html#a77d8520509d739901f84ad7ad0a79f35',1,'TEST_F(NODE, SourceRetype): test_node.cpp'],['../test__node_8cpp.html#a809a08201dc7e16ac29e2c094087999d',1,'TEST_F(NODE, PlaceHolder): test_node.cpp'],['../llo_2test_2regress_2main_8cpp.html#af7fab4a34653ee432d2669b3f5b19471',1,'TEST_F(REGRESS, Abs): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a789e355f1626c6c1413937d1967ce448',1,'TEST_F(REGRESS, Neg): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a8b21bd0c3511c163d9ce264f431c0c48',1,'TEST_F(REGRESS, Sin): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a08f7e28a807ecc8a71469bbf027c8e11',1,'TEST_F(REGRESS, Cos): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a55115592c770163ccb6893cb766610d3',1,'TEST_F(REGRESS, Tan): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#ab79026e71d30dee7968b1f9cd6b45eea',1,'TEST_F(REGRESS, Exp): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#ade95973f9f99a7a28d19e8ebcf309bff',1,'TEST_F(REGRESS, Log): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a7f7e577da4734758709d0ca63818315a',1,'TEST_F(REGRESS, Sqrt): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a72c2195916358d35226437116567cb08',1,'TEST_F(REGRESS, Pow): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#acf49615c6711c0602e8f504939a8c9f7',1,'TEST_F(REGRESS, Add): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#ad096fe14a01c03fc472fd70f06bd7095',1,'TEST_F(REGRESS, Sub): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a8816b2b81a1b2d3726135f81b5d705de',1,'TEST_F(REGRESS, Mul): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#a9a8dc4aa89c314c6e81fdf4acddb8f09',1,'TEST_F(REGRESS, Div): main.cpp'],['../llo_2test_2regress_2main_8cpp.html#add7169a00f0e99cf8dee272805a974ac',1,'TEST_F(REGRESS, Matmul): main.cpp']]], + ['to_5fstream',['to_stream',['../namespaceade.html#ac70e520ffea99b4a14accbe6e8c7ba3e',1,'ade::to_stream(std::ostream &s, const char *str)'],['../namespaceade.html#a47a30a98743ceffb8fe53f8417e75c2e',1,'ade::to_stream(std::ostream &s, std::string str)'],['../namespaceade.html#afa6579eb8eb4c8438765fc25cc4fa5cb',1,'ade::to_stream(std::ostream &s, int8_t c)'],['../namespaceade.html#ab40db58a13933043501a4704ca57537b',1,'ade::to_stream(std::ostream &s, uint8_t c)'],['../namespaceade.html#a0a05af351060ccb6f0bc35fe8d4ae1a5',1,'ade::to_stream(std::ostream &s, T val)'],['../namespaceade.html#a807e29a2077151f4237bb494efe16152',1,'ade::to_stream(std::ostream &s, Iterator begin, Iterator end)']]], + ['to_5fstring',['to_string',['../structade_1_1i_coord_map.html#a1303dc91fea22702ba403732ba25227f',1,'ade::iCoordMap::to_string()'],['../structade_1_1_coord_map.html#a35bd718362918b31a1f0f2a86c2a3c3b',1,'ade::CoordMap::to_string()'],['../structade_1_1_functor.html#a4503e570f95a289825384be36689be9a',1,'ade::Functor::to_string()'],['../structade_1_1_shape.html#a92348dfc2c555cae7d1d42a48f59bd6d',1,'ade::Shape::to_string()'],['../structade_1_1i_tensor.html#a01138fc6bce780fcd4b4e495ca050fce',1,'ade::iTensor::to_string()'],['../structade_1_1_tensor.html#ac589897b8d4294ab3d272c1600bd4064',1,'ade::Tensor::to_string()'],['../namespaceade.html#a1d72ab33ed6956796fabebb356dabe43',1,'ade::to_string(T arg)'],['../namespaceade.html#ac98621990f6185b80c4476d07d5c8e11',1,'ade::to_string(Iterator begin, Iterator end)'],['../namespaceade.html#adf0ae4c17a6835d771a3e8e1502f9ad6',1,'ade::to_string(const MatrixT &mat)']]], + ['tree_5feq',['TREE_EQ',['../test__grader_8cpp.html#a0cba1d9d20f96f84c9189c047ae75086',1,'test_grader.cpp']]], + ['trim',['trim',['../test__grader_8cpp.html#a6ef734356291c638e5787a6c668192d4',1,'trim(std::string &s): test_grader.cpp'],['../test__load_8cpp.html#a6ef734356291c638e5787a6c668192d4',1,'trim(std::string &s): test_load.cpp']]], + ['type_5fsize',['type_size',['../namespacello.html#a1d2737ee3c869bb60c8dfef549eae3ed',1,'llo']]] +]; diff --git a/docs/search/mag_sel.png b/docs/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 GIT binary patch literal 563 zcmV-30?hr1P)zxx&tqG15pu7)IiiXFflOc2k;dXd>%13GZAy? zRz!q0=|E6a6vV)&ZBS~G9oe0kbqyw1*gvY`{Pop2oKq#FlzgXt@Xh-7fxh>}`Fxg> z$%N%{$!4=5nM{(;=c!aG1Ofr^Do{u%Ih{^&Fc@H2)+a-?TBXrw5DW&z%Nb6mQ!L9O zl}b@6mB?f=tX3;#vl)}ggh(Vpyh(IK z(Mb0D{l{U$FsRjP;!{($+bsaaVi8T#1c0V#qEIOCYa9@UVLV`f__E81L;?WEaRA;Y zUH;rZ;vb;mk7JX|$=i3O~&If0O@oZfLg8gfIjW=dcBsz;gI=!{-r4# z4%6v$&~;q^j7Fo67yJ(NJWuX+I~I!tj^nW3?}^9bq|<3^+vapS5sgM^x7!cs(+mMT z&y%j};&~po+YO)3hoUH4E*E;e9>?R6SS&`X)p`njycAVcg{rEb41T{~Hk(bl-7eSb zmFxA2uIqo#@R?lKm50ND`~6Nfn|-b1|L6O98vt3Tx@gKz#isxO002ovPDHLkV1kyW B_l^Jn literal 0 HcmV?d00001 diff --git a/docs/search/namespaces_0.html b/docs/search/namespaces_0.html new file mode 100644 index 000000000..f55ca63aa --- /dev/null +++ b/docs/search/namespaces_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/namespaces_0.js b/docs/search/namespaces_0.js new file mode 100644 index 000000000..d3b5c3267 --- /dev/null +++ b/docs/search/namespaces_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ade',['ade',['../namespaceade.html',1,'']]] +]; diff --git a/docs/search/namespaces_1.html b/docs/search/namespaces_1.html new file mode 100644 index 000000000..37c816cc4 --- /dev/null +++ b/docs/search/namespaces_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/namespaces_1.js b/docs/search/namespaces_1.js new file mode 100644 index 000000000..74d4595c1 --- /dev/null +++ b/docs/search/namespaces_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['llo',['llo',['../namespacello.html',1,'']]] +]; diff --git a/docs/search/nomatches.html b/docs/search/nomatches.html new file mode 100644 index 000000000..b1ded27e9 --- /dev/null +++ b/docs/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/docs/search/pages_0.html b/docs/search/pages_0.html new file mode 100644 index 000000000..d7528582d --- /dev/null +++ b/docs/search/pages_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/pages_0.js b/docs/search/pages_0.js new file mode 100644 index 000000000..bbbbf3197 --- /dev/null +++ b/docs/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ade_20_28automatic_20differentiation_20engine_29',['ADE (Automatic Differentiation Engine)',['../md_ade__r_e_a_d_m_e__a_d_e.html',1,'']]] +]; diff --git a/docs/search/pages_1.html b/docs/search/pages_1.html new file mode 100644 index 000000000..924fb482e --- /dev/null +++ b/docs/search/pages_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/pages_1.js b/docs/search/pages_1.js new file mode 100644 index 000000000..d6c18e5c6 --- /dev/null +++ b/docs/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['llo_20_28low_2dlevel_20operators_29',['LLO (Low-Level Operators)',['../md_llo__r_e_a_d_m_e__l_l_o.html',1,'']]] +]; diff --git a/docs/search/pages_2.html b/docs/search/pages_2.html new file mode 100644 index 000000000..ffc6d9295 --- /dev/null +++ b/docs/search/pages_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/pages_2.js b/docs/search/pages_2.js new file mode 100644 index 000000000..6dfe0c49e --- /dev/null +++ b/docs/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pbm_20_28protobuf_20marshaller_29',['PBM (Protobuf Marshaller)',['../md_pbm__r_e_a_d_m_e__p_b_m.html',1,'']]] +]; diff --git a/docs/search/pages_3.html b/docs/search/pages_3.html new file mode 100644 index 000000000..f3746246f --- /dev/null +++ b/docs/search/pages_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/pages_3.js b/docs/search/pages_3.js new file mode 100644 index 000000000..54dc59b9b --- /dev/null +++ b/docs/search/pages_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tenncor',['Tenncor',['../index.html',1,'']]] +]; diff --git a/docs/search/search.css b/docs/search/search.css new file mode 100644 index 000000000..3cf9df94a --- /dev/null +++ b/docs/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + float: none; + margin-top: 8px; + right: 0px; + width: 170px; + height: 24px; + z-index: 102; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:115px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:8px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/docs/search/search.js b/docs/search/search.js new file mode 100644 index 000000000..a554ab9cb --- /dev/null +++ b/docs/search/search.js @@ -0,0 +1,814 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; ek7RCwB~R6VQOP#AvB$vH7i{6H{96zot$7cZT<7246EF5Np6N}+$IbiG6W zg#87A+NFaX+=_^xM1#gCtshC=E{%9^uQX_%?YwXvo{#q&MnpJ8uh(O?ZRc&~_1%^SsPxG@rfElJg-?U zm!Cz-IOn(qJP3kDp-^~qt+FGbl=5jNli^Wj_xIBG{Rc0en{!oFvyoNC7{V~T8}b>| z=jL2WIReZzX(YN(_9fV;BBD$VXQIxNasAL8ATvEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/docs/search/search_r.png b/docs/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a GIT binary patch literal 612 zcmV-q0-ODbP)PbXFRCwB?)W514K@j&X?z2*SxFI6-@HT2E2K=9X9%Pb zEK*!TBw&g(DMC;|A)uGlRkOS9vd-?zNs%bR4d$w+ox_iFnE8fvIvv7^5<(>Te12Li z7C)9srCzmK{ZcNM{YIl9j{DePFgOWiS%xG@5CnnnJa4nvY<^glbz7^|-ZY!dUkAwd z{gaTC@_>b5h~;ug#R0wRL0>o5!hxm*s0VW?8dr}O#zXTRTnrQm_Z7z1Mrnx>&p zD4qifUjzLvbVVWi?l?rUzwt^sdb~d!f_LEhsRVIXZtQ=qSxuxqm zEX#tf>$?M_Y1-LSDT)HqG?`%-%ZpY!#{N!rcNIiL;G7F0`l?)mNGTD9;f9F5Up3Kg zw}a<-JylhG&;=!>B+fZaCX+?C+kHYrP%c?X2!Zu_olK|GcS4A70HEy;vn)I0>0kLH z`jc(WIaaHc7!HS@f*^R^Znx8W=_jIl2oWJoQ*h1^$FX!>*PqR1J8k|fw}w_y}TpE>7m8DqDO<3z`OzXt$ccSejbEZCg@0000 + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/typedefs_0.js b/docs/search/typedefs_0.js new file mode 100644 index 000000000..d7103c6ef --- /dev/null +++ b/docs/search/typedefs_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['argst',['ArgsT',['../namespaceade.html#af28393f7365a2b01ebee3cb9b4a5ec11',1,'ade']]] +]; diff --git a/docs/search/typedefs_1.html b/docs/search/typedefs_1.html new file mode 100644 index 000000000..7af807db4 --- /dev/null +++ b/docs/search/typedefs_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/typedefs_1.js b/docs/search/typedefs_1.js new file mode 100644 index 000000000..1a21a5095 --- /dev/null +++ b/docs/search/typedefs_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['binarybwdf',['BinaryBwdF',['../test__api_8cpp.html#a6cb611b7fa6349c0100441a53436355e',1,'test_api.cpp']]], + ['binaryfwdf',['BinaryFwdF',['../test__api_8cpp.html#afc6a67acd6e318317965cb0470942d09',1,'test_api.cpp']]], + ['binaryopf',['BinaryOpF',['../test__api_8cpp.html#ae8b4913dc1af71d011a683f98fad3b6c',1,'test_api.cpp']]] +]; diff --git a/docs/search/typedefs_2.html b/docs/search/typedefs_2.html new file mode 100644 index 000000000..745d076c8 --- /dev/null +++ b/docs/search/typedefs_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/typedefs_2.js b/docs/search/typedefs_2.js new file mode 100644 index 000000000..ef3d95850 --- /dev/null +++ b/docs/search/typedefs_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['cdimt',['CDimT',['../namespaceade.html#a3d51824d72b7db5898f13557cbb46bfe',1,'ade']]], + ['const_5fiterator',['const_iterator',['../structade_1_1_shape.html#af5d9eb48851f23a0ea928618459da7c7',1,'ade::Shape']]], + ['coordptrt',['CoordPtrT',['../namespaceade.html#a0ef5f1cbd91bffedaec8b24004b5597a',1,'ade']]], + ['coordt',['CoordT',['../namespaceade.html#a2abdde771b6a0fd0afdafaed7ab00c48',1,'ade']]] +]; diff --git a/docs/search/typedefs_3.html b/docs/search/typedefs_3.html new file mode 100644 index 000000000..def60a5be --- /dev/null +++ b/docs/search/typedefs_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/typedefs_3.js b/docs/search/typedefs_3.js new file mode 100644 index 000000000..0f8dd7794 --- /dev/null +++ b/docs/search/typedefs_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['dataargst',['DataArgsT',['../namespacello.html#a6ec0ba51bfa245ed21dfe6b84bc995c1',1,'llo']]], + ['dimt',['DimT',['../namespaceade.html#a127eeea15ccaee9ff162f34393f314c2',1,'ade']]] +]; diff --git a/docs/search/typedefs_4.html b/docs/search/typedefs_4.html new file mode 100644 index 000000000..ef733ad27 --- /dev/null +++ b/docs/search/typedefs_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/typedefs_4.js b/docs/search/typedefs_4.js new file mode 100644 index 000000000..55be1772c --- /dev/null +++ b/docs/search/typedefs_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['enginet',['EngineT',['../namespacello.html#a80fc8a112cc3f147a818d53f6045ac0b',1,'llo']]] +]; diff --git a/docs/search/typedefs_5.html b/docs/search/typedefs_5.html new file mode 100644 index 000000000..94db6d21e --- /dev/null +++ b/docs/search/typedefs_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/typedefs_5.js b/docs/search/typedefs_5.js new file mode 100644 index 000000000..71e795e8b --- /dev/null +++ b/docs/search/typedefs_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['iterator',['iterator',['../structade_1_1_shape.html#a724478494d1b325cc5f16e35d3c72172',1,'ade::Shape']]] +]; diff --git a/docs/search/typedefs_6.html b/docs/search/typedefs_6.html new file mode 100644 index 000000000..bda8ea1c5 --- /dev/null +++ b/docs/search/typedefs_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/typedefs_6.js b/docs/search/typedefs_6.js new file mode 100644 index 000000000..8fcf55eb3 --- /dev/null +++ b/docs/search/typedefs_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['matrixt',['MatrixT',['../namespaceade.html#ae0f6687dd704fcf5c00f841da0509246',1,'ade']]], + ['matvect',['MatVecT',['../test__api_8cpp.html#af816362a86a0829de834ee7c8ddb8a57',1,'test_api.cpp']]] +]; diff --git a/docs/search/typedefs_7.html b/docs/search/typedefs_7.html new file mode 100644 index 000000000..565b233f1 --- /dev/null +++ b/docs/search/typedefs_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/typedefs_7.js b/docs/search/typedefs_7.js new file mode 100644 index 000000000..f8a8a0f02 --- /dev/null +++ b/docs/search/typedefs_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['nelemt',['NElemT',['../namespaceade.html#a2fba34a89f37ea9ee310914daefd880d',1,'ade']]] +]; diff --git a/docs/search/typedefs_8.html b/docs/search/typedefs_8.html new file mode 100644 index 000000000..3063e0327 --- /dev/null +++ b/docs/search/typedefs_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/typedefs_8.js b/docs/search/typedefs_8.js new file mode 100644 index 000000000..2af0be995 --- /dev/null +++ b/docs/search/typedefs_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['parentmapt',['ParentMapT',['../structade_1_1_path_finder.html#a087d42a0dfacb07420cb00602a7fa848',1,'ade::PathFinder']]] +]; diff --git a/docs/search/typedefs_9.html b/docs/search/typedefs_9.html new file mode 100644 index 000000000..9c978f7ad --- /dev/null +++ b/docs/search/typedefs_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/typedefs_9.js b/docs/search/typedefs_9.js new file mode 100644 index 000000000..34978020c --- /dev/null +++ b/docs/search/typedefs_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['shapet',['ShapeT',['../namespaceade.html#ae85a1831aeb0b2b43c3730301cbaec30',1,'ade']]], + ['sourcepoolt',['SourcePoolT',['../namespacello.html#aa2c6ef7ce0d8ecee33d253b58c1ee8f6',1,'llo']]] +]; diff --git a/docs/search/typedefs_a.html b/docs/search/typedefs_a.html new file mode 100644 index 000000000..426df9054 --- /dev/null +++ b/docs/search/typedefs_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/typedefs_a.js b/docs/search/typedefs_a.js new file mode 100644 index 000000000..7a8d03f51 --- /dev/null +++ b/docs/search/typedefs_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['unarydblf',['UnaryDblF',['../test__api_8cpp.html#af863536444756eb5bb525470a3d368c6',1,'test_api.cpp']]], + ['unaryopf',['UnaryOpF',['../test__api_8cpp.html#a802c759275175c3bb135d502defdba6d',1,'test_api.cpp']]] +]; diff --git a/docs/search/variables_0.html b/docs/search/variables_0.html new file mode 100644 index 000000000..51f7bd6bc --- /dev/null +++ b/docs/search/variables_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_0.js b/docs/search/variables_0.js new file mode 100644 index 000000000..a7b0ae2b9 --- /dev/null +++ b/docs/search/variables_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['args_5f',['args_',['../structade_1_1_functor.html#a2c261d16440fc9d99a95a7a95c0573ce',1,'ade::Functor']]], + ['arr_5fbegin',['arr_begin',['../namespaceade.html#a2788b3e7b5d64dcb2b02c9ec53e1a6a1',1,'ade']]], + ['arr_5fdelim',['arr_delim',['../namespaceade.html#aa157a23f2c70a246562811220c5a00ed',1,'ade']]], + ['arr_5fend',['arr_end',['../namespaceade.html#ad0fd9e5ccff6669129f50e104c22cb9a',1,'ade']]] +]; diff --git a/docs/search/variables_1.html b/docs/search/variables_1.html new file mode 100644 index 000000000..f46154d8b --- /dev/null +++ b/docs/search/variables_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_1.js b/docs/search/variables_1.js new file mode 100644 index 000000000..de133bc18 --- /dev/null +++ b/docs/search/variables_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bwd_5f',['bwd_',['../structade_1_1_coord_map.html#aad5c6a9ae3997e1db9dd73cb644bf985',1,'ade::CoordMap']]] +]; diff --git a/docs/search/variables_2.html b/docs/search/variables_2.html new file mode 100644 index 000000000..15275b7a9 --- /dev/null +++ b/docs/search/variables_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_2.js b/docs/search/variables_2.js new file mode 100644 index 000000000..451e8e8fa --- /dev/null +++ b/docs/search/variables_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ctx_5f',['ctx_',['../structllo_1_1_evaluator.html#a05118225a96ac85f599b49c9518239c9',1,'llo::Evaluator::ctx_()'],['../structllo_1_1_data_node.html#a28da1646a89edad7e57efddfdcf350d1',1,'llo::DataNode::ctx_()']]] +]; diff --git a/docs/search/variables_3.html b/docs/search/variables_3.html new file mode 100644 index 000000000..fbc36712f --- /dev/null +++ b/docs/search/variables_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_3.js b/docs/search/variables_3.js new file mode 100644 index 000000000..a94d2d343 --- /dev/null +++ b/docs/search/variables_3.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['data',['data',['../structllo_1_1_vec_ref.html#aa983a78799dc41a8b51168b14b212d54',1,'llo::VecRef']]], + ['data_5f',['data_',['../structllo_1_1_generic_data.html#a6f12c56eaeb79cf14b926980a6203da1',1,'llo::GenericData::data_()'],['../structllo_1_1_generic_ref.html#a9d314ae707d61bd500586b25fc34bc76',1,'llo::GenericRef::data_()'],['../structllo_1_1_source.html#a59aacad93562a1b1601259655f707966',1,'llo::Source::data_()']]], + ['default_5frange',['default_range',['../test__api_8cpp.html#a5ef6340bc2e388db4b4318435dd76bae',1,'test_api.cpp']]], + ['dims_5f',['dims_',['../structade_1_1_shape.html#a0ed417376c158cf66d6803dd88262446',1,'ade::Shape']]], + ['dtype_5f',['dtype_',['../structllo_1_1_generic_data.html#a48c849e0c1e6a394859094a2e1c23d84',1,'llo::GenericData::dtype_()'],['../structllo_1_1_generic_ref.html#aab703bd680370c62004c94d89500db80',1,'llo::GenericRef::dtype_()'],['../structllo_1_1_evaluator.html#a22584dfbc04d95532eb71cb64c9319e8',1,'llo::Evaluator::dtype_()']]] +]; diff --git a/docs/search/variables_4.html b/docs/search/variables_4.html new file mode 100644 index 000000000..8067e67f8 --- /dev/null +++ b/docs/search/variables_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_4.js b/docs/search/variables_4.js new file mode 100644 index 000000000..c6001f40a --- /dev/null +++ b/docs/search/variables_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['err_5ftag',['err_tag',['../namespaceade.html#aef738ac0191330e6ce356cf476bde3d1',1,'ade']]] +]; diff --git a/docs/search/variables_5.html b/docs/search/variables_5.html new file mode 100644 index 000000000..7e95e946f --- /dev/null +++ b/docs/search/variables_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_5.js b/docs/search/variables_5.js new file mode 100644 index 000000000..e2f27a70c --- /dev/null +++ b/docs/search/variables_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['freivald_5fn',['FREIVALD_N',['../test__api_8cpp.html#ac6f5744451d4abbb5df1e089c8d02c31',1,'test_api.cpp']]], + ['funcs_5f',['funcs_',['../structllo_1_1_graph_stat.html#a90f4b21c36dd46a3ec9c681dd0062f98',1,'llo::GraphStat']]], + ['fwd_5f',['fwd_',['../structade_1_1_coord_map.html#ad0bb539056fd8f8acce96109ff41f6da',1,'ade::CoordMap']]] +]; diff --git a/docs/search/variables_6.html b/docs/search/variables_6.html new file mode 100644 index 000000000..3d398e628 --- /dev/null +++ b/docs/search/variables_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_6.js b/docs/search/variables_6.js new file mode 100644 index 000000000..87ee1710f --- /dev/null +++ b/docs/search/variables_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['global_5fctx_5f',['global_ctx_',['../structllo_1_1_graph_stat.html#a8e493d11f23bdbf22e037d8ab54655ee',1,'llo::GraphStat']]], + ['graphsize_5f',['graphsize_',['../structllo_1_1_graph_stat.html#a6bf0af2bf942d9bfa806edc4306f6213',1,'llo::GraphStat']]] +]; diff --git a/docs/search/variables_7.html b/docs/search/variables_7.html new file mode 100644 index 000000000..7b791460a --- /dev/null +++ b/docs/search/variables_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_7.js b/docs/search/variables_7.js new file mode 100644 index 000000000..1896b6164 --- /dev/null +++ b/docs/search/variables_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['identity',['identity',['../namespaceade.html#a8e19aa78dafc96799e95e38b251a9f57',1,'ade']]] +]; diff --git a/docs/search/variables_8.html b/docs/search/variables_8.html new file mode 100644 index 000000000..8ebc5f6b7 --- /dev/null +++ b/docs/search/variables_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_8.js b/docs/search/variables_8.js new file mode 100644 index 000000000..0f9bdcac3 --- /dev/null +++ b/docs/search/variables_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['latest_5ferror_5f',['latest_error_',['../struct_test_logger.html#af97eb348dbf90d477beb2a23063526c8',1,'TestLogger']]], + ['latest_5ffatal_5f',['latest_fatal_',['../struct_test_logger.html#a664a7f4e5b22548f90de016ed812afb4',1,'TestLogger']]], + ['latest_5fwarning_5f',['latest_warning_',['../struct_test_logger.html#ac1e539aa60f1ca70a1a9f8ed4e524dcf',1,'TestLogger']]], + ['leaves_5f',['leaves_',['../structllo_1_1_graph_stat.html#af7721cf0f9c857e03abacd3d49575765',1,'llo::GraphStat']]] +]; diff --git a/docs/search/variables_9.html b/docs/search/variables_9.html new file mode 100644 index 000000000..12136613e --- /dev/null +++ b/docs/search/variables_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_9.js b/docs/search/variables_9.js new file mode 100644 index 000000000..1020d1bf5 --- /dev/null +++ b/docs/search/variables_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['mapper',['mapper',['../structllo_1_1_vec_ref.html#abc4190dd3afcff84ca539d1f55ab7c68',1,'llo::VecRef']]], + ['mat_5fdim',['mat_dim',['../namespaceade.html#a5d20bdd43f50367b1d8780c145cfe0f3',1,'ade']]], + ['mat_5fsize',['mat_size',['../namespaceade.html#a2510c0d77a622cfaa58a0865d86ce8d5',1,'ade']]] +]; diff --git a/docs/search/variables_a.html b/docs/search/variables_a.html new file mode 100644 index 000000000..24819a377 --- /dev/null +++ b/docs/search/variables_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_a.js b/docs/search/variables_a.js new file mode 100644 index 000000000..44a759fb9 --- /dev/null +++ b/docs/search/variables_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['opcode_5f',['opcode_',['../structade_1_1_functor.html#a2f5e5c19874c7b2671819ea05f2994b7',1,'ade::Functor']]], + ['out_5f',['out_',['../structllo_1_1_evaluator.html#a1f837101f861c151b928f362028ebc65',1,'llo::Evaluator']]] +]; diff --git a/docs/search/variables_b.html b/docs/search/variables_b.html new file mode 100644 index 000000000..b306931e2 --- /dev/null +++ b/docs/search/variables_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_b.js b/docs/search/variables_b.js new file mode 100644 index 000000000..c1db6842f --- /dev/null +++ b/docs/search/variables_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['parents_5f',['parents_',['../structade_1_1_path_finder.html#a7748417958bed305338af5e238dc5362',1,'ade::PathFinder']]], + ['ptr_5f',['ptr_',['../structade_1_1_tensorptr.html#a55f00218f0e721910cc1d156f6dae2ad',1,'ade::Tensorptr']]] +]; diff --git a/docs/search/variables_c.html b/docs/search/variables_c.html new file mode 100644 index 000000000..75709df8f --- /dev/null +++ b/docs/search/variables_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_c.js b/docs/search/variables_c.js new file mode 100644 index 000000000..b4620817b --- /dev/null +++ b/docs/search/variables_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['rank_5fcap',['rank_cap',['../namespaceade.html#abe7612b911dddb042aa394cc0125ea69',1,'ade']]] +]; diff --git a/docs/search/variables_d.html b/docs/search/variables_d.html new file mode 100644 index 000000000..34c80a486 --- /dev/null +++ b/docs/search/variables_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_d.js b/docs/search/variables_d.js new file mode 100644 index 000000000..a2e44543f --- /dev/null +++ b/docs/search/variables_d.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['shape',['shape',['../structllo_1_1_vec_ref.html#ac09758f7baf82d43c04c41193c3a12c5',1,'llo::VecRef']]], + ['shape_5f',['shape_',['../structade_1_1_functor.html#a99fbfe6298c8fea43e632ea75bf68973',1,'ade::Functor::shape_()'],['../structade_1_1_tensor.html#af401269d959b23081bcdaea831d7bf0c',1,'ade::Tensor::shape_()'],['../structllo_1_1_generic_data.html#a1d47f789145b4bd9c59d1937517689bf',1,'llo::GenericData::shape_()'],['../structllo_1_1_generic_ref.html#a9fb0ad1652ef1e835d87906d03081a2a',1,'llo::GenericRef::shape_()']]], + ['srcs_5f',['srcs_',['../structllo_1_1_eval_ctx.html#a0ddb52e14cc494bee81cb9927fc6d081',1,'llo::EvalCtx']]], + ['symbolic_5fone',['SYMBOLIC_ONE',['../structade_1_1_tensor.html#a21edc3441632e34df586632f813d2629',1,'ade::Tensor']]], + ['symbolic_5fzero',['SYMBOLIC_ZERO',['../structade_1_1_tensor.html#a8c62991c6440560181d34f8be02ee4f5',1,'ade::Tensor']]] +]; diff --git a/docs/search/variables_e.html b/docs/search/variables_e.html new file mode 100644 index 000000000..4a1c8a614 --- /dev/null +++ b/docs/search/variables_e.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_e.js b/docs/search/variables_e.js new file mode 100644 index 000000000..a1eff7a82 --- /dev/null +++ b/docs/search/variables_e.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['target_5f',['target_',['../structade_1_1_path_finder.html#ade3a284e63e52e2cf2ea395e9a512207',1,'ade::PathFinder']]], + ['tensor_5f',['tensor_',['../structllo_1_1_data_node.html#a91515954ca80b4dcc92be39987e78065',1,'llo::DataNode::tensor_()'],['../structllo_1_1_source.html#aa818c23eb6b31cc0baa1d3275a862e0e',1,'llo::Source::tensor_()']]], + ['testdir',['testdir',['../test__grader_8cpp.html#a22a28dea1580362dcf348edf48060f93',1,'testdir(): test_grader.cpp'],['../test__load_8cpp.html#a22a28dea1580362dcf348edf48060f93',1,'testdir(): test_load.cpp'],['../test__save_8cpp.html#a22a28dea1580362dcf348edf48060f93',1,'testdir(): test_save.cpp']]], + ['tlogger',['tlogger',['../common_8hpp.html#aef40dbefb5f1f67b02b9d7b529c00a31',1,'tlogger(): main.cpp'],['../ade_2test_2log_2main_8cpp.html#aef40dbefb5f1f67b02b9d7b529c00a31',1,'tlogger(): main.cpp']]] +]; diff --git a/docs/search/variables_f.html b/docs/search/variables_f.html new file mode 100644 index 000000000..cc86fb590 --- /dev/null +++ b/docs/search/variables_f.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_f.js b/docs/search/variables_f.js new file mode 100644 index 000000000..43aeeb929 --- /dev/null +++ b/docs/search/variables_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['warn_5ftag',['warn_tag',['../namespaceade.html#a880e280affae2d0aa13b096dcf0232b6',1,'ade']]] +]; diff --git a/docs/shape_8cpp.html b/docs/shape_8cpp.html new file mode 100644 index 000000000..94e288b7d --- /dev/null +++ b/docs/shape_8cpp.html @@ -0,0 +1,82 @@ + + + + + + + +Tenncor: ade/src/shape.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    shape.cpp File Reference
    +
    +
    +
    #include "ade/log/log.hpp"
    +#include "ade/shape.hpp"
    +
    + + + + diff --git a/docs/shape_8hpp.html b/docs/shape_8hpp.html new file mode 100644 index 000000000..b7d9657f0 --- /dev/null +++ b/docs/shape_8hpp.html @@ -0,0 +1,135 @@ + + + + + + + +Tenncor: ade/shape.hpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    shape.hpp File Reference
    +
    +
    +
    #include <algorithm>
    +#include <array>
    +#include <iterator>
    +#include <numeric>
    +#include <sstream>
    +#include <vector>
    +#include "ade/log/log.hpp"
    +
    +

    Go to the source code of this file.

    + + + + +

    +Classes

    struct  ade::Shape
     
    + + + +

    +Namespaces

     ade
     
    + + + + + + + + + + + + + + +

    +Typedefs

    using ade::DimT = uint8_t
     Type used for shape dimension. More...
     
    using ade::CDimT = int16_t
     Type used for coordinate dimensions. More...
     
    using ade::NElemT = uint64_t
     
    using ade::ShapeT = std::array< DimT, rank_cap >
     Array type used to hold dimension info in Shape. More...
     
    using ade::CoordT = std::array< CDimT, rank_cap >
     
    + + + + + +

    +Functions

    NElemT ade::index (Shape shape, CoordT coord)
     
    CoordT ade::coordinate (Shape shape, NElemT idx)
     
    + + + + +

    +Variables

    const uint8_t ade::rank_cap = 8
     Number of dimsensions in a shape/coordinate. More...
     
    +
    + + + + diff --git a/docs/shape_8hpp_source.html b/docs/shape_8hpp_source.html new file mode 100644 index 000000000..35472da5c --- /dev/null +++ b/docs/shape_8hpp_source.html @@ -0,0 +1,113 @@ + + + + + + + +Tenncor: ade/shape.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    shape.hpp
    +
    +
    +Go to the documentation of this file.
    1 
    9 #include <algorithm>
    10 #include <array>
    11 #include <iterator>
    12 #include <numeric>
    13 #include <sstream>
    14 #include <vector>
    15 
    16 #include "ade/log/log.hpp"
    17 
    18 #ifndef ADE_SHAPE_HPP
    19 #define ADE_SHAPE_HPP
    20 
    21 namespace ade
    22 {
    23 
    25 using DimT = uint8_t;
    26 
    28 using CDimT = int16_t;
    29 
    33 using NElemT = uint64_t;
    34 
    36 const uint8_t rank_cap = 8;
    37 
    39 using ShapeT = std::array<DimT,rank_cap>;
    40 
    45 using CoordT = std::array<CDimT,rank_cap>;
    46 
    51 struct Shape final
    52 {
    54  using iterator = ShapeT::iterator;
    55 
    57  using const_iterator = ShapeT::const_iterator;
    58 
    59  Shape (void)
    60  {
    61  std::fill(dims_.begin(), dims_.end(), 1);
    62  }
    63 
    64  Shape (std::vector<DimT> dims)
    65  {
    66  vector_assign(dims);
    67  }
    68 
    69  Shape (const Shape& other) = default;
    70 
    71  Shape& operator = (const Shape& other) = default;
    72 
    73  Shape& operator = (const std::vector<DimT>& dims)
    74  {
    75  vector_assign(dims);
    76  return *this;
    77  }
    78 
    79  Shape (Shape&& other)
    80  {
    81  move_helper(std::move(other));
    82  }
    83 
    85  {
    86  if (this != &other)
    87  {
    88  move_helper(std::move(other));
    89  }
    90  return *this;
    91  }
    92 
    93 
    94  // >>>> ACCESSORS <<<<
    95 
    97  DimT at (uint8_t idx) const
    98  {
    99  if (rank_cap <= idx)
    100  {
    101  throw std::out_of_range(
    102  "accessing dimension out of allocated rank cap");
    103  }
    104  return dims_.at(idx);
    105  }
    106 
    108  NElemT n_elems (void) const
    109  {
    110  auto it = dims_.begin();
    111  return std::accumulate(it, it + rank_cap, 1,
    112  std::multiplies<NElemT>());
    113  }
    114 
    117  bool compatible_before (const Shape& other, uint8_t idx) const
    118  {
    119  auto it = dims_.begin();
    120  return std::equal(it, it + std::min(idx, rank_cap), other.dims_.begin());
    121  }
    122 
    126  bool compatible_after (const Shape& other, uint8_t idx) const
    127  {
    128  bool compatible = false;
    129  if (idx < rank_cap)
    130  {
    131  compatible = std::equal(dims_.begin() + idx,
    132  dims_.end(), other.dims_.begin() + idx);
    133  }
    134  return compatible;
    135  }
    136 
    138  std::string to_string (void) const
    139  {
    140  return ade::to_string(begin(), end());
    141  }
    142 
    143  // >>>> INTERNAL CONTROL <<<<
    144 
    147  {
    148  return dims_.begin();
    149  }
    150 
    152  iterator end (void)
    153  {
    154  return dims_.end();
    155  }
    156 
    158  const_iterator begin (void) const
    159  {
    160  return dims_.begin();
    161  }
    162 
    164  const_iterator end (void) const
    165  {
    166  return dims_.end();
    167  }
    168 
    169 private:
    170  void vector_assign (const std::vector<DimT>& dims)
    171  {
    172  auto src = dims.begin();
    173  if (std::any_of(src, dims.end(),
    174  [](DimT d)
    175  {
    176  return d == 0;
    177  }))
    178  {
    179  fatalf("cannot create shape with vector containing zero: %s",
    180  ade::to_string(dims.begin(), dims.end()).c_str());
    181  }
    182  auto dest = dims_.begin();
    183  uint8_t rank = std::min((size_t) rank_cap, dims.size());
    184  std::copy(src, src + rank, dest);
    185  std::fill(dest + rank, dest + rank_cap, 1);
    186  }
    187 
    188  void move_helper (Shape&& other)
    189  {
    190  dims_ = std::move(other.dims_);
    191  std::fill(other.dims_.begin(), other.dims_.end(), 1);
    192  }
    193 
    196 };
    197 
    204 NElemT index (Shape shape, CoordT coord);
    205 
    209 CoordT coordinate (Shape shape, NElemT idx);
    210 
    211 }
    212 
    213 #endif // ADE_SHAPE_HPP
    DimT at(uint8_t idx) const
    Return DimT element at idx for any index in range [0:rank_cap)
    Definition: shape.hpp:97
    +
    uint64_t NElemT
    Definition: shape.hpp:33
    +
    void move_helper(Shape &&other)
    Definition: shape.hpp:188
    +
    int16_t CDimT
    Type used for coordinate dimensions.
    Definition: shape.hpp:28
    +
    std::array< DimT, rank_cap > ShapeT
    Array type used to hold dimension info in Shape.
    Definition: shape.hpp:39
    +
    const uint8_t rank_cap
    Number of dimsensions in a shape/coordinate.
    Definition: shape.hpp:36
    +
    uint8_t DimT
    Type used for shape dimension.
    Definition: shape.hpp:25
    +
    const_iterator begin(void) const
    Return begin constant iterator of internal array.
    Definition: shape.hpp:158
    +
    std::string to_string(void) const
    Return string representation of shape.
    Definition: shape.hpp:138
    +
    Shape & operator=(const Shape &other)=default
    +
    iterator end(void)
    Return end iterator of internal array.
    Definition: shape.hpp:152
    +
    NElemT n_elems(void) const
    Return the total number of elements represented by the shape.
    Definition: shape.hpp:108
    +
    ShapeT::iterator iterator
    Type of iterator used to iterate through internal array.
    Definition: shape.hpp:54
    +
    void copy(T *out, ade::Shape outshape, VecRef< T > in)
    Definition: operator.hpp:43
    +
    Shape(Shape &&other)
    Definition: shape.hpp:79
    +
    bool compatible_after(const Shape &other, uint8_t idx) const
    Definition: shape.hpp:126
    +
    iterator begin(void)
    Return begin iterator of internal array.
    Definition: shape.hpp:146
    +
    void fatalf(std::string format, ARGS... args)
    Fatal using global logger with arguments.
    Definition: log.hpp:94
    +
    ShapeT::const_iterator const_iterator
    Type of constant iterator used to iterate through internal array.
    Definition: shape.hpp:57
    +
    Definition: coord.hpp:18
    +
    bool compatible_before(const Shape &other, uint8_t idx) const
    Definition: shape.hpp:117
    +
    void vector_assign(const std::vector< DimT > &dims)
    Definition: shape.hpp:170
    +
    Shape(std::vector< DimT > dims)
    Definition: shape.hpp:64
    +
    NElemT index(Shape shape, CoordT coord)
    +
    ShapeT dims_
    Array of dimension values.
    Definition: shape.hpp:195
    +
    Definition: shape.hpp:51
    +
    std::array< CDimT, rank_cap > CoordT
    Definition: shape.hpp:45
    +
    std::string to_string(T arg)
    Return string representation for common arguments.
    Definition: string.hpp:67
    +
    const_iterator end(void) const
    Return end constant iterator of internal array.
    Definition: shape.hpp:164
    +
    CoordT coordinate(Shape shape, NElemT idx)
    + +
    Shape(void)
    Definition: shape.hpp:59
    +
    DataNode min(std::vector< DataNode > args)
    Get Element-wise minimum of args.
    Definition: api.cpp:172
    +
    + + + + diff --git a/docs/shear_8cpp.html b/docs/shear_8cpp.html new file mode 100644 index 000000000..02e42295f --- /dev/null +++ b/docs/shear_8cpp.html @@ -0,0 +1,97 @@ + + + + + + + +Tenncor: llo/src/shear.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    shear.cpp File Reference
    +
    +
    +
    #include "llo/shear.hpp"
    +
    + + + +

    +Namespaces

     llo
     
    + + + + + +

    +Functions

    static ade::Tensorptr llo::prune0 (bool &is_zero, ade::iFunctor *func, std::vector< bool > zeros, ade::ArgsT args)
     
    DataNode llo::zero_prune (DataNode root)
     
    +
    + + + + diff --git a/docs/shear_8hpp.html b/docs/shear_8hpp.html new file mode 100644 index 000000000..0f257400d --- /dev/null +++ b/docs/shear_8hpp.html @@ -0,0 +1,120 @@ + + + + + + + +Tenncor: llo/shear.hpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    shear.hpp File Reference
    +
    +
    +
    #include "llo/traveler.hpp"
    +
    +

    Go to the source code of this file.

    + + + + +

    +Namespaces

     llo
     
    + + + +

    +Macros

    #define LLO_SHEAR_HPP
     
    + + + +

    +Functions

    DataNode llo::zero_prune (DataNode root)
     
    +

    Macro Definition Documentation

    + +

    ◆ LLO_SHEAR_HPP

    + +
    +
    + + + + +
    #define LLO_SHEAR_HPP
    +
    +

    shear.hpp llo

    +

    Purpose: Define llo graph pruning functions

    + +
    +
    +
    + + + + diff --git a/docs/shear_8hpp_source.html b/docs/shear_8hpp_source.html new file mode 100644 index 000000000..01e33b1d3 --- /dev/null +++ b/docs/shear_8hpp_source.html @@ -0,0 +1,83 @@ + + + + + + + +Tenncor: llo/shear.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    shear.hpp
    +
    +
    +Go to the documentation of this file.
    1 
    9 #include "llo/traveler.hpp"
    10 
    11 #ifndef LLO_SHEAR_HPP
    12 #define LLO_SHEAR_HPP
    13 
    14 namespace llo
    15 {
    16 
    19 DataNode zero_prune (DataNode root);
    20 
    21 }
    22 
    23 #endif // LLO_SHEAR_HPP
    +
    DataNode zero_prune(DataNode root)
    Definition: shear.cpp:119
    +
    Definition: api.hpp:14
    +
    + + + + diff --git a/docs/source_8cpp.html b/docs/source_8cpp.html new file mode 100644 index 000000000..6b48dc2ef --- /dev/null +++ b/docs/source_8cpp.html @@ -0,0 +1,193 @@ + + + + + + + +Tenncor: pbm/src/source.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    source.cpp File Reference
    +
    +
    +
    #include "ade/log/log.hpp"
    +#include "pbm/source.hpp"
    +
    + + + + + +

    +Macros

    #define PACK_DATA(TYPE)
     
    #define UNPACK_SOURCE(TYPE)
     
    + + + + + + + +

    +Functions

    void save_data (tenncor::Source *out, llo::iSource *in)
     Marshal llo::iSource to tenncor::Source. More...
     
    llo::DataNode load_source (const tenncor::Source &source)
     Unmarshal tenncor::Source as DataNode containing context of source. More...
     
    +

    Macro Definition Documentation

    + +

    ◆ PACK_DATA

    + +
    +
    + + + + + + + + +
    #define PACK_DATA( TYPE)
    +
    +Value:
    TYPE* ptr = (TYPE*) data.data_.get();\
    google::protobuf::RepeatedField<TYPE> vec(ptr, ptr + nelems);\
    arr->mutable_data()->Swap(&vec);
    +
    +
    + +

    ◆ UNPACK_SOURCE

    + +
    +
    + + + + + + + + +
    #define UNPACK_SOURCE( TYPE)
    +
    +Value:
    auto vec = arr.data();\
    return llo::Source<TYPE>::get(shape,\
    std::vector<TYPE>(vec.begin(), vec.end()));
    static DataNode get(ade::Shape shape, std::vector< T > data)
    Return a Source of input shape and containing input data.
    Definition: node.hpp:22
    +
    +
    +
    +

    Function Documentation

    + +

    ◆ load_source()

    + +
    +
    + + + + + + + + +
    llo::DataNode load_source (const tenncor::Source & source)
    +
    + +

    Unmarshal tenncor::Source as DataNode containing context of source.

    + +
    +
    + +

    ◆ save_data()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void save_data (tenncor::Source * out,
    llo::iSourcein 
    )
    +
    + +

    Marshal llo::iSource to tenncor::Source.

    +

    source.hpp pbm

    +

    Purpose: Define functions for marshal and unmarshal data sources

    + +
    +
    +
    + + + + diff --git a/docs/source_8hpp.html b/docs/source_8hpp.html new file mode 100644 index 000000000..cb2a7eb28 --- /dev/null +++ b/docs/source_8hpp.html @@ -0,0 +1,149 @@ + + + + + + + +Tenncor: pbm/source.hpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    source.hpp File Reference
    +
    +
    +
    #include "llo/node.hpp"
    +#include "pbm/graph.pb.h"
    +
    +

    Go to the source code of this file.

    + + + + + + + + +

    +Functions

    void save_data (tenncor::Source *out, llo::iSource *in)
     Marshal llo::iSource to tenncor::Source. More...
     
    llo::DataNode load_source (const tenncor::Source &source)
     Unmarshal tenncor::Source as DataNode containing context of source. More...
     
    +

    Function Documentation

    + +

    ◆ load_source()

    + +
    +
    + + + + + + + + +
    llo::DataNode load_source (const tenncor::Source & source)
    +
    + +

    Unmarshal tenncor::Source as DataNode containing context of source.

    + +
    +
    + +

    ◆ save_data()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void save_data (tenncor::Source * out,
    llo::iSourcein 
    )
    +
    + +

    Marshal llo::iSource to tenncor::Source.

    +

    source.hpp pbm

    +

    Purpose: Define functions for marshal and unmarshal data sources

    + +
    +
    +
    + + + + diff --git a/docs/source_8hpp_source.html b/docs/source_8hpp_source.html new file mode 100644 index 000000000..da63d9bb7 --- /dev/null +++ b/docs/source_8hpp_source.html @@ -0,0 +1,85 @@ + + + + + + + +Tenncor: pbm/source.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    source.hpp
    +
    +
    +Go to the documentation of this file.
    1 
    9 #include "llo/node.hpp"
    10 
    11 #include "pbm/graph.pb.h"
    12 
    14 void save_data (tenncor::Source* out, llo::iSource* in);
    15 
    17 llo::DataNode load_source (const tenncor::Source& source);
    void save_data(tenncor::Source *out, llo::iSource *in)
    Marshal llo::iSource to tenncor::Source.
    Definition: source.cpp:10
    +
    llo::DataNode load_source(const tenncor::Source &source)
    Unmarshal tenncor::Source as DataNode containing context of source.
    Definition: source.cpp:100
    +
    Interface for leaves with tensor data.
    Definition: eval.hpp:22
    + +
    Definition: eval.hpp:132
    +
    + + + + diff --git a/docs/splitbar.png b/docs/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/docs/string_8cpp.html b/docs/string_8cpp.html new file mode 100644 index 000000000..4fd2ea5df --- /dev/null +++ b/docs/string_8cpp.html @@ -0,0 +1,81 @@ + + + + + + + +Tenncor: ade/log/string.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    string.cpp File Reference
    +
    +
    +
    #include "ade/log/string.hpp"
    +
    + + + + diff --git a/docs/string_8hpp.html b/docs/string_8hpp.html new file mode 100644 index 000000000..4540db3a6 --- /dev/null +++ b/docs/string_8hpp.html @@ -0,0 +1,143 @@ + + + + + + + +Tenncor: ade/log/string.hpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    string.hpp File Reference
    +
    +
    +
    #include <algorithm>
    +#include <string>
    +#include <sstream>
    +#include <tuple>
    +
    +

    Go to the source code of this file.

    + + + + +

    +Namespaces

     ade
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    void ade::to_stream (std::ostream &s, const char *str)
     Stream C-style strings to s. More...
     
    void ade::to_stream (std::ostream &s, std::string str)
     Stream std::strings to s. More...
     
    void ade::to_stream (std::ostream &s, int8_t c)
     Stream byte-size integers and display as numbers to s. More...
     
    void ade::to_stream (std::ostream &s, uint8_t c)
     Stream byte-size unsigned integers and display as numbers to s. More...
     
    template<typename T >
    void ade::to_stream (std::ostream &s, T val)
     Stream generic value to s. More...
     
    template<typename Iterator >
    void ade::to_stream (std::ostream &s, Iterator begin, Iterator end)
     Stream values between iterators as an array. More...
     
    template<typename T >
    std::string ade::to_string (T arg)
     Return string representation for common arguments. More...
     
    template<typename Iterator >
    std::string ade::to_string (Iterator begin, Iterator end)
     Return string representation of values between iterators. More...
     
    template<typename... ARGS>
    std::string ade::sprintf (std::string format, ARGS... args)
     Return std::string with snprintf formatting. More...
     
    + + + + + + + + + + +

    +Variables

    const char ade::arr_begin = '['
     Symbol for the start of an array as string. More...
     
    const char ade::arr_end = ']'
     Symbol for the end of an array as string. More...
     
    const char ade::arr_delim = '\\'
     Symbol for the delimter between elements of an array as string. More...
     
    +
    + + + + diff --git a/docs/string_8hpp_source.html b/docs/string_8hpp_source.html new file mode 100644 index 000000000..6d4de2ef0 --- /dev/null +++ b/docs/string_8hpp_source.html @@ -0,0 +1,87 @@ + + + + + + + +Tenncor: ade/log/string.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    string.hpp
    +
    +
    +Go to the documentation of this file.
    1 
    9 #include <algorithm>
    10 #include <string>
    11 #include <sstream>
    12 #include <tuple>
    13 
    14 #ifndef ADE_STRING_HPP
    15 #define ADE_STRING_HPP
    16 
    17 namespace ade
    18 {
    19 
    21 const char arr_begin = '[';
    22 
    24 const char arr_end = ']';
    25 
    27 const char arr_delim = '\\';
    28 
    30 void to_stream (std::ostream& s, const char* str);
    31 
    33 void to_stream (std::ostream& s, std::string str);
    34 
    36 void to_stream (std::ostream& s, int8_t c);
    37 
    39 void to_stream (std::ostream& s, uint8_t c);
    40 
    42 template <typename T>
    43 void to_stream (std::ostream& s, T val)
    44 {
    45  s << val;
    46 }
    47 
    49 template <typename Iterator>
    50 void to_stream (std::ostream& s, Iterator begin, Iterator end)
    51 {
    52  s << arr_begin;
    53  if (begin != end)
    54  {
    55  to_stream(s, *(begin++));
    56  while (begin != end)
    57  {
    58  s << arr_delim;
    59  to_stream(s, *(begin++));
    60  }
    61  }
    62  s << arr_end;
    63 }
    64 
    66 template <typename T>
    67 std::string to_string (T arg)
    68 {
    69  std::stringstream ss;
    70  to_stream(ss, arg);
    71  return ss.str();
    72 }
    73 
    75 template <typename Iterator>
    76 std::string to_string (Iterator begin, Iterator end)
    77 {
    78  std::stringstream ss;
    79  to_stream(ss, begin, end);
    80  return ss.str();
    81 }
    82 
    84 template <typename... ARGS>
    85 std::string sprintf (std::string format, ARGS... args)
    86 {
    87  size_t n = std::snprintf(nullptr, 0, format.c_str(), args...) + 1;
    88  char buf[n];
    89  std::snprintf(buf, n, format.c_str(), args...);
    90  return std::string(buf, buf + n - 1);
    91 }
    92 
    93 }
    94 
    95 #endif // ADE_STRING_HPP
    std::string sprintf(std::string format, ARGS... args)
    Return std::string with snprintf formatting.
    Definition: string.hpp:85
    +
    void to_stream(std::ostream &s, const char *str)
    Stream C-style strings to s.
    +
    Definition: coord.hpp:18
    +
    const char arr_end
    Symbol for the end of an array as string.
    Definition: string.hpp:24
    +
    std::string to_string(T arg)
    Return string representation for common arguments.
    Definition: string.hpp:67
    +
    const char arr_begin
    Symbol for the start of an array as string.
    Definition: string.hpp:21
    +
    const char arr_delim
    Symbol for the delimter between elements of an array as string.
    Definition: string.hpp:27
    +
    + + + + diff --git a/docs/struct_a_p_i-members.html b/docs/struct_a_p_i-members.html new file mode 100644 index 000000000..1bb521784 --- /dev/null +++ b/docs/struct_a_p_i-members.html @@ -0,0 +1,80 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    API Member List
    +
    +
    + +

    This is the complete list of members for API, including all inherited members.

    + + +
    TearDown(void)APIinlinevirtual
    + + + + diff --git a/docs/struct_a_p_i.html b/docs/struct_a_p_i.html new file mode 100644 index 000000000..b988b216f --- /dev/null +++ b/docs/struct_a_p_i.html @@ -0,0 +1,123 @@ + + + + + + + +Tenncor: API Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    API Struct Reference
    +
    +
    +
    +Inheritance diagram for API:
    +
    +
    + + + +
    + + + + +

    +Public Member Functions

    virtual void TearDown (void)
     
    +

    Member Function Documentation

    + +

    ◆ TearDown()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void API::TearDown (void )
    +
    +inlinevirtual
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/struct_a_p_i.png b/docs/struct_a_p_i.png new file mode 100644 index 0000000000000000000000000000000000000000..6960f4d4d73365629ade3dc32ffc174c4fce694f GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^Za^Hs!3-oP*MBwuQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;Fq5L*;9bl;awuqiAzVX$1vctVrc;oSbKGiH8mX8aN))i8(q?4+19LBRvlihI)^f80Im$ArLH w`|jneuV4Pr(AJx|VDcq~CpMwUY1htjXR~N9%`d9I3-msNr>mdKI;Vst0I9j08UO$Q literal 0 HcmV?d00001 diff --git a/docs/struct_c_o_o_r_d-members.html b/docs/struct_c_o_o_r_d-members.html new file mode 100644 index 000000000..dfbd10713 --- /dev/null +++ b/docs/struct_c_o_o_r_d-members.html @@ -0,0 +1,80 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    COORD Member List
    +
    +
    + +

    This is the complete list of members for COORD, including all inherited members.

    + + +
    TearDown(void)COORDinlinevirtual
    + + + + diff --git a/docs/struct_c_o_o_r_d.html b/docs/struct_c_o_o_r_d.html new file mode 100644 index 000000000..5656f4745 --- /dev/null +++ b/docs/struct_c_o_o_r_d.html @@ -0,0 +1,123 @@ + + + + + + + +Tenncor: COORD Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    COORD Struct Reference
    +
    +
    +
    +Inheritance diagram for COORD:
    +
    +
    + + + +
    + + + + +

    +Public Member Functions

    virtual void TearDown (void)
     
    +

    Member Function Documentation

    + +

    ◆ TearDown()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void COORD::TearDown (void )
    +
    +inlinevirtual
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/struct_c_o_o_r_d.png b/docs/struct_c_o_o_r_d.png new file mode 100644 index 0000000000000000000000000000000000000000..102784d7e27bc1dfebf27ab6db9fa90f9fb935e2 GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^Za^Hs!3-oP*MBwuQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;PW%4sx zW$M>8o~pU?qa(6U1>U@yaVc=?H=nBgQ*7S;nk8c~>-5pfOWdA!ZC+Vhw|`@>ukEsG z-|a_p^XELDUmfiKYKG^twVs}rmbbV~s`*ouh|9HSb>GszB*uEy-+xva!K&5E zEzNdLP_r_c{(Rs1lY1rCr%igccls=omH*y9yR`U6Hj|Bz6vO<`>E}slfmM literal 0 HcmV?d00001 diff --git a/docs/struct_d_t_y_p_e-members.html b/docs/struct_d_t_y_p_e-members.html new file mode 100644 index 000000000..f912d84fe --- /dev/null +++ b/docs/struct_d_t_y_p_e-members.html @@ -0,0 +1,80 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DTYPE Member List
    +
    +
    + +

    This is the complete list of members for DTYPE, including all inherited members.

    + + +
    TearDown(void)DTYPEinlinevirtual
    + + + + diff --git a/docs/struct_d_t_y_p_e.html b/docs/struct_d_t_y_p_e.html new file mode 100644 index 000000000..e17c45023 --- /dev/null +++ b/docs/struct_d_t_y_p_e.html @@ -0,0 +1,123 @@ + + + + + + + +Tenncor: DTYPE Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DTYPE Struct Reference
    +
    +
    +
    +Inheritance diagram for DTYPE:
    +
    +
    + + + +
    + + + + +

    +Public Member Functions

    virtual void TearDown (void)
     
    +

    Member Function Documentation

    + +

    ◆ TearDown()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void DTYPE::TearDown (void )
    +
    +inlinevirtual
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/struct_d_t_y_p_e.png b/docs/struct_d_t_y_p_e.png new file mode 100644 index 0000000000000000000000000000000000000000..d3ceac3eb9d1003c616e1127be4f0798203615b4 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^Za^Hs!3-oP*MBwuQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;-*01}%|6`UX zi|VU02d?Gp3|Tr+J~O$9@ywZ92US*1T{v-x#Puaj-dag#*{rB~I1H@>acHuOF8ZyzOO7 zapa?2W(WWNzBOg;t*S?Ru4sDxngTR^#`3H)XJ#?(NM_1d-k&yWSH-W4G;e-?^|SJ? zuUuf5V_?Ey=*%o&452>fo2I3`O<-8d!|UL)H1hR6Qv=!akN+`fEWVa=IPukLgWnOw zQ!MXa|Di2^C2hIp_Ad1akHbwb9yK@pdEVbd|0>&q+BPcGxXa#8)6<$AB Q0SqVxPgg&ebxsLQ0E9EB_W%F@ literal 0 HcmV?d00001 diff --git a/docs/struct_f_u_n_c_t_o_r.html b/docs/struct_f_u_n_c_t_o_r.html new file mode 100644 index 000000000..8ece428ab --- /dev/null +++ b/docs/struct_f_u_n_c_t_o_r.html @@ -0,0 +1,87 @@ + + + + + + + +Tenncor: FUNCTOR Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    FUNCTOR Struct Reference
    +
    +
    +
    +Inheritance diagram for FUNCTOR:
    +
    +
    + + + +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/struct_f_u_n_c_t_o_r.png b/docs/struct_f_u_n_c_t_o_r.png new file mode 100644 index 0000000000000000000000000000000000000000..6669b7aa4ca4dcfbd4f31e38b83e12873d2f86af GIT binary patch literal 395 zcmeAS@N?(olHy`uVBq!ia0vp^?m!&C!3-p8_Rin~QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;XgOwU&03q?KWG8|N0#J=Jw~V+ZXT7e>QuEeY#A8 jG{|82Gls^y*Xv&p*7&2|ed-x7 + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    LOG Member List
    +
    +
    + +

    This is the complete list of members for LOG, including all inherited members.

    + + +
    TearDown(void) overrideLOGinlineprotected
    + + + + diff --git a/docs/struct_l_o_g.html b/docs/struct_l_o_g.html new file mode 100644 index 000000000..f28d446c5 --- /dev/null +++ b/docs/struct_l_o_g.html @@ -0,0 +1,123 @@ + + + + + + + +Tenncor: LOG Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    LOG Struct Reference
    +
    +
    +
    +Inheritance diagram for LOG:
    +
    +
    + + + +
    + + + + +

    +Protected Member Functions

    void TearDown (void) override
     
    +

    Member Function Documentation

    + +

    ◆ TearDown()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void LOG::TearDown (void )
    +
    +inlineoverrideprotected
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/struct_l_o_g.png b/docs/struct_l_o_g.png new file mode 100644 index 0000000000000000000000000000000000000000..ef7fd3b0b1b268f787dfd077b2dd4c434a9406c5 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^YCs&o!3-pwW_))5QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;%gl~~84|4XCoZ{h;*8EGH0K?AD%rn-KjZ$h)dpH&wB$HDdcq zyAx5nGLM^G-qQWk^ZKV5%gv2A4VW1O*?=fZdwKC#v(-su5A4={MT`njxgN@xNAXI_6k literal 0 HcmV?d00001 diff --git a/docs/struct_n_o_d_e-members.html b/docs/struct_n_o_d_e-members.html new file mode 100644 index 000000000..9125738d2 --- /dev/null +++ b/docs/struct_n_o_d_e-members.html @@ -0,0 +1,80 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    NODE Member List
    +
    +
    + +

    This is the complete list of members for NODE, including all inherited members.

    + + +
    TearDown(void)NODEinlinevirtual
    + + + + diff --git a/docs/struct_n_o_d_e.html b/docs/struct_n_o_d_e.html new file mode 100644 index 000000000..ae8f3801f --- /dev/null +++ b/docs/struct_n_o_d_e.html @@ -0,0 +1,123 @@ + + + + + + + +Tenncor: NODE Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    NODE Struct Reference
    +
    +
    +
    +Inheritance diagram for NODE:
    +
    +
    + + + +
    + + + + +

    +Public Member Functions

    virtual void TearDown (void)
     
    +

    Member Function Documentation

    + +

    ◆ TearDown()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void NODE::TearDown (void )
    +
    +inlinevirtual
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/struct_n_o_d_e.png b/docs/struct_n_o_d_e.png new file mode 100644 index 0000000000000000000000000000000000000000..e2bc6d7fb158c7b5945dfd299a380d24edee058c GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^Za^Hs!3-oP*MBwuQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;=@G09w$sPId#b+$md$cVb##rJI~Jiw&ab?s#Pyf-!lCf zt}?ZB{l`h)p37aERTNUDE@i(e?9`9nm78wHW)}%$?5lB+$}d@GG5go=m)+u5uOwSt zkJ+~4y>G$)edb@6^vz7!XR7J>OVeA~({TPOLt|;S2YtK=b1Y}&&VDp=ab;9mg<9sn z8%w6KJ!o0V*byn!Fat`}uLde+XO>9KWJpr-J+)`vdc`M&({?hMw9G1b7*NXS;2qN& z|6#GRmga)U{i`%rU*2 + + + + + + +Tenncor: REGRESS Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    REGRESS Struct Reference
    +
    +
    +
    +Inheritance diagram for REGRESS:
    +
    +
    + + + +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/struct_r_e_g_r_e_s_s.png b/docs/struct_r_e_g_r_e_s_s.png new file mode 100644 index 0000000000000000000000000000000000000000..518822b17e935fc83fe9ecb972ebbd1f12044a9f GIT binary patch literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^u0R~X!3-oTJUonnlth3}i0l9V|AEXGZ@!lHADRGU zf$@O@2Ut7r$OE|?B|(0{3_wL7aP?G(5d#CGgr|#RNCo5Dxq+KjD+svw|G)A3{zq>m z1%nWuBmL2pAs3Z;ro3G|;WBs|zr_XXsvp@fI zci$^xt>+VpePzSsyVFx{i*MD~Ci``=i03TP1D$3KnRlITZnHMn9w0YC+TeS@zblfu zTn8MwnFO|KFa$!W|LU%jmbEgdfrMH&xzFv_dEdhoyLagl?~T`TLR#zo>!$jw<|-As zA1pU_%jexOm;P#OIFY$0MK;c8-RlMAHJ2{t>{_{W^^{-rnR{wJ?PrL&wur&yuZruW bw6FX;l^RS{o$PVIaAWXv^>bP0l+XkKnx>|c literal 0 HcmV?d00001 diff --git a/docs/struct_s_h_a_p_e-members.html b/docs/struct_s_h_a_p_e-members.html new file mode 100644 index 000000000..b2eaad6b5 --- /dev/null +++ b/docs/struct_s_h_a_p_e-members.html @@ -0,0 +1,80 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    SHAPE Member List
    +
    +
    + +

    This is the complete list of members for SHAPE, including all inherited members.

    + + +
    TearDown(void)SHAPEinlinevirtual
    + + + + diff --git a/docs/struct_s_h_a_p_e.html b/docs/struct_s_h_a_p_e.html new file mode 100644 index 000000000..f656eb3dd --- /dev/null +++ b/docs/struct_s_h_a_p_e.html @@ -0,0 +1,123 @@ + + + + + + + +Tenncor: SHAPE Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    SHAPE Struct Reference
    +
    +
    +
    +Inheritance diagram for SHAPE:
    +
    +
    + + + +
    + + + + +

    +Public Member Functions

    virtual void TearDown (void)
     
    +

    Member Function Documentation

    + +

    ◆ TearDown()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void SHAPE::TearDown (void )
    +
    +inlinevirtual
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/struct_s_h_a_p_e.png b/docs/struct_s_h_a_p_e.png new file mode 100644 index 0000000000000000000000000000000000000000..f9edb5c687301a08be353bd498075c1a93ff5901 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^Za^Hs!3-oP*MBwuQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;$*o!U$)nSNrxo1*KJy-vwIWQ-7C4iQvXFg zPg`7{GHqF9l-t>$s50wWL0rjpn*Z0!tSdV%6|XYutot%e$LiyGtM=R5S6uMjv#j=P z;*nCbli$y8?lk{etbT6k>`6=fUrKqN`We|$z} zn0>9bW|3s|y$q%6rmj!&(=XgPd2BYv-8D}8C;MK>5!=6d<-OTa#g@_y(IvbN=eB2^ dIWw!0(fNUf4M)zb9l&5?@O1TaS?83{1OS5`tIhxb literal 0 HcmV?d00001 diff --git a/docs/struct_t_e_n_s_o_r.html b/docs/struct_t_e_n_s_o_r.html new file mode 100644 index 000000000..5b3093deb --- /dev/null +++ b/docs/struct_t_e_n_s_o_r.html @@ -0,0 +1,87 @@ + + + + + + + +Tenncor: TENSOR Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    TENSOR Struct Reference
    +
    +
    +
    +Inheritance diagram for TENSOR:
    +
    +
    + + + +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/struct_t_e_n_s_o_r.png b/docs/struct_t_e_n_s_o_r.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d1460f5c7c02efe5c3bd2bb663e0899d4ba45e GIT binary patch literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^Za^Hs!3-oP*MBwuQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;KdyRhCqkRAMm(ZKk%xSHqQSrVRIQw{TWEXk_56mxU^lrxK0%}$QiR{P(z z#OR&jy-UAh4@(74^D1llxHM}?*ZuR|yWdDnZf5wL-DQwh^3Gy%-}B4Iy7OM8TOE&y zs`;X3QUBieZ_w@8DYjLbo>^Cqcm%DeE%vIyhoESH{A26`Mo#SPCvD&>b)6x_d)OdWgnNy{mEZv$e;@{ g{(cwG%xnDfpJ@bdfAsJbFx(hCUHx3vIVCg!0Ja^j=l}o! literal 0 HcmV?d00001 diff --git a/docs/struct_test_logger-members.html b/docs/struct_test_logger-members.html new file mode 100644 index 000000000..39cfdc61e --- /dev/null +++ b/docs/struct_test_logger-members.html @@ -0,0 +1,86 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    TestLogger Member List
    +
    +
    + +

    This is the complete list of members for TestLogger, including all inherited members.

    + + + + + + + + +
    error(std::string msg) const overrideTestLoggerinlinevirtual
    fatal(std::string msg) const overrideTestLoggerinlinevirtual
    latest_error_TestLoggerstatic
    latest_fatal_TestLoggerstatic
    latest_warning_TestLoggerstatic
    warn(std::string msg) const overrideTestLoggerinlinevirtual
    ~iLogger(void)=defaultade::iLoggervirtual
    + + + + diff --git a/docs/struct_test_logger.html b/docs/struct_test_logger.html new file mode 100644 index 000000000..72307796a --- /dev/null +++ b/docs/struct_test_logger.html @@ -0,0 +1,278 @@ + + + + + + + +Tenncor: TestLogger Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    TestLogger Struct Reference
    +
    +
    + +

    #include <common.hpp>

    +
    +Inheritance diagram for TestLogger:
    +
    +
    + + +ade::iLogger + +
    + + + + + + + + + + + + + + +

    +Public Member Functions

    void warn (std::string msg) const override
     Warn user of message regarding poor decisions. More...
     
    void error (std::string msg) const override
     Notify user of message regarding recoverable error. More...
     
    void fatal (std::string msg) const override
     Notify user of message regarding fatal error, then finish him. More...
     
    - Public Member Functions inherited from ade::iLogger
    virtual ~iLogger (void)=default
     
    + + + + + + + +

    +Static Public Attributes

    static std::string latest_warning_
     
    static std::string latest_error_
     
    static std::string latest_fatal_
     
    +

    Member Function Documentation

    + +

    ◆ error()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void TestLogger::error (std::string msg) const
    +
    +inlineoverridevirtual
    +
    + +

    Notify user of message regarding recoverable error.

    + +

    Implements ade::iLogger.

    + +
    +
    + +

    ◆ fatal()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void TestLogger::fatal (std::string msg) const
    +
    +inlineoverridevirtual
    +
    + +

    Notify user of message regarding fatal error, then finish him.

    + +

    Implements ade::iLogger.

    + +
    +
    + +

    ◆ warn()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void TestLogger::warn (std::string msg) const
    +
    +inlineoverridevirtual
    +
    + +

    Warn user of message regarding poor decisions.

    + +

    Implements ade::iLogger.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ latest_error_

    + +
    +
    + + + + + +
    + + + + +
    std::string TestLogger::latest_error_
    +
    +static
    +
    + +
    +
    + +

    ◆ latest_fatal_

    + +
    +
    + + + + + +
    + + + + +
    std::string TestLogger::latest_fatal_
    +
    +static
    +
    + +
    +
    + +

    ◆ latest_warning_

    + +
    +
    + + + + + +
    + + + + +
    std::string TestLogger::latest_warning_
    +
    +static
    +
    + +
    +
    +
    The documentation for this struct was generated from the following files: +
    + + + + diff --git a/docs/struct_test_logger.png b/docs/struct_test_logger.png new file mode 100644 index 0000000000000000000000000000000000000000..ceb413cb19a5e58c1ac79674135feca481274010 GIT binary patch literal 454 zcmV;%0XhDOP)vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d00041Nklh(alRFNOOIzpRNJ!pLs57zIkY`d#DOMy&id08RQjA(iljLKZ zmrIg#rYFeuk|Z^ik!JIK<8>O>Sy^S7>%BZjw)V2=_>z=e%=T=}T{`~b>2Y;S^6?e2^;-OT z#`pePr>cM4Bq>JkAX7>yQ~=L30K_UDISk>rHmO5SiTb7rnaUYgNhiM?^ zOfVP4@?qE>@C + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ade::CoordMap Member List
    +
    +
    + +

    This is the complete list of members for ade::CoordMap, including all inherited members.

    + + + + + + + + + + + +
    access(std::function< void(const MatrixT &)> cb) const overrideade::CoordMapinlinevirtual
    backward(CoordT::iterator out, CoordT::const_iterator in) const overrideade::CoordMapvirtual
    bwd_ade::CoordMapprivate
    CoordMap(std::function< void(MatrixT)> init)ade::CoordMapinline
    CoordMap(const MatrixT fwd, const MatrixT bwd)ade::CoordMapinlineprivate
    forward(CoordT::iterator out, CoordT::const_iterator in) const overrideade::CoordMapvirtual
    fwd_ade::CoordMapprivate
    reverse(void) const overrideade::CoordMapinlinevirtual
    to_string(void) const overrideade::CoordMapinlinevirtual
    ~iCoordMap(void)=defaultade::iCoordMapvirtual
    + + + + diff --git a/docs/structade_1_1_coord_map.html b/docs/structade_1_1_coord_map.html new file mode 100644 index 000000000..cefe27efa --- /dev/null +++ b/docs/structade_1_1_coord_map.html @@ -0,0 +1,422 @@ + + + + + + + +Tenncor: ade::CoordMap Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ade::CoordMap Struct Referencefinal
    +
    +
    + +

    #include <coord.hpp>

    +
    +Inheritance diagram for ade::CoordMap:
    +
    +
    + + +ade::iCoordMap + +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     CoordMap (std::function< void(MatrixT)> init)
     
    void forward (CoordT::iterator out, CoordT::const_iterator in) const override
     Implementation of iCoordMap. More...
     
    void backward (CoordT::iterator out, CoordT::const_iterator in) const override
     Implementation of iCoordMap. More...
     
    iCoordMapreverse (void) const override
     Implementation of iCoordMap. More...
     
    std::string to_string (void) const override
     Implementation of iCoordMap. More...
     
    void access (std::function< void(const MatrixT &)> cb) const override
     Implementation of iCoordMap. More...
     
    - Public Member Functions inherited from ade::iCoordMap
    virtual ~iCoordMap (void)=default
     
    + + + +

    +Private Member Functions

     CoordMap (const MatrixT fwd, const MatrixT bwd)
     
    + + + + + + + +

    +Private Attributes

    MatrixT fwd_
     Forward transformation matrix. More...
     
    MatrixT bwd_
     Inverse of the forward transformation matrix. More...
     
    +

    Detailed Description

    +

    Coordinate transformation implementation using homogeneous matrices The transformation matrix must be inversible otherwise fatal on creation

    +

    Constructor & Destructor Documentation

    + +

    ◆ CoordMap() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ade::CoordMap::CoordMap (std::function< void(MatrixT)> init)
    +
    +inline
    +
    + +
    +
    + +

    ◆ CoordMap() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    ade::CoordMap::CoordMap (const MatrixT fwd,
    const MatrixT bwd 
    )
    +
    +inlineprivate
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ access()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ade::CoordMap::access (std::function< void(const MatrixT &)> cb) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iCoordMap.

    + +

    Implements ade::iCoordMap.

    + +
    +
    + +

    ◆ backward()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ade::CoordMap::backward (CoordT::iterator out,
    CoordT::const_iterator in 
    ) const
    +
    +overridevirtual
    +
    + +

    Implementation of iCoordMap.

    + +

    Implements ade::iCoordMap.

    + +
    +
    + +

    ◆ forward()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ade::CoordMap::forward (CoordT::iterator out,
    CoordT::const_iterator in 
    ) const
    +
    +overridevirtual
    +
    + +

    Implementation of iCoordMap.

    + +

    Implements ade::iCoordMap.

    + +
    +
    + +

    ◆ reverse()

    + +
    +
    + + + + + +
    + + + + + + + + +
    iCoordMap* ade::CoordMap::reverse (void ) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iCoordMap.

    + +

    Implements ade::iCoordMap.

    + +
    +
    + +

    ◆ to_string()

    + +
    +
    + + + + + +
    + + + + + + + + +
    std::string ade::CoordMap::to_string (void ) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iCoordMap.

    + +

    Implements ade::iCoordMap.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ bwd_

    + +
    +
    + + + + + +
    + + + + +
    MatrixT ade::CoordMap::bwd_
    +
    +private
    +
    + +

    Inverse of the forward transformation matrix.

    + +
    +
    + +

    ◆ fwd_

    + +
    +
    + + + + + +
    + + + + +
    MatrixT ade::CoordMap::fwd_
    +
    +private
    +
    + +

    Forward transformation matrix.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structade_1_1_coord_map.png b/docs/structade_1_1_coord_map.png new file mode 100644 index 0000000000000000000000000000000000000000..3862d45777d794a7933f3f8fbcc635ad0d2245ce GIT binary patch literal 530 zcmeAS@N?(olHy`uVBq!ia0vp^X+Rvn!3-qtD1CSUq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IXg7kaulhEy=Vo%?p(V*?J>riufZcp5JP1mcLc?EY4l`Y_3~v zvt{5UldFB2_bLt5mxb-FeRqFbS@0^()eo2?436%ed3$G{<~OnYc{a~Vu4J8=IO`XW z75}be%xt=~=o*eBMU)WFCFCOJdgk?)rm!`k#EhYjIuYZ~?dT+ReLf z{(h5vxqRvNOUo?sqT>DB?R+--PF^BEZRVdt9zg-z%ASt4?I$gt-)0rK%Kf0uwz+bz z+(Vn@n;QNFa)u!MluLh=81JlYW#o8eZuov# zawNmDTQO&=1;5HZGl(fJ^Z6JjnryK3!LG;KYCf+%8dAW>Gvm?SGiJ@X+e`NEK0Eo~ zoNG~Co$FVgSE#?R?d7N6Z-RSFOMCoHq-U)?>ho3`=qI&Za + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ade::DefLogger Member List
    +
    +
    + +

    This is the complete list of members for ade::DefLogger, including all inherited members.

    + + + + + +
    error(std::string msg) const overrideade::DefLoggerinlinevirtual
    fatal(std::string msg) const overrideade::DefLoggerinlinevirtual
    warn(std::string msg) const overrideade::DefLoggerinlinevirtual
    ~iLogger(void)=defaultade::iLoggervirtual
    + + + + diff --git a/docs/structade_1_1_def_logger.html b/docs/structade_1_1_def_logger.html new file mode 100644 index 000000000..9668b733e --- /dev/null +++ b/docs/structade_1_1_def_logger.html @@ -0,0 +1,209 @@ + + + + + + + +Tenncor: ade::DefLogger Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ade::DefLogger Struct Reference
    +
    +
    + +

    Default implementation of iLogger used in ADE. + More...

    + +

    #include <log.hpp>

    +
    +Inheritance diagram for ade::DefLogger:
    +
    +
    + + +ade::iLogger + +
    + + + + + + + + + + + + + + +

    +Public Member Functions

    void warn (std::string msg) const override
     Implementation of iLogger. More...
     
    void error (std::string msg) const override
     Implementation of iLogger. More...
     
    void fatal (std::string msg) const override
     Implementation of iLogger. More...
     
    - Public Member Functions inherited from ade::iLogger
    virtual ~iLogger (void)=default
     
    +

    Detailed Description

    +

    Default implementation of iLogger used in ADE.

    +

    Member Function Documentation

    + +

    ◆ error()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ade::DefLogger::error (std::string msg) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iLogger.

    + +

    Implements ade::iLogger.

    + +
    +
    + +

    ◆ fatal()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ade::DefLogger::fatal (std::string msg) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iLogger.

    + +

    Implements ade::iLogger.

    + +
    +
    + +

    ◆ warn()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ade::DefLogger::warn (std::string msg) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iLogger.

    + +

    Implements ade::iLogger.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structade_1_1_def_logger.png b/docs/structade_1_1_def_logger.png new file mode 100644 index 0000000000000000000000000000000000000000..a8d5de091766b0fa5d478f622518bf50e77465df GIT binary patch literal 509 zcmVvTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0004uNklT%BS>LF<}{Jtt)wO4A*mwYt)N|GH< zzvm`0N%Hg*!)rcC+UdDC)|55h|M6{?q?o>lk#o*{1#nF_fX;dY<96#0c?08)=ni=Y z<7@hAFaUxY41kyh10bfs0ElTY0Ad;pfS3jYAf|uJNGYYxA^~*OU;xDQDaL-M^u}i6 z(#=AQ-R5KZH^zL|`HuGHWw!2?$BCD9Ud~<_^W~;9HY>xZyQf~pd72+`imNnFjrnvZ5*z4|>j zkpXtRhT(PN%fDA^%DmIYw;dp+FJh#WQeXW5d({=IAn!*_00000NkvXXu0mjfnGf@U literal 0 HcmV?d00001 diff --git a/docs/structade_1_1_functor-members.html b/docs/structade_1_1_functor-members.html new file mode 100644 index 000000000..085ee58b3 --- /dev/null +++ b/docs/structade_1_1_functor-members.html @@ -0,0 +1,96 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ade::Functor Member List
    +
    +
    + +

    This is the complete list of members for ade::Functor, including all inherited members.

    + + + + + + + + + + + + + + +
    accept(iTraveler &visiter) overrideade::iFunctorinlinevirtual
    args_ade::Functorprivate
    Functor(OPCODE opcode, Shape shape, ArgsT args)ade::Functorinlineprivate
    get(OPCODE opcode, ArgsT args)ade::Functorinlinestatic
    get_children(void) const overrideade::Functorinlinevirtual
    get_code(void) const overrideade::Functorinlinevirtual
    gradient(const iTensor *wrt) overrideade::Functorinlinevirtual
    opcode_ade::Functorprivate
    shape(void) const overrideade::Functorinlinevirtual
    shape_ade::Functorprivate
    to_string(void) const overrideade::Functorinlinevirtual
    ~iFunctor(void)=defaultade::iFunctorvirtual
    ~iTensor(void)=defaultade::iTensorvirtual
    + + + + diff --git a/docs/structade_1_1_functor.html b/docs/structade_1_1_functor.html new file mode 100644 index 000000000..bcc105319 --- /dev/null +++ b/docs/structade_1_1_functor.html @@ -0,0 +1,462 @@ + + + + + + + +Tenncor: ade::Functor Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    + +
    + +

    Functor of the graph mapping to operators specified by opcode argument. + More...

    + +

    #include <functor.hpp>

    +
    +Inheritance diagram for ade::Functor:
    +
    +
    + + +ade::iFunctor +ade::iTensor + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    const Shapeshape (void) const override
     Implementation of iTensor. More...
     
    Tensorptr gradient (const iTensor *wrt) override
     Implementation of iTensor. More...
     
    std::string to_string (void) const override
     Implementation of iTensor. More...
     
    OPCODE get_code (void) const override
     Implementation of iFunctor. More...
     
    const ArgsTget_children (void) const override
     Implementation of iFunctor. More...
     
    - Public Member Functions inherited from ade::iFunctor
    virtual ~iFunctor (void)=default
     
    void accept (iTraveler &visiter) override
     Implementation of iTensor. More...
     
    - Public Member Functions inherited from ade::iTensor
    virtual ~iTensor (void)=default
     
    + + + + +

    +Static Public Member Functions

    static Functorget (OPCODE opcode, ArgsT args)
     Return a Functor with with input tensor and meta arguments. More...
     
    + + + +

    +Private Member Functions

     Functor (OPCODE opcode, Shape shape, ArgsT args)
     
    + + + + + + + + + + +

    +Private Attributes

    OPCODE opcode_
     OPCODE represented by functor. More...
     
    Shape shape_
     Shape info built at construction time according to arguments. More...
     
    ArgsT args_
     Tensor arguments (and children) More...
     
    +

    Detailed Description

    +

    Functor of the graph mapping to operators specified by opcode argument.

    +

    Constructor & Destructor Documentation

    + +

    ◆ Functor()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    ade::Functor::Functor (OPCODE opcode,
    Shape shape,
    ArgsT args 
    )
    +
    +inlineprivate
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static Functor* ade::Functor::get (OPCODE opcode,
    ArgsT args 
    )
    +
    +inlinestatic
    +
    + +

    Return a Functor with with input tensor and meta arguments.

    + +
    +
    + +

    ◆ get_children()

    + +
    +
    + + + + + +
    + + + + + + + + +
    const ArgsT& ade::Functor::get_children (void ) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iFunctor.

    + +

    Implements ade::iFunctor.

    + +
    +
    + +

    ◆ get_code()

    + +
    +
    + + + + + +
    + + + + + + + + +
    OPCODE ade::Functor::get_code (void ) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iFunctor.

    + +

    Implements ade::iFunctor.

    + +
    +
    + +

    ◆ gradient()

    + +
    +
    + + + + + +
    + + + + + + + + +
    Tensorptr ade::Functor::gradient (const iTensorwrt)
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iTensor.

    + +

    Implements ade::iTensor.

    + +
    +
    + +

    ◆ shape()

    + +
    +
    + + + + + +
    + + + + + + + + +
    const Shape& ade::Functor::shape (void ) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iTensor.

    + +

    Implements ade::iTensor.

    + +
    +
    + +

    ◆ to_string()

    + +
    +
    + + + + + +
    + + + + + + + + +
    std::string ade::Functor::to_string (void ) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iTensor.

    + +

    Implements ade::iTensor.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ args_

    + +
    +
    + + + + + +
    + + + + +
    ArgsT ade::Functor::args_
    +
    +private
    +
    + +

    Tensor arguments (and children)

    + +
    +
    + +

    ◆ opcode_

    + +
    +
    + + + + + +
    + + + + +
    OPCODE ade::Functor::opcode_
    +
    +private
    +
    + +

    OPCODE represented by functor.

    + +
    +
    + +

    ◆ shape_

    + +
    +
    + + + + + +
    + + + + +
    Shape ade::Functor::shape_
    +
    +private
    +
    + +

    Shape info built at construction time according to arguments.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structade_1_1_functor.png b/docs/structade_1_1_functor.png new file mode 100644 index 0000000000000000000000000000000000000000..f19e89d3358b6ea53e0da0e126561191bd78bd58 GIT binary patch literal 590 zcmV-U0vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0005qNkl^(5nRi#%m6CS*CF3U{~r4?j-EXIw7!u4QyZm_y}xZ1N#Hmlu{ZmBmfw#zsTO{z3iNrq4*M1bxHSdB5iNsS~oJcS2pVvgZ{#>U4HO{1XBTK*sB^ cDWx=Af6((JH`ET)0RR9107*qoM6N<$f&gX}`~Uy| literal 0 HcmV?d00001 diff --git a/docs/structade_1_1_path_finder-members.html b/docs/structade_1_1_path_finder-members.html new file mode 100644 index 000000000..d075f7007 --- /dev/null +++ b/docs/structade_1_1_path_finder-members.html @@ -0,0 +1,90 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ade::PathFinder Member List
    +
    +
    + +

    This is the complete list of members for ade::PathFinder, including all inherited members.

    + + + + + + + + +
    ParentMapT typedefade::PathFinder
    parents_ade::PathFinder
    PathFinder(const iTensor *target)ade::PathFinderinline
    target_ade::PathFinder
    visit(Tensor *leaf) overrideade::PathFinderinlinevirtual
    visit(iFunctor *func) overrideade::PathFinderinlinevirtual
    ~iTraveler(void)=defaultade::iTravelervirtual
    + + + + diff --git a/docs/structade_1_1_path_finder.html b/docs/structade_1_1_path_finder.html new file mode 100644 index 000000000..6ee160a02 --- /dev/null +++ b/docs/structade_1_1_path_finder.html @@ -0,0 +1,269 @@ + + + + + + + +Tenncor: ade::PathFinder Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ade::PathFinder Struct Referencefinal
    +
    +
    + +

    #include <functor.hpp>

    +
    +Inheritance diagram for ade::PathFinder:
    +
    +
    + + +ade::iTraveler + +
    + + + + + +

    +Public Types

    using ParentMapT = std::unordered_map< iTensor *, std::vector< bool > >
     Type for mapping function nodes in path to boolean vector. More...
     
    + + + + + + + + + + + + +

    +Public Member Functions

     PathFinder (const iTensor *target)
     
    void visit (Tensor *leaf) override
     Implementation of iTraveler. More...
     
    void visit (iFunctor *func) override
     Implementation of iTraveler. More...
     
    - Public Member Functions inherited from ade::iTraveler
    virtual ~iTraveler (void)=default
     
    + + + + + + + +

    +Public Attributes

    const iTensortarget_
     Target of tensor all paths are travelling to. More...
     
    ParentMapT parents_
     Map of parent nodes in path. More...
     
    +

    Detailed Description

    +

    Traveler implementation that paints paths to a target tensor All nodes in the path are added as keys to the parents_ map with the values being a boolean vector denoting nodes leading to target For a boolean value x at index i in mapped vector, x is true if the ith child leads to target

    +

    Member Typedef Documentation

    + +

    ◆ ParentMapT

    + +
    +
    + + + + +
    using ade::PathFinder::ParentMapT = std::unordered_map<iTensor*,std::vector<bool> >
    +
    + +

    Type for mapping function nodes in path to boolean vector.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ PathFinder()

    + +
    +
    + + + + + +
    + + + + + + + + +
    ade::PathFinder::PathFinder (const iTensortarget)
    +
    +inline
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ visit() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ade::PathFinder::visit (Tensorleaf)
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iTraveler.

    + +

    Implements ade::iTraveler.

    + +
    +
    + +

    ◆ visit() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ade::PathFinder::visit (iFunctorfunc)
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iTraveler.

    + +

    Implements ade::iTraveler.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ parents_

    + +
    +
    + + + + +
    ParentMapT ade::PathFinder::parents_
    +
    + +

    Map of parent nodes in path.

    + +
    +
    + +

    ◆ target_

    + +
    +
    + + + + +
    const iTensor* ade::PathFinder::target_
    +
    + +

    Target of tensor all paths are travelling to.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structade_1_1_path_finder.png b/docs/structade_1_1_path_finder.png new file mode 100644 index 0000000000000000000000000000000000000000..1e8dedf06be4b313ba6ec542ca6e7a40029a43a4 GIT binary patch literal 494 zcmeAS@N?(olHy`uVBq!ia0vp^sX!dS!3-qLMZF&bDTx4|5ZC|z{{xvX-h3_XKQsZz z0^T2B|pkP61Pb1(L_DDb%QPe1bi|C70) zEn!o9%rAPT&8#qWxE*{eZQe=C=eJ#_EtzeqIZ5PVyQb%)+DVtbOv!5=l1rVcxB$cq+=(| zetT%9Z{2b<|GQ-1FRMAlF=z7&_ka>b=jqSJ1t#cM`C zT79%CCic38`n&2cUYc>)65F$;oI4UUt8}x@6X&BbOUe>{Upkb3{nq=EUxt}8y1xF~ zcj4+07VER;9<0|&`zw2NYN5|d8~56u+(*AYEjebk*i2>L$=p49ns|EC2ui literal 0 HcmV?d00001 diff --git a/docs/structade_1_1_shape-members.html b/docs/structade_1_1_shape-members.html new file mode 100644 index 000000000..bdc0c7310 --- /dev/null +++ b/docs/structade_1_1_shape-members.html @@ -0,0 +1,104 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ade::Shape Member List
    +
    +
    + +

    This is the complete list of members for ade::Shape, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + +
    at(uint8_t idx) constade::Shapeinline
    begin(void)ade::Shapeinline
    begin(void) constade::Shapeinline
    compatible_after(const Shape &other, uint8_t idx) constade::Shapeinline
    compatible_before(const Shape &other, uint8_t idx) constade::Shapeinline
    const_iterator typedefade::Shape
    dims_ade::Shapeprivate
    end(void)ade::Shapeinline
    end(void) constade::Shapeinline
    iterator typedefade::Shape
    move_helper(Shape &&other)ade::Shapeinlineprivate
    n_elems(void) constade::Shapeinline
    operator=(const Shape &other)=defaultade::Shape
    operator=(const std::vector< DimT > &dims)ade::Shapeinline
    operator=(Shape &&other)ade::Shapeinline
    Shape(void)ade::Shapeinline
    Shape(std::vector< DimT > dims)ade::Shapeinline
    Shape(const Shape &other)=defaultade::Shape
    Shape(Shape &&other)ade::Shapeinline
    to_string(void) constade::Shapeinline
    vector_assign(const std::vector< DimT > &dims)ade::Shapeinlineprivate
    + + + + diff --git a/docs/structade_1_1_shape.html b/docs/structade_1_1_shape.html new file mode 100644 index 000000000..c6be17baa --- /dev/null +++ b/docs/structade_1_1_shape.html @@ -0,0 +1,722 @@ + + + + + + + +Tenncor: ade::Shape Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    + +
    + +

    #include <shape.hpp>

    + + + + + + + + +

    +Public Types

    using iterator = ShapeT::iterator
     Type of iterator used to iterate through internal array. More...
     
    using const_iterator = ShapeT::const_iterator
     Type of constant iterator used to iterate through internal array. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     Shape (void)
     
     Shape (std::vector< DimT > dims)
     
     Shape (const Shape &other)=default
     
    Shapeoperator= (const Shape &other)=default
     
    Shapeoperator= (const std::vector< DimT > &dims)
     
     Shape (Shape &&other)
     
    Shapeoperator= (Shape &&other)
     
    DimT at (uint8_t idx) const
     Return DimT element at idx for any index in range [0:rank_cap) More...
     
    NElemT n_elems (void) const
     Return the total number of elements represented by the shape. More...
     
    bool compatible_before (const Shape &other, uint8_t idx) const
     
    bool compatible_after (const Shape &other, uint8_t idx) const
     
    std::string to_string (void) const
     Return string representation of shape. More...
     
    iterator begin (void)
     Return begin iterator of internal array. More...
     
    iterator end (void)
     Return end iterator of internal array. More...
     
    const_iterator begin (void) const
     Return begin constant iterator of internal array. More...
     
    const_iterator end (void) const
     Return end constant iterator of internal array. More...
     
    + + + + + +

    +Private Member Functions

    void vector_assign (const std::vector< DimT > &dims)
     
    void move_helper (Shape &&other)
     
    + + + + +

    +Private Attributes

    ShapeT dims_
     Array of dimension values. More...
     
    +

    Detailed Description

    +

    Models an aligned shape using an array of DimT values For each DimT at index i, DimT value is number of elements at dimension i For example, shape={3, 2} can model tensor [[x, y, z], [u, v, w]] (In cartesian coordinate, we treat values along the X-axis as dimension 0)

    +

    Member Typedef Documentation

    + +

    ◆ const_iterator

    + +
    +
    + + + + +
    using ade::Shape::const_iterator = ShapeT::const_iterator
    +
    + +

    Type of constant iterator used to iterate through internal array.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    + + + + +
    using ade::Shape::iterator = ShapeT::iterator
    +
    + +

    Type of iterator used to iterate through internal array.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ Shape() [1/4]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ade::Shape::Shape (void )
    +
    +inline
    +
    + +
    +
    + +

    ◆ Shape() [2/4]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ade::Shape::Shape (std::vector< DimTdims)
    +
    +inline
    +
    + +
    +
    + +

    ◆ Shape() [3/4]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ade::Shape::Shape (const Shapeother)
    +
    +default
    +
    + +
    +
    + +

    ◆ Shape() [4/4]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ade::Shape::Shape (Shape && other)
    +
    +inline
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ at()

    + +
    +
    + + + + + +
    + + + + + + + + +
    DimT ade::Shape::at (uint8_t idx) const
    +
    +inline
    +
    + +

    Return DimT element at idx for any index in range [0:rank_cap)

    + +
    +
    + +

    ◆ begin() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    iterator ade::Shape::begin (void )
    +
    +inline
    +
    + +

    Return begin iterator of internal array.

    + +
    +
    + +

    ◆ begin() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    const_iterator ade::Shape::begin (void ) const
    +
    +inline
    +
    + +

    Return begin constant iterator of internal array.

    + +
    +
    + +

    ◆ compatible_after()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool ade::Shape::compatible_after (const Shapeother,
    uint8_t idx 
    ) const
    +
    +inline
    +
    +

    Return true if this->dims_[idx:rank_cap) is equal to other.dims_[idx:rank_cap), otherwise return false Set idx to 0 to compare entire shape

    + +
    +
    + +

    ◆ compatible_before()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool ade::Shape::compatible_before (const Shapeother,
    uint8_t idx 
    ) const
    +
    +inline
    +
    +

    Return true if this->dims_[0:idx) is equal to other.dims_[0:idx), otherwise return false

    + +
    +
    + +

    ◆ end() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    iterator ade::Shape::end (void )
    +
    +inline
    +
    + +

    Return end iterator of internal array.

    + +
    +
    + +

    ◆ end() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    const_iterator ade::Shape::end (void ) const
    +
    +inline
    +
    + +

    Return end constant iterator of internal array.

    + +
    +
    + +

    ◆ move_helper()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ade::Shape::move_helper (Shape && other)
    +
    +inlineprivate
    +
    + +
    +
    + +

    ◆ n_elems()

    + +
    +
    + + + + + +
    + + + + + + + + +
    NElemT ade::Shape::n_elems (void ) const
    +
    +inline
    +
    + +

    Return the total number of elements represented by the shape.

    + +
    +
    + +

    ◆ operator=() [1/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    Shape& ade::Shape::operator= (const Shapeother)
    +
    +default
    +
    + +
    +
    + +

    ◆ operator=() [2/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    Shape& ade::Shape::operator= (const std::vector< DimT > & dims)
    +
    +inline
    +
    + +
    +
    + +

    ◆ operator=() [3/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    Shape& ade::Shape::operator= (Shape && other)
    +
    +inline
    +
    + +
    +
    + +

    ◆ to_string()

    + +
    +
    + + + + + +
    + + + + + + + + +
    std::string ade::Shape::to_string (void ) const
    +
    +inline
    +
    + +

    Return string representation of shape.

    + +
    +
    + +

    ◆ vector_assign()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ade::Shape::vector_assign (const std::vector< DimT > & dims)
    +
    +inlineprivate
    +
    + +
    +
    +

    Member Data Documentation

    + +

    ◆ dims_

    + +
    +
    + + + + + +
    + + + + +
    ShapeT ade::Shape::dims_
    +
    +private
    +
    + +

    Array of dimension values.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structade_1_1_tensor-members.html b/docs/structade_1_1_tensor-members.html new file mode 100644 index 000000000..3105bd756 --- /dev/null +++ b/docs/structade_1_1_tensor-members.html @@ -0,0 +1,93 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ade::Tensor Member List
    +
    +
    + +

    This is the complete list of members for ade::Tensor, including all inherited members.

    + + + + + + + + + + + +
    accept(iTraveler &visiter) overrideade::Tensorinlinevirtual
    get(Shape shape)ade::Tensorinlinestatic
    gradient(const iTensor *wrt) overrideade::Tensorinlinevirtual
    shape(void) const overrideade::Tensorinlinevirtual
    shape_ade::Tensorprivate
    SYMBOLIC_ONEade::Tensorstatic
    SYMBOLIC_ZEROade::Tensorstatic
    Tensor(Shape shape)ade::Tensorinlineprivate
    to_string(void) const overrideade::Tensorinlinevirtual
    ~iTensor(void)=defaultade::iTensorvirtual
    + + + + diff --git a/docs/structade_1_1_tensor.html b/docs/structade_1_1_tensor.html new file mode 100644 index 000000000..e839f9715 --- /dev/null +++ b/docs/structade_1_1_tensor.html @@ -0,0 +1,400 @@ + + + + + + + +Tenncor: ade::Tensor Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    + +
    + +

    Leaf of the graph commonly representing the variable in an equation. + More...

    + +

    #include <tensor.hpp>

    +
    +Inheritance diagram for ade::Tensor:
    +
    +
    + + +ade::iTensor + +
    + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    void accept (iTraveler &visiter) override
     Implementation of iTensor. More...
     
    const Shapeshape (void) const override
     Implementation of iTensor. More...
     
    Tensorptr gradient (const iTensor *wrt) override
     Implementation of iTensor. More...
     
    std::string to_string (void) const override
     Implementation of iTensor. More...
     
    - Public Member Functions inherited from ade::iTensor
    virtual ~iTensor (void)=default
     
    + + + + +

    +Static Public Member Functions

    static Tensorget (Shape shape)
     Return a Tensor with input shape. More...
     
    + + + + + + + +

    +Static Public Attributes

    static Tensorptr SYMBOLIC_ONE
     Represent a scalar containing value one. More...
     
    static Tensorptr SYMBOLIC_ZERO
     Represent a scalar containing value zero. More...
     
    + + + +

    +Private Member Functions

     Tensor (Shape shape)
     
    + + + + +

    +Private Attributes

    Shape shape_
     Shape info of the tensor instance. More...
     
    +

    Detailed Description

    +

    Leaf of the graph commonly representing the variable in an equation.

    +

    Constructor & Destructor Documentation

    + +

    ◆ Tensor()

    + +
    +
    + + + + + +
    + + + + + + + + +
    ade::Tensor::Tensor (Shape shape)
    +
    +inlineprivate
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ accept()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ade::Tensor::accept (iTravelervisiter)
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iTensor.

    + +

    Implements ade::iTensor.

    + +
    +
    + +

    ◆ get()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static Tensor* ade::Tensor::get (Shape shape)
    +
    +inlinestatic
    +
    + +

    Return a Tensor with input shape.

    + +
    +
    + +

    ◆ gradient()

    + +
    +
    + + + + + +
    + + + + + + + + +
    Tensorptr ade::Tensor::gradient (const iTensorwrt)
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iTensor.

    + +

    Implements ade::iTensor.

    + +
    +
    + +

    ◆ shape()

    + +
    +
    + + + + + +
    + + + + + + + + +
    const Shape& ade::Tensor::shape (void ) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iTensor.

    + +

    Implements ade::iTensor.

    + +
    +
    + +

    ◆ to_string()

    + +
    +
    + + + + + +
    + + + + + + + + +
    std::string ade::Tensor::to_string (void ) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iTensor.

    + +

    Implements ade::iTensor.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ shape_

    + +
    +
    + + + + + +
    + + + + +
    Shape ade::Tensor::shape_
    +
    +private
    +
    + +

    Shape info of the tensor instance.

    + +
    +
    + +

    ◆ SYMBOLIC_ONE

    + +
    +
    + + + + + +
    + + + + +
    Tensorptr ade::Tensor::SYMBOLIC_ONE
    +
    +static
    +
    + +

    Represent a scalar containing value one.

    + +
    +
    + +

    ◆ SYMBOLIC_ZERO

    + +
    +
    + + + + + +
    + + + + +
    Tensorptr ade::Tensor::SYMBOLIC_ZERO
    +
    +static
    +
    + +

    Represent a scalar containing value zero.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structade_1_1_tensor.png b/docs/structade_1_1_tensor.png new file mode 100644 index 0000000000000000000000000000000000000000..98123dd34a7fe64dea8b508a2c72dd0172070390 GIT binary patch literal 448 zcmeAS@N?(olHy`uVBq!ia0vp^fj}I1Zx!XQT|768zj>u~$n4LvZ(+eUIcrbB138?>+BY2im + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ade::Tensorptr Member List
    +
    +
    + +

    This is the complete list of members for ade::Tensorptr, including all inherited members.

    + + + + + + + + + + +
    get(void) constade::Tensorptrinline
    operator->(void)ade::Tensorptrinline
    operator->(void) constade::Tensorptrinline
    ptr_ade::Tensorptrprotected
    ref(void) constade::Tensorptrinline
    Tensorptr(iTensor &tens)ade::Tensorptrinline
    Tensorptr(iTensor *tens)ade::Tensorptrinline
    Tensorptr(std::shared_ptr< iTensor > tens)ade::Tensorptrinline
    ~Tensorptr(void)=defaultade::Tensorptrvirtual
    + + + + diff --git a/docs/structade_1_1_tensorptr.html b/docs/structade_1_1_tensorptr.html new file mode 100644 index 000000000..9aa92e64a --- /dev/null +++ b/docs/structade_1_1_tensorptr.html @@ -0,0 +1,361 @@ + + + + + + + +Tenncor: ade::Tensorptr Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ade::Tensorptr Struct Reference
    +
    +
    + +

    Smart pointer to iTensor ensuring non-null references. + More...

    + +

    #include <tensor.hpp>

    + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     Tensorptr (iTensor &tens)
     
     Tensorptr (iTensor *tens)
     
     Tensorptr (std::shared_ptr< iTensor > tens)
     
    virtual ~Tensorptr (void)=default
     
    iTensoroperator-> (void)
     
    const iTensoroperator-> (void) const
     
    iTensorget (void) const
     Return the raw pointer. More...
     
    std::weak_ptr< iTensorref (void) const
     Return the weakptr reference. More...
     
    + + + + +

    +Protected Attributes

    std::shared_ptr< iTensorptr_
     Strong reference to iTensor. More...
     
    +

    Detailed Description

    +

    Smart pointer to iTensor ensuring non-null references.

    +

    Constructor & Destructor Documentation

    + +

    ◆ Tensorptr() [1/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ade::Tensorptr::Tensorptr (iTensortens)
    +
    +inline
    +
    + +
    +
    + +

    ◆ Tensorptr() [2/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ade::Tensorptr::Tensorptr (iTensortens)
    +
    +inline
    +
    + +
    +
    + +

    ◆ Tensorptr() [3/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ade::Tensorptr::Tensorptr (std::shared_ptr< iTensortens)
    +
    +inline
    +
    + +
    +
    + +

    ◆ ~Tensorptr()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual ade::Tensorptr::~Tensorptr (void )
    +
    +virtualdefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get()

    + +
    +
    + + + + + +
    + + + + + + + + +
    iTensor* ade::Tensorptr::get (void ) const
    +
    +inline
    +
    + +

    Return the raw pointer.

    + +
    +
    + +

    ◆ operator->() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    iTensor* ade::Tensorptr::operator-> (void )
    +
    +inline
    +
    + +
    +
    + +

    ◆ operator->() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    const iTensor* ade::Tensorptr::operator-> (void ) const
    +
    +inline
    +
    + +
    +
    + +

    ◆ ref()

    + +
    +
    + + + + + +
    + + + + + + + + +
    std::weak_ptr<iTensor> ade::Tensorptr::ref (void ) const
    +
    +inline
    +
    + +

    Return the weakptr reference.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ ptr_

    + +
    +
    + + + + + +
    + + + + +
    std::shared_ptr<iTensor> ade::Tensorptr::ptr_
    +
    +protected
    +
    + +

    Strong reference to iTensor.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structade_1_1i_coord_map-members.html b/docs/structade_1_1i_coord_map-members.html new file mode 100644 index 000000000..e326222ec --- /dev/null +++ b/docs/structade_1_1i_coord_map-members.html @@ -0,0 +1,89 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ade::iCoordMap Member List
    +
    +
    + +

    This is the complete list of members for ade::iCoordMap, including all inherited members.

    + + + + + + + +
    access(std::function< void(const MatrixT &)> cb) const =0ade::iCoordMappure virtual
    backward(CoordT::iterator out, CoordT::const_iterator in) const =0ade::iCoordMappure virtual
    forward(CoordT::iterator out, CoordT::const_iterator in) const =0ade::iCoordMappure virtual
    reverse(void) const =0ade::iCoordMappure virtual
    to_string(void) const =0ade::iCoordMappure virtual
    ~iCoordMap(void)=defaultade::iCoordMapvirtual
    + + + + diff --git a/docs/structade_1_1i_coord_map.html b/docs/structade_1_1i_coord_map.html new file mode 100644 index 000000000..74f219a32 --- /dev/null +++ b/docs/structade_1_1i_coord_map.html @@ -0,0 +1,317 @@ + + + + + + + +Tenncor: ade::iCoordMap Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ade::iCoordMap Struct Referenceabstract
    +
    +
    + +

    Interface for transforming coordinates and reversing the coordinate. + More...

    + +

    #include <coord.hpp>

    +
    +Inheritance diagram for ade::iCoordMap:
    +
    +
    + + +ade::CoordMap + +
    + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    virtual ~iCoordMap (void)=default
     
    virtual void forward (CoordT::iterator out, CoordT::const_iterator in) const =0
     Forward transform coordinates. More...
     
    virtual void backward (CoordT::iterator out, CoordT::const_iterator in) const =0
     Reverse transform coordinates. More...
     
    virtual iCoordMapreverse (void) const =0
     
    virtual std::string to_string (void) const =0
     Return string representation of coordinate transformer. More...
     
    virtual void access (std::function< void(const MatrixT &)> cb) const =0
     
    +

    Detailed Description

    +

    Interface for transforming coordinates and reversing the coordinate.

    +

    Constructor & Destructor Documentation

    + +

    ◆ ~iCoordMap()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual ade::iCoordMap::~iCoordMap (void )
    +
    +virtualdefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ access()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void ade::iCoordMap::access (std::function< void(const MatrixT &)> cb) const
    +
    +pure virtual
    +
    +

    Access the matrix representation of transformer as a param to input callback function cb

    + +

    Implemented in ade::CoordMap.

    + +
    +
    + +

    ◆ backward()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    virtual void ade::iCoordMap::backward (CoordT::iterator out,
    CoordT::const_iterator in 
    ) const
    +
    +pure virtual
    +
    + +

    Reverse transform coordinates.

    + +

    Implemented in ade::CoordMap.

    + +
    +
    + +

    ◆ forward()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    virtual void ade::iCoordMap::forward (CoordT::iterator out,
    CoordT::const_iterator in 
    ) const
    +
    +pure virtual
    +
    + +

    Forward transform coordinates.

    + +

    Implemented in ade::CoordMap.

    + +
    +
    + +

    ◆ reverse()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual iCoordMap* ade::iCoordMap::reverse (void ) const
    +
    +pure virtual
    +
    +

    Return coordinate transformation with its forward and backward transformations reversed

    + +

    Implemented in ade::CoordMap.

    + +
    +
    + +

    ◆ to_string()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual std::string ade::iCoordMap::to_string (void ) const
    +
    +pure virtual
    +
    + +

    Return string representation of coordinate transformer.

    + +

    Implemented in ade::CoordMap.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structade_1_1i_coord_map.png b/docs/structade_1_1i_coord_map.png new file mode 100644 index 0000000000000000000000000000000000000000..d7dcae12c4acca2f19258be812b86818d947c067 GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^X+Rvn!3-qtD1CSUq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IXg7kRokhEy=Vom<#{Sb@WR{){ib>z`~6 z)wZbCo_?PszG6andflPKqnw&lNNPoulX@BgbA4{daSa#v6)hyqi(x$VQJ&WIc zBmdUUIc+sF+-9?VNSygJN`hg!7~6rBl`{mKDqGCuLb2C4S)Pe(`a{Ua=bf{Q2EDJdnZ zhJTH7xqDcqE&E*G$$P7lM3#xn+4ns@c3;&hL)JNrvTD_nch1e8@n)6#mDz_(vNc_g zPQRk-A-~1f_-F1nMYq|0J-#Mcv(~wmz7=zebyeS$H|ynOdE-~dXWuNDZFcO%kMEmr zuCK~Fw^NVx;@XJ2TZ)Z&e;UN*%<4Fyo_cGafs&FR*g>BS43GWTQOEGZR!l{k-{lQ3 P1{pkE{an^LB{Ts5EwJk{ literal 0 HcmV?d00001 diff --git a/docs/structade_1_1i_functor-members.html b/docs/structade_1_1i_functor-members.html new file mode 100644 index 000000000..24e1cd4fe --- /dev/null +++ b/docs/structade_1_1i_functor-members.html @@ -0,0 +1,91 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ade::iFunctor Member List
    +
    +
    + +

    This is the complete list of members for ade::iFunctor, including all inherited members.

    + + + + + + + + + +
    accept(iTraveler &visiter) overrideade::iFunctorinlinevirtual
    get_children(void) const =0ade::iFunctorpure virtual
    get_code(void) const =0ade::iFunctorpure virtual
    gradient(const iTensor *wrt)=0ade::iTensorpure virtual
    shape(void) const =0ade::iTensorpure virtual
    to_string(void) const =0ade::iTensorpure virtual
    ~iFunctor(void)=defaultade::iFunctorvirtual
    ~iTensor(void)=defaultade::iTensorvirtual
    + + + + diff --git a/docs/structade_1_1i_functor.html b/docs/structade_1_1i_functor.html new file mode 100644 index 000000000..591e34944 --- /dev/null +++ b/docs/structade_1_1i_functor.html @@ -0,0 +1,248 @@ + + + + + + + +Tenncor: ade::iFunctor Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ade::iFunctor Struct Referenceabstract
    +
    +
    + +

    Interface of OPCODE-defined operation node. + More...

    + +

    #include <functor.hpp>

    +
    +Inheritance diagram for ade::iFunctor:
    +
    +
    + + +ade::iTensor +ade::Functor + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    virtual ~iFunctor (void)=default
     
    void accept (iTraveler &visiter) override
     Implementation of iTensor. More...
     
    virtual OPCODE get_code (void) const =0
     Return OPCODE mapping to forward and gradient operators. More...
     
    virtual const ArgsTget_children (void) const =0
     Return children nodes as a vector of raw pointers. More...
     
    - Public Member Functions inherited from ade::iTensor
    virtual ~iTensor (void)=default
     
    virtual const Shapeshape (void) const =0
     Return the shape held by this tensor. More...
     
    virtual Tensorptr gradient (const iTensor *wrt)=0
     Return the partial derivative of this with respect to input wrt. More...
     
    virtual std::string to_string (void) const =0
     Return the string representation of the tensor. More...
     
    +

    Detailed Description

    +

    Interface of OPCODE-defined operation node.

    +

    Constructor & Destructor Documentation

    + +

    ◆ ~iFunctor()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual ade::iFunctor::~iFunctor (void )
    +
    +virtualdefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ accept()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ade::iFunctor::accept (iTravelervisiter)
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iTensor.

    + +

    Implements ade::iTensor.

    + +
    +
    + +

    ◆ get_children()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual const ArgsT& ade::iFunctor::get_children (void ) const
    +
    +pure virtual
    +
    + +

    Return children nodes as a vector of raw pointers.

    + +

    Implemented in ade::Functor.

    + +
    +
    + +

    ◆ get_code()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual OPCODE ade::iFunctor::get_code (void ) const
    +
    +pure virtual
    +
    + +

    Return OPCODE mapping to forward and gradient operators.

    + +

    Implemented in ade::Functor.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structade_1_1i_functor.png b/docs/structade_1_1i_functor.png new file mode 100644 index 0000000000000000000000000000000000000000..ab418b1c9d17f11582283d4efc18b7ebed8b271e GIT binary patch literal 596 zcmV-a0;~OrP)vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0005wNklHq)9*Qza8?X8#SCe5*N`hxJt0_kU{s?HabBxftI-^L0_zl4&1 zBsron?6Z+1JM!3)&3--ZKDTUlPDlF1*9F?i4x8Q6$~Ovaxr=$&ZcgN>2o=u`Z?SfB z*vBHc2;U)xt(DTM9 zs;bik0HfLfV7}I1w`~b`4R)ul;4Z?xY!U(+*uVxBfUUp=Hn9HyDi#2QYR8G4Uq4Kni zv$oaY?l6z-6~P7g4)uyKitPr>#JZ$=*t+!h+IA-)N7*DaEi2pBp|eldB*Zr%u&>67 zh)fp%jA{db`C5bBwk6y(*qyq9y9oQTNeFCU0~=TXwgMa2!2ScQs_LLNRn;*;NpiLV z`(><<^h?r@Bs=Qb$FL;%q)*tA(0)DcKE3lP*^hO49xvA=Z8X>`CIz{-7Hih(shrjp zp>nprcb2x^E88CXPy`p_o75EH57=(ZOsq?~!Pa%Z*Y;@=a-dB@-LkT09Xk7TO+tJV i0!z}Z*I`vvr|Snez9dQ+^^rIL0000 + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ade::iLogger Member List
    +
    +
    + +

    This is the complete list of members for ade::iLogger, including all inherited members.

    + + + + + +
    error(std::string msg) const =0ade::iLoggerpure virtual
    fatal(std::string msg) const =0ade::iLoggerpure virtual
    warn(std::string msg) const =0ade::iLoggerpure virtual
    ~iLogger(void)=defaultade::iLoggervirtual
    + + + + diff --git a/docs/structade_1_1i_logger.html b/docs/structade_1_1i_logger.html new file mode 100644 index 000000000..2d5324505 --- /dev/null +++ b/docs/structade_1_1i_logger.html @@ -0,0 +1,236 @@ + + + + + + + +Tenncor: ade::iLogger Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ade::iLogger Struct Referenceabstract
    +
    +
    + +

    Interface of logger used in ADE. + More...

    + +

    #include <log.hpp>

    +
    +Inheritance diagram for ade::iLogger:
    +
    +
    + + +ade::DefLogger +TestLogger + +
    + + + + + + + + + + + + + +

    +Public Member Functions

    virtual ~iLogger (void)=default
     
    virtual void warn (std::string msg) const =0
     Warn user of message regarding poor decisions. More...
     
    virtual void error (std::string msg) const =0
     Notify user of message regarding recoverable error. More...
     
    virtual void fatal (std::string msg) const =0
     Notify user of message regarding fatal error, then finish him. More...
     
    +

    Detailed Description

    +

    Interface of logger used in ADE.

    +

    Constructor & Destructor Documentation

    + +

    ◆ ~iLogger()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual ade::iLogger::~iLogger (void )
    +
    +virtualdefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ error()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void ade::iLogger::error (std::string msg) const
    +
    +pure virtual
    +
    + +

    Notify user of message regarding recoverable error.

    + +

    Implemented in ade::DefLogger, and TestLogger.

    + +
    +
    + +

    ◆ fatal()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void ade::iLogger::fatal (std::string msg) const
    +
    +pure virtual
    +
    + +

    Notify user of message regarding fatal error, then finish him.

    + +

    Implemented in ade::DefLogger, and TestLogger.

    + +
    +
    + +

    ◆ warn()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void ade::iLogger::warn (std::string msg) const
    +
    +pure virtual
    +
    + +

    Warn user of message regarding poor decisions.

    + +

    Implemented in ade::DefLogger, and TestLogger.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structade_1_1i_logger.png b/docs/structade_1_1i_logger.png new file mode 100644 index 0000000000000000000000000000000000000000..37edc41a1c4dfb965fac5a9ed535777af117c031 GIT binary patch literal 709 zcmV;$0y_PPP)vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d00071NklyoP=5C+?iD&PN+H}Mij#mjJFLOioYXT1PJ!+?JQ3TT?9xfp=YaecTD0w^bh z09=F+KsnptmTw;SMPsX0sB~;!78<@AkKgBi`xP-Ow5(+7_BYiCbtCJ`Akcs<*-EBv zcMVMC`zbdwnJVOjGIduSem~{RAp5&>LPOokgw|ut?4ivS%8tLnJ+v*9+e5&tRB+1m zL!3^o=};KcYWI`_Y^mlu1aOF1Gk_ewBa}M|0T%qw3cWIKx0ByWIe-H~2%wx00&o#R z0Od4I(_9Qd#k2r-;%-81do!cE2|ax7Wpq2CIOPE9CWHWLCWHWLCWHWLCWHV!L)*6P z=K#2vkIr=n0XPXEfKoyTz)1)JloCP!PC^Kvln?@N5<&o_gb;v}+J#a|$wiw|N-jPd zEJ@O(SRqNeln|06Cm|$BrTiB{jU-!|=imIns*WUWu`ASdKJUI8fhT}lXz}oQ`8J_! zUvCi_rfHacJ8AvZ>uLY9(aJU+*YTXt)Khoq36K>UroHQKc4vg9r(;j6R;F=xeOhQ4 z(Gy@Z<+5WwDU^9XcHk76rQE3in<;0S*o`^`nbp~jH#GJMjg4kz=K>t0+-gg1%-Ze* z+Rc7?g>0U90-WDN>y&Wqp|X^7>>){7FhAw`2Gcn*_A%z)w9-?C>>Wa$W80i^T|bTh zN8cey@?)k{k}XF!z rlAMH)B$aYUp_Ed(79*5WO4srSsCg?Mvz1*k00000NkvXXu0mjfAmlg; literal 0 HcmV?d00001 diff --git a/docs/structade_1_1i_tensor-members.html b/docs/structade_1_1i_tensor-members.html new file mode 100644 index 000000000..091e667d4 --- /dev/null +++ b/docs/structade_1_1i_tensor-members.html @@ -0,0 +1,88 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ade::iTensor Member List
    +
    +
    + +

    This is the complete list of members for ade::iTensor, including all inherited members.

    + + + + + + +
    accept(iTraveler &visiter)=0ade::iTensorpure virtual
    gradient(const iTensor *wrt)=0ade::iTensorpure virtual
    shape(void) const =0ade::iTensorpure virtual
    to_string(void) const =0ade::iTensorpure virtual
    ~iTensor(void)=defaultade::iTensorvirtual
    + + + + diff --git a/docs/structade_1_1i_tensor.html b/docs/structade_1_1i_tensor.html new file mode 100644 index 000000000..6ea34f216 --- /dev/null +++ b/docs/structade_1_1i_tensor.html @@ -0,0 +1,270 @@ + + + + + + + +Tenncor: ade::iTensor Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ade::iTensor Struct Referenceabstract
    +
    +
    + +

    Interface of traversible and differentiable nodes with shape information. + More...

    + +

    #include <tensor.hpp>

    +
    +Inheritance diagram for ade::iTensor:
    +
    +
    + + +ade::iFunctor +ade::Tensor +ade::Functor + +
    + + + + + + + + + + + + + + + + +

    +Public Member Functions

    virtual ~iTensor (void)=default
     
    virtual void accept (iTraveler &visiter)=0
     Obtain concrete information on either leaf or functor implementations. More...
     
    virtual const Shapeshape (void) const =0
     Return the shape held by this tensor. More...
     
    virtual Tensorptr gradient (const iTensor *wrt)=0
     Return the partial derivative of this with respect to input wrt. More...
     
    virtual std::string to_string (void) const =0
     Return the string representation of the tensor. More...
     
    +

    Detailed Description

    +

    Interface of traversible and differentiable nodes with shape information.

    +

    Constructor & Destructor Documentation

    + +

    ◆ ~iTensor()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual ade::iTensor::~iTensor (void )
    +
    +virtualdefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ accept()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void ade::iTensor::accept (iTravelervisiter)
    +
    +pure virtual
    +
    + +

    Obtain concrete information on either leaf or functor implementations.

    + +

    Implemented in ade::Tensor, and ade::iFunctor.

    + +
    +
    + +

    ◆ gradient()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual Tensorptr ade::iTensor::gradient (const iTensorwrt)
    +
    +pure virtual
    +
    + +

    Return the partial derivative of this with respect to input wrt.

    + +

    Implemented in ade::Tensor, and ade::Functor.

    + +
    +
    + +

    ◆ shape()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual const Shape& ade::iTensor::shape (void ) const
    +
    +pure virtual
    +
    + +

    Return the shape held by this tensor.

    + +

    Implemented in ade::Tensor, and ade::Functor.

    + +
    +
    + +

    ◆ to_string()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual std::string ade::iTensor::to_string (void ) const
    +
    +pure virtual
    +
    + +

    Return the string representation of the tensor.

    + +

    Implemented in ade::Functor, and ade::Tensor.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structade_1_1i_tensor.png b/docs/structade_1_1i_tensor.png new file mode 100644 index 0000000000000000000000000000000000000000..6e299960e0dd3471a975ef66a5a1e0f905a511c8 GIT binary patch literal 865 zcmeAS@N?(olHy`uVBq!ia0vp^+km)(gBeKH#yxxuq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0K6tt~hEy=Vo%?puY6Tt#{*yfK|DV`i zCnR$5Zm3TArH>h|K71w@_A}TkwFtape-J2l^1&?z)|lH{8COj)%DH`L(|v}Rht^x_ z*IWv!o_F?q<&IlB=ic&Np7`tezGp{8RxkXv#8~cftAo`U&95H*%NzHFs?2 zy7Rv`)0KkU>uf6?-CD;Rur&OwfYT1yhI~b)FYfbi8J4}gyZqbnUGDGww$`dMX0&HB zZ#lG;G3wzhhP4H`4flnTd-|CQ?ETNr%ie9~AbPzlw?S*&+gl8wV6W`>wmob0syLNZ ztKuGi{Gp{(WF8jn@+1!^=jyWRkNYi0mp31G@;`QWS>mwpZ%Fm$b0YsW8aq7BiM}nm zy!KYQri+U8q;EDiK;B=-zd1Llf4ledm(xA+&)f2E=`YsNT((W*{=QVVZCUG`lH-fR zulTLKx!v;o#4^=(%hZqD8_QiM9ra3%&a(E-VM}(NFLu(guXkJT{@%UXLZ6#r6_zUf zocpb?&(-?1p>ILxZjF-7K#glfq*n?2-m}g7R%K+~>-USk=^YQ8I486Jbt%`3u%CIJ z=lU=A@Axz2b(X#Mq-L4hbC0Y${%`wB`|r)o`t8Sbf$ut7Mk{J)hV3wO(2kK_Ai9qC0vD=uy;JB{ zrNGdyQVjizl$6RJ!xD?gmgbHd%02Re6Pb>Fdw)Sp(DG64+e#<<=MS@%m;W@|#((@$ z@s3FU$IZ`ft-h?0`tIAUm8QSV`j^#COfh=-Jl@N?-pqd6Eq&3>!cE-;;VSVkD{l*{J`Mp L>gTe~DWM4f!b7EV literal 0 HcmV?d00001 diff --git a/docs/structade_1_1i_traveler-members.html b/docs/structade_1_1i_traveler-members.html new file mode 100644 index 000000000..27c26fc99 --- /dev/null +++ b/docs/structade_1_1i_traveler-members.html @@ -0,0 +1,86 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ade::iTraveler Member List
    +
    +
    + +

    This is the complete list of members for ade::iTraveler, including all inherited members.

    + + + + +
    visit(Tensor *leaf)=0ade::iTravelerpure virtual
    visit(iFunctor *func)=0ade::iTravelerpure virtual
    ~iTraveler(void)=defaultade::iTravelervirtual
    + + + + diff --git a/docs/structade_1_1i_traveler.html b/docs/structade_1_1i_traveler.html new file mode 100644 index 000000000..9461aec6b --- /dev/null +++ b/docs/structade_1_1i_traveler.html @@ -0,0 +1,204 @@ + + + + + + + +Tenncor: ade::iTraveler Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ade::iTraveler Struct Referenceabstract
    +
    +
    + +

    Interface to travel through graph, treating Tensor and iFunctor differently. + More...

    + +

    #include <tensor.hpp>

    +
    +Inheritance diagram for ade::iTraveler:
    +
    +
    + + +ade::PathFinder +llo::Evaluator +llo::GraphStat + +
    + + + + + + + + + + +

    +Public Member Functions

    virtual ~iTraveler (void)=default
     
    virtual void visit (Tensor *leaf)=0
     Visit leaf node. More...
     
    virtual void visit (iFunctor *func)=0
     Visit functor node. More...
     
    +

    Detailed Description

    +

    Interface to travel through graph, treating Tensor and iFunctor differently.

    +

    Constructor & Destructor Documentation

    + +

    ◆ ~iTraveler()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual ade::iTraveler::~iTraveler (void )
    +
    +virtualdefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ visit() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void ade::iTraveler::visit (Tensorleaf)
    +
    +pure virtual
    +
    + +

    Visit leaf node.

    + +

    Implemented in llo::Evaluator, ade::PathFinder, and llo::GraphStat.

    + +
    +
    + +

    ◆ visit() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void ade::iTraveler::visit (iFunctorfunc)
    +
    +pure virtual
    +
    + +

    Visit functor node.

    + +

    Implemented in llo::Evaluator, llo::GraphStat, and ade::PathFinder.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structade_1_1i_traveler.png b/docs/structade_1_1i_traveler.png new file mode 100644 index 0000000000000000000000000000000000000000..cb9dd369bbbcdba107dee1d00575332680a3b37a GIT binary patch literal 907 zcmeAS@N?(olHy`uVBq!ia0y~yU~~qu12~w0i_>I z%~xyiBusk~^Lc{LsXo;O%DRX5FzuO~8aeGYs;h6`9-n0M%kNZZT~p;dbIUVIX0FdpS((&+ z3kj(!)+(FE*4!*F(@#3av9bT2&0_knpA+g1G-m<1j~~nGo!)eZ*CF6&QKI`;OL=dRz@S5#T}`?6b$Q^N#D2W{z0CVvePc6Z7Y7gfj|A;3h7koa|V<7 z+AqG@GkfKm<~Q0gPl~?J`&*ZBe^HLe;mbceJlp^3MQ?f;={&o$m~XZI)$~x~3u}%q z-+AZu#?yagF4gqiOWe%8|JenVaQV^;3M=j6N+V1oxtTXND_Na*>Q^#9X1`U=yDt`V zPNsT({aD^UJ<@dEk27^Y#M{&CODxxP-FzDNwk*PI&#grJvy$yQ@7+3dD`$7Q=f08~ zSD#w8o88$tQKtH$*j2k4{h7WquD|+}x!h+3%jU4pyp~DtWUq^O?rP0$pY-K^VSBcH zmrATKpXy3gnKoz7qEFun9tKPTCIin;f_$nc-7Ti5$n&>rE-f*?x+KW!W!^oRck(rE WP6D@CZ + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    llo::DataNode Member List
    +
    +
    + +

    This is the complete list of members for llo::DataNode, including all inherited members.

    + + + + + + + + + + +
    ctx_llo::DataNode
    data(DTYPE dtype)llo::DataNodeinline
    DataNode(EvalCtx ctx, ade::Tensorptr tensor)llo::DataNodeinline
    derive(const ade::iTensor *wrt)llo::DataNodeinline
    derive(DataNode &wrt)llo::DataNodeinline
    get_src(ade::Tensorptr target) constllo::DataNodeinline
    source(void) constllo::DataNodeinline
    tensor_llo::DataNode
    ~DataNode(void)=defaultllo::DataNodevirtual
    + + + + diff --git a/docs/structllo_1_1_data_node.html b/docs/structllo_1_1_data_node.html new file mode 100644 index 000000000..240d837fc --- /dev/null +++ b/docs/structllo_1_1_data_node.html @@ -0,0 +1,369 @@ + + + + + + + +Tenncor: llo::DataNode Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    llo::DataNode Struct Reference
    +
    +
    + +

    #include <eval.hpp>

    +
    +Inheritance diagram for llo::DataNode:
    +
    +
    + + +llo::PlaceHolder< T > + +
    + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     DataNode (EvalCtx ctx, ade::Tensorptr tensor)
     
    virtual ~DataNode (void)=default
     
    GenericData data (DTYPE dtype)
     Return data according to accumulated context and output type. More...
     
    DataNode derive (const ade::iTensor *wrt)
     Return DataNode of gradient tree derived with respect to wrt tensor. More...
     
    DataNode derive (DataNode &wrt)
     Return DataNode of gradient tree derived with respect to wrt DataNode. More...
     
    std::shared_ptr< llo::iSourcesource (void) const
     Return iSource mapped by tensor_ if found in ctx_, otherwise null. More...
     
    std::shared_ptr< llo::iSourceget_src (ade::Tensorptr target) const
     Return iSource mapped by target if found in ctx_, otherwise null. More...
     
    + + + + + + + +

    +Public Attributes

    EvalCtx ctx_
     Accumulated context. More...
     
    ade::Tensorptr tensor_
     Subgraph root. More...
     
    +

    Detailed Description

    +

    API Node encapsulating ade::Tensorptr and context Context maps tensors to data sources/meta-data evaluators in this subgraph

    +

    Constructor & Destructor Documentation

    + +

    ◆ DataNode()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    llo::DataNode::DataNode (EvalCtx ctx,
    ade::Tensorptr tensor 
    )
    +
    +inline
    +
    + +
    +
    + +

    ◆ ~DataNode()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual llo::DataNode::~DataNode (void )
    +
    +virtualdefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ data()

    + +
    +
    + + + + + +
    + + + + + + + + +
    GenericData llo::DataNode::data (DTYPE dtype)
    +
    +inline
    +
    + +

    Return data according to accumulated context and output type.

    + +
    +
    + +

    ◆ derive() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    DataNode llo::DataNode::derive (const ade::iTensorwrt)
    +
    +inline
    +
    + +

    Return DataNode of gradient tree derived with respect to wrt tensor.

    + +
    +
    + +

    ◆ derive() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    DataNode llo::DataNode::derive (DataNodewrt)
    +
    +inline
    +
    + +

    Return DataNode of gradient tree derived with respect to wrt DataNode.

    + +
    +
    + +

    ◆ get_src()

    + +
    +
    + + + + + +
    + + + + + + + + +
    std::shared_ptr<llo::iSource> llo::DataNode::get_src (ade::Tensorptr target) const
    +
    +inline
    +
    + +

    Return iSource mapped by target if found in ctx_, otherwise null.

    + +
    +
    + +

    ◆ source()

    + +
    +
    + + + + + +
    + + + + + + + + +
    std::shared_ptr<llo::iSource> llo::DataNode::source (void ) const
    +
    +inline
    +
    + +

    Return iSource mapped by tensor_ if found in ctx_, otherwise null.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ ctx_

    + +
    +
    + + + + +
    EvalCtx llo::DataNode::ctx_
    +
    + +

    Accumulated context.

    + +
    +
    + +

    ◆ tensor_

    + +
    +
    + + + + +
    ade::Tensorptr llo::DataNode::tensor_
    +
    + +

    Subgraph root.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structllo_1_1_data_node.png b/docs/structllo_1_1_data_node.png new file mode 100644 index 0000000000000000000000000000000000000000..ae246e345e9688ec606b3e363c5de002d696ba03 GIT binary patch literal 534 zcmV+x0_pvUP)x~0000OP)t-s|Ns90 z008Lh^>vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0004{Nkl+gUqCdmD~NXLUWj_{w%^HXUnN$xzWf0A%mFky1yN$#VC$V5b1gGA z0@%?{AUY>+$CaSAZ3D2QD-d&qHoXo+Q^^2c7a%&v(T4yy)Rz!z1#aF}Rl&VAu~xs& z?)>+++>RyE{kH?)_Z1KU0XPeYr$MBY(qI8x)C*v=o&fQBJ%Hi~5O0R@6pw(2+Yt}| zUI7shfU|%I2*6oD1O(tLAOZq#77zgeIQuIQIp=&$ubgwfB(fxpRX_xUBxfr`noN>e z`h4aoN!n=k+idCWEiVD5kdi7pgxK+a4Y4=bLe!u&MDe@EAZ+~Z)XV!DljN*{D6wp? z@i$H9DRWGHYnr@Sw-3>+2|JkOrOOdJh&oJ3+fF9di9?90wYM2vKNBn7(v@V^jOO7< z2zLO!*~^4g)m@qRwk9^mf2Jm^&YS&w{Bxdvb~_|FJH8!~G)e&x5R#k)#M2;h&Uvu@ Y0jeh(`~B3ZO#lD@07*qoM6N<$f}>*U1^@s6 literal 0 HcmV?d00001 diff --git a/docs/structllo_1_1_eval_ctx-members.html b/docs/structllo_1_1_eval_ctx-members.html new file mode 100644 index 000000000..23cdf9d6b --- /dev/null +++ b/docs/structllo_1_1_eval_ctx-members.html @@ -0,0 +1,87 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    llo::EvalCtx Member List
    +
    +
    + +

    This is the complete list of members for llo::EvalCtx, including all inherited members.

    + + + + + +
    EvalCtx(void)=defaultllo::EvalCtx
    EvalCtx(ade::iTensor *srckey, std::shared_ptr< iSource > &srcval)llo::EvalCtxinline
    EvalCtx(std::vector< const EvalCtx *> contexas)llo::EvalCtxinline
    srcs_llo::EvalCtx
    + + + + diff --git a/docs/structllo_1_1_eval_ctx.html b/docs/structllo_1_1_eval_ctx.html new file mode 100644 index 000000000..79fd05e14 --- /dev/null +++ b/docs/structllo_1_1_eval_ctx.html @@ -0,0 +1,216 @@ + + + + + + + +Tenncor: llo::EvalCtx Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    llo::EvalCtx Struct Referencefinal
    +
    +
    + +

    Context used to associate ade nodes to llo nodes under a particular graph. + More...

    + +

    #include <eval.hpp>

    + + + + + + + + +

    +Public Member Functions

     EvalCtx (void)=default
     
     EvalCtx (ade::iTensor *srckey, std::shared_ptr< iSource > &srcval)
     
     EvalCtx (std::vector< const EvalCtx *> contexas)
     
    + + + + +

    +Public Attributes

    SourcePoolT srcs_
     List all ade-source mapping. More...
     
    +

    Detailed Description

    +

    Context used to associate ade nodes to llo nodes under a particular graph.

    +

    Constructor & Destructor Documentation

    + +

    ◆ EvalCtx() [1/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    llo::EvalCtx::EvalCtx (void )
    +
    +default
    +
    + +
    +
    + +

    ◆ EvalCtx() [2/3]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    llo::EvalCtx::EvalCtx (ade::iTensorsrckey,
    std::shared_ptr< iSource > & srcval 
    )
    +
    +inline
    +
    + +
    +
    + +

    ◆ EvalCtx() [3/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    llo::EvalCtx::EvalCtx (std::vector< const EvalCtx *> contexas)
    +
    +inline
    +
    + +
    +
    +

    Member Data Documentation

    + +

    ◆ srcs_

    + +
    +
    + + + + +
    SourcePoolT llo::EvalCtx::srcs_
    +
    + +

    List all ade-source mapping.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structllo_1_1_evaluator-members.html b/docs/structllo_1_1_evaluator-members.html new file mode 100644 index 000000000..2e85070a0 --- /dev/null +++ b/docs/structllo_1_1_evaluator-members.html @@ -0,0 +1,90 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    llo::Evaluator Member List
    +
    +
    + +

    This is the complete list of members for llo::Evaluator, including all inherited members.

    + + + + + + + + +
    ctx_llo::Evaluatorprivate
    dtype_llo::Evaluatorprivate
    Evaluator(const EvalCtx &ctx, DTYPE dtype)llo::Evaluatorinline
    out_llo::Evaluator
    visit(ade::Tensor *leaf) overridello::Evaluatorinlinevirtual
    visit(ade::iFunctor *func) overridello::Evaluatorinlinevirtual
    ~iTraveler(void)=defaultade::iTravelervirtual
    + + + + diff --git a/docs/structllo_1_1_evaluator.html b/docs/structllo_1_1_evaluator.html new file mode 100644 index 000000000..eeaee6867 --- /dev/null +++ b/docs/structllo_1_1_evaluator.html @@ -0,0 +1,294 @@ + + + + + + + +Tenncor: llo::Evaluator Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    llo::Evaluator Struct Referencefinal
    +
    +
    + +

    #include <eval.hpp>

    +
    +Inheritance diagram for llo::Evaluator:
    +
    +
    + + +ade::iTraveler + +
    + + + + + + + + + + + + + +

    +Public Member Functions

     Evaluator (const EvalCtx &ctx, DTYPE dtype)
     
    void visit (ade::Tensor *leaf) override
     Implementation of iTraveler. More...
     
    void visit (ade::iFunctor *func) override
     Implementation of iTraveler. More...
     
    - Public Member Functions inherited from ade::iTraveler
    virtual ~iTraveler (void)=default
     
    + + + + +

    +Public Attributes

    GenericData out_
     Output data evaluated upon visiting node. More...
     
    + + + + + + + +

    +Private Attributes

    const EvalCtxctx_
     Context used when evaluating node. More...
     
    DTYPE dtype_
     Output type when evaluating data. More...
     
    +

    Detailed Description

    +

    Visitor implementation to evaluate ade nodes according to ctx and dtype Given a global context containing ade-llo association maps, get data from llo::Sources when possible, otherwise treat native ade::Tensors as zeroes Additionally, Evaluator attempts to get meta-data from llo::FuncWrapper before checking native ade::Functor

    +

    Constructor & Destructor Documentation

    + +

    ◆ Evaluator()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    llo::Evaluator::Evaluator (const EvalCtxctx,
    DTYPE dtype 
    )
    +
    +inline
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ visit() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    void llo::Evaluator::visit (ade::Tensorleaf)
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iTraveler.

    + +

    Implements ade::iTraveler.

    + +
    +
    + +

    ◆ visit() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    void llo::Evaluator::visit (ade::iFunctorfunc)
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iTraveler.

    + +

    Implements ade::iTraveler.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ ctx_

    + +
    +
    + + + + + +
    + + + + +
    const EvalCtx* llo::Evaluator::ctx_
    +
    +private
    +
    + +

    Context used when evaluating node.

    + +
    +
    + +

    ◆ dtype_

    + +
    +
    + + + + + +
    + + + + +
    DTYPE llo::Evaluator::dtype_
    +
    +private
    +
    + +

    Output type when evaluating data.

    + +
    +
    + +

    ◆ out_

    + +
    +
    + + + + +
    GenericData llo::Evaluator::out_
    +
    + +

    Output data evaluated upon visiting node.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structllo_1_1_evaluator.png b/docs/structllo_1_1_evaluator.png new file mode 100644 index 0000000000000000000000000000000000000000..c994df3be8fddebab03d941e29f617a4d345e95f GIT binary patch literal 453 zcmV;$0XqJPP)vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d00040Nklia+PvIfF6BpIDXrD|?{^I^=vu@S$?Ip;MZo0+Xppv_F}&FExi zYRS_6Gc&u;$=D3~+Bu0XS#8(vyXLt2>j%`aL+z~)O6-9yXh7{hpi@d|jYt416lg&0J?QPBU#4^#Q2W_2g9aG%YqX|WpPv3>tOiy`yL7w` z-R8bg`^;VgPtkK%jlA{>%+@vw+q_7-lO*8 vthB2JZ-3n(afSe#DbRr0$D&h8X^Fl742Bb>)4o;H00000NkvXXu0mjfom$c` literal 0 HcmV?d00001 diff --git a/docs/structllo_1_1_executer-members.html b/docs/structllo_1_1_executer-members.html new file mode 100644 index 000000000..c79376ebf --- /dev/null +++ b/docs/structllo_1_1_executer-members.html @@ -0,0 +1,84 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    llo::Executer< OP, T > Member List
    +
    +
    + +

    This is the complete list of members for llo::Executer< OP, T >, including all inherited members.

    + + +
    exec(GenericData &out, DataArgsT &data)llo::Executer< OP, T >inlinestatic
    + + + + diff --git a/docs/structllo_1_1_executer.html b/docs/structllo_1_1_executer.html new file mode 100644 index 000000000..479754ce3 --- /dev/null +++ b/docs/structllo_1_1_executer.html @@ -0,0 +1,133 @@ + + + + + + + +Tenncor: llo::Executer< OP, T > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    llo::Executer< OP, T > Struct Template Reference
    +
    +
    + +

    #include <opmap.hpp>

    + + + + +

    +Static Public Member Functions

    static void exec (GenericData &out, DataArgsT &data)
     
    +

    Member Function Documentation

    + +

    ◆ exec()

    + +
    +
    +
    +template<ade::OPCODE OP, typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static void llo::Executer< OP, T >::exec (GenericDataout,
    DataArgsTdata 
    )
    +
    +inlinestatic
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structllo_1_1_executer_3_01ade_1_1_c_o_p_y_00_01_t_01_4-members.html b/docs/structllo_1_1_executer_3_01ade_1_1_c_o_p_y_00_01_t_01_4-members.html new file mode 100644 index 000000000..c85e77001 --- /dev/null +++ b/docs/structllo_1_1_executer_3_01ade_1_1_c_o_p_y_00_01_t_01_4-members.html @@ -0,0 +1,84 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    llo::Executer< ade::COPY, T > Member List
    +
    +
    + +

    This is the complete list of members for llo::Executer< ade::COPY, T >, including all inherited members.

    + + +
    exec(GenericData &out, DataArgsT &data)llo::Executer< ade::COPY, T >inlinestatic
    + + + + diff --git a/docs/structllo_1_1_executer_3_01ade_1_1_c_o_p_y_00_01_t_01_4.html b/docs/structllo_1_1_executer_3_01ade_1_1_c_o_p_y_00_01_t_01_4.html new file mode 100644 index 000000000..4a8a11a27 --- /dev/null +++ b/docs/structllo_1_1_executer_3_01ade_1_1_c_o_p_y_00_01_t_01_4.html @@ -0,0 +1,133 @@ + + + + + + + +Tenncor: llo::Executer< ade::COPY, T > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    llo::Executer< ade::COPY, T > Struct Template Reference
    +
    +
    + +

    #include <opmap.hpp>

    + + + + +

    +Static Public Member Functions

    static void exec (GenericData &out, DataArgsT &data)
     
    +

    Member Function Documentation

    + +

    ◆ exec()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static void llo::Executer< ade::COPY, T >::exec (GenericDataout,
    DataArgsTdata 
    )
    +
    +inlinestatic
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structllo_1_1_executer_3_01ade_1_1_r_a_n_d___b_i_n_o_00_01_t_01_4-members.html b/docs/structllo_1_1_executer_3_01ade_1_1_r_a_n_d___b_i_n_o_00_01_t_01_4-members.html new file mode 100644 index 000000000..5e3eb5082 --- /dev/null +++ b/docs/structllo_1_1_executer_3_01ade_1_1_r_a_n_d___b_i_n_o_00_01_t_01_4-members.html @@ -0,0 +1,84 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    llo::Executer< ade::RAND_BINO, T > Member List
    +
    +
    + +

    This is the complete list of members for llo::Executer< ade::RAND_BINO, T >, including all inherited members.

    + + +
    exec(GenericData &out, DataArgsT &data)llo::Executer< ade::RAND_BINO, T >inlinestatic
    + + + + diff --git a/docs/structllo_1_1_executer_3_01ade_1_1_r_a_n_d___b_i_n_o_00_01_t_01_4.html b/docs/structllo_1_1_executer_3_01ade_1_1_r_a_n_d___b_i_n_o_00_01_t_01_4.html new file mode 100644 index 000000000..24ab53314 --- /dev/null +++ b/docs/structllo_1_1_executer_3_01ade_1_1_r_a_n_d___b_i_n_o_00_01_t_01_4.html @@ -0,0 +1,133 @@ + + + + + + + +Tenncor: llo::Executer< ade::RAND_BINO, T > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    llo::Executer< ade::RAND_BINO, T > Struct Template Reference
    +
    +
    + +

    #include <opmap.hpp>

    + + + + +

    +Static Public Member Functions

    static void exec (GenericData &out, DataArgsT &data)
     
    +

    Member Function Documentation

    + +

    ◆ exec()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static void llo::Executer< ade::RAND_BINO, T >::exec (GenericDataout,
    DataArgsTdata 
    )
    +
    +inlinestatic
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structllo_1_1_generic_data-members.html b/docs/structllo_1_1_generic_data-members.html new file mode 100644 index 000000000..1767fff53 --- /dev/null +++ b/docs/structllo_1_1_generic_data-members.html @@ -0,0 +1,89 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    llo::GenericData Member List
    +
    +
    + +

    This is the complete list of members for llo::GenericData, including all inherited members.

    + + + + + + + +
    convert_to(DTYPE dtype) constllo::GenericData
    data_llo::GenericData
    dtype_llo::GenericData
    GenericData(void)=defaultllo::GenericData
    GenericData(ade::Shape shape, DTYPE dtype)llo::GenericData
    shape_llo::GenericData
    + + + + diff --git a/docs/structllo_1_1_generic_data.html b/docs/structllo_1_1_generic_data.html new file mode 100644 index 000000000..4ad70596c --- /dev/null +++ b/docs/structllo_1_1_generic_data.html @@ -0,0 +1,242 @@ + + + + + + + +Tenncor: llo::GenericData Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    llo::GenericData Struct Reference
    +
    +
    + +

    GenericData for holding data when passing up the tensor graph. + More...

    + +

    #include <data.hpp>

    + + + + + + + + + +

    +Public Member Functions

     GenericData (void)=default
     
     GenericData (ade::Shape shape, DTYPE dtype)
     
    GenericData convert_to (DTYPE dtype) const
     Return data converted to specified input type. More...
     
    + + + + + + + + + + +

    +Public Attributes

    std::shared_ptr< char > data_
     Smartpointer to a block of untyped data. More...
     
    ade::Shape shape_
     Shape of data_. More...
     
    DTYPE dtype_ = BAD
     Data type of data_. More...
     
    +

    Detailed Description

    +

    GenericData for holding data when passing up the tensor graph.

    +

    Constructor & Destructor Documentation

    + +

    ◆ GenericData() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    llo::GenericData::GenericData (void )
    +
    +default
    +
    + +
    +
    + +

    ◆ GenericData() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    llo::GenericData::GenericData (ade::Shape shape,
    DTYPE dtype 
    )
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ convert_to()

    + +
    +
    + + + + + + + + +
    GenericData llo::GenericData::convert_to (DTYPE dtype) const
    +
    + +

    Return data converted to specified input type.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ data_

    + +
    +
    + + + + +
    std::shared_ptr<char> llo::GenericData::data_
    +
    + +

    Smartpointer to a block of untyped data.

    + +
    +
    + +

    ◆ dtype_

    + +
    +
    + + + + +
    DTYPE llo::GenericData::dtype_ = BAD
    +
    + +

    Data type of data_.

    + +
    +
    + +

    ◆ shape_

    + +
    +
    + + + + +
    ade::Shape llo::GenericData::shape_
    +
    + +

    Shape of data_.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structllo_1_1_generic_ref-members.html b/docs/structllo_1_1_generic_ref-members.html new file mode 100644 index 000000000..f356a9fc4 --- /dev/null +++ b/docs/structllo_1_1_generic_ref-members.html @@ -0,0 +1,88 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    llo::GenericRef Member List
    +
    +
    + +

    This is the complete list of members for llo::GenericRef, including all inherited members.

    + + + + + + +
    data_llo::GenericRef
    dtype_llo::GenericRef
    GenericRef(char *data, ade::Shape shape, DTYPE dtype)llo::GenericRefinline
    GenericRef(GenericData &generic)llo::GenericRefinline
    shape_llo::GenericRef
    + + + + diff --git a/docs/structllo_1_1_generic_ref.html b/docs/structllo_1_1_generic_ref.html new file mode 100644 index 000000000..8781179db --- /dev/null +++ b/docs/structllo_1_1_generic_ref.html @@ -0,0 +1,229 @@ + + + + + + + +Tenncor: llo::GenericRef Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    llo::GenericRef Struct Reference
    +
    +
    + +

    #include <data.hpp>

    + + + + + + +

    +Public Member Functions

     GenericRef (char *data, ade::Shape shape, DTYPE dtype)
     
     GenericRef (GenericData &generic)
     
    + + + + + + + + + + +

    +Public Attributes

    char * data_
     Raw pointer to a block of untyped data. More...
     
    ade::Shape shape_
     Shape of data_. More...
     
    DTYPE dtype_
     Data type of data_. More...
     
    +

    Detailed Description

    +

    GenericRef for holding data Ref uses raw pointer instead of shared, so it's memory unsafe

    +

    Constructor & Destructor Documentation

    + +

    ◆ GenericRef() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    llo::GenericRef::GenericRef (char * data,
    ade::Shape shape,
    DTYPE dtype 
    )
    +
    +inline
    +
    + +
    +
    + +

    ◆ GenericRef() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    llo::GenericRef::GenericRef (GenericDatageneric)
    +
    +inline
    +
    + +
    +
    +

    Member Data Documentation

    + +

    ◆ data_

    + +
    +
    + + + + +
    char* llo::GenericRef::data_
    +
    + +

    Raw pointer to a block of untyped data.

    + +
    +
    + +

    ◆ dtype_

    + +
    +
    + + + + +
    DTYPE llo::GenericRef::dtype_
    +
    + +

    Data type of data_.

    + +
    +
    + +

    ◆ shape_

    + +
    +
    + + + + +
    ade::Shape llo::GenericRef::shape_
    +
    + +

    Shape of data_.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structllo_1_1_graph_stat-members.html b/docs/structllo_1_1_graph_stat-members.html new file mode 100644 index 000000000..8839a8959 --- /dev/null +++ b/docs/structllo_1_1_graph_stat-members.html @@ -0,0 +1,91 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    llo::GraphStat Member List
    +
    +
    + +

    This is the complete list of members for llo::GraphStat, including all inherited members.

    + + + + + + + + + +
    funcs_llo::GraphStat
    global_ctx_llo::GraphStat
    graphsize_llo::GraphStat
    GraphStat(std::vector< llo::DataNode > roots)llo::GraphStatinline
    leaves_llo::GraphStat
    visit(ade::Tensor *leaf) overridello::GraphStatinlinevirtual
    visit(ade::iFunctor *func) overridello::GraphStatinlinevirtual
    ~iTraveler(void)=defaultade::iTravelervirtual
    + + + + diff --git a/docs/structllo_1_1_graph_stat.html b/docs/structllo_1_1_graph_stat.html new file mode 100644 index 000000000..9b5e30421 --- /dev/null +++ b/docs/structllo_1_1_graph_stat.html @@ -0,0 +1,282 @@ + + + + + + + +Tenncor: llo::GraphStat Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    llo::GraphStat Struct Referencefinal
    +
    +
    + +

    #include <traveler.hpp>

    +
    +Inheritance diagram for llo::GraphStat:
    +
    +
    + + +ade::iTraveler + +
    + + + + + + + + + + + + + +

    +Public Member Functions

     GraphStat (std::vector< llo::DataNode > roots)
     
    void visit (ade::Tensor *leaf) override
     Implemenation of iTraveler. More...
     
    void visit (ade::iFunctor *func) override
     Implemenation of iTraveler. More...
     
    - Public Member Functions inherited from ade::iTraveler
    virtual ~iTraveler (void)=default
     
    + + + + + + + + + + + +

    +Public Attributes

    llo::EvalCtx global_ctx_
     Collected context of all root DataNodes. More...
     
    std::vector< llo::iSource * > leaves_
     Vector of leaves visited to maintain order. More...
     
    std::list< ade::iFunctor * > funcs_
     
    std::unordered_map< ade::iTensor *, size_t > graphsize_
     
    +

    Detailed Description

    +

    Traveler implementation that given a vector of root DataNodes:

      +
    • gathers a list of all functors under the roots sorted by each functor's subtree's maximum depth in ascending order
    • +
    • a map of each functor's subtree's maximum depth
    • +
    • gathers the context of all roots
    • +
    • ensures all tensor leaves visited have a source
    • +
    +

    Constructor & Destructor Documentation

    + +

    ◆ GraphStat()

    + +
    +
    + + + + + +
    + + + + + + + + +
    llo::GraphStat::GraphStat (std::vector< llo::DataNoderoots)
    +
    +inline
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ visit() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    void llo::GraphStat::visit (ade::Tensorleaf)
    +
    +inlineoverridevirtual
    +
    + +

    Implemenation of iTraveler.

    + +

    Implements ade::iTraveler.

    + +
    +
    + +

    ◆ visit() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    void llo::GraphStat::visit (ade::iFunctorfunc)
    +
    +inlineoverridevirtual
    +
    + +

    Implemenation of iTraveler.

    + +

    Implements ade::iTraveler.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ funcs_

    + +
    +
    + + + + +
    std::list<ade::iFunctor*> llo::GraphStat::funcs_
    +
    + +
    +
    + +

    ◆ global_ctx_

    + +
    +
    + + + + +
    llo::EvalCtx llo::GraphStat::global_ctx_
    +
    + +

    Collected context of all root DataNodes.

    + +
    +
    + +

    ◆ graphsize_

    + +
    +
    + + + + +
    std::unordered_map<ade::iTensor*,size_t> llo::GraphStat::graphsize_
    +
    + +
    +
    + +

    ◆ leaves_

    + +
    +
    + + + + +
    std::vector<llo::iSource*> llo::GraphStat::leaves_
    +
    + +

    Vector of leaves visited to maintain order.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structllo_1_1_graph_stat.png b/docs/structllo_1_1_graph_stat.png new file mode 100644 index 0000000000000000000000000000000000000000..81da31c3cb59ac31bc7b8a9a414d66a29389f23d GIT binary patch literal 469 zcmeAS@N?(olHy`uVBq!ia0vp^Q9vBP!3-qVy`2;Wq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IXgQ#@T9Ln;{G&V9J9*?^;!-{j+8`JYxx z-yRIRyt_s9bc98j*pDR-zDX~gBBU%5dX+;pD)gpZk637`@YK(XS5+Di5WR?T11j~GDau8~O@N^z04P<pH2p9(pp00i_>zopr0K2%<`Tzg` literal 0 HcmV?d00001 diff --git a/docs/structllo_1_1_place_holder-members.html b/docs/structllo_1_1_place_holder-members.html new file mode 100644 index 000000000..a9afd9907 --- /dev/null +++ b/docs/structllo_1_1_place_holder-members.html @@ -0,0 +1,98 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    llo::PlaceHolder< T > Member List
    +
    +
    + +

    This is the complete list of members for llo::PlaceHolder< T >, including all inherited members.

    + + + + + + + + + + + + + + + + +
    ctx_llo::DataNode
    data(DTYPE dtype)llo::DataNodeinline
    DataNode(EvalCtx ctx, ade::Tensorptr tensor)llo::DataNodeinline
    derive(const ade::iTensor *wrt)llo::DataNodeinline
    derive(DataNode &wrt)llo::DataNodeinline
    get_src(ade::Tensorptr target) constllo::DataNodeinline
    operator=(const PlaceHolder &)=defaultllo::PlaceHolder< T >
    operator=(PlaceHolder &&)=defaultllo::PlaceHolder< T >
    operator=(std::vector< T > data)llo::PlaceHolder< T >inline
    PlaceHolder(ade::Shape shape)llo::PlaceHolder< T >inline
    PlaceHolder(const PlaceHolder &)=defaultllo::PlaceHolder< T >
    PlaceHolder(PlaceHolder &&)=defaultllo::PlaceHolder< T >
    source(void) constllo::DataNodeinline
    tensor_llo::DataNode
    ~DataNode(void)=defaultllo::DataNodevirtual
    + + + + diff --git a/docs/structllo_1_1_place_holder.html b/docs/structllo_1_1_place_holder.html new file mode 100644 index 000000000..ff5c93dcb --- /dev/null +++ b/docs/structllo_1_1_place_holder.html @@ -0,0 +1,324 @@ + + + + + + + +Tenncor: llo::PlaceHolder< T > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    llo::PlaceHolder< T > Struct Template Reference
    +
    +
    + +

    DataNode of a leaf that can be assignable by data vectors. + More...

    + +

    #include <node.hpp>

    +
    +Inheritance diagram for llo::PlaceHolder< T >:
    +
    +
    + + +llo::DataNode + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     PlaceHolder (ade::Shape shape)
     
     PlaceHolder (const PlaceHolder &)=default
     
     PlaceHolder (PlaceHolder &&)=default
     
    PlaceHolderoperator= (const PlaceHolder &)=default
     
    PlaceHolderoperator= (PlaceHolder &&)=default
     
    PlaceHolderoperator= (std::vector< T > data)
     Assign vectorized data to source. More...
     
    - Public Member Functions inherited from llo::DataNode
     DataNode (EvalCtx ctx, ade::Tensorptr tensor)
     
    virtual ~DataNode (void)=default
     
    GenericData data (DTYPE dtype)
     Return data according to accumulated context and output type. More...
     
    DataNode derive (const ade::iTensor *wrt)
     Return DataNode of gradient tree derived with respect to wrt tensor. More...
     
    DataNode derive (DataNode &wrt)
     Return DataNode of gradient tree derived with respect to wrt DataNode. More...
     
    std::shared_ptr< llo::iSourcesource (void) const
     Return iSource mapped by tensor_ if found in ctx_, otherwise null. More...
     
    std::shared_ptr< llo::iSourceget_src (ade::Tensorptr target) const
     Return iSource mapped by target if found in ctx_, otherwise null. More...
     
    + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from llo::DataNode
    EvalCtx ctx_
     Accumulated context. More...
     
    ade::Tensorptr tensor_
     Subgraph root. More...
     
    +

    Detailed Description

    +

    template<typename T>
    +struct llo::PlaceHolder< T >

    + +

    DataNode of a leaf that can be assignable by data vectors.

    +

    Constructor & Destructor Documentation

    + +

    ◆ PlaceHolder() [1/3]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    llo::PlaceHolder< T >::PlaceHolder (ade::Shape shape)
    +
    +inline
    +
    + +
    +
    + +

    ◆ PlaceHolder() [2/3]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    llo::PlaceHolder< T >::PlaceHolder (const PlaceHolder< T > & )
    +
    +default
    +
    + +
    +
    + +

    ◆ PlaceHolder() [3/3]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    llo::PlaceHolder< T >::PlaceHolder (PlaceHolder< T > && )
    +
    +default
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator=() [1/3]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    PlaceHolder& llo::PlaceHolder< T >::operator= (const PlaceHolder< T > & )
    +
    +default
    +
    + +
    +
    + +

    ◆ operator=() [2/3]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    PlaceHolder& llo::PlaceHolder< T >::operator= (PlaceHolder< T > && )
    +
    +default
    +
    + +
    +
    + +

    ◆ operator=() [3/3]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    PlaceHolder& llo::PlaceHolder< T >::operator= (std::vector< T > data)
    +
    +inline
    +
    + +

    Assign vectorized data to source.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structllo_1_1_place_holder.png b/docs/structllo_1_1_place_holder.png new file mode 100644 index 0000000000000000000000000000000000000000..de5270cc4c5def3e09807045d36bb48243af0455 GIT binary patch literal 529 zcmV+s0`C2ZP)x~0000OP)t-s|Ns90 z008Lh^>vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0004?Nklsy5cS?|zmKRDQ*18R@l)B(mZXhdf>_qJ#x^=T z3zZ&gNz#tqf#}@4U00H7+d4_w(I*gdhBmbhM3c#q;{Dy8y)%ASQZRc(J)R=C|n-g|1<)h__9Ynp%a%?*%v349nRNlU3bp4Z9@k$jiYg%QAmmu5) zc(->FmQ~+6iL*J;x&G%lVR_!{XZct6_Uizg9ls8MQ3{BF0GtKH)gV$zX|VnP1vwmQ TfdpU000000NkvXXu0mjfr}*TD literal 0 HcmV?d00001 diff --git a/docs/structllo_1_1_source-members.html b/docs/structllo_1_1_source-members.html new file mode 100644 index 000000000..799b249dd --- /dev/null +++ b/docs/structllo_1_1_source-members.html @@ -0,0 +1,95 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    llo::Source< T > Member List
    +
    +
    + +

    This is the complete list of members for llo::Source< T >, including all inherited members.

    + + + + + + + + + + + + + +
    copy(const llo::Source< T > &other)llo::Source< T >inlinestatic
    data(DTYPE dtype) const overridello::Source< T >inlinevirtual
    data_llo::Source< T >private
    get(ade::Shape shape, std::vector< T > data)llo::Source< T >inlinestatic
    get_scalar(T value)llo::Source< T >inlinestatic
    inner(void) const overridello::Source< T >inlinevirtual
    native_type(void) const overridello::Source< T >inlinevirtual
    reassign(const GenericRef &data) overridello::Source< T >inlinevirtual
    Source(std::shared_ptr< ade::Tensor > &tensor, std::vector< T > &data)llo::Source< T >inlineprivate
    Source(const Source< T > &other)llo::Source< T >inlineprivate
    tensor_llo::Source< T >private
    ~iSource(void)=defaultllo::iSourcevirtual
    + + + + diff --git a/docs/structllo_1_1_source.html b/docs/structllo_1_1_source.html new file mode 100644 index 000000000..d2d441e8f --- /dev/null +++ b/docs/structllo_1_1_source.html @@ -0,0 +1,501 @@ + + + + + + + +Tenncor: llo::Source< T > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    + +
    + +

    Leaf evaluable holding tensor data. + More...

    + +

    #include <node.hpp>

    +
    +Inheritance diagram for llo::Source< T >:
    +
    +
    + + +llo::iSource + +
    + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    GenericData data (DTYPE dtype) const override
     Implementation of iSource. More...
     
    DTYPE native_type (void) const override
     Implementation of iSource. More...
     
    void reassign (const GenericRef &data) override
     Implementation of iSource. More...
     
    const std::shared_ptr< ade::Tensor > & inner (void) const override
     Implementation of iSource. More...
     
    - Public Member Functions inherited from llo::iSource
    virtual ~iSource (void)=default
     
    + + + + + + + + + +

    +Static Public Member Functions

    static DataNode get (ade::Shape shape, std::vector< T > data)
     Return a Source of input shape and containing input data. More...
     
    static DataNode get_scalar (T value)
     Return a source instance with a scalar as tensor data. More...
     
    static DataNode copy (const llo::Source< T > &other)
     
    + + + + + +

    +Private Member Functions

     Source (std::shared_ptr< ade::Tensor > &tensor, std::vector< T > &data)
     
     Source (const Source< T > &other)
     
    + + + + + + + +

    +Private Attributes

    std::shared_ptr< ade::Tensortensor_
     Tensor node of subgraph. More...
     
    std::vector< T > data_
     Tensor data. More...
     
    +

    Detailed Description

    +

    template<typename T>
    +struct llo::Source< T >

    + +

    Leaf evaluable holding tensor data.

    +

    Constructor & Destructor Documentation

    + +

    ◆ Source() [1/2]

    + +
    +
    +
    +template<typename T>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    llo::Source< T >::Source (std::shared_ptr< ade::Tensor > & tensor,
    std::vector< T > & data 
    )
    +
    +inlineprivate
    +
    + +
    +
    + +

    ◆ Source() [2/2]

    + +
    +
    +
    +template<typename T>
    + + + + + +
    + + + + + + + + +
    llo::Source< T >::Source (const Source< T > & other)
    +
    +inlineprivate
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ copy()

    + +
    +
    +
    +template<typename T>
    + + + + + +
    + + + + + + + + +
    static DataNode llo::Source< T >::copy (const llo::Source< T > & other)
    +
    +inlinestatic
    +
    + +
    +
    + +

    ◆ data()

    + +
    +
    +
    +template<typename T>
    + + + + + +
    + + + + + + + + +
    GenericData llo::Source< T >::data (DTYPE dtype) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iSource.

    + +

    Implements llo::iSource.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename T>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static DataNode llo::Source< T >::get (ade::Shape shape,
    std::vector< T > data 
    )
    +
    +inlinestatic
    +
    + +

    Return a Source of input shape and containing input data.

    + +
    +
    + +

    ◆ get_scalar()

    + +
    +
    +
    +template<typename T>
    + + + + + +
    + + + + + + + + +
    static DataNode llo::Source< T >::get_scalar (value)
    +
    +inlinestatic
    +
    + +

    Return a source instance with a scalar as tensor data.

    + +
    +
    + +

    ◆ inner()

    + +
    +
    +
    +template<typename T>
    + + + + + +
    + + + + + + + + +
    const std::shared_ptr<ade::Tensor>& llo::Source< T >::inner (void ) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iSource.

    + +

    Implements llo::iSource.

    + +
    +
    + +

    ◆ native_type()

    + +
    +
    +
    +template<typename T>
    + + + + + +
    + + + + + + + + +
    DTYPE llo::Source< T >::native_type (void ) const
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iSource.

    + +

    Implements llo::iSource.

    + +
    +
    + +

    ◆ reassign()

    + +
    +
    +
    +template<typename T>
    + + + + + +
    + + + + + + + + +
    void llo::Source< T >::reassign (const GenericRefdata)
    +
    +inlineoverridevirtual
    +
    + +

    Implementation of iSource.

    + +

    Implements llo::iSource.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ data_

    + +
    +
    +
    +template<typename T>
    + + + + + +
    + + + + +
    std::vector<T> llo::Source< T >::data_
    +
    +private
    +
    + +

    Tensor data.

    + +
    +
    + +

    ◆ tensor_

    + +
    +
    +
    +template<typename T>
    + + + + + +
    + + + + +
    std::shared_ptr<ade::Tensor> llo::Source< T >::tensor_
    +
    +private
    +
    + +

    Tensor node of subgraph.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structllo_1_1_source.png b/docs/structllo_1_1_source.png new file mode 100644 index 0000000000000000000000000000000000000000..88a2e6b6410ac1f0c5eae8991a571a7df7377a70 GIT binary patch literal 463 zcmeAS@N?(olHy`uVBq!ia0vp^=|CL7!3-pgAI!c7q$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IXg<2+p)Ln;{G&VAe0WFX+`pD%p>|3q=k zFTxiSm(I>PR&a&SnZMcmpV~1Ab%!ZSZWs2e-29pBAHnbWv|`=iPm@%v=U1Cu4UC<1 zui)Lv{QY6es~%SBZQUpJd{XBU6iG)iZ^fYS^H#s_70m=n@>rT>)Z$@XKgOZOMQ zAd^0?G*|xnhpv0U_r3p3>uOEUe`UR|w4v|Z=C@Oq{ybEax3+BQom*A29!*^S_Koe* z + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    llo::VecRef< T > Member List
    +
    +
    + +

    This is the complete list of members for llo::VecRef< T >, including all inherited members.

    + + + + +
    datallo::VecRef< T >
    mapperllo::VecRef< T >
    shapello::VecRef< T >
    + + + + diff --git a/docs/structllo_1_1_vec_ref.html b/docs/structllo_1_1_vec_ref.html new file mode 100644 index 000000000..4a1064ed4 --- /dev/null +++ b/docs/structllo_1_1_vec_ref.html @@ -0,0 +1,152 @@ + + + + + + + +Tenncor: llo::VecRef< T > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    llo::VecRef< T > Struct Template Reference
    +
    +
    + +

    #include <operator.hpp>

    + + + + + + + + +

    +Public Attributes

    ade::CoordPtrT mapper
     
    const T * data
     
    ade::Shape shape
     
    +

    Detailed Description

    +

    template<typename T>
    +struct llo::VecRef< T >

    + +

    Tensor data wrapper using raw pointer and data size Avoid using std constainers in case of unintentional deep copies

    +

    Member Data Documentation

    + +

    ◆ data

    + +
    +
    +
    +template<typename T>
    + + + + +
    const T* llo::VecRef< T >::data
    +
    + +
    +
    + +

    ◆ mapper

    + +
    +
    +
    +template<typename T>
    + + + + +
    ade::CoordPtrT llo::VecRef< T >::mapper
    +
    + +
    +
    + +

    ◆ shape

    + +
    +
    +
    +template<typename T>
    + + + + +
    ade::Shape llo::VecRef< T >::shape
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structllo_1_1i_source-members.html b/docs/structllo_1_1i_source-members.html new file mode 100644 index 000000000..1647207a6 --- /dev/null +++ b/docs/structllo_1_1i_source-members.html @@ -0,0 +1,88 @@ + + + + + + + +Tenncor: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    llo::iSource Member List
    +
    +
    + +

    This is the complete list of members for llo::iSource, including all inherited members.

    + + + + + + +
    data(DTYPE dtype) const =0llo::iSourcepure virtual
    inner(void) const =0llo::iSourcepure virtual
    native_type(void) const =0llo::iSourcepure virtual
    reassign(const GenericRef &data)=0llo::iSourcepure virtual
    ~iSource(void)=defaultllo::iSourcevirtual
    + + + + diff --git a/docs/structllo_1_1i_source.html b/docs/structllo_1_1i_source.html new file mode 100644 index 000000000..70c369abe --- /dev/null +++ b/docs/structllo_1_1i_source.html @@ -0,0 +1,268 @@ + + + + + + + +Tenncor: llo::iSource Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    llo::iSource Struct Referenceabstract
    +
    +
    + +

    Interface for leaves with tensor data. + More...

    + +

    #include <eval.hpp>

    +
    +Inheritance diagram for llo::iSource:
    +
    +
    + + +llo::Source< T > + +
    + + + + + + + + + + + + + + + + +

    +Public Member Functions

    virtual ~iSource (void)=default
     
    virtual GenericData data (DTYPE dtype) const =0
     Return data converted to input type. More...
     
    virtual DTYPE native_type (void) const =0
     Return the type of data stored. More...
     
    virtual void reassign (const GenericRef &data)=0
     Assign new data values. More...
     
    virtual const std::shared_ptr< ade::Tensor > & inner (void) const =0
     Return internal tensor referencing this. More...
     
    +

    Detailed Description

    +

    Interface for leaves with tensor data.

    +

    Constructor & Destructor Documentation

    + +

    ◆ ~iSource()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual llo::iSource::~iSource (void )
    +
    +virtualdefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ data()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual GenericData llo::iSource::data (DTYPE dtype) const
    +
    +pure virtual
    +
    + +

    Return data converted to input type.

    + +

    Implemented in llo::Source< T >.

    + +
    +
    + +

    ◆ inner()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual const std::shared_ptr<ade::Tensor>& llo::iSource::inner (void ) const
    +
    +pure virtual
    +
    + +

    Return internal tensor referencing this.

    + +

    Implemented in llo::Source< T >.

    + +
    +
    + +

    ◆ native_type()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual DTYPE llo::iSource::native_type (void ) const
    +
    +pure virtual
    +
    + +

    Return the type of data stored.

    + +

    Implemented in llo::Source< T >.

    + +
    +
    + +

    ◆ reassign()

    + +
    +
    + + + + + +
    + + + + + + + + +
    virtual void llo::iSource::reassign (const GenericRefdata)
    +
    +pure virtual
    +
    + +

    Assign new data values.

    + +

    Implemented in llo::Source< T >.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structllo_1_1i_source.png b/docs/structllo_1_1i_source.png new file mode 100644 index 0000000000000000000000000000000000000000..0b314b9247dcab4a1cfa7588b325810ad70087b2 GIT binary patch literal 462 zcmeAS@N?(olHy`uVBq!ia0vp^=|CL7!3-pgAI!c7q$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IXgV?A9QLn;{G&V88IY{0{&AFp!n|3vl{ zwSxg+nU$=Bd&S9+});cd%Jnp0+H=CXJ?5V=<~O^yHIrU*DagkKhLn^pI1Kl(WgDn9_*5D zV7C7F@F1`Hc5LI46I@{0|I2Bwu)HE`84U!HAJ3VM6+>V;yXj zX=ep4YMkFcd;155I|?=ob%&TAsH0Jzrxu^{TQ;Y-%xT(^56!%LwpJUG6=v`rFiN zm$RzAX4;oNl`^dNHoPD^XysUJ>#p4I%i?hNDI7tdc9elGa`d&|XJO?9iLDX;pq s`?H!SzmS~gCt)BqzA(A?-1*O}Fa5<#Ic7>00|TGI)78&qol`;+03xf~*8l(j literal 0 HcmV?d00001 diff --git a/docs/sync_off.png b/docs/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/docs/sync_on.png b/docs/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/docs/tab_a.png b/docs/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/docs/tab_b.png b/docs/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/docs/tabs.css b/docs/tabs.css new file mode 100644 index 000000000..a28614b8e --- /dev/null +++ b/docs/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/docs/tensor_8cpp.html b/docs/tensor_8cpp.html new file mode 100644 index 000000000..9bb264455 --- /dev/null +++ b/docs/tensor_8cpp.html @@ -0,0 +1,81 @@ + + + + + + + +Tenncor: ade/src/tensor.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    tensor.cpp File Reference
    +
    +
    +
    #include "ade/functor.hpp"
    +
    + + + + diff --git a/docs/tensor_8hpp.html b/docs/tensor_8hpp.html new file mode 100644 index 000000000..757f26e9b --- /dev/null +++ b/docs/tensor_8hpp.html @@ -0,0 +1,119 @@ + + + + + + + +Tenncor: ade/tensor.hpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    tensor.hpp File Reference
    +
    +
    +
    #include <memory>
    +#include "ade/log/log.hpp"
    +#include "ade/shape.hpp"
    +
    +

    Go to the source code of this file.

    + + + + + + + + + + + + + + +

    +Classes

    struct  ade::iTraveler
     Interface to travel through graph, treating Tensor and iFunctor differently. More...
     
    struct  ade::iTensor
     Interface of traversible and differentiable nodes with shape information. More...
     
    struct  ade::Tensorptr
     Smart pointer to iTensor ensuring non-null references. More...
     
    struct  ade::Tensor
     Leaf of the graph commonly representing the variable in an equation. More...
     
    + + + +

    +Namespaces

     ade
     
    + + + + + + + +

    +Functions

    Tensorptr ade::shaped_one (Shape shape)
     Return a Tensor::SYMBOLIC_ONE extended to input shape. More...
     
    Tensorptr ade::shaped_zero (Shape shape)
     Return a Tensor::SYMBOLIC_ZERO extended to input shape. More...
     
    +
    + + + + diff --git a/docs/tensor_8hpp_source.html b/docs/tensor_8hpp_source.html new file mode 100644 index 000000000..0394e7baf --- /dev/null +++ b/docs/tensor_8hpp_source.html @@ -0,0 +1,115 @@ + + + + + + + +Tenncor: ade/tensor.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    tensor.hpp
    +
    +
    +Go to the documentation of this file.
    1 
    9 #include <memory>
    10 
    11 #include "ade/log/log.hpp"
    12 #include "ade/shape.hpp"
    13 
    14 #ifndef ADE_TENSOR_HPP
    15 #define ADE_TENSOR_HPP
    16 
    17 namespace ade
    18 {
    19 
    20 struct Tensorptr;
    21 
    22 struct Tensor;
    23 
    24 struct iFunctor;
    25 
    27 struct iTraveler
    28 {
    29  virtual ~iTraveler (void) = default;
    30 
    32  virtual void visit (Tensor* leaf) = 0;
    33 
    35  virtual void visit (iFunctor* func) = 0;
    36 };
    37 
    39 struct iTensor
    40 {
    41  virtual ~iTensor (void) = default;
    42 
    44  virtual void accept (iTraveler& visiter) = 0;
    45 
    47  virtual const Shape& shape (void) const = 0;
    48 
    50  virtual Tensorptr gradient (const iTensor* wrt) = 0;
    51 
    53  virtual std::string to_string (void) const = 0;
    54 };
    55 
    57 struct Tensorptr
    58 {
    59  Tensorptr (iTensor& tens) :
    60  ptr_(&tens) {}
    61 
    62  Tensorptr (iTensor* tens) :
    63  ptr_(tens)
    64  {
    65  if (nullptr == tens)
    66  {
    67  fatal("cannot create nodeptr with nullptr");
    68  }
    69  }
    70 
    71  Tensorptr (std::shared_ptr<iTensor> tens) :
    72  ptr_(tens)
    73  {
    74  if (nullptr == tens)
    75  {
    76  fatal("cannot create nodeptr with nullptr");
    77  }
    78  }
    79 
    80  virtual ~Tensorptr (void) = default;
    81 
    83  {
    84  return ptr_.get();
    85  }
    86 
    87  const iTensor* operator -> (void) const
    88  {
    89  return ptr_.get();
    90  }
    91 
    93  iTensor* get (void) const
    94  {
    95  return ptr_.get();
    96  }
    97 
    99  std::weak_ptr<iTensor> ref (void) const
    100  {
    101  return ptr_;
    102  }
    103 
    104 protected:
    106  std::shared_ptr<iTensor> ptr_;
    107 };
    108 
    110 Tensorptr shaped_one (Shape shape);
    111 
    113 Tensorptr shaped_zero (Shape shape);
    114 
    116 struct Tensor final : public iTensor
    117 {
    120 
    123 
    125  static Tensor* get (Shape shape)
    126  {
    127  return new Tensor(shape);
    128  }
    129 
    131  void accept (iTraveler& visiter) override
    132  {
    133  visiter.visit(this);
    134  }
    135 
    137  const Shape& shape (void) const override
    138  {
    139  return shape_;
    140  }
    141 
    143  Tensorptr gradient (const iTensor* wrt) override
    144  {
    145  if (this == wrt)
    146  {
    147  return shaped_one(shape_);
    148  }
    149  return shaped_zero(wrt->shape());
    150  }
    151 
    153  std::string to_string (void) const override
    154  {
    155  return shape_.to_string();
    156  }
    157 
    158 private:
    160 
    163 };
    164 
    165 }
    166 
    167 #endif // ADE_TENSOR_HPP
    Interface of OPCODE-defined operation node.
    Definition: functor.hpp:24
    +
    virtual Tensorptr gradient(const iTensor *wrt)=0
    Return the partial derivative of this with respect to input wrt.
    +
    void accept(iTraveler &visiter) override
    Implementation of iTensor.
    Definition: tensor.hpp:131
    +
    Smart pointer to iTensor ensuring non-null references.
    Definition: tensor.hpp:57
    +
    virtual const Shape & shape(void) const =0
    Return the shape held by this tensor.
    +
    virtual void visit(Tensor *leaf)=0
    Visit leaf node.
    +
    std::string to_string(void) const
    Return string representation of shape.
    Definition: shape.hpp:138
    +
    std::weak_ptr< iTensor > ref(void) const
    Return the weakptr reference.
    Definition: tensor.hpp:99
    +
    virtual ~Tensorptr(void)=default
    +
    Leaf of the graph commonly representing the variable in an equation.
    Definition: tensor.hpp:116
    +
    Tensorptr shaped_one(Shape shape)
    Return a Tensor::SYMBOLIC_ONE extended to input shape.
    +
    virtual ~iTraveler(void)=default
    +
    iTensor * operator->(void)
    Definition: tensor.hpp:82
    +
    virtual std::string to_string(void) const =0
    Return the string representation of the tensor.
    +
    Tensorptr gradient(const iTensor *wrt) override
    Implementation of iTensor.
    Definition: tensor.hpp:143
    +
    virtual void accept(iTraveler &visiter)=0
    Obtain concrete information on either leaf or functor implementations.
    +
    Tensorptr(iTensor &tens)
    Definition: tensor.hpp:59
    +
    std::shared_ptr< iTensor > ptr_
    Strong reference to iTensor.
    Definition: tensor.hpp:106
    + +
    Definition: coord.hpp:18
    +
    std::string to_string(void) const override
    Implementation of iTensor.
    Definition: tensor.hpp:153
    +
    Interface to travel through graph, treating Tensor and iFunctor differently.
    Definition: tensor.hpp:27
    +
    Interface of traversible and differentiable nodes with shape information.
    Definition: tensor.hpp:39
    +
    void fatal(std::string msg)
    Fatal using global logger.
    +
    Tensorptr(iTensor *tens)
    Definition: tensor.hpp:62
    +
    Tensor(Shape shape)
    Definition: tensor.hpp:159
    +
    Definition: shape.hpp:51
    +
    static Tensorptr SYMBOLIC_ZERO
    Represent a scalar containing value zero.
    Definition: tensor.hpp:122
    +
    Tensorptr(std::shared_ptr< iTensor > tens)
    Definition: tensor.hpp:71
    +
    static Tensorptr SYMBOLIC_ONE
    Represent a scalar containing value one.
    Definition: tensor.hpp:119
    + +
    Shape shape_
    Shape info of the tensor instance.
    Definition: tensor.hpp:162
    +
    Tensorptr shaped_zero(Shape shape)
    Return a Tensor::SYMBOLIC_ZERO extended to input shape.
    +
    virtual ~iTensor(void)=default
    +
    const Shape & shape(void) const override
    Implementation of iTensor.
    Definition: tensor.hpp:137
    +
    + + + + diff --git a/docs/test__api_8cpp.html b/docs/test__api_8cpp.html new file mode 100644 index 000000000..e7144f925 --- /dev/null +++ b/docs/test__api_8cpp.html @@ -0,0 +1,1375 @@ + + + + + + + +Tenncor: llo/test/dynamic/test_api.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    test_api.cpp File Reference
    +
    +
    +
    #include "gtest/gtest.h"
    +#include "testutil/common.hpp"
    +#include "retroc/rand.hpp"
    +#include "llo/api.hpp"
    +
    + + + +

    +Classes

    struct  API
     
    + + + + + + + + + + + + + + + +

    +Typedefs

    using UnaryDblF = std::function< double(double)>
     
    using UnaryOpF = std::function< llo::DataNode(llo::DataNode &)>
     
    using BinaryOpF = std::function< llo::DataNode(llo::DataNode &, llo::DataNode &)>
     
    template<typename T >
    using BinaryFwdF = std::function< T(T, T)>
     
    template<typename T >
    using BinaryBwdF = std::function< T(T, T, T, T)>
     
    using MatVecT = std::vector< std::vector< int32_t > >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    MatVecT create_2d (llo::GenericData &data)
     
    bool freivald (MatVecT a, MatVecT b, MatVecT c)
     
    static void unary_generic (simple::SessionT &sess, retro::Range< double > range, UnaryOpF op, std::function< void(llo::GenericData &, ade::Shape &, std::vector< double > &)> verify, std::function< void(double *, std::vector< double > &)> bwverify)
     
    static void unary_elementary (simple::SessionT &sess, retro::Range< double > range, UnaryOpF op, UnaryDblF fwd, UnaryDblF bwd, bool save_grad=true)
     
    static void binary_elementary (simple::SessionT &sess, retro::Range< double > range, BinaryOpF op, BinaryFwdF< double > fwd, BinaryBwdF< double > bwd)
     
    static void binary_elementary_int (simple::SessionT &sess, retro::Range< int32_t > range, BinaryOpF op, BinaryFwdF< int32_t > fwd, BinaryBwdF< int32_t > bwd)
     
     TEST_F (API, Abs)
     
     TEST_F (API, Neg)
     
     TEST_F (API, Sin)
     
     TEST_F (API, Cos)
     
     TEST_F (API, Tan)
     
     TEST_F (API, Exp)
     
     TEST_F (API, Log)
     
     TEST_F (API, Sqrt)
     
     TEST_F (API, Round)
     
     TEST_F (API, Flip)
     
     TEST_F (API, Pow)
     
     TEST_F (API, Add)
     
     TEST_F (API, Sub)
     
     TEST_F (API, Mul)
     
     TEST_F (API, Div)
     
     TEST_F (API, Min)
     
     TEST_F (API, Max)
     
     TEST_F (API, Eq)
     
     TEST_F (API, Neq)
     
     TEST_F (API, Lt)
     
     TEST_F (API, Gt)
     
     TEST_F (API, NElems)
     
     TEST_F (API, NDims)
     
     TEST_F (API, Rmax)
     
     TEST_F (API, Rsum)
     
     TEST_F (API, Matmul2d)
     
     TEST_F (API, Permute)
     
     TEST_F (API, Extend)
     
    + + + + + +

    +Variables

    static const retro::Range< double > default_range = {-9876, 9876}
     
    const int FREIVALD_N = 10
     
    +

    Typedef Documentation

    + +

    ◆ BinaryBwdF

    + +
    +
    +
    +template<typename T >
    + + + + +
    using BinaryBwdF = std::function<T(T,T,T,T)>
    +
    + +
    +
    + +

    ◆ BinaryFwdF

    + +
    +
    +
    +template<typename T >
    + + + + +
    using BinaryFwdF = std::function<T(T,T)>
    +
    + +
    +
    + +

    ◆ BinaryOpF

    + +
    +
    + + + + +
    using BinaryOpF = std::function<llo::DataNode(llo::DataNode&,llo::DataNode&)>
    +
    + +
    +
    + +

    ◆ MatVecT

    + +
    +
    + + + + +
    using MatVecT = std::vector<std::vector<int32_t> >
    +
    + +
    +
    + +

    ◆ UnaryDblF

    + +
    +
    + + + + +
    using UnaryDblF = std::function<double(double)>
    +
    + +
    +
    + +

    ◆ UnaryOpF

    + +
    +
    + + + + +
    using UnaryOpF = std::function<llo::DataNode(llo::DataNode&)>
    +
    + +
    +
    +

    Function Documentation

    + +

    ◆ binary_elementary()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static void binary_elementary (simple::SessionT & sess,
    retro::Range< double > range,
    BinaryOpF op,
    BinaryFwdF< double > fwd,
    BinaryBwdF< double > bwd 
    )
    +
    +static
    +
    + +
    +
    + +

    ◆ binary_elementary_int()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static void binary_elementary_int (simple::SessionT & sess,
    retro::Range< int32_t > range,
    BinaryOpF op,
    BinaryFwdF< int32_t > fwd,
    BinaryBwdF< int32_t > bwd 
    )
    +
    +static
    +
    + +
    +
    + +

    ◆ create_2d()

    + +
    +
    + + + + + + + + +
    MatVecT create_2d (llo::GenericDatadata)
    +
    + +
    +
    + +

    ◆ freivald()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    bool freivald (MatVecT a,
    MatVecT b,
    MatVecT c 
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [1/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Abs  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [2/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Neg  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [3/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Sin  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [4/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Cos  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [5/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Tan  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [6/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Exp  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [7/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Log  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [8/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Sqrt  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [9/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Round  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [10/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Flip  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [11/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Pow  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [12/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Add  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [13/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Sub  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [14/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Mul  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [15/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Div  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [16/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Min  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [17/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Max  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [18/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Eq  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [19/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Neq  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [20/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Lt  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [21/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Gt  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [22/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    NElems  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [23/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    NDims  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [24/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Rmax  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [25/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Rsum  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [26/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Matmul2d  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [27/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Permute  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [28/28]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (API ,
    Extend  
    )
    +
    + +
    +
    + +

    ◆ unary_elementary()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static void unary_elementary (simple::SessionT & sess,
    retro::Range< double > range,
    UnaryOpF op,
    UnaryDblF fwd,
    UnaryDblF bwd,
    bool save_grad = true 
    )
    +
    +static
    +
    + +
    +
    + +

    ◆ unary_generic()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static void unary_generic (simple::SessionT & sess,
    retro::Range< double > range,
    UnaryOpF op,
    std::function< void(llo::GenericData &, ade::Shape &, std::vector< double > &)> verify,
    std::function< void(double *, std::vector< double > &)> bwverify 
    )
    +
    +static
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ default_range

    + +
    +
    + + + + + +
    + + + + +
    const retro::Range<double> default_range = {-9876, 9876}
    +
    +static
    +
    + +
    +
    + +

    ◆ FREIVALD_N

    + +
    +
    + + + + +
    const int FREIVALD_N = 10
    +
    + +
    +
    +
    + + + + diff --git a/docs/test__coord_8cpp.html b/docs/test__coord_8cpp.html new file mode 100644 index 000000000..e349013c9 --- /dev/null +++ b/docs/test__coord_8cpp.html @@ -0,0 +1,156 @@ + + + + + + + +Tenncor: ade/test/dynamic/test_coord.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    test_coord.cpp File Reference
    +
    +
    +
    #include "gtest/gtest.h"
    +#include "ade/coord.hpp"
    +#include "testutil/common.hpp"
    +
    + + + +

    +Classes

    struct  COORD
     
    + + + + + +

    +Functions

     TEST_F (COORD, Inverse)
     
     TEST_F (COORD, Identity)
     
    +

    Function Documentation

    + +

    ◆ TEST_F() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (COORD ,
    Inverse  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (COORD ,
    Identity  
    )
    +
    + +
    +
    +
    + + + + diff --git a/docs/test__dtype_8cpp.html b/docs/test__dtype_8cpp.html new file mode 100644 index 000000000..f7c5bcfab --- /dev/null +++ b/docs/test__dtype_8cpp.html @@ -0,0 +1,216 @@ + + + + + + + +Tenncor: llo/test/dynamic/test_dtype.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    test_dtype.cpp File Reference
    +
    +
    +
    #include "gtest/gtest.h"
    +#include "testutil/common.hpp"
    +#include "llo/data.hpp"
    +
    + + + +

    +Classes

    struct  DTYPE
     
    + + + + + + + + + +

    +Functions

     TEST_F (DTYPE, DataConvert)
     
     TEST_F (DTYPE, GetType)
     
     TEST_F (DTYPE, TypeSize)
     
     TEST_F (DTYPE, TypeName)
     
    +

    Function Documentation

    + +

    ◆ TEST_F() [1/4]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (DTYPE ,
    DataConvert  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [2/4]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (DTYPE ,
    GetType  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [3/4]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (DTYPE ,
    TypeSize  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [4/4]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (DTYPE ,
    TypeName  
    )
    +
    + +
    +
    +
    + + + + diff --git a/docs/test__functor_8cpp.html b/docs/test__functor_8cpp.html new file mode 100644 index 000000000..a02b8025a --- /dev/null +++ b/docs/test__functor_8cpp.html @@ -0,0 +1,186 @@ + + + + + + + +Tenncor: ade/test/dynamic/test_functor.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    test_functor.cpp File Reference
    +
    +
    +
    #include "gtest/gtest.h"
    +#include "ade/functor.hpp"
    +#include "testutil/common.hpp"
    +
    + + + +

    +Classes

    struct  FUNCTOR
     
    + + + + + + + +

    +Functions

     TEST_F (FUNCTOR, Childrens)
     
     TEST_F (FUNCTOR, ToString)
     
     TEST_F (FUNCTOR, OpNaming)
     
    +

    Function Documentation

    + +

    ◆ TEST_F() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (FUNCTOR ,
    Childrens  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (FUNCTOR ,
    ToString  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (FUNCTOR ,
    OpNaming  
    )
    +
    + +
    +
    +
    + + + + diff --git a/docs/test__grader_8cpp.html b/docs/test__grader_8cpp.html new file mode 100644 index 000000000..0027c0a61 --- /dev/null +++ b/docs/test__grader_8cpp.html @@ -0,0 +1,894 @@ + + + + + + + +Tenncor: ade/test/static/test_grader.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    test_grader.cpp File Reference
    +
    +
    +
    #include <fstream>
    +#include "gtest/gtest.h"
    +#include "dbg/ade.hpp"
    +#include "ade/functor.hpp"
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    static void ltrim (std::string &s)
     
    static void rtrim (std::string &s)
     
    static void trim (std::string &s)
     
    static void TREE_EQ (std::istream &expectstr, ade::Tensorptr &root)
     
     TEST (GRADER, COPY)
     
     TEST (GRADER, ABS)
     
     TEST (GRADER, NEG)
     
     TEST (GRADER, SIN)
     
     TEST (GRADER, COS)
     
     TEST (GRADER, TAN)
     
     TEST (GRADER, EXP)
     
     TEST (GRADER, LOG)
     
     TEST (GRADER, SQRT)
     
     TEST (GRADER, ROUND)
     
     TEST (GRADER, POW)
     
     TEST (GRADER, ADD)
     
     TEST (GRADER, SUB)
     
     TEST (GRADER, MUL)
     
     TEST (GRADER, DIV)
     
     TEST (GRADER, EQ)
     
     TEST (GRADER, NE)
     
     TEST (GRADER, LT)
     
     TEST (GRADER, GT)
     
     TEST (GRADER, RAND_BINO)
     
     TEST (GRADER, RAND_UNIF)
     
     TEST (GRADER, RAND_NORM)
     
    + + + +

    +Variables

    const std::string testdir = "ade/test/data"
     
    +

    Function Documentation

    + +

    ◆ ltrim()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static void ltrim (std::string & s)
    +
    +inlinestatic
    +
    + +
    +
    + +

    ◆ rtrim()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static void rtrim (std::string & s)
    +
    +inlinestatic
    +
    + +
    +
    + +

    ◆ TEST() [1/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    COPY  
    )
    +
    + +
    +
    + +

    ◆ TEST() [2/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    ABS  
    )
    +
    + +
    +
    + +

    ◆ TEST() [3/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    NEG  
    )
    +
    + +
    +
    + +

    ◆ TEST() [4/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    SIN  
    )
    +
    + +
    +
    + +

    ◆ TEST() [5/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    COS  
    )
    +
    + +
    +
    + +

    ◆ TEST() [6/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    TAN  
    )
    +
    + +
    +
    + +

    ◆ TEST() [7/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    EXP  
    )
    +
    + +
    +
    + +

    ◆ TEST() [8/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    LOG  
    )
    +
    + +
    +
    + +

    ◆ TEST() [9/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    SQRT  
    )
    +
    + +
    +
    + +

    ◆ TEST() [10/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    ROUND  
    )
    +
    + +
    +
    + +

    ◆ TEST() [11/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    POW  
    )
    +
    + +
    +
    + +

    ◆ TEST() [12/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    ADD  
    )
    +
    + +
    +
    + +

    ◆ TEST() [13/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    SUB  
    )
    +
    + +
    +
    + +

    ◆ TEST() [14/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    MUL  
    )
    +
    + +
    +
    + +

    ◆ TEST() [15/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    DIV  
    )
    +
    + +
    +
    + +

    ◆ TEST() [16/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    EQ  
    )
    +
    + +
    +
    + +

    ◆ TEST() [17/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    NE  
    )
    +
    + +
    +
    + +

    ◆ TEST() [18/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    LT  
    )
    +
    + +
    +
    + +

    ◆ TEST() [19/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    GT  
    )
    +
    + +
    +
    + +

    ◆ TEST() [20/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    RAND_BINO  
    )
    +
    + +
    +
    + +

    ◆ TEST() [21/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    RAND_UNIF  
    )
    +
    + +
    +
    + +

    ◆ TEST() [22/22]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (GRADER ,
    RAND_NORM  
    )
    +
    + +
    +
    + +

    ◆ TREE_EQ()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static void TREE_EQ (std::istream & expectstr,
    ade::Tensorptrroot 
    )
    +
    +static
    +
    + +
    +
    + +

    ◆ trim()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static void trim (std::string & s)
    +
    +inlinestatic
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ testdir

    + +
    +
    + + + + +
    const std::string testdir = "ade/test/data"
    +
    + +
    +
    +
    + + + + diff --git a/docs/test__load_8cpp.html b/docs/test__load_8cpp.html new file mode 100644 index 000000000..04d7dbca0 --- /dev/null +++ b/docs/test__load_8cpp.html @@ -0,0 +1,226 @@ + + + + + + + +Tenncor: pbm/test/test_load.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    test_load.cpp File Reference
    +
    +
    +
    #include <fstream>
    +#include "gtest/gtest.h"
    +#include "dbg/ade.hpp"
    +#include "pbm/graph.hpp"
    +
    + + + + + + + + + +

    +Functions

    static void ltrim (std::string &s)
     
    static void rtrim (std::string &s)
     
    static void trim (std::string &s)
     
     TEST (LOAD, LoadGraph)
     
    + + + +

    +Variables

    const std::string testdir = "pbm/test/data"
     
    +

    Function Documentation

    + +

    ◆ ltrim()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static void ltrim (std::string & s)
    +
    +inlinestatic
    +
    + +
    +
    + +

    ◆ rtrim()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static void rtrim (std::string & s)
    +
    +inlinestatic
    +
    + +
    +
    + +

    ◆ TEST()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (LOAD ,
    LoadGraph  
    )
    +
    + +
    +
    + +

    ◆ trim()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static void trim (std::string & s)
    +
    +inlinestatic
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ testdir

    + +
    +
    + + + + +
    const std::string testdir = "pbm/test/data"
    +
    + +
    +
    +
    + + + + diff --git a/docs/test__log_8cpp.html b/docs/test__log_8cpp.html new file mode 100644 index 000000000..2058373d1 --- /dev/null +++ b/docs/test__log_8cpp.html @@ -0,0 +1,305 @@ + + + + + + + +Tenncor: ade/test/log/test_log.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    test_log.cpp File Reference
    +
    +
    +
    #include "gtest/gtest.h"
    +#include "ade/test/log/common.hpp"
    +
    + + + +

    +Classes

    struct  LOG
     
    + + + + + + + + + + + + + + + +

    +Functions

     TEST_F (LOG, Default)
     
     TEST_F (LOG, Warn)
     
     TEST_F (LOG, WarnFmt)
     
     TEST_F (LOG, Error)
     
     TEST_F (LOG, ErrorFmt)
     
     TEST_F (LOG, Fatal)
     
     TEST_F (LOG, FatalFmt)
     
    +

    Function Documentation

    + +

    ◆ TEST_F() [1/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (LOG ,
    Default  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [2/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (LOG ,
    Warn  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [3/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (LOG ,
    WarnFmt  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [4/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (LOG ,
    Error  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [5/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (LOG ,
    ErrorFmt  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [6/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (LOG ,
    Fatal  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [7/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (LOG ,
    FatalFmt  
    )
    +
    + +
    +
    +
    + + + + diff --git a/docs/test__node_8cpp.html b/docs/test__node_8cpp.html new file mode 100644 index 000000000..fc4cb0eec --- /dev/null +++ b/docs/test__node_8cpp.html @@ -0,0 +1,186 @@ + + + + + + + +Tenncor: llo/test/dynamic/test_node.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    test_node.cpp File Reference
    +
    +
    +
    #include "gtest/gtest.h"
    +#include "testutil/common.hpp"
    +#include "llo/node.hpp"
    +
    + + + +

    +Classes

    struct  NODE
     
    + + + + + + + +

    +Functions

     TEST_F (NODE, MismatchSource)
     
     TEST_F (NODE, SourceRetype)
     
     TEST_F (NODE, PlaceHolder)
     
    +

    Function Documentation

    + +

    ◆ TEST_F() [1/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (NODE ,
    MismatchSource  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [2/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (NODE ,
    SourceRetype  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [3/3]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (NODE ,
    PlaceHolder  
    )
    +
    + +
    +
    +
    + + + + diff --git a/docs/test__save_8cpp.html b/docs/test__save_8cpp.html new file mode 100644 index 000000000..9eafd3d0b --- /dev/null +++ b/docs/test__save_8cpp.html @@ -0,0 +1,142 @@ + + + + + + + +Tenncor: pbm/test/test_save.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    test_save.cpp File Reference
    +
    +
    +
    #include <fstream>
    +#include "gtest/gtest.h"
    +#include "llo/api.hpp"
    +#include "pbm/graph.hpp"
    +
    + + + +

    +Functions

     TEST (SAVE, SaveGraph)
     
    + + + +

    +Variables

    const std::string testdir = "pbm/test/data"
     
    +

    Function Documentation

    + +

    ◆ TEST()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (SAVE ,
    SaveGraph  
    )
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ testdir

    + +
    +
    + + + + +
    const std::string testdir = "pbm/test/data"
    +
    + +
    +
    +
    + + + + diff --git a/docs/test__shape_8cpp.html b/docs/test__shape_8cpp.html new file mode 100644 index 000000000..0d9d94cdb --- /dev/null +++ b/docs/test__shape_8cpp.html @@ -0,0 +1,306 @@ + + + + + + + +Tenncor: ade/test/dynamic/test_shape.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    test_shape.cpp File Reference
    +
    +
    +
    #include "gtest/gtest.h"
    +#include "ade/shape.hpp"
    +#include "testutil/common.hpp"
    +
    + + + +

    +Classes

    struct  SHAPE
     
    + + + + + + + + + + + + + + + +

    +Functions

     TEST_F (SHAPE, Init)
     
     TEST_F (SHAPE, VecAssign)
     
     TEST_F (SHAPE, Moves)
     
     TEST_F (SHAPE, NElems)
     
     TEST_F (SHAPE, Compatible)
     
     TEST_F (SHAPE, Coordinates)
     
     TEST_F (SHAPE, ToString)
     
    +

    Function Documentation

    + +

    ◆ TEST_F() [1/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (SHAPE ,
    Init  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [2/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (SHAPE ,
    VecAssign  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [3/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (SHAPE ,
    Moves  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [4/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (SHAPE ,
    NElems  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [5/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (SHAPE ,
    Compatible  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [6/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (SHAPE ,
    Coordinates  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [7/7]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (SHAPE ,
    ToString  
    )
    +
    + +
    +
    +
    + + + + diff --git a/docs/test__string_8cpp.html b/docs/test__string_8cpp.html new file mode 100644 index 000000000..383187043 --- /dev/null +++ b/docs/test__string_8cpp.html @@ -0,0 +1,242 @@ + + + + + + + +Tenncor: ade/test/log/test_string.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    test_string.cpp File Reference
    +
    +
    +
    #include <array>
    +#include <list>
    +#include <vector>
    +#include "gtest/gtest.h"
    +#include "ade/log/string.hpp"
    +
    + + + + + + + + + + + +

    +Functions

     TEST (STREAM, StringFmt)
     
     TEST (STREAM, GenericFmt)
     
     TEST (STREAM, Iterators)
     
     TEST (STRING, Iterators)
     
     TEST (STRING, Sprintf)
     
    +

    Function Documentation

    + +

    ◆ TEST() [1/5]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (STREAM ,
    StringFmt  
    )
    +
    + +
    +
    + +

    ◆ TEST() [2/5]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (STREAM ,
    GenericFmt  
    )
    +
    + +
    +
    + +

    ◆ TEST() [3/5]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (STREAM ,
    Iterators  
    )
    +
    + +
    +
    + +

    ◆ TEST() [4/5]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (STRING ,
    Iterators  
    )
    +
    + +
    +
    + +

    ◆ TEST() [5/5]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (STRING ,
    Sprintf  
    )
    +
    + +
    +
    +
    + + + + diff --git a/docs/test__tensor_8cpp.html b/docs/test__tensor_8cpp.html new file mode 100644 index 000000000..4053dc5e6 --- /dev/null +++ b/docs/test__tensor_8cpp.html @@ -0,0 +1,157 @@ + + + + + + + +Tenncor: ade/test/dynamic/test_tensor.cpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    test_tensor.cpp File Reference
    +
    +
    +
    #include "gtest/gtest.h"
    +#include "ade/tensor.hpp"
    +#include "ade/functor.hpp"
    +#include "testutil/common.hpp"
    +
    + + + +

    +Classes

    struct  TENSOR
     
    + + + + + +

    +Functions

     TEST_F (TENSOR, Gradient)
     
     TEST_F (TENSOR, ToString)
     
    +

    Function Documentation

    + +

    ◆ TEST_F() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (TENSOR ,
    Gradient  
    )
    +
    + +
    +
    + +

    ◆ TEST_F() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST_F (TENSOR ,
    ToString  
    )
    +
    + +
    +
    +
    + + + + diff --git a/docs/traveler_8hpp.html b/docs/traveler_8hpp.html new file mode 100644 index 000000000..4ad8ba173 --- /dev/null +++ b/docs/traveler_8hpp.html @@ -0,0 +1,97 @@ + + + + + + + +Tenncor: llo/traveler.hpp File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    traveler.hpp File Reference
    +
    +
    +
    #include "llo/node.hpp"
    +
    +

    Go to the source code of this file.

    + + + + +

    +Classes

    struct  llo::GraphStat
     
    + + + +

    +Namespaces

     llo
     
    +
    + + + + diff --git a/docs/traveler_8hpp_source.html b/docs/traveler_8hpp_source.html new file mode 100644 index 000000000..fc0312406 --- /dev/null +++ b/docs/traveler_8hpp_source.html @@ -0,0 +1,104 @@ + + + + + + + +Tenncor: llo/traveler.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    Tenncor +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    traveler.hpp
    +
    +
    +Go to the documentation of this file.
    1 
    9 #include "llo/node.hpp"
    10 
    11 #ifndef LLO_TRAVELER_HPP
    12 #define LLO_TRAVELER_HPP
    13 
    14 namespace llo
    15 {
    16 
    23 struct GraphStat final : public ade::iTraveler
    24 {
    25  GraphStat (std::vector<llo::DataNode> roots) :
    26  global_ctx_([&roots]() -> llo::EvalCtx
    27  {
    28  std::vector<const llo::EvalCtx*> contexas(roots.size());
    29  std::transform(roots.begin(), roots.end(), contexas.begin(),
    30  [](llo::DataNode& tptr)
    31  {
    32  return &tptr.ctx_;
    33  });
    34  return llo::EvalCtx(contexas);
    35  }())
    36  {
    37  for (llo::DataNode& tptr : roots)
    38  {
    39  tptr.tensor_->accept(*this);
    40  }
    41  // sort functions from the root with the smallest subtree to the largest
    42  // this ensures every children of a node appears before the parent,
    43  // as is the order of node creations
    44  funcs_.sort(
    45  [this](ade::iTensor* a, ade::iTensor* b)
    46  {
    47  return this->graphsize_[a] < this->graphsize_[b];
    48  });
    49  }
    50 
    52  void visit (ade::Tensor* leaf) override
    53  {
    54  if (graphsize_.end() == graphsize_.find(leaf))
    55  {
    56  auto srcinfo = global_ctx_.srcs_.find(leaf);
    57  if (global_ctx_.srcs_.end() != srcinfo)
    58  {
    59  leaves_.push_back(srcinfo->second.get());
    60  }
    61  else if (
    62  leaf != ade::Tensor::SYMBOLIC_ONE.get() &&
    64  {
    65  ade::fatal("cannot serialize tensor leaf without source");
    66  }
    67  graphsize_.emplace(leaf, 0);
    68  }
    69  }
    70 
    72  void visit (ade::iFunctor* func) override
    73  {
    74  if (graphsize_.end() == graphsize_.find(func))
    75  {
    76  funcs_.push_back(func);
    77  ade::ArgsT children = func->get_children();
    78  size_t ngraph = 0;
    79  for (auto& child : children)
    80  {
    81  ade::iTensor* tens = child.second.get();
    82  if (graphsize_.end() == graphsize_.find(tens))
    83  {
    84  child.second->accept(*this);
    85  }
    86  auto childinfo = graphsize_.find(tens);
    87  if (graphsize_.end() != childinfo &&
    88  childinfo->second > ngraph)
    89  {
    90  ngraph = childinfo->second;
    91  }
    92  // else child is leaf
    93  }
    94  graphsize_[func] = ngraph + 1;
    95  }
    96  }
    97 
    100 
    102  std::vector<llo::iSource*> leaves_;
    103 
    104  // List of functions visited (by depth-first) then sorted by graphsize_ in
    105  // ascending order
    106  std::list<ade::iFunctor*> funcs_;
    107 
    108  // Maximum depth of the subtree of mapped tensors
    109  std::unordered_map<ade::iTensor*,size_t> graphsize_;
    110 };
    111 
    112 }
    113 
    114 #endif // LLO_TRAVELER_HPP
    Definition: traveler.hpp:23
    +
    Interface of OPCODE-defined operation node.
    Definition: functor.hpp:24
    +
    iTensor * get(void) const
    Return the raw pointer.
    Definition: tensor.hpp:93
    +
    void visit(ade::iFunctor *func) override
    Implemenation of iTraveler.
    Definition: traveler.hpp:72
    +
    void visit(ade::Tensor *leaf) override
    Implemenation of iTraveler.
    Definition: traveler.hpp:52
    +
    std::vector< std::pair< CoordPtrT, Tensorptr > > ArgsT
    Type of functor arguments.
    Definition: grader.hpp:22
    +
    llo::EvalCtx global_ctx_
    Collected context of all root DataNodes.
    Definition: traveler.hpp:99
    +
    std::unordered_map< ade::iTensor *, size_t > graphsize_
    Definition: traveler.hpp:109
    +
    std::list< ade::iFunctor * > funcs_
    Definition: traveler.hpp:106
    +
    SourcePoolT srcs_
    List all ade-source mapping.
    Definition: eval.hpp:64
    +
    Leaf of the graph commonly representing the variable in an equation.
    Definition: tensor.hpp:116
    +
    GraphStat(std::vector< llo::DataNode > roots)
    Definition: traveler.hpp:25
    +
    virtual void accept(iTraveler &visiter)=0
    Obtain concrete information on either leaf or functor implementations.
    +
    std::vector< llo::iSource * > leaves_
    Vector of leaves visited to maintain order.
    Definition: traveler.hpp:102
    +
    Interface to travel through graph, treating Tensor and iFunctor differently.
    Definition: tensor.hpp:27
    +
    Interface of traversible and differentiable nodes with shape information.
    Definition: tensor.hpp:39
    +
    void fatal(std::string msg)
    Fatal using global logger.
    +
    virtual const ArgsT & get_children(void) const =0
    Return children nodes as a vector of raw pointers.
    +
    static Tensorptr SYMBOLIC_ZERO
    Represent a scalar containing value zero.
    Definition: tensor.hpp:122
    + +
    Definition: api.hpp:14
    +
    static Tensorptr SYMBOLIC_ONE
    Represent a scalar containing value one.
    Definition: tensor.hpp:119
    +
    Definition: eval.hpp:132
    +
    Context used to associate ade nodes to llo nodes under a particular graph.
    Definition: eval.hpp:43
    +
    + + + +