From 2083aaa873faf3a31a7b0de84e2001d084c743b0 Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Sun, 28 Jun 2020 15:07:29 +0000 Subject: [PATCH] Documentation for d5d68d5842827cbbc1d35d7ec67247b97acb8dde --- annotated.html | 142 ++ annotated_dup.js | 40 + bc_s.png | Bin 0 -> 676 bytes bdwn.png | Bin 0 -> 147 bytes classes.html | 190 ++ closed.png | Bin 0 -> 132 bytes d0/d04/qr__decompose_8h__incl.map | 6 + d0/d04/qr__decompose_8h__incl.md5 | 1 + d0/d04/qr__decompose_8h__incl.svg | 68 + d0/d10/struct_queue_rep.html | 133 ++ d0/d10/struct_queue_rep.js | 6 + d0/d1f/structnode__coll__graph.map | 3 + d0/d1f/structnode__coll__graph.md5 | 1 + d0/d1f/structnode__coll__graph.svg | 36 + d0/d3d/problem__8_2sol2_8c__incl.map | 6 + d0/d3d/problem__8_2sol2_8c__incl.md5 | 1 + d0/d3d/problem__8_2sol2_8c__incl.svg | 68 + d0/d43/structpid.html | 146 ++ d0/d43/structpid.js | 8 + d0/d46/kohonen__som__trace_8c.html | 1083 +++++++++++ d0/d46/kohonen__som__trace_8c.js | 19 + ...07f00650b8041f77767927073ddddb8_cgraph.map | 4 + ...07f00650b8041f77767927073ddddb8_cgraph.md5 | 1 + ...07f00650b8041f77767927073ddddb8_cgraph.svg | 37 + ...c98203f55242ff7a8f45a6370840e66_cgraph.map | 4 + ...c98203f55242ff7a8f45a6370840e66_cgraph.md5 | 1 + ...c98203f55242ff7a8f45a6370840e66_cgraph.svg | 37 + ...2246f940155472084ee461f3685d614_cgraph.map | 4 + ...2246f940155472084ee461f3685d614_cgraph.md5 | 1 + ...2246f940155472084ee461f3685d614_cgraph.svg | 37 + ...aeffbff2be4d5d15b0d4f10f846abde_cgraph.map | 5 + ...aeffbff2be4d5d15b0d4f10f846abde_cgraph.md5 | 1 + ...aeffbff2be4d5d15b0d4f10f846abde_cgraph.svg | 52 + d0/d59/problem__9_2sol2_8c__incl.map | 5 + d0/d59/problem__9_2sol2_8c__incl.md5 | 1 + d0/d59/problem__9_2sol2_8c__incl.svg | 53 + d0/d6b/structelem.html | 130 ++ d0/d6b/structelem.js | 5 + d0/d6c/problem__4_2sol_8c.html | 212 ++ d0/d6c/problem__4_2sol_8c.js | 5 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.map | 4 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.md5 | 1 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.svg | 37 + d0/d6d/problem__10_2sol1_8c.html | 245 +++ d0/d6d/problem__10_2sol1_8c.js | 6 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.map | 5 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.md5 | 1 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.svg | 52 + ...3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.map | 4 + ...3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.md5 | 1 + ...3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.svg | 37 + d0/d7f/so1_8c.html | 170 ++ d0/d7f/so1_8c.js | 4 + d0/d8a/structmax__heap.html | 127 ++ d0/d8a/structmax__heap.js | 6 + d0/d99/c__atoi__str__to__integer_8c__incl.map | 7 + d0/d99/c__atoi__str__to__integer_8c__incl.md5 | 1 + d0/d99/c__atoi__str__to__integer_8c__incl.svg | 83 + d0/db8/collatz_8c__incl.map | 5 + d0/db8/collatz_8c__incl.md5 | 1 + d0/db8/collatz_8c__incl.svg | 52 + d0/dc8/structarray__3d.html | 189 ++ d0/dc8/structarray__3d.js | 7 + d0/df1/structhash__set__t.html | 130 ++ d0/df1/structhash__set__t.js | 7 + d0/df1/threaded__binary__trees_8c__incl.map | 5 + d0/df1/threaded__binary__trees_8c__incl.md5 | 1 + d0/df1/threaded__binary__trees_8c__incl.svg | 54 + d1/d07/sol4_8c__incl.map | 4 + d1/d07/sol4_8c__incl.md5 | 1 + d1/d07/sol4_8c__incl.svg | 38 + d1/d10/structelem__coll__graph.map | 3 + d1/d10/structelem__coll__graph.md5 | 1 + d1/d10/structelem__coll__graph.svg | 29 + ...md_data_structures_stack__r_e_a_d_m_e.html | 131 ++ d1/d2f/problem__7_2sol_8c.html | 178 ++ d1/d2f/problem__7_2sol_8c.js | 4 + d1/d6c/ode__forward__euler_8c__incl.map | 7 + d1/d6c/ode__forward__euler_8c__incl.md5 | 1 + d1/d6c/ode__forward__euler_8c__incl.svg | 83 + d1/d8d/struct_a_v_lnode__coll__graph.map | 3 + d1/d8d/struct_a_v_lnode__coll__graph.md5 | 1 + d1/d8d/struct_a_v_lnode__coll__graph.svg | 30 + d1/dc2/ode__midpoint__euler_8c.html | 525 +++++ d1/dc2/ode__midpoint__euler_8c.js | 9 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.map | 7 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.md5 | 1 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.svg | 82 + ...48003d8b261d040c1c41e73b40af1dd_cgraph.map | 5 + ...48003d8b261d040c1c41e73b40af1dd_cgraph.md5 | 1 + ...48003d8b261d040c1c41e73b40af1dd_cgraph.svg | 52 + ...fe6cc2ab040b94a29e6c41782f72d51_cgraph.map | 4 + ...fe6cc2ab040b94a29e6c41782f72d51_cgraph.md5 | 1 + ...fe6cc2ab040b94a29e6c41782f72d51_cgraph.svg | 37 + d1/dd3/problem__401_2sol1_8c__incl.map | 8 + d1/dd3/problem__401_2sol1_8c__incl.md5 | 1 + d1/dd3/problem__401_2sol1_8c__incl.svg | 98 + d1/df9/problem__26_2sol1_8c.html | 308 +++ d1/df9/problem__26_2sol1_8c.js | 7 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.map | 4 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.md5 | 1 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.svg | 37 + d2/d36/structqueue.html | 140 ++ d2/d36/structqueue.js | 8 + d2/d6a/struct_graph_rep.html | 127 ++ d2/d6a/struct_graph_rep.js | 6 + d2/d71/struct_a_v_lnode.html | 136 ++ d2/d71/struct_a_v_lnode.js | 7 + d2/d89/structcontour.html | 133 ++ d2/d89/structcontour.js | 6 + d2/d93/problem__8_2sol2_8c.html | 279 +++ d2/d93/problem__8_2sol2_8c.js | 4 + d2/daa/structadaline.html | 132 ++ d2/daa/structadaline.js | 6 + d2/dae/problem__1_2sol2_8c.html | 164 ++ d2/dae/problem__1_2sol2_8c.js | 4 + d2/dbc/problem__3_2sol2_8c.html | 169 ++ d2/dbc/problem__3_2sol2_8c.js | 4 + d2/dc3/carray_8h_source.html | 202 ++ d2/dd8/problem__3_2sol1_8c__incl.map | 5 + d2/dd8/problem__3_2sol1_8c__incl.md5 | 1 + d2/dd8/problem__3_2sol1_8c__incl.svg | 53 + d2/ddf/struct_l__coll__graph.map | 3 + d2/ddf/struct_l__coll__graph.md5 | 1 + d2/ddf/struct_l__coll__graph.svg | 29 + d2/de9/realtime__stats_8c__incl.map | 6 + d2/de9/realtime__stats_8c__incl.md5 | 1 + d2/de9/realtime__stats_8c__incl.svg | 68 + d2/df6/kohonen__som__topology_8c.html | 1310 +++++++++++++ d2/df6/kohonen__som__topology_8c.js | 22 + ...983dc0f35e734015772e9f8c0ff19f5_cgraph.map | 6 + ...983dc0f35e734015772e9f8c0ff19f5_cgraph.md5 | 1 + ...983dc0f35e734015772e9f8c0ff19f5_cgraph.svg | 67 + ...139de302fa8135a433d9c1bf971b13b_cgraph.map | 5 + ...139de302fa8135a433d9c1bf971b13b_cgraph.md5 | 1 + ...139de302fa8135a433d9c1bf971b13b_cgraph.svg | 52 + d3/d01/problem__21_2sol1_8c__incl.map | 6 + d3/d01/problem__21_2sol1_8c__incl.md5 | 1 + d3/d01/problem__21_2sol1_8c__incl.svg | 68 + d3/d21/sol3_8c__incl.map | 4 + d3/d21/sol3_8c__incl.md5 | 1 + d3/d21/sol3_8c__incl.svg | 38 + d3/d5a/struct__large__num.html | 155 ++ d3/d5a/struct__large__num.js | 5 + d3/d61/problem__1_2sol1_8c__incl.map | 4 + d3/d61/problem__1_2sol1_8c__incl.md5 | 1 + d3/d61/problem__1_2sol1_8c__incl.svg | 38 + d3/da9/problem__5_2sol_8c__incl.map | 4 + d3/da9/problem__5_2sol_8c__incl.md5 | 1 + d3/da9/problem__5_2sol_8c__incl.svg | 38 + d4/d02/struct_b_s_t_iterator.html | 129 ++ d4/d02/struct_b_s_t_iterator.js | 6 + d4/d07/ode__forward__euler_8c.html | 518 +++++ d4/d07/ode__forward__euler_8c.js | 9 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.map | 7 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.md5 | 1 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.svg | 82 + ...f88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.map | 5 + ...f88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.md5 | 1 + ...f88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.svg | 52 + ...6c9413953c8d9d4bc9e374b29586350_cgraph.map | 4 + ...6c9413953c8d9d4bc9e374b29586350_cgraph.md5 | 1 + ...6c9413953c8d9d4bc9e374b29586350_cgraph.svg | 37 + d4/d15/qr__eigen__values_8c__incl.map | 9 + d4/d15/qr__eigen__values_8c__incl.md5 | 1 + d4/d15/qr__eigen__values_8c__incl.svg | 131 ++ d4/d22/struct_trie_node__coll__graph.map | 3 + d4/d22/struct_trie_node__coll__graph.md5 | 1 + d4/d22/struct_trie_node__coll__graph.svg | 29 + d4/d2d/struct_c_array.html | 124 ++ d4/d2d/struct_c_array.js | 5 + d4/d68/qr__decompose_8h.html | 552 ++++++ d4/d68/qr__decompose_8h.js | 9 + ...5c7640d9d22c89c11beb1f567843c56_cgraph.map | 7 + ...5c7640d9d22c89c11beb1f567843c56_cgraph.md5 | 1 + ...5c7640d9d22c89c11beb1f567843c56_cgraph.svg | 94 + ...2b20e027437df768d7e994cf4cae29f_cgraph.map | 4 + ...2b20e027437df768d7e994cf4cae29f_cgraph.md5 | 1 + ...2b20e027437df768d7e994cf4cae29f_cgraph.svg | 37 + ...eec1f78a7a7e7251687e75340331212_cgraph.map | 4 + ...eec1f78a7a7e7251687e75340331212_cgraph.md5 | 1 + ...eec1f78a7a7e7251687e75340331212_cgraph.svg | 37 + d4/d68/qr__decompose_8h_source.html | 435 +++++ d4/d7b/problem__6_2sol_8c.html | 160 ++ d4/d7b/problem__6_2sol_8c.js | 4 + d4/d83/problem__401_2sol1_8c.html | 466 +++++ d4/d83/problem__401_2sol1_8c.js | 11 + ...36548478af932f1115a71f601a68788_cgraph.map | 5 + ...36548478af932f1115a71f601a68788_cgraph.md5 | 1 + ...36548478af932f1115a71f601a68788_cgraph.svg | 52 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 7 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 82 + ...380e14d595d560007b02ce516b6b215_cgraph.map | 4 + ...380e14d595d560007b02ce516b6b215_cgraph.md5 | 1 + ...380e14d595d560007b02ce516b6b215_cgraph.svg | 37 + ...f964739be92adc2f500e7da11e3f6be_cgraph.map | 6 + ...f964739be92adc2f500e7da11e3f6be_cgraph.md5 | 1 + ...f964739be92adc2f500e7da11e3f6be_cgraph.svg | 67 + d4/d89/problem__23_2sol1_8c__incl.map | 6 + d4/d89/problem__23_2sol1_8c__incl.md5 | 1 + d4/d89/problem__23_2sol1_8c__incl.svg | 68 + d4/d99/fibonacci__fast_8c.html | 266 +++ d4/d99/fibonacci__fast_8c.js | 5 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.map | 4 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.md5 | 1 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.svg | 37 + d4/d99/ode__semi__implicit__euler_8c.html | 522 +++++ d4/d99/ode__semi__implicit__euler_8c.js | 9 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.map | 7 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.md5 | 1 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.svg | 82 + ...20b7e995d2bbc615f94a2c7dbcf84eb_cgraph.map | 4 + ...20b7e995d2bbc615f94a2c7dbcf84eb_cgraph.md5 | 1 + ...20b7e995d2bbc615f94a2c7dbcf84eb_cgraph.svg | 37 + ...80059877222f885b549f2d0a3dc6b55_cgraph.map | 5 + ...80059877222f885b549f2d0a3dc6b55_cgraph.md5 | 1 + ...80059877222f885b549f2d0a3dc6b55_cgraph.svg | 52 + d4/dbd/problem__23_2sol2_8c.html | 457 +++++ d4/dbd/problem__23_2sol2_8c.js | 10 + ...ab61b5a1c4f2288625d160aa0ea8478_cgraph.map | 5 + ...ab61b5a1c4f2288625d160aa0ea8478_cgraph.md5 | 1 + ...ab61b5a1c4f2288625d160aa0ea8478_cgraph.svg | 58 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 7 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 88 + ...5d600bf3077f4188afc4c5cd2c40eaf_cgraph.map | 4 + ...5d600bf3077f4188afc4c5cd2c40eaf_cgraph.md5 | 1 + ...5d600bf3077f4188afc4c5cd2c40eaf_cgraph.svg | 37 + d4/dcb/md_hash__r_e_a_d_m_e.html | 116 ++ d4/dd4/struct_graph.html | 161 ++ d4/dd4/struct_graph.js | 13 + d4/dea/problem__14_2sol1_8c.html | 242 +++ d4/dea/problem__14_2sol1_8c.js | 5 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 4 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 37 + d4/dfe/struct_dict.html | 124 ++ d4/dfe/struct_dict.js | 5 + d5/d23/qr__decomposition_8c.html | 224 +++ d5/d23/qr__decomposition_8c.js | 4 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.map | 9 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.md5 | 1 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.svg | 124 ++ d5/d3e/problem__3_2sol2_8c__incl.map | 4 + d5/d3e/problem__3_2sol2_8c__incl.md5 | 1 + d5/d3e/problem__3_2sol2_8c__incl.svg | 38 + d5/d51/problem__25_2sol1_8c__incl.map | 8 + d5/d51/problem__25_2sol1_8c__incl.md5 | 1 + d5/d51/problem__25_2sol1_8c__incl.svg | 98 + d5/d7e/struct_t.html | 130 ++ d5/d7e/struct_t.js | 5 + d5/d88/md__d_i_r_e_c_t_o_r_y.html | 578 ++++++ d5/da1/structnode.html | 183 ++ d5/da1/structnode.js | 17 + d5/db4/struct_edge.html | 138 ++ d5/db4/struct_edge.js | 9 + d6/d1b/sol4_8c.html | 172 ++ d6/d1b/sol4_8c.js | 4 + d6/d3d/factorial__large__number_8c.html | 405 ++++ d6/d3d/factorial__large__number_8c.js | 10 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.map | 7 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.md5 | 1 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.svg | 88 + ...398ddbd594ca69a5e6dfc894925341e_cgraph.map | 5 + ...398ddbd594ca69a5e6dfc894925341e_cgraph.md5 | 1 + ...398ddbd594ca69a5e6dfc894925341e_cgraph.svg | 52 + ...2869d36c22a2b8f93d3166a84e124b3_cgraph.map | 4 + ...2869d36c22a2b8f93d3166a84e124b3_cgraph.md5 | 1 + ...2869d36c22a2b8f93d3166a84e124b3_cgraph.svg | 37 + d6/d42/problem__22_2sol1_8c__incl.map | 7 + d6/d42/problem__22_2sol1_8c__incl.md5 | 1 + d6/d42/problem__22_2sol1_8c__incl.svg | 83 + d6/d42/structdynamic__array.html | 127 ++ d6/d42/structdynamic__array.js | 6 + d6/d48/isogram_8h_source.html | 117 ++ d6/d6d/struct_graph__coll__graph.map | 5 + d6/d6d/struct_graph__coll__graph.md5 | 1 + d6/d6d/struct_graph__coll__graph.svg | 69 + d6/d88/problem__16_2sol1_8c.html | 215 ++ d6/d88/problem__16_2sol1_8c.js | 4 + d6/de3/sol3_8c.html | 190 ++ d6/de3/sol3_8c.js | 4 + d6/ded/shell__sort2_8c.html | 342 ++++ d6/ded/shell__sort2_8c.js | 8 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.map | 5 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.md5 | 1 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.svg | 52 + d6/df3/graph_8h_source.html | 163 ++ d7/d0a/fibonacci__fast_8c__incl.map | 6 + d7/d0a/fibonacci__fast_8c__incl.md5 | 1 + d7/d0a/fibonacci__fast_8c__incl.svg | 67 + d7/d1f/problem__12_2sol1_8c.html | 224 +++ d7/d1f/problem__12_2sol1_8c.js | 5 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 4 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 37 + d7/d50/qr__eigen__values_8c.html | 726 +++++++ d7/d50/qr__eigen__values_8c.js | 11 + ...283886819c7c140a023582b7269e2d0_cgraph.map | 11 + ...283886819c7c140a023582b7269e2d0_cgraph.md5 | 1 + ...283886819c7c140a023582b7269e2d0_cgraph.svg | 154 ++ ...d8ed79786d17df48396b333c09d05bb_cgraph.map | 10 + ...d8ed79786d17df48396b333c09d05bb_cgraph.md5 | 1 + ...d8ed79786d17df48396b333c09d05bb_cgraph.svg | 139 ++ ...440a7779ac56f47a3f355ce4a8c7da0_cgraph.map | 11 + ...440a7779ac56f47a3f355ce4a8c7da0_cgraph.md5 | 1 + ...440a7779ac56f47a3f355ce4a8c7da0_cgraph.svg | 154 ++ ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 14 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 305 +++ ...38a5bfe5d72780bb7e82a18e627_cgraph_org.svg | 217 +++ d7/d86/struct__big__int__coll__graph.map | 3 + d7/d86/struct__big__int__coll__graph.md5 | 1 + d7/d86/struct__big__int__coll__graph.svg | 30 + d7/d90/rna__transcription_8h_source.html | 116 ++ d7/d91/problem__15_2sol1_8c.html | 212 ++ d7/d91/problem__15_2sol1_8c.js | 5 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 4 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 37 + d7/dac/problem__9_2sol1_8c__incl.map | 4 + d7/dac/problem__9_2sol1_8c__incl.md5 | 1 + d7/dac/problem__9_2sol1_8c__incl.svg | 38 + d7/db5/md_exercism__r_e_a_d_m_e.html | 119 ++ d7/dd3/problem__3_2sol1_8c.html | 240 +++ d7/dd3/problem__3_2sol1_8c.js | 5 + ...66f6b31b5ad750f1fe042a706a4e3d4_cgraph.map | 4 + ...66f6b31b5ad750f1fe042a706a4e3d4_cgraph.md5 | 1 + ...66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg | 37 + d7/dd8/c__atoi__str__to__integer_8c.html | 361 ++++ d7/dd8/c__atoi__str__to__integer_8c.js | 6 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 4 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 37 + ...ef225390e0b6e84ddfcb18fe573d9c5_cgraph.map | 4 + ...ef225390e0b6e84ddfcb18fe573d9c5_cgraph.md5 | 1 + ...ef225390e0b6e84ddfcb18fe573d9c5_cgraph.svg | 37 + d7/ddb/problem__23_2sol1_8c.html | 384 ++++ d7/ddb/problem__23_2sol1_8c.js | 9 + ...ab61b5a1c4f2288625d160aa0ea8478_cgraph.map | 6 + ...ab61b5a1c4f2288625d160aa0ea8478_cgraph.md5 | 1 + ...ab61b5a1c4f2288625d160aa0ea8478_cgraph.svg | 73 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 7 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 176 ++ ...38a5bfe5d72780bb7e82a18e627_cgraph_org.svg | 88 + ...f128410e6582fe26488e2316cc96e17_cgraph.map | 4 + ...f128410e6582fe26488e2316cc96e17_cgraph.md5 | 1 + ...f128410e6582fe26488e2316cc96e17_cgraph.svg | 37 + ...5d600bf3077f4188afc4c5cd2c40eaf_cgraph.map | 5 + ...5d600bf3077f4188afc4c5cd2c40eaf_cgraph.md5 | 1 + ...5d600bf3077f4188afc4c5cd2c40eaf_cgraph.svg | 52 + d7/de0/stack_8h_source.html | 157 ++ d7/ded/problem__10_2sol2_8c__incl.map | 6 + d7/ded/problem__10_2sol2_8c__incl.md5 | 1 + d7/ded/problem__10_2sol2_8c__incl.svg | 68 + d8/d11/newton__raphson__root_8c__incl.map | 9 + d8/d11/newton__raphson__root_8c__incl.md5 | 1 + d8/d11/newton__raphson__root_8c__incl.svg | 113 ++ d8/d32/problem__25_2sol1_8c.html | 385 ++++ d8/d32/problem__25_2sol1_8c.js | 8 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.map | 5 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.md5 | 1 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.svg | 52 + d8/d38/queue_8h_source.html | 150 ++ d8/d48/problem__10_2sol1_8c__incl.map | 6 + d8/d48/problem__10_2sol1_8c__incl.md5 | 1 + d8/d48/problem__10_2sol1_8c__incl.svg | 68 + d8/d6a/problem__8_2sol1_8c__incl.map | 5 + d8/d6a/problem__8_2sol1_8c__incl.md5 | 1 + d8/d6a/problem__8_2sol1_8c__incl.svg | 53 + d8/d7a/structtnode.html | 136 ++ d8/d7a/structtnode.js | 7 + d8/d7c/dict_8h_source.html | 194 ++ d8/d81/md_project_euler__r_e_a_d_m_e.html | 123 ++ d8/da2/dynamic__array_8h_source.html | 139 ++ d8/de0/problem__9_2sol2_8c.html | 176 ++ d8/de0/problem__9_2sol2_8c.js | 4 + ...md_data_structures_array__r_e_a_d_m_e.html | 126 ++ d9/d5c/struct_queue_rep__coll__graph.map | 4 + d9/d5c/struct_queue_rep__coll__graph.md5 | 1 + d9/d5c/struct_queue_rep__coll__graph.svg | 53 + d9/d75/problem__15_2sol1_8c__incl.map | 6 + d9/d75/problem__15_2sol1_8c__incl.md5 | 1 + d9/d75/problem__15_2sol1_8c__incl.svg | 68 + d9/d7e/problem__20_2sol1_8c__incl.map | 6 + d9/d7e/problem__20_2sol1_8c__incl.md5 | 1 + d9/d7e/problem__20_2sol1_8c__incl.svg | 68 + .../ode__semi__implicit__euler_8c__incl.map | 7 + .../ode__semi__implicit__euler_8c__incl.md5 | 1 + .../ode__semi__implicit__euler_8c__incl.svg | 83 + d9/da7/problem__10_2sol2_8c.html | 207 ++ d9/da7/problem__10_2sol2_8c.js | 4 + d9/dcc/adaline__learning_8c__incl.map | 10 + d9/dcc/adaline__learning_8c__incl.md5 | 1 + d9/dcc/adaline__learning_8c__incl.svg | 128 ++ da/d23/list_8h_source.html | 144 ++ da/d35/problem__1_2sol1_8c.html | 173 ++ da/d35/problem__1_2sol1_8c.js | 4 + da/d38/durand__kerner__roots_8c.html | 494 +++++ da/d38/durand__kerner__roots_8c.js | 8 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 6 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 67 + .../stack__linked__list_2stack_8h_source.html | 125 ++ da/d9b/struct_trie_node.html | 133 ++ da/d9b/struct_trie_node.js | 6 + da/de2/shell__sort2_8c__incl.map | 6 + da/de2/shell__sort2_8c__incl.md5 | 1 + da/de2/shell__sort2_8c__incl.svg | 67 + da/dfd/kohonen__som__trace_8c__incl.map | 7 + da/dfd/kohonen__som__trace_8c__incl.md5 | 1 + da/dfd/kohonen__som__trace_8c__incl.svg | 83 + db/d01/problem__13_2sol1_8c.html | 435 +++++ db/d01/problem__13_2sol1_8c.js | 9 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.map | 6 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.md5 | 1 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.svg | 67 + db/d17/structtnode__coll__graph.map | 3 + db/d17/structtnode__coll__graph.md5 | 1 + db/d17/structtnode__coll__graph.svg | 31 + db/d28/struct_t__coll__graph.map | 4 + db/d28/struct_t__coll__graph.md5 | 1 + db/d28/struct_t__coll__graph.svg | 45 + db/d45/qr__decomposition_8c__incl.map | 8 + db/d45/qr__decomposition_8c__incl.md5 | 1 + db/d45/qr__decomposition_8c__incl.svg | 116 ++ db/d50/problem__4_2sol_8c__incl.map | 4 + db/d50/problem__4_2sol_8c__incl.md5 | 1 + db/d50/problem__4_2sol_8c__incl.svg | 38 + db/d74/problem__13_2sol1_8c__incl.map | 7 + db/d74/problem__13_2sol1_8c__incl.md5 | 1 + db/d74/problem__13_2sol1_8c__incl.svg | 83 + db/d80/problem__20_2sol1_8c.html | 404 ++++ db/d80/problem__20_2sol1_8c.js | 8 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 5 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 52 + db/d83/problem__12_2sol1_8c__incl.map | 6 + db/d83/problem__12_2sol1_8c__incl.md5 | 1 + db/d83/problem__12_2sol1_8c__incl.svg | 68 + db/d8b/struct_node.html | 183 ++ db/d8b/struct_node.js | 7 + db/dd8/problem__26_2sol1_8c__incl.map | 7 + db/dd8/problem__26_2sol1_8c__incl.md5 | 1 + db/dd8/problem__26_2sol1_8c__incl.svg | 83 + db/ddb/hello__world_8h_source.html | 115 ++ db/dfb/hash_8h_source.html | 160 ++ db/dff/durand__kerner__roots_8c__incl.map | 10 + db/dff/durand__kerner__roots_8c__incl.md5 | 1 + db/dff/durand__kerner__roots_8c__incl.svg | 128 ++ dc/d23/problem__23_2sol2_8c__incl.map | 6 + dc/d23/problem__23_2sol2_8c__incl.md5 | 1 + dc/d23/problem__23_2sol2_8c__incl.svg | 68 + dc/d2e/lu__decompose_8c.html | 357 ++++ dc/d2e/lu__decompose_8c.js | 6 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 5 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 52 + dc/d47/realtime__stats_8c.html | 432 ++++ dc/d47/realtime__stats_8c.js | 7 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 6 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 79 + ...54c915581fcc495489175a4386d59fd_cgraph.map | 5 + ...54c915581fcc495489175a4386d59fd_cgraph.md5 | 1 + ...54c915581fcc495489175a4386d59fd_cgraph.svg | 52 + dc/d52/problem__16_2sol1_8c__incl.map | 7 + dc/d52/problem__16_2sol1_8c__incl.md5 | 1 + dc/d52/problem__16_2sol1_8c__incl.svg | 83 + dc/d55/problem__14_2sol1_8c__incl.map | 5 + dc/d55/problem__14_2sol1_8c__incl.md5 | 1 + dc/d55/problem__14_2sol1_8c__incl.svg | 53 + dc/d5f/qr__decompose_8h__dep__incl.map | 5 + dc/d5f/qr__decompose_8h__dep__incl.md5 | 1 + dc/d5f/qr__decompose_8h__dep__incl.svg | 55 + dc/d63/problem__8_2sol1_8c.html | 311 +++ dc/d63/problem__8_2sol1_8c.js | 5 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.map | 4 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.md5 | 1 + ...ddf1224851353fc92bfbff6f499fa97_cgraph.svg | 37 + dc/d64/md__coding_guidelines.html | 124 ++ dc/d77/struct__big__int.html | 164 ++ dc/d77/struct__big__int.js | 6 + dc/d80/collatz_8c.html | 184 ++ dc/d80/collatz_8c.js | 4 + dc/dd4/kohonen__som__topology_8c__incl.map | 7 + dc/dd4/kohonen__som__topology_8c__incl.md5 | 1 + dc/dd4/kohonen__som__topology_8c__incl.svg | 83 + dc/de3/hash__set_8h_source.html | 147 ++ dc/de5/structsubset.html | 124 ++ dc/de5/structsubset.js | 5 + dd/d08/newton__raphson__root_8c.html | 282 +++ dd/d08/newton__raphson__root_8c.js | 7 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 5 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 52 + dd/d10/struct_stack.html | 125 ++ dd/d10/struct_stack.js | 5 + dd/d24/problem__19_2sol1_8c__incl.map | 4 + dd/d24/problem__19_2sol1_8c__incl.md5 | 1 + dd/d24/problem__19_2sol1_8c__incl.svg | 38 + dd/d75/structqueue__coll__graph.map | 4 + dd/d75/structqueue__coll__graph.md5 | 1 + dd/d75/structqueue__coll__graph.svg | 53 + dd/d77/so1_8c__incl.map | 4 + dd/d77/so1_8c__incl.md5 | 1 + dd/d77/so1_8c__incl.svg | 38 + dd/d8b/problem__22_2sol1_8c.html | 398 ++++ dd/d8b/problem__22_2sol1_8c.js | 8 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 5 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 52 + dd/d8c/adaline__learning_8c.html | 841 ++++++++ dd/d8c/adaline__learning_8c.js | 17 + ...5cc9a0acb524fde727a4d7b4a747ee6_cgraph.map | 9 + ...5cc9a0acb524fde727a4d7b4a747ee6_cgraph.md5 | 1 + ...5cc9a0acb524fde727a4d7b4a747ee6_cgraph.svg | 112 ++ ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 12 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 217 +++ ...f37b9f073f7e57fd0b39d70718af1b1_cgraph.map | 9 + ...f37b9f073f7e57fd0b39d70718af1b1_cgraph.md5 | 1 + ...f37b9f073f7e57fd0b39d70718af1b1_cgraph.svg | 112 ++ ...db1ba00a7f282100ea31a94e32bd7a3_cgraph.map | 4 + ...db1ba00a7f282100ea31a94e32bd7a3_cgraph.md5 | 1 + ...db1ba00a7f282100ea31a94e32bd7a3_cgraph.svg | 37 + ...4ecb3accf5d9e0263087e7265bbe3a9_cgraph.map | 9 + ...4ecb3accf5d9e0263087e7265bbe3a9_cgraph.md5 | 1 + ...4ecb3accf5d9e0263087e7265bbe3a9_cgraph.svg | 112 ++ ...a953e811eaae199d121a7ddb619d604_cgraph.map | 5 + ...a953e811eaae199d121a7ddb619d604_cgraph.md5 | 1 + ...a953e811eaae199d121a7ddb619d604_cgraph.svg | 52 + dd/d95/word__count_8h_source.html | 138 ++ dd/df0/problem__19_2sol1_8c.html | 299 +++ dd/df0/problem__19_2sol1_8c.js | 6 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 5 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 52 + dd/df2/problem__1_2sol2_8c__incl.map | 4 + dd/df2/problem__1_2sol2_8c__incl.md5 | 1 + dd/df2/problem__1_2sol2_8c__incl.svg | 38 + de/d08/structcontour__coll__graph.map | 3 + de/d08/structcontour__coll__graph.md5 | 1 + de/d08/structcontour__coll__graph.svg | 29 + ...ta_structures_dictionary__r_e_a_d_m_e.html | 126 ++ de/d4e/lu__decompose_8c__incl.map | 6 + de/d4e/lu__decompose_8c__incl.md5 | 1 + de/d4e/lu__decompose_8c__incl.svg | 68 + de/dce/structmin__heap.html | 127 ++ de/dce/structmin__heap.js | 6 + df/d1a/problem__21_2sol1_8c.html | 270 +++ df/d1a/problem__21_2sol1_8c.js | 5 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.map | 4 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 | 1 + ...c04138a5bfe5d72780bb7e82a18e627_cgraph.svg | 37 + df/d29/problem__7_2sol_8c__incl.map | 5 + df/d29/problem__7_2sol_8c__incl.md5 | 1 + df/d29/problem__7_2sol_8c__incl.svg | 53 + df/d3c/threaded__binary__trees_8c.html | 609 ++++++ df/d3c/threaded__binary__trees_8c.js | 13 + ...23432888332fc9f0aa6072cff28c3bb_cgraph.map | 4 + ...23432888332fc9f0aa6072cff28c3bb_cgraph.md5 | 1 + ...23432888332fc9f0aa6072cff28c3bb_cgraph.svg | 37 + ...66f6b31b5ad750f1fe042a706a4e3d4_cgraph.map | 10 + ...66f6b31b5ad750f1fe042a706a4e3d4_cgraph.md5 | 1 + ...66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg | 127 ++ df/d58/md_leetcode__r_e_a_d_m_e.html | 285 +++ df/da5/problem__9_2sol1_8c.html | 166 ++ df/da5/problem__9_2sol1_8c.js | 4 + df/db0/factorial__large__number_8c__incl.map | 6 + df/db0/factorial__large__number_8c__incl.md5 | 1 + df/db0/factorial__large__number_8c__incl.svg | 68 + df/db3/struct_l.html | 130 ++ df/db3/struct_l.js | 5 + df/dbc/problem__6_2sol_8c__incl.map | 4 + df/dbc/problem__6_2sol_8c__incl.md5 | 1 + df/dbc/problem__6_2sol_8c__incl.svg | 38 + df/dc6/acronym_8h_source.html | 120 ++ df/dda/ode__midpoint__euler_8c__incl.map | 7 + df/dda/ode__midpoint__euler_8c__incl.md5 | 1 + df/dda/ode__midpoint__euler_8c__incl.svg | 83 + df/ddb/structword__count__word.html | 124 ++ df/ddb/structword__count__word.js | 5 + df/ddc/struct_node__coll__graph.map | 3 + df/ddc/struct_node__coll__graph.md5 | 1 + df/ddc/struct_node__coll__graph.svg | 31 + df/de7/problem__5_2sol_8c.html | 254 +++ df/de7/problem__5_2sol_8c.js | 6 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.map | 5 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.md5 | 1 + ...40291bc02cba5474a4cb46a9b9566fe_cgraph.svg | 52 + ...9606f1867e9921867d6572f51377b4c_cgraph.map | 4 + ...9606f1867e9921867d6572f51377b4c_cgraph.md5 | 1 + ...9606f1867e9921867d6572f51377b4c_cgraph.svg | 37 + df/dea/structdata.html | 124 ++ df/dea/structdata.js | 5 + dir_03902f230b9e9b7c999f936617a23997.html | 113 ++ dir_0472225043064b54f3dfff9011a9fae0.html | 109 ++ dir_0472225043064b54f3dfff9011a9fae0.js | 4 + dir_079e1f799fb08a8a0b98cb030ab15687.html | 116 ++ dir_079e1f799fb08a8a0b98cb030ab15687.js | 4 + dir_0bc3e2a5baf077fa21dadc079776fcac.html | 116 ++ dir_0bc3e2a5baf077fa21dadc079776fcac.js | 4 + dir_167af11096b7752ff31b3d4bec489317.html | 116 ++ dir_167af11096b7752ff31b3d4bec489317.js | 4 + dir_16b947d8e9a05fe119d0675493324331.html | 119 ++ dir_16b947d8e9a05fe119d0675493324331.js | 5 + dir_16e00c78ef36d1842d0d8a4afc46b852.html | 116 ++ dir_16e00c78ef36d1842d0d8a4afc46b852.js | 4 + dir_1833eb69ceee7a265ffba4c38c8243d2.html | 116 ++ dir_1833eb69ceee7a265ffba4c38c8243d2.js | 4 + dir_18cba55772148686552805a354a79093.html | 116 ++ dir_18cba55772148686552805a354a79093.js | 4 + dir_2176ba3565d8b1fe2a106d18679cc7bf.html | 113 ++ dir_2176ba3565d8b1fe2a106d18679cc7bf.js | 5 + dir_261dd1200fad5b2fe1eca9af8320656e.html | 109 ++ dir_2abe2c0880d3fb0dba0f784bee3fc9e0.html | 116 ++ dir_2abe2c0880d3fb0dba0f784bee3fc9e0.js | 4 + dir_2b14f32f14b51065d3a322bea21da3c0.html | 116 ++ dir_2b14f32f14b51065d3a322bea21da3c0.js | 4 + dir_2e746e9d06bf2d8ff842208bcc6ebcfc.html | 113 ++ dir_2e746e9d06bf2d8ff842208bcc6ebcfc.js | 11 + dir_2f070f19f76dfadabbc24fe483d7e98d.html | 116 ++ dir_2f070f19f76dfadabbc24fe483d7e98d.js | 4 + dir_2fede762f95c9c526850a639b984c56b.html | 109 ++ dir_2fede762f95c9c526850a639b984c56b.js | 5 + dir_32e2b2b829773774d6890224447e777d.html | 109 ++ dir_3343723ae086de42ee4ca9774da3a13f.html | 122 ++ dir_3343723ae086de42ee4ca9774da3a13f.js | 6 + dir_3c8f35d77556eca8a7a90921c2c197ad.html | 109 ++ dir_4500de955d1eddb82f69331d96e39ed9.html | 109 ++ dir_4500de955d1eddb82f69331d96e39ed9.js | 4 + dir_475f56e0a4ef6254f5610544d8d68aa3.html | 109 ++ dir_475f56e0a4ef6254f5610544d8d68aa3.js | 4 + dir_48bf5503321d91c557399989fed5dabd.html | 113 ++ dir_48bf5503321d91c557399989fed5dabd.js | 8 + dir_4991c92e00761dd3d764efa2906b4318.html | 116 ++ dir_4991c92e00761dd3d764efa2906b4318.js | 4 + dir_4a15c8553efb9e59e3f1091cc0d3a27d.html | 119 ++ dir_4a15c8553efb9e59e3f1091cc0d3a27d.js | 5 + dir_4bae997a2671812c2140d5abfb6305a4.html | 116 ++ dir_4bae997a2671812c2140d5abfb6305a4.js | 4 + dir_607f15d36c772334f988bb9ef82d102c.html | 116 ++ dir_607f15d36c772334f988bb9ef82d102c.js | 4 + dir_614f310c248f2b9541b559085cafcb40.html | 109 ++ dir_72aaf47615111200018c039a56ef48be.html | 109 ++ dir_72aaf47615111200018c039a56ef48be.js | 4 + dir_7445e5a68245b48f3c03982b6d501815.html | 109 ++ dir_7445e5a68245b48f3c03982b6d501815.js | 4 + dir_76784a7b04633629b9ecb5543b9ad889.html | 109 ++ dir_76784a7b04633629b9ecb5543b9ad889.js | 4 + dir_81f43aa0067826ea5befe80cd7aefcc5.html | 109 ++ dir_81f43aa0067826ea5befe80cd7aefcc5.js | 4 + dir_8c6743d405e8ed13cc39f42e382307fd.html | 125 ++ dir_8c6743d405e8ed13cc39f42e382307fd.js | 7 + dir_955029374964e51cf770754b424e7d39.html | 109 ++ dir_955029374964e51cf770754b424e7d39.js | 4 + dir_9babc524d57e25f3d9f4179cabc3599e.html | 116 ++ dir_9babc524d57e25f3d9f4179cabc3599e.js | 4 + dir_9c6faab82c22511b50177aa2e38e2780.html | 143 ++ dir_9c6faab82c22511b50177aa2e38e2780.js | 13 + dir_a4300992e825aa9b9238bf43160a241e.html | 109 ++ dir_a52f4d3d586a58b02f3a4ddf0a992157.html | 122 ++ dir_a52f4d3d586a58b02f3a4ddf0a992157.js | 6 + dir_aba97bf327db94061e830e9bc18e925d.html | 116 ++ dir_aba97bf327db94061e830e9bc18e925d.js | 4 + dir_b2dbfa46230fd9f775c32c1836ed3764.html | 119 ++ dir_b2dbfa46230fd9f775c32c1836ed3764.js | 5 + dir_b3d331eabd4234f247030c297aaf021c.html | 113 ++ dir_b3d331eabd4234f247030c297aaf021c.js | 26 + dir_b6018f60d424a2ef7e4c942ac681e38b.html | 109 ++ dir_b6018f60d424a2ef7e4c942ac681e38b.js | 4 + dir_bb1b521853a9c46347182a9d10420771.html | 116 ++ dir_bb1b521853a9c46347182a9d10420771.js | 4 + dir_bd4a7dd282074645ef41b1ea31ac813a.html | 109 ++ dir_bd4a7dd282074645ef41b1ea31ac813a.js | 4 + dir_c7ef0fcb2f2095a74f0a3a1634dfc798.html | 109 ++ dir_c7ef0fcb2f2095a74f0a3a1634dfc798.js | 4 + dir_d20ad0b8de644c123692ba5582cc7a7b.html | 109 ++ dir_d4c35186c199e728d69dee6bf5b2473c.html | 119 ++ dir_d4c35186c199e728d69dee6bf5b2473c.js | 5 + dir_d9112ab06cf4d4e5a25d385a268d1949.html | 116 ++ dir_d9112ab06cf4d4e5a25d385a268d1949.js | 4 + dir_d9e100c82ada2163abea49688a71e81c.html | 116 ++ dir_d9e100c82ada2163abea49688a71e81c.js | 4 + dir_da574daf9ce9c05b45556bdc871ed1e3.html | 113 ++ dir_e39df94f82619fa5256f1786519937be.html | 116 ++ dir_e39df94f82619fa5256f1786519937be.js | 4 + dir_eeeea13e3a5e5edad3499183767ce312.html | 116 ++ dir_eeeea13e3a5e5edad3499183767ce312.js | 4 + dir_f75ccd45e00436eafed446b9b2682984.html | 119 ++ dir_f75ccd45e00436eafed446b9b2682984.js | 5 + dir_f7d3c03fcac84aef1b0c66cc497ed1ea.html | 116 ++ dir_f7d3c03fcac84aef1b0c66cc497ed1ea.js | 4 + dir_fbc6c771d18f1a35ad2bd30260ea0fc8.html | 109 ++ dir_fe5d69ed7d90cb356556070c2a2e5478.html | 109 ++ dir_fe5d69ed7d90cb356556070c2a2e5478.js | 4 + doc.png | Bin 0 -> 746 bytes doxygen.css | 1730 +++++++++++++++++ doxygen.png | Bin 0 -> 3779 bytes dynsections.js | 121 ++ files.html | 223 +++ files_dup.js | 12 + folderclosed.png | Bin 0 -> 616 bytes folderopen.png | Bin 0 -> 597 bytes functions.html | 146 ++ functions_vars.html | 146 ++ globals.html | 625 ++++++ globals_defs.html | 161 ++ globals_func.html | 539 +++++ globals_type.html | 115 ++ globals_vars.html | 113 ++ graph_legend.html | 168 ++ graph_legend.md5 | 1 + graph_legend.svg | 117 ++ index.html | 119 ++ jquery.js | 35 + menu.js | 51 + menudata.js | 81 + nav_f.png | Bin 0 -> 153 bytes nav_g.png | Bin 0 -> 95 bytes nav_h.png | Bin 0 -> 98 bytes navtree.css | 146 ++ navtree.js | 546 ++++++ navtreedata.js | 87 + navtreeindex0.js | 253 +++ navtreeindex1.js | 253 +++ navtreeindex2.js | 4 + open.png | Bin 0 -> 123 bytes pages.html | 121 ++ resize.js | 140 ++ search/all_0.html | 36 + search/all_0.js | 7 + search/all_1.html | 36 + search/all_1.js | 13 + search/all_10.html | 36 + search/all_10.js | 9 + search/all_11.html | 36 + search/all_11.js | 6 + search/all_12.html | 36 + search/all_12.js | 29 + search/all_13.html | 36 + search/all_13.js | 19 + search/all_14.html | 36 + search/all_14.js | 4 + search/all_15.html | 36 + search/all_15.js | 7 + search/all_16.html | 36 + search/all_16.js | 5 + search/all_2.html | 36 + search/all_2.js | 5 + search/all_3.html | 36 + search/all_3.js | 16 + search/all_4.html | 36 + search/all_4.js | 18 + search/all_5.html | 36 + search/all_5.js | 9 + search/all_6.html | 36 + search/all_6.js | 11 + search/all_7.html | 36 + search/all_7.js | 17 + search/all_8.html | 36 + search/all_8.js | 5 + search/all_9.html | 36 + search/all_9.js | 12 + search/all_a.html | 36 + search/all_a.js | 7 + search/all_b.html | 36 + search/all_b.js | 13 + search/all_c.html | 36 + search/all_c.js | 20 + search/all_d.html | 36 + search/all_d.js | 13 + search/all_e.html | 36 + search/all_e.js | 7 + search/all_f.html | 36 + search/all_f.js | 13 + search/classes_0.html | 36 + search/classes_0.js | 5 + search/classes_1.html | 36 + search/classes_1.js | 6 + search/classes_2.html | 36 + search/classes_2.js | 4 + search/classes_3.html | 36 + search/classes_3.js | 5 + search/classes_4.html | 36 + search/classes_4.js | 6 + search/classes_5.html | 36 + search/classes_5.js | 5 + search/classes_6.html | 36 + search/classes_6.js | 5 + search/classes_7.html | 36 + search/classes_7.js | 4 + search/classes_8.html | 36 + search/classes_8.js | 4 + search/classes_9.html | 36 + search/classes_9.js | 5 + search/classes_a.html | 36 + search/classes_a.js | 4 + search/classes_b.html | 36 + search/classes_b.js | 4 + search/classes_c.html | 36 + search/classes_c.js | 5 + search/classes_d.html | 36 + search/classes_d.js | 5 + search/classes_e.html | 36 + search/classes_e.js | 6 + search/classes_f.html | 36 + search/classes_f.js | 4 + search/close.png | Bin 0 -> 273 bytes search/defines_0.html | 36 + search/defines_0.js | 4 + search/defines_1.html | 36 + search/defines_1.js | 4 + search/defines_2.html | 36 + search/defines_2.js | 4 + search/defines_3.html | 36 + search/defines_3.js | 4 + search/defines_4.html | 36 + search/defines_4.js | 12 + search/defines_5.html | 36 + search/defines_5.js | 5 + search/defines_6.html | 36 + search/defines_6.js | 4 + search/files_0.html | 36 + search/files_0.js | 4 + search/files_1.html | 36 + search/files_1.js | 5 + search/files_2.html | 36 + search/files_2.js | 4 + search/files_3.html | 36 + search/files_3.js | 5 + search/files_4.html | 36 + search/files_4.js | 5 + search/files_5.html | 36 + search/files_5.js | 4 + search/files_6.html | 36 + search/files_6.js | 4 + search/files_7.html | 36 + search/files_7.js | 6 + search/files_8.html | 36 + search/files_8.js | 6 + search/files_9.html | 36 + search/files_9.js | 4 + search/files_a.html | 36 + search/files_a.js | 10 + search/files_b.html | 36 + search/files_b.js | 4 + search/functions_0.html | 36 + search/functions_0.js | 4 + search/functions_1.html | 36 + search/functions_1.js | 6 + search/functions_10.html | 36 + search/functions_10.js | 14 + search/functions_11.html | 36 + search/functions_11.js | 4 + search/functions_12.html | 36 + search/functions_12.js | 7 + search/functions_2.html | 36 + search/functions_2.js | 11 + search/functions_3.html | 36 + search/functions_3.js | 9 + search/functions_4.html | 36 + search/functions_4.js | 5 + search/functions_5.html | 36 + search/functions_5.js | 9 + search/functions_6.html | 36 + search/functions_6.js | 15 + search/functions_7.html | 36 + search/functions_7.js | 12 + search/functions_8.html | 36 + search/functions_8.js | 5 + search/functions_9.html | 36 + search/functions_9.js | 6 + search/functions_a.html | 36 + search/functions_a.js | 8 + search/functions_b.html | 36 + search/functions_b.js | 6 + search/functions_c.html | 36 + search/functions_c.js | 10 + search/functions_d.html | 36 + search/functions_d.js | 4 + search/functions_e.html | 36 + search/functions_e.js | 4 + search/functions_f.html | 36 + search/functions_f.js | 18 + search/mag_sel.png | Bin 0 -> 465 bytes search/nomatches.html | 12 + search/pages_0.html | 36 + search/pages_0.js | 4 + search/pages_1.html | 36 + search/pages_1.js | 4 + search/pages_2.html | 36 + search/pages_2.js | 4 + search/pages_3.html | 36 + search/pages_3.js | 4 + search/pages_4.html | 36 + search/pages_4.js | 5 + search/pages_5.html | 36 + search/pages_5.js | 4 + search/pages_6.html | 36 + search/pages_6.js | 5 + search/pages_7.html | 36 + search/pages_7.js | 4 + search/search.css | 271 +++ search/search.js | 814 ++++++++ search/search_l.png | Bin 0 -> 567 bytes search/search_m.png | Bin 0 -> 158 bytes search/search_r.png | Bin 0 -> 553 bytes search/searchdata.js | 36 + search/typedefs_0.html | 36 + search/typedefs_0.js | 4 + search/typedefs_1.html | 36 + search/typedefs_1.js | 4 + search/typedefs_2.html | 36 + search/typedefs_2.js | 4 + search/variables_0.html | 36 + search/variables_0.js | 4 + search/variables_1.html | 36 + search/variables_1.js | 8 + search/variables_2.html | 36 + search/variables_2.js | 4 + search/variables_3.html | 36 + search/variables_3.js | 4 + search/variables_4.html | 36 + search/variables_4.js | 4 + search/variables_5.html | 36 + search/variables_5.js | 6 + search/variables_6.html | 36 + search/variables_6.js | 4 + search/variables_7.html | 36 + search/variables_7.js | 4 + search/variables_8.html | 36 + search/variables_8.js | 4 + splitbar.png | Bin 0 -> 314 bytes svgpan.js | 323 +++ sync_off.png | Bin 0 -> 853 bytes sync_on.png | Bin 0 -> 845 bytes tab_a.png | Bin 0 -> 142 bytes tab_b.png | Bin 0 -> 169 bytes tab_h.png | Bin 0 -> 177 bytes tab_s.png | Bin 0 -> 184 bytes tabs.css | 1 + 945 files changed, 55841 insertions(+) create mode 100644 annotated.html create mode 100644 annotated_dup.js create mode 100644 bc_s.png create mode 100644 bdwn.png create mode 100644 classes.html create mode 100644 closed.png create mode 100644 d0/d04/qr__decompose_8h__incl.map create mode 100644 d0/d04/qr__decompose_8h__incl.md5 create mode 100644 d0/d04/qr__decompose_8h__incl.svg create mode 100644 d0/d10/struct_queue_rep.html create mode 100644 d0/d10/struct_queue_rep.js create mode 100644 d0/d1f/structnode__coll__graph.map create mode 100644 d0/d1f/structnode__coll__graph.md5 create mode 100644 d0/d1f/structnode__coll__graph.svg create mode 100644 d0/d3d/problem__8_2sol2_8c__incl.map create mode 100644 d0/d3d/problem__8_2sol2_8c__incl.md5 create mode 100644 d0/d3d/problem__8_2sol2_8c__incl.svg create mode 100644 d0/d43/structpid.html create mode 100644 d0/d43/structpid.js create mode 100644 d0/d46/kohonen__som__trace_8c.html create mode 100644 d0/d46/kohonen__som__trace_8c.js create mode 100644 d0/d46/kohonen__som__trace_8c_a107f00650b8041f77767927073ddddb8_cgraph.map create mode 100644 d0/d46/kohonen__som__trace_8c_a107f00650b8041f77767927073ddddb8_cgraph.md5 create mode 100644 d0/d46/kohonen__som__trace_8c_a107f00650b8041f77767927073ddddb8_cgraph.svg create mode 100644 d0/d46/kohonen__som__trace_8c_a9c98203f55242ff7a8f45a6370840e66_cgraph.map create mode 100644 d0/d46/kohonen__som__trace_8c_a9c98203f55242ff7a8f45a6370840e66_cgraph.md5 create mode 100644 d0/d46/kohonen__som__trace_8c_a9c98203f55242ff7a8f45a6370840e66_cgraph.svg create mode 100644 d0/d46/kohonen__som__trace_8c_aa2246f940155472084ee461f3685d614_cgraph.map create mode 100644 d0/d46/kohonen__som__trace_8c_aa2246f940155472084ee461f3685d614_cgraph.md5 create mode 100644 d0/d46/kohonen__som__trace_8c_aa2246f940155472084ee461f3685d614_cgraph.svg create mode 100644 d0/d46/kohonen__som__trace_8c_aeaeffbff2be4d5d15b0d4f10f846abde_cgraph.map create mode 100644 d0/d46/kohonen__som__trace_8c_aeaeffbff2be4d5d15b0d4f10f846abde_cgraph.md5 create mode 100644 d0/d46/kohonen__som__trace_8c_aeaeffbff2be4d5d15b0d4f10f846abde_cgraph.svg create mode 100644 d0/d59/problem__9_2sol2_8c__incl.map create mode 100644 d0/d59/problem__9_2sol2_8c__incl.md5 create mode 100644 d0/d59/problem__9_2sol2_8c__incl.svg create mode 100644 d0/d6b/structelem.html create mode 100644 d0/d6b/structelem.js create mode 100644 d0/d6c/problem__4_2sol_8c.html create mode 100644 d0/d6c/problem__4_2sol_8c.js create mode 100644 d0/d6c/problem__4_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map create mode 100644 d0/d6c/problem__4_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 create mode 100644 d0/d6c/problem__4_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg create mode 100644 d0/d6d/problem__10_2sol1_8c.html create mode 100644 d0/d6d/problem__10_2sol1_8c.js create mode 100644 d0/d6d/problem__10_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map create mode 100644 d0/d6d/problem__10_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 create mode 100644 d0/d6d/problem__10_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg create mode 100644 d0/d6d/problem__10_2sol1_8c_ae3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.map create mode 100644 d0/d6d/problem__10_2sol1_8c_ae3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.md5 create mode 100644 d0/d6d/problem__10_2sol1_8c_ae3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.svg create mode 100644 d0/d7f/so1_8c.html create mode 100644 d0/d7f/so1_8c.js create mode 100644 d0/d8a/structmax__heap.html create mode 100644 d0/d8a/structmax__heap.js create mode 100644 d0/d99/c__atoi__str__to__integer_8c__incl.map create mode 100644 d0/d99/c__atoi__str__to__integer_8c__incl.md5 create mode 100644 d0/d99/c__atoi__str__to__integer_8c__incl.svg create mode 100644 d0/db8/collatz_8c__incl.map create mode 100644 d0/db8/collatz_8c__incl.md5 create mode 100644 d0/db8/collatz_8c__incl.svg create mode 100644 d0/dc8/structarray__3d.html create mode 100644 d0/dc8/structarray__3d.js create mode 100644 d0/df1/structhash__set__t.html create mode 100644 d0/df1/structhash__set__t.js create mode 100644 d0/df1/threaded__binary__trees_8c__incl.map create mode 100644 d0/df1/threaded__binary__trees_8c__incl.md5 create mode 100644 d0/df1/threaded__binary__trees_8c__incl.svg create mode 100644 d1/d07/sol4_8c__incl.map create mode 100644 d1/d07/sol4_8c__incl.md5 create mode 100644 d1/d07/sol4_8c__incl.svg create mode 100644 d1/d10/structelem__coll__graph.map create mode 100644 d1/d10/structelem__coll__graph.md5 create mode 100644 d1/d10/structelem__coll__graph.svg create mode 100644 d1/d12/md_data_structures_stack__r_e_a_d_m_e.html create mode 100644 d1/d2f/problem__7_2sol_8c.html create mode 100644 d1/d2f/problem__7_2sol_8c.js create mode 100644 d1/d6c/ode__forward__euler_8c__incl.map create mode 100644 d1/d6c/ode__forward__euler_8c__incl.md5 create mode 100644 d1/d6c/ode__forward__euler_8c__incl.svg create mode 100644 d1/d8d/struct_a_v_lnode__coll__graph.map create mode 100644 d1/d8d/struct_a_v_lnode__coll__graph.md5 create mode 100644 d1/d8d/struct_a_v_lnode__coll__graph.svg create mode 100644 d1/dc2/ode__midpoint__euler_8c.html create mode 100644 d1/dc2/ode__midpoint__euler_8c.js create mode 100644 d1/dc2/ode__midpoint__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map create mode 100644 d1/dc2/ode__midpoint__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 create mode 100644 d1/dc2/ode__midpoint__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg create mode 100644 d1/dc2/ode__midpoint__euler_8c_a148003d8b261d040c1c41e73b40af1dd_cgraph.map create mode 100644 d1/dc2/ode__midpoint__euler_8c_a148003d8b261d040c1c41e73b40af1dd_cgraph.md5 create mode 100644 d1/dc2/ode__midpoint__euler_8c_a148003d8b261d040c1c41e73b40af1dd_cgraph.svg create mode 100644 d1/dc2/ode__midpoint__euler_8c_affe6cc2ab040b94a29e6c41782f72d51_cgraph.map create mode 100644 d1/dc2/ode__midpoint__euler_8c_affe6cc2ab040b94a29e6c41782f72d51_cgraph.md5 create mode 100644 d1/dc2/ode__midpoint__euler_8c_affe6cc2ab040b94a29e6c41782f72d51_cgraph.svg create mode 100644 d1/dd3/problem__401_2sol1_8c__incl.map create mode 100644 d1/dd3/problem__401_2sol1_8c__incl.md5 create mode 100644 d1/dd3/problem__401_2sol1_8c__incl.svg create mode 100644 d1/df9/problem__26_2sol1_8c.html create mode 100644 d1/df9/problem__26_2sol1_8c.js create mode 100644 d1/df9/problem__26_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map create mode 100644 d1/df9/problem__26_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 create mode 100644 d1/df9/problem__26_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg create mode 100644 d2/d36/structqueue.html create mode 100644 d2/d36/structqueue.js create mode 100644 d2/d6a/struct_graph_rep.html create mode 100644 d2/d6a/struct_graph_rep.js create mode 100644 d2/d71/struct_a_v_lnode.html create mode 100644 d2/d71/struct_a_v_lnode.js create mode 100644 d2/d89/structcontour.html create mode 100644 d2/d89/structcontour.js create mode 100644 d2/d93/problem__8_2sol2_8c.html create mode 100644 d2/d93/problem__8_2sol2_8c.js create mode 100644 d2/daa/structadaline.html create mode 100644 d2/daa/structadaline.js create mode 100644 d2/dae/problem__1_2sol2_8c.html create mode 100644 d2/dae/problem__1_2sol2_8c.js create mode 100644 d2/dbc/problem__3_2sol2_8c.html create mode 100644 d2/dbc/problem__3_2sol2_8c.js create mode 100644 d2/dc3/carray_8h_source.html create mode 100644 d2/dd8/problem__3_2sol1_8c__incl.map create mode 100644 d2/dd8/problem__3_2sol1_8c__incl.md5 create mode 100644 d2/dd8/problem__3_2sol1_8c__incl.svg create mode 100644 d2/ddf/struct_l__coll__graph.map create mode 100644 d2/ddf/struct_l__coll__graph.md5 create mode 100644 d2/ddf/struct_l__coll__graph.svg create mode 100644 d2/de9/realtime__stats_8c__incl.map create mode 100644 d2/de9/realtime__stats_8c__incl.md5 create mode 100644 d2/de9/realtime__stats_8c__incl.svg create mode 100644 d2/df6/kohonen__som__topology_8c.html create mode 100644 d2/df6/kohonen__som__topology_8c.js create mode 100644 d2/df6/kohonen__som__topology_8c_a1983dc0f35e734015772e9f8c0ff19f5_cgraph.map create mode 100644 d2/df6/kohonen__som__topology_8c_a1983dc0f35e734015772e9f8c0ff19f5_cgraph.md5 create mode 100644 d2/df6/kohonen__som__topology_8c_a1983dc0f35e734015772e9f8c0ff19f5_cgraph.svg create mode 100644 d2/df6/kohonen__som__topology_8c_ad139de302fa8135a433d9c1bf971b13b_cgraph.map create mode 100644 d2/df6/kohonen__som__topology_8c_ad139de302fa8135a433d9c1bf971b13b_cgraph.md5 create mode 100644 d2/df6/kohonen__som__topology_8c_ad139de302fa8135a433d9c1bf971b13b_cgraph.svg create mode 100644 d3/d01/problem__21_2sol1_8c__incl.map create mode 100644 d3/d01/problem__21_2sol1_8c__incl.md5 create mode 100644 d3/d01/problem__21_2sol1_8c__incl.svg create mode 100644 d3/d21/sol3_8c__incl.map create mode 100644 d3/d21/sol3_8c__incl.md5 create mode 100644 d3/d21/sol3_8c__incl.svg create mode 100644 d3/d5a/struct__large__num.html create mode 100644 d3/d5a/struct__large__num.js create mode 100644 d3/d61/problem__1_2sol1_8c__incl.map create mode 100644 d3/d61/problem__1_2sol1_8c__incl.md5 create mode 100644 d3/d61/problem__1_2sol1_8c__incl.svg create mode 100644 d3/da9/problem__5_2sol_8c__incl.map create mode 100644 d3/da9/problem__5_2sol_8c__incl.md5 create mode 100644 d3/da9/problem__5_2sol_8c__incl.svg create mode 100644 d4/d02/struct_b_s_t_iterator.html create mode 100644 d4/d02/struct_b_s_t_iterator.js create mode 100644 d4/d07/ode__forward__euler_8c.html create mode 100644 d4/d07/ode__forward__euler_8c.js create mode 100644 d4/d07/ode__forward__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map create mode 100644 d4/d07/ode__forward__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 create mode 100644 d4/d07/ode__forward__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg create mode 100644 d4/d07/ode__forward__euler_8c_aaf88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.map create mode 100644 d4/d07/ode__forward__euler_8c_aaf88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.md5 create mode 100644 d4/d07/ode__forward__euler_8c_aaf88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.svg create mode 100644 d4/d07/ode__forward__euler_8c_ae6c9413953c8d9d4bc9e374b29586350_cgraph.map create mode 100644 d4/d07/ode__forward__euler_8c_ae6c9413953c8d9d4bc9e374b29586350_cgraph.md5 create mode 100644 d4/d07/ode__forward__euler_8c_ae6c9413953c8d9d4bc9e374b29586350_cgraph.svg create mode 100644 d4/d15/qr__eigen__values_8c__incl.map create mode 100644 d4/d15/qr__eigen__values_8c__incl.md5 create mode 100644 d4/d15/qr__eigen__values_8c__incl.svg create mode 100644 d4/d22/struct_trie_node__coll__graph.map create mode 100644 d4/d22/struct_trie_node__coll__graph.md5 create mode 100644 d4/d22/struct_trie_node__coll__graph.svg create mode 100644 d4/d2d/struct_c_array.html create mode 100644 d4/d2d/struct_c_array.js create mode 100644 d4/d68/qr__decompose_8h.html create mode 100644 d4/d68/qr__decompose_8h.js create mode 100644 d4/d68/qr__decompose_8h_a45c7640d9d22c89c11beb1f567843c56_cgraph.map create mode 100644 d4/d68/qr__decompose_8h_a45c7640d9d22c89c11beb1f567843c56_cgraph.md5 create mode 100644 d4/d68/qr__decompose_8h_a45c7640d9d22c89c11beb1f567843c56_cgraph.svg create mode 100644 d4/d68/qr__decompose_8h_a82b20e027437df768d7e994cf4cae29f_cgraph.map create mode 100644 d4/d68/qr__decompose_8h_a82b20e027437df768d7e994cf4cae29f_cgraph.md5 create mode 100644 d4/d68/qr__decompose_8h_a82b20e027437df768d7e994cf4cae29f_cgraph.svg create mode 100644 d4/d68/qr__decompose_8h_abeec1f78a7a7e7251687e75340331212_cgraph.map create mode 100644 d4/d68/qr__decompose_8h_abeec1f78a7a7e7251687e75340331212_cgraph.md5 create mode 100644 d4/d68/qr__decompose_8h_abeec1f78a7a7e7251687e75340331212_cgraph.svg create mode 100644 d4/d68/qr__decompose_8h_source.html create mode 100644 d4/d7b/problem__6_2sol_8c.html create mode 100644 d4/d7b/problem__6_2sol_8c.js create mode 100644 d4/d83/problem__401_2sol1_8c.html create mode 100644 d4/d83/problem__401_2sol1_8c.js create mode 100644 d4/d83/problem__401_2sol1_8c_a236548478af932f1115a71f601a68788_cgraph.map create mode 100644 d4/d83/problem__401_2sol1_8c_a236548478af932f1115a71f601a68788_cgraph.md5 create mode 100644 d4/d83/problem__401_2sol1_8c_a236548478af932f1115a71f601a68788_cgraph.svg create mode 100644 d4/d83/problem__401_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 d4/d83/problem__401_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 d4/d83/problem__401_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 d4/d83/problem__401_2sol1_8c_a7380e14d595d560007b02ce516b6b215_cgraph.map create mode 100644 d4/d83/problem__401_2sol1_8c_a7380e14d595d560007b02ce516b6b215_cgraph.md5 create mode 100644 d4/d83/problem__401_2sol1_8c_a7380e14d595d560007b02ce516b6b215_cgraph.svg create mode 100644 d4/d83/problem__401_2sol1_8c_aaf964739be92adc2f500e7da11e3f6be_cgraph.map create mode 100644 d4/d83/problem__401_2sol1_8c_aaf964739be92adc2f500e7da11e3f6be_cgraph.md5 create mode 100644 d4/d83/problem__401_2sol1_8c_aaf964739be92adc2f500e7da11e3f6be_cgraph.svg create mode 100644 d4/d89/problem__23_2sol1_8c__incl.map create mode 100644 d4/d89/problem__23_2sol1_8c__incl.md5 create mode 100644 d4/d89/problem__23_2sol1_8c__incl.svg create mode 100644 d4/d99/fibonacci__fast_8c.html create mode 100644 d4/d99/fibonacci__fast_8c.js create mode 100644 d4/d99/fibonacci__fast_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map create mode 100644 d4/d99/fibonacci__fast_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 create mode 100644 d4/d99/fibonacci__fast_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg create mode 100644 d4/d99/ode__semi__implicit__euler_8c.html create mode 100644 d4/d99/ode__semi__implicit__euler_8c.js create mode 100644 d4/d99/ode__semi__implicit__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map create mode 100644 d4/d99/ode__semi__implicit__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 create mode 100644 d4/d99/ode__semi__implicit__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg create mode 100644 d4/d99/ode__semi__implicit__euler_8c_a720b7e995d2bbc615f94a2c7dbcf84eb_cgraph.map create mode 100644 d4/d99/ode__semi__implicit__euler_8c_a720b7e995d2bbc615f94a2c7dbcf84eb_cgraph.md5 create mode 100644 d4/d99/ode__semi__implicit__euler_8c_a720b7e995d2bbc615f94a2c7dbcf84eb_cgraph.svg create mode 100644 d4/d99/ode__semi__implicit__euler_8c_ad80059877222f885b549f2d0a3dc6b55_cgraph.map create mode 100644 d4/d99/ode__semi__implicit__euler_8c_ad80059877222f885b549f2d0a3dc6b55_cgraph.md5 create mode 100644 d4/d99/ode__semi__implicit__euler_8c_ad80059877222f885b549f2d0a3dc6b55_cgraph.svg create mode 100644 d4/dbd/problem__23_2sol2_8c.html create mode 100644 d4/dbd/problem__23_2sol2_8c.js create mode 100644 d4/dbd/problem__23_2sol2_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.map create mode 100644 d4/dbd/problem__23_2sol2_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.md5 create mode 100644 d4/dbd/problem__23_2sol2_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.svg create mode 100644 d4/dbd/problem__23_2sol2_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 d4/dbd/problem__23_2sol2_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 d4/dbd/problem__23_2sol2_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 d4/dbd/problem__23_2sol2_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.map create mode 100644 d4/dbd/problem__23_2sol2_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.md5 create mode 100644 d4/dbd/problem__23_2sol2_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.svg create mode 100644 d4/dcb/md_hash__r_e_a_d_m_e.html create mode 100644 d4/dd4/struct_graph.html create mode 100644 d4/dd4/struct_graph.js create mode 100644 d4/dea/problem__14_2sol1_8c.html create mode 100644 d4/dea/problem__14_2sol1_8c.js create mode 100644 d4/dea/problem__14_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 d4/dea/problem__14_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 d4/dea/problem__14_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 d4/dfe/struct_dict.html create mode 100644 d4/dfe/struct_dict.js create mode 100644 d5/d23/qr__decomposition_8c.html create mode 100644 d5/d23/qr__decomposition_8c.js create mode 100644 d5/d23/qr__decomposition_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map create mode 100644 d5/d23/qr__decomposition_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 create mode 100644 d5/d23/qr__decomposition_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg create mode 100644 d5/d3e/problem__3_2sol2_8c__incl.map create mode 100644 d5/d3e/problem__3_2sol2_8c__incl.md5 create mode 100644 d5/d3e/problem__3_2sol2_8c__incl.svg create mode 100644 d5/d51/problem__25_2sol1_8c__incl.map create mode 100644 d5/d51/problem__25_2sol1_8c__incl.md5 create mode 100644 d5/d51/problem__25_2sol1_8c__incl.svg create mode 100644 d5/d7e/struct_t.html create mode 100644 d5/d7e/struct_t.js create mode 100644 d5/d88/md__d_i_r_e_c_t_o_r_y.html create mode 100644 d5/da1/structnode.html create mode 100644 d5/da1/structnode.js create mode 100644 d5/db4/struct_edge.html create mode 100644 d5/db4/struct_edge.js create mode 100644 d6/d1b/sol4_8c.html create mode 100644 d6/d1b/sol4_8c.js create mode 100644 d6/d3d/factorial__large__number_8c.html create mode 100644 d6/d3d/factorial__large__number_8c.js create mode 100644 d6/d3d/factorial__large__number_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map create mode 100644 d6/d3d/factorial__large__number_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 create mode 100644 d6/d3d/factorial__large__number_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg create mode 100644 d6/d3d/factorial__large__number_8c_ad398ddbd594ca69a5e6dfc894925341e_cgraph.map create mode 100644 d6/d3d/factorial__large__number_8c_ad398ddbd594ca69a5e6dfc894925341e_cgraph.md5 create mode 100644 d6/d3d/factorial__large__number_8c_ad398ddbd594ca69a5e6dfc894925341e_cgraph.svg create mode 100644 d6/d3d/factorial__large__number_8c_af2869d36c22a2b8f93d3166a84e124b3_cgraph.map create mode 100644 d6/d3d/factorial__large__number_8c_af2869d36c22a2b8f93d3166a84e124b3_cgraph.md5 create mode 100644 d6/d3d/factorial__large__number_8c_af2869d36c22a2b8f93d3166a84e124b3_cgraph.svg create mode 100644 d6/d42/problem__22_2sol1_8c__incl.map create mode 100644 d6/d42/problem__22_2sol1_8c__incl.md5 create mode 100644 d6/d42/problem__22_2sol1_8c__incl.svg create mode 100644 d6/d42/structdynamic__array.html create mode 100644 d6/d42/structdynamic__array.js create mode 100644 d6/d48/isogram_8h_source.html create mode 100644 d6/d6d/struct_graph__coll__graph.map create mode 100644 d6/d6d/struct_graph__coll__graph.md5 create mode 100644 d6/d6d/struct_graph__coll__graph.svg create mode 100644 d6/d88/problem__16_2sol1_8c.html create mode 100644 d6/d88/problem__16_2sol1_8c.js create mode 100644 d6/de3/sol3_8c.html create mode 100644 d6/de3/sol3_8c.js create mode 100644 d6/ded/shell__sort2_8c.html create mode 100644 d6/ded/shell__sort2_8c.js create mode 100644 d6/ded/shell__sort2_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map create mode 100644 d6/ded/shell__sort2_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 create mode 100644 d6/ded/shell__sort2_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg create mode 100644 d6/df3/graph_8h_source.html create mode 100644 d7/d0a/fibonacci__fast_8c__incl.map create mode 100644 d7/d0a/fibonacci__fast_8c__incl.md5 create mode 100644 d7/d0a/fibonacci__fast_8c__incl.svg create mode 100644 d7/d1f/problem__12_2sol1_8c.html create mode 100644 d7/d1f/problem__12_2sol1_8c.js create mode 100644 d7/d1f/problem__12_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 d7/d1f/problem__12_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 d7/d1f/problem__12_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 d7/d50/qr__eigen__values_8c.html create mode 100644 d7/d50/qr__eigen__values_8c.js create mode 100644 d7/d50/qr__eigen__values_8c_a0283886819c7c140a023582b7269e2d0_cgraph.map create mode 100644 d7/d50/qr__eigen__values_8c_a0283886819c7c140a023582b7269e2d0_cgraph.md5 create mode 100644 d7/d50/qr__eigen__values_8c_a0283886819c7c140a023582b7269e2d0_cgraph.svg create mode 100644 d7/d50/qr__eigen__values_8c_a0d8ed79786d17df48396b333c09d05bb_cgraph.map create mode 100644 d7/d50/qr__eigen__values_8c_a0d8ed79786d17df48396b333c09d05bb_cgraph.md5 create mode 100644 d7/d50/qr__eigen__values_8c_a0d8ed79786d17df48396b333c09d05bb_cgraph.svg create mode 100644 d7/d50/qr__eigen__values_8c_a1440a7779ac56f47a3f355ce4a8c7da0_cgraph.map create mode 100644 d7/d50/qr__eigen__values_8c_a1440a7779ac56f47a3f355ce4a8c7da0_cgraph.md5 create mode 100644 d7/d50/qr__eigen__values_8c_a1440a7779ac56f47a3f355ce4a8c7da0_cgraph.svg create mode 100644 d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph_org.svg create mode 100644 d7/d86/struct__big__int__coll__graph.map create mode 100644 d7/d86/struct__big__int__coll__graph.md5 create mode 100644 d7/d86/struct__big__int__coll__graph.svg create mode 100644 d7/d90/rna__transcription_8h_source.html create mode 100644 d7/d91/problem__15_2sol1_8c.html create mode 100644 d7/d91/problem__15_2sol1_8c.js create mode 100644 d7/d91/problem__15_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 d7/d91/problem__15_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 d7/d91/problem__15_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 d7/dac/problem__9_2sol1_8c__incl.map create mode 100644 d7/dac/problem__9_2sol1_8c__incl.md5 create mode 100644 d7/dac/problem__9_2sol1_8c__incl.svg create mode 100644 d7/db5/md_exercism__r_e_a_d_m_e.html create mode 100644 d7/dd3/problem__3_2sol1_8c.html create mode 100644 d7/dd3/problem__3_2sol1_8c.js create mode 100644 d7/dd3/problem__3_2sol1_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.map create mode 100644 d7/dd3/problem__3_2sol1_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.md5 create mode 100644 d7/dd3/problem__3_2sol1_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg create mode 100644 d7/dd8/c__atoi__str__to__integer_8c.html create mode 100644 d7/dd8/c__atoi__str__to__integer_8c.js create mode 100644 d7/dd8/c__atoi__str__to__integer_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 d7/dd8/c__atoi__str__to__integer_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 d7/dd8/c__atoi__str__to__integer_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 d7/dd8/c__atoi__str__to__integer_8c_abef225390e0b6e84ddfcb18fe573d9c5_cgraph.map create mode 100644 d7/dd8/c__atoi__str__to__integer_8c_abef225390e0b6e84ddfcb18fe573d9c5_cgraph.md5 create mode 100644 d7/dd8/c__atoi__str__to__integer_8c_abef225390e0b6e84ddfcb18fe573d9c5_cgraph.svg create mode 100644 d7/ddb/problem__23_2sol1_8c.html create mode 100644 d7/ddb/problem__23_2sol1_8c.js create mode 100644 d7/ddb/problem__23_2sol1_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.map create mode 100644 d7/ddb/problem__23_2sol1_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.md5 create mode 100644 d7/ddb/problem__23_2sol1_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.svg create mode 100644 d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph_org.svg create mode 100644 d7/ddb/problem__23_2sol1_8c_a4f128410e6582fe26488e2316cc96e17_cgraph.map create mode 100644 d7/ddb/problem__23_2sol1_8c_a4f128410e6582fe26488e2316cc96e17_cgraph.md5 create mode 100644 d7/ddb/problem__23_2sol1_8c_a4f128410e6582fe26488e2316cc96e17_cgraph.svg create mode 100644 d7/ddb/problem__23_2sol1_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.map create mode 100644 d7/ddb/problem__23_2sol1_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.md5 create mode 100644 d7/ddb/problem__23_2sol1_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.svg create mode 100644 d7/de0/stack_8h_source.html create mode 100644 d7/ded/problem__10_2sol2_8c__incl.map create mode 100644 d7/ded/problem__10_2sol2_8c__incl.md5 create mode 100644 d7/ded/problem__10_2sol2_8c__incl.svg create mode 100644 d8/d11/newton__raphson__root_8c__incl.map create mode 100644 d8/d11/newton__raphson__root_8c__incl.md5 create mode 100644 d8/d11/newton__raphson__root_8c__incl.svg create mode 100644 d8/d32/problem__25_2sol1_8c.html create mode 100644 d8/d32/problem__25_2sol1_8c.js create mode 100644 d8/d32/problem__25_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map create mode 100644 d8/d32/problem__25_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 create mode 100644 d8/d32/problem__25_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg create mode 100644 d8/d38/queue_8h_source.html create mode 100644 d8/d48/problem__10_2sol1_8c__incl.map create mode 100644 d8/d48/problem__10_2sol1_8c__incl.md5 create mode 100644 d8/d48/problem__10_2sol1_8c__incl.svg create mode 100644 d8/d6a/problem__8_2sol1_8c__incl.map create mode 100644 d8/d6a/problem__8_2sol1_8c__incl.md5 create mode 100644 d8/d6a/problem__8_2sol1_8c__incl.svg create mode 100644 d8/d7a/structtnode.html create mode 100644 d8/d7a/structtnode.js create mode 100644 d8/d7c/dict_8h_source.html create mode 100644 d8/d81/md_project_euler__r_e_a_d_m_e.html create mode 100644 d8/da2/dynamic__array_8h_source.html create mode 100644 d8/de0/problem__9_2sol2_8c.html create mode 100644 d8/de0/problem__9_2sol2_8c.js create mode 100644 d9/d41/md_data_structures_array__r_e_a_d_m_e.html create mode 100644 d9/d5c/struct_queue_rep__coll__graph.map create mode 100644 d9/d5c/struct_queue_rep__coll__graph.md5 create mode 100644 d9/d5c/struct_queue_rep__coll__graph.svg create mode 100644 d9/d75/problem__15_2sol1_8c__incl.map create mode 100644 d9/d75/problem__15_2sol1_8c__incl.md5 create mode 100644 d9/d75/problem__15_2sol1_8c__incl.svg create mode 100644 d9/d7e/problem__20_2sol1_8c__incl.map create mode 100644 d9/d7e/problem__20_2sol1_8c__incl.md5 create mode 100644 d9/d7e/problem__20_2sol1_8c__incl.svg create mode 100644 d9/d85/ode__semi__implicit__euler_8c__incl.map create mode 100644 d9/d85/ode__semi__implicit__euler_8c__incl.md5 create mode 100644 d9/d85/ode__semi__implicit__euler_8c__incl.svg create mode 100644 d9/da7/problem__10_2sol2_8c.html create mode 100644 d9/da7/problem__10_2sol2_8c.js create mode 100644 d9/dcc/adaline__learning_8c__incl.map create mode 100644 d9/dcc/adaline__learning_8c__incl.md5 create mode 100644 d9/dcc/adaline__learning_8c__incl.svg create mode 100644 da/d23/list_8h_source.html create mode 100644 da/d35/problem__1_2sol1_8c.html create mode 100644 da/d35/problem__1_2sol1_8c.js create mode 100644 da/d38/durand__kerner__roots_8c.html create mode 100644 da/d38/durand__kerner__roots_8c.js create mode 100644 da/d38/durand__kerner__roots_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 da/d38/durand__kerner__roots_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 da/d38/durand__kerner__roots_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 da/d90/stack__linked__list_2stack_8h_source.html create mode 100644 da/d9b/struct_trie_node.html create mode 100644 da/d9b/struct_trie_node.js create mode 100644 da/de2/shell__sort2_8c__incl.map create mode 100644 da/de2/shell__sort2_8c__incl.md5 create mode 100644 da/de2/shell__sort2_8c__incl.svg create mode 100644 da/dfd/kohonen__som__trace_8c__incl.map create mode 100644 da/dfd/kohonen__som__trace_8c__incl.md5 create mode 100644 da/dfd/kohonen__som__trace_8c__incl.svg create mode 100644 db/d01/problem__13_2sol1_8c.html create mode 100644 db/d01/problem__13_2sol1_8c.js create mode 100644 db/d01/problem__13_2sol1_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map create mode 100644 db/d01/problem__13_2sol1_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 create mode 100644 db/d01/problem__13_2sol1_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg create mode 100644 db/d17/structtnode__coll__graph.map create mode 100644 db/d17/structtnode__coll__graph.md5 create mode 100644 db/d17/structtnode__coll__graph.svg create mode 100644 db/d28/struct_t__coll__graph.map create mode 100644 db/d28/struct_t__coll__graph.md5 create mode 100644 db/d28/struct_t__coll__graph.svg create mode 100644 db/d45/qr__decomposition_8c__incl.map create mode 100644 db/d45/qr__decomposition_8c__incl.md5 create mode 100644 db/d45/qr__decomposition_8c__incl.svg create mode 100644 db/d50/problem__4_2sol_8c__incl.map create mode 100644 db/d50/problem__4_2sol_8c__incl.md5 create mode 100644 db/d50/problem__4_2sol_8c__incl.svg create mode 100644 db/d74/problem__13_2sol1_8c__incl.map create mode 100644 db/d74/problem__13_2sol1_8c__incl.md5 create mode 100644 db/d74/problem__13_2sol1_8c__incl.svg create mode 100644 db/d80/problem__20_2sol1_8c.html create mode 100644 db/d80/problem__20_2sol1_8c.js create mode 100644 db/d80/problem__20_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 db/d80/problem__20_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 db/d80/problem__20_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 db/d83/problem__12_2sol1_8c__incl.map create mode 100644 db/d83/problem__12_2sol1_8c__incl.md5 create mode 100644 db/d83/problem__12_2sol1_8c__incl.svg create mode 100644 db/d8b/struct_node.html create mode 100644 db/d8b/struct_node.js create mode 100644 db/dd8/problem__26_2sol1_8c__incl.map create mode 100644 db/dd8/problem__26_2sol1_8c__incl.md5 create mode 100644 db/dd8/problem__26_2sol1_8c__incl.svg create mode 100644 db/ddb/hello__world_8h_source.html create mode 100644 db/dfb/hash_8h_source.html create mode 100644 db/dff/durand__kerner__roots_8c__incl.map create mode 100644 db/dff/durand__kerner__roots_8c__incl.md5 create mode 100644 db/dff/durand__kerner__roots_8c__incl.svg create mode 100644 dc/d23/problem__23_2sol2_8c__incl.map create mode 100644 dc/d23/problem__23_2sol2_8c__incl.md5 create mode 100644 dc/d23/problem__23_2sol2_8c__incl.svg create mode 100644 dc/d2e/lu__decompose_8c.html create mode 100644 dc/d2e/lu__decompose_8c.js create mode 100644 dc/d2e/lu__decompose_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 dc/d2e/lu__decompose_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 dc/d2e/lu__decompose_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 dc/d47/realtime__stats_8c.html create mode 100644 dc/d47/realtime__stats_8c.js create mode 100644 dc/d47/realtime__stats_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 dc/d47/realtime__stats_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 dc/d47/realtime__stats_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 dc/d47/realtime__stats_8c_aa54c915581fcc495489175a4386d59fd_cgraph.map create mode 100644 dc/d47/realtime__stats_8c_aa54c915581fcc495489175a4386d59fd_cgraph.md5 create mode 100644 dc/d47/realtime__stats_8c_aa54c915581fcc495489175a4386d59fd_cgraph.svg create mode 100644 dc/d52/problem__16_2sol1_8c__incl.map create mode 100644 dc/d52/problem__16_2sol1_8c__incl.md5 create mode 100644 dc/d52/problem__16_2sol1_8c__incl.svg create mode 100644 dc/d55/problem__14_2sol1_8c__incl.map create mode 100644 dc/d55/problem__14_2sol1_8c__incl.md5 create mode 100644 dc/d55/problem__14_2sol1_8c__incl.svg create mode 100644 dc/d5f/qr__decompose_8h__dep__incl.map create mode 100644 dc/d5f/qr__decompose_8h__dep__incl.md5 create mode 100644 dc/d5f/qr__decompose_8h__dep__incl.svg create mode 100644 dc/d63/problem__8_2sol1_8c.html create mode 100644 dc/d63/problem__8_2sol1_8c.js create mode 100644 dc/d63/problem__8_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map create mode 100644 dc/d63/problem__8_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 create mode 100644 dc/d63/problem__8_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg create mode 100644 dc/d64/md__coding_guidelines.html create mode 100644 dc/d77/struct__big__int.html create mode 100644 dc/d77/struct__big__int.js create mode 100644 dc/d80/collatz_8c.html create mode 100644 dc/d80/collatz_8c.js create mode 100644 dc/dd4/kohonen__som__topology_8c__incl.map create mode 100644 dc/dd4/kohonen__som__topology_8c__incl.md5 create mode 100644 dc/dd4/kohonen__som__topology_8c__incl.svg create mode 100644 dc/de3/hash__set_8h_source.html create mode 100644 dc/de5/structsubset.html create mode 100644 dc/de5/structsubset.js create mode 100644 dd/d08/newton__raphson__root_8c.html create mode 100644 dd/d08/newton__raphson__root_8c.js create mode 100644 dd/d08/newton__raphson__root_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 dd/d08/newton__raphson__root_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 dd/d08/newton__raphson__root_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 dd/d10/struct_stack.html create mode 100644 dd/d10/struct_stack.js create mode 100644 dd/d24/problem__19_2sol1_8c__incl.map create mode 100644 dd/d24/problem__19_2sol1_8c__incl.md5 create mode 100644 dd/d24/problem__19_2sol1_8c__incl.svg create mode 100644 dd/d75/structqueue__coll__graph.map create mode 100644 dd/d75/structqueue__coll__graph.md5 create mode 100644 dd/d75/structqueue__coll__graph.svg create mode 100644 dd/d77/so1_8c__incl.map create mode 100644 dd/d77/so1_8c__incl.md5 create mode 100644 dd/d77/so1_8c__incl.svg create mode 100644 dd/d8b/problem__22_2sol1_8c.html create mode 100644 dd/d8b/problem__22_2sol1_8c.js create mode 100644 dd/d8b/problem__22_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 dd/d8b/problem__22_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 dd/d8b/problem__22_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 dd/d8c/adaline__learning_8c.html create mode 100644 dd/d8c/adaline__learning_8c.js create mode 100644 dd/d8c/adaline__learning_8c_a05cc9a0acb524fde727a4d7b4a747ee6_cgraph.map create mode 100644 dd/d8c/adaline__learning_8c_a05cc9a0acb524fde727a4d7b4a747ee6_cgraph.md5 create mode 100644 dd/d8c/adaline__learning_8c_a05cc9a0acb524fde727a4d7b4a747ee6_cgraph.svg create mode 100644 dd/d8c/adaline__learning_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 dd/d8c/adaline__learning_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 dd/d8c/adaline__learning_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 dd/d8c/adaline__learning_8c_a3f37b9f073f7e57fd0b39d70718af1b1_cgraph.map create mode 100644 dd/d8c/adaline__learning_8c_a3f37b9f073f7e57fd0b39d70718af1b1_cgraph.md5 create mode 100644 dd/d8c/adaline__learning_8c_a3f37b9f073f7e57fd0b39d70718af1b1_cgraph.svg create mode 100644 dd/d8c/adaline__learning_8c_a4db1ba00a7f282100ea31a94e32bd7a3_cgraph.map create mode 100644 dd/d8c/adaline__learning_8c_a4db1ba00a7f282100ea31a94e32bd7a3_cgraph.md5 create mode 100644 dd/d8c/adaline__learning_8c_a4db1ba00a7f282100ea31a94e32bd7a3_cgraph.svg create mode 100644 dd/d8c/adaline__learning_8c_ab4ecb3accf5d9e0263087e7265bbe3a9_cgraph.map create mode 100644 dd/d8c/adaline__learning_8c_ab4ecb3accf5d9e0263087e7265bbe3a9_cgraph.md5 create mode 100644 dd/d8c/adaline__learning_8c_ab4ecb3accf5d9e0263087e7265bbe3a9_cgraph.svg create mode 100644 dd/d8c/adaline__learning_8c_afa953e811eaae199d121a7ddb619d604_cgraph.map create mode 100644 dd/d8c/adaline__learning_8c_afa953e811eaae199d121a7ddb619d604_cgraph.md5 create mode 100644 dd/d8c/adaline__learning_8c_afa953e811eaae199d121a7ddb619d604_cgraph.svg create mode 100644 dd/d95/word__count_8h_source.html create mode 100644 dd/df0/problem__19_2sol1_8c.html create mode 100644 dd/df0/problem__19_2sol1_8c.js create mode 100644 dd/df0/problem__19_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 dd/df0/problem__19_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 dd/df0/problem__19_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 dd/df2/problem__1_2sol2_8c__incl.map create mode 100644 dd/df2/problem__1_2sol2_8c__incl.md5 create mode 100644 dd/df2/problem__1_2sol2_8c__incl.svg create mode 100644 de/d08/structcontour__coll__graph.map create mode 100644 de/d08/structcontour__coll__graph.md5 create mode 100644 de/d08/structcontour__coll__graph.svg create mode 100644 de/d20/md_data_structures_dictionary__r_e_a_d_m_e.html create mode 100644 de/d4e/lu__decompose_8c__incl.map create mode 100644 de/d4e/lu__decompose_8c__incl.md5 create mode 100644 de/d4e/lu__decompose_8c__incl.svg create mode 100644 de/dce/structmin__heap.html create mode 100644 de/dce/structmin__heap.js create mode 100644 df/d1a/problem__21_2sol1_8c.html create mode 100644 df/d1a/problem__21_2sol1_8c.js create mode 100644 df/d1a/problem__21_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map create mode 100644 df/d1a/problem__21_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 create mode 100644 df/d1a/problem__21_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg create mode 100644 df/d29/problem__7_2sol_8c__incl.map create mode 100644 df/d29/problem__7_2sol_8c__incl.md5 create mode 100644 df/d29/problem__7_2sol_8c__incl.svg create mode 100644 df/d3c/threaded__binary__trees_8c.html create mode 100644 df/d3c/threaded__binary__trees_8c.js create mode 100644 df/d3c/threaded__binary__trees_8c_a823432888332fc9f0aa6072cff28c3bb_cgraph.map create mode 100644 df/d3c/threaded__binary__trees_8c_a823432888332fc9f0aa6072cff28c3bb_cgraph.md5 create mode 100644 df/d3c/threaded__binary__trees_8c_a823432888332fc9f0aa6072cff28c3bb_cgraph.svg create mode 100644 df/d3c/threaded__binary__trees_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.map create mode 100644 df/d3c/threaded__binary__trees_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.md5 create mode 100644 df/d3c/threaded__binary__trees_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg create mode 100644 df/d58/md_leetcode__r_e_a_d_m_e.html create mode 100644 df/da5/problem__9_2sol1_8c.html create mode 100644 df/da5/problem__9_2sol1_8c.js create mode 100644 df/db0/factorial__large__number_8c__incl.map create mode 100644 df/db0/factorial__large__number_8c__incl.md5 create mode 100644 df/db0/factorial__large__number_8c__incl.svg create mode 100644 df/db3/struct_l.html create mode 100644 df/db3/struct_l.js create mode 100644 df/dbc/problem__6_2sol_8c__incl.map create mode 100644 df/dbc/problem__6_2sol_8c__incl.md5 create mode 100644 df/dbc/problem__6_2sol_8c__incl.svg create mode 100644 df/dc6/acronym_8h_source.html create mode 100644 df/dda/ode__midpoint__euler_8c__incl.map create mode 100644 df/dda/ode__midpoint__euler_8c__incl.md5 create mode 100644 df/dda/ode__midpoint__euler_8c__incl.svg create mode 100644 df/ddb/structword__count__word.html create mode 100644 df/ddb/structword__count__word.js create mode 100644 df/ddc/struct_node__coll__graph.map create mode 100644 df/ddc/struct_node__coll__graph.md5 create mode 100644 df/ddc/struct_node__coll__graph.svg create mode 100644 df/de7/problem__5_2sol_8c.html create mode 100644 df/de7/problem__5_2sol_8c.js create mode 100644 df/de7/problem__5_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map create mode 100644 df/de7/problem__5_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 create mode 100644 df/de7/problem__5_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg create mode 100644 df/de7/problem__5_2sol_8c_ae9606f1867e9921867d6572f51377b4c_cgraph.map create mode 100644 df/de7/problem__5_2sol_8c_ae9606f1867e9921867d6572f51377b4c_cgraph.md5 create mode 100644 df/de7/problem__5_2sol_8c_ae9606f1867e9921867d6572f51377b4c_cgraph.svg create mode 100644 df/dea/structdata.html create mode 100644 df/dea/structdata.js create mode 100644 dir_03902f230b9e9b7c999f936617a23997.html create mode 100644 dir_0472225043064b54f3dfff9011a9fae0.html create mode 100644 dir_0472225043064b54f3dfff9011a9fae0.js create mode 100644 dir_079e1f799fb08a8a0b98cb030ab15687.html create mode 100644 dir_079e1f799fb08a8a0b98cb030ab15687.js create mode 100644 dir_0bc3e2a5baf077fa21dadc079776fcac.html create mode 100644 dir_0bc3e2a5baf077fa21dadc079776fcac.js create mode 100644 dir_167af11096b7752ff31b3d4bec489317.html create mode 100644 dir_167af11096b7752ff31b3d4bec489317.js create mode 100644 dir_16b947d8e9a05fe119d0675493324331.html create mode 100644 dir_16b947d8e9a05fe119d0675493324331.js create mode 100644 dir_16e00c78ef36d1842d0d8a4afc46b852.html create mode 100644 dir_16e00c78ef36d1842d0d8a4afc46b852.js create mode 100644 dir_1833eb69ceee7a265ffba4c38c8243d2.html create mode 100644 dir_1833eb69ceee7a265ffba4c38c8243d2.js create mode 100644 dir_18cba55772148686552805a354a79093.html create mode 100644 dir_18cba55772148686552805a354a79093.js create mode 100644 dir_2176ba3565d8b1fe2a106d18679cc7bf.html create mode 100644 dir_2176ba3565d8b1fe2a106d18679cc7bf.js create mode 100644 dir_261dd1200fad5b2fe1eca9af8320656e.html create mode 100644 dir_2abe2c0880d3fb0dba0f784bee3fc9e0.html create mode 100644 dir_2abe2c0880d3fb0dba0f784bee3fc9e0.js create mode 100644 dir_2b14f32f14b51065d3a322bea21da3c0.html create mode 100644 dir_2b14f32f14b51065d3a322bea21da3c0.js create mode 100644 dir_2e746e9d06bf2d8ff842208bcc6ebcfc.html create mode 100644 dir_2e746e9d06bf2d8ff842208bcc6ebcfc.js create mode 100644 dir_2f070f19f76dfadabbc24fe483d7e98d.html create mode 100644 dir_2f070f19f76dfadabbc24fe483d7e98d.js create mode 100644 dir_2fede762f95c9c526850a639b984c56b.html create mode 100644 dir_2fede762f95c9c526850a639b984c56b.js create mode 100644 dir_32e2b2b829773774d6890224447e777d.html create mode 100644 dir_3343723ae086de42ee4ca9774da3a13f.html create mode 100644 dir_3343723ae086de42ee4ca9774da3a13f.js create mode 100644 dir_3c8f35d77556eca8a7a90921c2c197ad.html create mode 100644 dir_4500de955d1eddb82f69331d96e39ed9.html create mode 100644 dir_4500de955d1eddb82f69331d96e39ed9.js create mode 100644 dir_475f56e0a4ef6254f5610544d8d68aa3.html create mode 100644 dir_475f56e0a4ef6254f5610544d8d68aa3.js create mode 100644 dir_48bf5503321d91c557399989fed5dabd.html create mode 100644 dir_48bf5503321d91c557399989fed5dabd.js create mode 100644 dir_4991c92e00761dd3d764efa2906b4318.html create mode 100644 dir_4991c92e00761dd3d764efa2906b4318.js create mode 100644 dir_4a15c8553efb9e59e3f1091cc0d3a27d.html create mode 100644 dir_4a15c8553efb9e59e3f1091cc0d3a27d.js create mode 100644 dir_4bae997a2671812c2140d5abfb6305a4.html create mode 100644 dir_4bae997a2671812c2140d5abfb6305a4.js create mode 100644 dir_607f15d36c772334f988bb9ef82d102c.html create mode 100644 dir_607f15d36c772334f988bb9ef82d102c.js create mode 100644 dir_614f310c248f2b9541b559085cafcb40.html create mode 100644 dir_72aaf47615111200018c039a56ef48be.html create mode 100644 dir_72aaf47615111200018c039a56ef48be.js create mode 100644 dir_7445e5a68245b48f3c03982b6d501815.html create mode 100644 dir_7445e5a68245b48f3c03982b6d501815.js create mode 100644 dir_76784a7b04633629b9ecb5543b9ad889.html create mode 100644 dir_76784a7b04633629b9ecb5543b9ad889.js create mode 100644 dir_81f43aa0067826ea5befe80cd7aefcc5.html create mode 100644 dir_81f43aa0067826ea5befe80cd7aefcc5.js create mode 100644 dir_8c6743d405e8ed13cc39f42e382307fd.html create mode 100644 dir_8c6743d405e8ed13cc39f42e382307fd.js create mode 100644 dir_955029374964e51cf770754b424e7d39.html create mode 100644 dir_955029374964e51cf770754b424e7d39.js create mode 100644 dir_9babc524d57e25f3d9f4179cabc3599e.html create mode 100644 dir_9babc524d57e25f3d9f4179cabc3599e.js create mode 100644 dir_9c6faab82c22511b50177aa2e38e2780.html create mode 100644 dir_9c6faab82c22511b50177aa2e38e2780.js create mode 100644 dir_a4300992e825aa9b9238bf43160a241e.html create mode 100644 dir_a52f4d3d586a58b02f3a4ddf0a992157.html create mode 100644 dir_a52f4d3d586a58b02f3a4ddf0a992157.js create mode 100644 dir_aba97bf327db94061e830e9bc18e925d.html create mode 100644 dir_aba97bf327db94061e830e9bc18e925d.js create mode 100644 dir_b2dbfa46230fd9f775c32c1836ed3764.html create mode 100644 dir_b2dbfa46230fd9f775c32c1836ed3764.js create mode 100644 dir_b3d331eabd4234f247030c297aaf021c.html create mode 100644 dir_b3d331eabd4234f247030c297aaf021c.js create mode 100644 dir_b6018f60d424a2ef7e4c942ac681e38b.html create mode 100644 dir_b6018f60d424a2ef7e4c942ac681e38b.js create mode 100644 dir_bb1b521853a9c46347182a9d10420771.html create mode 100644 dir_bb1b521853a9c46347182a9d10420771.js create mode 100644 dir_bd4a7dd282074645ef41b1ea31ac813a.html create mode 100644 dir_bd4a7dd282074645ef41b1ea31ac813a.js create mode 100644 dir_c7ef0fcb2f2095a74f0a3a1634dfc798.html create mode 100644 dir_c7ef0fcb2f2095a74f0a3a1634dfc798.js create mode 100644 dir_d20ad0b8de644c123692ba5582cc7a7b.html create mode 100644 dir_d4c35186c199e728d69dee6bf5b2473c.html create mode 100644 dir_d4c35186c199e728d69dee6bf5b2473c.js create mode 100644 dir_d9112ab06cf4d4e5a25d385a268d1949.html create mode 100644 dir_d9112ab06cf4d4e5a25d385a268d1949.js create mode 100644 dir_d9e100c82ada2163abea49688a71e81c.html create mode 100644 dir_d9e100c82ada2163abea49688a71e81c.js create mode 100644 dir_da574daf9ce9c05b45556bdc871ed1e3.html create mode 100644 dir_e39df94f82619fa5256f1786519937be.html create mode 100644 dir_e39df94f82619fa5256f1786519937be.js create mode 100644 dir_eeeea13e3a5e5edad3499183767ce312.html create mode 100644 dir_eeeea13e3a5e5edad3499183767ce312.js create mode 100644 dir_f75ccd45e00436eafed446b9b2682984.html create mode 100644 dir_f75ccd45e00436eafed446b9b2682984.js create mode 100644 dir_f7d3c03fcac84aef1b0c66cc497ed1ea.html create mode 100644 dir_f7d3c03fcac84aef1b0c66cc497ed1ea.js create mode 100644 dir_fbc6c771d18f1a35ad2bd30260ea0fc8.html create mode 100644 dir_fe5d69ed7d90cb356556070c2a2e5478.html create mode 100644 dir_fe5d69ed7d90cb356556070c2a2e5478.js create mode 100644 doc.png create mode 100644 doxygen.css create mode 100644 doxygen.png create mode 100644 dynsections.js create mode 100644 files.html create mode 100644 files_dup.js create mode 100644 folderclosed.png create mode 100644 folderopen.png create mode 100644 functions.html create mode 100644 functions_vars.html create mode 100644 globals.html create mode 100644 globals_defs.html create mode 100644 globals_func.html create mode 100644 globals_type.html create mode 100644 globals_vars.html create mode 100644 graph_legend.html create mode 100644 graph_legend.md5 create mode 100644 graph_legend.svg create mode 100644 jquery.js create mode 100644 menu.js create mode 100644 menudata.js create mode 100644 nav_f.png create mode 100644 nav_g.png create mode 100644 nav_h.png create mode 100644 navtree.css create mode 100644 navtree.js create mode 100644 navtreedata.js create mode 100644 navtreeindex0.js create mode 100644 navtreeindex1.js create mode 100644 navtreeindex2.js create mode 100644 open.png create mode 100644 pages.html create mode 100644 resize.js create mode 100644 search/all_0.html create mode 100644 search/all_0.js create mode 100644 search/all_1.html create mode 100644 search/all_1.js create mode 100644 search/all_10.html create mode 100644 search/all_10.js create mode 100644 search/all_11.html create mode 100644 search/all_11.js create mode 100644 search/all_12.html create mode 100644 search/all_12.js create mode 100644 search/all_13.html create mode 100644 search/all_13.js create mode 100644 search/all_14.html create mode 100644 search/all_14.js create mode 100644 search/all_15.html create mode 100644 search/all_15.js create mode 100644 search/all_16.html create mode 100644 search/all_16.js create mode 100644 search/all_2.html create mode 100644 search/all_2.js create mode 100644 search/all_3.html create mode 100644 search/all_3.js create mode 100644 search/all_4.html create mode 100644 search/all_4.js create mode 100644 search/all_5.html create mode 100644 search/all_5.js create mode 100644 search/all_6.html create mode 100644 search/all_6.js create mode 100644 search/all_7.html create mode 100644 search/all_7.js create mode 100644 search/all_8.html create mode 100644 search/all_8.js create mode 100644 search/all_9.html create mode 100644 search/all_9.js create mode 100644 search/all_a.html create mode 100644 search/all_a.js create mode 100644 search/all_b.html create mode 100644 search/all_b.js create mode 100644 search/all_c.html create mode 100644 search/all_c.js create mode 100644 search/all_d.html create mode 100644 search/all_d.js create mode 100644 search/all_e.html create mode 100644 search/all_e.js create mode 100644 search/all_f.html create mode 100644 search/all_f.js create mode 100644 search/classes_0.html create mode 100644 search/classes_0.js create mode 100644 search/classes_1.html create mode 100644 search/classes_1.js create mode 100644 search/classes_2.html create mode 100644 search/classes_2.js create mode 100644 search/classes_3.html create mode 100644 search/classes_3.js create mode 100644 search/classes_4.html create mode 100644 search/classes_4.js create mode 100644 search/classes_5.html create mode 100644 search/classes_5.js create mode 100644 search/classes_6.html create mode 100644 search/classes_6.js create mode 100644 search/classes_7.html create mode 100644 search/classes_7.js create mode 100644 search/classes_8.html create mode 100644 search/classes_8.js create mode 100644 search/classes_9.html create mode 100644 search/classes_9.js create mode 100644 search/classes_a.html create mode 100644 search/classes_a.js create mode 100644 search/classes_b.html create mode 100644 search/classes_b.js create mode 100644 search/classes_c.html create mode 100644 search/classes_c.js create mode 100644 search/classes_d.html create mode 100644 search/classes_d.js create mode 100644 search/classes_e.html create mode 100644 search/classes_e.js create mode 100644 search/classes_f.html create mode 100644 search/classes_f.js create mode 100644 search/close.png create mode 100644 search/defines_0.html create mode 100644 search/defines_0.js create mode 100644 search/defines_1.html create mode 100644 search/defines_1.js create mode 100644 search/defines_2.html create mode 100644 search/defines_2.js create mode 100644 search/defines_3.html create mode 100644 search/defines_3.js create mode 100644 search/defines_4.html create mode 100644 search/defines_4.js create mode 100644 search/defines_5.html create mode 100644 search/defines_5.js create mode 100644 search/defines_6.html create mode 100644 search/defines_6.js create mode 100644 search/files_0.html create mode 100644 search/files_0.js create mode 100644 search/files_1.html create mode 100644 search/files_1.js create mode 100644 search/files_2.html create mode 100644 search/files_2.js create mode 100644 search/files_3.html create mode 100644 search/files_3.js create mode 100644 search/files_4.html create mode 100644 search/files_4.js create mode 100644 search/files_5.html create mode 100644 search/files_5.js create mode 100644 search/files_6.html create mode 100644 search/files_6.js create mode 100644 search/files_7.html create mode 100644 search/files_7.js create mode 100644 search/files_8.html create mode 100644 search/files_8.js create mode 100644 search/files_9.html create mode 100644 search/files_9.js create mode 100644 search/files_a.html create mode 100644 search/files_a.js create mode 100644 search/files_b.html create mode 100644 search/files_b.js create mode 100644 search/functions_0.html create mode 100644 search/functions_0.js create mode 100644 search/functions_1.html create mode 100644 search/functions_1.js create mode 100644 search/functions_10.html create mode 100644 search/functions_10.js create mode 100644 search/functions_11.html create mode 100644 search/functions_11.js create mode 100644 search/functions_12.html create mode 100644 search/functions_12.js create mode 100644 search/functions_2.html create mode 100644 search/functions_2.js create mode 100644 search/functions_3.html create mode 100644 search/functions_3.js create mode 100644 search/functions_4.html create mode 100644 search/functions_4.js create mode 100644 search/functions_5.html create mode 100644 search/functions_5.js create mode 100644 search/functions_6.html create mode 100644 search/functions_6.js create mode 100644 search/functions_7.html create mode 100644 search/functions_7.js create mode 100644 search/functions_8.html create mode 100644 search/functions_8.js create mode 100644 search/functions_9.html create mode 100644 search/functions_9.js create mode 100644 search/functions_a.html create mode 100644 search/functions_a.js create mode 100644 search/functions_b.html create mode 100644 search/functions_b.js create mode 100644 search/functions_c.html create mode 100644 search/functions_c.js create mode 100644 search/functions_d.html create mode 100644 search/functions_d.js create mode 100644 search/functions_e.html create mode 100644 search/functions_e.js create mode 100644 search/functions_f.html create mode 100644 search/functions_f.js create mode 100644 search/mag_sel.png create mode 100644 search/nomatches.html create mode 100644 search/pages_0.html create mode 100644 search/pages_0.js create mode 100644 search/pages_1.html create mode 100644 search/pages_1.js create mode 100644 search/pages_2.html create mode 100644 search/pages_2.js create mode 100644 search/pages_3.html create mode 100644 search/pages_3.js create mode 100644 search/pages_4.html create mode 100644 search/pages_4.js create mode 100644 search/pages_5.html create mode 100644 search/pages_5.js create mode 100644 search/pages_6.html create mode 100644 search/pages_6.js create mode 100644 search/pages_7.html create mode 100644 search/pages_7.js create mode 100644 search/search.css create mode 100644 search/search.js create mode 100644 search/search_l.png create mode 100644 search/search_m.png create mode 100644 search/search_r.png create mode 100644 search/searchdata.js create mode 100644 search/typedefs_0.html create mode 100644 search/typedefs_0.js create mode 100644 search/typedefs_1.html create mode 100644 search/typedefs_1.js create mode 100644 search/typedefs_2.html create mode 100644 search/typedefs_2.js create mode 100644 search/variables_0.html create mode 100644 search/variables_0.js create mode 100644 search/variables_1.html create mode 100644 search/variables_1.js create mode 100644 search/variables_2.html create mode 100644 search/variables_2.js create mode 100644 search/variables_3.html create mode 100644 search/variables_3.js create mode 100644 search/variables_4.html create mode 100644 search/variables_4.js create mode 100644 search/variables_5.html create mode 100644 search/variables_5.js create mode 100644 search/variables_6.html create mode 100644 search/variables_6.js create mode 100644 search/variables_7.html create mode 100644 search/variables_7.js create mode 100644 search/variables_8.html create mode 100644 search/variables_8.js create mode 100644 splitbar.png create mode 100644 svgpan.js create mode 100644 sync_off.png create mode 100644 sync_on.png create mode 100644 tab_a.png create mode 100644 tab_b.png create mode 100644 tab_h.png create mode 100644 tab_s.png create mode 100644 tabs.css diff --git a/annotated.html b/annotated.html new file mode 100644 index 00000000..52c7a356 --- /dev/null +++ b/annotated.html @@ -0,0 +1,142 @@ + + + + + + + +Algorithms_in_C: Data Structures + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Data Structures
+
+
+
Here are the data structures with brief descriptions:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 C_big_int
 C_large_num
 Cadaline
 Carray_3d
 CAVLnode
 CBSTIterator
 CCArray
 Ccontour
 Cdata
 CDict
 Cdynamic_array
 CEdge
 Celem
 CGraph
 CGraphRep
 Chash_set_t
 CL
 Cmax_heap
 Cmin_heap
 CNode
 Cnode
 Cpid
 Cqueue
 CQueueRep
 CStack
 Csubset
 CT
 Ctnode
 CTrieNode
 Cword_count_word
+
+
+
+ + + + diff --git a/annotated_dup.js b/annotated_dup.js new file mode 100644 index 00000000..ded84537 --- /dev/null +++ b/annotated_dup.js @@ -0,0 +1,40 @@ +var annotated_dup = +[ + [ "Algorithms implemented in C (for education)", "index.html#autotoc_md32", null ], + [ "Contribute Guidelines", "index.html#autotoc_md33", null ], + [ "Overview about functions", "de/d20/md_data_structures_dictionary__r_e_a_d_m_e.html#autotoc_md9", null ], + [ "Content", "d1/d12/md_data_structures_stack__r_e_a_d_m_e.html#autotoc_md11", null ], + [ "Public interface", "d1/d12/md_data_structures_stack__r_e_a_d_m_e.html#autotoc_md12", null ], + [ "Overview", "d7/db5/md_exercism__r_e_a_d_m_e.html#autotoc_md28", null ], + [ "LeetCode Algorithm", "df/d58/md_leetcode__r_e_a_d_m_e.html#autotoc_md30", null ], + [ "_big_int", "dc/d77/struct__big__int.html", "dc/d77/struct__big__int" ], + [ "_large_num", "d3/d5a/struct__large__num.html", "d3/d5a/struct__large__num" ], + [ "adaline", "d2/daa/structadaline.html", "d2/daa/structadaline" ], + [ "array_3d", "d0/dc8/structarray__3d.html", "d0/dc8/structarray__3d" ], + [ "AVLnode", "d2/d71/struct_a_v_lnode.html", "d2/d71/struct_a_v_lnode" ], + [ "BSTIterator", "d4/d02/struct_b_s_t_iterator.html", "d4/d02/struct_b_s_t_iterator" ], + [ "CArray", "d4/d2d/struct_c_array.html", "d4/d2d/struct_c_array" ], + [ "contour", "d2/d89/structcontour.html", "d2/d89/structcontour" ], + [ "data", "df/dea/structdata.html", "df/dea/structdata" ], + [ "Dict", "d4/dfe/struct_dict.html", "d4/dfe/struct_dict" ], + [ "dynamic_array", "d6/d42/structdynamic__array.html", "d6/d42/structdynamic__array" ], + [ "Edge", "d5/db4/struct_edge.html", "d5/db4/struct_edge" ], + [ "elem", "d0/d6b/structelem.html", "d0/d6b/structelem" ], + [ "Graph", "d4/dd4/struct_graph.html", "d4/dd4/struct_graph" ], + [ "GraphRep", "d2/d6a/struct_graph_rep.html", "d2/d6a/struct_graph_rep" ], + [ "hash_set_t", "d0/df1/structhash__set__t.html", "d0/df1/structhash__set__t" ], + [ "L", "df/db3/struct_l.html", "df/db3/struct_l" ], + [ "max_heap", "d0/d8a/structmax__heap.html", "d0/d8a/structmax__heap" ], + [ "min_heap", "de/dce/structmin__heap.html", "de/dce/structmin__heap" ], + [ "Node", "db/d8b/struct_node.html", "db/d8b/struct_node" ], + [ "node", "d5/da1/structnode.html", "d5/da1/structnode" ], + [ "pid", "d0/d43/structpid.html", "d0/d43/structpid" ], + [ "queue", "d2/d36/structqueue.html", "d2/d36/structqueue" ], + [ "QueueRep", "d0/d10/struct_queue_rep.html", "d0/d10/struct_queue_rep" ], + [ "Stack", "dd/d10/struct_stack.html", "dd/d10/struct_stack" ], + [ "subset", "dc/de5/structsubset.html", "dc/de5/structsubset" ], + [ "T", "d5/d7e/struct_t.html", "d5/d7e/struct_t" ], + [ "tnode", "d8/d7a/structtnode.html", "d8/d7a/structtnode" ], + [ "TrieNode", "da/d9b/struct_trie_node.html", "da/d9b/struct_trie_node" ], + [ "word_count_word", "df/ddb/structword__count__word.html", "df/ddb/structword__count__word" ] +]; \ No newline at end of file diff --git a/bc_s.png b/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/bdwn.png b/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 + + + + + + +Algorithms_in_C: Data Structure Index + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Data Structure Index
+
+
+
_ | a | b | c | d | e | g | h | l | m | n | p | q | s | t | w
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  _  
+
contour   GraphRep   node   tnode   
  d  
+
  h  
+
  p  
+
TrieNode   
_big_int   
  w  
+
_large_num   data   hash_set_t   pid   
  a  
+
Dict   
  l  
+
  q  
+
word_count_word   
dynamic_array   
adaline   
  e  
+
L   queue   
array_3d   
  m  
+
QueueRep   
AVLnode   Edge   
  s  
+
  b  
+
elem   max_heap   
  g  
+
min_heap   Stack   
BSTIterator   
  n  
+
subset   
  c  
+
Graph   
  t  
+
Node   
CArray   T   
+
_ | a | b | c | d | e | g | h | l | m | n | p | q | s | t | w
+
+
+ + + + diff --git a/closed.png b/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/d0/d04/qr__decompose_8h__incl.map b/d0/d04/qr__decompose_8h__incl.map new file mode 100644 index 00000000..323b1159 --- /dev/null +++ b/d0/d04/qr__decompose_8h__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/d0/d04/qr__decompose_8h__incl.md5 b/d0/d04/qr__decompose_8h__incl.md5 new file mode 100644 index 00000000..2e40d44c --- /dev/null +++ b/d0/d04/qr__decompose_8h__incl.md5 @@ -0,0 +1 @@ +31376522027f3dcda46e86fa1a241d23 \ No newline at end of file diff --git a/d0/d04/qr__decompose_8h__incl.svg b/d0/d04/qr__decompose_8h__incl.svg new file mode 100644 index 00000000..af61e19f --- /dev/null +++ b/d0/d04/qr__decompose_8h__incl.svg @@ -0,0 +1,68 @@ + + + + + + +numerical_methods/qr_decompose.h + + + +Node1 + + +numerical_methods/qr +_decompose.h + + + + + +Node2 + + +math.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + diff --git a/d0/d10/struct_queue_rep.html b/d0/d10/struct_queue_rep.html new file mode 100644 index 00000000..dbf2b0dc --- /dev/null +++ b/d0/d10/struct_queue_rep.html @@ -0,0 +1,133 @@ + + + + + + + +Algorithms_in_C: QueueRep Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
QueueRep Struct Reference
+
+
+
+Collaboration diagram for QueueRep:
+
+
+
+
[legend]
+ + + + + + + + +

+Data Fields

+int length
 
+NodeThead
 
+NodeTtail
 
+
The documentation for this struct was generated from the following file:
    +
  • data_structures/graphs/queue.c
  • +
+
+
+ + + + diff --git a/d0/d10/struct_queue_rep.js b/d0/d10/struct_queue_rep.js new file mode 100644 index 00000000..80bfe186 --- /dev/null +++ b/d0/d10/struct_queue_rep.js @@ -0,0 +1,6 @@ +var struct_queue_rep = +[ + [ "head", "d0/d10/struct_queue_rep.html#ad4f9f3b0f81ea8c768d4c45548a590de", null ], + [ "length", "d0/d10/struct_queue_rep.html#aad9e10b8e2e0a821d374a154240e22c6", null ], + [ "tail", "d0/d10/struct_queue_rep.html#a5ca79e0a97550d8938331d90ce585a35", null ] +]; \ No newline at end of file diff --git a/d0/d1f/structnode__coll__graph.map b/d0/d1f/structnode__coll__graph.map new file mode 100644 index 00000000..46879c1a --- /dev/null +++ b/d0/d1f/structnode__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/d0/d1f/structnode__coll__graph.md5 b/d0/d1f/structnode__coll__graph.md5 new file mode 100644 index 00000000..e9a34007 --- /dev/null +++ b/d0/d1f/structnode__coll__graph.md5 @@ -0,0 +1 @@ +9368a08a51646ec65cca83a26b4cf4a6 \ No newline at end of file diff --git a/d0/d1f/structnode__coll__graph.svg b/d0/d1f/structnode__coll__graph.svg new file mode 100644 index 00000000..274fb08f --- /dev/null +++ b/d0/d1f/structnode__coll__graph.svg @@ -0,0 +1,36 @@ + + + + + + +node + + + +Node1 + + +node + + + + + +Node1->Node1 + + + leftNode +next +right +left +par +link +pre +rightNode + + + diff --git a/d0/d3d/problem__8_2sol2_8c__incl.map b/d0/d3d/problem__8_2sol2_8c__incl.map new file mode 100644 index 00000000..0ae87c43 --- /dev/null +++ b/d0/d3d/problem__8_2sol2_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/d0/d3d/problem__8_2sol2_8c__incl.md5 b/d0/d3d/problem__8_2sol2_8c__incl.md5 new file mode 100644 index 00000000..d7fa2b47 --- /dev/null +++ b/d0/d3d/problem__8_2sol2_8c__incl.md5 @@ -0,0 +1 @@ +468c0e62d07fbe47baf80a3ccbcb84d3 \ No newline at end of file diff --git a/d0/d3d/problem__8_2sol2_8c__incl.svg b/d0/d3d/problem__8_2sol2_8c__incl.svg new file mode 100644 index 00000000..d1d3c61a --- /dev/null +++ b/d0/d3d/problem__8_2sol2_8c__incl.svg @@ -0,0 +1,68 @@ + + + + + + +project_euler/problem_8/sol2.c + + + +Node1 + + +project_euler/problem +_8/sol2.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + +Node4 + + +string.h + + + + + +Node1->Node4 + + + + + diff --git a/d0/d43/structpid.html b/d0/d43/structpid.html new file mode 100644 index 00000000..36c162b2 --- /dev/null +++ b/d0/d43/structpid.html @@ -0,0 +1,146 @@ + + + + + + + +Algorithms_in_C: pid Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
pid Struct Reference
+
+
+ + + + + + + + + + + + +

+Data Fields

+float kP
 
+float kI
 
+float kD
 
+float lastError
 
+float integral
 
+

Detailed Description

+

PID Controller

+

The PID controller is a linear control algorithm that has three terms:

    +
  • Proportional: A simple scaling of the error value by a gain kP
  • +
  • Integral: Integration of the error value over time, then multipled by gain kI
  • +
  • Derivative: Rate of change of the error value over time, multiplied by gain kD
  • +
+

Terms of the controller can be removed by setting their gain to 0, creating a PI (kD = 0) or PD (kI = 0) controller. Depending on the control problem at hand, some terms may not increase the performance of the system, or may have a negative effect.

+

For a more mathematical expanation of the PID Controller, see https://en.wikipedia.org/wiki/PID_controller

+

Limitations of this implementation:

    +
  • Since this implementation is just for demonstration, the pid_step function takes the dt as a parameter, and it can be provided by the user in main(). This allows deterministic experimentation with the algorithm, rather than using time(NULL) which would make the function non-deterministic.
  • +
+

Inputs: e(t) - Current error at time t. For example, how far a servo is off the desired angle Output: u(t) - Controller output at time t.

+

The documentation for this struct was generated from the following file:
    +
  • misc/pid.c
  • +
+
+
+ + + + diff --git a/d0/d43/structpid.js b/d0/d43/structpid.js new file mode 100644 index 00000000..719bde8e --- /dev/null +++ b/d0/d43/structpid.js @@ -0,0 +1,8 @@ +var structpid = +[ + [ "integral", "d0/d43/structpid.html#a3c54185f7b4867281786eff640443a00", null ], + [ "kD", "d0/d43/structpid.html#a6c721a7983511fb9f91777ae45481473", null ], + [ "kI", "d0/d43/structpid.html#a65e8bc146e02bad2702a0286d37b81bc", null ], + [ "kP", "d0/d43/structpid.html#a5a7b54866748e12568f9b9599b31f8eb", null ], + [ "lastError", "d0/d43/structpid.html#ad661092f21ab1e0e6aa35fbcfcf6f161", null ] +]; \ No newline at end of file diff --git a/d0/d46/kohonen__som__trace_8c.html b/d0/d46/kohonen__som__trace_8c.html new file mode 100644 index 00000000..c66bcd83 --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c.html @@ -0,0 +1,1083 @@ + + + + + + + +Algorithms_in_C: machine_learning/kohonen_som_trace.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
kohonen_som_trace.c File Reference
+
+
+ +

Kohonen self organizing map (data tracing) +More...

+
#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for kohonen_som_trace.c:
+
+
+
+
+
+ + + + + + + +

+Macros

#define _USE_MATH_DEFINES
 
#define max(a, b)   (((a) > (b)) ? (a) : (b))
 
#define min(a, b)   (((a) < (b)) ? (a) : (b))
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

double _random (double a, double b)
 
int save_nd_data (const char *fname, double **X, int num_points, int num_features)
 
void get_min_1d (double const *X, int N, double *val, int *idx)
 
void update_weights (double const *x, double *const *W, double *D, int num_out, int num_features, double alpha, int R)
 
void kohonen_som_tracer (double **X, double *const *W, int num_samples, int num_features, int num_out, double alpha_min)
 
void test_circle (double *const *data, int N)
 
void test1 ()
 
void test_lamniscate (double *const *data, int N)
 
void test2 ()
 
void test_3d_classes (double *const *data, int N)
 
void test3 ()
 
double get_clock_diff (clock_t start_t, clock_t end_t)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Kohonen self organizing map (data tracing)

+
Author
Krishna Vedala
+

This example implements a powerful self organizing map algorithm. The algorithm creates a connected network of weights that closely follows the given data points. This this creates a chain of nodes that resembles the given input shape.

See also
kohonen_som_topology.c
+

Macro Definition Documentation

+ +

◆ _USE_MATH_DEFINES

+ +
+
+ + + + +
#define _USE_MATH_DEFINES
+
+

required for MS Visual C

+ +
+
+ +

◆ max

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define max( a,
 
)   (((a) > (b)) ? (a) : (b))
+
+

shorthand for maximum value \

+ +
+
+ +

◆ min

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define min( a,
 
)   (((a) < (b)) ? (a) : (b))
+
+

shorthand for minimum value \

+ +
+
+

Function Documentation

+ +

◆ _random()

+ +
+
+ + + + + + + + + + + + + + + + + + +
double _random (double a,
double b 
)
+
+

Helper function to generate a random number in a given interval.
+ Steps:

    +
  1. r1 = rand() % 100 gets a random number between 0 and 99
  2. +
  3. r2 = r1 / 100 converts random number to be between 0 and 0.99
  4. +
  5. scale and offset the random number to given range of \([a,b)\)

    +\[ y = (b - a) \times \frac{\text{(random number between 0 and RAND_MAX)} \; \text{mod}\; 100}{100} + a \] +

    +
  6. +
+
Parameters
+ + + +
[in]alower limit
[in]bupper limit
+
+
+
Returns
random number in the range \([a,b)\)
+
65 {
+
+
+
+ +

◆ get_clock_diff()

+ +
+
+ + + + + + + + + + + + + + + + + + +
double get_clock_diff (clock_t start_t,
clock_t end_t 
)
+
+

Convert clock cycle difference to time in seconds

+
Parameters
+ + + +
[in]start_tstart clock
[in]end_tend clock
+
+
+
Returns
time difference in seconds
+
506 {
+
+
+
+ +

◆ get_min_1d()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void get_min_1d (double const * X,
int N,
double * val,
int * idx 
)
+
+

Get minimum value and index of the value in a vector

Parameters
+ + + + + +
[in]xvector to search
[in]Nnumber of points in the vector
[out]valminimum value found
[out]idxindex where minimum value was found
+
+
+
102  {
+
103  if (X[i] < val[0]) // if a lower value is found
+
104  { // save the value and its index
+
105  idx[0] = i;
+
106  val[0] = X[i];
+
107  }
+
108  }
+
109 }
+
110 
+
111 /**
+
+
+
+ +

◆ kohonen_som_tracer()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void kohonen_som_tracer (double ** X,
double *const * W,
int num_samples,
int num_features,
int num_out,
double alpha_min 
)
+
+

Apply incremental algorithm with updating neighborhood and learning rates on all samples in the given datset.

+
Parameters
+ + + + + + + + +
[in]Xdata set
[in,out]Wweights matrix
[in]Dtemporary vector to store distances
[in]num_samplesnumber of output points
[in]num_featuresnumber of features per input sample
[in]num_outnumber of output points
[in]alpha_minterminal value of alpha
+
+
+
175 {
+
176  int R = num_out >> 2, iter = 0;
+
177  double alpha = 1.f;
+
178  double *D = (double *)malloc(num_out * sizeof(double));
+
179 
+
180  // Loop alpha from 1 to slpha_min
+
181  for (; alpha > alpha_min; alpha -= 0.01, iter++)
+
182  {
+
183  // Loop for each sample pattern in the data set
+
184  for (int sample = 0; sample < num_samples; sample++)
+
185  {
+
186  const double *x = X[sample];
+
187  // update weights for the current input pattern sample
+
188  update_weights(x, W, D, num_out, num_features, alpha, R);
+
189  }
+
190 
+
191  // every 10th iteration, reduce the neighborhood range
+
192  if (iter % 10 == 0 && R > 1)
+
193  R--;
+
194  }
+
195 
+
196  free(D);
+
197 }
+
198 
+
199 /** Creates a random set of points distributed *near* the circumference
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ main()

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

Main function

+
527  : Calculated times include: creating test sets, training "
+
528  "model and writing files to disk.)\n\n");
+
529  return 0;
+
530 }
+
+
+
+ +

◆ save_nd_data()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int save_nd_data (const char * fname,
double ** X,
int num_points,
int num_features 
)
+
+

Save a given n-dimensional data martix to file.

+
Parameters
+ + + + + +
[in]fnamefilename to save in (gets overwriten without confirmation)
[in]Xmatrix to save
[in]num_pointsrows in the matrix = number of points
[in]num_featurescolumns in the matrix = dimensions of points
+
+
+
Returns
0 if all ok
+
+-1 if file creation failed
+
65 {
+
66  FILE *fp = fopen(fname, "wt");
+
67  if (!fp) // error with fopen
+
68  {
+
69  char msg[120];
+
70  sprintf(msg, "File error (%s): ", fname);
+
71  perror(msg);
+
72  return -1;
+
73  }
+
74 
+
75  for (int i = 0; i < num_points; i++) // for each point in the array
+
76  {
+
77  for (int j = 0; j < num_features; j++) // for each feature in the array
+
78  {
+
79  fprintf(fp, "%.4g", X[i][j]); // print the feature value
+
80  if (j < num_features - 1) // if not the last feature
+
81  fprintf(fp, ","); // suffix comma
+
82  }
+
83  if (i < num_points - 1) // if not the last row
+
84  fprintf(fp, "\n"); // start a new line
+
85  }
+
86  fclose(fp);
+
87  return 0;
+
88 }
+
89 
+
90 /**
+
+
+
+ +

◆ test1()

+ +
+
+ + + + + + + +
void test1 ()
+
+

Test that creates a random set of points distributed near the circumference of a circle and trains an SOM that finds that circular pattern. The following CSV files are created to validate the execution:

    +
  • test1.csv: random test samples points with a circular pattern
  • +
  • w11.csv: initial random map
  • +
  • w12.csv: trained SOM map
  • +
+

The outputs can be readily plotted in gnuplot using the following snippet

set datafile separator ','
+
plot "test1.csv" title "original", \
+
"w11.csv" title "w1", \
+
"w12.csv" title "w2"
+

Sample execution
+output

+
263  {
+
264  if (i < N) // only add new arrays if i < N
+
265  X[i] = (double *)malloc(features * sizeof(double));
+
266  if (i < num_out) // only add new arrays if i < num_out
+
267  {
+
268  W[i] = (double *)malloc(features * sizeof(double));
+
269 #ifdef _OPENMP
+
270 #pragma omp for
+
271 #endif
+
272  // preallocate with random initial weights
+
273  for (j = 0; j < features; j++)
+
274  W[i][j] = _random(-1, 1);
+
275  }
+
276  }
+
277 
+
278  test_circle(X, N); // create test data around circumference of a circle
+
279  save_nd_data("test1.csv", X, N, features); // save test data points
+
280  save_nd_data("w11.csv", W, num_out,
+
281  features); // save initial random weights
+
282  kohonen_som_tracer(X, W, N, features, num_out, 0.1); // train the SOM
+
283  save_nd_data("w12.csv", W, num_out, features); // save the resultant weights
+
284 
+
285  for (int i = 0; i < max(num_out, N); i++)
+
286  {
+
287  if (i < N)
+
288  free(X[i]);
+
289  if (i < num_out)
+
290  free(W[i]);
+
291  }
+
292 }
+
293 
+
294 /** Creates a random set of points distributed *near* the locus
+
+
+
+ +

◆ test2()

+ +
+
+ + + + + + + +
void test2 ()
+
+

Test that creates a random set of points distributed near the locus of the Lamniscate of Gerono and trains an SOM that finds that circular pattern. The following CSV files are created to validate the execution:

    +
  • test2.csv: random test samples points with a lamniscate pattern
  • +
  • w21.csv: initial random map
  • +
  • w22.csv: trained SOM map
  • +
+

The outputs can be readily plotted in gnuplot using the following snippet

set datafile separator ','
+
plot "test2.csv" title "original", \
+
"w21.csv" title "w1", \
+
"w22.csv" title "w2"
+

Sample execution
+output

+
355  {
+
356  if (i < N) // only add new arrays if i < N
+
357  X[i] = (double *)malloc(features * sizeof(double));
+
358  if (i < num_out) // only add new arrays if i < num_out
+
359  {
+
360  W[i] = (double *)malloc(features * sizeof(double));
+
361 
+
362 #ifdef _OPENMP
+
363 #pragma omp for
+
364 #endif
+
365  // preallocate with random initial weights
+
366  for (j = 0; j < features; j++)
+
367  W[i][j] = _random(-1, 1);
+
368  }
+
369  }
+
370 
+
371  test_lamniscate(X, N); // create test data around the lamniscate
+
372  save_nd_data("test2.csv", X, N, features); // save test data points
+
373  save_nd_data("w21.csv", W, num_out,
+
374  features); // save initial random weights
+
375  kohonen_som_tracer(X, W, N, features, num_out, 0.01); // train the SOM
+
376  save_nd_data("w22.csv", W, num_out, features); // save the resultant weights
+
377 
+
378  for (int i = 0; i < max(num_out, N); i++)
+
379  {
+
380  if (i < N)
+
381  free(X[i]);
+
382  if (i < num_out)
+
383  free(W[i]);
+
384  }
+
385  free(X);
+
386  free(W);
+
387 }
+
388 
+
389 /** Creates a random set of points distributed in four clusters in
+
+
+
+ +

◆ test3()

+ +
+
+ + + + + + + +
void test3 ()
+
+

Test that creates a random set of points distributed in six clusters in 3D space. The following CSV files are created to validate the execution:

    +
  • test3.csv: random test samples points with a circular pattern
  • +
  • w31.csv: initial random map
  • +
  • w32.csv: trained SOM map
  • +
+

The outputs can be readily plotted in gnuplot using the following snippet

set datafile separator ','
+
plot "test3.csv" title "original", \
+
"w31.csv" title "w1", \
+
"w32.csv" title "w2"
+

Sample execution
+output

+
458  {
+
459  if (i < N) // only add new arrays if i < N
+
460  X[i] = (double *)malloc(features * sizeof(double));
+
461  if (i < num_out) // only add new arrays if i < num_out
+
462  {
+
463  W[i] = (double *)malloc(features * sizeof(double));
+
464 
+
465 #ifdef _OPENMP
+
466 #pragma omp for
+
467 #endif
+
468  // preallocate with random initial weights
+
469  for (j = 0; j < features; j++)
+
470  W[i][j] = _random(-1, 1);
+
471  }
+
472  }
+
473 
+
474  test_3d_classes(X, N); // create test data around the lamniscate
+
475  save_nd_data("test3.csv", X, N, features); // save test data points
+
476  save_nd_data("w31.csv", W, num_out,
+
477  features); // save initial random weights
+
478  kohonen_som_tracer(X, W, N, features, num_out, 0.01); // train the SOM
+
479  save_nd_data("w32.csv", W, num_out, features); // save the resultant weights
+
480 
+
481  for (int i = 0; i < max(num_out, N); i++)
+
482  {
+
483  if (i < N)
+
484  free(X[i]);
+
485  if (i < num_out)
+
486  free(W[i]);
+
487  }
+
488  free(X);
+
489  free(W);
+
490 }
+
491 
+
492 /**
+
+
+
+ +

◆ test_3d_classes()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void test_3d_classes (double *const * data,
int N 
)
+
+

Creates a random set of points distributed in four clusters in 3D space with centroids at the points

    +
  • \((0,5, 0.5, 0.5)\)
  • +
  • \((0,5,-0.5, -0.5)\)
  • +
  • \((-0,5, 0.5, 0.5)\)
  • +
  • \((-0,5,-0.5, -0.5)\)
  • +
+
Parameters
+ + + +
[out]datamatrix to store data in
[in]Nnumber of points required
+
+
+
404  {
+
405  // centres of each class cluster
+
406  {.5, .5, .5}, // centre of class 1
+
407  {.5, -.5, -.5}, // centre of class 2
+
408  {-.5, .5, .5}, // centre of class 3
+
409  {-.5, -.5 - .5} // centre of class 4
+
410  };
+
411 
+
412 #ifdef _OPENMP
+
413 #pragma omp for
+
414 #endif
+
415  for (i = 0; i < N; i++)
+
416  {
+
417  int class = rand() % num_classes; // select a random class for the point
+
418 
+
419  // create random coordinates (x,y,z) around the centre of the class
+
420  data[i][0] = _random(centres[class][0] - R, centres[class][0] + R);
+
421  data[i][1] = _random(centres[class][1] - R, centres[class][1] + R);
+
422  data[i][2] = _random(centres[class][2] - R, centres[class][2] + R);
+
423 
+
424  /* The follosing can also be used
+
425  for (int j = 0; j < 3; j++)
+
426  data[i][j] = _random(centres[class][j] - R, centres[class][j] + R);
+
427  */
+
428  }
+
429 }
+
430 
+
431 /** Test that creates a random set of points distributed in six clusters in
+
+
+
+ +

◆ test_circle()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void test_circle (double *const * data,
int N 
)
+
+

Creates a random set of points distributed near the circumference of a circle and trains an SOM that finds that circular pattern. The generating function is

+\begin{eqnarray*} r &\in& [1-\delta r, 1+\delta r)\\ \theta &\in& [0, 2\pi)\\ x &=& r\cos\theta\\ y &=& r\sin\theta \end{eqnarray*} +

+
Parameters
+ + + +
[out]datamatrix to store data in
[in]Nnumber of points required
+
+
+
223  {
+
224  double r = _random(a_r, b_r); // random radius
+
225  double theta = _random(a_t, b_t); // random theta
+
226  data[i][0] = r * cos(theta); // convert from polar to cartesian
+
227  data[i][1] = r * sin(theta);
+
228  }
+
229 }
+
230 
+
231 /** Test that creates a random set of points distributed *near* the
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ test_lamniscate()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void test_lamniscate (double *const * data,
int N 
)
+
+

Creates a random set of points distributed near the locus of the Lamniscate of Gerono.

+\begin{eqnarray*} \delta r &=& 0.2\\ \delta x &\in& [-\delta r, \delta r)\\ \delta y &\in& [-\delta r, \delta r)\\ \theta &\in& [0, \pi)\\ x &=& \delta x + \cos\theta\\ y &=& \delta y + \frac{\sin(2\theta)}{2} \end{eqnarray*} +

+
Parameters
+ + + +
[out]datamatrix to store data in
[in]Nnumber of points required
+
+
+
317  {
+
318  double dx = _random(-dr, dr); // random change in x
+
319  double dy = _random(-dr, dr); // random change in y
+
320  double theta = _random(0, M_PI); // random theta
+
321  data[i][0] = dx + cos(theta); // convert from polar to cartesian
+
322  data[i][1] = dy + sin(2. * theta) / 2.f;
+
323  }
+
324 }
+
325 
+
326 /** Test that creates a random set of points distributed *near* the locus
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ update_weights()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void update_weights (double const * x,
double *const * W,
double * D,
int num_out,
int num_features,
double alpha,
int R 
)
+
+

Update weights of the SOM using Kohonen algorithm

+
Parameters
+ + + + + + + + +
[in]Xdata point
[in,out]Wweights matrix
[in,out]Dtemporary vector to store distances
[in]num_outnumber of output points
[in]num_featuresnumber of features per input sample
[in]alphalearning rate \(0<\alpha\le1\)
[in]Rneighborhood range
+
+
+
124 {
+
125  int j, k;
+
126 
+
127 #ifdef _OPENMP
+
128 #pragma omp for
+
129 #endif
+
130  // step 1: for each output point
+
131  for (j = 0; j < num_out; j++)
+
132  {
+
133  D[j] = 0.f;
+
134  // compute Euclidian distance of each output
+
135  // point from the current sample
+
136  for (k = 0; k < num_features; k++)
+
137  D[j] += (W[j][k] - x[k]) * (W[j][k] - x[k]);
+
138  }
+
139 
+
140  // step 2: get closest node i.e., node with snallest Euclidian distance to
+
141  // the current pattern
+
142  int d_min_idx;
+
143  double d_min;
+
144  get_min_1d(D, num_out, &d_min, &d_min_idx);
+
145 
+
146  // step 3a: get the neighborhood range
+
147  int from_node = max(0, d_min_idx - R);
+
148  int to_node = min(num_out, d_min_idx + R + 1);
+
149 
+
150  // step 3b: update the weights of nodes in the
+
151  // neighborhood
+
152 #ifdef _OPENMP
+
153 #pragma omp for
+
154 #endif
+
155  for (j = from_node; j < to_node; j++)
+
156  for (k = 0; k < num_features; k++)
+
157  // update weights of nodes in the neighborhood
+
158  W[j][k] += alpha * (x[k] - W[j][k]);
+
159 }
+
160 
+
161 /**
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
int save_nd_data(const char *fname, double **X, int num_points, int num_features)
Definition: kohonen_som_trace.c:65
+
#define max(a, b)
Definition: kohonen_som_trace.c:24
+
void test_circle(double *const *data, int N)
Definition: kohonen_som_trace.c:214
+
Definition: prime_factoriziation.c:25
+
void kohonen_som_tracer(double **X, double *const *W, int num_samples, int num_features, int num_out, double alpha_min)
Definition: kohonen_som_trace.c:175
+
void update_weights(double const *x, double *const *W, double *D, int num_out, int num_features, double alpha, int R)
Definition: kohonen_som_trace.c:124
+
#define N
Definition: sol1.c:111
+
void get_min_1d(double const *X, int N, double *val, int *idx)
Definition: kohonen_som_trace.c:99
+
double _random(double a, double b)
Definition: kohonen_som_trace.c:50
+
void test_lamniscate(double *const *data, int N)
Definition: kohonen_som_trace.c:310
+
#define min(a, b)
Definition: kohonen_som_trace.c:30
+
void test_3d_classes(double *const *data, int N)
Definition: kohonen_som_trace.c:401
+ + + + diff --git a/d0/d46/kohonen__som__trace_8c.js b/d0/d46/kohonen__som__trace_8c.js new file mode 100644 index 00000000..0bfeb337 --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c.js @@ -0,0 +1,19 @@ +var kohonen__som__trace_8c = +[ + [ "_USE_MATH_DEFINES", "d0/d46/kohonen__som__trace_8c.html#a525335710b53cb064ca56b936120431e", null ], + [ "max", "d0/d46/kohonen__som__trace_8c.html#affe776513b24d84b39af8ab0930fef7f", null ], + [ "min", "d0/d46/kohonen__som__trace_8c.html#ac6afabdc09a49a433ee19d8a9486056d", null ], + [ "_random", "d0/d46/kohonen__som__trace_8c.html#af5ce14f026d6d231bef29161bac2b485", null ], + [ "get_clock_diff", "d0/d46/kohonen__som__trace_8c.html#a2256c10b16edba377b64a44b6c656908", null ], + [ "get_min_1d", "d0/d46/kohonen__som__trace_8c.html#a0a292ebd954c568934b1fd06666d27e6", null ], + [ "kohonen_som_tracer", "d0/d46/kohonen__som__trace_8c.html#aeaeffbff2be4d5d15b0d4f10f846abde", null ], + [ "main", "d0/d46/kohonen__som__trace_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "save_nd_data", "d0/d46/kohonen__som__trace_8c.html#a7b84b14e60f47812b581d1f93057c85a", null ], + [ "test1", "d0/d46/kohonen__som__trace_8c.html#a1440a7779ac56f47a3f355ce4a8c7da0", null ], + [ "test2", "d0/d46/kohonen__som__trace_8c.html#a0283886819c7c140a023582b7269e2d0", null ], + [ "test3", "d0/d46/kohonen__som__trace_8c.html#a6d0455dd5c30adda100e95f0423c786e", null ], + [ "test_3d_classes", "d0/d46/kohonen__som__trace_8c.html#a41ae16442e3e5b891a58d2e5932a2cd0", null ], + [ "test_circle", "d0/d46/kohonen__som__trace_8c.html#a107f00650b8041f77767927073ddddb8", null ], + [ "test_lamniscate", "d0/d46/kohonen__som__trace_8c.html#aa2246f940155472084ee461f3685d614", null ], + [ "update_weights", "d0/d46/kohonen__som__trace_8c.html#a9c98203f55242ff7a8f45a6370840e66", null ] +]; \ No newline at end of file diff --git a/d0/d46/kohonen__som__trace_8c_a107f00650b8041f77767927073ddddb8_cgraph.map b/d0/d46/kohonen__som__trace_8c_a107f00650b8041f77767927073ddddb8_cgraph.map new file mode 100644 index 00000000..d770d00f --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c_a107f00650b8041f77767927073ddddb8_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d0/d46/kohonen__som__trace_8c_a107f00650b8041f77767927073ddddb8_cgraph.md5 b/d0/d46/kohonen__som__trace_8c_a107f00650b8041f77767927073ddddb8_cgraph.md5 new file mode 100644 index 00000000..bcae8c2e --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c_a107f00650b8041f77767927073ddddb8_cgraph.md5 @@ -0,0 +1 @@ +ce0410fad29b3e83b825e08bc319f181 \ No newline at end of file diff --git a/d0/d46/kohonen__som__trace_8c_a107f00650b8041f77767927073ddddb8_cgraph.svg b/d0/d46/kohonen__som__trace_8c_a107f00650b8041f77767927073ddddb8_cgraph.svg new file mode 100644 index 00000000..c19c0276 --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c_a107f00650b8041f77767927073ddddb8_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +test_circle + + + +Node1 + + +test_circle + + + + + +Node2 + + +_random + + + + + +Node1->Node2 + + + + + diff --git a/d0/d46/kohonen__som__trace_8c_a9c98203f55242ff7a8f45a6370840e66_cgraph.map b/d0/d46/kohonen__som__trace_8c_a9c98203f55242ff7a8f45a6370840e66_cgraph.map new file mode 100644 index 00000000..93ad8d51 --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c_a9c98203f55242ff7a8f45a6370840e66_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d0/d46/kohonen__som__trace_8c_a9c98203f55242ff7a8f45a6370840e66_cgraph.md5 b/d0/d46/kohonen__som__trace_8c_a9c98203f55242ff7a8f45a6370840e66_cgraph.md5 new file mode 100644 index 00000000..a023f0bf --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c_a9c98203f55242ff7a8f45a6370840e66_cgraph.md5 @@ -0,0 +1 @@ +39b9c9e997212cad5dab8e8d374f3bc2 \ No newline at end of file diff --git a/d0/d46/kohonen__som__trace_8c_a9c98203f55242ff7a8f45a6370840e66_cgraph.svg b/d0/d46/kohonen__som__trace_8c_a9c98203f55242ff7a8f45a6370840e66_cgraph.svg new file mode 100644 index 00000000..92fa204c --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c_a9c98203f55242ff7a8f45a6370840e66_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +update_weights + + + +Node1 + + +update_weights + + + + + +Node2 + + +get_min_1d + + + + + +Node1->Node2 + + + + + diff --git a/d0/d46/kohonen__som__trace_8c_aa2246f940155472084ee461f3685d614_cgraph.map b/d0/d46/kohonen__som__trace_8c_aa2246f940155472084ee461f3685d614_cgraph.map new file mode 100644 index 00000000..b39eacc9 --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c_aa2246f940155472084ee461f3685d614_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d0/d46/kohonen__som__trace_8c_aa2246f940155472084ee461f3685d614_cgraph.md5 b/d0/d46/kohonen__som__trace_8c_aa2246f940155472084ee461f3685d614_cgraph.md5 new file mode 100644 index 00000000..62404f04 --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c_aa2246f940155472084ee461f3685d614_cgraph.md5 @@ -0,0 +1 @@ +f1133d56cd92d73cc3004300fc82db70 \ No newline at end of file diff --git a/d0/d46/kohonen__som__trace_8c_aa2246f940155472084ee461f3685d614_cgraph.svg b/d0/d46/kohonen__som__trace_8c_aa2246f940155472084ee461f3685d614_cgraph.svg new file mode 100644 index 00000000..fc23eed1 --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c_aa2246f940155472084ee461f3685d614_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +test_lamniscate + + + +Node1 + + +test_lamniscate + + + + + +Node2 + + +_random + + + + + +Node1->Node2 + + + + + diff --git a/d0/d46/kohonen__som__trace_8c_aeaeffbff2be4d5d15b0d4f10f846abde_cgraph.map b/d0/d46/kohonen__som__trace_8c_aeaeffbff2be4d5d15b0d4f10f846abde_cgraph.map new file mode 100644 index 00000000..1494460b --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c_aeaeffbff2be4d5d15b0d4f10f846abde_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d0/d46/kohonen__som__trace_8c_aeaeffbff2be4d5d15b0d4f10f846abde_cgraph.md5 b/d0/d46/kohonen__som__trace_8c_aeaeffbff2be4d5d15b0d4f10f846abde_cgraph.md5 new file mode 100644 index 00000000..f99e3ec1 --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c_aeaeffbff2be4d5d15b0d4f10f846abde_cgraph.md5 @@ -0,0 +1 @@ +581ef7f0b2099f2c0ba66f8824e73bc9 \ No newline at end of file diff --git a/d0/d46/kohonen__som__trace_8c_aeaeffbff2be4d5d15b0d4f10f846abde_cgraph.svg b/d0/d46/kohonen__som__trace_8c_aeaeffbff2be4d5d15b0d4f10f846abde_cgraph.svg new file mode 100644 index 00000000..7e3d3d5b --- /dev/null +++ b/d0/d46/kohonen__som__trace_8c_aeaeffbff2be4d5d15b0d4f10f846abde_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +kohonen_som_tracer + + + +Node1 + + +kohonen_som_tracer + + + + + +Node2 + + +update_weights + + + + + +Node1->Node2 + + + + + +Node3 + + +get_min_1d + + + + + +Node2->Node3 + + + + + diff --git a/d0/d59/problem__9_2sol2_8c__incl.map b/d0/d59/problem__9_2sol2_8c__incl.map new file mode 100644 index 00000000..9023aa2a --- /dev/null +++ b/d0/d59/problem__9_2sol2_8c__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d0/d59/problem__9_2sol2_8c__incl.md5 b/d0/d59/problem__9_2sol2_8c__incl.md5 new file mode 100644 index 00000000..fc99a3a8 --- /dev/null +++ b/d0/d59/problem__9_2sol2_8c__incl.md5 @@ -0,0 +1 @@ +67c109abd825089176c2958c69fd201b \ No newline at end of file diff --git a/d0/d59/problem__9_2sol2_8c__incl.svg b/d0/d59/problem__9_2sol2_8c__incl.svg new file mode 100644 index 00000000..81e21da9 --- /dev/null +++ b/d0/d59/problem__9_2sol2_8c__incl.svg @@ -0,0 +1,53 @@ + + + + + + +project_euler/problem_9/sol2.c + + + +Node1 + + +project_euler/problem +_9/sol2.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + diff --git a/d0/d6b/structelem.html b/d0/d6b/structelem.html new file mode 100644 index 00000000..b7c2a9d2 --- /dev/null +++ b/d0/d6b/structelem.html @@ -0,0 +1,130 @@ + + + + + + + +Algorithms_in_C: elem Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
elem Struct Reference
+
+
+
+Collaboration diagram for elem:
+
+
+
+
[legend]
+ + + + + + +

+Data Fields

+void * val
 
+struct elemnext
 
+
The documentation for this struct was generated from the following file:
    +
  • data_structures/stack/stack_linked_list/stack.c
  • +
+
+
+ + + + diff --git a/d0/d6b/structelem.js b/d0/d6b/structelem.js new file mode 100644 index 00000000..9becd71c --- /dev/null +++ b/d0/d6b/structelem.js @@ -0,0 +1,5 @@ +var structelem = +[ + [ "next", "d0/d6b/structelem.html#ab9cf5c2e1c9a0ec2938275b90d39d5ca", null ], + [ "val", "d0/d6b/structelem.html#a738173725677dc7ccc8529cc8537c50d", null ] +]; \ No newline at end of file diff --git a/d0/d6c/problem__4_2sol_8c.html b/d0/d6c/problem__4_2sol_8c.html new file mode 100644 index 00000000..78b54fa3 --- /dev/null +++ b/d0/d6c/problem__4_2sol_8c.html @@ -0,0 +1,212 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_4/sol.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol.c File Reference
+
+
+ +

Problem 4 solution +More...

+
#include <stdio.h>
+
+Include dependency graph for sol.c:
+
+
+
+
+
+ + + + + +

+Functions

int is_palindromic (unsigned int n)
 
int main (void)
 
+

Detailed Description

+

Problem 4 solution

+

Function Documentation

+ +

◆ is_palindromic()

+ +
+
+ + + + + + + + +
int is_palindromic (unsigned int n)
+
+

Check if number is palindromic

Parameters
+ + +
[in]nnumber to check
+
+
+
Returns
1 if palindromic
+
+0 if not palindromic
+
13 {
+
14  unsigned int reversed = 0, t = n;
+
15 
+
16  while (t > 0)
+
17  {
+
18  reversed = 10 * reversed + (t % 10);
+
19  t /= 10;
+
20  }
+
21  return reversed == n;
+
22 }
+
+
+
+ +

◆ main()

+ +
+
+ + + + + + + + +
int main (void )
+
+

Main function

+
26 {
+
27  unsigned int i, j, max = 0;
+
28  for (i = 100; i <= 999; i++)
+
29  {
+
30  for (j = 100; j <= 999; j++)
+
31  {
+
32  unsigned int p = i * j;
+
33  if (is_palindromic(p) && p > max)
+
34  {
+
35  max = p;
+
36  }
+
37  }
+
38  }
+
39  printf("%u\n", max);
+
40  return 0;
+
41 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
int is_palindromic(unsigned int n)
Definition: sol.c:12
+
#define max(a, b)
Definition: kohonen_som_topology.c:31
+ + + + diff --git a/d0/d6c/problem__4_2sol_8c.js b/d0/d6c/problem__4_2sol_8c.js new file mode 100644 index 00000000..b176c258 --- /dev/null +++ b/d0/d6c/problem__4_2sol_8c.js @@ -0,0 +1,5 @@ +var problem__4_2sol_8c = +[ + [ "is_palindromic", "d0/d6c/problem__4_2sol_8c.html#adf9bea8d35848959bde5b3f277edf0c4", null ], + [ "main", "d0/d6c/problem__4_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe", null ] +]; \ No newline at end of file diff --git a/d0/d6c/problem__4_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map b/d0/d6c/problem__4_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map new file mode 100644 index 00000000..7797fb61 --- /dev/null +++ b/d0/d6c/problem__4_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d0/d6c/problem__4_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 b/d0/d6c/problem__4_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 new file mode 100644 index 00000000..f5e45255 --- /dev/null +++ b/d0/d6c/problem__4_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 @@ -0,0 +1 @@ +07bb8195160f5fb1d7c64eb399aa64ee \ No newline at end of file diff --git a/d0/d6c/problem__4_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg b/d0/d6c/problem__4_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg new file mode 100644 index 00000000..56d8221f --- /dev/null +++ b/d0/d6c/problem__4_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +is_palindromic + + + + + +Node1->Node2 + + + + + diff --git a/d0/d6d/problem__10_2sol1_8c.html b/d0/d6d/problem__10_2sol1_8c.html new file mode 100644 index 00000000..0a52119d --- /dev/null +++ b/d0/d6d/problem__10_2sol1_8c.html @@ -0,0 +1,245 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_10/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 10 solution +More...

+
#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + + + + + +

+Functions

char is_prime (unsigned long n)
 
unsigned long long sum_of_primes (unsigned long N)
 
int main (int argc, char *argv[])
 
+

Detailed Description

+

Problem 10 solution

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ is_prime()

+ +
+
+ + + + + + + + +
char is_prime (unsigned long n)
+
+

Function to check if a number is prime

+
12 {
+
13  for (unsigned long i = 2; i < sqrtl(n) + 1; i++)
+
14  if (n % i == 0)
+
15  return 0;
+
16 
+
17  return 1;
+
18 }
+
+
+
+ +

◆ main()

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

Main function

+
34 {
+
35  unsigned long n = 100;
+
36 
+
37  if (argc == 2) /* if command line argument is provided */
+
38  n = atol(argv[1]); /* use that as the upper limit */
+
39 
+
40  printf("%ld: %llu\n", n, sum_of_primes(n));
+
41 
+
42  return 0;
+
43 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ sum_of_primes()

+ +
+
+ + + + + + + + +
unsigned long long sum_of_primes (unsigned long N)
+
+

Computes sum of prime numbers less than N

+
22 {
+
23  unsigned long long sum = 2;
+
24 
+
25  for (long i = 3; i < N; i += 2) /* skip even numbers */
+
26  if (is_prime(i))
+
27  sum += i;
+
28 
+
29  return sum;
+
30 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
char is_prime(unsigned long n)
Definition: sol1.c:11
+
#define N
Definition: sol1.c:111
+
unsigned long long sum_of_primes(unsigned long N)
Definition: sol1.c:21
+ + + + diff --git a/d0/d6d/problem__10_2sol1_8c.js b/d0/d6d/problem__10_2sol1_8c.js new file mode 100644 index 00000000..b33468b1 --- /dev/null +++ b/d0/d6d/problem__10_2sol1_8c.js @@ -0,0 +1,6 @@ +var problem__10_2sol1_8c = +[ + [ "is_prime", "d0/d6d/problem__10_2sol1_8c.html#acc871ab6bfead702e983a7f9c412915f", null ], + [ "main", "d0/d6d/problem__10_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97", null ], + [ "sum_of_primes", "d0/d6d/problem__10_2sol1_8c.html#ae3d987cb2ad0ddb0c3caa4c2506a20e5", null ] +]; \ No newline at end of file diff --git a/d0/d6d/problem__10_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map b/d0/d6d/problem__10_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map new file mode 100644 index 00000000..710395c9 --- /dev/null +++ b/d0/d6d/problem__10_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d0/d6d/problem__10_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 b/d0/d6d/problem__10_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 new file mode 100644 index 00000000..722ad53a --- /dev/null +++ b/d0/d6d/problem__10_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 @@ -0,0 +1 @@ +3783047503d9d2c2c0f5aee38d07ae3e \ No newline at end of file diff --git a/d0/d6d/problem__10_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg b/d0/d6d/problem__10_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg new file mode 100644 index 00000000..247cb5d2 --- /dev/null +++ b/d0/d6d/problem__10_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +sum_of_primes + + + + + +Node1->Node2 + + + + + +Node3 + + +is_prime + + + + + +Node2->Node3 + + + + + diff --git a/d0/d6d/problem__10_2sol1_8c_ae3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.map b/d0/d6d/problem__10_2sol1_8c_ae3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.map new file mode 100644 index 00000000..6b1f131f --- /dev/null +++ b/d0/d6d/problem__10_2sol1_8c_ae3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d0/d6d/problem__10_2sol1_8c_ae3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.md5 b/d0/d6d/problem__10_2sol1_8c_ae3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.md5 new file mode 100644 index 00000000..f469dc0b --- /dev/null +++ b/d0/d6d/problem__10_2sol1_8c_ae3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.md5 @@ -0,0 +1 @@ +991861bed63d549a266eca05653ceef3 \ No newline at end of file diff --git a/d0/d6d/problem__10_2sol1_8c_ae3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.svg b/d0/d6d/problem__10_2sol1_8c_ae3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.svg new file mode 100644 index 00000000..2b3aa395 --- /dev/null +++ b/d0/d6d/problem__10_2sol1_8c_ae3d987cb2ad0ddb0c3caa4c2506a20e5_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +sum_of_primes + + + +Node1 + + +sum_of_primes + + + + + +Node2 + + +is_prime + + + + + +Node1->Node2 + + + + + diff --git a/d0/d7f/so1_8c.html b/d0/d7f/so1_8c.html new file mode 100644 index 00000000..95d9b2a0 --- /dev/null +++ b/d0/d7f/so1_8c.html @@ -0,0 +1,170 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_2/so1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
so1.c File Reference
+
+
+ +

Problem 2 solution +More...

+
#include <stdio.h>
+
+Include dependency graph for so1.c:
+
+
+
+
+
+ + + +

+Functions

int main ()
 
+

Detailed Description

+

Problem 2 solution

+

Problem:

+

Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1,2,3,5,8,13,21,34,55,89,.. By considering the terms in the Fibonacci sequence whose values do not exceed n, find the sum of the even-valued terms. e.g. for n=10, we have {2,8}, sum is 10.

+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+

Main function

+
18 {
+
19  int n = 0;
+
20  int sum = 0;
+
21  int i = 1;
+
22  int j = 2;
+
23  int temp;
+
24  scanf("%d", &n);
+
25 
+
26  while (j <= n)
+
27  {
+
28  if ((j & 1) == 0) // can also use(j%2 == 0)
+
29  sum += j;
+
30  temp = i;
+
31  i = j;
+
32  j = temp + i;
+
33  }
+
34 
+
35  printf("%d\n", sum);
+
36  return 0;
+
37 }
+
+
+
+
+
+ + + + diff --git a/d0/d7f/so1_8c.js b/d0/d7f/so1_8c.js new file mode 100644 index 00000000..98edb022 --- /dev/null +++ b/d0/d7f/so1_8c.js @@ -0,0 +1,4 @@ +var so1_8c = +[ + [ "main", "d0/d7f/so1_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/d0/d8a/structmax__heap.html b/d0/d8a/structmax__heap.html new file mode 100644 index 00000000..a28b2d1e --- /dev/null +++ b/d0/d8a/structmax__heap.html @@ -0,0 +1,127 @@ + + + + + + + +Algorithms_in_C: max_heap Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
max_heap Struct Reference
+
+
+ + + + + + + + +

+Data Fields

+int * p
 
+int size
 
+int count
 
+
The documentation for this struct was generated from the following file:
    +
  • data_structures/heap/max_heap.c
  • +
+
+
+ + + + diff --git a/d0/d8a/structmax__heap.js b/d0/d8a/structmax__heap.js new file mode 100644 index 00000000..867b7457 --- /dev/null +++ b/d0/d8a/structmax__heap.js @@ -0,0 +1,6 @@ +var structmax__heap = +[ + [ "count", "d0/d8a/structmax__heap.html#a917b63797e1857ce994dd5e6cfcebf1e", null ], + [ "p", "d0/d8a/structmax__heap.html#a1b632c34e7304f9e0720834200696340", null ], + [ "size", "d0/d8a/structmax__heap.html#ac4d520821651b109fd2ba2a99c6c6015", null ] +]; \ No newline at end of file diff --git a/d0/d99/c__atoi__str__to__integer_8c__incl.map b/d0/d99/c__atoi__str__to__integer_8c__incl.map new file mode 100644 index 00000000..a28382ae --- /dev/null +++ b/d0/d99/c__atoi__str__to__integer_8c__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/d0/d99/c__atoi__str__to__integer_8c__incl.md5 b/d0/d99/c__atoi__str__to__integer_8c__incl.md5 new file mode 100644 index 00000000..f60278de --- /dev/null +++ b/d0/d99/c__atoi__str__to__integer_8c__incl.md5 @@ -0,0 +1 @@ +9c3b064ddc954800ea6f5cec6095851c \ No newline at end of file diff --git a/d0/d99/c__atoi__str__to__integer_8c__incl.svg b/d0/d99/c__atoi__str__to__integer_8c__incl.svg new file mode 100644 index 00000000..c8054c3c --- /dev/null +++ b/d0/d99/c__atoi__str__to__integer_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + +conversions/c_atoi_str_to_integer.c + + + +Node1 + + +conversions/c_atoi +_str_to_integer.c + + + + + +Node2 + + +assert.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + +Node5 + + +string.h + + + + + +Node1->Node5 + + + + + diff --git a/d0/db8/collatz_8c__incl.map b/d0/db8/collatz_8c__incl.map new file mode 100644 index 00000000..5a2d66e1 --- /dev/null +++ b/d0/db8/collatz_8c__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d0/db8/collatz_8c__incl.md5 b/d0/db8/collatz_8c__incl.md5 new file mode 100644 index 00000000..1df5e04b --- /dev/null +++ b/d0/db8/collatz_8c__incl.md5 @@ -0,0 +1 @@ +3ca4341d60e12b40fd5d89abfd421ee9 \ No newline at end of file diff --git a/d0/db8/collatz_8c__incl.svg b/d0/db8/collatz_8c__incl.svg new file mode 100644 index 00000000..ce170b6c --- /dev/null +++ b/d0/db8/collatz_8c__incl.svg @@ -0,0 +1,52 @@ + + + + + + +misc/collatz.c + + + +Node1 + + +misc/collatz.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + diff --git a/d0/dc8/structarray__3d.html b/d0/dc8/structarray__3d.html new file mode 100644 index 00000000..9ff58760 --- /dev/null +++ b/d0/dc8/structarray__3d.html @@ -0,0 +1,189 @@ + + + + + + + +Algorithms_in_C: array_3d Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
array_3d Struct Reference
+
+
+ + + + + + + + + + +

+Data Fields

int dim1
 
int dim2
 
int dim3
 
double * data
 
+

Detailed Description

+

to store info regarding 3D arrays

+

Field Documentation

+ +

◆ data

+ +
+
+ + + + +
double* array_3d::data
+
+

pointer to data

+ +
+
+ +

◆ dim1

+ +
+
+ + + + +
int array_3d::dim1
+
+

lengths of first dimension

+ +
+
+ +

◆ dim2

+ +
+
+ + + + +
int array_3d::dim2
+
+

lengths of second dimension

+ +
+
+ +

◆ dim3

+ +
+
+ + + + +
int array_3d::dim3
+
+

lengths of thirddimension

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/d0/dc8/structarray__3d.js b/d0/dc8/structarray__3d.js new file mode 100644 index 00000000..b7bafefc --- /dev/null +++ b/d0/dc8/structarray__3d.js @@ -0,0 +1,7 @@ +var structarray__3d = +[ + [ "data", "d0/dc8/structarray__3d.html#ac8967b2c72769f839c09fb4cebb4339f", null ], + [ "dim1", "d0/dc8/structarray__3d.html#ad5d3ee546eea3c05dc8f0dc90ec194f4", null ], + [ "dim2", "d0/dc8/structarray__3d.html#aa431cc0a41fd379270dbd2b0e3ac1b45", null ], + [ "dim3", "d0/dc8/structarray__3d.html#ad823bd5424a0fc158da52a0497d8c10a", null ] +]; \ No newline at end of file diff --git a/d0/df1/structhash__set__t.html b/d0/df1/structhash__set__t.html new file mode 100644 index 00000000..25f4e12c --- /dev/null +++ b/d0/df1/structhash__set__t.html @@ -0,0 +1,130 @@ + + + + + + + +Algorithms_in_C: hash_set_t Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
hash_set_t Struct Reference
+
+
+ + + + + + + + + + +

+Data Fields

+unsigned capacity
 
+unsigned length
 
+void ** values
 
+void ** keys
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/d0/df1/structhash__set__t.js b/d0/df1/structhash__set__t.js new file mode 100644 index 00000000..0c0fa2a4 --- /dev/null +++ b/d0/df1/structhash__set__t.js @@ -0,0 +1,7 @@ +var structhash__set__t = +[ + [ "capacity", "d0/df1/structhash__set__t.html#a6f21e4fb262dbabac311dadc7936aa68", null ], + [ "keys", "d0/df1/structhash__set__t.html#a1b52c6b78642e398f574c2ec9ed22e8a", null ], + [ "length", "d0/df1/structhash__set__t.html#a5fd11ba3c74b2cc7fd161696fb951b82", null ], + [ "values", "d0/df1/structhash__set__t.html#a66e37043817e37030d2e49fd5bf81d7f", null ] +]; \ No newline at end of file diff --git a/d0/df1/threaded__binary__trees_8c__incl.map b/d0/df1/threaded__binary__trees_8c__incl.map new file mode 100644 index 00000000..55f7111d --- /dev/null +++ b/d0/df1/threaded__binary__trees_8c__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d0/df1/threaded__binary__trees_8c__incl.md5 b/d0/df1/threaded__binary__trees_8c__incl.md5 new file mode 100644 index 00000000..cd6b376c --- /dev/null +++ b/d0/df1/threaded__binary__trees_8c__incl.md5 @@ -0,0 +1 @@ +26e71b101da38685f0acad164d7390fe \ No newline at end of file diff --git a/d0/df1/threaded__binary__trees_8c__incl.svg b/d0/df1/threaded__binary__trees_8c__incl.svg new file mode 100644 index 00000000..fa651491 --- /dev/null +++ b/d0/df1/threaded__binary__trees_8c__incl.svg @@ -0,0 +1,54 @@ + + + + + + +data_structures/binary_trees/threaded_binary_trees.c + + + +Node1 + + +data_structures/binary +_trees/threaded_binary +_trees.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + diff --git a/d1/d07/sol4_8c__incl.map b/d1/d07/sol4_8c__incl.map new file mode 100644 index 00000000..ae4f7d38 --- /dev/null +++ b/d1/d07/sol4_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/d1/d07/sol4_8c__incl.md5 b/d1/d07/sol4_8c__incl.md5 new file mode 100644 index 00000000..d28d4a6e --- /dev/null +++ b/d1/d07/sol4_8c__incl.md5 @@ -0,0 +1 @@ +6f5652e011ad331f12f8428d5f22591d \ No newline at end of file diff --git a/d1/d07/sol4_8c__incl.svg b/d1/d07/sol4_8c__incl.svg new file mode 100644 index 00000000..e8874766 --- /dev/null +++ b/d1/d07/sol4_8c__incl.svg @@ -0,0 +1,38 @@ + + + + + + +project_euler/problem_1/sol4.c + + + +Node1 + + +project_euler/problem +_1/sol4.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + diff --git a/d1/d10/structelem__coll__graph.map b/d1/d10/structelem__coll__graph.map new file mode 100644 index 00000000..25da7e6d --- /dev/null +++ b/d1/d10/structelem__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/d1/d10/structelem__coll__graph.md5 b/d1/d10/structelem__coll__graph.md5 new file mode 100644 index 00000000..4c32a1b7 --- /dev/null +++ b/d1/d10/structelem__coll__graph.md5 @@ -0,0 +1 @@ +8a6f4192e45a40b3d1ee0e8594d70ba9 \ No newline at end of file diff --git a/d1/d10/structelem__coll__graph.svg b/d1/d10/structelem__coll__graph.svg new file mode 100644 index 00000000..8bf5d483 --- /dev/null +++ b/d1/d10/structelem__coll__graph.svg @@ -0,0 +1,29 @@ + + + + + + +elem + + + +Node1 + + +elem + + + + + +Node1->Node1 + + + next + + + diff --git a/d1/d12/md_data_structures_stack__r_e_a_d_m_e.html b/d1/d12/md_data_structures_stack__r_e_a_d_m_e.html new file mode 100644 index 00000000..abe7e1c5 --- /dev/null +++ b/d1/d12/md_data_structures_stack__r_e_a_d_m_e.html @@ -0,0 +1,131 @@ + + + + + + + +Algorithms_in_C: Simple generic Stack + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Simple generic Stack
+
+
+

This is a modular generic stack data-structure. The stack is self growing.

+

+Content

+
    +
  • stack-Header file for import.
  • +
  • stack.c implementation of the stack
  • +
  • main.c framework program for testing.
  • +
  • stack_linkedlist: Another stack implementation by linkedlist
  • +
+

You need to only import the stack.h

+

+Public interface

+
void initStack();
+

Initializes the stack with a capacity of 10 elements.

+
void push(void * object);
+

pushs the argument onto the stack

+
void * pop();
+

pop: pops the top element of the stack from the stack.

assumes: stack not empty.
+
int size();
+

gets the number of elements of the stack.

+
int isEmpty();
+

returns 1 if stack is empty otherwise 0.

+
+
+
+ + + + diff --git a/d1/d2f/problem__7_2sol_8c.html b/d1/d2f/problem__7_2sol_8c.html new file mode 100644 index 00000000..a5e3d450 --- /dev/null +++ b/d1/d2f/problem__7_2sol_8c.html @@ -0,0 +1,178 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_7/sol.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol.c File Reference
+
+
+ +

Problem 7 solution +More...

+
#include <stdio.h>
+#include <stdlib.h>
+
+Include dependency graph for sol.c:
+
+
+
+
+
+ + + +

+Functions

int main (void)
 
+

Detailed Description

+

Problem 7 solution

+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + +
int main (void )
+
+

Main function

+
10 {
+
11  char *sieve;
+
12  size_t i;
+
13  unsigned count = 0;
+
14  size_t n = 1000000;
+
15  const unsigned target = 10001;
+
16 
+
17  sieve = (char *)calloc(n, sizeof(char));
+
18  for (i = 2; i < n; i++)
+
19  {
+
20  if (!sieve[i])
+
21  {
+
22  size_t j;
+
23  count++;
+
24  if (count == target)
+
25  {
+
26  printf("%lu\n", i);
+
27  break;
+
28  }
+
29  for (j = i * 2; j < n; j += i)
+
30  {
+
31  sieve[j] = 1;
+
32  }
+
33  }
+
34  }
+
35  free(sieve);
+
36  return 0;
+
37 }
+
+
+
+
+
+ + + + diff --git a/d1/d2f/problem__7_2sol_8c.js b/d1/d2f/problem__7_2sol_8c.js new file mode 100644 index 00000000..8dc5a841 --- /dev/null +++ b/d1/d2f/problem__7_2sol_8c.js @@ -0,0 +1,4 @@ +var problem__7_2sol_8c = +[ + [ "main", "d1/d2f/problem__7_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe", null ] +]; \ No newline at end of file diff --git a/d1/d6c/ode__forward__euler_8c__incl.map b/d1/d6c/ode__forward__euler_8c__incl.map new file mode 100644 index 00000000..89fa4e2f --- /dev/null +++ b/d1/d6c/ode__forward__euler_8c__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/d1/d6c/ode__forward__euler_8c__incl.md5 b/d1/d6c/ode__forward__euler_8c__incl.md5 new file mode 100644 index 00000000..11fb7092 --- /dev/null +++ b/d1/d6c/ode__forward__euler_8c__incl.md5 @@ -0,0 +1 @@ +3731335e464f6195c4bca9022171b72d \ No newline at end of file diff --git a/d1/d6c/ode__forward__euler_8c__incl.svg b/d1/d6c/ode__forward__euler_8c__incl.svg new file mode 100644 index 00000000..127b6359 --- /dev/null +++ b/d1/d6c/ode__forward__euler_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + +numerical_methods/ode_forward_euler.c + + + +Node1 + + +numerical_methods/ode +_forward_euler.c + + + + + +Node2 + + +math.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + +Node5 + + +time.h + + + + + +Node1->Node5 + + + + + diff --git a/d1/d8d/struct_a_v_lnode__coll__graph.map b/d1/d8d/struct_a_v_lnode__coll__graph.map new file mode 100644 index 00000000..a750e377 --- /dev/null +++ b/d1/d8d/struct_a_v_lnode__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/d1/d8d/struct_a_v_lnode__coll__graph.md5 b/d1/d8d/struct_a_v_lnode__coll__graph.md5 new file mode 100644 index 00000000..328eacef --- /dev/null +++ b/d1/d8d/struct_a_v_lnode__coll__graph.md5 @@ -0,0 +1 @@ +5f63a019674a31102b78eaa775a9ff6c \ No newline at end of file diff --git a/d1/d8d/struct_a_v_lnode__coll__graph.svg b/d1/d8d/struct_a_v_lnode__coll__graph.svg new file mode 100644 index 00000000..7ea31e3b --- /dev/null +++ b/d1/d8d/struct_a_v_lnode__coll__graph.svg @@ -0,0 +1,30 @@ + + + + + + +AVLnode + + + +Node1 + + +AVLnode + + + + + +Node1->Node1 + + + right +left + + + diff --git a/d1/dc2/ode__midpoint__euler_8c.html b/d1/dc2/ode__midpoint__euler_8c.html new file mode 100644 index 00000000..5f92c302 --- /dev/null +++ b/d1/dc2/ode__midpoint__euler_8c.html @@ -0,0 +1,525 @@ + + + + + + + +Algorithms_in_C: numerical_methods/ode_midpoint_euler.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ode_midpoint_euler.c File Reference
+
+
+ +

Solve a multivariable first order ordinary differential equation (ODEs) using midpoint Euler method +More...

+
#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for ode_midpoint_euler.c:
+
+
+
+
+
+ + + +

+Macros

#define order   2
 
+ + + + + + + + + + + + + + + +

+Functions

void problem (const double *x, double *y, double *dy)
 Problem statement for a system with first-order differential equations. Updates the system differential variables. More...
 
void exact_solution (const double *x, double *y)
 Exact solution of the problem. Used for solution comparison. More...
 
void midpoint_euler_step (double dx, double *x, double *y, double *dy)
 Compute next step approximation using the midpoint-Euler method. More...
 
double midpoint_euler (double dx, double x0, double x_max, double *y, char save_to_file)
 Compute approximation using the midpoint-Euler method in the given limits. More...
 
int main (int argc, char *argv[])
 
+

Detailed Description

+

Solve a multivariable first order ordinary differential equation (ODEs) using midpoint Euler method

+
Authors
Krishna Vedala
+

The ODE being solved is:

+\begin{eqnarray*} \dot{u} &=& v\\ \dot{v} &=& -\omega^2 u\\ \omega &=& 1\\ [x_0, u_0, v_0] &=& [0,1,0]\qquad\ldots\text{(initial values)} \end{eqnarray*} +

+

The exact solution for the above problem is:

+\begin{eqnarray*} u(x) &=& \cos(x)\\ v(x) &=& -\sin(x)\\ \end{eqnarray*} +

+

The computation results are stored to a text file midpoint_euler.csv and the exact soltuion results in exact.csv for comparison. Implementation solution

+

To implement Van der Pol oscillator, change the problem function to:

const double mu = 2.0;
+
dy[0] = y[1];
+
dy[1] = mu * (1.f - y[0] * y[0]) * y[1] - y[0];
+
See also
ode_forward_euler.c, ode_semi_implicit_euler.c
+

Macro Definition Documentation

+ +

◆ order

+ +
+
+ + + + +
#define order   2
+
+

number of dependent variables in problem

+ +
+
+

Function Documentation

+ +

◆ exact_solution()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void exact_solution (const double * x,
double * y 
)
+
+ +

Exact solution of the problem. Used for solution comparison.

+
Parameters
+ + + +
[in]xindependent variable
[in,out]ydependent variable
+
+
+
68 {
+
69  y[0] = cos(x[0]);
+
70  y[1] = -sin(x[0]);
+
71 }
+
+
+
+ +

◆ main()

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

Main Function

+
147 {
+
148  double X0 = 0.f; /* initial value of x0 */
+
149  double X_MAX = 10.F; /* upper limit of integration */
+
150  double Y0[] = {1.f, 0.f}; /* initial value Y = y(x = x_0) */
+
151  double step_size;
+
152 
+
153  if (argc == 1)
+
154  {
+
155  printf("\nEnter the step size: ");
+
156  scanf("%lg", &step_size);
+
157  }
+
158  else
+
159  // use commandline argument as independent variable step size
+
160  step_size = atof(argv[1]);
+
161 
+
162  // get approximate solution
+
163  double total_time = midpoint_euler(step_size, X0, X_MAX, Y0, 1);
+
164  printf("\tTime = %.6g ms\n", total_time);
+
165 
+
166  /* compute exact solution for comparion */
+
167  FILE *fp = fopen("exact.csv", "w+");
+
168  if (fp == NULL)
+
169  {
+
170  perror("Error! ");
+
171  return -1;
+
172  }
+
173  double x = X0;
+
174  double *y = &(Y0[0]);
+
175  printf("Finding exact solution\n");
+
176  clock_t t1 = clock();
+
177 
+
178  do
+
179  {
+
180  fprintf(fp, "%.4g,%.4g,%.4g\n", x, y[0], y[1]); // write to file
+
181  exact_solution(&x, y);
+
182  x += step_size;
+
183  } while (x <= X_MAX);
+
184 
+
185  clock_t t2 = clock();
+
186  total_time = (t2 - t1) / CLOCKS_PER_SEC;
+
187  printf("\tTime = %.6g ms\n", total_time);
+
188  fclose(fp);
+
189 
+
190  return 0;
+
191 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ midpoint_euler()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
double midpoint_euler (double dx,
double x0,
double x_max,
double * y,
char save_to_file 
)
+
+ +

Compute approximation using the midpoint-Euler method in the given limits.

+
Parameters
+ + + + + + +
[in]dxstep size
[in]x0initial value of independent variable
[in]x_maxfinal value of independent variable
[in,out]ytake \(y_n\) and compute \(y_{n+1}\)
[in]save_to_fileflag to save results to a CSV file (1) or not (0)
+
+
+
Returns
time taken for computation in seconds
+
110 {
+
111  double dy[order];
+
112 
+
113  FILE *fp = NULL;
+
114  if (save_to_file)
+
115  {
+
116  fp = fopen("midpoint_euler.csv", "w+");
+
117  if (fp == NULL)
+
118  {
+
119  perror("Error! ");
+
120  return -1;
+
121  }
+
122  }
+
123 
+
124  /* start integration */
+
125  clock_t t1 = clock();
+
126  double x = x0;
+
127  do // iterate for each step of independent variable
+
128  {
+
129  if (save_to_file && fp)
+
130  fprintf(fp, "%.4g,%.4g,%.4g\n", x, y[0], y[1]); // write to file
+
131  midpoint_euler_step(dx, &x, y, dy); // perform integration
+
132  x += dx; // update step
+
133  } while (x <= x_max); // till upper limit of independent variable
+
134  /* end of integration */
+
135  clock_t t2 = clock();
+
136 
+
137  if (save_to_file && fp)
+
138  fclose(fp);
+
139 
+
140  return (double)(t2 - t1) / CLOCKS_PER_SEC;
+
141 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ midpoint_euler_step()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void midpoint_euler_step (double dx,
double * x,
double * y,
double * dy 
)
+
+ +

Compute next step approximation using the midpoint-Euler method.

+

+\[y_{n+1} = y_n + dx\, f\left(x_n+\frac{1}{2}dx, y_n + \frac{1}{2}dx\,f\left(x_n,y_n\right)\right)\] +

+
Parameters
+ + + + + +
[in]dxstep size
[in,out]xtake \(x_n\) and compute \(x_{n+1}\)
[in,out]ytake \(y_n\) and compute \(y_{n+1}\)
[in,out]dycompute \(y_n+\frac{1}{2}dx\,f\left(x_n,y_n\right)\)
+
+
+
84 {
+
85  problem(x, y, dy);
+
86  double tmp_x = (*x) + 0.5 * dx;
+
87  double tmp_y[order];
+
88  int o;
+
89  for (o = 0; o < order; o++)
+
90  tmp_y[o] = y[o] + 0.5 * dx * dy[o];
+
91 
+
92  problem(&tmp_x, tmp_y, dy);
+
93 
+
94  for (o = 0; o < order; o++)
+
95  y[o] += dx * dy[o];
+
96 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ problem()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void problem (const double * x,
double * y,
double * dy 
)
+
+ +

Problem statement for a system with first-order differential equations. Updates the system differential variables.

+
Note
This function can be updated to and ode of any order.
+
Parameters
+ + + + +
[in]xindependent variable(s)
[in,out]ydependent variable(s)
[in,out]dyfirst-derivative of dependent variable(s)
+
+
+
55 {
+
56  const double omega = 1.F; // some const for the problem
+
57  dy[0] = y[1]; // x dot
+
58  dy[1] = -omega * omega * y[0]; // y dot
+
59 }
+
+
+
+
+
+
void exact_solution(const double *x, double *y)
Exact solution of the problem. Used for solution comparison.
Definition: ode_midpoint_euler.c:67
+
void midpoint_euler_step(double dx, double *x, double *y, double *dy)
Compute next step approximation using the midpoint-Euler method.
Definition: ode_midpoint_euler.c:83
+
#define order
Definition: ode_midpoint_euler.c:43
+
double midpoint_euler(double dx, double x0, double x_max, double *y, char save_to_file)
Compute approximation using the midpoint-Euler method in the given limits.
Definition: ode_midpoint_euler.c:108
+
void problem(const double *x, double *y, double *dy)
Problem statement for a system with first-order differential equations. Updates the system differenti...
Definition: ode_midpoint_euler.c:54
+ + + + diff --git a/d1/dc2/ode__midpoint__euler_8c.js b/d1/dc2/ode__midpoint__euler_8c.js new file mode 100644 index 00000000..85253626 --- /dev/null +++ b/d1/dc2/ode__midpoint__euler_8c.js @@ -0,0 +1,9 @@ +var ode__midpoint__euler_8c = +[ + [ "order", "d1/dc2/ode__midpoint__euler_8c.html#a9ceb646336224ee890a269d0b4600d09", null ], + [ "exact_solution", "d1/dc2/ode__midpoint__euler_8c.html#a8caee977b26888d34040b122e0e28e3a", null ], + [ "main", "d1/dc2/ode__midpoint__euler_8c.html#a0ddf1224851353fc92bfbff6f499fa97", null ], + [ "midpoint_euler", "d1/dc2/ode__midpoint__euler_8c.html#a148003d8b261d040c1c41e73b40af1dd", null ], + [ "midpoint_euler_step", "d1/dc2/ode__midpoint__euler_8c.html#affe6cc2ab040b94a29e6c41782f72d51", null ], + [ "problem", "d1/dc2/ode__midpoint__euler_8c.html#a97075291390a68c262ed66e157a57eb4", null ] +]; \ No newline at end of file diff --git a/d1/dc2/ode__midpoint__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map b/d1/dc2/ode__midpoint__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map new file mode 100644 index 00000000..50575f38 --- /dev/null +++ b/d1/dc2/ode__midpoint__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/d1/dc2/ode__midpoint__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 b/d1/dc2/ode__midpoint__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 new file mode 100644 index 00000000..406fc797 --- /dev/null +++ b/d1/dc2/ode__midpoint__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 @@ -0,0 +1 @@ +7fb58c5b19ccdef17c146c91f9dc8a9f \ No newline at end of file diff --git a/d1/dc2/ode__midpoint__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg b/d1/dc2/ode__midpoint__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg new file mode 100644 index 00000000..5de357da --- /dev/null +++ b/d1/dc2/ode__midpoint__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg @@ -0,0 +1,82 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +exact_solution + + + + + +Node1->Node2 + + + + + +Node3 + + +midpoint_euler + + + + + +Node1->Node3 + + + + + +Node4 + + +midpoint_euler_step + + + + + +Node3->Node4 + + + + + +Node5 + + +problem + + + + + +Node4->Node5 + + + + + diff --git a/d1/dc2/ode__midpoint__euler_8c_a148003d8b261d040c1c41e73b40af1dd_cgraph.map b/d1/dc2/ode__midpoint__euler_8c_a148003d8b261d040c1c41e73b40af1dd_cgraph.map new file mode 100644 index 00000000..b2ab1c4b --- /dev/null +++ b/d1/dc2/ode__midpoint__euler_8c_a148003d8b261d040c1c41e73b40af1dd_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d1/dc2/ode__midpoint__euler_8c_a148003d8b261d040c1c41e73b40af1dd_cgraph.md5 b/d1/dc2/ode__midpoint__euler_8c_a148003d8b261d040c1c41e73b40af1dd_cgraph.md5 new file mode 100644 index 00000000..19f9b659 --- /dev/null +++ b/d1/dc2/ode__midpoint__euler_8c_a148003d8b261d040c1c41e73b40af1dd_cgraph.md5 @@ -0,0 +1 @@ +207821d0acb3c9a49f854fcc27611d32 \ No newline at end of file diff --git a/d1/dc2/ode__midpoint__euler_8c_a148003d8b261d040c1c41e73b40af1dd_cgraph.svg b/d1/dc2/ode__midpoint__euler_8c_a148003d8b261d040c1c41e73b40af1dd_cgraph.svg new file mode 100644 index 00000000..9fdde44e --- /dev/null +++ b/d1/dc2/ode__midpoint__euler_8c_a148003d8b261d040c1c41e73b40af1dd_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +midpoint_euler + + + +Node1 + + +midpoint_euler + + + + + +Node2 + + +midpoint_euler_step + + + + + +Node1->Node2 + + + + + +Node3 + + +problem + + + + + +Node2->Node3 + + + + + diff --git a/d1/dc2/ode__midpoint__euler_8c_affe6cc2ab040b94a29e6c41782f72d51_cgraph.map b/d1/dc2/ode__midpoint__euler_8c_affe6cc2ab040b94a29e6c41782f72d51_cgraph.map new file mode 100644 index 00000000..aea7c277 --- /dev/null +++ b/d1/dc2/ode__midpoint__euler_8c_affe6cc2ab040b94a29e6c41782f72d51_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d1/dc2/ode__midpoint__euler_8c_affe6cc2ab040b94a29e6c41782f72d51_cgraph.md5 b/d1/dc2/ode__midpoint__euler_8c_affe6cc2ab040b94a29e6c41782f72d51_cgraph.md5 new file mode 100644 index 00000000..cb11878c --- /dev/null +++ b/d1/dc2/ode__midpoint__euler_8c_affe6cc2ab040b94a29e6c41782f72d51_cgraph.md5 @@ -0,0 +1 @@ +e7576c7adb9cabe9673b7b0ed5048bb8 \ No newline at end of file diff --git a/d1/dc2/ode__midpoint__euler_8c_affe6cc2ab040b94a29e6c41782f72d51_cgraph.svg b/d1/dc2/ode__midpoint__euler_8c_affe6cc2ab040b94a29e6c41782f72d51_cgraph.svg new file mode 100644 index 00000000..ba0c6adf --- /dev/null +++ b/d1/dc2/ode__midpoint__euler_8c_affe6cc2ab040b94a29e6c41782f72d51_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +midpoint_euler_step + + + +Node1 + + +midpoint_euler_step + + + + + +Node2 + + +problem + + + + + +Node1->Node2 + + + + + diff --git a/d1/dd3/problem__401_2sol1_8c__incl.map b/d1/dd3/problem__401_2sol1_8c__incl.map new file mode 100644 index 00000000..c422ee50 --- /dev/null +++ b/d1/dd3/problem__401_2sol1_8c__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/d1/dd3/problem__401_2sol1_8c__incl.md5 b/d1/dd3/problem__401_2sol1_8c__incl.md5 new file mode 100644 index 00000000..1080f5b2 --- /dev/null +++ b/d1/dd3/problem__401_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +bfc41a18d9d9d960f8e2cade5a1841c8 \ No newline at end of file diff --git a/d1/dd3/problem__401_2sol1_8c__incl.svg b/d1/dd3/problem__401_2sol1_8c__incl.svg new file mode 100644 index 00000000..e22d2d3a --- /dev/null +++ b/d1/dd3/problem__401_2sol1_8c__incl.svg @@ -0,0 +1,98 @@ + + + + + + +project_euler/problem_401/sol1.c + + + +Node1 + + +project_euler/problem +_401/sol1.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + +Node5 + + +time.h + + + + + +Node1->Node5 + + + + + +Node6 + + +inttypes.h + + + + + +Node1->Node6 + + + + + diff --git a/d1/df9/problem__26_2sol1_8c.html b/d1/df9/problem__26_2sol1_8c.html new file mode 100644 index 00000000..42e4b59c --- /dev/null +++ b/d1/df9/problem__26_2sol1_8c.html @@ -0,0 +1,308 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_26/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 26 solution +More...

+
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + + + +

+Macros

#define MAX_DENO   2000
 
#define MAX_LEN   (MAX_DENO + 10)
 
+ + + + + +

+Functions

int compare (const void *a, const void *b)
 
int main (int argc, char *argv[])
 
+

Detailed Description

+

Problem 26 solution

+
Author
Krishna Vedala
+

Macro Definition Documentation

+ +

◆ MAX_DENO

+ +
+
+ + + + +
#define MAX_DENO   2000
+
+

limit of unit fractions

+ +
+
+ +

◆ MAX_LEN

+ +
+
+ + + + +
#define MAX_LEN   (MAX_DENO + 10)
+
+

length of resulting recurring fraction number

+ +
+
+

Function Documentation

+ +

◆ compare()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int compare (const void * a,
const void * b 
)
+
+

comparison function for use with internal qsort algorithm

+
20 {
+
21  return (*(unsigned short *)a - *(unsigned short *)b);
+
22 }
+
+
+
+ +

◆ main()

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

Main function

+
26 {
+
27  unsigned short max_digits = 0, max_idx_number = 0;
+
28 
+
29  clock_t start_time = clock();
+
30  short deno;
+
31 #ifdef _OPENMP
+
32 #pragma omp for
+
33 #endif
+
34  for (deno = 2; deno < MAX_DENO; deno++)
+
35  {
+
36  unsigned short remainders[MAX_LEN];
+
37  unsigned short rem = 1, *rem_ptr = remainders;
+
38  memset(remainders, (unsigned short)-1,
+
39  MAX_LEN * sizeof(unsigned short));
+
40  // remainders[0] = 1;
+
41  // printf("1/%-4u\t ", deno);
+
42  unsigned short index = 0, num_digits;
+
43 
+
44  while (rem != 0)
+
45  {
+
46  rem = (rem * 10) % deno;
+
47  if (rem == 0)
+
48  {
+
49  index = 0;
+
50  break;
+
51  }
+
52  rem_ptr = (unsigned short *)bsearch(
+
53  &rem, remainders, MAX_LEN, sizeof(unsigned short), compare);
+
54  // printf("%2d, ", rem);
+
55  // printf("(%14p), ", rem_ptr);
+
56  if (rem_ptr != NULL)
+
57  break;
+
58  remainders[index] = rem;
+
59  rem_ptr = remainders;
+
60  index++;
+
61  }
+
62 
+
63  num_digits = index - (rem_ptr - remainders);
+
64  // printf("\n\t(%14p, %14p, %4u, %4u)\n", rem_ptr, remainders, index,
+
65  // num_digits);
+
66 #ifdef _OPENMP
+
67 #pragma omp critical
+
68  {
+
69 #endif
+
70  if (num_digits > max_digits)
+
71  {
+
72  max_digits = num_digits;
+
73  max_idx_number = deno;
+
74  // printf("\t (%u, %u)\n ", max_digits, max_idx_number);
+
75  }
+
76 #ifdef _OPENMP
+
77  }
+
78 #endif
+
79  }
+
80  clock_t end_time = clock();
+
81 
+
82  printf("Time taken: %.4g ms\n",
+
83  1e3 * (double)(end_time - start_time) / CLOCKS_PER_SEC);
+
84  printf("Maximum digits: %hu\t Denominator: %hu\n", max_digits,
+
85  max_idx_number);
+
86 
+
87  return 0;
+
88 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
int compare(const void *a, const void *b)
Definition: sol1.c:19
+
#define MAX_LEN
Definition: sol1.c:15
+
#define MAX_DENO
Definition: sol1.c:14
+ + + + diff --git a/d1/df9/problem__26_2sol1_8c.js b/d1/df9/problem__26_2sol1_8c.js new file mode 100644 index 00000000..41d1cd41 --- /dev/null +++ b/d1/df9/problem__26_2sol1_8c.js @@ -0,0 +1,7 @@ +var problem__26_2sol1_8c = +[ + [ "MAX_DENO", "d1/df9/problem__26_2sol1_8c.html#a619eec3220cebd7c5e455edbb14e9b12", null ], + [ "MAX_LEN", "d1/df9/problem__26_2sol1_8c.html#aabf4f709c8199e41cf279c77112345fe", null ], + [ "compare", "d1/df9/problem__26_2sol1_8c.html#ac70138609ef6aa6fabca57aca8681e83", null ], + [ "main", "d1/df9/problem__26_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97", null ] +]; \ No newline at end of file diff --git a/d1/df9/problem__26_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map b/d1/df9/problem__26_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map new file mode 100644 index 00000000..a4ca6421 --- /dev/null +++ b/d1/df9/problem__26_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d1/df9/problem__26_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 b/d1/df9/problem__26_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 new file mode 100644 index 00000000..371d5023 --- /dev/null +++ b/d1/df9/problem__26_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 @@ -0,0 +1 @@ +61295bfb88e6fba03d58f641426f44ca \ No newline at end of file diff --git a/d1/df9/problem__26_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg b/d1/df9/problem__26_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg new file mode 100644 index 00000000..82853578 --- /dev/null +++ b/d1/df9/problem__26_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +compare + + + + + +Node1->Node2 + + + + + diff --git a/d2/d36/structqueue.html b/d2/d36/structqueue.html new file mode 100644 index 00000000..5bc94da4 --- /dev/null +++ b/d2/d36/structqueue.html @@ -0,0 +1,140 @@ + + + + + + + +Algorithms_in_C: queue Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
queue Struct Reference
+
+
+
+Collaboration diagram for queue:
+
+
+
+
[legend]
+ + + + + + + + + + + + +

+Data Fields

+int items [SIZE]
 
+int front
 
+int rear
 
+struct nodefront
 
+struct noderear
 
+
The documentation for this struct was generated from the following files:
    +
  • data_structures/graphs/bfs.c
  • +
  • data_structures/linked_list/queue_linked_list.c
  • +
+
+
+ + + + diff --git a/d2/d36/structqueue.js b/d2/d36/structqueue.js new file mode 100644 index 00000000..cbca7a30 --- /dev/null +++ b/d2/d36/structqueue.js @@ -0,0 +1,8 @@ +var structqueue = +[ + [ "front", "d2/d36/structqueue.html#a6c50c7c8bcd9c5962996ed8b1be8771c", null ], + [ "front", "d2/d36/structqueue.html#ade1be9c3ada77e8e182ee4fe1e1fff05", null ], + [ "items", "d2/d36/structqueue.html#a0da4061b8634159fd21e72b34f289e01", null ], + [ "rear", "d2/d36/structqueue.html#a473ab80725514ce07817f87ed1fb136f", null ], + [ "rear", "d2/d36/structqueue.html#aa5eb0f1e96748486046b9543ace2082a", null ] +]; \ No newline at end of file diff --git a/d2/d6a/struct_graph_rep.html b/d2/d6a/struct_graph_rep.html new file mode 100644 index 00000000..99b6e4b8 --- /dev/null +++ b/d2/d6a/struct_graph_rep.html @@ -0,0 +1,127 @@ + + + + + + + +Algorithms_in_C: GraphRep Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
GraphRep Struct Reference
+
+
+ + + + + + + + +

+Data Fields

+int ** edges
 
+int nV
 
+int nE
 
+
The documentation for this struct was generated from the following file:
    +
  • data_structures/graphs/graph.c
  • +
+
+
+ + + + diff --git a/d2/d6a/struct_graph_rep.js b/d2/d6a/struct_graph_rep.js new file mode 100644 index 00000000..7ed03e88 --- /dev/null +++ b/d2/d6a/struct_graph_rep.js @@ -0,0 +1,6 @@ +var struct_graph_rep = +[ + [ "edges", "d2/d6a/struct_graph_rep.html#aeb803dced884357ef0c7ea59525e382b", null ], + [ "nE", "d2/d6a/struct_graph_rep.html#aaf306e1727ca6c84cc03635ef4ac4888", null ], + [ "nV", "d2/d6a/struct_graph_rep.html#a081038f30741c196b7d84fe79b4732c9", null ] +]; \ No newline at end of file diff --git a/d2/d71/struct_a_v_lnode.html b/d2/d71/struct_a_v_lnode.html new file mode 100644 index 00000000..c950c188 --- /dev/null +++ b/d2/d71/struct_a_v_lnode.html @@ -0,0 +1,136 @@ + + + + + + + +Algorithms_in_C: AVLnode Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
AVLnode Struct Reference
+
+
+
+Collaboration diagram for AVLnode:
+
+
+
+
[legend]
+ + + + + + + + + + +

+Data Fields

+int key
 
+struct AVLnodeleft
 
+struct AVLnoderight
 
+int height
 
+
The documentation for this struct was generated from the following file:
    +
  • data_structures/binary_trees/avl.c
  • +
+
+
+ + + + diff --git a/d2/d71/struct_a_v_lnode.js b/d2/d71/struct_a_v_lnode.js new file mode 100644 index 00000000..b48d34f2 --- /dev/null +++ b/d2/d71/struct_a_v_lnode.js @@ -0,0 +1,7 @@ +var struct_a_v_lnode = +[ + [ "height", "d2/d71/struct_a_v_lnode.html#af7b887a7fffb15778d53e167a95e40d9", null ], + [ "key", "d2/d71/struct_a_v_lnode.html#ab3391d72c5ace9f85889430ce18383ef", null ], + [ "left", "d2/d71/struct_a_v_lnode.html#a91349e8b477c6e9d45187997ca2e2a50", null ], + [ "right", "d2/d71/struct_a_v_lnode.html#aaf07c08df1ee92ae2512869a178a14d9", null ] +]; \ No newline at end of file diff --git a/d2/d89/structcontour.html b/d2/d89/structcontour.html new file mode 100644 index 00000000..5a2d03cd --- /dev/null +++ b/d2/d89/structcontour.html @@ -0,0 +1,133 @@ + + + + + + + +Algorithms_in_C: contour Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
contour Struct Reference
+
+
+
+Collaboration diagram for contour:
+
+
+
+
[legend]
+ + + + + + + + +

+Data Fields

+double start
 
+double end
 
+struct contournext
 
+
The documentation for this struct was generated from the following file:
    +
  • misc/cantor_set.c
  • +
+
+
+ + + + diff --git a/d2/d89/structcontour.js b/d2/d89/structcontour.js new file mode 100644 index 00000000..78fac44d --- /dev/null +++ b/d2/d89/structcontour.js @@ -0,0 +1,6 @@ +var structcontour = +[ + [ "end", "d2/d89/structcontour.html#acff4c6a80e7d8b15a27f42add6dff976", null ], + [ "next", "d2/d89/structcontour.html#a37ee431bf2d840798656489101dbaaf3", null ], + [ "start", "d2/d89/structcontour.html#a6acf2aeeb306adbed73b797d810ded37", null ] +]; \ No newline at end of file diff --git a/d2/d93/problem__8_2sol2_8c.html b/d2/d93/problem__8_2sol2_8c.html new file mode 100644 index 00000000..9d12015d --- /dev/null +++ b/d2/d93/problem__8_2sol2_8c.html @@ -0,0 +1,279 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_8/sol2.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol2.c File Reference
+
+
+ +

Problem 8 solution +More...

+
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+Include dependency graph for sol2.c:
+
+
+
+
+
+ + + +

+Functions

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

Detailed Description

+

Problem 8 solution

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ main()

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

Main function

+
12 {
+
13  int position = 0, num_bad_chars = 0;
+
14  int num_digits = 4;
+
15  char ch;
+
16  unsigned char num, num_prev;
+
17  unsigned char *buffer = NULL;
+
18  long long int prod = 1, max_prod = 0;
+
19 
+
20  /* if second command-line argument is given,
+
21  * use it as the number of digits to compute
+
22  * successive product for
+
23  */
+
24  if (argc == 2)
+
25  num_digits = atoi(argv[1]);
+
26 
+
27  /* allocate memory to store past values */
+
28  buffer = calloc(num_digits, sizeof(unsigned char));
+
29  if (!buffer)
+
30  {
+
31  perror("Unable to allocate memory for buffer");
+
32  return -1;
+
33  }
+
34 
+
35  /* open file to read digits from */
+
36  FILE *fp = fopen("digits.txt", "rt");
+
37  if (!fp)
+
38  {
+
39  perror("Unable to open file");
+
40  free(buffer); /* free allocated memory */
+
41  return -1;
+
42  }
+
43 
+
44  /* loop through all digits in the file */
+
45  do
+
46  {
+
47  /* get character from file */
+
48  ch = getc(fp);
+
49 
+
50  /* the ASCII codes of digits is between 0x30 and 0x39.
+
51  * any character not in this range implies an invalid character
+
52  */
+
53  if (ch < 0x30 || ch > 0x39)
+
54  {
+
55  num_bad_chars++; /* this is used to get the bad characters in the
+
56  sequence of 13 characters */
+
57  continue;
+
58  }
+
59  else if (num_bad_chars > 0)
+
60  num_bad_chars--;
+
61 
+
62  num = ch - 0x30; /* convert character digit to number */
+
63  num_prev = buffer[0]; /* previous n^th digit */
+
64 
+
65  /* left shift the buffer -
+
66  * using a for loop or a faster memory move
+
67  */
+
68  memmove(buffer, buffer + 1, num_digits - 1);
+
69  /*
+
70  for (int i = 1; i < num_digits; i++)
+
71  buffer[i-1] = buffer[i];
+
72  */
+
73 
+
74  buffer[num_digits - 1] = num; /* save the latest number in buffer */
+
75 
+
76  if (num_prev != 0)
+
77  {
+
78  /* since product is accumulated, the new product can be obtained by
+
79  * simply multiplying the new digit and dividing with the oldest
+
80  * digit
+
81  */
+
82  prod /= num_prev; /* divide first to avoid over-flows */
+
83  prod *= num;
+
84  }
+
85  else
+
86  {
+
87  prod = 1;
+
88  for (int i = 0; i < num_digits; i++)
+
89  {
+
90  if (buffer[i] == 0)
+
91  {
+
92  prod = 0;
+
93  break; /* break innermost for-loop */
+
94  }
+
95  prod *= buffer[i];
+
96  }
+
97  }
+
98 
+
99  /* check if a new maxima was found */
+
100  if (prod > max_prod)
+
101  {
+
102  max_prod = prod;
+
103  position = ftell(fp) - num_bad_chars - num_digits - 1;
+
104  }
+
105  } while (!feof(fp)); /* loop till end of file is reached */
+
106 
+
107  printf("Maximum product: %lld\t Location: %d^th position\n\t", max_prod,
+
108  position);
+
109  fseek(fp, position,
+
110  SEEK_SET); /* move cursor to identified position in file */
+
111  /* loop through all digits */
+
112  for (; num_digits > 0; num_digits--)
+
113  {
+
114  char ch = getc(fp); /* get character */
+
115  /* skip invalid character */
+
116  if (ch < 0x30 || ch > 0x39)
+
117  continue;
+
118  if (num_digits > 1)
+
119  printf("%c x ", ch);
+
120  else
+
121  printf("%c = %lld\n", ch, max_prod);
+
122  }
+
123 
+
124  fclose(fp); /* close file */
+
125  free(buffer); /* free allocated memory */
+
126 
+
127  return 0;
+
128 }
+
+
+
+
+
+ + + + diff --git a/d2/d93/problem__8_2sol2_8c.js b/d2/d93/problem__8_2sol2_8c.js new file mode 100644 index 00000000..0530bfc7 --- /dev/null +++ b/d2/d93/problem__8_2sol2_8c.js @@ -0,0 +1,4 @@ +var problem__8_2sol2_8c = +[ + [ "main", "d2/d93/problem__8_2sol2_8c.html#a0ddf1224851353fc92bfbff6f499fa97", null ] +]; \ No newline at end of file diff --git a/d2/daa/structadaline.html b/d2/daa/structadaline.html new file mode 100644 index 00000000..14ef4617 --- /dev/null +++ b/d2/daa/structadaline.html @@ -0,0 +1,132 @@ + + + + + + + +Algorithms_in_C: adaline Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
adaline Struct Reference
+
+
+ + + + + + + + + + + +

+Data Fields

+double eta
 learning rate of the algorithm
 
+double * weights
 weights of the neural network
 
+int num_weights
 number of weights of the neural network
 
+

Detailed Description

+

structure to hold adaline model parameters

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/d2/daa/structadaline.js b/d2/daa/structadaline.js new file mode 100644 index 00000000..3a4108ca --- /dev/null +++ b/d2/daa/structadaline.js @@ -0,0 +1,6 @@ +var structadaline = +[ + [ "eta", "d2/daa/structadaline.html#a85dbd7cce6195d11ebb388220b96bde2", null ], + [ "num_weights", "d2/daa/structadaline.html#a53314e737a0a5ff4552a03bcc9dafbc1", null ], + [ "weights", "d2/daa/structadaline.html#a32e58c03fd9258709eae6138ad0ec657", null ] +]; \ No newline at end of file diff --git a/d2/dae/problem__1_2sol2_8c.html b/d2/dae/problem__1_2sol2_8c.html new file mode 100644 index 00000000..f6e41944 --- /dev/null +++ b/d2/dae/problem__1_2sol2_8c.html @@ -0,0 +1,164 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_1/sol2.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol2.c File Reference
+
+
+ +

Problem 1 solution +More...

+
#include <stdio.h>
+
+Include dependency graph for sol2.c:
+
+
+
+
+
+ + + +

+Functions

int main ()
 
+

Detailed Description

+

Problem 1 solution

+

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3,5,6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below N.

+

This solution is based on the pattern that the successive numbers in the series follow: 0+3,+2,+1,+3,+1,+2,+3.

+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+

Main function

+
16 {
+
17  int n = 0;
+
18  int sum = 0;
+
19  scanf("%d", &n);
+
20 
+
21  int terms = (n - 1) / 3;
+
22  sum += ((terms) * (6 + (terms - 1) * 3)) / 2; // sum of an A.P.
+
23  terms = (n - 1) / 5;
+
24  sum += ((terms) * (10 + (terms - 1) * 5)) / 2;
+
25  terms = (n - 1) / 15;
+
26  sum -= ((terms) * (30 + (terms - 1) * 15)) / 2;
+
27 
+
28  printf("%d\n", sum);
+
29 }
+
+
+
+
+
+ + + + diff --git a/d2/dae/problem__1_2sol2_8c.js b/d2/dae/problem__1_2sol2_8c.js new file mode 100644 index 00000000..236746fd --- /dev/null +++ b/d2/dae/problem__1_2sol2_8c.js @@ -0,0 +1,4 @@ +var problem__1_2sol2_8c = +[ + [ "main", "d2/dae/problem__1_2sol2_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/d2/dbc/problem__3_2sol2_8c.html b/d2/dbc/problem__3_2sol2_8c.html new file mode 100644 index 00000000..a3ff8335 --- /dev/null +++ b/d2/dbc/problem__3_2sol2_8c.html @@ -0,0 +1,169 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_3/sol2.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol2.c File Reference
+
+
+ +

Problem 3 solution +More...

+
#include <stdio.h>
+
+Include dependency graph for sol2.c:
+
+
+
+
+
+ + + +

+Functions

int main ()
 
+

Detailed Description

+

Problem 3 solution

+

Problem:

+

The prime factors of 13195 are 5,7,13 and 29. What is the largest prime factor of a given number N? e.g. for 10, largest prime factor = 5. For 17, largest prime factor = 17.

+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+

Main function

+
15 {
+
16  int n = 0;
+
17  scanf("%d", &n);
+
18  int prime = 1;
+
19  int i = 2;
+
20  while (i * i <= n)
+
21  {
+
22  while (n % i == 0)
+
23  {
+
24  prime = i;
+
25  n /= i;
+
26  }
+
27  i += 1;
+
28  }
+
29  if (n > 1)
+
30  prime = n;
+
31  printf("%d\n", prime);
+
32  return 0;
+
33 }
+
+
+
+
+
+ + + + diff --git a/d2/dbc/problem__3_2sol2_8c.js b/d2/dbc/problem__3_2sol2_8c.js new file mode 100644 index 00000000..d182a552 --- /dev/null +++ b/d2/dbc/problem__3_2sol2_8c.js @@ -0,0 +1,4 @@ +var problem__3_2sol2_8c = +[ + [ "main", "d2/dbc/problem__3_2sol2_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/d2/dc3/carray_8h_source.html b/d2/dc3/carray_8h_source.html new file mode 100644 index 00000000..a0eeaf9e --- /dev/null +++ b/d2/dc3/carray_8h_source.html @@ -0,0 +1,202 @@ + + + + + + + +Algorithms_in_C: data_structures/array/carray.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
carray.h
+
+
+
1 /*
+
2  * CArray.h
+
3  *
+
4  * Author: Leonardo Vencovsky
+
5  * Created on 18/03/2018
+
6  *
+
7  * Modified by: Leonardo Vencovsky
+
8  * Last modified: 19/03/2018
+
9  *
+
10  * Header for Array in C
+
11  *
+
12  * Compiled in Visual Studio 2017
+
13  *
+
14  */
+
15 
+
16 #pragma once
+
17 
+
18 #ifdef __cplusplus
+
19 extern "C"
+
20 {
+
21 #endif
+
22 
+
23 #define ARRAY_ERASED -1
+
24 #define SUCCESS 0
+
25 #define INVALID_POSITION 1
+
26 #define POSITION_INIT 2
+
27 #define POSITION_NOT_INIT 3
+
28 #define POSITION_EMPTY 4
+
29 #define ARRAY_FULL 5
+
30 
+
31  typedef struct CArray
+
32  {
+
33  int *array;
+
34  int size;
+
35  } CArray;
+
36 
+
37  // +-------------------------------------+
+
38  // | Returns array |
+
39  // +-------------------------------------+
+
40  CArray *getCArray(int size);
+
41  CArray *getCopyCArray(CArray *array);
+
42 
+
43  // +-------------------------------------+
+
44  // | Input / Output |
+
45  // +-------------------------------------+
+
46  int insertValueCArray(CArray *array, int position, int value);
+
47  int removeValueCArray(CArray *array, int position);
+
48  int pushValueCArray(CArray *array, int value);
+
49  int updateValueCArray(CArray *array, int position, int value);
+
50 
+
51  // +-------------------------------------+
+
52  // | Erase |
+
53  // +-------------------------------------+
+
54  int eraseCArray(CArray *array);
+
55 
+
56  // +-------------------------------------+
+
57  // | Switching |
+
58  // +-------------------------------------+
+
59  int switchValuesCArray(CArray *array, int position1, int position2);
+
60  int reverseCArray(CArray *array);
+
61 
+
62  // +-------------------------------------+
+
63  // | Sorting |
+
64  // +-------------------------------------+
+
65  int bubbleSortCArray(CArray *array);
+
66  int selectionSortCArray(CArray *array);
+
67  int insertionSortCArray(CArray *array);
+
68  int blenderCArray(CArray *array);
+
69 
+
70  // +-------------------------------------+
+
71  // | Searching |
+
72  // +-------------------------------------+
+
73  int valueOcurranceCArray(CArray *array, int value);
+
74  CArray *valuePositionsCArray(CArray *array, int value);
+
75  int findMaxCArray(CArray *array);
+
76  int findMinCArray(CArray *array);
+
77 
+
78  // +-------------------------------------+
+
79  // | Display |
+
80  // +-------------------------------------+
+
81  int displayCArray(CArray *array);
+
82 
+
83 #ifdef __cplusplus
+
84 }
+
85 #endif
+
+
+
#define min(a, b)
Definition: kohonen_som_topology.c:37
+
int test_c_atoi()
Definition: c_atoi_str_to_integer.c:54
+
int main(int argc, char **argv)
Definition: c_atoi_str_to_integer.c:70
+
int c_atoi(const char *str)
Definition: c_atoi_str_to_integer.c:16
+
Definition: carray.h:32
+
double complex func(double complex x)
Definition: newton_raphson_root.c:22
+
#define max(a, b)
Definition: kohonen_som_topology.c:31
+
void swap(int *a, int *b)
Definition: shell_sort2.c:22
+ + + + diff --git a/d2/dd8/problem__3_2sol1_8c__incl.map b/d2/dd8/problem__3_2sol1_8c__incl.map new file mode 100644 index 00000000..163b3cf3 --- /dev/null +++ b/d2/dd8/problem__3_2sol1_8c__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d2/dd8/problem__3_2sol1_8c__incl.md5 b/d2/dd8/problem__3_2sol1_8c__incl.md5 new file mode 100644 index 00000000..a88ffffe --- /dev/null +++ b/d2/dd8/problem__3_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +ffec0ccffe05524c2dc602ed2140cf9c \ No newline at end of file diff --git a/d2/dd8/problem__3_2sol1_8c__incl.svg b/d2/dd8/problem__3_2sol1_8c__incl.svg new file mode 100644 index 00000000..37d3e81a --- /dev/null +++ b/d2/dd8/problem__3_2sol1_8c__incl.svg @@ -0,0 +1,53 @@ + + + + + + +project_euler/problem_3/sol1.c + + + +Node1 + + +project_euler/problem +_3/sol1.c + + + + + +Node2 + + +math.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + diff --git a/d2/ddf/struct_l__coll__graph.map b/d2/ddf/struct_l__coll__graph.map new file mode 100644 index 00000000..e83b5eff --- /dev/null +++ b/d2/ddf/struct_l__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/d2/ddf/struct_l__coll__graph.md5 b/d2/ddf/struct_l__coll__graph.md5 new file mode 100644 index 00000000..77235eb3 --- /dev/null +++ b/d2/ddf/struct_l__coll__graph.md5 @@ -0,0 +1 @@ +a800397f90cbeddc1f117a1261f833ed \ No newline at end of file diff --git a/d2/ddf/struct_l__coll__graph.svg b/d2/ddf/struct_l__coll__graph.svg new file mode 100644 index 00000000..9344105f --- /dev/null +++ b/d2/ddf/struct_l__coll__graph.svg @@ -0,0 +1,29 @@ + + + + + + +L + + + +Node1 + + +L + + + + + +Node1->Node1 + + + next + + + diff --git a/d2/de9/realtime__stats_8c__incl.map b/d2/de9/realtime__stats_8c__incl.map new file mode 100644 index 00000000..e9e5693d --- /dev/null +++ b/d2/de9/realtime__stats_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/d2/de9/realtime__stats_8c__incl.md5 b/d2/de9/realtime__stats_8c__incl.md5 new file mode 100644 index 00000000..ec423a04 --- /dev/null +++ b/d2/de9/realtime__stats_8c__incl.md5 @@ -0,0 +1 @@ +c7ac8a46f7a7b063f4f96b17834341ef \ No newline at end of file diff --git a/d2/de9/realtime__stats_8c__incl.svg b/d2/de9/realtime__stats_8c__incl.svg new file mode 100644 index 00000000..d0115cc6 --- /dev/null +++ b/d2/de9/realtime__stats_8c__incl.svg @@ -0,0 +1,68 @@ + + + + + + +numerical_methods/realtime_stats.c + + + +Node1 + + +numerical_methods/realtime +_stats.c + + + + + +Node2 + + +assert.h + + + + + +Node1->Node2 + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdio.h + + + + + +Node1->Node4 + + + + + diff --git a/d2/df6/kohonen__som__topology_8c.html b/d2/df6/kohonen__som__topology_8c.html new file mode 100644 index 00000000..eb0b4b2e --- /dev/null +++ b/d2/df6/kohonen__som__topology_8c.html @@ -0,0 +1,1310 @@ + + + + + + + +Algorithms_in_C: machine_learning/kohonen_som_topology.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
kohonen_som_topology.c File Reference
+
+
+ +

Kohonen self organizing map (topological map) +More...

+
#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for kohonen_som_topology.c:
+
+
+
+
+
+ + + +

+Data Structures

struct  array_3d
 
+ + + + + + + +

+Macros

#define _USE_MATH_DEFINES
 
#define max(a, b)   (((a) > (b)) ? (a) : (b))
 
#define min(a, b)   (((a) < (b)) ? (a) : (b))
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

double * data_3d (const struct array_3d *arr, int x, int y, int z)
 
double _random (double a, double b)
 
int save_2d_data (const char *fname, double **X, int num_points, int num_features)
 
int save_u_matrix (const char *fname, struct array_3d *W)
 
void get_min_2d (double **X, int N, double *val, int *x_idx, int *y_idx)
 
double update_weights (const double *X, struct array_3d *W, double **D, int num_out, int num_features, double alpha, int R)
 
void kohonen_som (double **X, struct array_3d *W, int num_samples, int num_features, int num_out, double alpha_min)
 
void test_2d_classes (double *const *data, int N)
 
void test1 ()
 
void test_3d_classes1 (double *const *data, int N)
 
void test2 ()
 
void test_3d_classes2 (double *const *data, int N)
 
void test3 ()
 
double get_clock_diff (clock_t start_t, clock_t end_t)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Kohonen self organizing map (topological map)

+
Author
Krishna Vedala This example implements a powerful unsupervised learning algorithm called as a self organizing map. The algorithm creates a connected network of weights that closely follows the given data points. This thus creates a topological map of the given data i.e., it maintains the relationship between varipus data points in a much higher dimesional space by creating an equivalent in a 2-dimensional space. Trained topological maps for the test cases in the program
+
Warning
MSVC 2019 compiler generates code that does not execute as expected. However, MinGW, Clang for GCC and Clang for MSVC compilers on windows perform as expected. Any insights and suggestions should be directed to the author.
+
See also
kohonen_som_trace.c
+

Macro Definition Documentation

+ +

◆ _USE_MATH_DEFINES

+ +
+
+ + + + +
#define _USE_MATH_DEFINES
+
+

required for MS Visual C

+ +
+
+ +

◆ max

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define max( a,
 
)   (((a) > (b)) ? (a) : (b))
+
+

shorthand for maximum value \

+ +
+
+ +

◆ min

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define min( a,
 
)   (((a) < (b)) ? (a) : (b))
+
+

shorthand for minimum value \

+ +
+
+

Function Documentation

+ +

◆ _random()

+ +
+
+ + + + + + + + + + + + + + + + + + +
double _random (double a,
double b 
)
+
+

Helper function to generate a random number in a given interval.
+ Steps:

    +
  1. r1 = rand() % 100 gets a random number between 0 and 99
  2. +
  3. r2 = r1 / 100 converts random number to be between 0 and 0.99
  4. +
  5. scale and offset the random number to given range of \([a,b)\)

    +\[ y = (b - a) \times \frac{\text{(random number between 0 and RAND_MAX)} \; \text{mod}\; 100}{100} + a \] +

    +
  6. +
+
Parameters
+ + + +
[in]alower limit
[in]bupper limit
+
+
+
Returns
random number in the range \([a,b)\)
+
99 {
+
+
+
+ +

◆ data_3d()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
double* data_3d (const struct array_3darr,
int x,
int y,
int z 
)
+
+

Function that returns the pointer to (x, y, z) ^th location in the linear 3D array given by:

+\[ X_{i,j,k} = i\times M\times N + j\times N + k \] +

+

where \(L\), \(M\) and \(N\) are the 3D matrix dimensions.

Parameters
+ + + + + +
[in]arrpointer to array_3d structure
[in]xfirst index
[in]ysecond index
[in]zthird index
+
+
+
Returns
pointer to (x,y,z)^th location of data
+
83 {
+
+
+
+ +

◆ get_clock_diff()

+ +
+
+ + + + + + + + + + + + + + + + + + +
double get_clock_diff (clock_t start_t,
clock_t end_t 
)
+
+

Convert clock cycle difference to time in seconds

+
Parameters
+ + + +
[in]start_tstart clock
[in]end_tend clock
+
+
+
Returns
time difference in seconds
+
661 {
+
+
+
+ +

◆ get_min_2d()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void get_min_2d (double ** X,
int N,
double * val,
int * x_idx,
int * y_idx 
)
+
+

Get minimum value and index of the value in a matrix

Parameters
+ + + + + + +
[in]Xmatrix to search
[in]Nnumber of points in the vector
[out]valminimum value found
[out]idx_xx-index where minimum value was found
[out]idx_yy-index where minimum value was found
+
+
+
204  {
+
205  for (int j = 0; j < N; j++) // traverse each y-index
+
206  {
+
207  if (X[i][j] < val[0]) // if a lower value is found
+
208  { // save the value and its index
+
209  x_idx[0] = i;
+
210  y_idx[0] = j;
+
211  val[0] = X[i][j];
+
212  }
+
213  }
+
214  }
+
215 }
+
216 
+
217 /**
+
+
+
+ +

◆ kohonen_som()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void kohonen_som (double ** X,
struct array_3dW,
int num_samples,
int num_features,
int num_out,
double alpha_min 
)
+
+

Apply incremental algorithm with updating neighborhood and learning rates on all samples in the given datset.

+
Parameters
+ + + + + + + + +
[in]Xdata set
[in,out]Wweights matrix
[in]Dtemporary vector to store distances
[in]num_samplesnumber of output points
[in]num_featuresnumber of features per input sample
[in]num_outnumber of output points
[in]alpha_minterminal value of alpha
+
+
+
311 {
+
312  int R = num_out >> 2, iter = 0;
+
313  double **D = (double **)malloc(num_out * sizeof(double *));
+
314  for (int i = 0; i < num_out; i++)
+
315  D[i] = (double *)malloc(num_out * sizeof(double));
+
316 
+
317  double dmin = 1.f; // average minimum distance of all samples
+
318 
+
319  // Loop alpha from 1 to slpha_min
+
320  for (double alpha = 1.f; alpha > alpha_min && dmin > 1e-3;
+
321  alpha -= 0.001, iter++)
+
322  {
+
323  dmin = 0.f;
+
324  // Loop for each sample pattern in the data set
+
325  for (int sample = 0; sample < num_samples; sample++)
+
326  {
+
327  // update weights for the current input pattern sample
+
328  dmin += update_weights(X[sample], W, D, num_out, num_features,
+
329  alpha, R);
+
330  }
+
331 
+
332  // every 20th iteration, reduce the neighborhood range
+
333  if (iter % 100 == 0 && R > 1)
+
334  R--;
+
335 
+
336  dmin /= num_samples;
+
337  printf("iter: %5d\t alpha: %.4g\t R: %d\td_min: %.4g\r", iter, alpha, R,
+
338  dmin);
+
339  }
+
340  putchar('\n');
+
341 
+
342  for (int i = 0; i < num_out; i++)
+
343  free(D[i]);
+
344  free(D);
+
345 }
+
346 
+
347 /** Creates a random set of points distributed in four clusters in
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ main()

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

Main function

+
687  : Calculated times include: writing files to disk.)\n\n");
+
688  return 0;
+
689 }
+
+
+
+ +

◆ save_2d_data()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int save_2d_data (const char * fname,
double ** X,
int num_points,
int num_features 
)
+
+

Save a given n-dimensional data martix to file.

+
Parameters
+ + + + + +
[in]fnamefilename to save in (gets overwriten without confirmation)
[in]Xmatrix to save
[in]num_pointsrows in the matrix = number of points
[in]num_featurescolumns in the matrix = dimensions of points
+
+
+
Returns
0 if all ok
+
+-1 if file creation failed
+
99 {
+
100  FILE *fp = fopen(fname, "wt");
+
101  if (!fp) // error with fopen
+
102  {
+
103  char msg[120];
+
104  sprintf(msg, "File error (%s): ", fname);
+
105  perror(msg);
+
106  return -1;
+
107  }
+
108 
+
109  for (int i = 0; i < num_points; i++) // for each point in the array
+
110  {
+
111  for (int j = 0; j < num_features; j++) // for each feature in the array
+
112  {
+
113  fprintf(fp, "%.4g", X[i][j]); // print the feature value
+
114  if (j < num_features - 1) // if not the last feature
+
115  fputc(',', fp); // suffix comma
+
116  }
+
117  if (i < num_points - 1) // if not the last row
+
118  fputc('\n', fp); // start a new line
+
119  }
+
120  fclose(fp);
+
121  return 0;
+
122 }
+
123 
+
124 /**
+
+
+
+ +

◆ save_u_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int save_u_matrix (const char * fname,
struct array_3dW 
)
+
+

Create the distance matrix or U-matrix from the trained weights and save to disk.

+
Parameters
+ + + +
[in]fnamefilename to save in (gets overwriten without confirmation)
[in]Wmodel matrix to save
+
+
+
Returns
0 if all ok
+
+-1 if file creation failed
+
138  {
+
139  char msg[120];
+
140  sprintf(msg, "File error (%s): ", fname);
+
141  perror(msg);
+
142  return -1;
+
143  }
+
144 
+
145  int R = max(W->dim1 >> 3, 2); /* neighborhood range */
+
146 
+
147  for (int i = 0; i < W->dim1; i++) // for each x
+
148  {
+
149  for (int j = 0; j < W->dim2; j++) // for each y
+
150  {
+
151  double distance = 0.f;
+
152  int k;
+
153 
+
154  int from_x = max(0, i - R);
+
155  int to_x = min(W->dim1, i + R + 1);
+
156  int from_y = max(0, j - R);
+
157  int to_y = min(W->dim2, j + R + 1);
+
158  int l;
+
159 #ifdef _OPENMP
+
160 #pragma omp parallel for reduction(+ : distance)
+
161 #endif
+
162  for (l = from_x; l < to_x; l++) // scan neighborhoor in x
+
163  {
+
164  for (int m = from_y; m < to_y; m++) // scan neighborhood in y
+
165  {
+
166  double d = 0.f;
+
167  for (k = 0; k < W->dim3; k++) // for each feature
+
168  {
+
169  double *w1 = data_3d(W, i, j, k);
+
170  double *w2 = data_3d(W, l, m, k);
+
171  d += (w1[0] - w2[0]) * (w1[0] - w2[0]);
+
172  // distance += w1[0] * w1[0];
+
173  }
+
174  distance += sqrt(d);
+
175  // distance += d;
+
176  }
+
177  }
+
178 
+
179  distance /= R * R; // mean distance from neighbors
+
180  fprintf(fp, "%.4g", distance); // print the mean separation
+
181  if (j < W->dim2 - 1) // if not the last column
+
182  fputc(',', fp); // suffix comma
+
183  }
+
184  if (i < W->dim1 - 1) // if not the last row
+
185  fputc('\n', fp); // start a new line
+
186  }
+
187  fclose(fp);
+
188  return 0;
+
189 }
+
190 
+
191 /**
+
+
+
+ +

◆ test1()

+ +
+
+ + + + + + + +
void test1 ()
+
+

Test that creates a random set of points distributed in four clusters in 2D space and trains an SOM that finds the topological pattern. The following CSV files are created to validate the execution:

    +
  • test1.csv: random test samples points with a circular pattern
  • +
  • w11.csv: initial random U-matrix
  • +
  • w12.csv: trained SOM U-matrix
  • +
+
414  {
+
415  if (i < N) // only add new arrays if i < N
+
416  X[i] = (double *)malloc(features * sizeof(double));
+
417  if (i < num_out) // only add new arrays if i < num_out
+
418  {
+
419  for (int k = 0; k < num_out; k++)
+
420  {
+
421 #ifdef _OPENMP
+
422 #pragma omp for
+
423 #endif
+
424  // preallocate with random initial weights
+
425  for (j = 0; j < features; j++)
+
426  {
+
427  double *w = data_3d(&W, i, k, j);
+
428  w[0] = _random(-5, 5);
+
429  }
+
430  }
+
431  }
+
432  }
+
433 
+
434  test_2d_classes(X, N); // create test data around circumference of a circle
+
435  save_2d_data("test1.csv", X, N, features); // save test data points
+
436  save_u_matrix("w11.csv", &W); // save initial random weights
+
437  kohonen_som(X, &W, N, features, num_out, 1e-4); // train the SOM
+
438  save_u_matrix("w12.csv", &W); // save the resultant weights
+
439 
+
440  for (int i = 0; i < N; i++)
+
441  free(X[i]);
+
442  free(X);
+
443  free(W.data);
+
444 }
+
445 
+
446 /** Creates a random set of points distributed in four clusters in
+
+
+
+ +

◆ test2()

+ +
+
+ + + + + + + +
void test2 ()
+
+

Test that creates a random set of points distributed in 4 clusters in 3D space and trains an SOM that finds the topological pattern. The following CSV files are created to validate the execution:

    +
  • test2.csv: random test samples points
  • +
  • w21.csv: initial random U-matrix
  • +
  • w22.csv: trained SOM U-matrix
  • +
+
514  {
+
515  if (i < N) // only add new arrays if i < N
+
516  X[i] = (double *)malloc(features * sizeof(double));
+
517  if (i < num_out) // only add new arrays if i < num_out
+
518  {
+
519  for (int k = 0; k < num_out; k++)
+
520  {
+
521 #ifdef _OPENMP
+
522 #pragma omp for
+
523 #endif
+
524  for (j = 0; j < features; j++)
+
525  { // preallocate with random initial weights
+
526  double *w = data_3d(&W, i, k, j);
+
527  w[0] = _random(-5, 5);
+
528  }
+
529  }
+
530  }
+
531  }
+
532 
+
533  test_3d_classes1(X, N); // create test data
+
534  save_2d_data("test2.csv", X, N, features); // save test data points
+
535  save_u_matrix("w21.csv", &W); // save initial random weights
+
536  kohonen_som(X, &W, N, features, num_out, 1e-4); // train the SOM
+
537  save_u_matrix("w22.csv", &W); // save the resultant weights
+
538 
+
539  for (int i = 0; i < N; i++)
+
540  free(X[i]);
+
541  free(X);
+
542  free(W.data);
+
543 }
+
544 
+
545 /** Creates a random set of points distributed in four clusters in
+
+
+
+ +

◆ test3()

+ +
+
+ + + + + + + +
void test3 ()
+
+

Test that creates a random set of points distributed in eight clusters in 3D space and trains an SOM that finds the topological pattern. The following CSV files are created to validate the execution:

    +
  • test3.csv: random test samples points
  • +
  • w31.csv: initial random U-matrix
  • +
  • w32.csv: trained SOM U-matrix
  • +
+
615  {
+
616  if (i < N) // only add new arrays if i < N
+
617  X[i] = (double *)malloc(features * sizeof(double));
+
618  if (i < num_out) // only add new arrays if i < num_out
+
619  {
+
620  for (int k = 0; k < num_out; k++)
+
621  {
+
622 #ifdef _OPENMP
+
623 #pragma omp for
+
624 #endif
+
625  // preallocate with random initial weights
+
626  for (j = 0; j < features; j++)
+
627  {
+
628  double *w = data_3d(&W, i, k, j);
+
629  w[0] = _random(-5, 5);
+
630  }
+
631  }
+
632  }
+
633  }
+
634 
+
635  test_3d_classes2(X, N); // create test data around the lamniscate
+
636  save_2d_data("test3.csv", X, N, features); // save test data points
+
637  save_u_matrix("w31.csv", &W); // save initial random weights
+
638  kohonen_som(X, &W, N, features, num_out, 0.01); // train the SOM
+
639  save_u_matrix("w32.csv", &W); // save the resultant weights
+
640 
+
641  for (int i = 0; i < N; i++)
+
642  free(X[i]);
+
643  free(X);
+
644  free(W.data);
+
645 }
+
646 
+
647 /**
+
+
+
+ +

◆ test_2d_classes()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void test_2d_classes (double *const * data,
int N 
)
+
+

Creates a random set of points distributed in four clusters in 3D space with centroids at the points

    +
  • \((0,5, 0.5, 0.5)\)
  • +
  • \((0,5,-0.5, -0.5)\)
  • +
  • \((-0,5, 0.5, 0.5)\)
  • +
  • \((-0,5,-0.5, -0.5)\)
  • +
+
Parameters
+ + + +
[out]datamatrix to store data in
[in]Nnumber of points required
+
+
+
362  {
+
363  // centres of each class cluster
+
364  {.5, .5}, // centre of class 1
+
365  {.5, -.5}, // centre of class 2
+
366  {-.5, .5}, // centre of class 3
+
367  {-.5, -.5} // centre of class 4
+
368  };
+
369 
+
370 #ifdef _OPENMP
+
371 #pragma omp for
+
372 #endif
+
373  for (i = 0; i < N; i++)
+
374  {
+
375  int class = rand() % num_classes; // select a random class for the point
+
376 
+
377  // create random coordinates (x,y,z) around the centre of the class
+
378  data[i][0] = _random(centres[class][0] - R, centres[class][0] + R);
+
379  data[i][1] = _random(centres[class][1] - R, centres[class][1] + R);
+
380 
+
381  /* The follosing can also be used
+
382  for (int j = 0; j < 2; j++)
+
383  data[i][j] = _random(centres[class][j] - R, centres[class][j] + R);
+
384  */
+
385  }
+
386 }
+
387 
+
388 /** Test that creates a random set of points distributed in four clusters in
+
+
+
+ +

◆ test_3d_classes1()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void test_3d_classes1 (double *const * data,
int N 
)
+
+

Creates a random set of points distributed in four clusters in 3D space with centroids at the points

    +
  • \((0,5, 0.5, 0.5)\)
  • +
  • \((0,5,-0.5, -0.5)\)
  • +
  • \((-0,5, 0.5, 0.5)\)
  • +
  • \((-0,5,-0.5, -0.5)\)
  • +
+
Parameters
+ + + +
[out]datamatrix to store data in
[in]Nnumber of points required
+
+
+
461  {
+
462  // centres of each class cluster
+
463  {.5, .5, .5}, // centre of class 1
+
464  {.5, -.5, -.5}, // centre of class 2
+
465  {-.5, .5, .5}, // centre of class 3
+
466  {-.5, -.5 - .5} // centre of class 4
+
467  };
+
468 
+
469 #ifdef _OPENMP
+
470 #pragma omp for
+
471 #endif
+
472  for (i = 0; i < N; i++)
+
473  {
+
474  int class = rand() % num_classes; // select a random class for the point
+
475 
+
476  // create random coordinates (x,y,z) around the centre of the class
+
477  data[i][0] = _random(centres[class][0] - R, centres[class][0] + R);
+
478  data[i][1] = _random(centres[class][1] - R, centres[class][1] + R);
+
479  data[i][2] = _random(centres[class][2] - R, centres[class][2] + R);
+
480 
+
481  /* The follosing can also be used
+
482  for (int j = 0; j < 3; j++)
+
483  data[i][j] = _random(centres[class][j] - R, centres[class][j] + R);
+
484  */
+
485  }
+
486 }
+
487 
+
488 /** Test that creates a random set of points distributed in 4 clusters in
+
+
+
+ +

◆ test_3d_classes2()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void test_3d_classes2 (double *const * data,
int N 
)
+
+

Creates a random set of points distributed in four clusters in 3D space with centroids at the points

    +
  • \((0,5, 0.5, 0.5)\)
  • +
  • \((0,5,-0.5, -0.5)\)
  • +
  • \((-0,5, 0.5, 0.5)\)
  • +
  • \((-0,5,-0.5, -0.5)\)
  • +
+
Parameters
+ + + +
[out]datamatrix to store data in
[in]Nnumber of points required
+
+
+
560  {
+
561  // centres of each class cluster
+
562  {.5, .5, .5}, // centre of class 1
+
563  {.5, .5, -.5}, // centre of class 2
+
564  {.5, -.5, .5}, // centre of class 3
+
565  {.5, -.5, -.5}, // centre of class 4
+
566  {-.5, .5, .5}, // centre of class 5
+
567  {-.5, .5, -.5}, // centre of class 6
+
568  {-.5, -.5, .5}, // centre of class 7
+
569  {-.5, -.5, -.5} // centre of class 8
+
570  };
+
571 
+
572 #ifdef _OPENMP
+
573 #pragma omp for
+
574 #endif
+
575  for (i = 0; i < N; i++)
+
576  {
+
577  int class = rand() % num_classes; // select a random class for the point
+
578 
+
579  // create random coordinates (x,y,z) around the centre of the class
+
580  data[i][0] = _random(centres[class][0] - R, centres[class][0] + R);
+
581  data[i][1] = _random(centres[class][1] - R, centres[class][1] + R);
+
582  data[i][2] = _random(centres[class][2] - R, centres[class][2] + R);
+
583 
+
584  /* The follosing can also be used
+
585  for (int j = 0; j < 3; j++)
+
586  data[i][j] = _random(centres[class][j] - R, centres[class][j] + R);
+
587  */
+
588  }
+
589 }
+
590 
+
591 /** Test that creates a random set of points distributed in eight clusters in
+
+
+
+ +

◆ update_weights()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
double update_weights (const double * X,
struct array_3dW,
double ** D,
int num_out,
int num_features,
double alpha,
int R 
)
+
+

Update weights of the SOM using Kohonen algorithm

+
Parameters
+ + + + + + + + +
[in]Xdata point
[in,out]Wweights matrix
[in,out]Dtemporary vector to store distances
[in]num_outnumber of output points
[in]num_featuresnumber of features per input sample
[in]alphalearning rate \(0<\alpha\le1\)
[in]Rneighborhood range
+
+
+
Returns
minimum distance of sample and trained weights
+
231 {
+
232  int x, y, k;
+
233  double d_min = 0.f;
+
234 
+
235 #ifdef _OPENMP
+
236 #pragma omp for
+
237 #endif
+
238  // step 1: for each 2D output point
+
239  for (x = 0; x < num_out; x++)
+
240  {
+
241  for (y = 0; y < num_out; y++)
+
242  {
+
243  D[x][y] = 0.f;
+
244  // compute Euclidian distance of each output
+
245  // point from the current sample
+
246  for (k = 0; k < num_features; k++)
+
247  {
+
248  double *w = data_3d(W, x, y, k);
+
249  D[x][y] += (w[0] - X[k]) * (w[0] - X[k]);
+
250  }
+
251  D[x][y] = sqrt(D[x][y]);
+
252  }
+
253  }
+
254 
+
255  // step 2: get closest node i.e., node with smallest Euclidian distance to
+
256  // the current pattern
+
257  int d_min_x, d_min_y;
+
258  get_min_2d(D, num_out, &d_min, &d_min_x, &d_min_y);
+
259 
+
260  // step 3a: get the neighborhood range
+
261  int from_x = max(0, d_min_x - R);
+
262  int to_x = min(num_out, d_min_x + R + 1);
+
263  int from_y = max(0, d_min_y - R);
+
264  int to_y = min(num_out, d_min_y + R + 1);
+
265 
+
266  // step 3b: update the weights of nodes in the
+
267  // neighborhood
+
268 #ifdef _OPENMP
+
269 #pragma omp for
+
270 #endif
+
271  for (x = from_x; x < to_x; x++)
+
272  {
+
273  for (y = from_y; y < to_y; y++)
+
274  {
+
275  /* you can enable the following normalization if needed.
+
276  personally, I found it detrimental to convergence */
+
277  // const double s2pi = sqrt(2.f * M_PI);
+
278  // double normalize = 1.f / (alpha * s2pi);
+
279 
+
280  /* apply scaling inversely proportional to distance from the
+
281  current node */
+
282  double d2 =
+
283  (d_min_x - x) * (d_min_x - x) + (d_min_y - y) * (d_min_y - y);
+
284  double scale_factor = exp(-d2 / (2.f * alpha * alpha));
+
285 
+
286  for (k = 0; k < num_features; k++)
+
287  {
+
288  double *w = data_3d(W, x, y, k);
+
289  // update weights of nodes in the neighborhood
+
290  w[0] += alpha * scale_factor * (X[k] - w[0]);
+
291  }
+
292  }
+
293  }
+
294  return d_min;
+
295 }
+
296 
+
297 /**
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
#define min(a, b)
Definition: kohonen_som_topology.c:37
+
double update_weights(const double *X, struct array_3d *W, double **D, int num_out, int num_features, double alpha, int R)
Definition: kohonen_som_topology.c:231
+
Definition: prime_factoriziation.c:25
+
double * data_3d(const struct array_3d *arr, int x, int y, int z)
Definition: kohonen_som_topology.c:64
+
void test_3d_classes1(double *const *data, int N)
Definition: kohonen_som_topology.c:458
+
void test_3d_classes2(double *const *data, int N)
Definition: kohonen_som_topology.c:557
+
#define N
Definition: sol1.c:111
+
int save_u_matrix(const char *fname, struct array_3d *W)
Definition: kohonen_som_topology.c:136
+
int dim3
Definition: kohonen_som_topology.c:48
+
int dim1
Definition: kohonen_som_topology.c:46
+
void get_min_2d(double **X, int N, double *val, int *x_idx, int *y_idx)
Definition: kohonen_som_topology.c:201
+
double _random(double a, double b)
Definition: kohonen_som_topology.c:84
+
int save_2d_data(const char *fname, double **X, int num_points, int num_features)
Definition: kohonen_som_topology.c:99
+
#define max(a, b)
Definition: kohonen_som_topology.c:31
+
int dim2
Definition: kohonen_som_topology.c:47
+
void kohonen_som(double **X, struct array_3d *W, int num_samples, int num_features, int num_out, double alpha_min)
Definition: kohonen_som_topology.c:311
+
void test_2d_classes(double *const *data, int N)
Definition: kohonen_som_topology.c:359
+ + + + diff --git a/d2/df6/kohonen__som__topology_8c.js b/d2/df6/kohonen__som__topology_8c.js new file mode 100644 index 00000000..eb0cfce7 --- /dev/null +++ b/d2/df6/kohonen__som__topology_8c.js @@ -0,0 +1,22 @@ +var kohonen__som__topology_8c = +[ + [ "array_3d", "d0/dc8/structarray__3d.html", "d0/dc8/structarray__3d" ], + [ "_USE_MATH_DEFINES", "d2/df6/kohonen__som__topology_8c.html#a525335710b53cb064ca56b936120431e", null ], + [ "max", "d2/df6/kohonen__som__topology_8c.html#affe776513b24d84b39af8ab0930fef7f", null ], + [ "min", "d2/df6/kohonen__som__topology_8c.html#ac6afabdc09a49a433ee19d8a9486056d", null ], + [ "_random", "d2/df6/kohonen__som__topology_8c.html#af5ce14f026d6d231bef29161bac2b485", null ], + [ "data_3d", "d2/df6/kohonen__som__topology_8c.html#a7237d2cf3b3f9d034477268c1d6631da", null ], + [ "get_clock_diff", "d2/df6/kohonen__som__topology_8c.html#a2256c10b16edba377b64a44b6c656908", null ], + [ "get_min_2d", "d2/df6/kohonen__som__topology_8c.html#adc22d512c00a9f5799ee067f4fb90b4b", null ], + [ "kohonen_som", "d2/df6/kohonen__som__topology_8c.html#a1983dc0f35e734015772e9f8c0ff19f5", null ], + [ "main", "d2/df6/kohonen__som__topology_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "save_2d_data", "d2/df6/kohonen__som__topology_8c.html#a6824dc6d973eb3339af7aef5fea78b0c", null ], + [ "save_u_matrix", "d2/df6/kohonen__som__topology_8c.html#adee1bc3871c881f6e04cb9e0b1d01158", null ], + [ "test1", "d2/df6/kohonen__som__topology_8c.html#a1440a7779ac56f47a3f355ce4a8c7da0", null ], + [ "test2", "d2/df6/kohonen__som__topology_8c.html#a0283886819c7c140a023582b7269e2d0", null ], + [ "test3", "d2/df6/kohonen__som__topology_8c.html#a6d0455dd5c30adda100e95f0423c786e", null ], + [ "test_2d_classes", "d2/df6/kohonen__som__topology_8c.html#adb5ded007be1fd666fab9affe6764018", null ], + [ "test_3d_classes1", "d2/df6/kohonen__som__topology_8c.html#ad9e25202bb8b481461f932668f249dbc", null ], + [ "test_3d_classes2", "d2/df6/kohonen__som__topology_8c.html#a5bb02a8322d717ead1b11182c5f02a3a", null ], + [ "update_weights", "d2/df6/kohonen__som__topology_8c.html#ad139de302fa8135a433d9c1bf971b13b", null ] +]; \ No newline at end of file diff --git a/d2/df6/kohonen__som__topology_8c_a1983dc0f35e734015772e9f8c0ff19f5_cgraph.map b/d2/df6/kohonen__som__topology_8c_a1983dc0f35e734015772e9f8c0ff19f5_cgraph.map new file mode 100644 index 00000000..b93d2262 --- /dev/null +++ b/d2/df6/kohonen__som__topology_8c_a1983dc0f35e734015772e9f8c0ff19f5_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/d2/df6/kohonen__som__topology_8c_a1983dc0f35e734015772e9f8c0ff19f5_cgraph.md5 b/d2/df6/kohonen__som__topology_8c_a1983dc0f35e734015772e9f8c0ff19f5_cgraph.md5 new file mode 100644 index 00000000..dd0b2a22 --- /dev/null +++ b/d2/df6/kohonen__som__topology_8c_a1983dc0f35e734015772e9f8c0ff19f5_cgraph.md5 @@ -0,0 +1 @@ +32796a7eeeed8ad131219c20930cbdb0 \ No newline at end of file diff --git a/d2/df6/kohonen__som__topology_8c_a1983dc0f35e734015772e9f8c0ff19f5_cgraph.svg b/d2/df6/kohonen__som__topology_8c_a1983dc0f35e734015772e9f8c0ff19f5_cgraph.svg new file mode 100644 index 00000000..886841ef --- /dev/null +++ b/d2/df6/kohonen__som__topology_8c_a1983dc0f35e734015772e9f8c0ff19f5_cgraph.svg @@ -0,0 +1,67 @@ + + + + + + +kohonen_som + + + +Node1 + + +kohonen_som + + + + + +Node2 + + +update_weights + + + + + +Node1->Node2 + + + + + +Node3 + + +data_3d + + + + + +Node2->Node3 + + + + + +Node4 + + +get_min_2d + + + + + +Node2->Node4 + + + + + diff --git a/d2/df6/kohonen__som__topology_8c_ad139de302fa8135a433d9c1bf971b13b_cgraph.map b/d2/df6/kohonen__som__topology_8c_ad139de302fa8135a433d9c1bf971b13b_cgraph.map new file mode 100644 index 00000000..6dc0c2db --- /dev/null +++ b/d2/df6/kohonen__som__topology_8c_ad139de302fa8135a433d9c1bf971b13b_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d2/df6/kohonen__som__topology_8c_ad139de302fa8135a433d9c1bf971b13b_cgraph.md5 b/d2/df6/kohonen__som__topology_8c_ad139de302fa8135a433d9c1bf971b13b_cgraph.md5 new file mode 100644 index 00000000..a9531464 --- /dev/null +++ b/d2/df6/kohonen__som__topology_8c_ad139de302fa8135a433d9c1bf971b13b_cgraph.md5 @@ -0,0 +1 @@ +07a32f64abe5218c6297b9c47659c7d0 \ No newline at end of file diff --git a/d2/df6/kohonen__som__topology_8c_ad139de302fa8135a433d9c1bf971b13b_cgraph.svg b/d2/df6/kohonen__som__topology_8c_ad139de302fa8135a433d9c1bf971b13b_cgraph.svg new file mode 100644 index 00000000..7558a258 --- /dev/null +++ b/d2/df6/kohonen__som__topology_8c_ad139de302fa8135a433d9c1bf971b13b_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +update_weights + + + +Node1 + + +update_weights + + + + + +Node2 + + +data_3d + + + + + +Node1->Node2 + + + + + +Node3 + + +get_min_2d + + + + + +Node1->Node3 + + + + + diff --git a/d3/d01/problem__21_2sol1_8c__incl.map b/d3/d01/problem__21_2sol1_8c__incl.map new file mode 100644 index 00000000..69f34dd7 --- /dev/null +++ b/d3/d01/problem__21_2sol1_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/d3/d01/problem__21_2sol1_8c__incl.md5 b/d3/d01/problem__21_2sol1_8c__incl.md5 new file mode 100644 index 00000000..6f1d19bc --- /dev/null +++ b/d3/d01/problem__21_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +c7ab729b20cc26865e62b9572370ab69 \ No newline at end of file diff --git a/d3/d01/problem__21_2sol1_8c__incl.svg b/d3/d01/problem__21_2sol1_8c__incl.svg new file mode 100644 index 00000000..f51d75c6 --- /dev/null +++ b/d3/d01/problem__21_2sol1_8c__incl.svg @@ -0,0 +1,68 @@ + + + + + + +project_euler/problem_21/sol1.c + + + +Node1 + + +project_euler/problem +_21/sol1.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + +Node4 + + +time.h + + + + + +Node1->Node4 + + + + + diff --git a/d3/d21/sol3_8c__incl.map b/d3/d21/sol3_8c__incl.map new file mode 100644 index 00000000..c07de1a7 --- /dev/null +++ b/d3/d21/sol3_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/d3/d21/sol3_8c__incl.md5 b/d3/d21/sol3_8c__incl.md5 new file mode 100644 index 00000000..731acd84 --- /dev/null +++ b/d3/d21/sol3_8c__incl.md5 @@ -0,0 +1 @@ +1c5b7e0555ef3f073fd52ade26450a49 \ No newline at end of file diff --git a/d3/d21/sol3_8c__incl.svg b/d3/d21/sol3_8c__incl.svg new file mode 100644 index 00000000..f71c04aa --- /dev/null +++ b/d3/d21/sol3_8c__incl.svg @@ -0,0 +1,38 @@ + + + + + + +project_euler/problem_1/sol3.c + + + +Node1 + + +project_euler/problem +_1/sol3.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + diff --git a/d3/d5a/struct__large__num.html b/d3/d5a/struct__large__num.html new file mode 100644 index 00000000..eed9c482 --- /dev/null +++ b/d3/d5a/struct__large__num.html @@ -0,0 +1,155 @@ + + + + + + + +Algorithms_in_C: _large_num Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
_large_num Struct Reference
+
+
+ + + + + + +

+Data Fields

char * digits
 
unsigned int num_digits
 
+

Detailed Description

+

dynamically large number

+

Field Documentation

+ +

◆ digits

+ +
+
+ + + + +
char* _large_num::digits
+
+

array to store individual digits

+ +
+
+ +

◆ num_digits

+ +
+
+ + + + +
unsigned int _large_num::num_digits
+
+

number of digits in the number

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/d3/d5a/struct__large__num.js b/d3/d5a/struct__large__num.js new file mode 100644 index 00000000..bc48c950 --- /dev/null +++ b/d3/d5a/struct__large__num.js @@ -0,0 +1,5 @@ +var struct__large__num = +[ + [ "digits", "d3/d5a/struct__large__num.html#afaf353a072cf050ac86ac6e39868bcc9", null ], + [ "num_digits", "d3/d5a/struct__large__num.html#a3fd11c0b413bbabfb8737d4ae73e5aa0", null ] +]; \ No newline at end of file diff --git a/d3/d61/problem__1_2sol1_8c__incl.map b/d3/d61/problem__1_2sol1_8c__incl.map new file mode 100644 index 00000000..ea48c34f --- /dev/null +++ b/d3/d61/problem__1_2sol1_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/d3/d61/problem__1_2sol1_8c__incl.md5 b/d3/d61/problem__1_2sol1_8c__incl.md5 new file mode 100644 index 00000000..d0666a0e --- /dev/null +++ b/d3/d61/problem__1_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +942fb82f1771fc801da4688938d06b77 \ No newline at end of file diff --git a/d3/d61/problem__1_2sol1_8c__incl.svg b/d3/d61/problem__1_2sol1_8c__incl.svg new file mode 100644 index 00000000..99c118c5 --- /dev/null +++ b/d3/d61/problem__1_2sol1_8c__incl.svg @@ -0,0 +1,38 @@ + + + + + + +project_euler/problem_1/sol1.c + + + +Node1 + + +project_euler/problem +_1/sol1.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + diff --git a/d3/da9/problem__5_2sol_8c__incl.map b/d3/da9/problem__5_2sol_8c__incl.map new file mode 100644 index 00000000..8d3cd966 --- /dev/null +++ b/d3/da9/problem__5_2sol_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/d3/da9/problem__5_2sol_8c__incl.md5 b/d3/da9/problem__5_2sol_8c__incl.md5 new file mode 100644 index 00000000..8c69f86b --- /dev/null +++ b/d3/da9/problem__5_2sol_8c__incl.md5 @@ -0,0 +1 @@ +f0b4e0dfca81111c17cb7941e459562d \ No newline at end of file diff --git a/d3/da9/problem__5_2sol_8c__incl.svg b/d3/da9/problem__5_2sol_8c__incl.svg new file mode 100644 index 00000000..2d3089a5 --- /dev/null +++ b/d3/da9/problem__5_2sol_8c__incl.svg @@ -0,0 +1,38 @@ + + + + + + +project_euler/problem_5/sol.c + + + +Node1 + + +project_euler/problem +_5/sol.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + diff --git a/d4/d02/struct_b_s_t_iterator.html b/d4/d02/struct_b_s_t_iterator.html new file mode 100644 index 00000000..2eb88f27 --- /dev/null +++ b/d4/d02/struct_b_s_t_iterator.html @@ -0,0 +1,129 @@ + + + + + + + +Algorithms_in_C: BSTIterator Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
BSTIterator Struct Reference
+
+
+ + + + + + + + +

+Data Fields

+int * values
 
+int CurrentIndex
 
+int NumberOfNodes
 
+

Detailed Description

+

Definition for a binary tree node. struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; };

+

The documentation for this struct was generated from the following file:
    +
  • leetcode/src/173.c
  • +
+
+
+ + + + diff --git a/d4/d02/struct_b_s_t_iterator.js b/d4/d02/struct_b_s_t_iterator.js new file mode 100644 index 00000000..c2d55ef2 --- /dev/null +++ b/d4/d02/struct_b_s_t_iterator.js @@ -0,0 +1,6 @@ +var struct_b_s_t_iterator = +[ + [ "CurrentIndex", "d4/d02/struct_b_s_t_iterator.html#a7b13dbbbe1bcbb12ec0bbe9949c66c5b", null ], + [ "NumberOfNodes", "d4/d02/struct_b_s_t_iterator.html#ae02c531c71091f43880fd7eb8f13cc53", null ], + [ "values", "d4/d02/struct_b_s_t_iterator.html#a29a6586bff08dc6985b29abb50ddc2ff", null ] +]; \ No newline at end of file diff --git a/d4/d07/ode__forward__euler_8c.html b/d4/d07/ode__forward__euler_8c.html new file mode 100644 index 00000000..39a14a99 --- /dev/null +++ b/d4/d07/ode__forward__euler_8c.html @@ -0,0 +1,518 @@ + + + + + + + +Algorithms_in_C: numerical_methods/ode_forward_euler.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ode_forward_euler.c File Reference
+
+
+ +

Solve a multivariable first order ordinary differential equation (ODEs) using forward Euler method +More...

+
#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for ode_forward_euler.c:
+
+
+
+
+
+ + + +

+Macros

#define order   2
 
+ + + + + + + + + + + + + + + +

+Functions

void problem (const double *x, double *y, double *dy)
 Problem statement for a system with first-order differential equations. Updates the system differential variables. More...
 
void exact_solution (const double *x, double *y)
 Exact solution of the problem. Used for solution comparison. More...
 
void forward_euler_step (const double dx, const double *x, double *y, double *dy)
 Compute next step approximation using the forward-Euler method. More...
 
double forward_euler (double dx, double x0, double x_max, double *y, char save_to_file)
 Compute approximation using the forward-Euler method in the given limits. More...
 
int main (int argc, char *argv[])
 
+

Detailed Description

+

Solve a multivariable first order ordinary differential equation (ODEs) using forward Euler method

+
Authors
Krishna Vedala
+

The ODE being solved is:

+\begin{eqnarray*} \dot{u} &=& v\\ \dot{v} &=& -\omega^2 u\\ \omega &=& 1\\ [x_0, u_0, v_0] &=& [0,1,0]\qquad\ldots\text{(initial values)} \end{eqnarray*} +

+

The exact solution for the above problem is:

+\begin{eqnarray*} u(x) &=& \cos(x)\\ v(x) &=& -\sin(x)\\ \end{eqnarray*} +

+

The computation results are stored to a text file forward_euler.csv and the exact soltuion results in exact.csv for comparison. Implementation solution

+

To implement Van der Pol oscillator, change the problem function to:

const double mu = 2.0;
+
dy[0] = y[1];
+
dy[1] = mu * (1.f - y[0] * y[0]) * y[1] - y[0];
+
See also
ode_midpoint_euler.c, ode_semi_implicit_euler.c
+

Macro Definition Documentation

+ +

◆ order

+ +
+
+ + + + +
#define order   2
+
+

number of dependent variables in problem

+ +
+
+

Function Documentation

+ +

◆ exact_solution()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void exact_solution (const double * x,
double * y 
)
+
+ +

Exact solution of the problem. Used for solution comparison.

+
Parameters
+ + + +
[in]xindependent variable
[in,out]ydependent variable
+
+
+
69 {
+
70  y[0] = cos(x[0]);
+
71  y[1] = -sin(x[0]);
+
72 }
+
+
+
+ +

◆ forward_euler()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
double forward_euler (double dx,
double x0,
double x_max,
double * y,
char save_to_file 
)
+
+ +

Compute approximation using the forward-Euler method in the given limits.

+
Parameters
+ + + + + + +
[in]dxstep size
[in]x0initial value of independent variable
[in]x_maxfinal value of independent variable
[in,out]ytake \(y_n\) and compute \(y_{n+1}\)
[in]save_to_fileflag to save results to a CSV file (1) or not (0)
+
+
+
Returns
time taken for computation in seconds
+
102 {
+
103  double dy[order];
+
104 
+
105  FILE *fp = NULL;
+
106  if (save_to_file)
+
107  {
+
108  fp = fopen("forward_euler.csv", "w+");
+
109  if (fp == NULL)
+
110  {
+
111  perror("Error! ");
+
112  return -1;
+
113  }
+
114  }
+
115 
+
116  /* start integration */
+
117  clock_t t1 = clock();
+
118  double x = x0;
+
119  do // iterate for each step of independent variable
+
120  {
+
121  if (save_to_file && fp)
+
122  fprintf(fp, "%.4g,%.4g,%.4g\n", x, y[0], y[1]); // write to file
+
123  forward_euler_step(dx, &x, y, dy); // perform integration
+
124  x += dx; // update step
+
125  } while (x <= x_max); // till upper limit of independent variable
+
126  /* end of integration */
+
127  clock_t t2 = clock();
+
128 
+
129  if (save_to_file && fp)
+
130  fclose(fp);
+
131 
+
132  return (double)(t2 - t1) / CLOCKS_PER_SEC;
+
133 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ forward_euler_step()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void forward_euler_step (const double dx,
const double * x,
double * y,
double * dy 
)
+
+ +

Compute next step approximation using the forward-Euler method.

+

+\[y_{n+1}=y_n + dx\cdot f\left(x_n,y_n\right)\] +

+
Parameters
+ + + + + +
[in]dxstep size
[in,out]xtake \(x_n\) and compute \(x_{n+1}\)
[in,out]ytake \(y_n\) and compute \(y_{n+1}\)
[in,out]dycompute \(f\left(x_n,y_n\right)\)
+
+
+
83 {
+
84  int o;
+
85  problem(x, y, dy);
+
86  for (o = 0; o < order; o++)
+
87  y[o] += dx * dy[o];
+
88 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ main()

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

Main Function

+
139 {
+
140  double X0 = 0.f; /* initial value of x0 */
+
141  double X_MAX = 10.F; /* upper limit of integration */
+
142  double Y0[] = {1.f, 0.f}; /* initial value Y = y(x = x_0) */
+
143  double step_size;
+
144 
+
145  if (argc == 1)
+
146  {
+
147  printf("\nEnter the step size: ");
+
148  scanf("%lg", &step_size);
+
149  }
+
150  else
+
151  // use commandline argument as independent variable step size
+
152  step_size = atof(argv[1]);
+
153 
+
154  // get approximate solution
+
155  double total_time = forward_euler(step_size, X0, X_MAX, Y0, 1);
+
156  printf("\tTime = %.6g ms\n", total_time);
+
157 
+
158  /* compute exact solution for comparion */
+
159  FILE *fp = fopen("exact.csv", "w+");
+
160  if (fp == NULL)
+
161  {
+
162  perror("Error! ");
+
163  return -1;
+
164  }
+
165  double x = X0;
+
166  double *y = &(Y0[0]);
+
167  printf("Finding exact solution\n");
+
168  clock_t t1 = clock();
+
169 
+
170  do
+
171  {
+
172  fprintf(fp, "%.4g,%.4g,%.4g\n", x, y[0], y[1]); // write to file
+
173  exact_solution(&x, y);
+
174  x += step_size;
+
175  } while (x <= X_MAX);
+
176 
+
177  clock_t t2 = clock();
+
178  total_time = (t2 - t1) / CLOCKS_PER_SEC;
+
179  printf("\tTime = %.6g ms\n", total_time);
+
180  fclose(fp);
+
181 
+
182  return 0;
+
183 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ problem()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void problem (const double * x,
double * y,
double * dy 
)
+
+ +

Problem statement for a system with first-order differential equations. Updates the system differential variables.

+
Note
This function can be updated to and ode of any order.
+
Parameters
+ + + + +
[in]xindependent variable(s)
[in,out]ydependent variable(s)
[in,out]dyfirst-derivative of dependent variable(s)
+
+
+
56 {
+
57  const double omega = 1.F; // some const for the problem
+
58  dy[0] = y[1]; // x dot
+
59  dy[1] = -omega * omega * y[0]; // y dot
+
60 }
+
+
+
+
+
+
void forward_euler_step(const double dx, const double *x, double *y, double *dy)
Compute next step approximation using the forward-Euler method.
Definition: ode_forward_euler.c:82
+
double forward_euler(double dx, double x0, double x_max, double *y, char save_to_file)
Compute approximation using the forward-Euler method in the given limits.
Definition: ode_forward_euler.c:100
+
void problem(const double *x, double *y, double *dy)
Problem statement for a system with first-order differential equations. Updates the system differenti...
Definition: ode_forward_euler.c:55
+
void exact_solution(const double *x, double *y)
Exact solution of the problem. Used for solution comparison.
Definition: ode_forward_euler.c:68
+
#define order
Definition: ode_forward_euler.c:44
+ + + + diff --git a/d4/d07/ode__forward__euler_8c.js b/d4/d07/ode__forward__euler_8c.js new file mode 100644 index 00000000..f7904c6b --- /dev/null +++ b/d4/d07/ode__forward__euler_8c.js @@ -0,0 +1,9 @@ +var ode__forward__euler_8c = +[ + [ "order", "d4/d07/ode__forward__euler_8c.html#a9ceb646336224ee890a269d0b4600d09", null ], + [ "exact_solution", "d4/d07/ode__forward__euler_8c.html#a8caee977b26888d34040b122e0e28e3a", null ], + [ "forward_euler", "d4/d07/ode__forward__euler_8c.html#aaf88ad8f9f7c39fc38f3f03d6fea9df9", null ], + [ "forward_euler_step", "d4/d07/ode__forward__euler_8c.html#ae6c9413953c8d9d4bc9e374b29586350", null ], + [ "main", "d4/d07/ode__forward__euler_8c.html#a0ddf1224851353fc92bfbff6f499fa97", null ], + [ "problem", "d4/d07/ode__forward__euler_8c.html#a97075291390a68c262ed66e157a57eb4", null ] +]; \ No newline at end of file diff --git a/d4/d07/ode__forward__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map b/d4/d07/ode__forward__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map new file mode 100644 index 00000000..c884db73 --- /dev/null +++ b/d4/d07/ode__forward__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/d4/d07/ode__forward__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 b/d4/d07/ode__forward__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 new file mode 100644 index 00000000..a9544e3e --- /dev/null +++ b/d4/d07/ode__forward__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 @@ -0,0 +1 @@ +34fb83027affba576c2e2c74c02db47f \ No newline at end of file diff --git a/d4/d07/ode__forward__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg b/d4/d07/ode__forward__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg new file mode 100644 index 00000000..089251a0 --- /dev/null +++ b/d4/d07/ode__forward__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg @@ -0,0 +1,82 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +exact_solution + + + + + +Node1->Node2 + + + + + +Node3 + + +forward_euler + + + + + +Node1->Node3 + + + + + +Node4 + + +forward_euler_step + + + + + +Node3->Node4 + + + + + +Node5 + + +problem + + + + + +Node4->Node5 + + + + + diff --git a/d4/d07/ode__forward__euler_8c_aaf88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.map b/d4/d07/ode__forward__euler_8c_aaf88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.map new file mode 100644 index 00000000..aadb6d8c --- /dev/null +++ b/d4/d07/ode__forward__euler_8c_aaf88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d4/d07/ode__forward__euler_8c_aaf88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.md5 b/d4/d07/ode__forward__euler_8c_aaf88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.md5 new file mode 100644 index 00000000..05ecb295 --- /dev/null +++ b/d4/d07/ode__forward__euler_8c_aaf88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.md5 @@ -0,0 +1 @@ +562daebf5751d81fd737ae9001e7d3ea \ No newline at end of file diff --git a/d4/d07/ode__forward__euler_8c_aaf88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.svg b/d4/d07/ode__forward__euler_8c_aaf88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.svg new file mode 100644 index 00000000..3e06581f --- /dev/null +++ b/d4/d07/ode__forward__euler_8c_aaf88ad8f9f7c39fc38f3f03d6fea9df9_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +forward_euler + + + +Node1 + + +forward_euler + + + + + +Node2 + + +forward_euler_step + + + + + +Node1->Node2 + + + + + +Node3 + + +problem + + + + + +Node2->Node3 + + + + + diff --git a/d4/d07/ode__forward__euler_8c_ae6c9413953c8d9d4bc9e374b29586350_cgraph.map b/d4/d07/ode__forward__euler_8c_ae6c9413953c8d9d4bc9e374b29586350_cgraph.map new file mode 100644 index 00000000..6f1f42e2 --- /dev/null +++ b/d4/d07/ode__forward__euler_8c_ae6c9413953c8d9d4bc9e374b29586350_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d4/d07/ode__forward__euler_8c_ae6c9413953c8d9d4bc9e374b29586350_cgraph.md5 b/d4/d07/ode__forward__euler_8c_ae6c9413953c8d9d4bc9e374b29586350_cgraph.md5 new file mode 100644 index 00000000..c9ef07de --- /dev/null +++ b/d4/d07/ode__forward__euler_8c_ae6c9413953c8d9d4bc9e374b29586350_cgraph.md5 @@ -0,0 +1 @@ +f6c686576d6c60930ff7428dc2282dda \ No newline at end of file diff --git a/d4/d07/ode__forward__euler_8c_ae6c9413953c8d9d4bc9e374b29586350_cgraph.svg b/d4/d07/ode__forward__euler_8c_ae6c9413953c8d9d4bc9e374b29586350_cgraph.svg new file mode 100644 index 00000000..4bee189f --- /dev/null +++ b/d4/d07/ode__forward__euler_8c_ae6c9413953c8d9d4bc9e374b29586350_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +forward_euler_step + + + +Node1 + + +forward_euler_step + + + + + +Node2 + + +problem + + + + + +Node1->Node2 + + + + + diff --git a/d4/d15/qr__eigen__values_8c__incl.map b/d4/d15/qr__eigen__values_8c__incl.map new file mode 100644 index 00000000..58c388ea --- /dev/null +++ b/d4/d15/qr__eigen__values_8c__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/d4/d15/qr__eigen__values_8c__incl.md5 b/d4/d15/qr__eigen__values_8c__incl.md5 new file mode 100644 index 00000000..d263089c --- /dev/null +++ b/d4/d15/qr__eigen__values_8c__incl.md5 @@ -0,0 +1 @@ +4ea003e04993040d91e3790cb06971da \ No newline at end of file diff --git a/d4/d15/qr__eigen__values_8c__incl.svg b/d4/d15/qr__eigen__values_8c__incl.svg new file mode 100644 index 00000000..ff185f2f --- /dev/null +++ b/d4/d15/qr__eigen__values_8c__incl.svg @@ -0,0 +1,131 @@ + + + + + + +numerical_methods/qr_eigen_values.c + + + +Node1 + + +numerical_methods/qr +_eigen_values.c + + + + + +Node2 + + +qr_decompose.h + + + + + +Node1->Node2 + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdio.h + + + + + +Node1->Node4 + + + + + +Node5 + + +stdlib.h + + + + + +Node1->Node5 + + + + + +Node6 + + +assert.h + + + + + +Node1->Node6 + + + + + +Node7 + + +time.h + + + + + +Node1->Node7 + + + + + +Node2->Node3 + + + + + +Node2->Node4 + + + + + +Node2->Node5 + + + + + diff --git a/d4/d22/struct_trie_node__coll__graph.map b/d4/d22/struct_trie_node__coll__graph.map new file mode 100644 index 00000000..77df700a --- /dev/null +++ b/d4/d22/struct_trie_node__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/d4/d22/struct_trie_node__coll__graph.md5 b/d4/d22/struct_trie_node__coll__graph.md5 new file mode 100644 index 00000000..2aa83ff4 --- /dev/null +++ b/d4/d22/struct_trie_node__coll__graph.md5 @@ -0,0 +1 @@ +3084e369fda2b93ec7fc758fa6a614b6 \ No newline at end of file diff --git a/d4/d22/struct_trie_node__coll__graph.svg b/d4/d22/struct_trie_node__coll__graph.svg new file mode 100644 index 00000000..0ae6a401 --- /dev/null +++ b/d4/d22/struct_trie_node__coll__graph.svg @@ -0,0 +1,29 @@ + + + + + + +TrieNode + + + +Node1 + + +TrieNode + + + + + +Node1->Node1 + + + children + + + diff --git a/d4/d2d/struct_c_array.html b/d4/d2d/struct_c_array.html new file mode 100644 index 00000000..d66541d0 --- /dev/null +++ b/d4/d2d/struct_c_array.html @@ -0,0 +1,124 @@ + + + + + + + +Algorithms_in_C: CArray Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
CArray Struct Reference
+
+
+ + + + + + +

+Data Fields

+int * array
 
+int size
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/d4/d2d/struct_c_array.js b/d4/d2d/struct_c_array.js new file mode 100644 index 00000000..a61cdd36 --- /dev/null +++ b/d4/d2d/struct_c_array.js @@ -0,0 +1,5 @@ +var struct_c_array = +[ + [ "array", "d4/d2d/struct_c_array.html#a53c08029937d9e4c45defcbf9c8898ae", null ], + [ "size", "d4/d2d/struct_c_array.html#a7f7310046fa06b26a1ff7772500724ee", null ] +]; \ No newline at end of file diff --git a/d4/d68/qr__decompose_8h.html b/d4/d68/qr__decompose_8h.html new file mode 100644 index 00000000..6d772e9a --- /dev/null +++ b/d4/d68/qr__decompose_8h.html @@ -0,0 +1,552 @@ + + + + + + + +Algorithms_in_C: numerical_methods/qr_decompose.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
qr_decompose.h File Reference
+
+
+ +

Library functions to compute QR decomposition of a given matrix. +More...

+
#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+Include dependency graph for qr_decompose.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

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

+Functions

void print_matrix (double **A, int M, int N)
 
double vector_dot (double *a, double *b, int L)
 
double vector_mag (double *vector, int L)
 
double * vector_proj (double *a, double *b, double *out, int L)
 
double * vector_sub (double *a, double *b, double *out, int L)
 
void qr_decompose (double **A, double **Q, double **R, int M, int N)
 
+

Detailed Description

+

Library functions to compute QR decomposition of a given matrix.

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ print_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void print_matrix (double ** A,
int M,
int N 
)
+
+

function to display matrix on stdout

+
Parameters
+ + + + +
Amatrix to print
Mnumber of rows of matrix
Nnumber of columns of matrix
+
+
+
25 {
+
26  for (int row = 0; row < M; row++)
+
27  {
+
28  for (int col = 0; col < N; col++)
+
29  printf("% 9.3g\t", A[row][col]);
+
30  putchar('\n');
+
31  }
+
32  putchar('\n');
+
33 }
+
+
+
+ +

◆ qr_decompose()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void qr_decompose (double ** A,
double ** Q,
double ** R,
int M,
int N 
)
+
+

Decompose matrix \(A\) using Gram-Schmidt process.

+

+\begin{eqnarray*} \text{given that}\quad A &=& *\left[\mathbf{a}_1,\mathbf{a}_2,\ldots,\mathbf{a}_{N-1},\right]\\ \text{where}\quad\mathbf{a}_i &=& *\left[a_{0i},a_{1i},a_{2i},\ldots,a_{(M-1)i}\right]^T\quad\ldots\mbox{(column *vectors)}\\ \text{then}\quad\mathbf{u}_i &=& \mathbf{a}_i *-\sum_{j=0}^{i-1}\text{proj}_{\mathbf{u}_j}\mathbf{a}_i\\ \mathbf{e}_i &=&\frac{\mathbf{u}_i}{\left|\mathbf{u}_i\right|}\\ Q &=& \begin{bmatrix}\mathbf{e}_0 & \mathbf{e}_1 & \mathbf{e}_2 & \dots & *\mathbf{e}_{N-1}\end{bmatrix}\\ R &=& \begin{bmatrix}\langle\mathbf{e}_0\,,\mathbf{a}_0\rangle & *\langle\mathbf{e}_1\,,\mathbf{a}_1\rangle & *\langle\mathbf{e}_2\,,\mathbf{a}_2\rangle & \dots \\ 0 & \langle\mathbf{e}_1\,,\mathbf{a}_1\rangle & *\langle\mathbf{e}_2\,,\mathbf{a}_2\rangle & \dots\\ 0 & 0 & \langle\mathbf{e}_2\,,\mathbf{a}_2\rangle & \dots\\ \vdots & \vdots & \vdots & \ddots \end{bmatrix}\\ \end{eqnarray*} +

+
Parameters
+ + + + + + +
Ainput matrix to decompose
Qoutput decomposed matrix
Routput decomposed matrix
Mnumber of rows of matrix A
Nnumber of columns of matrix A
+
+
+
152 {
+
153  double *col_vector = (double *)malloc(M * sizeof(double));
+
154  double *col_vector2 = (double *)malloc(M * sizeof(double));
+
155  double *tmp_vector = (double *)malloc(M * sizeof(double));
+
156  for (int i = 0; i < N;
+
157  i++) /* for each column => R is a square matrix of NxN */
+
158  {
+
159  int j;
+
160 #ifdef _OPENMP
+
161 // parallelize on threads
+
162 #pragma omp for
+
163 #endif
+
164  for (j = 0; j < i; j++) /* second dimension of column */
+
165  R[i][j] = 0.; /* make R upper triangular */
+
166 
+
167  /* get corresponding Q vector */
+
168 #ifdef _OPENMP
+
169 // parallelize on threads
+
170 #pragma omp for
+
171 #endif
+
172  for (j = 0; j < M; j++)
+
173  {
+
174  tmp_vector[j] = A[j][i]; /* accumulator for uk */
+
175  col_vector[j] = A[j][i];
+
176  }
+
177  for (j = 0; j < i; j++)
+
178  {
+
179  for (int k = 0; k < M; k++)
+
180  col_vector2[k] = Q[k][j];
+
181  vector_proj(col_vector, col_vector2, col_vector2, M);
+
182  vector_sub(tmp_vector, col_vector2, tmp_vector, M);
+
183  }
+
184  double mag = vector_mag(tmp_vector, M);
+
185 
+
186 #ifdef _OPENMP
+
187 // parallelize on threads
+
188 #pragma omp for
+
189 #endif
+
190  for (j = 0; j < M; j++)
+
191  Q[j][i] = tmp_vector[j] / mag;
+
192 
+
193  /* compute upper triangular values of R */
+
194  for (int kk = 0; kk < M; kk++)
+
195  col_vector[kk] = Q[kk][i];
+
196  for (int k = i; k < N; k++)
+
197  {
+
198  for (int kk = 0; kk < M; kk++)
+
199  col_vector2[kk] = A[kk][k];
+
200  R[i][k] = vector_dot(col_vector, col_vector2, M);
+
201  }
+
202  }
+
203 
+
204  free(col_vector);
+
205  free(col_vector2);
+
206  free(tmp_vector);
+
207 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ vector_dot()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
double vector_dot (double * a,
double * b,
int L 
)
+
+

Compute dot product of two vectors of equal lengths

+

If \(\vec{a}=\left[a_0,a_1,a_2,...,a_L\right]\) and \(\vec{b}=\left[b_0,b_1,b_1,...,b_L\right]\) then \(\vec{a}\cdot\vec{b}=\displaystyle\sum_{i=0}^L a_i\times b_i\)

+
Returns
\(\vec{a}\cdot\vec{b}\)
+
45 {
+
46  double mag = 0.f;
+
47  int i;
+
48 #ifdef _OPENMP
+
49 // parallelize on threads
+
50 #pragma omp parallel for reduction(+ : mag)
+
51 #endif
+
52  for (i = 0; i < L; i++)
+
53  mag += a[i] * b[i];
+
54 
+
55  return mag;
+
56 }
+
+
+
+ +

◆ vector_mag()

+ +
+
+ + + + + + + + + + + + + + + + + + +
double vector_mag (double * vector,
int L 
)
+
+

Compute magnitude of vector.

+

If \(\vec{a}=\left[a_0,a_1,a_2,...,a_L\right]\) then \(\left|\vec{a}\right|=\sqrt{\displaystyle\sum_{i=0}^L a_i^2}\)

+
Returns
\(\left|\vec{a}\right|\)
+
67 {
+
68  double dot = vector_dot(vector, vector, L);
+
69  return sqrt(dot);
+
70 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ vector_proj()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
double* vector_proj (double * a,
double * b,
double * out,
int L 
)
+
+

Compute projection of vector \(\vec{a}\) on \(\vec{b}\) defined as

+\[\text{proj}_\vec{b}\vec{a}=\frac{\vec{a}\cdot\vec{b}}{\left|\vec{b}\right|^2}\vec{b}\] +

+
Returns
NULL if error, otherwise pointer to output
+

check for division by zero

+
79 {
+
80  const double num = vector_dot(a, b, L);
+
81  const double deno = vector_dot(b, b, L);
+
82  if (deno == 0) /*! check for division by zero */
+
83  return NULL;
+
84 
+
85  const double scalar = num / deno;
+
86  int i;
+
87 #ifdef _OPENMP
+
88 // parallelize on threads
+
89 #pragma omp for
+
90 #endif
+
91  for (i = 0; i < L; i++)
+
92  out[i] = scalar * b[i];
+
93 
+
94  return out;
+
95 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ vector_sub()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
double* vector_sub (double * a,
double * b,
double * out,
int L 
)
+
+

Compute vector subtraction

+

\(\vec{c}=\vec{a}-\vec{b}\)

+
Returns
pointer to output vector
+
Parameters
+ + + + + +
aminuend
bsubtrahend
outresultant vector
Llength of vectors
+
+
+
109 {
+
110  int i;
+
111 #ifdef _OPENMP
+
112 // parallelize on threads
+
113 #pragma omp for
+
114 #endif
+
115  for (i = 0; i < L; i++)
+
116  out[i] = a[i] - b[i];
+
117 
+
118  return out;
+
119 }
+
+
+
+
+
+
Definition: list.h:8
+
double vector_mag(double *vector, int L)
Definition: qr_decompose.h:66
+
double * vector_proj(double *a, double *b, double *out, int L)
Definition: qr_decompose.h:78
+
#define N
Definition: sol1.c:111
+
double vector_dot(double *a, double *b, int L)
Definition: qr_decompose.h:44
+
double * vector_sub(double *a, double *b, double *out, int L)
Definition: qr_decompose.h:104
+ + + + diff --git a/d4/d68/qr__decompose_8h.js b/d4/d68/qr__decompose_8h.js new file mode 100644 index 00000000..070e43b4 --- /dev/null +++ b/d4/d68/qr__decompose_8h.js @@ -0,0 +1,9 @@ +var qr__decompose_8h = +[ + [ "print_matrix", "d4/d68/qr__decompose_8h.html#a90562ce8c3707401e9c5809dece68d6a", null ], + [ "qr_decompose", "d4/d68/qr__decompose_8h.html#a45c7640d9d22c89c11beb1f567843c56", null ], + [ "vector_dot", "d4/d68/qr__decompose_8h.html#a3a584b79941a43d775f9d4ce446dbe05", null ], + [ "vector_mag", "d4/d68/qr__decompose_8h.html#abeec1f78a7a7e7251687e75340331212", null ], + [ "vector_proj", "d4/d68/qr__decompose_8h.html#a82b20e027437df768d7e994cf4cae29f", null ], + [ "vector_sub", "d4/d68/qr__decompose_8h.html#a6b6a0e75e75ff7919057dd275bb69145", null ] +]; \ No newline at end of file diff --git a/d4/d68/qr__decompose_8h_a45c7640d9d22c89c11beb1f567843c56_cgraph.map b/d4/d68/qr__decompose_8h_a45c7640d9d22c89c11beb1f567843c56_cgraph.map new file mode 100644 index 00000000..05932eb8 --- /dev/null +++ b/d4/d68/qr__decompose_8h_a45c7640d9d22c89c11beb1f567843c56_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/d4/d68/qr__decompose_8h_a45c7640d9d22c89c11beb1f567843c56_cgraph.md5 b/d4/d68/qr__decompose_8h_a45c7640d9d22c89c11beb1f567843c56_cgraph.md5 new file mode 100644 index 00000000..0d5afe66 --- /dev/null +++ b/d4/d68/qr__decompose_8h_a45c7640d9d22c89c11beb1f567843c56_cgraph.md5 @@ -0,0 +1 @@ +158be8b3bb7853ce20412c7526b3b673 \ No newline at end of file diff --git a/d4/d68/qr__decompose_8h_a45c7640d9d22c89c11beb1f567843c56_cgraph.svg b/d4/d68/qr__decompose_8h_a45c7640d9d22c89c11beb1f567843c56_cgraph.svg new file mode 100644 index 00000000..411d6c9a --- /dev/null +++ b/d4/d68/qr__decompose_8h_a45c7640d9d22c89c11beb1f567843c56_cgraph.svg @@ -0,0 +1,94 @@ + + + + + + +qr_decompose + + + +Node1 + + +qr_decompose + + + + + +Node2 + + +vector_dot + + + + + +Node1->Node2 + + + + + +Node3 + + +vector_mag + + + + + +Node1->Node3 + + + + + +Node4 + + +vector_proj + + + + + +Node1->Node4 + + + + + +Node5 + + +vector_sub + + + + + +Node1->Node5 + + + + + +Node3->Node2 + + + + + +Node4->Node2 + + + + + diff --git a/d4/d68/qr__decompose_8h_a82b20e027437df768d7e994cf4cae29f_cgraph.map b/d4/d68/qr__decompose_8h_a82b20e027437df768d7e994cf4cae29f_cgraph.map new file mode 100644 index 00000000..5a88bcd3 --- /dev/null +++ b/d4/d68/qr__decompose_8h_a82b20e027437df768d7e994cf4cae29f_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d4/d68/qr__decompose_8h_a82b20e027437df768d7e994cf4cae29f_cgraph.md5 b/d4/d68/qr__decompose_8h_a82b20e027437df768d7e994cf4cae29f_cgraph.md5 new file mode 100644 index 00000000..ec1df768 --- /dev/null +++ b/d4/d68/qr__decompose_8h_a82b20e027437df768d7e994cf4cae29f_cgraph.md5 @@ -0,0 +1 @@ +c2e613730297c21733158de43e2ee865 \ No newline at end of file diff --git a/d4/d68/qr__decompose_8h_a82b20e027437df768d7e994cf4cae29f_cgraph.svg b/d4/d68/qr__decompose_8h_a82b20e027437df768d7e994cf4cae29f_cgraph.svg new file mode 100644 index 00000000..3177cea5 --- /dev/null +++ b/d4/d68/qr__decompose_8h_a82b20e027437df768d7e994cf4cae29f_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +vector_proj + + + +Node1 + + +vector_proj + + + + + +Node2 + + +vector_dot + + + + + +Node1->Node2 + + + + + diff --git a/d4/d68/qr__decompose_8h_abeec1f78a7a7e7251687e75340331212_cgraph.map b/d4/d68/qr__decompose_8h_abeec1f78a7a7e7251687e75340331212_cgraph.map new file mode 100644 index 00000000..fdcd1dbf --- /dev/null +++ b/d4/d68/qr__decompose_8h_abeec1f78a7a7e7251687e75340331212_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d4/d68/qr__decompose_8h_abeec1f78a7a7e7251687e75340331212_cgraph.md5 b/d4/d68/qr__decompose_8h_abeec1f78a7a7e7251687e75340331212_cgraph.md5 new file mode 100644 index 00000000..b59e8b40 --- /dev/null +++ b/d4/d68/qr__decompose_8h_abeec1f78a7a7e7251687e75340331212_cgraph.md5 @@ -0,0 +1 @@ +fd8fcfb8ccea2f45f02ccc6717dd8e4e \ No newline at end of file diff --git a/d4/d68/qr__decompose_8h_abeec1f78a7a7e7251687e75340331212_cgraph.svg b/d4/d68/qr__decompose_8h_abeec1f78a7a7e7251687e75340331212_cgraph.svg new file mode 100644 index 00000000..4a69669e --- /dev/null +++ b/d4/d68/qr__decompose_8h_abeec1f78a7a7e7251687e75340331212_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +vector_mag + + + +Node1 + + +vector_mag + + + + + +Node2 + + +vector_dot + + + + + +Node1->Node2 + + + + + diff --git a/d4/d68/qr__decompose_8h_source.html b/d4/d68/qr__decompose_8h_source.html new file mode 100644 index 00000000..87bd2bf2 --- /dev/null +++ b/d4/d68/qr__decompose_8h_source.html @@ -0,0 +1,435 @@ + + + + + + + +Algorithms_in_C: numerical_methods/qr_decompose.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
qr_decompose.h
+
+
+Go to the documentation of this file.
1 /**
+
2  * @file
+
3  * \brief Library functions to compute [QR
+
4  * decomposition](https://en.wikipedia.org/wiki/QR_decomposition) of a given
+
5  * matrix.
+
6  * \author [Krishna Vedala](https://github.com/kvedala)
+
7  */
+
8 
+
9 #ifndef QR_DECOMPOSE_H
+
10 #define QR_DECOMPOSE_H
+
11 
+
12 #include <math.h>
+
13 #include <stdio.h>
+
14 #include <stdlib.h>
+
15 #ifdef _OPENMP
+
16 #include <omp.h>
+
17 #endif
+
18 
+
19 /**
+
20  * function to display matrix on stdout
+
21  */
+
22 void print_matrix(double **A, /**< matrix to print */
+
23  int M, /**< number of rows of matrix */
+
24  int N) /**< number of columns of matrix */
+
25 {
+
26  for (int row = 0; row < M; row++)
+
27  {
+
28  for (int col = 0; col < N; col++)
+
29  printf("% 9.3g\t", A[row][col]);
+
30  putchar('\n');
+
31  }
+
32  putchar('\n');
+
33 }
+
34 
+
35 /**
+
36  * Compute dot product of two vectors of equal lengths
+
37  *
+
38  * If \f$\vec{a}=\left[a_0,a_1,a_2,...,a_L\right]\f$ and
+
39  * \f$\vec{b}=\left[b_0,b_1,b_1,...,b_L\right]\f$ then
+
40  * \f$\vec{a}\cdot\vec{b}=\displaystyle\sum_{i=0}^L a_i\times b_i\f$
+
41  *
+
42  * \returns \f$\vec{a}\cdot\vec{b}\f$
+
43  */
+
44 double vector_dot(double *a, double *b, int L)
+
45 {
+
46  double mag = 0.f;
+
47  int i;
+
48 #ifdef _OPENMP
+
49 // parallelize on threads
+
50 #pragma omp parallel for reduction(+ : mag)
+
51 #endif
+
52  for (i = 0; i < L; i++)
+
53  mag += a[i] * b[i];
+
54 
+
55  return mag;
+
56 }
+
57 
+
58 /**
+
59  * Compute magnitude of vector.
+
60  *
+
61  * If \f$\vec{a}=\left[a_0,a_1,a_2,...,a_L\right]\f$ then
+
62  * \f$\left|\vec{a}\right|=\sqrt{\displaystyle\sum_{i=0}^L a_i^2}\f$
+
63  *
+
64  * \returns \f$\left|\vec{a}\right|\f$
+
65  */
+
66 double vector_mag(double *vector, int L)
+
67 {
+
68  double dot = vector_dot(vector, vector, L);
+
69  return sqrt(dot);
+
70 }
+
71 
+
72 /**
+
73  * Compute projection of vector \f$\vec{a}\f$ on \f$\vec{b}\f$ defined as
+
74  * \f[\text{proj}_\vec{b}\vec{a}=\frac{\vec{a}\cdot\vec{b}}{\left|\vec{b}\right|^2}\vec{b}\f]
+
75  *
+
76  * \returns NULL if error, otherwise pointer to output
+
77  */
+
78 double *vector_proj(double *a, double *b, double *out, int L)
+
79 {
+
80  const double num = vector_dot(a, b, L);
+
81  const double deno = vector_dot(b, b, L);
+
82  if (deno == 0) /*! check for division by zero */
+
83  return NULL;
+
84 
+
85  const double scalar = num / deno;
+
86  int i;
+
87 #ifdef _OPENMP
+
88 // parallelize on threads
+
89 #pragma omp for
+
90 #endif
+
91  for (i = 0; i < L; i++)
+
92  out[i] = scalar * b[i];
+
93 
+
94  return out;
+
95 }
+
96 
+
97 /**
+
98  * Compute vector subtraction
+
99  *
+
100  * \f$\vec{c}=\vec{a}-\vec{b}\f$
+
101  *
+
102  * \returns pointer to output vector
+
103  */
+
104 double *vector_sub(double *a, /**< minuend */
+
105  double *b, /**< subtrahend */
+
106  double *out, /**< resultant vector */
+
107  int L /**< length of vectors */
+
108 )
+
109 {
+
110  int i;
+
111 #ifdef _OPENMP
+
112 // parallelize on threads
+
113 #pragma omp for
+
114 #endif
+
115  for (i = 0; i < L; i++)
+
116  out[i] = a[i] - b[i];
+
117 
+
118  return out;
+
119 }
+
120 
+
121 /**
+
122  * Decompose matrix \f$A\f$ using [Gram-Schmidt
+
123  *process](https://en.wikipedia.org/wiki/QR_decomposition).
+
124  *
+
125  * \f{eqnarray*}{
+
126  * \text{given that}\quad A &=&
+
127  *\left[\mathbf{a}_1,\mathbf{a}_2,\ldots,\mathbf{a}_{N-1},\right]\\
+
128  * \text{where}\quad\mathbf{a}_i &=&
+
129  *\left[a_{0i},a_{1i},a_{2i},\ldots,a_{(M-1)i}\right]^T\quad\ldots\mbox{(column
+
130  *vectors)}\\
+
131  * \text{then}\quad\mathbf{u}_i &=& \mathbf{a}_i
+
132  *-\sum_{j=0}^{i-1}\text{proj}_{\mathbf{u}_j}\mathbf{a}_i\\
+
133  * \mathbf{e}_i &=&\frac{\mathbf{u}_i}{\left|\mathbf{u}_i\right|}\\
+
134  * Q &=& \begin{bmatrix}\mathbf{e}_0 & \mathbf{e}_1 & \mathbf{e}_2 & \dots &
+
135  *\mathbf{e}_{N-1}\end{bmatrix}\\
+
136  * R &=& \begin{bmatrix}\langle\mathbf{e}_0\,,\mathbf{a}_0\rangle &
+
137  *\langle\mathbf{e}_1\,,\mathbf{a}_1\rangle &
+
138  *\langle\mathbf{e}_2\,,\mathbf{a}_2\rangle & \dots \\
+
139  * 0 & \langle\mathbf{e}_1\,,\mathbf{a}_1\rangle &
+
140  *\langle\mathbf{e}_2\,,\mathbf{a}_2\rangle & \dots\\
+
141  * 0 & 0 & \langle\mathbf{e}_2\,,\mathbf{a}_2\rangle & \dots\\
+
142  * \vdots & \vdots & \vdots & \ddots
+
143  * \end{bmatrix}\\
+
144  * \f}
+
145  */
+
146 void qr_decompose(double **A, /**< input matrix to decompose */
+
147  double **Q, /**< output decomposed matrix */
+
148  double **R, /**< output decomposed matrix */
+
149  int M, /**< number of rows of matrix A */
+
150  int N /**< number of columns of matrix A */
+
151 )
+
152 {
+
153  double *col_vector = (double *)malloc(M * sizeof(double));
+
154  double *col_vector2 = (double *)malloc(M * sizeof(double));
+
155  double *tmp_vector = (double *)malloc(M * sizeof(double));
+
156  for (int i = 0; i < N;
+
157  i++) /* for each column => R is a square matrix of NxN */
+
158  {
+
159  int j;
+
160 #ifdef _OPENMP
+
161 // parallelize on threads
+
162 #pragma omp for
+
163 #endif
+
164  for (j = 0; j < i; j++) /* second dimension of column */
+
165  R[i][j] = 0.; /* make R upper triangular */
+
166 
+
167  /* get corresponding Q vector */
+
168 #ifdef _OPENMP
+
169 // parallelize on threads
+
170 #pragma omp for
+
171 #endif
+
172  for (j = 0; j < M; j++)
+
173  {
+
174  tmp_vector[j] = A[j][i]; /* accumulator for uk */
+
175  col_vector[j] = A[j][i];
+
176  }
+
177  for (j = 0; j < i; j++)
+
178  {
+
179  for (int k = 0; k < M; k++)
+
180  col_vector2[k] = Q[k][j];
+
181  vector_proj(col_vector, col_vector2, col_vector2, M);
+
182  vector_sub(tmp_vector, col_vector2, tmp_vector, M);
+
183  }
+
184  double mag = vector_mag(tmp_vector, M);
+
185 
+
186 #ifdef _OPENMP
+
187 // parallelize on threads
+
188 #pragma omp for
+
189 #endif
+
190  for (j = 0; j < M; j++)
+
191  Q[j][i] = tmp_vector[j] / mag;
+
192 
+
193  /* compute upper triangular values of R */
+
194  for (int kk = 0; kk < M; kk++)
+
195  col_vector[kk] = Q[kk][i];
+
196  for (int k = i; k < N; k++)
+
197  {
+
198  for (int kk = 0; kk < M; kk++)
+
199  col_vector2[kk] = A[kk][k];
+
200  R[i][k] = vector_dot(col_vector, col_vector2, M);
+
201  }
+
202  }
+
203 
+
204  free(col_vector);
+
205  free(col_vector2);
+
206  free(tmp_vector);
+
207 }
+
208 
+
209 #endif // QR_DECOMPOSE_H
+
+
+
int main(int argc, char *argv[])
Definition: collatz.c:16
+
Definition: factorial_large_number.c:15
+
void test2()
Definition: kohonen_som_trace.c:349
+
Definition: list.h:8
+
char * get_weights_str(struct adaline *ada)
Definition: adaline_learning.c:101
+
int save_nd_data(const char *fname, double **X, int num_points, int num_features)
Definition: kohonen_som_trace.c:65
+
double * weights
weights of the neural network
Definition: adaline_learning.c:40
+
void forward_euler_step(const double dx, const double *x, double *y, double *dy)
Compute next step approximation using the forward-Euler method.
Definition: ode_forward_euler.c:82
+
#define max(a, b)
Definition: kohonen_som_trace.c:24
+
void test3()
Definition: kohonen_som_topology.c:601
+
void exact_solution(const double *x, double *y)
Exact solution of the problem. Used for solution comparison.
Definition: ode_midpoint_euler.c:67
+
int compare(const void *a, const void *b)
Definition: sol1.c:19
+
int main(int argc, char **argv)
Definition: lu_decompose.c:81
+
int main(int argc, char *argv[])
Definition: ode_semi_implicit_euler.c:147
+
#define min(a, b)
Definition: kohonen_som_topology.c:37
+
double vector_mag(double *vector, int L)
Definition: qr_decompose.h:66
+
void delete_adaline(struct adaline *ada)
Definition: adaline_learning.c:83
+
void test_circle(double *const *data, int N)
Definition: kohonen_som_trace.c:214
+
double forward_euler(double dx, double x0, double x_max, double *y, char save_to_file)
Compute approximation using the forward-Euler method in the given limits.
Definition: ode_forward_euler.c:100
+
double update_weights(const double *X, struct array_3d *W, double **D, int num_out, int num_features, double alpha, int R)
Definition: kohonen_som_topology.c:231
+
double * data
Definition: kohonen_som_topology.c:49
+
Definition: prime_factoriziation.c:25
+
Definition: pid.c:31
+
double complex d_func(double complex x)
Definition: newton_raphson_root.c:32
+
int main(int argc, char **argv)
Definition: kohonen_som_topology.c:662
+
int main(int argc, char **argv)
Definition: adaline_learning.c:385
+
double * data_3d(const struct array_3d *arr, int x, int y, int z)
Definition: kohonen_som_topology.c:64
+
void kohonen_som_tracer(double **X, double *const *W, int num_samples, int num_features, int num_out, double alpha_min)
Definition: kohonen_som_trace.c:175
+
void test_3d_classes1(double *const *data, int N)
Definition: kohonen_som_topology.c:458
+
void update_weights(double const *x, double *const *W, double *D, int num_out, int num_features, double alpha, int R)
Definition: kohonen_som_trace.c:124
+
Definition: 173.c:13
+
long double complex poly_function(double *coeffs, unsigned int degree, long double complex x)
Definition: durand_kerner_roots.c:50
+
Definition: binary_search_tree.c:14
+
double * vector_proj(double *a, double *b, double *out, int L)
Definition: qr_decompose.h:78
+
unsigned int num_digits
Definition: factorial_large_number.c:17
+
void test3()
Definition: kohonen_som_trace.c:452
+
void test_3d_classes2(double *const *data, int N)
Definition: kohonen_som_topology.c:557
+
#define N
Definition: sol1.c:111
+
void get_min_1d(double const *X, int N, double *val, int *idx)
Definition: kohonen_som_trace.c:99
+
void qr_decompose(double **A, double **Q, double **R, int M, int N)
Definition: qr_decompose.h:146
+
const char * complex_str(long double complex x)
Definition: durand_kerner_roots.c:67
+
Definition: stack.c:16
+
int main(int argc, char *argv[])
Definition: fibonacci_fast.c:61
+
struct _large_num large_num
+
int save_u_matrix(const char *fname, struct array_3d *W)
Definition: kohonen_som_topology.c:136
+
large_num * new_number(void)
Definition: factorial_large_number.c:24
+
char check_termination(long double delta)
Definition: durand_kerner_roots.c:84
+
double semi_implicit_euler(double dx, double x0, double x_max, double *y, char save_to_file)
Compute approximation using the semi-implicit-Euler method in the given limits.
Definition: ode_semi_implicit_euler.c:109
+
int main(int argc, char *argv[])
Definition: factorial_large_number.c:94
+
void multiply(large_num *num, unsigned long n)
Definition: factorial_large_number.c:66
+
double _random(double a, double b)
Definition: kohonen_som_trace.c:50
+
void test_lamniscate(double *const *data, int N)
Definition: kohonen_som_trace.c:310
+
unsigned long lcm(unsigned long a, unsigned long b)
Definition: sol.c:31
+
void midpoint_euler_step(double dx, double *x, double *y, double *dy)
Compute next step approximation using the midpoint-Euler method.
Definition: ode_midpoint_euler.c:83
+
int main(int argc, char **argv)
Definition: newton_raphson_root.c:37
+
int main(int argc, char **argv)
Definition: kohonen_som_trace.c:507
+
void fib(unsigned long n, unsigned long *C, unsigned long *D)
Definition: fibonacci_fast.c:20
+
void print_matrix(double **A, int M, int N)
Definition: qr_decompose.h:22
+
double vector_dot(double *a, double *b, int L)
Definition: qr_decompose.h:44
+
double eta
learning rate of the algorithm
Definition: adaline_learning.c:39
+
int dim3
Definition: kohonen_som_topology.c:48
+
void exact_solution(const double *x, double *y)
Exact solution of the problem. Used for solution comparison.
Definition: ode_semi_implicit_euler.c:71
+
int main(int argc, char *argv[])
Definition: ode_midpoint_euler.c:146
+
int dim1
Definition: kohonen_som_topology.c:46
+
void test2()
Definition: kohonen_som_topology.c:498
+
void problem(const double *x, double *y, double *dy)
Problem statement for a system with first-order differential equations. Updates the system differenti...
Definition: ode_forward_euler.c:55
+
void get_min_2d(double **X, int N, double *val, int *x_idx, int *y_idx)
Definition: kohonen_som_topology.c:201
+
void problem(const double *x, double *y, double *dy)
Problem statement for a system with first-order differential equations. Updates the system differenti...
Definition: ode_semi_implicit_euler.c:58
+
double _random(double a, double b)
Definition: kohonen_som_topology.c:84
+
double get_clock_diff(clock_t start_t, clock_t end_t)
Definition: kohonen_som_trace.c:501
+
#define order
Definition: ode_semi_implicit_euler.c:47
+
#define MAX_LEN
Definition: sol1.c:15
+
struct Node node
+
void search(node *root, int ele)
Definition: threaded_binary_trees.c:98
+
unsigned long gcd(unsigned long a, unsigned long b)
Definition: sol.c:11
+
int predict(struct adaline *ada, const double *x, double *out)
Definition: adaline_learning.c:125
+
void delete_number(large_num *num)
Definition: factorial_large_number.c:37
+
int lu_decomposition(double **A, double **L, double **U, int mat_size)
Definition: lu_decompose.c:20
+
Definition: kohonen_som_topology.c:45
+
struct adaline new_adaline(const int num_features, const double eta)
Definition: adaline_learning.c:52
+
double * vector_sub(double *a, double *b, double *out, int L)
Definition: qr_decompose.h:104
+
int main(int argc, char **argv)
Definition: durand_kerner_roots.c:96
+
void test3(double eta)
Definition: adaline_learning.c:321
+
int main(int argc, char **argv)
Definition: c_atoi_str_to_integer.c:70
+
void display(double **A, int N)
Definition: lu_decompose.c:68
+
#define order
Definition: ode_midpoint_euler.c:43
+
void exact_solution(const double *x, double *y)
Exact solution of the problem. Used for solution comparison.
Definition: ode_forward_euler.c:68
+
void test1()
Definition: kohonen_som_trace.c:252
+
#define min(a, b)
Definition: kohonen_som_trace.c:30
+
int main(int argc, char *argv[])
Definition: ode_forward_euler.c:138
+
double fit_sample(struct adaline *ada, const double *x, const int y)
Definition: adaline_learning.c:147
+
int save_2d_data(const char *fname, double **X, int num_points, int num_features)
Definition: kohonen_som_topology.c:99
+
double complex func(double complex x)
Definition: newton_raphson_root.c:22
+
int activation(double x)
Definition: adaline_learning.c:96
+
Definition: cantor_set.c:6
+
void test1(double eta)
Definition: adaline_learning.c:208
+
void test2(double eta)
Definition: adaline_learning.c:256
+
#define ACCURACY
Definition: durand_kerner_roots.c:41
+
double midpoint_euler(double dx, double x0, double x_max, double *y, char save_to_file)
Compute approximation using the midpoint-Euler method in the given limits.
Definition: ode_midpoint_euler.c:108
+
#define ACCURACY
Definition: newton_raphson_root.c:16
+
void test_3d_classes(double *const *data, int N)
Definition: kohonen_som_trace.c:401
+
void swap(int *a, int *b)
Definition: shell_sort2.c:22
+
#define max(a, b)
Definition: kohonen_som_topology.c:31
+
void fit(struct adaline *ada, double **X, const int *y, const int N)
Definition: adaline_learning.c:173
+
Definition: adaline_learning.c:37
+
void semi_implicit_euler_step(double dx, double *x, double *y, double *dy)
Compute next step approximation using the semi-implicit-Euler method.
Definition: ode_semi_implicit_euler.c:85
+
#define ACCURACY
convergence accuracy
Definition: adaline_learning.c:44
+
void test1()
Definition: kohonen_som_topology.c:398
+
int dim2
Definition: kohonen_som_topology.c:47
+
char * digits
Definition: factorial_large_number.c:16
+
void kohonen_som(double **X, struct array_3d *W, int num_samples, int num_features, int num_out, double alpha_min)
Definition: kohonen_som_topology.c:311
+
void problem(const double *x, double *y, double *dy)
Problem statement for a system with first-order differential equations. Updates the system differenti...
Definition: ode_midpoint_euler.c:54
+
#define order
Definition: ode_forward_euler.c:44
+
int num_weights
number of weights of the neural network
Definition: adaline_learning.c:41
+
void add_digit(large_num *num, unsigned int value)
Definition: factorial_large_number.c:48
+
double get_clock_diff(clock_t start_t, clock_t end_t)
Definition: kohonen_som_topology.c:656
+
void test_2d_classes(double *const *data, int N)
Definition: kohonen_som_topology.c:359
+ + + + diff --git a/d4/d7b/problem__6_2sol_8c.html b/d4/d7b/problem__6_2sol_8c.html new file mode 100644 index 00000000..7d4cfc60 --- /dev/null +++ b/d4/d7b/problem__6_2sol_8c.html @@ -0,0 +1,160 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_6/sol.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol.c File Reference
+
+
+ +

Problem 6 solution +More...

+
#include <stdio.h>
+
+Include dependency graph for sol.c:
+
+
+
+
+
+ + + +

+Functions

int main (void)
 
+

Detailed Description

+

Problem 6 solution

+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + +
int main (void )
+
+

Main function

+
9 {
+
10  unsigned s1 = 0, s2 = 0, i;
+
11  for (i = 1; i <= 100; i++)
+
12  {
+
13  s1 += i * i;
+
14  s2 += i;
+
15  }
+
16  unsigned ans = s2 * s2 - s1;
+
17  printf("%u\n", ans);
+
18  return 0;
+
19 }
+
+
+
+
+
+ + + + diff --git a/d4/d7b/problem__6_2sol_8c.js b/d4/d7b/problem__6_2sol_8c.js new file mode 100644 index 00000000..ee9c85ee --- /dev/null +++ b/d4/d7b/problem__6_2sol_8c.js @@ -0,0 +1,4 @@ +var problem__6_2sol_8c = +[ + [ "main", "d4/d7b/problem__6_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe", null ] +]; \ No newline at end of file diff --git a/d4/d83/problem__401_2sol1_8c.html b/d4/d83/problem__401_2sol1_8c.html new file mode 100644 index 00000000..4b284346 --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c.html @@ -0,0 +1,466 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_401/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 401 solution - Sum of squares of divisors +More...

+
#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include <inttypes.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + + + + + +

+Macros

+#define __STDC_FORMAT_MACROS
 
#define MOD   (uint64_t)1e9
 
#define MAX_L   5000
 
+ + + + + + + + + + + +

+Functions

char is_in (uint64_t N, uint64_t *D, uint64_t L)
 
uint64_t get_divisors (uint64_t N, uint64_t *D)
 
uint64_t sigma2 (uint64_t N)
 
uint64_t sigma (uint64_t N)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Problem 401 solution - Sum of squares of divisors

+
Author
Krishna Vedala
+

Macro Definition Documentation

+ +

◆ MAX_L

+ +
+
+ + + + +
#define MAX_L   5000
+
+

chunk size of array allocation

+ +
+
+ +

◆ MOD

+ +
+
+ + + + +
#define MOD   (uint64_t)1e9
+
+

modulo limit

+ +
+
+

Function Documentation

+ +

◆ get_divisors()

+ +
+
+ + + + + + + + + + + + + + + + + + +
uint64_t get_divisors (uint64_t N,
uint64_t * D 
)
+
+

Get all integer divisors of a number

Parameters
+ + + +
[in]Nnumber to find divisors for
[out]Darray to store divisors in
+
+
+
Returns
number of divisors found
+
44 {
+
45  uint64_t q, r;
+
46  int64_t i, num = 0;
+
47 
+
48  if (N == 1)
+
49  {
+
50  D[0] = 1;
+
51  return 1;
+
52  }
+
53 
+
54  // search till sqrt(N)
+
55  // because after this, the pair of divisors will repeat themselves
+
56  for (i = 1; i * i <= N + 1; i++)
+
57  {
+
58  r = N % i; // get reminder
+
59 
+
60  // reminder = 0 if 'i' is a divisor of 'N'
+
61  if (r == 0)
+
62  {
+
63  q = N / i;
+
64  if (!is_in(i, D, num)) // if divisor was already stored
+
65  {
+
66  D[num] = i;
+
67  num++;
+
68  }
+
69  if (!is_in(q, D, num)) // if divisor was already stored
+
70  {
+
71  D[num] = q;
+
72  num++;
+
73  }
+
74  }
+
75 
+
76  if (num == MAX_L) // limit of array reached, allocate more space
+
77  D = (uint64_t *)realloc(D, MAX_L * sizeof(uint64_t) << 1);
+
78  }
+
79  return num;
+
80 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ is_in()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
char is_in (uint64_t N,
uint64_t * D,
uint64_t L 
)
+
+

Check if a number is present in given array

Parameters
+ + + + +
[in]Nnumber to check
[in]Darray to check
[in]Llength of array
+
+
+
Returns
1 if present
+
+0 if absent
+
29 {
+
30  uint64_t i;
+
31  for (i = 0; i < L; i++)
+
32  if (D[i] == N)
+
33  return 1;
+
34  return 0;
+
35 }
+
+
+
+ +

◆ main()

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

Main function

+
127 {
+
128  uint64_t N = 1000;
+
129 
+
130  if (argc == 2)
+
131  N = strtoll(argv[1], NULL, 10);
+
132  else if (N > 2)
+
133  {
+
134  fprintf(stderr, "Wrong number of input arguments!\n");
+
135  printf("Usage:\t ./sol1.c [N=1000]");
+
136  return -1;
+
137  }
+
138 
+
139  clock_t start_time = clock();
+
140  uint64_t result = sigma(N);
+
141  double dtime = clock() - start_time;
+
142 
+
143  printf("N = %" PRIu64 "\nSum: %" PRIu64 "\n", N, result);
+
144  printf("Time taken: %.4gms\n", dtime * 1e3 / CLOCKS_PER_SEC);
+
145 
+
146  return 0;
+
147 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ sigma()

+ +
+
+ + + + + + + + +
uint64_t sigma (uint64_t N)
+
+

sum of squares of factors of numbers from 1 thru N

+
109 {
+
110  uint64_t s, sum = 0;
+
111  int64_t i;
+
112 
+
113 #ifdef _OPENMP
+
114 // parallelize on threads
+
115 #pragma omp parallel for reduction(+ : sum)
+
116 #endif
+
117  for (i = 0; i <= N; i++)
+
118  {
+
119  s = sigma2(i);
+
120  sum += s;
+
121  }
+
122  return sum % MOD;
+
123 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ sigma2()

+ +
+
+ + + + + + + + +
uint64_t sigma2 (uint64_t N)
+
+

compute sum of squares of all integer factors of a number

Parameters
+ + +
[in]N
+
+
+
Returns
sum of squares
+
88 {
+
89  uint64_t sum = 0, L;
+
90  int64_t i;
+
91  uint64_t *D = (uint64_t *)malloc(MAX_L * sizeof(uint64_t));
+
92 
+
93  L = get_divisors(N, D);
+
94  for (i = 1; i < L; i++)
+
95  {
+
96  uint64_t DD = (D[i] * D[i]) % MOD;
+
97  sum += DD;
+
98  }
+
99 
+
100  free(D);
+
101  return sum % MOD;
+
102 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
Definition: list.h:8
+
#define MOD
Definition: sol1.c:17
+
uint64_t sigma2(uint64_t N)
Definition: sol1.c:87
+
uint64_t get_divisors(uint64_t N, uint64_t *D)
Definition: sol1.c:43
+
#define MAX_L
Definition: sol1.c:18
+
#define N
Definition: sol1.c:111
+
char is_in(uint64_t N, uint64_t *D, uint64_t L)
Definition: sol1.c:28
+
uint64_t sigma(uint64_t N)
Definition: sol1.c:108
+ + + + diff --git a/d4/d83/problem__401_2sol1_8c.js b/d4/d83/problem__401_2sol1_8c.js new file mode 100644 index 00000000..2ad3e359 --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c.js @@ -0,0 +1,11 @@ +var problem__401_2sol1_8c = +[ + [ "__STDC_FORMAT_MACROS", "d4/d83/problem__401_2sol1_8c.html#aacbb9e1f38be71e22df1584a37c56693", null ], + [ "MAX_L", "d4/d83/problem__401_2sol1_8c.html#adf2a0717e3307419a9d7c52707f5631e", null ], + [ "MOD", "d4/d83/problem__401_2sol1_8c.html#aca7d5718ab8c38506adb3bef2469b319", null ], + [ "get_divisors", "d4/d83/problem__401_2sol1_8c.html#a7380e14d595d560007b02ce516b6b215", null ], + [ "is_in", "d4/d83/problem__401_2sol1_8c.html#a4441a6d27134cf3aed05727800d99456", null ], + [ "main", "d4/d83/problem__401_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "sigma", "d4/d83/problem__401_2sol1_8c.html#aaf964739be92adc2f500e7da11e3f6be", null ], + [ "sigma2", "d4/d83/problem__401_2sol1_8c.html#a236548478af932f1115a71f601a68788", null ] +]; \ No newline at end of file diff --git a/d4/d83/problem__401_2sol1_8c_a236548478af932f1115a71f601a68788_cgraph.map b/d4/d83/problem__401_2sol1_8c_a236548478af932f1115a71f601a68788_cgraph.map new file mode 100644 index 00000000..1f27620c --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c_a236548478af932f1115a71f601a68788_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d4/d83/problem__401_2sol1_8c_a236548478af932f1115a71f601a68788_cgraph.md5 b/d4/d83/problem__401_2sol1_8c_a236548478af932f1115a71f601a68788_cgraph.md5 new file mode 100644 index 00000000..2ca4ed6c --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c_a236548478af932f1115a71f601a68788_cgraph.md5 @@ -0,0 +1 @@ +a2580881ce81c95601548a2a0b4f6571 \ No newline at end of file diff --git a/d4/d83/problem__401_2sol1_8c_a236548478af932f1115a71f601a68788_cgraph.svg b/d4/d83/problem__401_2sol1_8c_a236548478af932f1115a71f601a68788_cgraph.svg new file mode 100644 index 00000000..080a4298 --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c_a236548478af932f1115a71f601a68788_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +sigma2 + + + +Node1 + + +sigma2 + + + + + +Node2 + + +get_divisors + + + + + +Node1->Node2 + + + + + +Node3 + + +is_in + + + + + +Node2->Node3 + + + + + diff --git a/d4/d83/problem__401_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/d4/d83/problem__401_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..02fd5b22 --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/d4/d83/problem__401_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/d4/d83/problem__401_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..a833ea4e --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +439c56f26cba8983ca17ca9561b24746 \ No newline at end of file diff --git a/d4/d83/problem__401_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/d4/d83/problem__401_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..fd70be69 --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,82 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +sigma + + + + + +Node1->Node2 + + + + + +Node3 + + +sigma2 + + + + + +Node2->Node3 + + + + + +Node4 + + +get_divisors + + + + + +Node3->Node4 + + + + + +Node5 + + +is_in + + + + + +Node4->Node5 + + + + + diff --git a/d4/d83/problem__401_2sol1_8c_a7380e14d595d560007b02ce516b6b215_cgraph.map b/d4/d83/problem__401_2sol1_8c_a7380e14d595d560007b02ce516b6b215_cgraph.map new file mode 100644 index 00000000..d1cc91f0 --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c_a7380e14d595d560007b02ce516b6b215_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d4/d83/problem__401_2sol1_8c_a7380e14d595d560007b02ce516b6b215_cgraph.md5 b/d4/d83/problem__401_2sol1_8c_a7380e14d595d560007b02ce516b6b215_cgraph.md5 new file mode 100644 index 00000000..70bc0ecb --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c_a7380e14d595d560007b02ce516b6b215_cgraph.md5 @@ -0,0 +1 @@ +ee28b3b0c4b86d1f4059d6b5142fef5e \ No newline at end of file diff --git a/d4/d83/problem__401_2sol1_8c_a7380e14d595d560007b02ce516b6b215_cgraph.svg b/d4/d83/problem__401_2sol1_8c_a7380e14d595d560007b02ce516b6b215_cgraph.svg new file mode 100644 index 00000000..a5852c75 --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c_a7380e14d595d560007b02ce516b6b215_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +get_divisors + + + +Node1 + + +get_divisors + + + + + +Node2 + + +is_in + + + + + +Node1->Node2 + + + + + diff --git a/d4/d83/problem__401_2sol1_8c_aaf964739be92adc2f500e7da11e3f6be_cgraph.map b/d4/d83/problem__401_2sol1_8c_aaf964739be92adc2f500e7da11e3f6be_cgraph.map new file mode 100644 index 00000000..15680935 --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c_aaf964739be92adc2f500e7da11e3f6be_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/d4/d83/problem__401_2sol1_8c_aaf964739be92adc2f500e7da11e3f6be_cgraph.md5 b/d4/d83/problem__401_2sol1_8c_aaf964739be92adc2f500e7da11e3f6be_cgraph.md5 new file mode 100644 index 00000000..601a0937 --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c_aaf964739be92adc2f500e7da11e3f6be_cgraph.md5 @@ -0,0 +1 @@ +e12b436a10be8a53a9f60852e1e9d8f2 \ No newline at end of file diff --git a/d4/d83/problem__401_2sol1_8c_aaf964739be92adc2f500e7da11e3f6be_cgraph.svg b/d4/d83/problem__401_2sol1_8c_aaf964739be92adc2f500e7da11e3f6be_cgraph.svg new file mode 100644 index 00000000..d955ff93 --- /dev/null +++ b/d4/d83/problem__401_2sol1_8c_aaf964739be92adc2f500e7da11e3f6be_cgraph.svg @@ -0,0 +1,67 @@ + + + + + + +sigma + + + +Node1 + + +sigma + + + + + +Node2 + + +sigma2 + + + + + +Node1->Node2 + + + + + +Node3 + + +get_divisors + + + + + +Node2->Node3 + + + + + +Node4 + + +is_in + + + + + +Node3->Node4 + + + + + diff --git a/d4/d89/problem__23_2sol1_8c__incl.map b/d4/d89/problem__23_2sol1_8c__incl.map new file mode 100644 index 00000000..625bd813 --- /dev/null +++ b/d4/d89/problem__23_2sol1_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/d4/d89/problem__23_2sol1_8c__incl.md5 b/d4/d89/problem__23_2sol1_8c__incl.md5 new file mode 100644 index 00000000..1e9b87f1 --- /dev/null +++ b/d4/d89/problem__23_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +98f5ff4ee92ee87e6f0a5707efeaea61 \ No newline at end of file diff --git a/d4/d89/problem__23_2sol1_8c__incl.svg b/d4/d89/problem__23_2sol1_8c__incl.svg new file mode 100644 index 00000000..bc8f01d9 --- /dev/null +++ b/d4/d89/problem__23_2sol1_8c__incl.svg @@ -0,0 +1,68 @@ + + + + + + +project_euler/problem_23/sol1.c + + + +Node1 + + +project_euler/problem +_23/sol1.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + +Node4 + + +time.h + + + + + +Node1->Node4 + + + + + diff --git a/d4/d99/fibonacci__fast_8c.html b/d4/d99/fibonacci__fast_8c.html new file mode 100644 index 00000000..f08c8f5a --- /dev/null +++ b/d4/d99/fibonacci__fast_8c.html @@ -0,0 +1,266 @@ + + + + + + + +Algorithms_in_C: misc/fibonacci_fast.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
fibonacci_fast.c File Reference
+
+
+ +

Compute \(m^{mth}\) Fibonacci number using the formulae: +More...

+
#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+Include dependency graph for fibonacci_fast.c:
+
+
+
+
+
+ + + + + +

+Functions

void fib (unsigned long n, unsigned long *C, unsigned long *D)
 
int main (int argc, char *argv[])
 
+

Detailed Description

+

Compute \(m^{mth}\) Fibonacci number using the formulae:

+
Author
Krishna Vedala
+
Date
2 October, 2019

+\begin{eqnarray*} F_{2n-1} &=& F_n^2 + F_{n-1}^2 \\ F_{2n} &=& F_n\left(2F_{n-1} + F_n\right) \end{eqnarray*} +

+
+

Function Documentation

+ +

◆ fib()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fib (unsigned long n,
unsigned long * C,
unsigned long * D 
)
+
+

Returns the \(n^{th}\) and \(n+1^{th}\) Fibonacci number. The return variables are C & D respectively.

+
21 {
+
22  // Out of Range checking
+
23  if (n < 0)
+
24  {
+
25  printf("\nNo Such term !\n");
+
26  exit(0);
+
27  }
+
28 
+
29  unsigned long a, b, c, d;
+
30 
+
31  if (n == 0)
+
32  {
+
33  C[0] = 0;
+
34  if (D)
+
35  D[0] = 1;
+
36  return;
+
37  }
+
38 
+
39  fib(n >> 1, &c, &d); /* Compute F(n/2) */
+
40 
+
41  a = c * ((d << 1) - c);
+
42  b = c * c + d * d;
+
43  if (n % 2 == 0) /* If n is even */
+
44  {
+
45  C[0] = a;
+
46  if (D)
+
47  D[0] = b;
+
48  return;
+
49  }
+
50 
+
51  /**< If n is odd */
+
52  C[0] = b;
+
53  if (D)
+
54  D[0] = a + b;
+
55  return;
+
56 }
+
+
+
+ +

◆ main()

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

main function

+
62 {
+
63  unsigned long number, result;
+
64 
+
65  setlocale(LC_NUMERIC, ""); // format the printf output
+
66 
+
67  // Asks for the number/position of term in Fibonnacci sequence
+
68  if (argc == 2)
+
69  number = atoi(argv[1]);
+
70  else
+
71  {
+
72  printf("Enter the value of n(n starts from 0 ): ");
+
73  scanf("%lu", &number);
+
74  }
+
75 
+
76  fib(number, &result, NULL);
+
77 
+
78  printf("The nth term is : %'lu \n", result);
+
79 
+
80  return 0;
+
81 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
void fib(unsigned long n, unsigned long *C, unsigned long *D)
Definition: fibonacci_fast.c:20
+ + + + diff --git a/d4/d99/fibonacci__fast_8c.js b/d4/d99/fibonacci__fast_8c.js new file mode 100644 index 00000000..fd82b93d --- /dev/null +++ b/d4/d99/fibonacci__fast_8c.js @@ -0,0 +1,5 @@ +var fibonacci__fast_8c = +[ + [ "fib", "d4/d99/fibonacci__fast_8c.html#a7a3d55bd19854075cba2eed6b63cb2d3", null ], + [ "main", "d4/d99/fibonacci__fast_8c.html#a0ddf1224851353fc92bfbff6f499fa97", null ] +]; \ No newline at end of file diff --git a/d4/d99/fibonacci__fast_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map b/d4/d99/fibonacci__fast_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map new file mode 100644 index 00000000..02909d49 --- /dev/null +++ b/d4/d99/fibonacci__fast_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d4/d99/fibonacci__fast_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 b/d4/d99/fibonacci__fast_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 new file mode 100644 index 00000000..42e6ea74 --- /dev/null +++ b/d4/d99/fibonacci__fast_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 @@ -0,0 +1 @@ +ffe9b94de11978aaa5aa9def1c8c0380 \ No newline at end of file diff --git a/d4/d99/fibonacci__fast_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg b/d4/d99/fibonacci__fast_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg new file mode 100644 index 00000000..04f5d452 --- /dev/null +++ b/d4/d99/fibonacci__fast_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +fib + + + + + +Node1->Node2 + + + + + diff --git a/d4/d99/ode__semi__implicit__euler_8c.html b/d4/d99/ode__semi__implicit__euler_8c.html new file mode 100644 index 00000000..a861e097 --- /dev/null +++ b/d4/d99/ode__semi__implicit__euler_8c.html @@ -0,0 +1,522 @@ + + + + + + + +Algorithms_in_C: numerical_methods/ode_semi_implicit_euler.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ode_semi_implicit_euler.c File Reference
+
+
+ +

Solve a multivariable first order ordinary differential equation (ODEs) using semi implicit Euler method +More...

+
#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for ode_semi_implicit_euler.c:
+
+
+
+
+
+ + + +

+Macros

#define order   2
 
+ + + + + + + + + + + + + + + +

+Functions

void problem (const double *x, double *y, double *dy)
 Problem statement for a system with first-order differential equations. Updates the system differential variables. More...
 
void exact_solution (const double *x, double *y)
 Exact solution of the problem. Used for solution comparison. More...
 
void semi_implicit_euler_step (double dx, double *x, double *y, double *dy)
 Compute next step approximation using the semi-implicit-Euler method. More...
 
double semi_implicit_euler (double dx, double x0, double x_max, double *y, char save_to_file)
 Compute approximation using the semi-implicit-Euler method in the given limits. More...
 
int main (int argc, char *argv[])
 
+

Detailed Description

+

Solve a multivariable first order ordinary differential equation (ODEs) using semi implicit Euler method

+
Authors
Krishna Vedala
+

The ODE being solved is:

+\begin{eqnarray*} \dot{u} &=& v\\ \dot{v} &=& -\omega^2 u\\ \omega &=& 1\\ [x_0, u_0, v_0] &=& [0,1,0]\qquad\ldots\text{(initial values)} \end{eqnarray*} +

+

The exact solution for the above problem is:

+\begin{eqnarray*} u(x) &=& \cos(x)\\ v(x) &=& -\sin(x)\\ \end{eqnarray*} +

+

The computation results are stored to a text file semi_implicit_euler.csv and the exact soltuion results in exact.csv for comparison. Implementation solution

+

To implement Van der Pol oscillator, change the problem function to:

const double mu = 2.0;
+
dy[0] = y[1];
+
dy[1] = mu * (1.f - y[0] * y[0]) * y[1] - y[0];
+

Van der Pol Oscillator solution

+
See also
ode_forward_euler.c, ode_midpoint_euler.c
+

Macro Definition Documentation

+ +

◆ order

+ +
+
+ + + + +
#define order   2
+
+

number of dependent variables in problem

+ +
+
+

Function Documentation

+ +

◆ exact_solution()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void exact_solution (const double * x,
double * y 
)
+
+ +

Exact solution of the problem. Used for solution comparison.

+
Parameters
+ + + +
[in]xindependent variable
[in,out]ydependent variable
+
+
+
72 {
+
73  y[0] = cos(x[0]);
+
74  y[1] = -sin(x[0]);
+
75 }
+
+
+
+ +

◆ main()

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

Main Function

+
148 {
+
149  double X0 = 0.f; /* initial value of x0 */
+
150  double X_MAX = 10.F; /* upper limit of integration */
+
151  double Y0[] = {1.f, 0.f}; /* initial value Y = y(x = x_0) */
+
152  double step_size;
+
153 
+
154  if (argc == 1)
+
155  {
+
156  printf("\nEnter the step size: ");
+
157  scanf("%lg", &step_size);
+
158  }
+
159  else
+
160  // use commandline argument as independent variable step size
+
161  step_size = atof(argv[1]);
+
162 
+
163  // get approximate solution
+
164  double total_time = semi_implicit_euler(step_size, X0, X_MAX, Y0, 1);
+
165  printf("\tTime = %.6g ms\n", total_time);
+
166 
+
167  /* compute exact solution for comparion */
+
168  FILE *fp = fopen("exact.csv", "w+");
+
169  if (fp == NULL)
+
170  {
+
171  perror("Error! ");
+
172  return -1;
+
173  }
+
174  double x = X0;
+
175  double *y = &(Y0[0]);
+
176  printf("Finding exact solution\n");
+
177  clock_t t1 = clock();
+
178 
+
179  do
+
180  {
+
181  fprintf(fp, "%.4g,%.4g,%.4g\n", x, y[0], y[1]); // write to file
+
182  exact_solution(&x, y);
+
183  x += step_size;
+
184  } while (x <= X_MAX);
+
185 
+
186  clock_t t2 = clock();
+
187  total_time = (t2 - t1) / CLOCKS_PER_SEC;
+
188  printf("\tTime = %.6g ms\n", total_time);
+
189  fclose(fp);
+
190 
+
191  return 0;
+
192 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ problem()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void problem (const double * x,
double * y,
double * dy 
)
+
+ +

Problem statement for a system with first-order differential equations. Updates the system differential variables.

+
Note
This function can be updated to and ode of any order.
+
Parameters
+ + + + +
[in]xindependent variable(s)
[in,out]ydependent variable(s)
[in,out]dyfirst-derivative of dependent variable(s)
+
+
+
59 {
+
60  const double omega = 1.F; // some const for the problem
+
61  dy[0] = y[1]; // x dot
+
62  dy[1] = -omega * omega * y[0]; // y dot
+
63 }
+
+
+
+ +

◆ semi_implicit_euler()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
double semi_implicit_euler (double dx,
double x0,
double x_max,
double * y,
char save_to_file 
)
+
+ +

Compute approximation using the semi-implicit-Euler method in the given limits.

+
Parameters
+ + + + + + +
[in]dxstep size
[in]x0initial value of independent variable
[in]x_maxfinal value of independent variable
[in,out]ytake \(y_n\) and compute \(y_{n+1}\)
[in]save_to_fileflag to save results to a CSV file (1) or not (0)
+
+
+
Returns
time taken for computation in seconds
+
111 {
+
112  double dy[order];
+
113 
+
114  FILE *fp = NULL;
+
115  if (save_to_file)
+
116  {
+
117  fp = fopen("semi_implicit_euler.csv", "w+");
+
118  if (fp == NULL)
+
119  {
+
120  perror("Error! ");
+
121  return -1;
+
122  }
+
123  }
+
124 
+
125  /* start integration */
+
126  clock_t t1 = clock();
+
127  double x = x0;
+
128  do // iterate for each step of independent variable
+
129  {
+
130  if (save_to_file && fp)
+
131  fprintf(fp, "%.4g,%.4g,%.4g\n", x, y[0], y[1]); // write to file
+
132  semi_implicit_euler_step(dx, &x, y, dy); // perform integration
+
133  x += dx; // update step
+
134  } while (x <= x_max); // till upper limit of independent variable
+
135  /* end of integration */
+
136  clock_t t2 = clock();
+
137 
+
138  if (save_to_file && fp)
+
139  fclose(fp);
+
140 
+
141  return (double)(t2 - t1) / CLOCKS_PER_SEC;
+
142 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ semi_implicit_euler_step()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void semi_implicit_euler_step (double dx,
double * x,
double * y,
double * dy 
)
+
+ +

Compute next step approximation using the semi-implicit-Euler method.

+
Parameters
+ + + + + +
[in]dxstep size
[in,out]xtake \(x_n\) and compute \(x_{n+1}\)
[in,out]ytake \(y_n\) and compute \(y_{n+1}\)
[in,out]dycompute \(y_n+\frac{1}{2}dx\,f\left(x_n,y_n\right)\)
+
+
+
86 {
+
87  int o;
+
88 
+
89  problem(x, y, dy); // update dy once
+
90  y[0] += dx * dy[0]; // update y0
+
91 
+
92  problem(x, y, dy); // update dy once more
+
93 
+
94  for (o = 1; o < order; o++)
+
95  y[o] += dx * dy[o]; // update remaining using new dy
+
96  *x += dx;
+
97 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
double semi_implicit_euler(double dx, double x0, double x_max, double *y, char save_to_file)
Compute approximation using the semi-implicit-Euler method in the given limits.
Definition: ode_semi_implicit_euler.c:109
+
void exact_solution(const double *x, double *y)
Exact solution of the problem. Used for solution comparison.
Definition: ode_semi_implicit_euler.c:71
+
void problem(const double *x, double *y, double *dy)
Problem statement for a system with first-order differential equations. Updates the system differenti...
Definition: ode_semi_implicit_euler.c:58
+
#define order
Definition: ode_semi_implicit_euler.c:47
+
void semi_implicit_euler_step(double dx, double *x, double *y, double *dy)
Compute next step approximation using the semi-implicit-Euler method.
Definition: ode_semi_implicit_euler.c:85
+ + + + diff --git a/d4/d99/ode__semi__implicit__euler_8c.js b/d4/d99/ode__semi__implicit__euler_8c.js new file mode 100644 index 00000000..2c752556 --- /dev/null +++ b/d4/d99/ode__semi__implicit__euler_8c.js @@ -0,0 +1,9 @@ +var ode__semi__implicit__euler_8c = +[ + [ "order", "d4/d99/ode__semi__implicit__euler_8c.html#a9ceb646336224ee890a269d0b4600d09", null ], + [ "exact_solution", "d4/d99/ode__semi__implicit__euler_8c.html#a8caee977b26888d34040b122e0e28e3a", null ], + [ "main", "d4/d99/ode__semi__implicit__euler_8c.html#a0ddf1224851353fc92bfbff6f499fa97", null ], + [ "problem", "d4/d99/ode__semi__implicit__euler_8c.html#a97075291390a68c262ed66e157a57eb4", null ], + [ "semi_implicit_euler", "d4/d99/ode__semi__implicit__euler_8c.html#ad80059877222f885b549f2d0a3dc6b55", null ], + [ "semi_implicit_euler_step", "d4/d99/ode__semi__implicit__euler_8c.html#a720b7e995d2bbc615f94a2c7dbcf84eb", null ] +]; \ No newline at end of file diff --git a/d4/d99/ode__semi__implicit__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map b/d4/d99/ode__semi__implicit__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map new file mode 100644 index 00000000..1da82e72 --- /dev/null +++ b/d4/d99/ode__semi__implicit__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/d4/d99/ode__semi__implicit__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 b/d4/d99/ode__semi__implicit__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 new file mode 100644 index 00000000..f9c83ee0 --- /dev/null +++ b/d4/d99/ode__semi__implicit__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 @@ -0,0 +1 @@ +334c7fa63957934d7a1f59896c212a8b \ No newline at end of file diff --git a/d4/d99/ode__semi__implicit__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg b/d4/d99/ode__semi__implicit__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg new file mode 100644 index 00000000..3754b231 --- /dev/null +++ b/d4/d99/ode__semi__implicit__euler_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg @@ -0,0 +1,82 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +exact_solution + + + + + +Node1->Node2 + + + + + +Node3 + + +semi_implicit_euler + + + + + +Node1->Node3 + + + + + +Node4 + + +semi_implicit_euler_step + + + + + +Node3->Node4 + + + + + +Node5 + + +problem + + + + + +Node4->Node5 + + + + + diff --git a/d4/d99/ode__semi__implicit__euler_8c_a720b7e995d2bbc615f94a2c7dbcf84eb_cgraph.map b/d4/d99/ode__semi__implicit__euler_8c_a720b7e995d2bbc615f94a2c7dbcf84eb_cgraph.map new file mode 100644 index 00000000..09c3b233 --- /dev/null +++ b/d4/d99/ode__semi__implicit__euler_8c_a720b7e995d2bbc615f94a2c7dbcf84eb_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d4/d99/ode__semi__implicit__euler_8c_a720b7e995d2bbc615f94a2c7dbcf84eb_cgraph.md5 b/d4/d99/ode__semi__implicit__euler_8c_a720b7e995d2bbc615f94a2c7dbcf84eb_cgraph.md5 new file mode 100644 index 00000000..68382c78 --- /dev/null +++ b/d4/d99/ode__semi__implicit__euler_8c_a720b7e995d2bbc615f94a2c7dbcf84eb_cgraph.md5 @@ -0,0 +1 @@ +3e2a0eeed962eda2e6e8c4ad1b570b49 \ No newline at end of file diff --git a/d4/d99/ode__semi__implicit__euler_8c_a720b7e995d2bbc615f94a2c7dbcf84eb_cgraph.svg b/d4/d99/ode__semi__implicit__euler_8c_a720b7e995d2bbc615f94a2c7dbcf84eb_cgraph.svg new file mode 100644 index 00000000..89b306b1 --- /dev/null +++ b/d4/d99/ode__semi__implicit__euler_8c_a720b7e995d2bbc615f94a2c7dbcf84eb_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +semi_implicit_euler_step + + + +Node1 + + +semi_implicit_euler_step + + + + + +Node2 + + +problem + + + + + +Node1->Node2 + + + + + diff --git a/d4/d99/ode__semi__implicit__euler_8c_ad80059877222f885b549f2d0a3dc6b55_cgraph.map b/d4/d99/ode__semi__implicit__euler_8c_ad80059877222f885b549f2d0a3dc6b55_cgraph.map new file mode 100644 index 00000000..20c8a367 --- /dev/null +++ b/d4/d99/ode__semi__implicit__euler_8c_ad80059877222f885b549f2d0a3dc6b55_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d4/d99/ode__semi__implicit__euler_8c_ad80059877222f885b549f2d0a3dc6b55_cgraph.md5 b/d4/d99/ode__semi__implicit__euler_8c_ad80059877222f885b549f2d0a3dc6b55_cgraph.md5 new file mode 100644 index 00000000..c62bb412 --- /dev/null +++ b/d4/d99/ode__semi__implicit__euler_8c_ad80059877222f885b549f2d0a3dc6b55_cgraph.md5 @@ -0,0 +1 @@ +67b9c178574590cf1fe0fb5a1b518ee4 \ No newline at end of file diff --git a/d4/d99/ode__semi__implicit__euler_8c_ad80059877222f885b549f2d0a3dc6b55_cgraph.svg b/d4/d99/ode__semi__implicit__euler_8c_ad80059877222f885b549f2d0a3dc6b55_cgraph.svg new file mode 100644 index 00000000..5b800711 --- /dev/null +++ b/d4/d99/ode__semi__implicit__euler_8c_ad80059877222f885b549f2d0a3dc6b55_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +semi_implicit_euler + + + +Node1 + + +semi_implicit_euler + + + + + +Node2 + + +semi_implicit_euler_step + + + + + +Node1->Node2 + + + + + +Node3 + + +problem + + + + + +Node2->Node3 + + + + + diff --git a/d4/dbd/problem__23_2sol2_8c.html b/d4/dbd/problem__23_2sol2_8c.html new file mode 100644 index 00000000..2accd957 --- /dev/null +++ b/d4/dbd/problem__23_2sol2_8c.html @@ -0,0 +1,457 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_23/sol2.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol2.c File Reference
+
+
+ +

Problem 23 solution - optimization using look-up array +More...

+
#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for sol2.c:
+
+
+
+
+
+ + + + + + + + + + + +

+Functions

char get_perfect_number (unsigned long N)
 
char is_abundant (unsigned long N)
 
unsigned long get_next_abundant (unsigned long N)
 
char is_sum_of_abundant (unsigned long N)
 
int main (int argc, char **argv)
 
+ + + + + +

+Variables

long MAX_N = 28123
 
char * abundant_flags = NULL
 
+

Detailed Description

+

Problem 23 solution - optimization using look-up array

+
Author
Krishna Vedala
+

Optimization applied - compute & store abundant numbers once into a look-up array.

+

Function Documentation

+ +

◆ get_next_abundant()

+ +
+
+ + + + + + + + +
unsigned long get_next_abundant (unsigned long N)
+
+

Find the next abundant number after N and not including N

+
71 {
+
72  unsigned long i;
+
73  /* keep checking successive numbers till an abundant number is found */
+
74  for (i = N + 1; !is_abundant(i); ++i)
+
75  ;
+
76  return i;
+
77 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ get_perfect_number()

+ +
+
+ + + + + + + + +
char get_perfect_number (unsigned long N)
+
+
Returns
-1 if N is deficient
+
+1 if N is abundant
+
+0 if N is perfect
+
34 {
+
35  unsigned long sum = 1;
+
36  char ret = 0;
+
37 
+
38  for (unsigned long i = 2; i * i <= N; i++)
+
39  {
+
40  if (N % i == 0)
+
41  {
+
42  sum += i;
+
43  unsigned long tmp = N / i;
+
44  if (tmp != i)
+
45  sum += tmp;
+
46  }
+
47  }
+
48 
+
49  ret = sum == N ? 0 : (sum > N ? 1 : -1);
+
50 #ifdef DEBUG
+
51  printf("%5lu: %5lu : %d\n", N, sum, ret);
+
52 #endif
+
53  return ret;
+
54 }
+
+
+
+ +

◆ is_abundant()

+ +
+
+ + + + + + + + +
char is_abundant (unsigned long N)
+
+

Is the given number an abundant number (1) or not (0)

+
60 {
+
61  // return abundant_flags[N >> 3] & (1 << N % 8) ? 1 : 0;
+
62  return abundant_flags[N >> 3] & (1 << (N & 7))
+
63  ? 1
+
64  : 0; /* optimized modulo operation */
+
65 }
+
+
+
+ +

◆ is_sum_of_abundant()

+ +
+
+ + + + + + + + +
char is_sum_of_abundant (unsigned long N)
+
+

check if a given number can be represented as a sum of two abundant numbers.

Returns
1 - if yes
+
+0 - if not
+

optimized logic: i + j = N where both i and j should be abundant hence we can simply check for j = N - i as we loop through i

+
86 {
+
87  /** optimized logic:
+
88  * i + j = N where both i and j should be abundant
+
89  * hence we can simply check for j = N - i as we loop through i
+
90  **/
+
91  for (unsigned long i = get_next_abundant(1); i <= (N >> 1);
+
92  i = get_next_abundant(i))
+
93  if (is_abundant(N - i))
+
94  {
+
95 #ifdef DEBUG
+
96  printf("\t%4lu + %4lu = %4lu\n", i, N - i, N);
+
97 #endif
+
98  return 1;
+
99  }
+
100  return 0;
+
101 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ main()

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

Main function

+

byte array to store flags to identify abundant numbers the flags are identified by bits

+
105 {
+
106  unsigned long sum = 0;
+
107  if (argc == 2)
+
108  MAX_N = strtoul(argv[1], NULL, 10);
+
109 
+
110  /** byte array to store flags to identify abundant numbers
+
111  * the flags are identified by bits
+
112  **/
+
113  abundant_flags = (char *)calloc(MAX_N >> 3, 1);
+
114  if (!abundant_flags)
+
115  {
+
116  perror("Unable to allocate memoey!");
+
117  return -1;
+
118  }
+
119 
+
120 #ifdef _OPENMP
+
121  printf("Using OpenMP parallleization with %d threads\n",
+
122  omp_get_max_threads());
+
123 #else
+
124  printf("Not using parallleization!\n");
+
125 #endif
+
126 
+
127  clock_t start_time = clock();
+
128 
+
129  /* Loop to set abundant flags */
+
130  long N;
+
131 #ifdef _OPENMP
+
132 #pragma omp for schedule(runtime)
+
133 #endif
+
134  for (N = 1; N <= MAX_N; N++)
+
135  {
+
136  char ret = get_perfect_number(N);
+
137  if (ret == 1)
+
138  {
+
139  // int byte_offset = N % 8, index = N >> 3;
+
140  int byte_offset = N & 7, index = N >> 3;
+
141 #ifdef _OPENMP
+
142 #pragma omp critical
+
143 #endif
+
144  abundant_flags[index] |= ret << byte_offset;
+
145  }
+
146  // if (i % 100 == 0)
+
147  // printf("... %5lu: %8lu\r", i, sum);
+
148  }
+
149 
+
150  clock_t end_time = clock();
+
151  double t1 = 1e3 * (end_time - start_time) / CLOCKS_PER_SEC;
+
152  printf("Time taken to get abundant numbers: %.4g ms\n", t1);
+
153 
+
154  clock_t t2 = 0;
+
155  long i;
+
156 #ifdef _OPENMP
+
157 #pragma omp parallel for schedule(runtime) reduction(+ : sum)
+
158 #endif
+
159  for (i = 1; i < MAX_N; i++)
+
160  {
+
161  clock_t start_time1 = clock();
+
162  if (!is_sum_of_abundant(i))
+
163  // #ifdef _OPENMP
+
164  // #pragma omp critical
+
165  // #endif
+
166  sum += i;
+
167  clock_t end_time1 = clock();
+
168 #ifdef _OPENMP
+
169 #pragma omp critical
+
170 #endif
+
171  t2 += end_time1 - start_time1;
+
172 
+
173  printf("... %5lu: %8lu\r", i, sum);
+
174  if (i % 100 == 0)
+
175  fflush(stdout);
+
176  }
+
177 
+
178 #ifdef DEBUG
+
179  putchar('\n');
+
180 #endif
+
181  double t22 = 1e3 * t2 / CLOCKS_PER_SEC;
+
182  printf("Time taken for final sum: %.4g ms\nTotal Time taken: %.4g ms\n",
+
183  t22, t1 + t22);
+
184  printf("Memory used: %lu bytes\n", MAX_N >> 3);
+
185  printf("Sum of numbers that cannot be represented as sum of two abundant "
+
186  "numbers : %lu\n",
+
187  sum);
+
188 
+
189  free(abundant_flags);
+
190 
+
191  return 0;
+
192 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ abundant_flags

+ +
+
+ + + + +
char* abundant_flags = NULL
+
+

This is the global array to be used to store a flag to identify if a particular number is abundant (1) or not (0). Using a whole byte to store a binary info would be redundant. We will use each byte to represent 8 numbers by relying on bits. This saves memory required by 1/8

+ +
+
+ +

◆ MAX_N

+ +
+
+ + + + +
long MAX_N = 28123
+
+

Limit of numbers to check

+ +
+
+
+
+
char get_perfect_number(unsigned long N)
Definition: sol2.c:33
+
#define N
Definition: sol1.c:111
+
unsigned long get_next_abundant(unsigned long N)
Definition: sol2.c:70
+
char is_abundant(unsigned long N)
Definition: sol2.c:59
+
char is_sum_of_abundant(unsigned long N)
Definition: sol2.c:85
+
long MAX_N
Definition: sol2.c:17
+
char * abundant_flags
Definition: sol2.c:26
+ + + + diff --git a/d4/dbd/problem__23_2sol2_8c.js b/d4/dbd/problem__23_2sol2_8c.js new file mode 100644 index 00000000..8537ab86 --- /dev/null +++ b/d4/dbd/problem__23_2sol2_8c.js @@ -0,0 +1,10 @@ +var problem__23_2sol2_8c = +[ + [ "get_next_abundant", "d4/dbd/problem__23_2sol2_8c.html#ac5d600bf3077f4188afc4c5cd2c40eaf", null ], + [ "get_perfect_number", "d4/dbd/problem__23_2sol2_8c.html#a1aca7f530f82b27100262adba9e7556b", null ], + [ "is_abundant", "d4/dbd/problem__23_2sol2_8c.html#a34f4ad85151e3a43368ae67f42347f56", null ], + [ "is_sum_of_abundant", "d4/dbd/problem__23_2sol2_8c.html#a3ab61b5a1c4f2288625d160aa0ea8478", null ], + [ "main", "d4/dbd/problem__23_2sol2_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "abundant_flags", "d4/dbd/problem__23_2sol2_8c.html#af920a16d6ef69dd604b283f427892e06", null ], + [ "MAX_N", "d4/dbd/problem__23_2sol2_8c.html#a8c7ddb39906f281b801f2cd58d416c2b", null ] +]; \ No newline at end of file diff --git a/d4/dbd/problem__23_2sol2_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.map b/d4/dbd/problem__23_2sol2_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.map new file mode 100644 index 00000000..991ca27b --- /dev/null +++ b/d4/dbd/problem__23_2sol2_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d4/dbd/problem__23_2sol2_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.md5 b/d4/dbd/problem__23_2sol2_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.md5 new file mode 100644 index 00000000..94694c62 --- /dev/null +++ b/d4/dbd/problem__23_2sol2_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.md5 @@ -0,0 +1 @@ +5c43e5ca37c7e2288506cf2466275395 \ No newline at end of file diff --git a/d4/dbd/problem__23_2sol2_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.svg b/d4/dbd/problem__23_2sol2_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.svg new file mode 100644 index 00000000..7cef4adb --- /dev/null +++ b/d4/dbd/problem__23_2sol2_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.svg @@ -0,0 +1,58 @@ + + + + + + +is_sum_of_abundant + + + +Node1 + + +is_sum_of_abundant + + + + + +Node2 + + +get_next_abundant + + + + + +Node1->Node2 + + + + + +Node3 + + +is_abundant + + + + + +Node1->Node3 + + + + + +Node2->Node3 + + + + + diff --git a/d4/dbd/problem__23_2sol2_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/d4/dbd/problem__23_2sol2_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..ce7b35bb --- /dev/null +++ b/d4/dbd/problem__23_2sol2_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/d4/dbd/problem__23_2sol2_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/d4/dbd/problem__23_2sol2_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..a965d670 --- /dev/null +++ b/d4/dbd/problem__23_2sol2_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +a118afda4ae31d7431d055c3859013e4 \ No newline at end of file diff --git a/d4/dbd/problem__23_2sol2_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/d4/dbd/problem__23_2sol2_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..cbab3ce6 --- /dev/null +++ b/d4/dbd/problem__23_2sol2_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,88 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +get_perfect_number + + + + + +Node1->Node2 + + + + + +Node3 + + +is_sum_of_abundant + + + + + +Node1->Node3 + + + + + +Node4 + + +get_next_abundant + + + + + +Node3->Node4 + + + + + +Node5 + + +is_abundant + + + + + +Node3->Node5 + + + + + +Node4->Node5 + + + + + diff --git a/d4/dbd/problem__23_2sol2_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.map b/d4/dbd/problem__23_2sol2_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.map new file mode 100644 index 00000000..d048a1e6 --- /dev/null +++ b/d4/dbd/problem__23_2sol2_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d4/dbd/problem__23_2sol2_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.md5 b/d4/dbd/problem__23_2sol2_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.md5 new file mode 100644 index 00000000..52aeb677 --- /dev/null +++ b/d4/dbd/problem__23_2sol2_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.md5 @@ -0,0 +1 @@ +d014c2fa8ffc2fc68387fbfb752d9aad \ No newline at end of file diff --git a/d4/dbd/problem__23_2sol2_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.svg b/d4/dbd/problem__23_2sol2_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.svg new file mode 100644 index 00000000..e8ffce9e --- /dev/null +++ b/d4/dbd/problem__23_2sol2_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +get_next_abundant + + + +Node1 + + +get_next_abundant + + + + + +Node2 + + +is_abundant + + + + + +Node1->Node2 + + + + + diff --git a/d4/dcb/md_hash__r_e_a_d_m_e.html b/d4/dcb/md_hash__r_e_a_d_m_e.html new file mode 100644 index 00000000..e45eaf6b --- /dev/null +++ b/d4/dcb/md_hash__r_e_a_d_m_e.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: Hash algorithms + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Hash algorithms
+
+
+

Overview files hash.h and hash.c

    +
  • sdbm
  • +
  • djb2
  • +
  • xor8 (8 bit)
  • +
  • adler_32 (32 bit)
  • +
  • crc32 (32 bit)
  • +
+
+
+
+ + + + diff --git a/d4/dd4/struct_graph.html b/d4/dd4/struct_graph.html new file mode 100644 index 00000000..ea82e8b7 --- /dev/null +++ b/d4/dd4/struct_graph.html @@ -0,0 +1,161 @@ + + + + + + + +Algorithms_in_C: Graph Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Graph Struct Reference
+
+
+
+Collaboration diagram for Graph:
+
+
+
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

+int vertexNum
 
+int edgeNum
 
+struct Edgeedges
 
+int numVertices
 
+struct node ** adjLists
 
+int * visited
 
+int ** edges
 
+int V
 
+int E
 
+struct Edgeedge
 
+
The documentation for this struct was generated from the following files:
    +
  • data_structures/graphs/bellman_ford.c
  • +
  • data_structures/graphs/bfs.c
  • +
  • data_structures/graphs/dfs.c
  • +
  • data_structures/graphs/dijkstra.c
  • +
  • data_structures/graphs/floyd_warshall.c
  • +
  • data_structures/graphs/kruskal.c
  • +
  • data_structures/graphs/strongly_connected_components.c
  • +
  • data_structures/graphs/topologicalsort.c
  • +
+
+
+ + + + diff --git a/d4/dd4/struct_graph.js b/d4/dd4/struct_graph.js new file mode 100644 index 00000000..3b92764e --- /dev/null +++ b/d4/dd4/struct_graph.js @@ -0,0 +1,13 @@ +var struct_graph = +[ + [ "adjLists", "d4/dd4/struct_graph.html#aaaffb7e0621115519a09be31a33c6cda", null ], + [ "E", "d4/dd4/struct_graph.html#a3ce250f958f7e96ffd9eb06780c21fbe", null ], + [ "edge", "d4/dd4/struct_graph.html#a14b3734eb135c40cf4401f22bda5bb76", null ], + [ "edgeNum", "d4/dd4/struct_graph.html#a10ff9c6c323cf435f18e424dbb62235e", null ], + [ "edges", "d4/dd4/struct_graph.html#a268ba18d421817ad8713c2e92f19d82a", null ], + [ "edges", "d4/dd4/struct_graph.html#a3535be2ce0d62152e54395951330da81", null ], + [ "numVertices", "d4/dd4/struct_graph.html#a72bb0a04571b49a568e0eed371a35c33", null ], + [ "V", "d4/dd4/struct_graph.html#a2b722f7cfa7a21e4cb5fae488b3d4dcc", null ], + [ "vertexNum", "d4/dd4/struct_graph.html#a6afcd41564ea00294a4c089414979ca1", null ], + [ "visited", "d4/dd4/struct_graph.html#aa3f9278e0b50fbec06b93cda9c733dfe", null ] +]; \ No newline at end of file diff --git a/d4/dea/problem__14_2sol1_8c.html b/d4/dea/problem__14_2sol1_8c.html new file mode 100644 index 00000000..9b0ef9d2 --- /dev/null +++ b/d4/dea/problem__14_2sol1_8c.html @@ -0,0 +1,242 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_14/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 14 solution +More...

+
#include <stdio.h>
+#include <stdlib.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + + + +

+Functions

long long collatz (long long start_num)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Problem 14 solution

+
Author
Krishna Vedala
+

Since the computational values for each iteration step are independent, we can compute them in parallel. However, the maximum values should be updated in synchrony so that we do not get into a "race condition".

+

To compile with supporintg gcc or clang, the flag "-fopenmp" should be passes while with Microsoft C compiler, the flag "/fopenmp" should be used. If you are using the provided CMAKE compilation, it will automatically detect OPENMP and compile with it for you.

+

Automatically detects for OPENMP using the _OPENMP macro.

+

Function Documentation

+ +

◆ collatz()

+ +
+
+ + + + + + + + +
long long collatz (long long start_num)
+
+

Computes the length of collatz sequence for a given starting number

+
28 {
+
29  long long length = 1;
+
30 
+
31  while (start_num != 1) /* loop till we reach 1 */
+
32  {
+
33  if (start_num & 0x01) /* check for odd */
+
34  start_num = 3 * start_num + 1;
+
35  else
+
36  start_num >>= 1; /* simpler divide by 2 */
+
37  length++;
+
38  }
+
39 
+
40  return length;
+
41 }
+
+
+
+ +

◆ main()

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

Main function

+
45 {
+
46  long long max_len = 0, max_len_num = 0;
+
47  long long MAX_NUM = 1000000;
+
48 
+
49  if (argc ==
+
50  2) /* set commandline argumnet as the maximum iteration number */
+
51  {
+
52  MAX_NUM = atoll(argv[1]);
+
53  printf("Maximum number: %lld\n", MAX_NUM);
+
54  }
+
55 
+
56  long long i;
+
57 #ifdef _OPENMP
+
58 #pragma omp parallel for shared(max_len, max_len_num) schedule(guided)
+
59 #endif
+
60  for (i = 1; i < MAX_NUM; i++)
+
61  {
+
62  long long L = collatz(i);
+
63  if (L > max_len)
+
64  {
+
65  max_len = L; /* length of sequence */
+
66  max_len_num = i; /* starting number */
+
67  }
+
68 
+
69 #if defined(_OPENMP) && defined(DEBUG)
+
70  printf("Thread: %2d\t %3lld: \t%5lld\n", omp_get_thread_num(), i, L);
+
71 #elif defined(DEBUG)
+
72  printf("%3lld: \t%5lld\n", i, L);
+
73 #endif
+
74  }
+
75 
+
76  printf("Start: %3lld: \tLength: %5lld\n", max_len_num, max_len);
+
77 
+
78  return 0;
+
79 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
Definition: list.h:8
+
long long collatz(long long start_num)
Definition: sol1.c:27
+ + + + diff --git a/d4/dea/problem__14_2sol1_8c.js b/d4/dea/problem__14_2sol1_8c.js new file mode 100644 index 00000000..51a4e2ae --- /dev/null +++ b/d4/dea/problem__14_2sol1_8c.js @@ -0,0 +1,5 @@ +var problem__14_2sol1_8c = +[ + [ "collatz", "d4/dea/problem__14_2sol1_8c.html#a81c1df5c17cb16bcc16e346fcff6fa80", null ], + [ "main", "d4/dea/problem__14_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ] +]; \ No newline at end of file diff --git a/d4/dea/problem__14_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/d4/dea/problem__14_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..a46f5936 --- /dev/null +++ b/d4/dea/problem__14_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d4/dea/problem__14_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/d4/dea/problem__14_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..634ae897 --- /dev/null +++ b/d4/dea/problem__14_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +b55be23671515526aa210433019100f1 \ No newline at end of file diff --git a/d4/dea/problem__14_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/d4/dea/problem__14_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..2db0838d --- /dev/null +++ b/d4/dea/problem__14_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +collatz + + + + + +Node1->Node2 + + + + + diff --git a/d4/dfe/struct_dict.html b/d4/dfe/struct_dict.html new file mode 100644 index 00000000..0754a4d0 --- /dev/null +++ b/d4/dfe/struct_dict.html @@ -0,0 +1,124 @@ + + + + + + + +Algorithms_in_C: Dict Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Dict Struct Reference
+
+
+ + + + + + +

+Data Fields

+void * elements [MAXELEMENTS]
 
+int number_of_elements
 
+
The documentation for this struct was generated from the following file:
    +
  • data_structures/dictionary/dict.h
  • +
+
+
+ + + + diff --git a/d4/dfe/struct_dict.js b/d4/dfe/struct_dict.js new file mode 100644 index 00000000..9744f72f --- /dev/null +++ b/d4/dfe/struct_dict.js @@ -0,0 +1,5 @@ +var struct_dict = +[ + [ "elements", "d4/dfe/struct_dict.html#a2e14d738e06c60eebcc2eac274e6676e", null ], + [ "number_of_elements", "d4/dfe/struct_dict.html#add3f42ea66e92ce457a243d7534f5654", null ] +]; \ No newline at end of file diff --git a/d5/d23/qr__decomposition_8c.html b/d5/d23/qr__decomposition_8c.html new file mode 100644 index 00000000..59acefb2 --- /dev/null +++ b/d5/d23/qr__decomposition_8c.html @@ -0,0 +1,224 @@ + + + + + + + +Algorithms_in_C: numerical_methods/qr_decomposition.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
qr_decomposition.c File Reference
+
+
+ +

Program to compute the QR decomposition of a given matrix. +More...

+
#include "qr_decompose.h"
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for qr_decomposition.c:
+
+
+
+
+
+ + + +

+Functions

int main (void)
 
+

Detailed Description

+

Program to compute the QR decomposition of a given matrix.

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + +
int main (void )
+
+

main function

+
19 {
+
20  double **A;
+
21  unsigned int ROWS, COLUMNS;
+
22 
+
23  printf("Enter the number of rows and columns: ");
+
24  scanf("%u %u", &ROWS, &COLUMNS);
+
25  if (ROWS < COLUMNS)
+
26  {
+
27  fprintf(stderr, "Number of rows must be greater than or equal to "
+
28  "number of columns.\n");
+
29  return -1;
+
30  }
+
31 
+
32  printf("Enter matrix elements row-wise:\n");
+
33 
+
34  A = (double **)malloc(ROWS * sizeof(double *));
+
35  for (int i = 0; i < ROWS; i++)
+
36  A[i] = (double *)malloc(COLUMNS * sizeof(double));
+
37 
+
38  for (int i = 0; i < ROWS; i++)
+
39  for (int j = 0; j < COLUMNS; j++)
+
40  scanf("%lf", &A[i][j]);
+
41 
+
42  print_matrix(A, ROWS, COLUMNS);
+
43 
+
44  double **R = (double **)malloc(sizeof(double *) * ROWS);
+
45  double **Q = (double **)malloc(sizeof(double *) * ROWS);
+
46  if (!Q || !R)
+
47  {
+
48  perror("Unable to allocate memory for Q & R!");
+
49  return -1;
+
50  }
+
51  for (int i = 0; i < ROWS; i++)
+
52  {
+
53  R[i] = (double *)malloc(sizeof(double) * COLUMNS);
+
54  Q[i] = (double *)malloc(sizeof(double) * ROWS);
+
55  if (!Q[i] || !R[i])
+
56  {
+
57  perror("Unable to allocate memory for Q & R.");
+
58  return -1;
+
59  }
+
60  }
+
61 
+
62  clock_t t1 = clock();
+
63  qr_decompose(A, Q, R, ROWS, COLUMNS);
+
64  double dtime = (double)(clock() - t1) / CLOCKS_PER_SEC;
+
65 
+
66  print_matrix(R, ROWS, COLUMNS);
+
67  print_matrix(Q, ROWS, COLUMNS);
+
68  printf("Time taken to compute: %.4g sec\n", dtime);
+
69 
+
70  for (int i = 0; i < ROWS; i++)
+
71  {
+
72  free(A[i]);
+
73  free(R[i]);
+
74  free(Q[i]);
+
75  }
+
76  free(A);
+
77  free(R);
+
78  free(Q);
+
79  return 0;
+
80 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
void qr_decompose(double **A, double **Q, double **R, int M, int N)
Definition: qr_decompose.h:146
+
void print_matrix(double **A, int M, int N)
Definition: qr_decompose.h:22
+ + + + diff --git a/d5/d23/qr__decomposition_8c.js b/d5/d23/qr__decomposition_8c.js new file mode 100644 index 00000000..59d2f720 --- /dev/null +++ b/d5/d23/qr__decomposition_8c.js @@ -0,0 +1,4 @@ +var qr__decomposition_8c = +[ + [ "main", "d5/d23/qr__decomposition_8c.html#a840291bc02cba5474a4cb46a9b9566fe", null ] +]; \ No newline at end of file diff --git a/d5/d23/qr__decomposition_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map b/d5/d23/qr__decomposition_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map new file mode 100644 index 00000000..3271ed1e --- /dev/null +++ b/d5/d23/qr__decomposition_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/d5/d23/qr__decomposition_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 b/d5/d23/qr__decomposition_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 new file mode 100644 index 00000000..1c399dcc --- /dev/null +++ b/d5/d23/qr__decomposition_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 @@ -0,0 +1 @@ +282f062fbc0a3b196314c6042ea202ef \ No newline at end of file diff --git a/d5/d23/qr__decomposition_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg b/d5/d23/qr__decomposition_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg new file mode 100644 index 00000000..03d509ca --- /dev/null +++ b/d5/d23/qr__decomposition_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg @@ -0,0 +1,124 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +print_matrix + + + + + +Node1->Node2 + + + + + +Node3 + + +qr_decompose + + + + + +Node1->Node3 + + + + + +Node4 + + +vector_dot + + + + + +Node3->Node4 + + + + + +Node5 + + +vector_mag + + + + + +Node3->Node5 + + + + + +Node6 + + +vector_proj + + + + + +Node3->Node6 + + + + + +Node7 + + +vector_sub + + + + + +Node3->Node7 + + + + + +Node5->Node4 + + + + + +Node6->Node4 + + + + + diff --git a/d5/d3e/problem__3_2sol2_8c__incl.map b/d5/d3e/problem__3_2sol2_8c__incl.map new file mode 100644 index 00000000..2cece4bf --- /dev/null +++ b/d5/d3e/problem__3_2sol2_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/d5/d3e/problem__3_2sol2_8c__incl.md5 b/d5/d3e/problem__3_2sol2_8c__incl.md5 new file mode 100644 index 00000000..b9f832df --- /dev/null +++ b/d5/d3e/problem__3_2sol2_8c__incl.md5 @@ -0,0 +1 @@ +6ce1b76c15d52ac280242dc0a8e11fdf \ No newline at end of file diff --git a/d5/d3e/problem__3_2sol2_8c__incl.svg b/d5/d3e/problem__3_2sol2_8c__incl.svg new file mode 100644 index 00000000..7b487198 --- /dev/null +++ b/d5/d3e/problem__3_2sol2_8c__incl.svg @@ -0,0 +1,38 @@ + + + + + + +project_euler/problem_3/sol2.c + + + +Node1 + + +project_euler/problem +_3/sol2.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + diff --git a/d5/d51/problem__25_2sol1_8c__incl.map b/d5/d51/problem__25_2sol1_8c__incl.map new file mode 100644 index 00000000..ca954f25 --- /dev/null +++ b/d5/d51/problem__25_2sol1_8c__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/d5/d51/problem__25_2sol1_8c__incl.md5 b/d5/d51/problem__25_2sol1_8c__incl.md5 new file mode 100644 index 00000000..4f4c3131 --- /dev/null +++ b/d5/d51/problem__25_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +bea3b490ed7a5d1b6988b6e5df151e3c \ No newline at end of file diff --git a/d5/d51/problem__25_2sol1_8c__incl.svg b/d5/d51/problem__25_2sol1_8c__incl.svg new file mode 100644 index 00000000..2e483e4b --- /dev/null +++ b/d5/d51/problem__25_2sol1_8c__incl.svg @@ -0,0 +1,98 @@ + + + + + + +project_euler/problem_25/sol1.c + + + +Node1 + + +project_euler/problem +_25/sol1.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + +Node5 + + +string.h + + + + + +Node1->Node5 + + + + + +Node6 + + +time.h + + + + + +Node1->Node6 + + + + + diff --git a/d5/d7e/struct_t.html b/d5/d7e/struct_t.html new file mode 100644 index 00000000..b6866db9 --- /dev/null +++ b/d5/d7e/struct_t.html @@ -0,0 +1,130 @@ + + + + + + + +Algorithms_in_C: T Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
T Struct Reference
+
+
+
+Collaboration diagram for T:
+
+
+
+
[legend]
+ + + + + + +

+Data Fields

+int count
 
+elem_thead
 
+
The documentation for this struct was generated from the following file:
    +
  • data_structures/stack/stack_linked_list/stack.c
  • +
+
+
+ + + + diff --git a/d5/d7e/struct_t.js b/d5/d7e/struct_t.js new file mode 100644 index 00000000..c10d8098 --- /dev/null +++ b/d5/d7e/struct_t.js @@ -0,0 +1,5 @@ +var struct_t = +[ + [ "count", "d5/d7e/struct_t.html#a2023d2bb6a6cdf472b567b3ec5cf35d4", null ], + [ "head", "d5/d7e/struct_t.html#a5a06d4022d41bad87137ba3430abce8b", null ] +]; \ No newline at end of file diff --git a/d5/d88/md__d_i_r_e_c_t_o_r_y.html b/d5/d88/md__d_i_r_e_c_t_o_r_y.html new file mode 100644 index 00000000..8c8c4219 --- /dev/null +++ b/d5/d88/md__d_i_r_e_c_t_o_r_y.html @@ -0,0 +1,578 @@ + + + + + + + +Algorithms_in_C: List of all files + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
List of all files
+
+
+

+Client Server

+ +

+Conversions

+ +

+Data Structures

+ +

+Exercism

+ +

+Greedy Approach

+ +

+Hash

+ +

+Leetcode

+ +

+Machine Learning

+ +

+Misc

+ +

+Numerical Methods

+ +

+Project Euler

+ +

+Searching

+ +

+Sorting

+ +
+
+
+ + + + diff --git a/d5/da1/structnode.html b/d5/da1/structnode.html new file mode 100644 index 00000000..c0fd5dc2 --- /dev/null +++ b/d5/da1/structnode.html @@ -0,0 +1,183 @@ + + + + + + + +Algorithms_in_C: node Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
node Struct Reference
+
+
+
+Collaboration diagram for node:
+
+
+
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

+struct nodeleft
 
+struct noderight
 
+int data
 
+struct nodeleftNode
 
+struct noderightNode
 
+int val
 
+struct nodepar
 
+int color
 
+int vertex
 
+struct nodenext
 
+int info
 
+struct nodelink
 
+struct nodepre
 
+char data
 
+

Detailed Description

+

Kyler Smith, 2017 Stack data structure implementation.

+

The documentation for this struct was generated from the following files:
    +
  • data_structures/binary_trees/binary_search_tree.c
  • +
  • data_structures/binary_trees/create_node.c
  • +
  • data_structures/binary_trees/redblacktree.c
  • +
  • data_structures/graphs/bfs.c
  • +
  • data_structures/graphs/dfs.c
  • +
  • data_structures/graphs/queue.c
  • +
  • data_structures/graphs/strongly_connected_components.c
  • +
  • data_structures/graphs/topologicalsort.c
  • +
  • data_structures/linked_list/ascendingpriorityqueue.c
  • +
  • data_structures/linked_list/CircularLinkedList.C
  • +
  • data_structures/linked_list/merge_linked_lists.c
  • +
  • data_structures/linked_list/queue_linked_list.c
  • +
  • data_structures/linked_list/singly_link_list_deletion.c
  • +
  • data_structures/linked_list/stack_using_linked_lists.c
  • +
  • data_structures/stack/parenthesis.c
  • +
  • data_structures/stack.c
  • +
+
+
+ + + + diff --git a/d5/da1/structnode.js b/d5/da1/structnode.js new file mode 100644 index 00000000..f399065d --- /dev/null +++ b/d5/da1/structnode.js @@ -0,0 +1,17 @@ +var structnode = +[ + [ "color", "d5/da1/structnode.html#a310a09cb5a882788781a5287096ad425", null ], + [ "data", "d5/da1/structnode.html#a6f9100a3fe81d82776ce47ecdba94691", null ], + [ "data", "d5/da1/structnode.html#a2d890bb9f6af0ffd73fe79b21124c2a2", null ], + [ "info", "d5/da1/structnode.html#ac8973feda870a119ccdc25910254db0c", null ], + [ "left", "d5/da1/structnode.html#af7109e6ffd82cbbb705e486fd0ce92f0", null ], + [ "leftNode", "d5/da1/structnode.html#a2783f1aec750191646305988f7e28756", null ], + [ "link", "d5/da1/structnode.html#a1aa632fdf50713d86192a96f8191851b", null ], + [ "next", "d5/da1/structnode.html#a111a569ab2765add9b91c9f94cf9f063", null ], + [ "par", "d5/da1/structnode.html#a8139af7faac30d394e198365a999b54d", null ], + [ "pre", "d5/da1/structnode.html#a7f5750a90eac14a9a21d5b976cd8b8a7", null ], + [ "right", "d5/da1/structnode.html#a51e160f22dc6064bac4a4f9f1d931c2c", null ], + [ "rightNode", "d5/da1/structnode.html#aaf2ec5ed1bb563465cbe2e9d16d74d1e", null ], + [ "val", "d5/da1/structnode.html#a707bf3f1eeeaf8974e7e8e90f7bfd6a1", null ], + [ "vertex", "d5/da1/structnode.html#ab4b1f345158daee0725acecd5ba817b1", null ] +]; \ No newline at end of file diff --git a/d5/db4/struct_edge.html b/d5/db4/struct_edge.html new file mode 100644 index 00000000..e77dfa27 --- /dev/null +++ b/d5/db4/struct_edge.html @@ -0,0 +1,138 @@ + + + + + + + +Algorithms_in_C: Edge Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Edge Struct Reference
+
+
+ + + + + + + + + + + + + + +

+Data Fields

+int src
 
+int dst
 
+int weight
 
+Vertex v
 
+Vertex w
 
+int dest
 
+
The documentation for this struct was generated from the following files:
    +
  • data_structures/graphs/bellman_ford.c
  • +
  • data_structures/graphs/graph.h
  • +
  • data_structures/graphs/kruskal.c
  • +
+
+
+ + + + diff --git a/d5/db4/struct_edge.js b/d5/db4/struct_edge.js new file mode 100644 index 00000000..6d9caae6 --- /dev/null +++ b/d5/db4/struct_edge.js @@ -0,0 +1,9 @@ +var struct_edge = +[ + [ "dest", "d5/db4/struct_edge.html#ad7df434ff7710e69f28bb31e91a35f82", null ], + [ "dst", "d5/db4/struct_edge.html#a2449478938136b5ab7ef0e7d92e6990b", null ], + [ "src", "d5/db4/struct_edge.html#a9a415f211c059647d1b3af8fcf7a0e30", null ], + [ "v", "d5/db4/struct_edge.html#ae746ca841799f776a8add4d6fdfc19e9", null ], + [ "w", "d5/db4/struct_edge.html#a0c7bb90b11b1b795c665786317ca744d", null ], + [ "weight", "d5/db4/struct_edge.html#a4d58e1f4de38fa55549497175981ebab", null ] +]; \ No newline at end of file diff --git a/d6/d1b/sol4_8c.html b/d6/d1b/sol4_8c.html new file mode 100644 index 00000000..7da41438 --- /dev/null +++ b/d6/d1b/sol4_8c.html @@ -0,0 +1,172 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_1/sol4.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol4.c File Reference
+
+
+ +

Problem 1 solution +More...

+
#include <stdio.h>
+
+Include dependency graph for sol4.c:
+
+
+
+
+
+ + + +

+Functions

int main ()
 
+

Detailed Description

+

Problem 1 solution

+

An Efficient code to print all the sum of all numbers that are multiples of 3 & 5 below N.

+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+

Main function

+
13 {
+
14  int t;
+
15  printf("Enter number of times you want to try");
+
16  scanf("%d", &t);
+
17  while (t--)
+
18  {
+
19  unsigned long long N, p = 0, sum = 0;
+
20  printf("Enter the value of N ");
+
21 
+
22  scanf("%lld", &N); // Take input of N from user
+
23  for (int i = 0; i < N; i++)
+
24  {
+
25  if (i % 3 == 0 || i % 5 == 0)
+
26  {
+
27  sum = sum + i;
+
28  }
+
29  }
+
30  printf("%lld\n", sum); // print the sum of all numbers that are
+
31  // multiples of 3 & 5 below N
+
32  }
+
33  return 0;
+
34 }
+
+
+
+
+
+
#define N
Definition: sol1.c:111
+ + + + diff --git a/d6/d1b/sol4_8c.js b/d6/d1b/sol4_8c.js new file mode 100644 index 00000000..d5dcff5f --- /dev/null +++ b/d6/d1b/sol4_8c.js @@ -0,0 +1,4 @@ +var sol4_8c = +[ + [ "main", "d6/d1b/sol4_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/d6/d3d/factorial__large__number_8c.html b/d6/d3d/factorial__large__number_8c.html new file mode 100644 index 00000000..77758f70 --- /dev/null +++ b/d6/d3d/factorial__large__number_8c.html @@ -0,0 +1,405 @@ + + + + + + + +Algorithms_in_C: misc/factorial_large_number.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
factorial_large_number.c File Reference
+
+
+ +

Compute factorial of arbitrarily large numbers by storing individual digits in a byte. +More...

+
#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for factorial_large_number.c:
+
+
+
+
+
+ + + +

+Data Structures

struct  _large_num
 
+ + + +

+Typedefs

typedef struct _large_num large_num
 
+ + + + + + + + + + + +

+Functions

large_numnew_number (void)
 
void delete_number (large_num *num)
 
void add_digit (large_num *num, unsigned int value)
 
void multiply (large_num *num, unsigned long n)
 
int main (int argc, char *argv[])
 
+

Detailed Description

+

Compute factorial of arbitrarily large numbers by storing individual digits in a byte.

+
Author
Krishna Vedala
+

Typedef Documentation

+ +

◆ large_num

+ +
+
+ + + + +
typedef struct _large_num large_num
+
+

dynamically large number

+ +
+
+

Function Documentation

+ +

◆ add_digit()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void add_digit (large_numnum,
unsigned int value 
)
+
+

add a digit to the large number

Parameters
+ + + +
[in,out]num
[in]valuevalue of the digit to insert
+
+
+
49 {
+
50  if (value > 9)
+
51  {
+
52  fprintf(stderr, "digit > 9!!\n");
+
53  delete_number(num);
+
54  exit(EXIT_FAILURE);
+
55  }
+
56 
+
57  num->num_digits++;
+
58  num->digits = (char *)realloc(num->digits, num->num_digits * sizeof(char));
+
59  num->digits[num->num_digits - 1] = value;
+
60 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ delete_number()

+ +
+
+ + + + + + + + +
void delete_number (large_numnum)
+
+

delete all memory allocated for large number

Parameters
+ + +
[in]numpointer to large_num to delete
+
+
+
38 {
+
39  free(num->digits);
+
40  free(num);
+
41 }
+
+
+
+ +

◆ main()

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

main function

+
95 {
+
96  int number, i;
+
97 
+
98  // Asks for the number/position of term in Fibonnacci sequence
+
99  if (argc == 2)
+
100  number = atoi(argv[1]);
+
101  else
+
102  {
+
103  printf("Enter the value of n(n starts from 0 ): ");
+
104  scanf("%d", &number);
+
105  }
+
106 
+
107  large_num *result = new_number();
+
108 
+
109  clock_t start_time = clock();
+
110  for (i = 2; i <= number; i++)
+
111  /* Multiply every number from 2 thru N */
+
112  multiply(result, i);
+
113  double time_taken = (clock() - start_time) * (double)1e3 / CLOCKS_PER_SEC;
+
114  // time_taken = (clock() - start_time) / (double) CLOCKS_PER_SEC;
+
115 
+
116  printf("%d! = ", number);
+
117  for (i = result->num_digits; i > 0; i--)
+
118  putchar(result->digits[i - 1] + '0');
+
119  printf("\nTime taken: %.4g ms\n", time_taken);
+
120 
+
121  delete_number(result);
+
122  return 0;
+
123 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ multiply()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void multiply (large_numnum,
unsigned long n 
)
+
+

multiply large number with another integer and store the result in the same large number

+
67 {
+
68  int i;
+
69  unsigned long carry = 0, temp;
+
70  for (i = 0; i < num->num_digits; i++)
+
71  {
+
72  temp = num->digits[i] * n;
+
73  temp += carry;
+
74  if (temp < 10)
+
75  carry = 0;
+
76  else
+
77  {
+
78  carry = temp / 10;
+
79  temp = temp % 10;
+
80  }
+
81  num->digits[i] = temp;
+
82  }
+
83 
+
84  while (carry != 0)
+
85  {
+
86  add_digit(num, carry % 10);
+
87  carry /= 10;
+
88  }
+
89 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ new_number()

+ +
+
+ + + + + + + + +
large_num* new_number (void )
+
+

create a new large number

Returns
pointer to a large number
+
25 {
+
26  large_num *new_num = (large_num *)malloc(sizeof(large_num));
+
27  new_num->num_digits = 1;
+
28  new_num->digits = (char *)malloc(1 * sizeof(char));
+
29  new_num->digits[0] = 1;
+
30  return new_num;
+
31 }
+
+
+
+
+
+
Definition: factorial_large_number.c:15
+
unsigned int num_digits
Definition: factorial_large_number.c:17
+
large_num * new_number(void)
Definition: factorial_large_number.c:24
+
void multiply(large_num *num, unsigned long n)
Definition: factorial_large_number.c:66
+
void delete_number(large_num *num)
Definition: factorial_large_number.c:37
+
char * digits
Definition: factorial_large_number.c:16
+
void add_digit(large_num *num, unsigned int value)
Definition: factorial_large_number.c:48
+ + + + diff --git a/d6/d3d/factorial__large__number_8c.js b/d6/d3d/factorial__large__number_8c.js new file mode 100644 index 00000000..4acff56d --- /dev/null +++ b/d6/d3d/factorial__large__number_8c.js @@ -0,0 +1,10 @@ +var factorial__large__number_8c = +[ + [ "_large_num", "d3/d5a/struct__large__num.html", "d3/d5a/struct__large__num" ], + [ "large_num", "d6/d3d/factorial__large__number_8c.html#ab54882961780c41a4929a6d390f6522d", null ], + [ "add_digit", "d6/d3d/factorial__large__number_8c.html#af2869d36c22a2b8f93d3166a84e124b3", null ], + [ "delete_number", "d6/d3d/factorial__large__number_8c.html#ab5c854e0df76165c31899e69eceeeaae", null ], + [ "main", "d6/d3d/factorial__large__number_8c.html#a0ddf1224851353fc92bfbff6f499fa97", null ], + [ "multiply", "d6/d3d/factorial__large__number_8c.html#ad398ddbd594ca69a5e6dfc894925341e", null ], + [ "new_number", "d6/d3d/factorial__large__number_8c.html#ad8101f58545bd891ae8b6e11caadd7eb", null ] +]; \ No newline at end of file diff --git a/d6/d3d/factorial__large__number_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map b/d6/d3d/factorial__large__number_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map new file mode 100644 index 00000000..9c5b4213 --- /dev/null +++ b/d6/d3d/factorial__large__number_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/d6/d3d/factorial__large__number_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 b/d6/d3d/factorial__large__number_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 new file mode 100644 index 00000000..0d88363c --- /dev/null +++ b/d6/d3d/factorial__large__number_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 @@ -0,0 +1 @@ +853d891877da82099569c47bb62cdada \ No newline at end of file diff --git a/d6/d3d/factorial__large__number_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg b/d6/d3d/factorial__large__number_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg new file mode 100644 index 00000000..9e60fd1b --- /dev/null +++ b/d6/d3d/factorial__large__number_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg @@ -0,0 +1,88 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +delete_number + + + + + +Node1->Node2 + + + + + +Node3 + + +multiply + + + + + +Node1->Node3 + + + + + +Node5 + + +new_number + + + + + +Node1->Node5 + + + + + +Node4 + + +add_digit + + + + + +Node3->Node4 + + + + + +Node4->Node2 + + + + + diff --git a/d6/d3d/factorial__large__number_8c_ad398ddbd594ca69a5e6dfc894925341e_cgraph.map b/d6/d3d/factorial__large__number_8c_ad398ddbd594ca69a5e6dfc894925341e_cgraph.map new file mode 100644 index 00000000..6f08e3c3 --- /dev/null +++ b/d6/d3d/factorial__large__number_8c_ad398ddbd594ca69a5e6dfc894925341e_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d6/d3d/factorial__large__number_8c_ad398ddbd594ca69a5e6dfc894925341e_cgraph.md5 b/d6/d3d/factorial__large__number_8c_ad398ddbd594ca69a5e6dfc894925341e_cgraph.md5 new file mode 100644 index 00000000..a128a891 --- /dev/null +++ b/d6/d3d/factorial__large__number_8c_ad398ddbd594ca69a5e6dfc894925341e_cgraph.md5 @@ -0,0 +1 @@ +9f8caa9184a0536db94f37bb258aa33e \ No newline at end of file diff --git a/d6/d3d/factorial__large__number_8c_ad398ddbd594ca69a5e6dfc894925341e_cgraph.svg b/d6/d3d/factorial__large__number_8c_ad398ddbd594ca69a5e6dfc894925341e_cgraph.svg new file mode 100644 index 00000000..4f39a0ed --- /dev/null +++ b/d6/d3d/factorial__large__number_8c_ad398ddbd594ca69a5e6dfc894925341e_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +multiply + + + +Node1 + + +multiply + + + + + +Node2 + + +add_digit + + + + + +Node1->Node2 + + + + + +Node3 + + +delete_number + + + + + +Node2->Node3 + + + + + diff --git a/d6/d3d/factorial__large__number_8c_af2869d36c22a2b8f93d3166a84e124b3_cgraph.map b/d6/d3d/factorial__large__number_8c_af2869d36c22a2b8f93d3166a84e124b3_cgraph.map new file mode 100644 index 00000000..833d624e --- /dev/null +++ b/d6/d3d/factorial__large__number_8c_af2869d36c22a2b8f93d3166a84e124b3_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d6/d3d/factorial__large__number_8c_af2869d36c22a2b8f93d3166a84e124b3_cgraph.md5 b/d6/d3d/factorial__large__number_8c_af2869d36c22a2b8f93d3166a84e124b3_cgraph.md5 new file mode 100644 index 00000000..7a9a4490 --- /dev/null +++ b/d6/d3d/factorial__large__number_8c_af2869d36c22a2b8f93d3166a84e124b3_cgraph.md5 @@ -0,0 +1 @@ +7e462e40153b022d1592ae09fcf03dde \ No newline at end of file diff --git a/d6/d3d/factorial__large__number_8c_af2869d36c22a2b8f93d3166a84e124b3_cgraph.svg b/d6/d3d/factorial__large__number_8c_af2869d36c22a2b8f93d3166a84e124b3_cgraph.svg new file mode 100644 index 00000000..46c437a3 --- /dev/null +++ b/d6/d3d/factorial__large__number_8c_af2869d36c22a2b8f93d3166a84e124b3_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +add_digit + + + +Node1 + + +add_digit + + + + + +Node2 + + +delete_number + + + + + +Node1->Node2 + + + + + diff --git a/d6/d42/problem__22_2sol1_8c__incl.map b/d6/d42/problem__22_2sol1_8c__incl.map new file mode 100644 index 00000000..f4c2e09c --- /dev/null +++ b/d6/d42/problem__22_2sol1_8c__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/d6/d42/problem__22_2sol1_8c__incl.md5 b/d6/d42/problem__22_2sol1_8c__incl.md5 new file mode 100644 index 00000000..95b2b91b --- /dev/null +++ b/d6/d42/problem__22_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +4d9117a61c2819d47dcbdf4328d436a4 \ No newline at end of file diff --git a/d6/d42/problem__22_2sol1_8c__incl.svg b/d6/d42/problem__22_2sol1_8c__incl.svg new file mode 100644 index 00000000..9918d7dc --- /dev/null +++ b/d6/d42/problem__22_2sol1_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + +project_euler/problem_22/sol1.c + + + +Node1 + + +project_euler/problem +_22/sol1.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + +Node4 + + +string.h + + + + + +Node1->Node4 + + + + + +Node5 + + +time.h + + + + + +Node1->Node5 + + + + + diff --git a/d6/d42/structdynamic__array.html b/d6/d42/structdynamic__array.html new file mode 100644 index 00000000..57e267f0 --- /dev/null +++ b/d6/d42/structdynamic__array.html @@ -0,0 +1,127 @@ + + + + + + + +Algorithms_in_C: dynamic_array Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
dynamic_array Struct Reference
+
+
+ + + + + + + + +

+Data Fields

+void ** items
 
+unsigned size
 
+unsigned capacity
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/d6/d42/structdynamic__array.js b/d6/d42/structdynamic__array.js new file mode 100644 index 00000000..be2ea990 --- /dev/null +++ b/d6/d42/structdynamic__array.js @@ -0,0 +1,6 @@ +var structdynamic__array = +[ + [ "capacity", "d6/d42/structdynamic__array.html#a9ddb0f64ade5d5e74b7fd091158958e4", null ], + [ "items", "d6/d42/structdynamic__array.html#a7e3fbd203b3b86401c17dede7a33f781", null ], + [ "size", "d6/d42/structdynamic__array.html#a79c587474e35f99510ca3018bf700007", null ] +]; \ No newline at end of file diff --git a/d6/d48/isogram_8h_source.html b/d6/d48/isogram_8h_source.html new file mode 100644 index 00000000..34ccf512 --- /dev/null +++ b/d6/d48/isogram_8h_source.html @@ -0,0 +1,117 @@ + + + + + + + +Algorithms_in_C: exercism/isogram/isogram.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
isogram.h
+
+
+
1 #ifndef ISOGRAM_H
+
2 #define ISOGRAM_H
+
3 
+
4 #include <stdbool.h>
+
5 
+
6 bool is_isogram(const char phrase[]);
+
7 
+
8 #endif
+
+
+ + + + diff --git a/d6/d6d/struct_graph__coll__graph.map b/d6/d6d/struct_graph__coll__graph.map new file mode 100644 index 00000000..ce48a165 --- /dev/null +++ b/d6/d6d/struct_graph__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d6/d6d/struct_graph__coll__graph.md5 b/d6/d6d/struct_graph__coll__graph.md5 new file mode 100644 index 00000000..f565d2fb --- /dev/null +++ b/d6/d6d/struct_graph__coll__graph.md5 @@ -0,0 +1 @@ +1f003acafb9a1b48b6184dda74204064 \ No newline at end of file diff --git a/d6/d6d/struct_graph__coll__graph.svg b/d6/d6d/struct_graph__coll__graph.svg new file mode 100644 index 00000000..ffa20d1e --- /dev/null +++ b/d6/d6d/struct_graph__coll__graph.svg @@ -0,0 +1,69 @@ + + + + + + +Graph + + + +Node1 + + +Graph + + + + + +Node2 + + +node + + + + + +Node2->Node1 + + + adjLists + + + +Node2->Node2 + + + leftNode +next +right +left +par +link +pre +rightNode + + + +Node3 + + +Edge + + + + + +Node3->Node1 + + + edge +edges + + + diff --git a/d6/d88/problem__16_2sol1_8c.html b/d6/d88/problem__16_2sol1_8c.html new file mode 100644 index 00000000..8745bfe8 --- /dev/null +++ b/d6/d88/problem__16_2sol1_8c.html @@ -0,0 +1,215 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_16/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 16 solution +More...

+
#include <math.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + +

+Functions

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

Detailed Description

+

Problem 16 solution

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ main()

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

Main function

+
13 {
+
14  const double tmp = log(10) / log(2); /* required to get number of digits */
+
15  unsigned long MAX_NUM_DIGITS;
+
16  uint8_t *digits =
+
17  NULL; /* array to store individual digits. index 0 = units place */
+
18  int N = 1000, sum = 0;
+
19 
+
20  if (argc == 2)
+
21  N = atoi(argv[1]);
+
22 
+
23  MAX_NUM_DIGITS = (N + tmp) / tmp;
+
24 
+
25  digits = calloc(MAX_NUM_DIGITS, sizeof(uint8_t));
+
26  digits[0] = 1;
+
27 
+
28  if (!digits)
+
29  {
+
30  perror("Unable to allocate memory!");
+
31  return -1;
+
32  }
+
33 
+
34  for (int i = 0; i < N; i++)
+
35  {
+
36  int carry = 0;
+
37  for (int j = 0; j < MAX_NUM_DIGITS; j++)
+
38  {
+
39  digits[j] = (digits[j] << 1) + carry; /* digit * 2 + carry */
+
40  // printf("\t value: %d\t", digits[j]);
+
41  if (digits[j] > 9)
+
42  {
+
43  carry = 1;
+
44  digits[j] -= 10;
+
45  }
+
46  else
+
47  carry = 0;
+
48  // printf("carry: %d\t value: %d\n", carry, digits[j]);
+
49 
+
50  /* accumulate sum for last multiplication */
+
51  if (i == N - 1)
+
52  sum += digits[j];
+
53  }
+
54  }
+
55 
+
56  printf("2^%d = ", N);
+
57  for (int i = MAX_NUM_DIGITS - 1; i >= 0; i--)
+
58  putchar(digits[i] + 0x30);
+
59  printf("\n\t Sum: %d\t Num. digits: %lu\n", sum, MAX_NUM_DIGITS);
+
60 
+
61  free(digits);
+
62  return 0;
+
63 }
+
+
+
+
+
+
#define N
Definition: sol1.c:111
+ + + + diff --git a/d6/d88/problem__16_2sol1_8c.js b/d6/d88/problem__16_2sol1_8c.js new file mode 100644 index 00000000..c8e3edab --- /dev/null +++ b/d6/d88/problem__16_2sol1_8c.js @@ -0,0 +1,4 @@ +var problem__16_2sol1_8c = +[ + [ "main", "d6/d88/problem__16_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ] +]; \ No newline at end of file diff --git a/d6/de3/sol3_8c.html b/d6/de3/sol3_8c.html new file mode 100644 index 00000000..46e2c7ed --- /dev/null +++ b/d6/de3/sol3_8c.html @@ -0,0 +1,190 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_1/sol3.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol3.c File Reference
+
+
+ +

Problem 1 solution. This solution is based on the pattern that the successive numbers in the series follow: 0+3,+2,+1,+3,+1,+2,+3. +More...

+
#include <stdio.h>
+
+Include dependency graph for sol3.c:
+
+
+
+
+
+ + + +

+Functions

int main ()
 
+

Detailed Description

+

Problem 1 solution. This solution is based on the pattern that the successive numbers in the series follow: 0+3,+2,+1,+3,+1,+2,+3.

+

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3,5,6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below N.

+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+

Main function

+
15 {
+
16  int n = 0;
+
17  int sum = 0;
+
18  int num = 0;
+
19  scanf("%d", &n);
+
20 
+
21  while (1)
+
22  {
+
23  num += 3;
+
24  if (num >= n)
+
25  break;
+
26  sum += num;
+
27  num += 2;
+
28  if (num >= n)
+
29  break;
+
30  sum += num;
+
31  num += 1;
+
32  if (num >= n)
+
33  break;
+
34  sum += num;
+
35  num += 3;
+
36  if (num >= n)
+
37  break;
+
38  sum += num;
+
39  num += 1;
+
40  if (num >= n)
+
41  break;
+
42  sum += num;
+
43  num += 2;
+
44  if (num >= n)
+
45  break;
+
46  sum += num;
+
47  num += 3;
+
48  if (num >= n)
+
49  break;
+
50  sum += num;
+
51  }
+
52 
+
53  printf("%d\n", sum);
+
54  return 0;
+
55 }
+
+
+
+
+
+ + + + diff --git a/d6/de3/sol3_8c.js b/d6/de3/sol3_8c.js new file mode 100644 index 00000000..d9c805b4 --- /dev/null +++ b/d6/de3/sol3_8c.js @@ -0,0 +1,4 @@ +var sol3_8c = +[ + [ "main", "d6/de3/sol3_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/d6/ded/shell__sort2_8c.html b/d6/ded/shell__sort2_8c.html new file mode 100644 index 00000000..b92f4ee1 --- /dev/null +++ b/d6/ded/shell__sort2_8c.html @@ -0,0 +1,342 @@ + + + + + + + +Algorithms_in_C: sorting/shell_sort2.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
shell_sort2.c File Reference
+
+
+ +

Shell sort algorithm implementation. +More...

+
#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for shell_sort2.c:
+
+
+
+
+
+ + + +

+Macros

+#define ARRAY_LEN(x)   (sizeof(x) / sizeof((x)[0]))
 
+ + + + + + + + + +

+Functions

void show_data (int *arr, long len)
 
void swap (int *a, int *b)
 
void shell_sort (int *array, long LEN)
 
int main (int argc, char *argv[])
 
+

Detailed Description

+

Shell sort algorithm implementation.

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ main()

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

Main function

+
60 {
+
61  int i;
+
62  long size = 500;
+
63  if (argc == 2)
+
64  size = atol(argv[1]);
+
65  else if (argc > 2)
+
66  fprintf(stderr, "Usage: ./shell_sort [number of values]\n");
+
67 
+
68  int *array = (int *)malloc(size * sizeof(int));
+
69  int range = 500; // range of array values
+
70  double time_spent;
+
71 
+
72  srand(time(NULL)); // initialize random number generator
+
73  for (i = 0; i < size; i++)
+
74  // fill array with random integers
+
75  array[i] = rand() % range + 1;
+
76 
+
77  show_data(array, size); // show array before sorting
+
78  clock_t t1 = clock(); // start timer
+
79  shell_sort(array, size); // sort the array
+
80  clock_t t2 = clock(); // end timer
+
81 
+
82  printf("Data Sorted\n");
+
83  show_data(array, size); // display array after sorting
+
84 
+
85  printf("Time spent sorting: %.4g s\n", (t2 - t1) / CLOCKS_PER_SEC);
+
86 
+
87  return 0;
+
88 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ shell_sort()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void shell_sort (int * array,
long LEN 
)
+
+

Optimized algorithm - takes half the time as other

+
35 {
+
36  const int gaps[] = {701, 301, 132, 57, 23, 10, 4, 1};
+
37  const int gap_len = 8;
+
38  long i, j, g;
+
39 
+
40  for (g = 0; g < gap_len; g++)
+
41  { // for each gap
+
42  int gap = gaps[g];
+
43  for (i = gap; i < LEN; i++)
+
44  { // from gap position to the end
+
45  int tmp = array[i];
+
46 
+
47  for (j = i; j >= gap && (array[j - gap] - tmp) > 0; j -= gap)
+
48  array[j] = array[j - gap];
+
49  array[j] = tmp;
+
50  }
+
51  }
+
52 #ifdef DEBUG
+
53  for (i = 0; i < LEN; i++)
+
54  printf("%s\t", data[i]);
+
55 #endif
+
56 }
+
+
+
+ +

◆ show_data()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void show_data (int * arr,
long len 
)
+
+

Helper function to print array values

+
15 {
+
16  for (long i = 0; i < len; i++)
+
17  printf("%3d ", arr[i]);
+
18  printf("\n");
+
19 }
+
+
+
+ +

◆ swap()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void swap (int * a,
int * b 
)
+
+inline
+
+

Function to swap values of two integers

+
23 {
+
24  int tmp;
+
25 
+
26  tmp = *a;
+
27  *a = *b;
+
28  *b = tmp;
+
29 }
+
+
+
+
+
+
Definition: prime_factoriziation.c:25
+
void show_data(int *arr, long len)
Definition: shell_sort2.c:14
+
void shell_sort(int *array, long LEN)
Definition: shell_sort2.c:34
+ + + + diff --git a/d6/ded/shell__sort2_8c.js b/d6/ded/shell__sort2_8c.js new file mode 100644 index 00000000..bf5d5c5b --- /dev/null +++ b/d6/ded/shell__sort2_8c.js @@ -0,0 +1,8 @@ +var shell__sort2_8c = +[ + [ "ARRAY_LEN", "d6/ded/shell__sort2_8c.html#a841615a63f4a3aa18337897953874909", null ], + [ "main", "d6/ded/shell__sort2_8c.html#a0ddf1224851353fc92bfbff6f499fa97", null ], + [ "shell_sort", "d6/ded/shell__sort2_8c.html#a5bc16eaf3ffe6a6ab66780dd445904c0", null ], + [ "show_data", "d6/ded/shell__sort2_8c.html#aeccaf61ff47279384d1dba8d869d5c2f", null ], + [ "swap", "d6/ded/shell__sort2_8c.html#a4b9708d87be7a409eff20e5e7e8b43c8", null ] +]; \ No newline at end of file diff --git a/d6/ded/shell__sort2_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map b/d6/ded/shell__sort2_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map new file mode 100644 index 00000000..c717d4b5 --- /dev/null +++ b/d6/ded/shell__sort2_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d6/ded/shell__sort2_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 b/d6/ded/shell__sort2_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 new file mode 100644 index 00000000..04ba8702 --- /dev/null +++ b/d6/ded/shell__sort2_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 @@ -0,0 +1 @@ +64e44dd819b0ee0523081b258ae3b83d \ No newline at end of file diff --git a/d6/ded/shell__sort2_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg b/d6/ded/shell__sort2_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg new file mode 100644 index 00000000..bd7714b6 --- /dev/null +++ b/d6/ded/shell__sort2_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +shell_sort + + + + + +Node1->Node2 + + + + + +Node3 + + +show_data + + + + + +Node1->Node3 + + + + + diff --git a/d6/df3/graph_8h_source.html b/d6/df3/graph_8h_source.html new file mode 100644 index 00000000..7e5f6835 --- /dev/null +++ b/d6/df3/graph_8h_source.html @@ -0,0 +1,163 @@ + + + + + + + +Algorithms_in_C: data_structures/graphs/graph.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
graph.h
+
+
+
1 // Graph ADT interface ... COMP2521
+
2 #include <stdbool.h>
+
3 
+
4 typedef struct GraphRep *Graph;
+
5 
+
6 // vertices are ints
+
7 typedef int Vertex;
+
8 
+
9 // edges are pairs of vertices (end-points)
+
10 typedef struct Edge
+
11 {
+
12  Vertex v;
+
13  Vertex w;
+
14 } Edge;
+
15 
+
16 Graph newGraph(int);
+
17 void insertEdge(Graph, Edge);
+
18 void removeEdge(Graph, Edge);
+
19 bool adjacent(Graph, Vertex, Vertex);
+
20 void showGraph(Graph);
+
21 void freeGraph(Graph);
+
22 
+
23 // By
+
24 // .----------------. .----------------. .----------------.
+
25 // .-----------------. .----------------. .----------------.
+
26 // | .--------------. || .--------------. || .--------------. ||
+
27 // .--------------. | | .--------------. || .--------------. | | | _________ |
+
28 // || | _____ _____ | || | __ | || | ____ _____ | | | | ____ ____
+
29 // | || | ____ | | | | | _ _ | | || ||_ _||_ _|| || | / \
+
30 // | || ||_ \|_ _| | | | | |_ || _| | || | .' `. | | | | |_/ | |
+
31 // \_| | || | | | | | | || | / /\ \ | || | | \ | | | | | | |
+
32 // |__| | | || | / .--. \ | | | | | | | || | | ' ' | | || |
+
33 // / ____ \ | || | | |\ \| | | | | | | __ | | || | | | | | | |
+
34 // | | _| |_ | || | \ `--' / | || | _/ / \ \_ | || | _| |_\ |_
+
35 // | | | | _| | | |_ | || | \ `--' / | | | | |_____| | || | `.__.'
+
36 // | || ||____| |____|| || ||_____|\____| | | | | |____||____| | || | `.____.'
+
37 // | | | | | || | | || | | || | | | | |
+
38 // | || | | | | '--------------' || '--------------' ||
+
39 // '--------------' || '--------------' | | '--------------' || '--------------'
+
40 // |
+
41 // '----------------' '----------------' '----------------'
+
42 // '----------------' '----------------' '----------------'
+
43 
+
44 // Email : z5261243@unsw.edu.au
+
45 // hhoanhtuann@gmail.com
+
+
+
Definition: binary_search_tree.c:14
+
Definition: bfs.c:6
+
Definition: graph.c:9
+
Definition: hash_set.h:7
+
int main(int argc, char **argv)
Definition: c_atoi_str_to_integer.c:70
+
void display(double **A, int N)
Definition: lu_decompose.c:68
+
Definition: dynamic_array.h:7
+
Definition: bellman_ford.c:8
+
Definition: bellman_ford.c:14
+ + + + diff --git a/d7/d0a/fibonacci__fast_8c__incl.map b/d7/d0a/fibonacci__fast_8c__incl.map new file mode 100644 index 00000000..9a848064 --- /dev/null +++ b/d7/d0a/fibonacci__fast_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/d7/d0a/fibonacci__fast_8c__incl.md5 b/d7/d0a/fibonacci__fast_8c__incl.md5 new file mode 100644 index 00000000..db281781 --- /dev/null +++ b/d7/d0a/fibonacci__fast_8c__incl.md5 @@ -0,0 +1 @@ +1953d088540b9abb34b9733aeb72d49c \ No newline at end of file diff --git a/d7/d0a/fibonacci__fast_8c__incl.svg b/d7/d0a/fibonacci__fast_8c__incl.svg new file mode 100644 index 00000000..e6f703b4 --- /dev/null +++ b/d7/d0a/fibonacci__fast_8c__incl.svg @@ -0,0 +1,67 @@ + + + + + + +misc/fibonacci_fast.c + + + +Node1 + + +misc/fibonacci_fast.c + + + + + +Node2 + + +locale.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + diff --git a/d7/d1f/problem__12_2sol1_8c.html b/d7/d1f/problem__12_2sol1_8c.html new file mode 100644 index 00000000..57fe8bac --- /dev/null +++ b/d7/d1f/problem__12_2sol1_8c.html @@ -0,0 +1,224 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_12/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 12 solution +More...

+
#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + + + +

+Functions

long count_divisors (long long n)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Problem 12 solution

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ count_divisors()

+ +
+
+ + + + + + + + +
long count_divisors (long long n)
+
+

Get number of divisors of a given number

+

If \(x = a \times b\), then both \(a\) and \(b\) are divisors of \(x\). Since multiplication is commutative, we only need to search till a maximum of \(a=b = a^2\) i.e., till \(\sqrt{x}\). At every integer till then, there are eaxctly 2 divisors and at \(a=b\), there is only one divisor.

+
20 {
+
21  long num_divisors = 0;
+
22 
+
23  for (long long i = 1; i < sqrtl(n) + 1; i++)
+
24  if (n % i == 0)
+
25  num_divisors += 2;
+
26  else if (i * i == n)
+
27  num_divisors += 1;
+
28 
+
29  return num_divisors;
+
30 }
+
+
+
+ +

◆ main()

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

Main function

+
34 {
+
35  int MAX_DIVISORS = 500;
+
36  long i = 1, num_divisors;
+
37  long long triangle_number = 1;
+
38 
+
39  if (argc == 2)
+
40  MAX_DIVISORS = atoi(argv[1]);
+
41 
+
42  while (1)
+
43  {
+
44  i++;
+
45  triangle_number += i;
+
46  num_divisors = count_divisors(triangle_number);
+
47  if (num_divisors > MAX_DIVISORS)
+
48  break;
+
49  }
+
50 
+
51  printf("First Triangle number with more than %d divisors: %lld\n",
+
52  MAX_DIVISORS, triangle_number);
+
53 
+
54  return 0;
+
55 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
long count_divisors(long long n)
Definition: sol1.c:19
+ + + + diff --git a/d7/d1f/problem__12_2sol1_8c.js b/d7/d1f/problem__12_2sol1_8c.js new file mode 100644 index 00000000..d122c8b9 --- /dev/null +++ b/d7/d1f/problem__12_2sol1_8c.js @@ -0,0 +1,5 @@ +var problem__12_2sol1_8c = +[ + [ "count_divisors", "d7/d1f/problem__12_2sol1_8c.html#aa6ce6271f6156e219f9b290717f5a222", null ], + [ "main", "d7/d1f/problem__12_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ] +]; \ No newline at end of file diff --git a/d7/d1f/problem__12_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/d7/d1f/problem__12_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..a361686c --- /dev/null +++ b/d7/d1f/problem__12_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d7/d1f/problem__12_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/d7/d1f/problem__12_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..eb3b9897 --- /dev/null +++ b/d7/d1f/problem__12_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +81fa50dd153af7c1ab48322e1d30320a \ No newline at end of file diff --git a/d7/d1f/problem__12_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/d7/d1f/problem__12_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..5688b692 --- /dev/null +++ b/d7/d1f/problem__12_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +count_divisors + + + + + +Node1->Node2 + + + + + diff --git a/d7/d50/qr__eigen__values_8c.html b/d7/d50/qr__eigen__values_8c.html new file mode 100644 index 00000000..911f449c --- /dev/null +++ b/d7/d50/qr__eigen__values_8c.html @@ -0,0 +1,726 @@ + + + + + + + +Algorithms_in_C: numerical_methods/qr_eigen_values.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
qr_eigen_values.c File Reference
+
+
+ +

Compute real eigen values and eigen vectors of a symmetric matrix using QR decomposition method. +More...

+
#include "qr_decompose.h"
+#include <assert.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for qr_eigen_values.c:
+
+
+
+
+
+ + + + + +

+Macros

#define LIMS   9
 
#define EPSILON   1e-10
 
+ + + + + + + + + + + + + +

+Functions

void create_matrix (double **A, int N)
 
double ** mat_mul (double **A, double **B, double **OUT, int R1, int C1, int R2, int C2)
 
double eigen_values (double **A, double *eigen_vals, int mat_size, char debug_print)
 
void test1 ()
 
void test2 ()
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Compute real eigen values and eigen vectors of a symmetric matrix using QR decomposition method.

+
Author
Krishna Vedala
+

Macro Definition Documentation

+ +

◆ EPSILON

+ +
+
+ + + + +
#define EPSILON   1e-10
+
+

accuracy tolerance limit

+ +
+
+ +

◆ LIMS

+ +
+
+ + + + +
#define LIMS   9
+
+

limit of range of matrix values

+ +
+
+

Function Documentation

+ +

◆ create_matrix()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void create_matrix (double ** A,
int N 
)
+
+

create a square matrix of given size with random elements

Parameters
+ + + +
[out]Amatrix to create (must be pre-allocated in memory)
[in]Nmatrix size
+
+
+
27 {
+
28  int i, j, tmp, lim2 = LIMS >> 1;
+
29 
+
30 #ifdef _OPENMP
+
31 #pragma omp for
+
32 #endif
+
33  for (i = 0; i < N; i++)
+
34  {
+
35  A[i][i] = (rand() % LIMS) - lim2;
+
36  for (j = i + 1; j < N; j++)
+
37  {
+
38  tmp = (rand() % LIMS) - lim2;
+
39  A[i][j] = tmp;
+
40  A[j][i] = tmp;
+
41  }
+
42  }
+
43 }
+
+
+
+ +

◆ eigen_values()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
double eigen_values (double ** A,
double * eigen_vals,
int mat_size,
char debug_print 
)
+
+

Compute eigen values using iterative shifted QR decomposition algorithm as follows:

    +
  1. Use last diagonal element of A as eigen value approximation \(c\)
  2. +
  3. Shift diagonals of matrix \(A' = A - cI\)
  4. +
  5. Decompose matrix \(A'=QR\)
  6. +
  7. Compute next approximation \(A'_1 = RQ \)
  8. +
  9. Shift diagonals back \(A_1 = A'_1 + cI\)
  10. +
  11. Termination condition check: last element below diagonal is almost 0
      +
    1. If not 0, go back to step 1 with the new approximation \(A_1\)
    2. +
    3. If 0, continue to step 7
    4. +
    +
  12. +
  13. Save last known \(c\) as the eigen value.
  14. +
  15. Are all eigen values found?
      +
    1. If not, remove last row and column of \(A_1\) and go back to step 1.
    2. +
    3. If yes, stop.
    4. +
    +
  16. +
+
Note
The matrix \(A\) gets modified
+
Parameters
+ + + + + +
[in,out]Amatrix to compute eigen values for
[out]eig_valsresultant vector containing computed eigen values
[in]mat_sizematrix size
[in]debug_print1 to print intermediate Q & R matrices, 0 for not to
+
+
+
Returns
time for computation in seconds
+
106 {
+
107  double **R = (double **)malloc(sizeof(double *) * mat_size);
+
108  double **Q = (double **)malloc(sizeof(double *) * mat_size);
+
109 
+
110  if (!eigen_vals)
+
111  {
+
112  perror("Output eigen value vector cannot be NULL!");
+
113  return -1;
+
114  }
+
115  else if (!Q || !R)
+
116  {
+
117  perror("Unable to allocate memory for Q & R!");
+
118  return -1;
+
119  }
+
120 
+
121  /* allocate dynamic memory for matrices */
+
122  for (int i = 0; i < mat_size; i++)
+
123  {
+
124  R[i] = (double *)malloc(sizeof(double) * mat_size);
+
125  Q[i] = (double *)malloc(sizeof(double) * mat_size);
+
126  if (!Q[i] || !R[i])
+
127  {
+
128  perror("Unable to allocate memory for Q & R.");
+
129  return -1;
+
130  }
+
131  }
+
132 
+
133  if (debug_print)
+
134  print_matrix(A, mat_size, mat_size);
+
135 
+
136  int rows = mat_size, columns = mat_size;
+
137  int counter = 0, num_eigs = rows - 1;
+
138  double last_eig = 0;
+
139 
+
140  clock_t t1 = clock();
+
141  while (num_eigs > 0) /* continue till all eigen values are found */
+
142  {
+
143  /* iterate with QR decomposition */
+
144  while (fabs(A[num_eigs][num_eigs - 1]) > EPSILON)
+
145  {
+
146  last_eig = A[num_eigs][num_eigs];
+
147  for (int i = 0; i < rows; i++)
+
148  A[i][i] -= last_eig; /* A - cI */
+
149  qr_decompose(A, Q, R, rows, columns);
+
150 
+
151  if (debug_print)
+
152  {
+
153  print_matrix(A, rows, columns);
+
154  print_matrix(Q, rows, columns);
+
155  print_matrix(R, columns, columns);
+
156  printf("-------------------- %d ---------------------\n",
+
157  ++counter);
+
158  }
+
159 
+
160  mat_mul(R, Q, A, columns, columns, rows, columns);
+
161  for (int i = 0; i < rows; i++)
+
162  A[i][i] += last_eig; /* A + cI */
+
163  }
+
164 
+
165  /* store the converged eigen value */
+
166  eigen_vals[num_eigs] = last_eig;
+
167 
+
168  if (debug_print)
+
169  {
+
170  printf("========================\n");
+
171  printf("Eigen value: % g,\n", last_eig);
+
172  printf("========================\n");
+
173  }
+
174 
+
175  num_eigs--;
+
176  rows--;
+
177  columns--;
+
178  }
+
179  eigen_vals[0] = A[0][0];
+
180  double dtime = (double)(clock() - t1) / CLOCKS_PER_SEC;
+
181 
+
182  if (debug_print)
+
183  {
+
184  print_matrix(R, mat_size, mat_size);
+
185  print_matrix(Q, mat_size, mat_size);
+
186  }
+
187 
+
188  /* cleanup dynamic memory */
+
189  for (int i = 0; i < mat_size; i++)
+
190  {
+
191  free(R[i]);
+
192  free(Q[i]);
+
193  }
+
194  free(R);
+
195  free(Q);
+
196 
+
197  return dtime;
+
198 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ main()

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

main function

+
302 {
+
303  srand(time(NULL));
+
304 
+
305  int mat_size = 5;
+
306  if (argc == 2)
+
307  mat_size = atoi(argv[1]);
+
308  else
+
309  { // if invalid input argument is given run tests
+
310  test1();
+
311  test2();
+
312  printf("Usage: ./qr_eigen_values [mat_size]\n");
+
313  return 0;
+
314  }
+
315 
+
316  if (mat_size < 2)
+
317  {
+
318  fprintf(stderr, "Matrix size should be > 2\n");
+
319  return -1;
+
320  }
+
321 
+
322  int i, rows = mat_size, columns = mat_size;
+
323 
+
324  double **A = (double **)malloc(sizeof(double *) * mat_size);
+
325  /* number of eigen values = matrix size */
+
326  double *eigen_vals = (double *)malloc(sizeof(double) * mat_size);
+
327  if (!eigen_vals)
+
328  {
+
329  perror("Unable to allocate memory for eigen values!");
+
330  return -1;
+
331  }
+
332  for (i = 0; i < mat_size; i++)
+
333  {
+
334  A[i] = (double *)malloc(sizeof(double) * mat_size);
+
335  }
+
336 
+
337  /* create a random matrix */
+
338  create_matrix(A, mat_size);
+
339 
+
340  print_matrix(A, mat_size, mat_size);
+
341 
+
342  double dtime = eigen_values(A, eigen_vals, mat_size, 0);
+
343  printf("Eigen vals: ");
+
344  for (i = 0; i < mat_size; i++)
+
345  printf("% 9.4g\t", eigen_vals[i]);
+
346  printf("\nTime taken to compute: % .4g sec\n", dtime);
+
347 
+
348  for (int i = 0; i < mat_size; i++)
+
349  free(A[i]);
+
350  free(A);
+
351  free(eigen_vals);
+
352  return 0;
+
353 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ mat_mul()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
double** mat_mul (double ** A,
double ** B,
double ** OUT,
int R1,
int C1,
int R2,
int C2 
)
+
+

Perform multiplication of two matrices.

    +
  • R2 must be equal to C1
  • +
  • Resultant matrix size should be R1xC2
    Parameters
    + + + + + + + + +
    [in]Afirst matrix to multiply
    [in]Bsecond matrix to multiply
    [out]OUToutput matrix (must be pre-allocated)
    [in]R1number of rows of first matrix
    [in]C1number of columns of first matrix
    [in]R2number of rows of second matrix
    [in]C2number of columns of second matrix
    +
    +
    +
    Returns
    pointer to resultant matrix
    +
  • +
+
60 {
+
61  if (C1 != R2)
+
62  {
+
63  perror("Matrix dimensions mismatch!");
+
64  return OUT;
+
65  }
+
66 
+
67  int i;
+
68 #ifdef _OPENMP
+
69 #pragma omp for
+
70 #endif
+
71  for (i = 0; i < R1; i++)
+
72  for (int j = 0; j < C2; j++)
+
73  {
+
74  OUT[i][j] = 0.f;
+
75  for (int k = 0; k < C1; k++)
+
76  OUT[i][j] += A[i][k] * B[k][j];
+
77  }
+
78  return OUT;
+
79 }
+
+
+
+ +

◆ test1()

+ +
+
+ + + + + + + +
void test1 ()
+
+

test function to compute eigen values of a 2x2 matrix

+\[\begin{bmatrix} 5 & 7\\ 7 & 11 \end{bmatrix}\] +

+

which are approximately, {15.56158, 0.384227}

+
209 {
+
210  int mat_size = 2;
+
211  double X[][2] = {{5, 7}, {7, 11}};
+
212  double y[] = {15.56158, 0.384227}; // corresponding y-values
+
213  double eig_vals[2];
+
214 
+
215  // The following steps are to convert a "double[][]" to "double **"
+
216  double **A = (double **)malloc(mat_size * sizeof(double *));
+
217  for (int i = 0; i < mat_size; i++)
+
218  A[i] = X[i];
+
219 
+
220  printf("------- Test 1 -------\n");
+
221 
+
222  double dtime = eigen_values(A, eig_vals, mat_size, 0);
+
223 
+
224  for (int i = 0; i < mat_size; i++)
+
225  {
+
226  printf("%d/5 Checking for %.3g --> ", i + 1, y[i]);
+
227  char result = 0;
+
228  for (int j = 0; j < mat_size && !result; j++)
+
229  {
+
230  if (fabs(y[i] - eig_vals[j]) < 0.1)
+
231  {
+
232  result = 1;
+
233  printf("(%.3g) ", eig_vals[j]);
+
234  }
+
235  }
+
236 
+
237  // ensure that i^th expected eigen value was computed
+
238  assert(result != 0);
+
239  printf("found\n");
+
240  }
+
241  printf("Test 1 Passed in %.3g sec\n\n", dtime);
+
242  free(A);
+
243 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ test2()

+ +
+
+ + + + + + + +
void test2 ()
+
+

test function to compute eigen values of a 2x2 matrix

+\[\begin{bmatrix} -4& 4& 2& 0& -3\\ 4& -4& 4& -3& -1\\ 2& 4& 4& 3& -3\\ 0& -3& 3& -1&-1\\ -3& -1& -3& -3& 0 \end{bmatrix}\] +

+

which are approximately, {9.27648, -9.26948, 2.0181, -1.03516, -5.98994}

+
257 {
+
258  int mat_size = 5;
+
259  double X[][5] = {{-4, 4, 2, 0, -3},
+
260  {4, -4, 4, -3, -1},
+
261  {2, 4, 4, 3, -3},
+
262  {0, -3, 3, -1, -3},
+
263  {-3, -1, -3, -3, 0}};
+
264  double y[] = {9.27648, -9.26948, 2.0181, -1.03516,
+
265  -5.98994}; // corresponding y-values
+
266  double eig_vals[5];
+
267 
+
268  // The following steps are to convert a "double[][]" to "double **"
+
269  double **A = (double **)malloc(mat_size * sizeof(double *));
+
270  for (int i = 0; i < mat_size; i++)
+
271  A[i] = X[i];
+
272 
+
273  printf("------- Test 2 -------\n");
+
274 
+
275  double dtime = eigen_values(A, eig_vals, mat_size, 0);
+
276 
+
277  for (int i = 0; i < mat_size; i++)
+
278  {
+
279  printf("%d/5 Checking for %.3g --> ", i + 1, y[i]);
+
280  char result = 0;
+
281  for (int j = 0; j < mat_size && !result; j++)
+
282  {
+
283  if (fabs(y[i] - eig_vals[j]) < 0.1)
+
284  {
+
285  result = 1;
+
286  printf("(%.3g) ", eig_vals[j]);
+
287  }
+
288  }
+
289 
+
290  // ensure that i^th expected eigen value was computed
+
291  assert(result != 0);
+
292  printf("found\n");
+
293  }
+
294  printf("Test 2 Passed in %.3g sec\n\n", dtime);
+
295  free(A);
+
296 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
#define EPSILON
Definition: qr_eigen_values.c:19
+
void test2()
Definition: qr_eigen_values.c:256
+
#define N
Definition: sol1.c:111
+
void qr_decompose(double **A, double **Q, double **R, int M, int N)
Definition: qr_decompose.h:146
+
void test1()
Definition: qr_eigen_values.c:208
+
void print_matrix(double **A, int M, int N)
Definition: qr_decompose.h:22
+
double ** mat_mul(double **A, double **B, double **OUT, int R1, int C1, int R2, int C2)
Definition: qr_eigen_values.c:58
+
#define LIMS
Definition: qr_eigen_values.c:18
+
double eigen_values(double **A, double *eigen_vals, int mat_size, char debug_print)
Definition: qr_eigen_values.c:104
+
void create_matrix(double **A, int N)
Definition: qr_eigen_values.c:26
+ + + + diff --git a/d7/d50/qr__eigen__values_8c.js b/d7/d50/qr__eigen__values_8c.js new file mode 100644 index 00000000..e513452c --- /dev/null +++ b/d7/d50/qr__eigen__values_8c.js @@ -0,0 +1,11 @@ +var qr__eigen__values_8c = +[ + [ "EPSILON", "d7/d50/qr__eigen__values_8c.html#a002b2f4894492820fe708b1b7e7c5e70", null ], + [ "LIMS", "d7/d50/qr__eigen__values_8c.html#aee57a411f07599034f5ceb8cc7d65b40", null ], + [ "create_matrix", "d7/d50/qr__eigen__values_8c.html#a7d96c5e4ae1bd6d29791bcc23a4cb2b0", null ], + [ "eigen_values", "d7/d50/qr__eigen__values_8c.html#a0d8ed79786d17df48396b333c09d05bb", null ], + [ "main", "d7/d50/qr__eigen__values_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "mat_mul", "d7/d50/qr__eigen__values_8c.html#a741477692f001a805b0fea942c9dc2b9", null ], + [ "test1", "d7/d50/qr__eigen__values_8c.html#a1440a7779ac56f47a3f355ce4a8c7da0", null ], + [ "test2", "d7/d50/qr__eigen__values_8c.html#a0283886819c7c140a023582b7269e2d0", null ] +]; \ No newline at end of file diff --git a/d7/d50/qr__eigen__values_8c_a0283886819c7c140a023582b7269e2d0_cgraph.map b/d7/d50/qr__eigen__values_8c_a0283886819c7c140a023582b7269e2d0_cgraph.map new file mode 100644 index 00000000..b386825f --- /dev/null +++ b/d7/d50/qr__eigen__values_8c_a0283886819c7c140a023582b7269e2d0_cgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/d7/d50/qr__eigen__values_8c_a0283886819c7c140a023582b7269e2d0_cgraph.md5 b/d7/d50/qr__eigen__values_8c_a0283886819c7c140a023582b7269e2d0_cgraph.md5 new file mode 100644 index 00000000..6e944400 --- /dev/null +++ b/d7/d50/qr__eigen__values_8c_a0283886819c7c140a023582b7269e2d0_cgraph.md5 @@ -0,0 +1 @@ +74ba507853d24fc7baf7633604147a25 \ No newline at end of file diff --git a/d7/d50/qr__eigen__values_8c_a0283886819c7c140a023582b7269e2d0_cgraph.svg b/d7/d50/qr__eigen__values_8c_a0283886819c7c140a023582b7269e2d0_cgraph.svg new file mode 100644 index 00000000..0a459254 --- /dev/null +++ b/d7/d50/qr__eigen__values_8c_a0283886819c7c140a023582b7269e2d0_cgraph.svg @@ -0,0 +1,154 @@ + + + + + + +test2 + + + +Node1 + + +test2 + + + + + +Node2 + + +eigen_values + + + + + +Node1->Node2 + + + + + +Node3 + + +mat_mul + + + + + +Node2->Node3 + + + + + +Node4 + + +print_matrix + + + + + +Node2->Node4 + + + + + +Node5 + + +qr_decompose + + + + + +Node2->Node5 + + + + + +Node6 + + +vector_dot + + + + + +Node5->Node6 + + + + + +Node7 + + +vector_mag + + + + + +Node5->Node7 + + + + + +Node8 + + +vector_proj + + + + + +Node5->Node8 + + + + + +Node9 + + +vector_sub + + + + + +Node5->Node9 + + + + + +Node7->Node6 + + + + + +Node8->Node6 + + + + + diff --git a/d7/d50/qr__eigen__values_8c_a0d8ed79786d17df48396b333c09d05bb_cgraph.map b/d7/d50/qr__eigen__values_8c_a0d8ed79786d17df48396b333c09d05bb_cgraph.map new file mode 100644 index 00000000..983a4555 --- /dev/null +++ b/d7/d50/qr__eigen__values_8c_a0d8ed79786d17df48396b333c09d05bb_cgraph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/d7/d50/qr__eigen__values_8c_a0d8ed79786d17df48396b333c09d05bb_cgraph.md5 b/d7/d50/qr__eigen__values_8c_a0d8ed79786d17df48396b333c09d05bb_cgraph.md5 new file mode 100644 index 00000000..84b9e7dd --- /dev/null +++ b/d7/d50/qr__eigen__values_8c_a0d8ed79786d17df48396b333c09d05bb_cgraph.md5 @@ -0,0 +1 @@ +08162c56558a2b54ec35fb093509b1c5 \ No newline at end of file diff --git a/d7/d50/qr__eigen__values_8c_a0d8ed79786d17df48396b333c09d05bb_cgraph.svg b/d7/d50/qr__eigen__values_8c_a0d8ed79786d17df48396b333c09d05bb_cgraph.svg new file mode 100644 index 00000000..d54bcddd --- /dev/null +++ b/d7/d50/qr__eigen__values_8c_a0d8ed79786d17df48396b333c09d05bb_cgraph.svg @@ -0,0 +1,139 @@ + + + + + + +eigen_values + + + +Node1 + + +eigen_values + + + + + +Node2 + + +mat_mul + + + + + +Node1->Node2 + + + + + +Node3 + + +print_matrix + + + + + +Node1->Node3 + + + + + +Node4 + + +qr_decompose + + + + + +Node1->Node4 + + + + + +Node5 + + +vector_dot + + + + + +Node4->Node5 + + + + + +Node6 + + +vector_mag + + + + + +Node4->Node6 + + + + + +Node7 + + +vector_proj + + + + + +Node4->Node7 + + + + + +Node8 + + +vector_sub + + + + + +Node4->Node8 + + + + + +Node6->Node5 + + + + + +Node7->Node5 + + + + + diff --git a/d7/d50/qr__eigen__values_8c_a1440a7779ac56f47a3f355ce4a8c7da0_cgraph.map b/d7/d50/qr__eigen__values_8c_a1440a7779ac56f47a3f355ce4a8c7da0_cgraph.map new file mode 100644 index 00000000..8015927c --- /dev/null +++ b/d7/d50/qr__eigen__values_8c_a1440a7779ac56f47a3f355ce4a8c7da0_cgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/d7/d50/qr__eigen__values_8c_a1440a7779ac56f47a3f355ce4a8c7da0_cgraph.md5 b/d7/d50/qr__eigen__values_8c_a1440a7779ac56f47a3f355ce4a8c7da0_cgraph.md5 new file mode 100644 index 00000000..e6c9d7ce --- /dev/null +++ b/d7/d50/qr__eigen__values_8c_a1440a7779ac56f47a3f355ce4a8c7da0_cgraph.md5 @@ -0,0 +1 @@ +80460d70881cd65015307a731b0f0ebf \ No newline at end of file diff --git a/d7/d50/qr__eigen__values_8c_a1440a7779ac56f47a3f355ce4a8c7da0_cgraph.svg b/d7/d50/qr__eigen__values_8c_a1440a7779ac56f47a3f355ce4a8c7da0_cgraph.svg new file mode 100644 index 00000000..556b9b2b --- /dev/null +++ b/d7/d50/qr__eigen__values_8c_a1440a7779ac56f47a3f355ce4a8c7da0_cgraph.svg @@ -0,0 +1,154 @@ + + + + + + +test1 + + + +Node1 + + +test1 + + + + + +Node2 + + +eigen_values + + + + + +Node1->Node2 + + + + + +Node3 + + +mat_mul + + + + + +Node2->Node3 + + + + + +Node4 + + +print_matrix + + + + + +Node2->Node4 + + + + + +Node5 + + +qr_decompose + + + + + +Node2->Node5 + + + + + +Node6 + + +vector_dot + + + + + +Node5->Node6 + + + + + +Node7 + + +vector_mag + + + + + +Node5->Node7 + + + + + +Node8 + + +vector_proj + + + + + +Node5->Node8 + + + + + +Node9 + + +vector_sub + + + + + +Node5->Node9 + + + + + +Node7->Node6 + + + + + +Node8->Node6 + + + + + diff --git a/d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..36862852 --- /dev/null +++ b/d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..3d204737 --- /dev/null +++ b/d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +119e2d8c29a7e4b1a5240137cbe7de1e \ No newline at end of file diff --git a/d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..e6b5be09 --- /dev/null +++ b/d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +create_matrix + + + + + +Node1->Node2 + + + + + +Node3 + + +eigen_values + + + + + +Node1->Node3 + + + + + +Node5 + + +print_matrix + + + + + +Node1->Node5 + + + + + +Node11 + + +test1 + + + + + +Node1->Node11 + + + + + +Node12 + + +test2 + + + + + +Node1->Node12 + + + + + +Node4 + + +mat_mul + + + + + +Node3->Node4 + + + + + +Node3->Node5 + + + + + +Node6 + + +qr_decompose + + + + + +Node3->Node6 + + + + + +Node7 + + +vector_dot + + + + + +Node6->Node7 + + + + + +Node8 + + +vector_mag + + + + + +Node6->Node8 + + + + + +Node9 + + +vector_proj + + + + + +Node6->Node9 + + + + + +Node10 + + +vector_sub + + + + + +Node6->Node10 + + + + + +Node8->Node7 + + + + + +Node9->Node7 + + + + + +Node11->Node3 + + + + + +Node12->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph_org.svg b/d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph_org.svg new file mode 100644 index 00000000..12432d18 --- /dev/null +++ b/d7/d50/qr__eigen__values_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph_org.svg @@ -0,0 +1,217 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +create_matrix + + + + + +Node1->Node2 + + + + + +Node3 + + +eigen_values + + + + + +Node1->Node3 + + + + + +Node5 + + +print_matrix + + + + + +Node1->Node5 + + + + + +Node11 + + +test1 + + + + + +Node1->Node11 + + + + + +Node12 + + +test2 + + + + + +Node1->Node12 + + + + + +Node4 + + +mat_mul + + + + + +Node3->Node4 + + + + + +Node3->Node5 + + + + + +Node6 + + +qr_decompose + + + + + +Node3->Node6 + + + + + +Node7 + + +vector_dot + + + + + +Node6->Node7 + + + + + +Node8 + + +vector_mag + + + + + +Node6->Node8 + + + + + +Node9 + + +vector_proj + + + + + +Node6->Node9 + + + + + +Node10 + + +vector_sub + + + + + +Node6->Node10 + + + + + +Node8->Node7 + + + + + +Node9->Node7 + + + + + +Node11->Node3 + + + + + +Node12->Node3 + + + + + diff --git a/d7/d86/struct__big__int__coll__graph.map b/d7/d86/struct__big__int__coll__graph.map new file mode 100644 index 00000000..fd35de99 --- /dev/null +++ b/d7/d86/struct__big__int__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/d7/d86/struct__big__int__coll__graph.md5 b/d7/d86/struct__big__int__coll__graph.md5 new file mode 100644 index 00000000..8eb717aa --- /dev/null +++ b/d7/d86/struct__big__int__coll__graph.md5 @@ -0,0 +1 @@ +868395ec70c54e719c2bab9979e52a68 \ No newline at end of file diff --git a/d7/d86/struct__big__int__coll__graph.svg b/d7/d86/struct__big__int__coll__graph.svg new file mode 100644 index 00000000..a17b2f3e --- /dev/null +++ b/d7/d86/struct__big__int__coll__graph.svg @@ -0,0 +1,30 @@ + + + + + + +_big_int + + + +Node1 + + +_big_int + + + + + +Node1->Node1 + + + prev_digit +next_digit + + + diff --git a/d7/d90/rna__transcription_8h_source.html b/d7/d90/rna__transcription_8h_source.html new file mode 100644 index 00000000..735eee8f --- /dev/null +++ b/d7/d90/rna__transcription_8h_source.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: exercism/rna_transcription/rna_transcription.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
rna_transcription.h
+
+
+
1 #ifndef __RNA_TRANSCRIPTION__H
+
2 #define __RNA_TRANSCRIPTION__H
+
3 
+
4 /* to_rna: compiles a DNA strand in its RNA complement */
+
5 char *to_rna(const char s[]);
+
6 
+
7 #endif
+
+
+ + + + diff --git a/d7/d91/problem__15_2sol1_8c.html b/d7/d91/problem__15_2sol1_8c.html new file mode 100644 index 00000000..9a9420e7 --- /dev/null +++ b/d7/d91/problem__15_2sol1_8c.html @@ -0,0 +1,212 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_15/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 15 solution +More...

+
#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + + + +

+Functions

unsigned long long number_of_paths (int N)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Problem 15 solution

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ main()

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

Main function

+
31 {
+
32  int N = 20;
+
33 
+
34  if (argc == 2)
+
35  N = atoi(argv[1]);
+
36 
+
37  printf("Number of ways to traverse diagonal of %dx%d grid = %llu\n", N, N,
+ +
39 
+
40  return 0;
+
41 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ number_of_paths()

+ +
+
+ + + + + + + + +
unsigned long long number_of_paths (int N)
+
+

At every node, there are 2 possible ways to move -> down or right. Since it is a square grid, there are in all, 2N steps with N down and N right options, without preference for order. Hence, the path can be be traced in N out of 2N number of ways. This is the same as binomial coeeficient.

+
18 {
+
19  unsigned long long path = 1;
+
20  for (int i = 0; i < N; i++)
+
21  {
+
22  path *= (N << 1) - i;
+
23  path /= i + 1;
+
24  }
+
25 
+
26  return path;
+
27 }
+
+
+
+
+
+
#define N
Definition: sol1.c:111
+
unsigned long long number_of_paths(int N)
Definition: sol1.c:17
+ + + + diff --git a/d7/d91/problem__15_2sol1_8c.js b/d7/d91/problem__15_2sol1_8c.js new file mode 100644 index 00000000..3ff758d7 --- /dev/null +++ b/d7/d91/problem__15_2sol1_8c.js @@ -0,0 +1,5 @@ +var problem__15_2sol1_8c = +[ + [ "main", "d7/d91/problem__15_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "number_of_paths", "d7/d91/problem__15_2sol1_8c.html#a4650d1d3897633d84253f93433f601d6", null ] +]; \ No newline at end of file diff --git a/d7/d91/problem__15_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/d7/d91/problem__15_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..35443f9a --- /dev/null +++ b/d7/d91/problem__15_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d7/d91/problem__15_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/d7/d91/problem__15_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..bd141773 --- /dev/null +++ b/d7/d91/problem__15_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +7ecac737be04c697f9b839ef9578192f \ No newline at end of file diff --git a/d7/d91/problem__15_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/d7/d91/problem__15_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..65d5fbf2 --- /dev/null +++ b/d7/d91/problem__15_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +number_of_paths + + + + + +Node1->Node2 + + + + + diff --git a/d7/dac/problem__9_2sol1_8c__incl.map b/d7/dac/problem__9_2sol1_8c__incl.map new file mode 100644 index 00000000..f3885ccf --- /dev/null +++ b/d7/dac/problem__9_2sol1_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/d7/dac/problem__9_2sol1_8c__incl.md5 b/d7/dac/problem__9_2sol1_8c__incl.md5 new file mode 100644 index 00000000..55dc95ed --- /dev/null +++ b/d7/dac/problem__9_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +7fe6aa299160ecb8f3d45684b5a7596b \ No newline at end of file diff --git a/d7/dac/problem__9_2sol1_8c__incl.svg b/d7/dac/problem__9_2sol1_8c__incl.svg new file mode 100644 index 00000000..34003180 --- /dev/null +++ b/d7/dac/problem__9_2sol1_8c__incl.svg @@ -0,0 +1,38 @@ + + + + + + +project_euler/problem_9/sol1.c + + + +Node1 + + +project_euler/problem +_9/sol1.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + diff --git a/d7/db5/md_exercism__r_e_a_d_m_e.html b/d7/db5/md_exercism__r_e_a_d_m_e.html new file mode 100644 index 00000000..54fa90b8 --- /dev/null +++ b/d7/db5/md_exercism__r_e_a_d_m_e.html @@ -0,0 +1,119 @@ + + + + + + + +Algorithms_in_C: Sample solutions for <a href="http://exercism.io/">exercism.io</a> + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Sample solutions for exercism.io
+
+
+

This directory contains some sample solutions for exercism.io

+

+Overview

+

In this directory you will find (in the right order):

    +
  • hello-world
  • +
  • isogram
  • +
  • acronym
  • +
  • word-count
  • +
  • rna-transcription
  • +
+
+
+
+ + + + diff --git a/d7/dd3/problem__3_2sol1_8c.html b/d7/dd3/problem__3_2sol1_8c.html new file mode 100644 index 00000000..40696be8 --- /dev/null +++ b/d7/dd3/problem__3_2sol1_8c.html @@ -0,0 +1,240 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_3/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 3 solution +More...

+
#include <math.h>
+#include <stdio.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + + + +

+Functions

char isprime (int no)
 
int main ()
 
+

Detailed Description

+

Problem 3 solution

+

Problem:

+

The prime factors of 13195 are 5,7,13 and 29. What is the largest prime factor of a given number N? e.g. for 10, largest prime factor = 5. For 17, largest prime factor = 17.

+

Function Documentation

+ +

◆ isprime()

+ +
+
+ + + + + + + + +
char isprime (int no)
+
+

Check if the given number is prime

+
16 {
+
17  int sq;
+
18 
+
19  if (no == 2)
+
20  {
+
21  return 1;
+
22  }
+
23  else if (no % 2 == 0)
+
24  {
+
25  return 0;
+
26  }
+
27  sq = ((int)(sqrt(no))) + 1;
+
28  for (int i = 3; i < sq; i += 2)
+
29  {
+
30  if (no % i == 0)
+
31  {
+
32  return 0;
+
33  }
+
34  }
+
35  return 1;
+
36 }
+
+
+
+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+

Main function

+
40 {
+
41  int maxNumber = 0;
+
42  int n = 0;
+
43  int n1;
+
44  scanf("%d", &n);
+
45  if (isprime(n) == 1)
+
46  printf("%d", n);
+
47  else
+
48  {
+
49  while (n % 2 == 0)
+
50  {
+
51  n = n / 2;
+
52  }
+
53  if (isprime(n) == 1)
+
54  {
+
55  printf("%d\n", n);
+
56  }
+
57  else
+
58  {
+
59  n1 = ((int)(sqrt(n))) + 1;
+
60  for (int i = 3; i < n1; i += 2)
+
61  {
+
62  if (n % i == 0)
+
63  {
+
64  if (isprime((int)(n / i)) == 1)
+
65  {
+
66  maxNumber = n / i;
+
67  break;
+
68  }
+
69  else if (isprime(i) == 1)
+
70  {
+
71  maxNumber = i;
+
72  }
+
73  }
+
74  }
+
75  printf("%d\n", maxNumber);
+
76  }
+
77  }
+
78  return 0;
+
79 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
char isprime(int no)
Definition: sol1.c:15
+ + + + diff --git a/d7/dd3/problem__3_2sol1_8c.js b/d7/dd3/problem__3_2sol1_8c.js new file mode 100644 index 00000000..4d0e5dd2 --- /dev/null +++ b/d7/dd3/problem__3_2sol1_8c.js @@ -0,0 +1,5 @@ +var problem__3_2sol1_8c = +[ + [ "isprime", "d7/dd3/problem__3_2sol1_8c.html#aa0f4796aa2e89c327f827bd55f5cb305", null ], + [ "main", "d7/dd3/problem__3_2sol1_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/d7/dd3/problem__3_2sol1_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.map b/d7/dd3/problem__3_2sol1_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.map new file mode 100644 index 00000000..bbc147fb --- /dev/null +++ b/d7/dd3/problem__3_2sol1_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d7/dd3/problem__3_2sol1_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.md5 b/d7/dd3/problem__3_2sol1_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.md5 new file mode 100644 index 00000000..8c7d54f1 --- /dev/null +++ b/d7/dd3/problem__3_2sol1_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.md5 @@ -0,0 +1 @@ +99e3ba6f22884fa9a143c6571f514d24 \ No newline at end of file diff --git a/d7/dd3/problem__3_2sol1_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg b/d7/dd3/problem__3_2sol1_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg new file mode 100644 index 00000000..5a06a914 --- /dev/null +++ b/d7/dd3/problem__3_2sol1_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +isprime + + + + + +Node1->Node2 + + + + + diff --git a/d7/dd8/c__atoi__str__to__integer_8c.html b/d7/dd8/c__atoi__str__to__integer_8c.html new file mode 100644 index 00000000..ec5ec93c --- /dev/null +++ b/d7/dd8/c__atoi__str__to__integer_8c.html @@ -0,0 +1,361 @@ + + + + + + + +Algorithms_in_C: conversions/c_atoi_str_to_integer.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
c_atoi_str_to_integer.c File Reference
+
+
+ +

Recoding the original atoi function in stdlib.h. +More...

+
#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+Include dependency graph for c_atoi_str_to_integer.c:
+
+
+
+
+
+ + + + + + + +

+Functions

int c_atoi (const char *str)
 
int test_c_atoi ()
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Recoding the original atoi function in stdlib.h.

+
Author
Mohammed YMIKW The function convert a string passed to an integer
+

Function Documentation

+ +

◆ c_atoi()

+ +
+
+ + + + + + + + +
int c_atoi (const char * str)
+
+

the function take a string and return an integer

Parameters
+ + +
[out]strpointer to a char address
+
+
+
17 {
+
18  int i;
+
19  int sign;
+
20  long value;
+
21  long prev;
+
22 
+
23  i = 0;
+
24  sign = 1;
+
25  value = 0;
+
26 
+
27  /* skipping the spaces */
+
28  while (((str[i] <= 13 && str[i] >= 9) || str[i] == 32) && str[i] != '\0')
+
29  i++;
+
30 
+
31  /* store the sign if it is negative sign */
+
32  if (str[i] == '-' || str[i] == '+')
+
33  (str[i++] == '-') ? sign = -1 : 1;
+
34 
+
35  /* converting char by char to a numeric value */
+
36  while (str[i] >= 48 && str[i] <= 57 && str[i] != '\0')
+
37  {
+
38  prev = value;
+
39  value = value * 10 + sign * (str[i] - '0');
+
40 
+
41  /* managing the overflow */
+
42  if (sign == 1 && prev > value)
+
43  return (-1);
+
44  else if (sign == -1 && prev < value)
+
45  return (0);
+
46  i++;
+
47  }
+
48  return (value);
+
49 }
+
+
+
+ +

◆ main()

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

the main function take one argument of type char* example : ./program 123

+
71 {
+
72  if (argc == 2)
+
73  {
+
74  printf("Your number + 5 is %d\n", c_atoi(argv[1]) + 5);
+
75  return (0);
+
76  }
+
77  printf("wrong number of parmeters\n");
+
78  return (1);
+
79 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ test_c_atoi()

+ +
+
+ + + + + + + +
int test_c_atoi ()
+
+

test the function implementation

+
55 {
+
56  printf("<<<< TEST FUNCTION >>>>\n");
+
57  assert(c_atoi("123") == atoi("123"));
+
58  assert(c_atoi("-123") == atoi("-123"));
+
59  assert(c_atoi("") == atoi(""));
+
60  assert(c_atoi("-h23") == atoi("-h23"));
+
61  assert(c_atoi(" 23") == atoi(" 23"));
+
62  assert(c_atoi("999999999999") == atoi("999999999999"));
+
63  printf("<<<< TEST DONE >>>>\n");
+
64 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
unsigned long get_next_abundant(unsigned long N)
Definition: sol1.c:55
+
char is_prime(unsigned long n)
Definition: sol1.c:11
+
int main()
Definition: sol1.c:12
+
Definition: list.h:8
+
int is_palindromic(unsigned int n)
Definition: sol.c:12
+
#define MOD
Definition: sol1.c:17
+
uint64_t sigma2(uint64_t N)
Definition: sol1.c:87
+
uint64_t get_divisors(uint64_t N, uint64_t *D)
Definition: sol1.c:43
+
#define EPSILON
Definition: qr_eigen_values.c:19
+
int compare(const void *a, const void *b)
Definition: sol1.c:19
+
void shell_sort(char data[][MAX_NAME_LEN], int LEN)
Definition: sol1.c:20
+
#define min(a, b)
Definition: kohonen_som_topology.c:37
+
long long int get_product(FILE *fp, long start_pos, int num_digits)
Definition: sol1.c:16
+
int main(int argc, char **argv)
Definition: qr_eigen_values.c:301
+
#define MAX_L
Definition: sol1.c:18
+
Definition: prime_factoriziation.c:25
+
char get_perfect_number(unsigned long N)
Definition: sol2.c:33
+
void lazy_sort(char data[][MAX_NAME_LEN], int LEN)
Definition: sol1.c:49
+
int main()
Definition: so1.c:17
+
int main(void)
Definition: sol.c:25
+
#define N2
Definition: sol1.c:113
+
Definition: binary_search_tree.c:14
+
#define MAX_NAME_LEN
Definition: sol1.c:15
+
void stats_computer1(float x, float *mean, float *variance, float *std)
Definition: realtime_stats.c:24
+
void test2()
Definition: qr_eigen_values.c:256
+
char remove_digits(big_int *digit, int N)
Definition: sol1.c:76
+
#define N
Definition: sol1.c:111
+
void qr_decompose(double **A, double **Q, double **R, int M, int N)
Definition: qr_decompose.h:146
+
int add_numbers(uint8_t *a, uint8_t *b, uint8_t N)
Definition: sol1.c:44
+
char get_month_days(short month)
Definition: sol1.c:14
+
#define MAX_NAMES
Definition: sol1.c:14
+
char is_in(uint64_t N, uint64_t *D, uint64_t L)
Definition: sol1.c:28
+
int data
Definition: threaded_binary_trees.c:28
+
unsigned long get_next_abundant(unsigned long N)
Definition: sol2.c:70
+
Definition: threaded_binary_trees.c:27
+
void test1()
Definition: qr_eigen_values.c:208
+
void test_function(const float *test_data, const int number_of_samples)
Definition: realtime_stats.c:92
+
#define MAX_DIGITS
Definition: sol1.c:13
+
unsigned long long sum_of_primes(unsigned long N)
Definition: sol1.c:21
+
unsigned long lcm(unsigned long a, unsigned long b)
Definition: sol.c:31
+
Library functions to compute QR decomposition of a given matrix.
+
struct _big_int * next_digit
Definition: sol1.c:20
+
void show_data(int *arr, long len)
Definition: shell_sort2.c:14
+
unsigned int get_digits(unsigned char *number)
Definition: sol1.c:73
+
unsigned long is_abundant(unsigned long N)
Definition: sol1.c:47
+
void print_matrix(double **A, int M, int N)
Definition: qr_decompose.h:22
+
int print_number(uint8_t *number, uint8_t N, int8_t num_digits_to_print)
Definition: sol1.c:82
+
int main()
Definition: sol3.c:14
+
unsigned long sum_of_divisors(unsigned int N)
Definition: sol1.c:13
+
uint64_t sigma(uint64_t N)
Definition: sol1.c:108
+
char isprime(int no)
Definition: sol1.c:15
+
struct _big_int big_int
+
int main(void)
Definition: qr_decomposition.c:18
+
int main(int argc, char **argv)
Definition: realtime_stats.c:128
+
double ** mat_mul(double **A, double **B, double **OUT, int R1, int C1, int R2, int C2)
Definition: qr_eigen_values.c:58
+
#define MAX_LEN
Definition: sol1.c:15
+
struct Node node
+
unsigned long MAX_N
Definition: sol1.c:13
+
unsigned long gcd(unsigned long a, unsigned long b)
Definition: sol.c:11
+
struct _big_int * prev_digit
Definition: sol1.c:21
+
Definition: sol1.c:18
+
int main()
Definition: sol2.c:15
+
long count_divisors(long long n)
Definition: sol1.c:19
+
#define MAX_DENO
Definition: sol1.c:14
+
void stats_computer2(float x, float *mean, float *variance, float *std)
Definition: realtime_stats.c:61
+
int main(int argc, char **argv)
Definition: c_atoi_str_to_integer.c:70
+
char is_abundant(unsigned long N)
Definition: sol2.c:59
+
void display(double **A, int N)
Definition: lu_decompose.c:68
+
unsigned long long number_of_paths(int N)
Definition: sol1.c:17
+
char is_sum_of_abundant(unsigned long N)
Definition: sol2.c:85
+
int get_number(FILE *fp, char *buffer, uint8_t *out_int)
Definition: sol1.c:16
+
int c_atoi(const char *str)
Definition: c_atoi_str_to_integer.c:16
+
long long collatz(long long start_num)
Definition: sol1.c:27
+
int main(int argc, char *argv[])
Definition: shell_sort2.c:59
+
long MAX_N
Definition: sol2.c:17
+
void shell_sort(int *array, long LEN)
Definition: shell_sort2.c:34
+
int main()
Definition: sol4.c:12
+
void swap(int *a, int *b)
Definition: shell_sort2.c:22
+
#define max(a, b)
Definition: kohonen_som_topology.c:31
+
big_int * add_digit(big_int *digit, char value)
Definition: sol1.c:37
+
#define LIMS
Definition: qr_eigen_values.c:18
+
double eigen_values(double **A, double *eigen_vals, int mat_size, char debug_print)
Definition: qr_eigen_values.c:104
+
char is_leap_year(short year)
Definition: sol1.c:41
+
char get_perfect_number(unsigned long N)
Definition: sol1.c:21
+
Definition: multikey_quick_sort.c:205
+
char is_sum_of_abundant(unsigned long N)
Definition: sol1.c:69
+
void create_matrix(double **A, int N)
Definition: qr_eigen_values.c:26
+
char * abundant_flags
Definition: sol2.c:26
+ + + + diff --git a/d7/dd8/c__atoi__str__to__integer_8c.js b/d7/dd8/c__atoi__str__to__integer_8c.js new file mode 100644 index 00000000..2e3f9fd6 --- /dev/null +++ b/d7/dd8/c__atoi__str__to__integer_8c.js @@ -0,0 +1,6 @@ +var c__atoi__str__to__integer_8c = +[ + [ "c_atoi", "d7/dd8/c__atoi__str__to__integer_8c.html#ad19049ebfc2088bc1e75e7e958f7b60f", null ], + [ "main", "d7/dd8/c__atoi__str__to__integer_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "test_c_atoi", "d7/dd8/c__atoi__str__to__integer_8c.html#abef225390e0b6e84ddfcb18fe573d9c5", null ] +]; \ No newline at end of file diff --git a/d7/dd8/c__atoi__str__to__integer_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/d7/dd8/c__atoi__str__to__integer_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..0aeb9fa9 --- /dev/null +++ b/d7/dd8/c__atoi__str__to__integer_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d7/dd8/c__atoi__str__to__integer_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/d7/dd8/c__atoi__str__to__integer_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..2d68be55 --- /dev/null +++ b/d7/dd8/c__atoi__str__to__integer_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +7d927243ba52061609fd1c9eed915fa4 \ No newline at end of file diff --git a/d7/dd8/c__atoi__str__to__integer_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/d7/dd8/c__atoi__str__to__integer_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..bc62170f --- /dev/null +++ b/d7/dd8/c__atoi__str__to__integer_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +c_atoi + + + + + +Node1->Node2 + + + + + diff --git a/d7/dd8/c__atoi__str__to__integer_8c_abef225390e0b6e84ddfcb18fe573d9c5_cgraph.map b/d7/dd8/c__atoi__str__to__integer_8c_abef225390e0b6e84ddfcb18fe573d9c5_cgraph.map new file mode 100644 index 00000000..4e1eeff9 --- /dev/null +++ b/d7/dd8/c__atoi__str__to__integer_8c_abef225390e0b6e84ddfcb18fe573d9c5_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d7/dd8/c__atoi__str__to__integer_8c_abef225390e0b6e84ddfcb18fe573d9c5_cgraph.md5 b/d7/dd8/c__atoi__str__to__integer_8c_abef225390e0b6e84ddfcb18fe573d9c5_cgraph.md5 new file mode 100644 index 00000000..bad672a6 --- /dev/null +++ b/d7/dd8/c__atoi__str__to__integer_8c_abef225390e0b6e84ddfcb18fe573d9c5_cgraph.md5 @@ -0,0 +1 @@ +1dca8c3c3b36cc467481336b7c5160e7 \ No newline at end of file diff --git a/d7/dd8/c__atoi__str__to__integer_8c_abef225390e0b6e84ddfcb18fe573d9c5_cgraph.svg b/d7/dd8/c__atoi__str__to__integer_8c_abef225390e0b6e84ddfcb18fe573d9c5_cgraph.svg new file mode 100644 index 00000000..b4d47b09 --- /dev/null +++ b/d7/dd8/c__atoi__str__to__integer_8c_abef225390e0b6e84ddfcb18fe573d9c5_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +test_c_atoi + + + +Node1 + + +test_c_atoi + + + + + +Node2 + + +c_atoi + + + + + +Node1->Node2 + + + + + diff --git a/d7/ddb/problem__23_2sol1_8c.html b/d7/ddb/problem__23_2sol1_8c.html new file mode 100644 index 00000000..a3398258 --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c.html @@ -0,0 +1,384 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_23/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 23 solution +More...

+
#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + + + + + + + + + +

+Functions

char get_perfect_number (unsigned long N)
 
unsigned long is_abundant (unsigned long N)
 
unsigned long get_next_abundant (unsigned long N)
 
char is_sum_of_abundant (unsigned long N)
 
int main (int argc, char **argv)
 
+ + + +

+Variables

unsigned long MAX_N = 28123
 
+

Detailed Description

+

Problem 23 solution

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ get_next_abundant()

+ +
+
+ + + + + + + + +
unsigned long get_next_abundant (unsigned long N)
+
+

Find the next abundant number after N and not including N

+
56 {
+
57  unsigned long i;
+
58  for (i = N + 1; !is_abundant(i); i++)
+
59  ;
+
60  return i;
+
61 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ get_perfect_number()

+ +
+
+ + + + + + + + +
char get_perfect_number (unsigned long N)
+
+

Returns: -1 if N is deficient 1 if N is abundant 0 if N is perfect

+
22 {
+
23  unsigned long sum = 1;
+
24  char ret = 0;
+
25 
+
26  for (unsigned long i = 2; i * i <= N; i++)
+
27  {
+
28  if (N % i == 0)
+
29  {
+
30  sum += i;
+
31  unsigned long tmp = N / i;
+
32  if (tmp != i)
+
33  sum += tmp;
+
34  }
+
35  }
+
36 
+
37  ret = sum == N ? 0 : (sum > N ? 1 : -1);
+
38  // #ifdef DEBUG
+
39  // printf("%5lu: %5lu : %d\n", N, sum, ret);
+
40  // #endif
+
41  return ret;
+
42 }
+
+
+
+ +

◆ is_abundant()

+ +
+
+ + + + + + + + +
unsigned long is_abundant (unsigned long N)
+
+

Is the given number an abundant number (1) or not (0)

+
48 {
+
49  return get_perfect_number(N) == 1 ? 1 : 0;
+
50 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ is_sum_of_abundant()

+ +
+
+ + + + + + + + +
char is_sum_of_abundant (unsigned long N)
+
+

check if a given number can be represented as a sum of two abundant numbers.

Returns
1 - if yes
+
+0 - if not
+

optimized logic: i + j = N where both i and j should be abundant hence we can simply check for j = N - i as we loop through i

+
70 {
+
71  /** optimized logic:
+
72  * i + j = N where both i and j should be abundant
+
73  * hence we can simply check for j = N - i as we loop through i
+
74  **/
+
75  for (unsigned long i = get_next_abundant(1); i <= (N >> 1);
+
76  i = get_next_abundant(i))
+
77  if (is_abundant(N - i))
+
78  {
+
79 #ifdef DEBUG
+
80  printf("\t%4lu + %4lu = %4lu\n", i, N - i, N);
+
81 #endif
+
82  return 1;
+
83  }
+
84  return 0;
+
85 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ main()

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

Main function

+
89 {
+
90  unsigned long sum = 0;
+
91  if (argc == 2)
+
92  MAX_N = strtoul(argv[1], NULL, 10);
+
93 
+
94 #ifdef _OPENMP
+
95  printf("Using OpenMP parallleization with %d threads\n",
+
96  omp_get_max_threads());
+
97 #else
+
98  printf("Not using parallleization!\n");
+
99 #endif
+
100 
+
101  double total_duration = 0.f;
+
102  long i;
+
103 #ifdef _OPENMP
+
104 #pragma omp parallel for reduction(+ : sum) schedule(runtime)
+
105 #endif
+
106  for (i = 1; i <= MAX_N; i++)
+
107  {
+
108  clock_t start_time = clock();
+
109  if (!is_sum_of_abundant(i))
+
110  sum += i;
+
111  clock_t end_time = clock();
+
112  total_duration += (double)(end_time - start_time) / CLOCKS_PER_SEC;
+
113 
+
114  printf("... %5lu: %8lu\r", i, sum);
+
115  if (i % 100 == 0)
+
116  fflush(stdout);
+
117  }
+
118 
+
119  printf("Time taken: %.4g s\n", total_duration);
+
120  printf("Sum of numbers that cannot be represented as sum of two abundant "
+
121  "numbers : %lu\n",
+
122  sum);
+
123 
+
124  return 0;
+
125 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+

Variable Documentation

+ +

◆ MAX_N

+ +
+
+ + + + +
unsigned long MAX_N = 28123
+
+

upper limit of numbers to check

+ +
+
+
+
+
unsigned long get_next_abundant(unsigned long N)
Definition: sol1.c:55
+
#define N
Definition: sol1.c:111
+
unsigned long is_abundant(unsigned long N)
Definition: sol1.c:47
+
unsigned long MAX_N
Definition: sol1.c:13
+
char get_perfect_number(unsigned long N)
Definition: sol1.c:21
+
char is_sum_of_abundant(unsigned long N)
Definition: sol1.c:69
+ + + + diff --git a/d7/ddb/problem__23_2sol1_8c.js b/d7/ddb/problem__23_2sol1_8c.js new file mode 100644 index 00000000..e51e237a --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c.js @@ -0,0 +1,9 @@ +var problem__23_2sol1_8c = +[ + [ "get_next_abundant", "d7/ddb/problem__23_2sol1_8c.html#ac5d600bf3077f4188afc4c5cd2c40eaf", null ], + [ "get_perfect_number", "d7/ddb/problem__23_2sol1_8c.html#a1aca7f530f82b27100262adba9e7556b", null ], + [ "is_abundant", "d7/ddb/problem__23_2sol1_8c.html#a4f128410e6582fe26488e2316cc96e17", null ], + [ "is_sum_of_abundant", "d7/ddb/problem__23_2sol1_8c.html#a3ab61b5a1c4f2288625d160aa0ea8478", null ], + [ "main", "d7/ddb/problem__23_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "MAX_N", "d7/ddb/problem__23_2sol1_8c.html#a337e545af040d754dc012b42523ee1ee", null ] +]; \ No newline at end of file diff --git a/d7/ddb/problem__23_2sol1_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.map b/d7/ddb/problem__23_2sol1_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.map new file mode 100644 index 00000000..7a3b31b5 --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/d7/ddb/problem__23_2sol1_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.md5 b/d7/ddb/problem__23_2sol1_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.md5 new file mode 100644 index 00000000..9fa5606b --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.md5 @@ -0,0 +1 @@ +4d1bce1eb53a0a4f01d7f6877de3dd5a \ No newline at end of file diff --git a/d7/ddb/problem__23_2sol1_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.svg b/d7/ddb/problem__23_2sol1_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.svg new file mode 100644 index 00000000..f19b7060 --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c_a3ab61b5a1c4f2288625d160aa0ea8478_cgraph.svg @@ -0,0 +1,73 @@ + + + + + + +is_sum_of_abundant + + + +Node1 + + +is_sum_of_abundant + + + + + +Node2 + + +get_next_abundant + + + + + +Node1->Node2 + + + + + +Node3 + + +is_abundant + + + + + +Node1->Node3 + + + + + +Node2->Node3 + + + + + +Node4 + + +get_perfect_number + + + + + +Node3->Node4 + + + + + diff --git a/d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..17845394 --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..9ad99d57 --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +8620f530e4f349c3b54f5b5d5b01073e \ No newline at end of file diff --git a/d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..8762c484 --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +is_sum_of_abundant + + + + + +Node1->Node2 + + + + + +Node3 + + +get_next_abundant + + + + + +Node2->Node3 + + + + + +Node4 + + +is_abundant + + + + + +Node2->Node4 + + + + + +Node3->Node4 + + + + + +Node5 + + +get_perfect_number + + + + + +Node4->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph_org.svg b/d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph_org.svg new file mode 100644 index 00000000..3fc5729b --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph_org.svg @@ -0,0 +1,88 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +is_sum_of_abundant + + + + + +Node1->Node2 + + + + + +Node3 + + +get_next_abundant + + + + + +Node2->Node3 + + + + + +Node4 + + +is_abundant + + + + + +Node2->Node4 + + + + + +Node3->Node4 + + + + + +Node5 + + +get_perfect_number + + + + + +Node4->Node5 + + + + + diff --git a/d7/ddb/problem__23_2sol1_8c_a4f128410e6582fe26488e2316cc96e17_cgraph.map b/d7/ddb/problem__23_2sol1_8c_a4f128410e6582fe26488e2316cc96e17_cgraph.map new file mode 100644 index 00000000..70ecbe7b --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c_a4f128410e6582fe26488e2316cc96e17_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d7/ddb/problem__23_2sol1_8c_a4f128410e6582fe26488e2316cc96e17_cgraph.md5 b/d7/ddb/problem__23_2sol1_8c_a4f128410e6582fe26488e2316cc96e17_cgraph.md5 new file mode 100644 index 00000000..d74f34db --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c_a4f128410e6582fe26488e2316cc96e17_cgraph.md5 @@ -0,0 +1 @@ +653a6ea4da9f57ca26c93cee5594f4e9 \ No newline at end of file diff --git a/d7/ddb/problem__23_2sol1_8c_a4f128410e6582fe26488e2316cc96e17_cgraph.svg b/d7/ddb/problem__23_2sol1_8c_a4f128410e6582fe26488e2316cc96e17_cgraph.svg new file mode 100644 index 00000000..fc520b56 --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c_a4f128410e6582fe26488e2316cc96e17_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +is_abundant + + + +Node1 + + +is_abundant + + + + + +Node2 + + +get_perfect_number + + + + + +Node1->Node2 + + + + + diff --git a/d7/ddb/problem__23_2sol1_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.map b/d7/ddb/problem__23_2sol1_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.map new file mode 100644 index 00000000..77449e97 --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d7/ddb/problem__23_2sol1_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.md5 b/d7/ddb/problem__23_2sol1_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.md5 new file mode 100644 index 00000000..14ce02bb --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.md5 @@ -0,0 +1 @@ +1cf0d91272ffc4698ea60b5ec4bccc30 \ No newline at end of file diff --git a/d7/ddb/problem__23_2sol1_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.svg b/d7/ddb/problem__23_2sol1_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.svg new file mode 100644 index 00000000..748de388 --- /dev/null +++ b/d7/ddb/problem__23_2sol1_8c_ac5d600bf3077f4188afc4c5cd2c40eaf_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +get_next_abundant + + + +Node1 + + +get_next_abundant + + + + + +Node2 + + +is_abundant + + + + + +Node1->Node2 + + + + + +Node3 + + +get_perfect_number + + + + + +Node2->Node3 + + + + + diff --git a/d7/de0/stack_8h_source.html b/d7/de0/stack_8h_source.html new file mode 100644 index 00000000..e407c5db --- /dev/null +++ b/d7/de0/stack_8h_source.html @@ -0,0 +1,157 @@ + + + + + + + +Algorithms_in_C: data_structures/stack/stack.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
stack.h
+
+
+
1 /*
+
2  author: Christian Bender
+
3 
+
4  This header represents the public stack-interface.
+
5  The stack is generic and self growing.
+
6 */
+
7 
+
8 #ifndef __STACK__
+
9 #define __STACK__
+
10 
+
11 /*
+
12  initStack: initializes the stack with a capacity of 10 elements.
+
13 */
+
14 void initStack();
+
15 
+
16 /*
+
17  push: pushs the argument onto the stack
+
18 */
+
19 void push(void *object);
+
20 
+
21 /*
+
22  pop: pops the top element of the stack from the stack.
+
23  assumes: stack not empty.
+
24 */
+
25 void *pop();
+
26 
+
27 /*
+
28  size: gets the number of elements of the stack.
+
29 */
+
30 int size();
+
31 
+
32 /*
+
33  isEmpty(): returns 1 if stack is empty otherwise 0.
+
34 */
+
35 int isEmpty();
+
36 
+
37 /*
+
38  top: returns the top element from the stack without removing it.
+
39 */
+
40 void *top();
+
41 
+
42 #endif
+
+
+
Definition: prime_factoriziation.c:25
+
Definition: binary_search_tree.c:14
+
Definition: stack.c:16
+
int main(int argc, char **argv)
Definition: c_atoi_str_to_integer.c:70
+
#define max(a, b)
Definition: kohonen_som_topology.c:31
+
Definition: stack.c:10
+ + + + diff --git a/d7/ded/problem__10_2sol2_8c__incl.map b/d7/ded/problem__10_2sol2_8c__incl.map new file mode 100644 index 00000000..8c9538b0 --- /dev/null +++ b/d7/ded/problem__10_2sol2_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/d7/ded/problem__10_2sol2_8c__incl.md5 b/d7/ded/problem__10_2sol2_8c__incl.md5 new file mode 100644 index 00000000..c9a94207 --- /dev/null +++ b/d7/ded/problem__10_2sol2_8c__incl.md5 @@ -0,0 +1 @@ +603d09c77eabad445b2abce0497f07e5 \ No newline at end of file diff --git a/d7/ded/problem__10_2sol2_8c__incl.svg b/d7/ded/problem__10_2sol2_8c__incl.svg new file mode 100644 index 00000000..81fa1684 --- /dev/null +++ b/d7/ded/problem__10_2sol2_8c__incl.svg @@ -0,0 +1,68 @@ + + + + + + +project_euler/problem_10/sol2.c + + + +Node1 + + +project_euler/problem +_10/sol2.c + + + + + +Node2 + + +math.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + diff --git a/d8/d11/newton__raphson__root_8c__incl.map b/d8/d11/newton__raphson__root_8c__incl.map new file mode 100644 index 00000000..1c20b81c --- /dev/null +++ b/d8/d11/newton__raphson__root_8c__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/d8/d11/newton__raphson__root_8c__incl.md5 b/d8/d11/newton__raphson__root_8c__incl.md5 new file mode 100644 index 00000000..05e513b7 --- /dev/null +++ b/d8/d11/newton__raphson__root_8c__incl.md5 @@ -0,0 +1 @@ +0fa014be6021199e079cb7834f031304 \ No newline at end of file diff --git a/d8/d11/newton__raphson__root_8c__incl.svg b/d8/d11/newton__raphson__root_8c__incl.svg new file mode 100644 index 00000000..6f1c7906 --- /dev/null +++ b/d8/d11/newton__raphson__root_8c__incl.svg @@ -0,0 +1,113 @@ + + + + + + +numerical_methods/newton_raphson_root.c + + + +Node1 + + +numerical_methods/newton +_raphson_root.c + + + + + +Node2 + + +complex.h + + + + + +Node1->Node2 + + + + + +Node3 + + +limits.h + + + + + +Node1->Node3 + + + + + +Node4 + + +math.h + + + + + +Node1->Node4 + + + + + +Node5 + + +stdio.h + + + + + +Node1->Node5 + + + + + +Node6 + + +stdlib.h + + + + + +Node1->Node6 + + + + + +Node7 + + +time.h + + + + + +Node1->Node7 + + + + + diff --git a/d8/d32/problem__25_2sol1_8c.html b/d8/d32/problem__25_2sol1_8c.html new file mode 100644 index 00000000..d05307ae --- /dev/null +++ b/d8/d32/problem__25_2sol1_8c.html @@ -0,0 +1,385 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_25/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 25 solution implemented using arbitrarily large numbers represented as arrays +More...

+
#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + +

+Macros

#define MAX_DIGITS   1000
 
+ + + + + + + + + +

+Functions

unsigned int add_numbers (unsigned char *a, unsigned char *b, unsigned char *c, int N)
 
int print_number (unsigned char *number, int N)
 
unsigned int get_digits (unsigned char *number)
 
int main (int argc, char *argv[])
 
+

Detailed Description

+

Problem 25 solution implemented using arbitrarily large numbers represented as arrays

+
Author
Krishna Vedala
+

Macro Definition Documentation

+ +

◆ MAX_DIGITS

+ +
+
+ + + + +
#define MAX_DIGITS   1000
+
+

maximum number of digits

+ +
+
+

Function Documentation

+ +

◆ add_numbers()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
unsigned int add_numbers (unsigned char * a,
unsigned char * b,
unsigned char * c,
int N 
)
+
+

Function to add arbitraty length decimal integers stored in an array.
+a + b = c = new b

+
21 {
+
22  unsigned char carry = 0;
+
23  unsigned int i;
+
24 
+
25  for (i = 0; i < N; i++)
+
26  {
+
27  // printf("\t%d + %d + %d ", a[i], b[i], carry);
+
28  c[i] = carry + a[i] + b[i];
+
29  if (c[i] > 9) /* check for carry */
+
30  {
+
31  carry = 1;
+
32  c[i] -= 10;
+
33  }
+
34  else
+
35  carry = 0;
+
36  // printf("= %d, %d\n", carry, c[i]);
+
37  }
+
38 
+
39  while (carry != 0)
+
40  {
+
41  // printf("\t\t...adding new digit\n");
+
42  // printf("\t0 + %d + %d ", b[i], carry);
+
43  c[i] = carry + c[i];
+
44  if (c[i] > 9)
+
45  {
+
46  carry = 1;
+
47  c[i] -= 10;
+
48  }
+
49  else
+
50  carry = 0;
+
51  // printf("= %d, %d\n", carry, c[i]);
+
52  i++;
+
53  }
+
54  return i;
+
55 }
+
+
+
+ +

◆ get_digits()

+ +
+
+ + + + + + + + +
unsigned int get_digits (unsigned char * number)
+
+

Get number of digits in a large number

+
74 {
+
75  unsigned int digits = MAX_DIGITS;
+
76  while (number[digits] == 0)
+
77  digits--;
+
78  return digits;
+
79 }
+
+
+
+ +

◆ main()

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

Main function

+
83 {
+
84  unsigned char
+
85  fn[MAX_DIGITS + 1]; /* array to store digits of a large number */
+
86  unsigned char fn1[MAX_DIGITS + 1];
+
87  unsigned char sum[MAX_DIGITS + 1];
+
88 
+
89  memset(fn, 0, MAX_DIGITS);
+
90  memset(fn1, 0, MAX_DIGITS);
+
91  memset(sum, 0, MAX_DIGITS);
+
92 
+
93  fn[0] = 1;
+
94  fn1[1] = 1;
+
95 
+
96  unsigned int index = 1, digit_count = 1;
+
97 
+
98  clock_t start_time = clock();
+
99  do
+
100  {
+
101  digit_count = add_numbers(fn, fn1, sum, digit_count);
+
102  // digit_count = get_digits(sum);
+
103 
+
104  // printf("%5u (%u) (%u) ", index, digit_count, get_digits(sum));
+
105  // print_number(sum, digit_count);
+
106  // putchar('\n');
+
107 
+
108  if (digit_count == MAX_DIGITS)
+
109  break;
+
110  memcpy(fn, fn1, MAX_DIGITS);
+
111  memcpy(fn1, sum, MAX_DIGITS);
+
112  index++;
+
113  } while (digit_count < MAX_DIGITS);
+
114  clock_t end_time = clock();
+
115 
+
116  printf("Time taken: %.4g ms\n",
+
117  1e3 * (end_time - start_time) / CLOCKS_PER_SEC);
+
118  printf("The nth term for %d digits: %u \n", MAX_DIGITS, index--);
+
119  print_number(sum, digit_count);
+
120 
+
121  return 0;
+
122 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ print_number()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int print_number (unsigned char * number,
int N 
)
+
+

Print a large number

+
59 {
+
60  int start_pos = N - 1;
+
61 
+
62  /* skip all initial zeros */
+
63  while (number[start_pos] == 0)
+
64  start_pos--;
+
65 
+
66  for (int i = start_pos; i >= 0; i--)
+
67  putchar(number[i] + 0x30);
+
68 
+
69  return 0;
+
70 }
+
+
+
+
+
+
#define N
Definition: sol1.c:111
+
int add_numbers(uint8_t *a, uint8_t *b, uint8_t N)
Definition: sol1.c:44
+
#define MAX_DIGITS
Definition: sol1.c:13
+
int print_number(uint8_t *number, uint8_t N, int8_t num_digits_to_print)
Definition: sol1.c:82
+ + + + diff --git a/d8/d32/problem__25_2sol1_8c.js b/d8/d32/problem__25_2sol1_8c.js new file mode 100644 index 00000000..84e7c425 --- /dev/null +++ b/d8/d32/problem__25_2sol1_8c.js @@ -0,0 +1,8 @@ +var problem__25_2sol1_8c = +[ + [ "MAX_DIGITS", "d8/d32/problem__25_2sol1_8c.html#a001791a21d538b8b9176287ae60d9b61", null ], + [ "add_numbers", "d8/d32/problem__25_2sol1_8c.html#af9729befaffc1aab9ac9fedc4706e66c", null ], + [ "get_digits", "d8/d32/problem__25_2sol1_8c.html#a2b90df6bfbf0d18cd9a19c1a71453783", null ], + [ "main", "d8/d32/problem__25_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97", null ], + [ "print_number", "d8/d32/problem__25_2sol1_8c.html#abe5bc1f170b2108a19d0a16d30bd3235", null ] +]; \ No newline at end of file diff --git a/d8/d32/problem__25_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map b/d8/d32/problem__25_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map new file mode 100644 index 00000000..c9f13522 --- /dev/null +++ b/d8/d32/problem__25_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d8/d32/problem__25_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 b/d8/d32/problem__25_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 new file mode 100644 index 00000000..fbabfcea --- /dev/null +++ b/d8/d32/problem__25_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 @@ -0,0 +1 @@ +c53a2965b165858d6eebe355bb5319bf \ No newline at end of file diff --git a/d8/d32/problem__25_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg b/d8/d32/problem__25_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg new file mode 100644 index 00000000..ca78638c --- /dev/null +++ b/d8/d32/problem__25_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +add_numbers + + + + + +Node1->Node2 + + + + + +Node3 + + +print_number + + + + + +Node1->Node3 + + + + + diff --git a/d8/d38/queue_8h_source.html b/d8/d38/queue_8h_source.html new file mode 100644 index 00000000..158ff8e8 --- /dev/null +++ b/d8/d38/queue_8h_source.html @@ -0,0 +1,150 @@ + + + + + + + +Algorithms_in_C: data_structures/graphs/queue.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
queue.h
+
+
+
1 // Queue ADT header file ... COMP2521
+
2 
+
3 typedef struct QueueRep *queue;
+
4 
+
5 queue newQueue(); // set up empty queue
+
6 void dropQueue(queue); // remove unwanted queue
+
7 int QueueIsEmpty(queue); // check whether queue is empty
+
8 void QueueEnqueue(queue, int); // insert an int at end of queue
+
9 int QueueDequeue(queue); // remove int from front of queue
+
10 
+
11 // By
+
12 // .----------------. .----------------. .----------------.
+
13 // .-----------------. .----------------. .----------------.
+
14 // | .--------------. || .--------------. || .--------------. ||
+
15 // .--------------. | | .--------------. || .--------------. | | | _________ |
+
16 // || | _____ _____ | || | __ | || | ____ _____ | | | | ____ ____
+
17 // | || | ____ | | | | | _ _ | | || ||_ _||_ _|| || | / \
+
18 // | || ||_ \|_ _| | | | | |_ || _| | || | .' `. | | | | |_/ | |
+
19 // \_| | || | | | | | | || | / /\ \ | || | | \ | | | | | | |
+
20 // |__| | | || | / .--. \ | | | | | | | || | | ' ' | | || |
+
21 // / ____ \ | || | | |\ \| | | | | | | __ | | || | | | | | | |
+
22 // | | _| |_ | || | \ `--' / | || | _/ / \ \_ | || | _| |_\ |_
+
23 // | | | | _| | | |_ | || | \ `--' / | | | | |_____| | || | `.__.'
+
24 // | || ||____| |____|| || ||_____|\____| | | | | |____||____| | || | `.____.'
+
25 // | | | | | || | | || | | || | | | | |
+
26 // | || | | | | '--------------' || '--------------' ||
+
27 // '--------------' || '--------------' | | '--------------' || '--------------'
+
28 // |
+
29 // '----------------' '----------------' '----------------'
+
30 // '----------------' '----------------' '----------------'
+
31 
+
32 // Email : z5261243@unsw.edu.au
+
33 // hhoanhtuann@gmail.com
+
+
+
Definition: prime_factoriziation.c:25
+
Definition: binary_search_tree.c:14
+
Definition: bfs.c:6
+
Definition: queue.c:14
+
int main(int argc, char **argv)
Definition: c_atoi_str_to_integer.c:70
+
Definition: kruskal.c:41
+
Definition: bellman_ford.c:8
+
Definition: bellman_ford.c:14
+ + + + diff --git a/d8/d48/problem__10_2sol1_8c__incl.map b/d8/d48/problem__10_2sol1_8c__incl.map new file mode 100644 index 00000000..e6de2a51 --- /dev/null +++ b/d8/d48/problem__10_2sol1_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/d8/d48/problem__10_2sol1_8c__incl.md5 b/d8/d48/problem__10_2sol1_8c__incl.md5 new file mode 100644 index 00000000..22dae7f4 --- /dev/null +++ b/d8/d48/problem__10_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +f53480b4ebf7d209fef09417507d0192 \ No newline at end of file diff --git a/d8/d48/problem__10_2sol1_8c__incl.svg b/d8/d48/problem__10_2sol1_8c__incl.svg new file mode 100644 index 00000000..7074b1ee --- /dev/null +++ b/d8/d48/problem__10_2sol1_8c__incl.svg @@ -0,0 +1,68 @@ + + + + + + +project_euler/problem_10/sol1.c + + + +Node1 + + +project_euler/problem +_10/sol1.c + + + + + +Node2 + + +math.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + diff --git a/d8/d6a/problem__8_2sol1_8c__incl.map b/d8/d6a/problem__8_2sol1_8c__incl.map new file mode 100644 index 00000000..5ce0fe4e --- /dev/null +++ b/d8/d6a/problem__8_2sol1_8c__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/d8/d6a/problem__8_2sol1_8c__incl.md5 b/d8/d6a/problem__8_2sol1_8c__incl.md5 new file mode 100644 index 00000000..a7c088cd --- /dev/null +++ b/d8/d6a/problem__8_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +848771eb8bebe8eeb102fcb0382cf374 \ No newline at end of file diff --git a/d8/d6a/problem__8_2sol1_8c__incl.svg b/d8/d6a/problem__8_2sol1_8c__incl.svg new file mode 100644 index 00000000..f732b5d0 --- /dev/null +++ b/d8/d6a/problem__8_2sol1_8c__incl.svg @@ -0,0 +1,53 @@ + + + + + + +project_euler/problem_8/sol1.c + + + +Node1 + + +project_euler/problem +_8/sol1.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + diff --git a/d8/d7a/structtnode.html b/d8/d7a/structtnode.html new file mode 100644 index 00000000..ce93b9e6 --- /dev/null +++ b/d8/d7a/structtnode.html @@ -0,0 +1,136 @@ + + + + + + + +Algorithms_in_C: tnode Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
tnode Struct Reference
+
+
+
+Collaboration diagram for tnode:
+
+
+
+
[legend]
+ + + + + + + + + + +

+Data Fields

+char splitchar
 
+Tptr lokid
 
+Tptr eqkid
 
+Tptr hikid
 
+
The documentation for this struct was generated from the following file:
    +
  • sorting/multikey_quick_sort.c
  • +
+
+
+ + + + diff --git a/d8/d7a/structtnode.js b/d8/d7a/structtnode.js new file mode 100644 index 00000000..4d3e6ed5 --- /dev/null +++ b/d8/d7a/structtnode.js @@ -0,0 +1,7 @@ +var structtnode = +[ + [ "eqkid", "d8/d7a/structtnode.html#ad302cb43ee1cab8a29581e8aaf76bbd4", null ], + [ "hikid", "d8/d7a/structtnode.html#ae1f202bf98d22f8316eeb71b68a59951", null ], + [ "lokid", "d8/d7a/structtnode.html#af7ce6341b8536c58a5a9ebdb4862a32a", null ], + [ "splitchar", "d8/d7a/structtnode.html#a44127c1d017332403d91a96a1633a76a", null ] +]; \ No newline at end of file diff --git a/d8/d7c/dict_8h_source.html b/d8/d7c/dict_8h_source.html new file mode 100644 index 00000000..2cac8b28 --- /dev/null +++ b/d8/d7c/dict_8h_source.html @@ -0,0 +1,194 @@ + + + + + + + +Algorithms_in_C: data_structures/dictionary/dict.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
dict.h
+
+
+
1 /*
+
2  author: Christian Bender
+
3  public interface for the dictionary.
+
4 
+
5  The dictionary prepares space for 1000 elements.
+
6 */
+
7 
+
8 #ifndef __DICT__H
+
9 #define __DICT__H
+
10 
+
11 #define MAXELEMENTS 1000
+
12 
+
13 /*
+
14  special data type called 'Dictionary'
+
15  for generic use
+
16 */
+
17 typedef struct Dict
+
18 {
+
19  /*
+
20  void* array for generic use of the dictionary.
+
21  there actual saves the entries.
+
22  */
+
23  void *elements[MAXELEMENTS];
+
24 
+
25  /* contains the number of elements in this dictionary */
+
26  int number_of_elements;
+
27 
+
28 } Dictionary;
+
29 
+
30 /*
+
31  create_dict: is a simple constructor for creating
+
32  a dictionary and setting up the
+
33  member field 'number_of_elements'
+
34  and prepares the inner array 'elements'
+
35 */
+
36 Dictionary *create_dict(void);
+
37 
+
38 /*
+
39  add_item_label: adds item (void*) to the dictionary at given label
+
40  returns 0 if adding was sucessful otherwise -1
+
41 */
+
42 int add_item_label(Dictionary *, char label[], void *);
+
43 
+
44 /*
+
45  add_item_index: adds item (void*) to the dictionary at given index (int)
+
46  returns 0 if adding was sucessful otherwise -1
+
47 */
+
48 int add_item_index(Dictionary *, int index, void *);
+
49 
+
50 /*
+
51  get_element: returns the element at given label
+
52 */
+
53 void *get_element_label(Dictionary *, char[]);
+
54 
+
55 /*
+
56  get_element: returns the element at given index
+
57 */
+
58 void *get_element_index(Dictionary *, int);
+
59 
+
60 /*
+
61  simple destrcutor function
+
62 */
+
63 void destroy(Dictionary *);
+
64 
+
65 #endif
+
+
+
void delete_bt(node **root, int ele)
Definition: threaded_binary_trees.c:173
+
Definition: prime_factoriziation.c:25
+
Definition: binary_search_tree.c:14
+
Definition: avl.c:5
+
int data
Definition: threaded_binary_trees.c:28
+
struct Node * rlink
Definition: threaded_binary_trees.c:30
+
Definition: threaded_binary_trees.c:27
+
Definition: dict.h:18
+
void postorder_display(node *curr)
Definition: threaded_binary_trees.c:143
+
struct Node node
+
void search(node *root, int ele)
Definition: threaded_binary_trees.c:98
+
struct Node * llink
Definition: threaded_binary_trees.c:29
+
void preorder_display(node *curr)
Definition: threaded_binary_trees.c:157
+
int main(int argc, char **argv)
Definition: c_atoi_str_to_integer.c:70
+
Definition: carray.h:32
+
void inorder_display(node *curr)
Definition: threaded_binary_trees.c:129
+
node * create_node(int data)
Definition: threaded_binary_trees.c:38
+
#define max(a, b)
Definition: kohonen_som_topology.c:31
+
void insert_bt(node **root, int data)
Definition: threaded_binary_trees.c:51
+
int main()
Definition: threaded_binary_trees.c:255
+ + + + diff --git a/d8/d81/md_project_euler__r_e_a_d_m_e.html b/d8/d81/md_project_euler__r_e_a_d_m_e.html new file mode 100644 index 00000000..0f2e5fb4 --- /dev/null +++ b/d8/d81/md_project_euler__r_e_a_d_m_e.html @@ -0,0 +1,123 @@ + + + + + + + +Algorithms_in_C: ProjectEuler + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ProjectEuler
+
+
+

Problems are taken from https://projecteuler.net/.

+

Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Project Euler is ideal for mathematicians who are learning to code.

+

Here the efficiency of your code is also checked. I've tried to provide all the best possible solutions.

+

PROBLEMS:

+
    +
  1. If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3,5,6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below N.
  2. +
  3. Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1,2,3,5,8,13,21,34,55,89,.. By considering the terms in the Fibonacci sequence whose values do not exceed n, find the sum of the even-valued terms.
    + e.g. for n=10, we have {2,8}, sum is 10.
  4. +
  5. The prime factors of 13195 are 5,7,13 and 29. What is the largest prime factor of a given number N? e.g. for 10, largest prime factor = 5. For 17, largest prime factor = 17.
  6. +
  7. A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99. Find the largest palindrome made from the product of two 3-digit numbers which is less than N.
  8. +
  9. 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. What is the smallest positive number that is evenly divisible(divisible with no remainder) by all of the numbers from 1 to N?
  10. +
  11. The sum of the squares of the first ten natural numbers is, 1^2 + 2^2 + ... + 10^2 = 385 The square of the sum of the first ten natural numbers is, (1 + 2 + ... + 10)^2 = 552 = 3025 Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 − 385 = 2640. Find the difference between the sum of the squares of the first N natural numbers and the square of the sum.
  12. +
  13. By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. What is the Nth prime number?
  14. +
+
+
+
+ + + + diff --git a/d8/da2/dynamic__array_8h_source.html b/d8/da2/dynamic__array_8h_source.html new file mode 100644 index 00000000..0ab8294d --- /dev/null +++ b/d8/da2/dynamic__array_8h_source.html @@ -0,0 +1,139 @@ + + + + + + + +Algorithms_in_C: data_structures/dynamic_array/dynamic_array.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
dynamic_array.h
+
+
+
1 #ifndef __DYNAMIC_ARRAY__
+
2 #define __DYNAMIC_ARRAY__
+
3 #define DEFAULT_CAPACITY 1 << 4
+
4 #define INDEX_OUT_OF_BOUNDS NULL
+
5 
+
6 typedef struct dynamic_array
+
7 {
+
8  void **items;
+
9  unsigned size;
+
10  unsigned capacity;
+ +
12 
+
13 extern dynamic_array_t *init_dynamic_array();
+
14 
+
15 extern void *add(dynamic_array_t *da, const void *value);
+
16 
+
17 extern void *put(dynamic_array_t *da, const void *value, unsigned index);
+
18 
+
19 extern void *get(dynamic_array_t *da, const unsigned index);
+
20 
+
21 extern void delete (dynamic_array_t *da, const unsigned index);
+
22 
+
23 unsigned contains(const unsigned size, const unsigned index);
+
24 
+
25 extern void *retrive_copy_of_value(const void *value);
+
26 
+
27 #endif
+
+
+
Definition: dict.h:18
+
int main(int argc, char **argv)
Definition: c_atoi_str_to_integer.c:70
+
Definition: dynamic_array.h:7
+ + + + diff --git a/d8/de0/problem__9_2sol2_8c.html b/d8/de0/problem__9_2sol2_8c.html new file mode 100644 index 00000000..a3ed12b4 --- /dev/null +++ b/d8/de0/problem__9_2sol2_8c.html @@ -0,0 +1,176 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_9/sol2.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol2.c File Reference
+
+
+ +

Problem 9 solution +More...

+
#include <stdio.h>
+#include <stdlib.h>
+
+Include dependency graph for sol2.c:
+
+
+
+
+
+ + + +

+Functions

int main (void)
 
+

Detailed Description

+

Problem 9 solution

+
Author
Krishna Vedala
+

Problem Statement: A Pythagorean triplet is a set of three natural numbers, \(a < b < c\), for which, \(a^2 + b^2 = c^2\). For example, \(3^2 + 4^2 = 9 + 16 = 25 = 5^2\). There exists exactly one Pythagorean triplet for which \(a + b + c = 1000\). Find the product abc.

+

Given \(a^2 + b^2 = c^2\) and \(a+b+c = n\), we can write:

+\begin{eqnarray*} b &=& \frac{n^2 - 2an}{2n - 2a}\\ c &=& n - a - b \end{eqnarray*} +

+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + +
int main (void )
+
+

Main function

+
24 {
+
25  int N = 1000;
+
26 
+
27  for (int a = 1; a < 300; a++)
+
28  {
+
29  long tmp1 = N * N - 2 * a * N;
+
30  long tmp2 = 2 * (N - a);
+
31  div_t tmp3 = div(tmp1, tmp2);
+
32  int b = tmp3.quot;
+
33  int c = N - a - b;
+
34 
+
35  if (a * a + b * b == c * c)
+
36  {
+
37  printf("%d x %d x %d = %ld\n", a, b, c, (long int)a * b * c);
+
38  return 0;
+
39  }
+
40  }
+
41 
+
42  return 0;
+
43 }
+
+
+
+
+
+
#define N
Definition: sol1.c:111
+ + + + diff --git a/d8/de0/problem__9_2sol2_8c.js b/d8/de0/problem__9_2sol2_8c.js new file mode 100644 index 00000000..bd8797c9 --- /dev/null +++ b/d8/de0/problem__9_2sol2_8c.js @@ -0,0 +1,4 @@ +var problem__9_2sol2_8c = +[ + [ "main", "d8/de0/problem__9_2sol2_8c.html#a840291bc02cba5474a4cb46a9b9566fe", null ] +]; \ No newline at end of file diff --git a/d9/d41/md_data_structures_array__r_e_a_d_m_e.html b/d9/d41/md_data_structures_array__r_e_a_d_m_e.html new file mode 100644 index 00000000..731cff07 --- /dev/null +++ b/d9/d41/md_data_structures_array__r_e_a_d_m_e.html @@ -0,0 +1,126 @@ + + + + + + + +Algorithms_in_C: Array + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Array
+
+
+

Simple array of integers. With I/O functions, Sort Functions and Search Functions.

+

#Sort Function

+

The Sort function sorts the elements in the range in a particular order. The different types of sorting methods are Bubble Sort, Selection Sort, Merge Sort and Quick Sort. Bubble Sort repeatedly sorts the adjacent elements if they are in wrong order.

+

+Structure

+
typedef struct CArray {
+
int *array;
+
int size;
+
} CArray;
+

+Files

+
    +
  • CArray.c - Array Implementations
  • +
  • CArray.h - Import for Usage
  • +
  • CArrayTests.c - Usage Examples and tests
  • +
+
+
+
+
Definition: carray.h:32
+ + + + diff --git a/d9/d5c/struct_queue_rep__coll__graph.map b/d9/d5c/struct_queue_rep__coll__graph.map new file mode 100644 index 00000000..7decf007 --- /dev/null +++ b/d9/d5c/struct_queue_rep__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/d9/d5c/struct_queue_rep__coll__graph.md5 b/d9/d5c/struct_queue_rep__coll__graph.md5 new file mode 100644 index 00000000..fc0489d3 --- /dev/null +++ b/d9/d5c/struct_queue_rep__coll__graph.md5 @@ -0,0 +1 @@ +d01381d0f58ce1d3d07ab73e25fa608a \ No newline at end of file diff --git a/d9/d5c/struct_queue_rep__coll__graph.svg b/d9/d5c/struct_queue_rep__coll__graph.svg new file mode 100644 index 00000000..a67c094c --- /dev/null +++ b/d9/d5c/struct_queue_rep__coll__graph.svg @@ -0,0 +1,53 @@ + + + + + + +QueueRep + + + +Node1 + + +QueueRep + + + + + +Node2 + + +node + + + + + +Node2->Node1 + + + head +tail + + + +Node2->Node2 + + + leftNode +next +right +left +par +link +pre +rightNode + + + diff --git a/d9/d75/problem__15_2sol1_8c__incl.map b/d9/d75/problem__15_2sol1_8c__incl.map new file mode 100644 index 00000000..ea371f23 --- /dev/null +++ b/d9/d75/problem__15_2sol1_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/d9/d75/problem__15_2sol1_8c__incl.md5 b/d9/d75/problem__15_2sol1_8c__incl.md5 new file mode 100644 index 00000000..ccbfe2b9 --- /dev/null +++ b/d9/d75/problem__15_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +3ce497186f5a7f696fc92a89b46d9862 \ No newline at end of file diff --git a/d9/d75/problem__15_2sol1_8c__incl.svg b/d9/d75/problem__15_2sol1_8c__incl.svg new file mode 100644 index 00000000..e43caea2 --- /dev/null +++ b/d9/d75/problem__15_2sol1_8c__incl.svg @@ -0,0 +1,68 @@ + + + + + + +project_euler/problem_15/sol1.c + + + +Node1 + + +project_euler/problem +_15/sol1.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + diff --git a/d9/d7e/problem__20_2sol1_8c__incl.map b/d9/d7e/problem__20_2sol1_8c__incl.map new file mode 100644 index 00000000..6f3ef229 --- /dev/null +++ b/d9/d7e/problem__20_2sol1_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/d9/d7e/problem__20_2sol1_8c__incl.md5 b/d9/d7e/problem__20_2sol1_8c__incl.md5 new file mode 100644 index 00000000..870c6474 --- /dev/null +++ b/d9/d7e/problem__20_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +a4b8a82fd7dd1c1f367a6cfd2decf9e6 \ No newline at end of file diff --git a/d9/d7e/problem__20_2sol1_8c__incl.svg b/d9/d7e/problem__20_2sol1_8c__incl.svg new file mode 100644 index 00000000..5e037166 --- /dev/null +++ b/d9/d7e/problem__20_2sol1_8c__incl.svg @@ -0,0 +1,68 @@ + + + + + + +project_euler/problem_20/sol1.c + + + +Node1 + + +project_euler/problem +_20/sol1.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + +Node4 + + +time.h + + + + + +Node1->Node4 + + + + + diff --git a/d9/d85/ode__semi__implicit__euler_8c__incl.map b/d9/d85/ode__semi__implicit__euler_8c__incl.map new file mode 100644 index 00000000..6716c742 --- /dev/null +++ b/d9/d85/ode__semi__implicit__euler_8c__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/d9/d85/ode__semi__implicit__euler_8c__incl.md5 b/d9/d85/ode__semi__implicit__euler_8c__incl.md5 new file mode 100644 index 00000000..59048893 --- /dev/null +++ b/d9/d85/ode__semi__implicit__euler_8c__incl.md5 @@ -0,0 +1 @@ +499e6ea8ca13b097da04cd445d5d7864 \ No newline at end of file diff --git a/d9/d85/ode__semi__implicit__euler_8c__incl.svg b/d9/d85/ode__semi__implicit__euler_8c__incl.svg new file mode 100644 index 00000000..d525ffeb --- /dev/null +++ b/d9/d85/ode__semi__implicit__euler_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + +numerical_methods/ode_semi_implicit_euler.c + + + +Node1 + + +numerical_methods/ode +_semi_implicit_euler.c + + + + + +Node2 + + +math.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + +Node5 + + +time.h + + + + + +Node1->Node5 + + + + + diff --git a/d9/da7/problem__10_2sol2_8c.html b/d9/da7/problem__10_2sol2_8c.html new file mode 100644 index 00000000..93216d9d --- /dev/null +++ b/d9/da7/problem__10_2sol2_8c.html @@ -0,0 +1,207 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_10/sol2.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol2.c File Reference
+
+
+ +

Problem 10 solution +More...

+
#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+Include dependency graph for sol2.c:
+
+
+
+
+
+ + + +

+Functions

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

Detailed Description

+

Problem 10 solution

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ main()

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

Main function

+
12 {
+
13  long n = 100;
+
14  long long sum = 0;
+
15  char *sieve = NULL;
+
16 
+
17  if (argc == 2) /* if command line argument is provided */
+
18  n = atol(argv[1]); /* use that as the upper limit */
+
19 
+
20  /* allocate memory for the sieve */
+
21  sieve = calloc(n, sizeof(*sieve));
+
22  if (!sieve)
+
23  {
+
24  perror("Unable to allocate memory!");
+
25  return -1;
+
26  }
+
27 
+
28  /* build sieve of Eratosthenes
+
29  In the array,
+
30  * if i^th cell is '1', then 'i' is composite
+
31  * if i^th cell is '0', then 'i' is prime
+
32  */
+
33  for (long i = 2; i < sqrtl(n); i++)
+
34  {
+
35  /* if i^th element is prime, mark all its multiples
+
36  as composites */
+
37  if (!sieve[i])
+
38  {
+
39  for (long j = i * i; j < n + 1; j += i)
+
40  {
+
41  sieve[j] = 1;
+
42  }
+
43  sum += i;
+
44  }
+
45  }
+
46 
+
47  for (long i = sqrtl(n) + 1; i < n; i++)
+
48  if (!sieve[i])
+
49  sum += i;
+
50 
+
51  free(sieve);
+
52 
+
53  printf("%ld: %lld\n", n, sum);
+
54 
+
55  return 0;
+
56 }
+
+
+
+
+
+ + + + diff --git a/d9/da7/problem__10_2sol2_8c.js b/d9/da7/problem__10_2sol2_8c.js new file mode 100644 index 00000000..2ac8c161 --- /dev/null +++ b/d9/da7/problem__10_2sol2_8c.js @@ -0,0 +1,4 @@ +var problem__10_2sol2_8c = +[ + [ "main", "d9/da7/problem__10_2sol2_8c.html#a0ddf1224851353fc92bfbff6f499fa97", null ] +]; \ No newline at end of file diff --git a/d9/dcc/adaline__learning_8c__incl.map b/d9/dcc/adaline__learning_8c__incl.map new file mode 100644 index 00000000..d3d8b7c0 --- /dev/null +++ b/d9/dcc/adaline__learning_8c__incl.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/d9/dcc/adaline__learning_8c__incl.md5 b/d9/dcc/adaline__learning_8c__incl.md5 new file mode 100644 index 00000000..b6426088 --- /dev/null +++ b/d9/dcc/adaline__learning_8c__incl.md5 @@ -0,0 +1 @@ +91c04478bd342c37c9a1a08b7c31b13d \ No newline at end of file diff --git a/d9/dcc/adaline__learning_8c__incl.svg b/d9/dcc/adaline__learning_8c__incl.svg new file mode 100644 index 00000000..ce564512 --- /dev/null +++ b/d9/dcc/adaline__learning_8c__incl.svg @@ -0,0 +1,128 @@ + + + + + + +machine_learning/adaline_learning.c + + + +Node1 + + +machine_learning/adaline +_learning.c + + + + + +Node2 + + +assert.h + + + + + +Node1->Node2 + + + + + +Node3 + + +limits.h + + + + + +Node1->Node3 + + + + + +Node4 + + +math.h + + + + + +Node1->Node4 + + + + + +Node5 + + +stdbool.h + + + + + +Node1->Node5 + + + + + +Node6 + + +stdio.h + + + + + +Node1->Node6 + + + + + +Node7 + + +stdlib.h + + + + + +Node1->Node7 + + + + + +Node8 + + +time.h + + + + + +Node1->Node8 + + + + + diff --git a/da/d23/list_8h_source.html b/da/d23/list_8h_source.html new file mode 100644 index 00000000..2e1ca23b --- /dev/null +++ b/da/d23/list_8h_source.html @@ -0,0 +1,144 @@ + + + + + + + +Algorithms_in_C: data_structures/list/list.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
list.h
+
+
+
1 #ifndef __LIST__
+
2 #define __LIST__
+
3 
+
4 #define L List_T
+
5 typedef struct L *L;
+
6 
+
7 struct L
+
8 {
+
9  void *val;
+
10  L next;
+
11 };
+
12 
+
13 extern L List_init(void);
+
14 extern L List_push(L list, void *val);
+
15 extern int List_length(L list);
+
16 extern void **List_toArray(L list);
+
17 extern L List_append(L list, L tail);
+
18 extern L List_list(L list, void *val, ...);
+
19 /* TODO */
+
20 extern L List_copy(L list);
+
21 extern int List_pop(L *list);
+
22 
+
23 #undef L
+
24 #endif
+
+
+
Definition: list.h:8
+
#define min(a, b)
Definition: kohonen_som_topology.c:37
+
Definition: prime_factoriziation.c:25
+
Definition: binary_search_tree.c:14
+
int data
Definition: threaded_binary_trees.c:28
+
Definition: threaded_binary_trees.c:27
+
Definition: min_heap.c:5
+
Definition: bfs.c:6
+
Definition: max_heap.c:5
+
int main(int argc, char **argv)
Definition: c_atoi_str_to_integer.c:70
+
void display(double **A, int N)
Definition: lu_decompose.c:68
+ + + + diff --git a/da/d35/problem__1_2sol1_8c.html b/da/d35/problem__1_2sol1_8c.html new file mode 100644 index 00000000..0030424a --- /dev/null +++ b/da/d35/problem__1_2sol1_8c.html @@ -0,0 +1,173 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_1/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 1 solution +More...

+
#include <stdio.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + +

+Functions

int main ()
 
+

Detailed Description

+

Problem 1 solution

+

An Efficient code to print all the sum of all numbers that are multiples of 3 & 5 below N.

+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+

Main function

+
13 {
+
14  int t;
+
15  printf("Enter number of times you want to try");
+
16  scanf("%d", &t);
+
17  while (t--) // while t > 0, decrement 't' before every iteration
+
18  {
+
19  unsigned long long N, p = 0, sum = 0;
+
20  printf("Enter the value of N ");
+
21 
+
22  scanf("%lld", &N); // Take input of N from user
+
23  p = (N - 1) / 3;
+
24  sum = ((3 * p * (p + 1)) / 2);
+
25 
+
26  p = (N - 1) / 5;
+
27  sum = sum + ((5 * p * (p + 1)) / 2);
+
28 
+
29  p = (N - 1) / 15;
+
30  sum = sum - ((15 * p * (p + 1)) / 2);
+
31  printf("%lld\n", sum); // print the sum of all numbers that are
+
32  // multiples of 3 & 5 below N
+
33  }
+
34  return 0;
+
35 }
+
+
+
+
+
+
#define N
Definition: sol1.c:111
+ + + + diff --git a/da/d35/problem__1_2sol1_8c.js b/da/d35/problem__1_2sol1_8c.js new file mode 100644 index 00000000..6acc494a --- /dev/null +++ b/da/d35/problem__1_2sol1_8c.js @@ -0,0 +1,4 @@ +var problem__1_2sol1_8c = +[ + [ "main", "da/d35/problem__1_2sol1_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/da/d38/durand__kerner__roots_8c.html b/da/d38/durand__kerner__roots_8c.html new file mode 100644 index 00000000..67f98814 --- /dev/null +++ b/da/d38/durand__kerner__roots_8c.html @@ -0,0 +1,494 @@ + + + + + + + +Algorithms_in_C: numerical_methods/durand_kerner_roots.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
durand_kerner_roots.c File Reference
+
+
+ +

Compute all possible approximate roots of any given polynomial using Durand Kerner algorithm +More...

+
#include <complex.h>
+#include <limits.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+Include dependency graph for durand_kerner_roots.c:
+
+
+
+
+
+ + + +

+Macros

#define ACCURACY   1e-10
 
+ + + + + + + + + +

+Functions

long double complex poly_function (double *coeffs, unsigned int degree, long double complex x)
 
const char * complex_str (long double complex x)
 
char check_termination (long double delta)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Compute all possible approximate roots of any given polynomial using Durand Kerner algorithm

+
Author
Krishna Vedala
+

Test the algorithm online: https://gist.github.com/kvedala/27f1b0b6502af935f6917673ec43bcd7

+

Try the highly unstable Wilkinson's polynomial:

./numerical_methods/durand_kerner_roots.c 1 -210 20615 -1256850 53327946
+
-1672280820 40171771630 -756111184500 11310276995381 -135585182899530
+
1307535010540395 -10142299865511450 63030812099294896 -311333643161390640
+
1206647803780373360 -3599979517947607200 8037811822645051776
+
-12870931245150988800 13803759753640704000 -8752948036761600000
+
2432902008176640000
+

Sample implementation results to compute approximate roots of the equation \(x^4-1=0\):
+Error evolution during root approximations computed every
+iteration. Roots evolution - shows the initial approximation of the
+roots and their convergence to a final approximation along with the iterative
+approximations

+

Macro Definition Documentation

+ +

◆ ACCURACY

+ +
+
+ + + + +
#define ACCURACY   1e-10
+
+

maximum accuracy limit

+ +
+
+

Function Documentation

+ +

◆ check_termination()

+ +
+
+ + + + + + + + +
char check_termination (long double delta)
+
+

check for termination condition

Parameters
+ + +
[in]deltapoint at which to evaluate the polynomial
+
+
+
Returns
0 if termination not reached
+
+1 if termination reached
+
85 {
+
86  static long double past_delta = INFINITY;
+
87  if (fabsl(past_delta - delta) <= ACCURACY || delta < ACCURACY)
+
88  return 1;
+
89  past_delta = delta;
+
90  return 0;
+
91 }
+
+
+
+ +

◆ complex_str()

+ +
+
+ + + + + + + + +
const char* complex_str (long double complex x)
+
+

create a textual form of complex number

Parameters
+ + +
[in]xpoint at which to evaluate the polynomial
+
+
+
Returns
pointer to converted string
+
68 {
+
69  static char msg[50];
+
70  double r = creal(x);
+
71  double c = cimag(x);
+
72 
+
73  sprintf(msg, "% 7.04g%+7.04gj", r, c);
+
74 
+
75  return msg;
+
76 }
+
+
+
+ +

◆ main()

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

store intermediate values to a CSV file

+
97 {
+
98  double *coeffs = NULL;
+
99  long double complex *s0 = NULL;
+
100  unsigned int degree = 0;
+
101  unsigned int n, i;
+
102 
+
103  if (argc < 2)
+
104  {
+
105  printf("Please pass the coefficients of the polynomial as commandline "
+
106  "arguments.\n");
+
107  return 0;
+
108  }
+
109 
+
110  degree = argc - 1; /* detected polynomial degree */
+
111  coeffs = (double *)malloc(
+
112  degree * sizeof(double)); /* store all input coefficients */
+
113  s0 = (long double complex *)malloc(
+
114  (degree - 1) *
+
115  sizeof(long double complex)); /* number of roots = degree-1 */
+
116 
+
117  /* initialize random seed: */
+
118  srand(time(NULL));
+
119 
+
120  if (!coeffs || !s0)
+
121  {
+
122  perror("Unable to allocate memory!");
+
123  if (coeffs)
+
124  free(coeffs);
+
125  if (s0)
+
126  free(s0);
+
127  return EXIT_FAILURE;
+
128  }
+
129 
+
130 #if defined(DEBUG) || !defined(NDEBUG)
+
131  /**
+
132  * store intermediate values to a CSV file
+
133  **/
+
134  FILE *log_file = fopen("durand_kerner.log.csv", "wt");
+
135  if (!log_file)
+
136  {
+
137  perror("Unable to create a storage log file!");
+
138  free(coeffs);
+
139  free(s0);
+
140  return EXIT_FAILURE;
+
141  }
+
142  fprintf(log_file, "iter#,");
+
143 #endif
+
144 
+
145  printf("Computing the roots for:\n\t");
+
146  for (n = 0; n < degree; n++)
+
147  {
+
148  coeffs[n] = strtod(argv[n + 1], NULL);
+
149  if (n < degree - 1 && coeffs[n] != 0)
+
150  printf("(%g) x^%d + ", coeffs[n], degree - n - 1);
+
151  else if (coeffs[n] != 0)
+
152  printf("(%g) x^%d = 0\n", coeffs[n], degree - n - 1);
+
153 
+
154  double tmp;
+
155  if (n > 0)
+
156  coeffs[n] /= tmp; /* numerical errors less when the first
+
157  coefficient is "1" */
+
158  else
+
159  {
+
160  tmp = coeffs[0];
+
161  coeffs[0] = 1;
+
162  }
+
163 
+
164  /* initialize root approximations with random values */
+
165  if (n < degree - 1)
+
166  {
+
167  s0[n] = (long double)rand() + (long double)rand() * I;
+
168 #if defined(DEBUG) || !defined(NDEBUG)
+
169  fprintf(log_file, "root_%d,", n);
+
170 #endif
+
171  }
+
172  }
+
173 
+
174 #if defined(DEBUG) || !defined(NDEBUG)
+
175  fprintf(log_file, "avg. correction");
+
176  fprintf(log_file, "\n0,");
+
177  for (n = 0; n < degree - 1; n++)
+
178  fprintf(log_file, "%s,", complex_str(s0[n]));
+
179 #endif
+
180 
+
181  double tol_condition = 1;
+
182  unsigned long iter = 0;
+
183 
+
184  clock_t end_time, start_time = clock();
+
185  while (!check_termination(tol_condition) && iter < INT_MAX)
+
186  {
+
187  long double complex delta = 0;
+
188  tol_condition = 0;
+
189  iter++;
+
190 
+
191 #if defined(DEBUG) || !defined(NDEBUG)
+
192  fprintf(log_file, "\n%ld,", iter);
+
193 #endif
+
194 
+
195  for (n = 0; n < degree - 1; n++)
+
196  {
+
197  long double complex numerator =
+
198  poly_function(coeffs, degree, s0[n]);
+
199  long double complex denominator = 1.0;
+
200  for (i = 0; i < degree - 1; i++)
+
201  if (i != n)
+
202  denominator *= s0[n] - s0[i];
+
203 
+
204  delta = numerator / denominator;
+
205 
+
206  if (isnan(cabsl(delta)) || isinf(cabsl(delta)))
+
207  {
+
208  printf("\n\nOverflow/underrun error - got value = %Lg",
+
209  cabsl(delta));
+
210  goto end;
+
211  }
+
212 
+
213  s0[n] -= delta;
+
214 
+
215  tol_condition = fmaxl(tol_condition, fabsl(cabsl(delta)));
+
216 
+
217 #if defined(DEBUG) || !defined(NDEBUG)
+
218  fprintf(log_file, "%s,", complex_str(s0[n]));
+
219 #endif
+
220  }
+
221  // tol_condition /= (degree - 1);
+
222 
+
223 #if defined(DEBUG) || !defined(NDEBUG)
+
224  if (iter % 500 == 0)
+
225  {
+
226  printf("Iter: %lu\t", iter);
+
227  for (n = 0; n < degree - 1; n++)
+
228  printf("\t%s", complex_str(s0[n]));
+
229  printf("\t\tabsolute average change: %.4g\n", tol_condition);
+
230  }
+
231 
+
232  fprintf(log_file, "%.4g", tol_condition);
+
233 #endif
+
234  }
+
235 end:
+
236 
+
237  end_time = clock();
+
238 
+
239 #if defined(DEBUG) || !defined(NDEBUG)
+
240  fclose(log_file);
+
241 #endif
+
242 
+
243  printf("\nIterations: %lu\n", iter);
+
244  for (n = 0; n < degree - 1; n++)
+
245  printf("\t%s\n", complex_str(s0[n]));
+
246  printf("absolute average change: %.4g\n", tol_condition);
+
247  printf("Time taken: %.4g sec\n",
+
248  (end_time - start_time) / (double)CLOCKS_PER_SEC);
+
249 
+
250  free(coeffs);
+
251  free(s0);
+
252 
+
253  return 0;
+
254 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ poly_function()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
long double complex poly_function (double * coeffs,
unsigned int degree,
long double complex x 
)
+
+

Evaluate the value of a polynomial with given coefficients

Parameters
+ + + + +
[in]coeffscoefficients of the polynomial
[in]degreedegree of polynomial
[in]xpoint at which to evaluate the polynomial
+
+
+
Returns
\(f(x)\)
+
52 {
+
53  long double complex out = 0.;
+
54  unsigned int n;
+
55 
+
56  for (n = 0; n < degree; n++)
+
57  out += coeffs[n] * cpow(x, degree - n - 1);
+
58 
+
59  return out;
+
60 }
+
+
+
+
+
+
long double complex poly_function(double *coeffs, unsigned int degree, long double complex x)
Definition: durand_kerner_roots.c:50
+
const char * complex_str(long double complex x)
Definition: durand_kerner_roots.c:67
+
char check_termination(long double delta)
Definition: durand_kerner_roots.c:84
+
#define ACCURACY
Definition: durand_kerner_roots.c:41
+ + + + diff --git a/da/d38/durand__kerner__roots_8c.js b/da/d38/durand__kerner__roots_8c.js new file mode 100644 index 00000000..30f293d0 --- /dev/null +++ b/da/d38/durand__kerner__roots_8c.js @@ -0,0 +1,8 @@ +var durand__kerner__roots_8c = +[ + [ "ACCURACY", "da/d38/durand__kerner__roots_8c.html#af270a96662132d0385cb6b4637c5a689", null ], + [ "check_termination", "da/d38/durand__kerner__roots_8c.html#a26d5695ebed0818a3e7cf4b10aacab52", null ], + [ "complex_str", "da/d38/durand__kerner__roots_8c.html#afa5b04ce11475d67049cba8273741fb7", null ], + [ "main", "da/d38/durand__kerner__roots_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "poly_function", "da/d38/durand__kerner__roots_8c.html#adf4ae062a028c6faf2b96c9c1eb343af", null ] +]; \ No newline at end of file diff --git a/da/d38/durand__kerner__roots_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/da/d38/durand__kerner__roots_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..15974602 --- /dev/null +++ b/da/d38/durand__kerner__roots_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/da/d38/durand__kerner__roots_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/da/d38/durand__kerner__roots_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..36b3a954 --- /dev/null +++ b/da/d38/durand__kerner__roots_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +07f4e3012e05e5377df1457f11276f09 \ No newline at end of file diff --git a/da/d38/durand__kerner__roots_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/da/d38/durand__kerner__roots_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..d1d2b89c --- /dev/null +++ b/da/d38/durand__kerner__roots_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,67 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +check_termination + + + + + +Node1->Node2 + + + + + +Node3 + + +complex_str + + + + + +Node1->Node3 + + + + + +Node4 + + +poly_function + + + + + +Node1->Node4 + + + + + diff --git a/da/d90/stack__linked__list_2stack_8h_source.html b/da/d90/stack__linked__list_2stack_8h_source.html new file mode 100644 index 00000000..ee9025c9 --- /dev/null +++ b/da/d90/stack__linked__list_2stack_8h_source.html @@ -0,0 +1,125 @@ + + + + + + + +Algorithms_in_C: data_structures/stack/stack_linked_list/stack.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
stack.h
+
+
+
1 #ifndef __STACK__
+
2 #define __STACK__
+
3 
+
4 #define T Stack_T
+
5 typedef struct T *T;
+
6 
+
7 extern T Stack_init(void);
+
8 extern int Stack_size(T stack);
+
9 extern int Stack_empty(T stack);
+
10 extern void Stack_push(T stack, void *val);
+
11 extern void *Stack_pop(T stack);
+
12 extern void Stack_print(T stack);
+
13 
+
14 #undef T
+
15 #endif
+
+
+
Definition: stack.c:16
+ + + + diff --git a/da/d9b/struct_trie_node.html b/da/d9b/struct_trie_node.html new file mode 100644 index 00000000..f6d0244f --- /dev/null +++ b/da/d9b/struct_trie_node.html @@ -0,0 +1,133 @@ + + + + + + + +Algorithms_in_C: TrieNode Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
TrieNode Struct Reference
+
+
+
+Collaboration diagram for TrieNode:
+
+
+
+
[legend]
+ + + + + + + + +

+Data Fields

+struct TrieNodechildren [ALPHABET_SIZE]
 
+char character
 
+bool isEndOfWord
 
+
The documentation for this struct was generated from the following file:
    +
  • data_structures/trie/trie.c
  • +
+
+
+ + + + diff --git a/da/d9b/struct_trie_node.js b/da/d9b/struct_trie_node.js new file mode 100644 index 00000000..df39e0cd --- /dev/null +++ b/da/d9b/struct_trie_node.js @@ -0,0 +1,6 @@ +var struct_trie_node = +[ + [ "character", "da/d9b/struct_trie_node.html#a8e9e3ac8a47ed2f730476945933722c1", null ], + [ "children", "da/d9b/struct_trie_node.html#a9dc2a9bc247486fac3e4b350c73a3060", null ], + [ "isEndOfWord", "da/d9b/struct_trie_node.html#ab2732ce1e141346865d997859836d663", null ] +]; \ No newline at end of file diff --git a/da/de2/shell__sort2_8c__incl.map b/da/de2/shell__sort2_8c__incl.map new file mode 100644 index 00000000..ac8f2177 --- /dev/null +++ b/da/de2/shell__sort2_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/da/de2/shell__sort2_8c__incl.md5 b/da/de2/shell__sort2_8c__incl.md5 new file mode 100644 index 00000000..aea6fb57 --- /dev/null +++ b/da/de2/shell__sort2_8c__incl.md5 @@ -0,0 +1 @@ +0df67ab4ba97825497cdc47c63949d96 \ No newline at end of file diff --git a/da/de2/shell__sort2_8c__incl.svg b/da/de2/shell__sort2_8c__incl.svg new file mode 100644 index 00000000..a47e522d --- /dev/null +++ b/da/de2/shell__sort2_8c__incl.svg @@ -0,0 +1,67 @@ + + + + + + +sorting/shell_sort2.c + + + +Node1 + + +sorting/shell_sort2.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + +Node4 + + +time.h + + + + + +Node1->Node4 + + + + + diff --git a/da/dfd/kohonen__som__trace_8c__incl.map b/da/dfd/kohonen__som__trace_8c__incl.map new file mode 100644 index 00000000..3c8e2dc1 --- /dev/null +++ b/da/dfd/kohonen__som__trace_8c__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/da/dfd/kohonen__som__trace_8c__incl.md5 b/da/dfd/kohonen__som__trace_8c__incl.md5 new file mode 100644 index 00000000..68d9173e --- /dev/null +++ b/da/dfd/kohonen__som__trace_8c__incl.md5 @@ -0,0 +1 @@ +6e118400eac37316551d8cb2f662913d \ No newline at end of file diff --git a/da/dfd/kohonen__som__trace_8c__incl.svg b/da/dfd/kohonen__som__trace_8c__incl.svg new file mode 100644 index 00000000..555d9054 --- /dev/null +++ b/da/dfd/kohonen__som__trace_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + +machine_learning/kohonen_som_trace.c + + + +Node1 + + +machine_learning/kohonen +_som_trace.c + + + + + +Node2 + + +math.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + +Node5 + + +time.h + + + + + +Node1->Node5 + + + + + diff --git a/db/d01/problem__13_2sol1_8c.html b/db/d01/problem__13_2sol1_8c.html new file mode 100644 index 00000000..f58ec4ce --- /dev/null +++ b/db/d01/problem__13_2sol1_8c.html @@ -0,0 +1,435 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_13/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 13 solution +More...

+
#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + + + +

+Macros

#define N   10
 
#define N2   (N + 10)
 
+ + + + + + + + + +

+Functions

int get_number (FILE *fp, char *buffer, uint8_t *out_int)
 
int add_numbers (uint8_t *a, uint8_t *b, uint8_t N)
 
int print_number (uint8_t *number, uint8_t N, int8_t num_digits_to_print)
 
int main (void)
 
+

Detailed Description

+

Problem 13 solution

+
Author
Krishna Vedala
+

Macro Definition Documentation

+ +

◆ N

+ +
+
+ + + + +
#define N   10
+
+

number of digits of the large number

+ +
+
+ +

◆ N2

+ +
+
+ + + + +
#define N2   (N + 10)
+
+

number of digits in output number

+ +
+
+

Function Documentation

+ +

◆ add_numbers()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int add_numbers (uint8_t * a,
uint8_t * b,
uint8_t N 
)
+
+

Function to add arbitraty length decimal integers stored in an array. a + b = c = new b

+
45 {
+
46  int carry = 0;
+
47  uint8_t *c = b; /* accumulate the result in the array 'b' */
+
48 
+
49  for (int i = 0; i < N; i++)
+
50  {
+
51  // printf("\t%d + %d + %d ", a[i], b[i], carry);
+
52  c[i] = carry + a[i] + b[i];
+
53  if (c[i] > 9) /* check for carry */
+
54  {
+
55  carry = 1;
+
56  c[i] -= 10;
+
57  }
+
58  else
+
59  carry = 0;
+
60  // printf("= %d, %d\n", carry, c[i]);
+
61  }
+
62 
+
63  for (int i = N; i < N + 10; i++)
+
64  {
+
65  if (carry == 0)
+
66  break;
+
67  // printf("\t0 + %d + %d ", b[i], carry);
+
68  c[i] = carry + c[i];
+
69  if (c[i] > 9)
+
70  {
+
71  carry = 1;
+
72  c[i] -= 10;
+
73  }
+
74  else
+
75  carry = 0;
+
76  // printf("= %d, %d\n", carry, c[i]);
+
77  }
+
78  return 0;
+
79 }
+
+
+
+ +

◆ get_number()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int get_number (FILE * fp,
char * buffer,
uint8_t * out_int 
)
+
+

Function to read the number from a file and store it in array.
+ index 0 of output buffer => units place
+ index 1 of output buffer => tens place and so on i.e., index i => 10^i th place

+
17 {
+
18  long l = fscanf(fp, "%s\n", buffer);
+
19  if (!l)
+
20  {
+
21  perror("Error reading line.");
+
22  return -1;
+
23  }
+
24  // printf("Number: %s\t length: %ld, %ld\n", buffer, strlen(buffer), l);
+
25 
+
26  long L = strlen(buffer);
+
27 
+
28  for (int i = 0; i < L; i++)
+
29  if (buffer[i] < 0x30 || buffer[i] > 0x39)
+
30  {
+
31  perror("found inavlid character in the number!");
+
32  return -1;
+
33  }
+
34  else
+
35  out_int[L - i - 1] = buffer[i] - 0x30;
+
36 
+
37  return 0;
+
38 }
+
+
+
+ +

◆ main()

+ +
+
+ + + + + + + + +
int main (void )
+
+

Main function

+
117 {
+
118  // const char N = 50, N2 = N+10; /* length of numbers */
+
119  char txt_buffer[N + 5]; /* temporary buffer */
+
120  uint8_t number[N]; /* array to store digits of a large number */
+
121  uint8_t sum[N2]; /* array to store the sum of the large numbers. For
+
122  safety, we make it twice the length of a number. */
+
123 
+
124  memset(sum, 0, sizeof(sum)); /* initialize sum array with 0 */
+
125 
+
126  FILE *fp = fopen("num.txt", "rt"); /* open text file to read */
+
127  if (!fp)
+
128  {
+
129  perror("Unable to open file 'num.txt'.");
+
130  return -1;
+
131  }
+
132 
+
133  int count = 0;
+
134  get_number(fp, txt_buffer, sum); /* 0 + = first_number = first_number */
+
135  do
+
136  {
+
137  count++;
+
138  if (get_number(fp, txt_buffer, number) != 0)
+
139  break;
+
140  add_numbers(number, sum, N);
+
141  } while (!feof(fp));
+
142 
+
143  printf("\nSum : ");
+
144  print_number(sum, N2, -1);
+
145 
+
146  printf("first 10 digits: \t");
+
147  print_number(sum, N2, 10);
+
148 
+
149  fclose(fp); /* close file */
+
150  return 0;
+
151 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ print_number()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int print_number (uint8_t * number,
uint8_t N,
int8_t num_digits_to_print 
)
+
+

Function to print a long number

+
83 {
+
84  uint8_t start_pos = N - 1;
+
85  uint8_t end_pos;
+
86 
+
87  /* skip all initial zeros */
+
88  while (number[start_pos] == 0)
+
89  start_pos--;
+
90 
+
91  /* if end_pos < 0, print all digits */
+
92  if (num_digits_to_print < 0)
+
93  end_pos = 0;
+
94  else if (num_digits_to_print <= start_pos)
+
95  end_pos = start_pos - num_digits_to_print + 1;
+
96  else
+
97  {
+
98  fprintf(stderr, "invalid number of digits argumet!\n");
+
99  return -1;
+
100  }
+
101 
+
102  for (int i = start_pos; i >= end_pos; i--)
+
103  putchar(number[i] + 0x30);
+
104 
+
105  putchar('\n');
+
106 
+
107  return 0;
+
108 }
+
+
+
+
+
+
Definition: list.h:8
+
#define N2
Definition: sol1.c:113
+
#define N
Definition: sol1.c:111
+
int add_numbers(uint8_t *a, uint8_t *b, uint8_t N)
Definition: sol1.c:44
+
int print_number(uint8_t *number, uint8_t N, int8_t num_digits_to_print)
Definition: sol1.c:82
+
int get_number(FILE *fp, char *buffer, uint8_t *out_int)
Definition: sol1.c:16
+ + + + diff --git a/db/d01/problem__13_2sol1_8c.js b/db/d01/problem__13_2sol1_8c.js new file mode 100644 index 00000000..7c931d2a --- /dev/null +++ b/db/d01/problem__13_2sol1_8c.js @@ -0,0 +1,9 @@ +var problem__13_2sol1_8c = +[ + [ "N", "db/d01/problem__13_2sol1_8c.html#a0240ac851181b84ac374872dc5434ee4", null ], + [ "N2", "db/d01/problem__13_2sol1_8c.html#acd864640121c7df2c19f61f7baa507e4", null ], + [ "add_numbers", "db/d01/problem__13_2sol1_8c.html#ad51742ca5a5c99e860bdf30299163bf2", null ], + [ "get_number", "db/d01/problem__13_2sol1_8c.html#ac260f58785fb20eb09bb35385a7d47f8", null ], + [ "main", "db/d01/problem__13_2sol1_8c.html#a840291bc02cba5474a4cb46a9b9566fe", null ], + [ "print_number", "db/d01/problem__13_2sol1_8c.html#a248adc917818cc6666d8bc679a660319", null ] +]; \ No newline at end of file diff --git a/db/d01/problem__13_2sol1_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map b/db/d01/problem__13_2sol1_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map new file mode 100644 index 00000000..0c5f78a2 --- /dev/null +++ b/db/d01/problem__13_2sol1_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/db/d01/problem__13_2sol1_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 b/db/d01/problem__13_2sol1_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 new file mode 100644 index 00000000..9c242dc3 --- /dev/null +++ b/db/d01/problem__13_2sol1_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 @@ -0,0 +1 @@ +37322f76dc99892d1f849259e207b81b \ No newline at end of file diff --git a/db/d01/problem__13_2sol1_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg b/db/d01/problem__13_2sol1_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg new file mode 100644 index 00000000..8034523a --- /dev/null +++ b/db/d01/problem__13_2sol1_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg @@ -0,0 +1,67 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +add_numbers + + + + + +Node1->Node2 + + + + + +Node3 + + +get_number + + + + + +Node1->Node3 + + + + + +Node4 + + +print_number + + + + + +Node1->Node4 + + + + + diff --git a/db/d17/structtnode__coll__graph.map b/db/d17/structtnode__coll__graph.map new file mode 100644 index 00000000..7c8e842b --- /dev/null +++ b/db/d17/structtnode__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/db/d17/structtnode__coll__graph.md5 b/db/d17/structtnode__coll__graph.md5 new file mode 100644 index 00000000..788d5c0d --- /dev/null +++ b/db/d17/structtnode__coll__graph.md5 @@ -0,0 +1 @@ +f4ce1e04509c7ca85936b7dc84be2da0 \ No newline at end of file diff --git a/db/d17/structtnode__coll__graph.svg b/db/d17/structtnode__coll__graph.svg new file mode 100644 index 00000000..7ad9419d --- /dev/null +++ b/db/d17/structtnode__coll__graph.svg @@ -0,0 +1,31 @@ + + + + + + +tnode + + + +Node1 + + +tnode + + + + + +Node1->Node1 + + + eqkid +lokid +hikid + + + diff --git a/db/d28/struct_t__coll__graph.map b/db/d28/struct_t__coll__graph.map new file mode 100644 index 00000000..cc8e18d4 --- /dev/null +++ b/db/d28/struct_t__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/db/d28/struct_t__coll__graph.md5 b/db/d28/struct_t__coll__graph.md5 new file mode 100644 index 00000000..05c1e153 --- /dev/null +++ b/db/d28/struct_t__coll__graph.md5 @@ -0,0 +1 @@ +8c9985aa30745b2b84aac9ee2ff0ba1b \ No newline at end of file diff --git a/db/d28/struct_t__coll__graph.svg b/db/d28/struct_t__coll__graph.svg new file mode 100644 index 00000000..7fcbdcd0 --- /dev/null +++ b/db/d28/struct_t__coll__graph.svg @@ -0,0 +1,45 @@ + + + + + + +T + + + +Node1 + + +T + + + + + +Node2 + + +elem + + + + + +Node2->Node1 + + + head + + + +Node2->Node2 + + + next + + + diff --git a/db/d45/qr__decomposition_8c__incl.map b/db/d45/qr__decomposition_8c__incl.map new file mode 100644 index 00000000..f10a8f79 --- /dev/null +++ b/db/d45/qr__decomposition_8c__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/db/d45/qr__decomposition_8c__incl.md5 b/db/d45/qr__decomposition_8c__incl.md5 new file mode 100644 index 00000000..5a848704 --- /dev/null +++ b/db/d45/qr__decomposition_8c__incl.md5 @@ -0,0 +1 @@ +ec955126cb487143a6b9a8f6a7cd522d \ No newline at end of file diff --git a/db/d45/qr__decomposition_8c__incl.svg b/db/d45/qr__decomposition_8c__incl.svg new file mode 100644 index 00000000..12a98dc2 --- /dev/null +++ b/db/d45/qr__decomposition_8c__incl.svg @@ -0,0 +1,116 @@ + + + + + + +numerical_methods/qr_decomposition.c + + + +Node1 + + +numerical_methods/qr +_decomposition.c + + + + + +Node2 + + +qr_decompose.h + + + + + +Node1->Node2 + + + + + +Node3 + + +math.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdio.h + + + + + +Node1->Node4 + + + + + +Node5 + + +stdlib.h + + + + + +Node1->Node5 + + + + + +Node6 + + +time.h + + + + + +Node1->Node6 + + + + + +Node2->Node3 + + + + + +Node2->Node4 + + + + + +Node2->Node5 + + + + + diff --git a/db/d50/problem__4_2sol_8c__incl.map b/db/d50/problem__4_2sol_8c__incl.map new file mode 100644 index 00000000..62a774da --- /dev/null +++ b/db/d50/problem__4_2sol_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/db/d50/problem__4_2sol_8c__incl.md5 b/db/d50/problem__4_2sol_8c__incl.md5 new file mode 100644 index 00000000..838b2408 --- /dev/null +++ b/db/d50/problem__4_2sol_8c__incl.md5 @@ -0,0 +1 @@ +70f53037a4a44446648c25ee1cad8d68 \ No newline at end of file diff --git a/db/d50/problem__4_2sol_8c__incl.svg b/db/d50/problem__4_2sol_8c__incl.svg new file mode 100644 index 00000000..d881ad65 --- /dev/null +++ b/db/d50/problem__4_2sol_8c__incl.svg @@ -0,0 +1,38 @@ + + + + + + +project_euler/problem_4/sol.c + + + +Node1 + + +project_euler/problem +_4/sol.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + diff --git a/db/d74/problem__13_2sol1_8c__incl.map b/db/d74/problem__13_2sol1_8c__incl.map new file mode 100644 index 00000000..ff65ac0d --- /dev/null +++ b/db/d74/problem__13_2sol1_8c__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/db/d74/problem__13_2sol1_8c__incl.md5 b/db/d74/problem__13_2sol1_8c__incl.md5 new file mode 100644 index 00000000..c5a1c09f --- /dev/null +++ b/db/d74/problem__13_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +b02e540d1ae21c40261a926879c8de48 \ No newline at end of file diff --git a/db/d74/problem__13_2sol1_8c__incl.svg b/db/d74/problem__13_2sol1_8c__incl.svg new file mode 100644 index 00000000..48079216 --- /dev/null +++ b/db/d74/problem__13_2sol1_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + +project_euler/problem_13/sol1.c + + + +Node1 + + +project_euler/problem +_13/sol1.c + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + +Node5 + + +string.h + + + + + +Node1->Node5 + + + + + diff --git a/db/d80/problem__20_2sol1_8c.html b/db/d80/problem__20_2sol1_8c.html new file mode 100644 index 00000000..b15574ee --- /dev/null +++ b/db/d80/problem__20_2sol1_8c.html @@ -0,0 +1,404 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_20/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 20 solution +More...

+
#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + +

+Data Structures

struct  _big_int
 
+ + + +

+Typedefs

typedef struct _big_int big_int
 
+ + + + + + + +

+Functions

big_intadd_digit (big_int *digit, char value)
 
char remove_digits (big_int *digit, int N)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Problem 20 solution

+
Author
Krishna Vedala
+

Implementation uses a custom big_int structure that can store arbitrarilty large integer numbers.

+

Typedef Documentation

+ +

◆ big_int

+ +
+
+ + + + +
typedef struct _big_int big_int
+
+

store arbitratily large integer values as a linked list of digits.

+ +
+
+

Function Documentation

+ +

◆ add_digit()

+ +
+
+ + + + + + + + + + + + + + + + + + +
big_int* add_digit (big_intdigit,
char value 
)
+
+

Function that allocates memory to add another digit at the MSB

+
38 {
+
39  if (digit == NULL)
+
40  {
+
41  digit = (big_int *)malloc(sizeof(big_int));
+
42  if (!digit)
+
43  {
+
44  perror("Unable to allocate memory!");
+
45  return NULL;
+
46  }
+
47  digit->value = value;
+
48  digit->next_digit = NULL;
+
49  digit->prev_digit = NULL;
+
50 
+
51  return digit;
+
52  }
+
53 
+
54  if (digit->next_digit)
+
55  {
+
56  digit->next_digit->value = value;
+
57  return digit->next_digit;
+
58  }
+
59 
+
60  digit->next_digit = (big_int *)malloc(sizeof(big_int));
+
61  if (digit->next_digit == NULL)
+
62  {
+
63  perror("Unable to allocate memory!");
+
64  return NULL;
+
65  }
+
66  digit->next_digit->value = value;
+
67  digit->next_digit->next_digit = NULL;
+
68  digit->next_digit->prev_digit = digit;
+
69  return digit->next_digit;
+
70 }
+
+
+
+ +

◆ main()

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

Main function

+

sum digits on the last iteration this avoid having another loop over all digits

+

Notice that in the loop above, we make sure that at the end of the loop, ptr is pointing to the last digit. Thus we can avoid using another loop.

+
96 {
+
97  unsigned int N = 5;
+
98  big_int *ptr = add_digit(NULL, 1); /* start with 1 */
+
99  const big_int *ptr0 = ptr; /* save the first location */
+
100  unsigned long sum_digits = 0;
+
101  unsigned long num_digits = 0;
+
102 
+
103  if (argc == 2)
+
104  N = atoi(argv[1]);
+
105 
+
106  clock_t start_time = clock();
+
107 
+
108  for (unsigned int i = 1; i <= N; i++)
+
109  {
+
110  int carry = 0;
+
111 #ifdef DEBUG
+
112  printf("%3d: ", i);
+
113 #endif
+
114  ptr = (big_int *)ptr0; /* multiply every digit with i */
+
115  while (ptr)
+
116  {
+
117 #ifdef DEBUG
+
118  printf("%p\t", ptr);
+
119 #endif
+
120  unsigned int tmp = ptr->value * i + carry;
+
121  if (tmp >= 10)
+
122  {
+
123  div_t tmp2 = div(tmp, 10);
+
124  carry = tmp2.quot;
+
125  tmp = tmp2.rem;
+
126  }
+
127  else
+
128  carry = 0;
+
129 
+
130  if (carry > 0 && ptr->next_digit == NULL)
+
131  add_digit(ptr, 0);
+
132 
+
133  ptr->value = tmp;
+
134 
+
135  if (i == N)
+
136  /**
+
137  * sum digits on the last iteration
+
138  * this avoid having another loop over all digits
+
139  **/
+
140  sum_digits += tmp;
+
141 
+
142  if (ptr->next_digit)
+
143  /* more digits available */
+
144  ptr = ptr->next_digit;
+
145  else
+
146  /* no more digits left - reached MSB */
+
147  break;
+
148  }
+
149 #ifdef DEBUG
+
150  printf("\n");
+
151 #endif
+
152  }
+
153 
+
154  clock_t end_time = clock();
+
155 
+
156 #ifdef DEBUG
+
157  printf("ptr = %p\n", ptr);
+
158  printf("%d! = ", N);
+
159 #endif
+
160 
+
161  /** Notice that in the loop above, we make sure that at the end of the loop,
+
162  * ptr is pointing to the last digit. Thus we can avoid using another loop.
+
163  **/
+
164  // ptr = &my_int;
+
165  // /* move ptr to the MSB digit */
+
166  // while (ptr->next_digit)
+
167  // ptr = ptr->next_digit;
+
168  do
+
169  {
+
170  putchar(ptr->value + 0x30); /* convert digit to ASCII char */
+
171  ptr = ptr->prev_digit;
+
172  num_digits++;
+
173  } while (ptr); /* after coming to units place, there will be no valid ptr */
+
174 
+
175  printf("\nTime taken: %.4g millisecond\n",
+
176  1e3 * (end_time - start_time) / CLOCKS_PER_SEC);
+
177  printf(
+
178  "Digit Sum = %lu\tNumber of digits = %lu\tStorage space = %.3gkb\t \n",
+
179  sum_digits, num_digits, num_digits * sizeof(big_int) / 1024.0);
+
180 
+
181  remove_digits((big_int *)ptr0, -1);
+
182  return 0;
+
183 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ remove_digits()

+ +
+
+ + + + + + + + + + + + + + + + + + +
char remove_digits (big_intdigit,
int N 
)
+
+

Function to remove digits preceeding the current digit.

+
77 {
+
78  if (digit == NULL)
+
79  return 0;
+
80 
+
81  if (digit->next_digit == NULL)
+
82  {
+
83  free(digit);
+
84  digit = NULL;
+
85  return 0;
+
86  }
+
87 
+
88  if (N > 0)
+
89  return remove_digits(digit->next_digit, N - 1);
+
90 
+
91  return remove_digits(digit->next_digit, 0);
+
92 }
+
+
+
+
+
+
char remove_digits(big_int *digit, int N)
Definition: sol1.c:76
+
#define N
Definition: sol1.c:111
+
struct _big_int * next_digit
Definition: sol1.c:20
+
struct _big_int * prev_digit
Definition: sol1.c:21
+
Definition: sol1.c:18
+
big_int * add_digit(big_int *digit, char value)
Definition: sol1.c:37
+ + + + diff --git a/db/d80/problem__20_2sol1_8c.js b/db/d80/problem__20_2sol1_8c.js new file mode 100644 index 00000000..968e9f9a --- /dev/null +++ b/db/d80/problem__20_2sol1_8c.js @@ -0,0 +1,8 @@ +var problem__20_2sol1_8c = +[ + [ "_big_int", "dc/d77/struct__big__int.html", "dc/d77/struct__big__int" ], + [ "big_int", "db/d80/problem__20_2sol1_8c.html#a62cbbd106aad52daadb9403a07d0da32", null ], + [ "add_digit", "db/d80/problem__20_2sol1_8c.html#afc373c28da6b17636528edcc97fb5f86", null ], + [ "main", "db/d80/problem__20_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "remove_digits", "db/d80/problem__20_2sol1_8c.html#a54a02c4b963fdb16f24959e0137763f1", null ] +]; \ No newline at end of file diff --git a/db/d80/problem__20_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/db/d80/problem__20_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..b80f4800 --- /dev/null +++ b/db/d80/problem__20_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/db/d80/problem__20_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/db/d80/problem__20_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..ada7e131 --- /dev/null +++ b/db/d80/problem__20_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +818be081d5f20f6e8052892c97d0e44c \ No newline at end of file diff --git a/db/d80/problem__20_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/db/d80/problem__20_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..5177a6f2 --- /dev/null +++ b/db/d80/problem__20_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +add_digit + + + + + +Node1->Node2 + + + + + +Node3 + + +remove_digits + + + + + +Node1->Node3 + + + + + diff --git a/db/d83/problem__12_2sol1_8c__incl.map b/db/d83/problem__12_2sol1_8c__incl.map new file mode 100644 index 00000000..4291f1b8 --- /dev/null +++ b/db/d83/problem__12_2sol1_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/db/d83/problem__12_2sol1_8c__incl.md5 b/db/d83/problem__12_2sol1_8c__incl.md5 new file mode 100644 index 00000000..45156d89 --- /dev/null +++ b/db/d83/problem__12_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +f376763cb3b22851e54ba4429f45d2c6 \ No newline at end of file diff --git a/db/d83/problem__12_2sol1_8c__incl.svg b/db/d83/problem__12_2sol1_8c__incl.svg new file mode 100644 index 00000000..893c7b32 --- /dev/null +++ b/db/d83/problem__12_2sol1_8c__incl.svg @@ -0,0 +1,68 @@ + + + + + + +project_euler/problem_12/sol1.c + + + +Node1 + + +project_euler/problem +_12/sol1.c + + + + + +Node2 + + +math.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + diff --git a/db/d8b/struct_node.html b/db/d8b/struct_node.html new file mode 100644 index 00000000..6e40fdf5 --- /dev/null +++ b/db/d8b/struct_node.html @@ -0,0 +1,183 @@ + + + + + + + +Algorithms_in_C: Node Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Node Struct Reference
+
+
+
+Collaboration diagram for Node:
+
+
+
+
[legend]
+ + + + + + + + + + +

+Data Fields

int data
 
struct Nodellink
 
struct Noderlink
 
+struct Nodenext
 
+

Detailed Description

+

Node, the basic data structure of the tree

+

Field Documentation

+ +

◆ data

+ +
+
+ + + + +
int Node::data
+
+

stores the number

+ +
+
+ +

◆ llink

+ +
+
+ + + + +
struct Node* Node::llink
+
+

link to left child

+ +
+
+ +

◆ rlink

+ +
+
+ + + + +
struct Node* Node::rlink
+
+

link to right child

+ +
+
+
The documentation for this struct was generated from the following files:
    +
  • data_structures/binary_trees/threaded_binary_trees.c
  • +
  • data_structures/linked_list/middle_element_in_list.c
  • +
  • sorting/bucket_sort.c
  • +
+
+
+ + + + diff --git a/db/d8b/struct_node.js b/db/d8b/struct_node.js new file mode 100644 index 00000000..dca96a0c --- /dev/null +++ b/db/d8b/struct_node.js @@ -0,0 +1,7 @@ +var struct_node = +[ + [ "data", "db/d8b/struct_node.html#a87c003c9f600e3fc58e6e90835f0b605", null ], + [ "llink", "db/d8b/struct_node.html#a60b73f452505cef98795d2c8de3e72ef", null ], + [ "next", "db/d8b/struct_node.html#a772e2a82248c0d0dfc5cdf19d5b45df9", null ], + [ "rlink", "db/d8b/struct_node.html#a0ed3c7305b43527f0f237bbfd438b8f7", null ] +]; \ No newline at end of file diff --git a/db/dd8/problem__26_2sol1_8c__incl.map b/db/dd8/problem__26_2sol1_8c__incl.map new file mode 100644 index 00000000..59425da8 --- /dev/null +++ b/db/dd8/problem__26_2sol1_8c__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/db/dd8/problem__26_2sol1_8c__incl.md5 b/db/dd8/problem__26_2sol1_8c__incl.md5 new file mode 100644 index 00000000..86ecbb4f --- /dev/null +++ b/db/dd8/problem__26_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +070f415935e167494973e128fca9ed4b \ No newline at end of file diff --git a/db/dd8/problem__26_2sol1_8c__incl.svg b/db/dd8/problem__26_2sol1_8c__incl.svg new file mode 100644 index 00000000..13c3cead --- /dev/null +++ b/db/dd8/problem__26_2sol1_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + +project_euler/problem_26/sol1.c + + + +Node1 + + +project_euler/problem +_26/sol1.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + +Node4 + + +string.h + + + + + +Node1->Node4 + + + + + +Node5 + + +time.h + + + + + +Node1->Node5 + + + + + diff --git a/db/ddb/hello__world_8h_source.html b/db/ddb/hello__world_8h_source.html new file mode 100644 index 00000000..b32e6b66 --- /dev/null +++ b/db/ddb/hello__world_8h_source.html @@ -0,0 +1,115 @@ + + + + + + + +Algorithms_in_C: exercism/hello_world/hello_world.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
hello_world.h
+
+
+
1 #ifndef HELLO_WORLD_H
+
2 #define HELLO_WORLD_H
+
3 
+
4 const char *hello(void);
+
5 
+
6 #endif
+
+
+ + + + diff --git a/db/dfb/hash_8h_source.html b/db/dfb/hash_8h_source.html new file mode 100644 index 00000000..6c72ed52 --- /dev/null +++ b/db/dfb/hash_8h_source.html @@ -0,0 +1,160 @@ + + + + + + + +Algorithms_in_C: hash/hash.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
hash.h
+
+
+
1 /*
+
2  author: Christian Bender
+
3  This file contains the public interface
+
4 
+
5  Overview about hash-functions:
+
6 
+
7  - sdbm
+
8  - djb2
+
9  - xor8 (8 bit)
+
10  - adler_32 (32 bits)
+
11 */
+
12 
+
13 #ifndef __HASH__H
+
14 #define __HASH__H
+
15 
+
16 /*
+
17  sdbm: implements the sdbm hash-algorithm
+
18  returns a whole number of type long long.
+
19 */
+
20 long long sdbm(char[]);
+
21 
+
22 /*
+
23  djb2: implements the djb2 hash-algorithm
+
24  returns a whole number of type long long.
+
25 */
+
26 long long djb2(char[]);
+
27 
+
28 /*
+
29  xor8: implements the xor8 hash-algorithm
+
30  returns a whole number of type char.
+
31  length: 8 bit
+
32 */
+
33 char xor8(char[]);
+
34 
+
35 /*
+
36  adler_32: implements the adler-32 hash-algorithm
+
37  returns a whole number of type int.
+
38  length: 32 bit
+
39  assumes: int has a length of 32 bits.
+
40 */
+
41 int adler_32(char[]);
+
42 
+
43 /*
+
44  crc32: implements the crc-32 checksum-algorithm
+
45  returns the crc-32 checksum
+
46 */
+
47 int crc32(char[]);
+
48 
+
49 #endif
+
+
+
Definition: prime_factoriziation.c:25
+
int main(int argc, char **argv)
Definition: c_atoi_str_to_integer.c:70
+ + + + diff --git a/db/dff/durand__kerner__roots_8c__incl.map b/db/dff/durand__kerner__roots_8c__incl.map new file mode 100644 index 00000000..60a242ed --- /dev/null +++ b/db/dff/durand__kerner__roots_8c__incl.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/db/dff/durand__kerner__roots_8c__incl.md5 b/db/dff/durand__kerner__roots_8c__incl.md5 new file mode 100644 index 00000000..e33ba98d --- /dev/null +++ b/db/dff/durand__kerner__roots_8c__incl.md5 @@ -0,0 +1 @@ +0a6b04baf970684165b7be86bccff7ec \ No newline at end of file diff --git a/db/dff/durand__kerner__roots_8c__incl.svg b/db/dff/durand__kerner__roots_8c__incl.svg new file mode 100644 index 00000000..a55fad68 --- /dev/null +++ b/db/dff/durand__kerner__roots_8c__incl.svg @@ -0,0 +1,128 @@ + + + + + + +numerical_methods/durand_kerner_roots.c + + + +Node1 + + +numerical_methods/durand +_kerner_roots.c + + + + + +Node2 + + +complex.h + + + + + +Node1->Node2 + + + + + +Node3 + + +limits.h + + + + + +Node1->Node3 + + + + + +Node4 + + +math.h + + + + + +Node1->Node4 + + + + + +Node5 + + +stdio.h + + + + + +Node1->Node5 + + + + + +Node6 + + +stdlib.h + + + + + +Node1->Node6 + + + + + +Node7 + + +string.h + + + + + +Node1->Node7 + + + + + +Node8 + + +time.h + + + + + +Node1->Node8 + + + + + diff --git a/dc/d23/problem__23_2sol2_8c__incl.map b/dc/d23/problem__23_2sol2_8c__incl.map new file mode 100644 index 00000000..41401ac6 --- /dev/null +++ b/dc/d23/problem__23_2sol2_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/dc/d23/problem__23_2sol2_8c__incl.md5 b/dc/d23/problem__23_2sol2_8c__incl.md5 new file mode 100644 index 00000000..4400cae7 --- /dev/null +++ b/dc/d23/problem__23_2sol2_8c__incl.md5 @@ -0,0 +1 @@ +ad2796118ba2af83dd45be2c4bacf6ec \ No newline at end of file diff --git a/dc/d23/problem__23_2sol2_8c__incl.svg b/dc/d23/problem__23_2sol2_8c__incl.svg new file mode 100644 index 00000000..e54508f0 --- /dev/null +++ b/dc/d23/problem__23_2sol2_8c__incl.svg @@ -0,0 +1,68 @@ + + + + + + +project_euler/problem_23/sol2.c + + + +Node1 + + +project_euler/problem +_23/sol2.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + +Node4 + + +time.h + + + + + +Node1->Node4 + + + + + diff --git a/dc/d2e/lu__decompose_8c.html b/dc/d2e/lu__decompose_8c.html new file mode 100644 index 00000000..03c0e454 --- /dev/null +++ b/dc/d2e/lu__decompose_8c.html @@ -0,0 +1,357 @@ + + + + + + + +Algorithms_in_C: numerical_methods/lu_decompose.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
lu_decompose.c File Reference
+
+
+ +

LU decomposition of a square matrix +More...

+
#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for lu_decompose.c:
+
+
+
+
+
+ + + + + + + +

+Functions

int lu_decomposition (double **A, double **L, double **U, int mat_size)
 
void display (double **A, int N)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

LU decomposition of a square matrix

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ display()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void display (double ** A,
int N 
)
+
+

Function to display square matrix

+
69 {
+
70  for (int i = 0; i < N; i++)
+
71  {
+
72  for (int j = 0; j < N; j++)
+
73  {
+
74  printf("% 3.3g \t", A[i][j]);
+
75  }
+
76  putchar('\n');
+
77  }
+
78 }
+
+
+
+ +

◆ lu_decomposition()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int lu_decomposition (double ** A,
double ** L,
double ** U,
int mat_size 
)
+
+

Perform LU decomposition on matrix

Parameters
+ + + + + +
[in]Amatrix to decompose
[out]Loutput L matrix
[out]Uoutput U matrix
[in]mat_sizeinput square matrix size
+
+
+
21 {
+
22  int row, col, j;
+
23 
+
24  // regularize each row
+
25  for (row = 0; row < mat_size; row++)
+
26  {
+
27  // Upper triangular matrix
+
28 #ifdef _OPENMP
+
29 #pragma omp for
+
30 #endif
+
31  for (col = row; col < mat_size; col++)
+
32  {
+
33  // Summation of L[i,j] * U[j,k]
+
34  double lu_sum = 0.;
+
35  for (j = 0; j < row; j++)
+
36  lu_sum += L[row][j] * U[j][col];
+
37 
+
38  // Evaluate U[i,k]
+
39  U[row][col] = A[row][col] - lu_sum;
+
40  }
+
41 
+
42  // Lower triangular matrix
+
43 #ifdef _OPENMP
+
44 #pragma omp for
+
45 #endif
+
46  for (col = row; col < mat_size; col++)
+
47  {
+
48  if (row == col)
+
49  {
+
50  L[row][col] = 1.;
+
51  continue;
+
52  }
+
53 
+
54  // Summation of L[i,j] * U[j,k]
+
55  double lu_sum = 0.;
+
56  for (j = 0; j < row; j++)
+
57  lu_sum += L[col][j] * U[j][row];
+
58 
+
59  // Evaluate U[i,k]
+
60  L[col][row] = (A[col][row] - lu_sum) / U[row][row];
+
61  }
+
62  }
+
63 
+
64  return 0;
+
65 }
+
+
+
+ +

◆ main()

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

Main function

+
82 {
+
83  int mat_size = 3; // default matrix size
+
84  const int range = 10;
+
85  const int range2 = range >> 1;
+
86 
+
87  if (argc == 2)
+
88  mat_size = atoi(argv[1]);
+
89 
+
90  srand(time(NULL)); // random number initializer
+
91 
+
92  /* Create a square matrix with random values */
+
93  double **A = (double **)malloc(mat_size * sizeof(double *));
+
94  double **L = (double **)malloc(mat_size * sizeof(double *)); // output
+
95  double **U = (double **)malloc(mat_size * sizeof(double *)); // output
+
96  for (int i = 0; i < mat_size; i++)
+
97  {
+
98  // calloc so that all valeus are '0' by default
+
99  A[i] = (double *)calloc(mat_size, sizeof(double));
+
100  L[i] = (double *)calloc(mat_size, sizeof(double));
+
101  U[i] = (double *)calloc(mat_size, sizeof(double));
+
102  for (int j = 0; j < mat_size; j++)
+
103  /* create random values in the limits [-range2, range-1] */
+
104  A[i][j] = (double)(rand() % range - range2);
+
105  }
+
106 
+
107  lu_decomposition(A, L, U, mat_size);
+
108 
+
109  printf("A = \n");
+
110  display(A, mat_size);
+
111  printf("\nL = \n");
+
112  display(L, mat_size);
+
113  printf("\nU = \n");
+
114  display(U, mat_size);
+
115 
+
116  /* Free dynamically allocated memory */
+
117  for (int i = 0; i < mat_size; i++)
+
118  {
+
119  free(A[i]);
+
120  free(L[i]);
+
121  free(U[i]);
+
122  }
+
123  free(A);
+
124  free(L);
+
125  free(U);
+
126 
+
127  return 0;
+
128 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
Definition: list.h:8
+
Definition: prime_factoriziation.c:25
+
#define N
Definition: sol1.c:111
+
int lu_decomposition(double **A, double **L, double **U, int mat_size)
Definition: lu_decompose.c:20
+
void display(double **A, int N)
Definition: lu_decompose.c:68
+ + + + diff --git a/dc/d2e/lu__decompose_8c.js b/dc/d2e/lu__decompose_8c.js new file mode 100644 index 00000000..d5efafcf --- /dev/null +++ b/dc/d2e/lu__decompose_8c.js @@ -0,0 +1,6 @@ +var lu__decompose_8c = +[ + [ "display", "dc/d2e/lu__decompose_8c.html#a0789beb8d3396582d77b7aedf5e5554a", null ], + [ "lu_decomposition", "dc/d2e/lu__decompose_8c.html#aae40b90a8efd645c749128cf8072bbb4", null ], + [ "main", "dc/d2e/lu__decompose_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ] +]; \ No newline at end of file diff --git a/dc/d2e/lu__decompose_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/dc/d2e/lu__decompose_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..77132f3d --- /dev/null +++ b/dc/d2e/lu__decompose_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/dc/d2e/lu__decompose_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/dc/d2e/lu__decompose_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..ed9f4890 --- /dev/null +++ b/dc/d2e/lu__decompose_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +8d150f772c850307101ce79c83e92666 \ No newline at end of file diff --git a/dc/d2e/lu__decompose_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/dc/d2e/lu__decompose_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..7beac292 --- /dev/null +++ b/dc/d2e/lu__decompose_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +display + + + + + +Node1->Node2 + + + + + +Node3 + + +lu_decomposition + + + + + +Node1->Node3 + + + + + diff --git a/dc/d47/realtime__stats_8c.html b/dc/d47/realtime__stats_8c.html new file mode 100644 index 00000000..39231993 --- /dev/null +++ b/dc/d47/realtime__stats_8c.html @@ -0,0 +1,432 @@ + + + + + + + +Algorithms_in_C: numerical_methods/realtime_stats.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
realtime_stats.c File Reference
+
+
+ +

Compute statistics for data entered in rreal-time. +More...

+
#include <assert.h>
+#include <math.h>
+#include <stdio.h>
+
+Include dependency graph for realtime_stats.c:
+
+
+
+
+
+ + + + + + + + + +

+Functions

void stats_computer1 (float x, float *mean, float *variance, float *std)
 
void stats_computer2 (float x, float *mean, float *variance, float *std)
 
void test_function (const float *test_data, const int number_of_samples)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Compute statistics for data entered in rreal-time.

+
Author
Krishna Vedala
+

This algorithm is really beneficial to compute statistics on data read in realtime. For example, devices reading biometrics data. The algorithm is simple enough to be easily implemented in an embedded system.

+

Function Documentation

+ +

◆ main()

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

Main function

+
129 {
+
130  const float test_data1[] = {3, 4, 5, -1.4, -3.6, 1.9, 1.};
+
131  test_function(test_data1, sizeof(test_data1) / sizeof(test_data1[0]));
+
132 
+
133  float s1_mean = 0.f, s1_variance = 0.f, s1_std = 0.f;
+
134  float s2_mean = 0.f, s2_variance = 0.f, s2_std = 0.f;
+
135 
+
136  printf("Enter data. Any non-numeric data will terminate the data input.\n");
+
137 
+
138  while (1)
+
139  {
+
140  float val;
+
141  printf("Enter number: ");
+
142 
+
143  // check for failure to read input. Happens for
+
144  // non-numeric data
+
145  if (!scanf("%f", &val))
+
146  break;
+
147 
+
148  stats_computer1(val, &s1_mean, &s1_variance, &s1_std);
+
149  stats_computer2(val, &s2_mean, &s2_variance, &s2_std);
+
150 
+
151  printf("\tMethod 1:\tMean: %.4f\t Variance: %.4f\t Std: %.4f\n",
+
152  s1_mean, s1_variance, s1_std);
+
153  printf("\tMethod 2:\tMean: %.4f\t Variance: %.4f\t Std: %.4f\n",
+
154  s2_mean, s2_variance, s2_std);
+
155  }
+
156 
+
157  return 0;
+
158 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ stats_computer1()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void stats_computer1 (float x,
float * mean,
float * variance,
float * std 
)
+
+

continuous mean and variance computance using first value as an approximation for the mean. If the first number is much far form the mean, the algorithm becomes very inaccurate to compute variance and standard deviation.

Parameters
+ + + + + +
[in]xnew value added to data set
[out]meanif not NULL, mean returns mean of data set
[out]varianceif not NULL, mean returns variance of data set
[out]stdif not NULL, mean returns standard deviation of data set
+
+
+
25 {
+
26  /* following variables declared static becuase they need to be remembered
+
27  * when updating for next sample, when received.
+
28  */
+
29  static unsigned int n = 0;
+
30  static float Ex = 0.f, Ex2 = 0.f;
+
31  static float K = 0.f;
+
32 
+
33  if (n == 0)
+
34  K = x;
+
35  n++;
+
36  float tmp = x - K;
+
37  Ex += tmp;
+
38  Ex2 += tmp * tmp;
+
39 
+
40  /* return sample mean computed till last sample */
+
41  if (mean != NULL)
+
42  *mean = K + Ex / n;
+
43 
+
44  /* return data variance computed till last sample */
+
45  if (variance != NULL)
+
46  *variance = (Ex2 - (Ex * Ex) / n) / (n - 1);
+
47 
+
48  /* return sample standard deviation computed till last sample */
+
49  if (std != NULL)
+
50  *std = sqrtf(*variance);
+
51 }
+
+
+
+ +

◆ stats_computer2()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void stats_computer2 (float x,
float * mean,
float * variance,
float * std 
)
+
+

continuous mean and variance computance using Welford's algorithm (very accurate)

Parameters
+ + + + + +
[in]xnew value added to data set
[out]meanif not NULL, mean returns mean of data set
[out]varianceif not NULL, mean returns variance of data set
[out]stdif not NULL, mean returns standard deviation of data set
+
+
+
62 {
+
63  /* following variables declared static becuase they need to be remembered
+
64  * when updating for next sample, when received.
+
65  */
+
66  static unsigned int n = 0;
+
67  static float mu = 0, M = 0;
+
68 
+
69  n++;
+
70  float delta = x - mu;
+
71  mu += delta / n;
+
72  float delta2 = x - mu;
+
73  M += delta * delta2;
+
74 
+
75  /* return sample mean computed till last sample */
+
76  if (mean != NULL)
+
77  *mean = mu;
+
78 
+
79  /* return data variance computed till last sample */
+
80  if (variance != NULL)
+
81  *variance = M / n;
+
82 
+
83  /* return sample standard deviation computed till last sample */
+
84  if (std != NULL)
+
85  *std = sqrtf(*variance);
+
86 }
+
+
+
+ +

◆ test_function()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void test_function (const float * test_data,
const int number_of_samples 
)
+
+

Test the algorithm implementation

Parameters
+ + + +
[in]test_dataarray of data to test the algorithms
[in]number_of_samplesnumber of samples of data
+
+
+
93 {
+
94  float ref_mean = 0.f, ref_variance = 0.f;
+
95  float s1_mean = 0.f, s1_variance = 0.f, s1_std = 0.f;
+
96  float s2_mean = 0.f, s2_variance = 0.f, s2_std = 0.f;
+
97 
+
98  for (int i = 0; i < number_of_samples; i++)
+
99  {
+
100  stats_computer1(test_data[i], &s1_mean, &s1_variance, &s1_std);
+
101  stats_computer2(test_data[i], &s2_mean, &s2_variance, &s2_std);
+
102  ref_mean += test_data[i];
+
103  }
+
104  ref_mean /= number_of_samples;
+
105 
+
106  for (int i = 0; i < number_of_samples; i++)
+
107  {
+
108  float temp = test_data[i] - ref_mean;
+
109  ref_variance += temp * temp;
+
110  }
+
111  ref_variance /= number_of_samples;
+
112 
+
113  printf("<<<<<<<< Test Function >>>>>>>>\n");
+
114  printf("Expected: Mean: %.4f\t Variance: %.4f\n", ref_mean, ref_variance);
+
115  printf("\tMethod 1:\tMean: %.4f\t Variance: %.4f\t Std: %.4f\n", s1_mean,
+
116  s1_variance, s1_std);
+
117  printf("\tMethod 2:\tMean: %.4f\t Variance: %.4f\t Std: %.4f\n", s2_mean,
+
118  s2_variance, s2_std);
+
119 
+
120  assert(fabs(s1_mean - ref_mean) < 0.01);
+
121  assert(fabs(s2_mean - ref_mean) < 0.01);
+
122  assert(fabs(s2_variance - ref_variance) < 0.01);
+
123 
+
124  printf("(Tests passed)\n\n");
+
125 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
void stats_computer1(float x, float *mean, float *variance, float *std)
Definition: realtime_stats.c:24
+
void test_function(const float *test_data, const int number_of_samples)
Definition: realtime_stats.c:92
+
void stats_computer2(float x, float *mean, float *variance, float *std)
Definition: realtime_stats.c:61
+ + + + diff --git a/dc/d47/realtime__stats_8c.js b/dc/d47/realtime__stats_8c.js new file mode 100644 index 00000000..80473c26 --- /dev/null +++ b/dc/d47/realtime__stats_8c.js @@ -0,0 +1,7 @@ +var realtime__stats_8c = +[ + [ "main", "dc/d47/realtime__stats_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "stats_computer1", "dc/d47/realtime__stats_8c.html#a63ddcdaab24f722f0963fa2fbe0ae628", null ], + [ "stats_computer2", "dc/d47/realtime__stats_8c.html#a34be233a9200ee2065f6b7b27e2d9a96", null ], + [ "test_function", "dc/d47/realtime__stats_8c.html#aa54c915581fcc495489175a4386d59fd", null ] +]; \ No newline at end of file diff --git a/dc/d47/realtime__stats_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/dc/d47/realtime__stats_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..1486eddb --- /dev/null +++ b/dc/d47/realtime__stats_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/dc/d47/realtime__stats_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/dc/d47/realtime__stats_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..02609e85 --- /dev/null +++ b/dc/d47/realtime__stats_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +aa603d8c27ea2bb0b00e9ea7a93dd0e5 \ No newline at end of file diff --git a/dc/d47/realtime__stats_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/dc/d47/realtime__stats_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..aa59910d --- /dev/null +++ b/dc/d47/realtime__stats_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,79 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +stats_computer1 + + + + + +Node1->Node2 + + + + + +Node3 + + +stats_computer2 + + + + + +Node1->Node3 + + + + + +Node4 + + +test_function + + + + + +Node1->Node4 + + + + + +Node4->Node2 + + + + + +Node4->Node3 + + + + + diff --git a/dc/d47/realtime__stats_8c_aa54c915581fcc495489175a4386d59fd_cgraph.map b/dc/d47/realtime__stats_8c_aa54c915581fcc495489175a4386d59fd_cgraph.map new file mode 100644 index 00000000..f11b8b34 --- /dev/null +++ b/dc/d47/realtime__stats_8c_aa54c915581fcc495489175a4386d59fd_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/dc/d47/realtime__stats_8c_aa54c915581fcc495489175a4386d59fd_cgraph.md5 b/dc/d47/realtime__stats_8c_aa54c915581fcc495489175a4386d59fd_cgraph.md5 new file mode 100644 index 00000000..47fb803d --- /dev/null +++ b/dc/d47/realtime__stats_8c_aa54c915581fcc495489175a4386d59fd_cgraph.md5 @@ -0,0 +1 @@ +dda5b5e774cafe5194ba125125ab0b73 \ No newline at end of file diff --git a/dc/d47/realtime__stats_8c_aa54c915581fcc495489175a4386d59fd_cgraph.svg b/dc/d47/realtime__stats_8c_aa54c915581fcc495489175a4386d59fd_cgraph.svg new file mode 100644 index 00000000..8f05119b --- /dev/null +++ b/dc/d47/realtime__stats_8c_aa54c915581fcc495489175a4386d59fd_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +test_function + + + +Node1 + + +test_function + + + + + +Node2 + + +stats_computer1 + + + + + +Node1->Node2 + + + + + +Node3 + + +stats_computer2 + + + + + +Node1->Node3 + + + + + diff --git a/dc/d52/problem__16_2sol1_8c__incl.map b/dc/d52/problem__16_2sol1_8c__incl.map new file mode 100644 index 00000000..54411f80 --- /dev/null +++ b/dc/d52/problem__16_2sol1_8c__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dc/d52/problem__16_2sol1_8c__incl.md5 b/dc/d52/problem__16_2sol1_8c__incl.md5 new file mode 100644 index 00000000..76dbe0d2 --- /dev/null +++ b/dc/d52/problem__16_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +983269bf89b511da939d034d08be335a \ No newline at end of file diff --git a/dc/d52/problem__16_2sol1_8c__incl.svg b/dc/d52/problem__16_2sol1_8c__incl.svg new file mode 100644 index 00000000..04eabb66 --- /dev/null +++ b/dc/d52/problem__16_2sol1_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + +project_euler/problem_16/sol1.c + + + +Node1 + + +project_euler/problem +_16/sol1.c + + + + + +Node2 + + +math.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdint.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdio.h + + + + + +Node1->Node4 + + + + + +Node5 + + +stdlib.h + + + + + +Node1->Node5 + + + + + diff --git a/dc/d55/problem__14_2sol1_8c__incl.map b/dc/d55/problem__14_2sol1_8c__incl.map new file mode 100644 index 00000000..8b91c0bb --- /dev/null +++ b/dc/d55/problem__14_2sol1_8c__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/dc/d55/problem__14_2sol1_8c__incl.md5 b/dc/d55/problem__14_2sol1_8c__incl.md5 new file mode 100644 index 00000000..af795ad8 --- /dev/null +++ b/dc/d55/problem__14_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +3931663767487092eb394ca3436be961 \ No newline at end of file diff --git a/dc/d55/problem__14_2sol1_8c__incl.svg b/dc/d55/problem__14_2sol1_8c__incl.svg new file mode 100644 index 00000000..62c07b1e --- /dev/null +++ b/dc/d55/problem__14_2sol1_8c__incl.svg @@ -0,0 +1,53 @@ + + + + + + +project_euler/problem_14/sol1.c + + + +Node1 + + +project_euler/problem +_14/sol1.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + diff --git a/dc/d5f/qr__decompose_8h__dep__incl.map b/dc/d5f/qr__decompose_8h__dep__incl.map new file mode 100644 index 00000000..4f67408f --- /dev/null +++ b/dc/d5f/qr__decompose_8h__dep__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/dc/d5f/qr__decompose_8h__dep__incl.md5 b/dc/d5f/qr__decompose_8h__dep__incl.md5 new file mode 100644 index 00000000..e4e19166 --- /dev/null +++ b/dc/d5f/qr__decompose_8h__dep__incl.md5 @@ -0,0 +1 @@ +274067e92e8e073e61f2f1ecfa1fcf4a \ No newline at end of file diff --git a/dc/d5f/qr__decompose_8h__dep__incl.svg b/dc/d5f/qr__decompose_8h__dep__incl.svg new file mode 100644 index 00000000..9eaf3e46 --- /dev/null +++ b/dc/d5f/qr__decompose_8h__dep__incl.svg @@ -0,0 +1,55 @@ + + + + + + +numerical_methods/qr_decompose.h + + + +Node1 + + +numerical_methods/qr +_decompose.h + + + + + +Node2 + + +numerical_methods/qr +_decomposition.c + + + + + +Node1->Node2 + + + + + +Node3 + + +numerical_methods/qr +_eigen_values.c + + + + + +Node1->Node3 + + + + + diff --git a/dc/d63/problem__8_2sol1_8c.html b/dc/d63/problem__8_2sol1_8c.html new file mode 100644 index 00000000..46768bbc --- /dev/null +++ b/dc/d63/problem__8_2sol1_8c.html @@ -0,0 +1,311 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_8/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 8 solution +More...

+
#include <stdio.h>
+#include <stdlib.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + + + +

+Functions

long long int get_product (FILE *fp, long start_pos, int num_digits)
 
int main (int argc, char *argv[])
 
+

Detailed Description

+

Problem 8 solution

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ get_product()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
long long int get_product (FILE * fp,
long start_pos,
int num_digits 
)
+
+

Compute the product of two numbers in a file

+
Parameters
+ + + + +
[in]fppointer to file that is already open
[in]start_posline number of the first numer
[in]num_digitsnumber of digits on the line to multiply
+
+
+
Returns
expected product
+
17 {
+
18  char ch = ' '; /* temporary variable to store character read from file */
+
19  unsigned char num = 0; /* temporary variable to store digit read */
+
20  long long int prod = 1; /* product accumulator */
+
21  int count =
+
22  0; /* we use this variable to count number of bytes of file read */
+
23 
+
24  /* accumulate product for num_digits */
+
25  for (int i = 0; i < num_digits; i++, count++)
+
26  {
+
27  /* get character from file */
+
28  ch = getc(fp);
+
29 
+
30  /* the ASCII codes of digits is between 0x30 and 0x39.
+
31  * any character not in this range implies an invalid character
+
32  */
+
33  if (ch < 0x30 || ch > 0x39)
+
34  {
+
35  if (ch == EOF)
+
36  return 0;
+
37  i--;
+
38  continue;
+
39  }
+
40 
+
41  num = ch - 0x30; /* convert character digit to number */
+
42  if (num == 0)
+
43  {
+
44  /* If number is zero, we can skip the next 'num_digits'
+
45  * because this '0' will repeat in the next 'num_digit'
+
46  * multiplications. Hence, we also do not update the file position
+
47  */
+
48  /* NOTE: this is not needed but helps get results faster :) */
+
49  return 0;
+
50  }
+
51 
+
52  prod *= num; /* accumulate product */
+
53  }
+
54 
+
55  /* set file position to the next starting character + 1 */
+
56  fseek(fp, -count + 1, SEEK_CUR);
+
57 
+
58  return prod;
+
59 }
+
+
+
+ +

◆ main()

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

Main function

+
63 {
+
64  int position = 0;
+
65  int num_digits = 4;
+
66  long long int prod, max_prod = 0;
+
67 
+
68  /* if second command-line argument is ge=iven,
+
69  * use it as the number of digits to compute
+
70  * successive product for
+
71  */
+
72  if (argc == 2)
+
73  num_digits = atoi(argv[1]);
+
74 
+
75  /* open file to read digits from */
+
76  FILE *fp = fopen("digits.txt", "rt");
+
77  if (!fp)
+
78  {
+
79  perror("Unable to open file");
+
80  return -1;
+
81  }
+
82 
+
83  /* loop through all digits in the file */
+
84  do
+
85  {
+
86  /* get product of 'num_digits' from current position in file */
+
87  prod = get_product(fp, ftell(fp), num_digits);
+
88 
+
89  if (prod > max_prod)
+
90  {
+
91  max_prod = prod;
+
92  position = ftell(fp) - 1;
+
93  }
+
94  } while (!feof(fp)); /* loop till end of file is reached */
+
95 
+
96  printf("Maximum product: %lld\t Location: %d^th position\n\t", max_prod,
+
97  position);
+
98  fseek(fp, position,
+
99  SEEK_SET); /* move cursor to identified position in file */
+
100  /* loop through all digits */
+
101  for (; num_digits > 0; num_digits--)
+
102  {
+
103  char ch = getc(fp); /* get character */
+
104  /* skip invalid character */
+
105  if (ch < 0x30 || ch > 0x39)
+
106  continue;
+
107  if (num_digits > 1)
+
108  printf("%c x ", ch);
+
109  else
+
110  printf("%c = %lld\n", ch, max_prod);
+
111  }
+
112 
+
113  fclose(fp); /* close file */
+
114 
+
115  return 0;
+
116 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
long long int get_product(FILE *fp, long start_pos, int num_digits)
Definition: sol1.c:16
+ + + + diff --git a/dc/d63/problem__8_2sol1_8c.js b/dc/d63/problem__8_2sol1_8c.js new file mode 100644 index 00000000..f7c2d4e9 --- /dev/null +++ b/dc/d63/problem__8_2sol1_8c.js @@ -0,0 +1,5 @@ +var problem__8_2sol1_8c = +[ + [ "get_product", "dc/d63/problem__8_2sol1_8c.html#a9ffc8845f17b01a353767a40a3adf7bd", null ], + [ "main", "dc/d63/problem__8_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97", null ] +]; \ No newline at end of file diff --git a/dc/d63/problem__8_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map b/dc/d63/problem__8_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map new file mode 100644 index 00000000..51b12c65 --- /dev/null +++ b/dc/d63/problem__8_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/dc/d63/problem__8_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 b/dc/d63/problem__8_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 new file mode 100644 index 00000000..f889add3 --- /dev/null +++ b/dc/d63/problem__8_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 @@ -0,0 +1 @@ +0a587ac9809c9efd463da0221b6ce00e \ No newline at end of file diff --git a/dc/d63/problem__8_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg b/dc/d63/problem__8_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg new file mode 100644 index 00000000..f822aedb --- /dev/null +++ b/dc/d63/problem__8_2sol1_8c_a0ddf1224851353fc92bfbff6f499fa97_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +get_product + + + + + +Node1->Node2 + + + + + diff --git a/dc/d64/md__coding_guidelines.html b/dc/d64/md__coding_guidelines.html new file mode 100644 index 00000000..9b23e191 --- /dev/null +++ b/dc/d64/md__coding_guidelines.html @@ -0,0 +1,124 @@ + + + + + + + +Algorithms_in_C: Code style convention + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Code style convention
+
+
+

Please orient on this guide before you sent a pull request.
+

+
+

+User-interface

+

Please write a simple user interface for your programs. Not a blinking cursor!
+ What does the program do?
+ What want the program an user informations?
+

+
+

+Code style conventions

+

See here
+ Don't push all code in one line!
+

+
+
+
+ + + + diff --git a/dc/d77/struct__big__int.html b/dc/d77/struct__big__int.html new file mode 100644 index 00000000..3413a63c --- /dev/null +++ b/dc/d77/struct__big__int.html @@ -0,0 +1,164 @@ + + + + + + + +Algorithms_in_C: _big_int Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
_big_int Struct Reference
+
+
+
+Collaboration diagram for _big_int:
+
+
+
+
[legend]
+ + + + + + + + +

+Data Fields

+char value
 
struct _big_intnext_digit
 
struct _big_intprev_digit
 
+

Detailed Description

+

store arbitratily large integer values as a linked list of digits.

+

Field Documentation

+ +

◆ next_digit

+ +
+
+ + + + +
struct _big_int* _big_int::next_digit
+
+

tens place (single digit)

+ +
+
+ +

◆ prev_digit

+ +
+
+ + + + +
struct _big_int* _big_int::prev_digit
+
+

hundreds place

+ +
+
+
The documentation for this struct was generated from the following file:
    +
  • project_euler/problem_20/sol1.c
  • +
+
+
+ + + + diff --git a/dc/d77/struct__big__int.js b/dc/d77/struct__big__int.js new file mode 100644 index 00000000..7854f961 --- /dev/null +++ b/dc/d77/struct__big__int.js @@ -0,0 +1,6 @@ +var struct__big__int = +[ + [ "next_digit", "dc/d77/struct__big__int.html#a187538b984c86d7cfdb13e297e7f3564", null ], + [ "prev_digit", "dc/d77/struct__big__int.html#ad8405989a924410942b39ec0e9fef30b", null ], + [ "value", "dc/d77/struct__big__int.html#a273ee73fd755f2a99512cca5f0e09008", null ] +]; \ No newline at end of file diff --git a/dc/d80/collatz_8c.html b/dc/d80/collatz_8c.html new file mode 100644 index 00000000..b5cd0a46 --- /dev/null +++ b/dc/d80/collatz_8c.html @@ -0,0 +1,184 @@ + + + + + + + +Algorithms_in_C: misc/collatz.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
collatz.c File Reference
+
+
+ +

Implementation of Collatz' conjecture +More...

+
#include <stdio.h>
+#include <stdlib.h>
+
+Include dependency graph for collatz.c:
+
+
+
+
+
+ + + +

+Functions

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

Detailed Description

+

Implementation of Collatz' conjecture

+

Collatz conjecture: a series for a number \(n\) in which if \(n\) even then the next number is \(\frac{n}{2}\) ,but if n is odd then the next number is \(3n+1\). This series continues till \(n\) reaches 1

+

Function Documentation

+ +

◆ main()

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

Main function

+
17 {
+
18  unsigned long long n, curr_no, num_steps = 0;
+
19  if (argc == 2)
+
20  n = strtoull(argv[1], NULL, 10);
+
21  else
+
22  {
+
23  printf("Enter starting number: ");
+
24  scanf("%lu", &n); // input number
+
25  }
+
26 
+
27  curr_no = n; // curr_no stores input number n
+
28  while (curr_no != 1) // loop till series reaches 1
+
29  {
+
30  num_steps++;
+
31  printf("%llu->", curr_no);
+
32  if (curr_no % 2 == 0) // condition for even number
+
33  curr_no = curr_no / 2;
+
34  else
+
35  curr_no = (curr_no * 3) + 1; // condition for odd number
+
36  }
+
37  printf("1\nNumber of steps: %llu\n", num_steps);
+
38  return 0;
+
39 }
+
+
+
+
+
+ + + + diff --git a/dc/d80/collatz_8c.js b/dc/d80/collatz_8c.js new file mode 100644 index 00000000..0f7729fc --- /dev/null +++ b/dc/d80/collatz_8c.js @@ -0,0 +1,4 @@ +var collatz_8c = +[ + [ "main", "dc/d80/collatz_8c.html#a0ddf1224851353fc92bfbff6f499fa97", null ] +]; \ No newline at end of file diff --git a/dc/dd4/kohonen__som__topology_8c__incl.map b/dc/dd4/kohonen__som__topology_8c__incl.map new file mode 100644 index 00000000..33eca6e8 --- /dev/null +++ b/dc/dd4/kohonen__som__topology_8c__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dc/dd4/kohonen__som__topology_8c__incl.md5 b/dc/dd4/kohonen__som__topology_8c__incl.md5 new file mode 100644 index 00000000..e8e82fa8 --- /dev/null +++ b/dc/dd4/kohonen__som__topology_8c__incl.md5 @@ -0,0 +1 @@ +ad4cd7170907e04049b08735b6fd9f77 \ No newline at end of file diff --git a/dc/dd4/kohonen__som__topology_8c__incl.svg b/dc/dd4/kohonen__som__topology_8c__incl.svg new file mode 100644 index 00000000..85416a9d --- /dev/null +++ b/dc/dd4/kohonen__som__topology_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + +machine_learning/kohonen_som_topology.c + + + +Node1 + + +machine_learning/kohonen +_som_topology.c + + + + + +Node2 + + +math.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + +Node5 + + +time.h + + + + + +Node1->Node5 + + + + + diff --git a/dc/de3/hash__set_8h_source.html b/dc/de3/hash__set_8h_source.html new file mode 100644 index 00000000..ca9e7b5f --- /dev/null +++ b/dc/de3/hash__set_8h_source.html @@ -0,0 +1,147 @@ + + + + + + + +Algorithms_in_C: data_structures/hash_set/hash_set.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
hash_set.h
+
+
+
1 #ifndef __HASH_SET__
+
2 #define __HASH_SET__
+
3 
+
4 #define DEFAULT_HASH_SET_CAPACITY 1 << 10
+
5 
+
6 typedef struct
+
7 {
+
8  unsigned capacity;
+
9  unsigned length;
+
10  void **values;
+
11  void **keys;
+
12 } hash_set_t;
+
13 
+
14 extern hash_set_t *init_hash_set();
+
15 
+
16 extern unsigned add(hash_set_t *set, void *value);
+
17 
+
18 unsigned put(hash_set_t *set, long long hash, void *value);
+
19 
+
20 extern int contains(hash_set_t *set, void *value);
+
21 
+
22 int contains_hash(hash_set_t *set, long long hash);
+
23 
+
24 extern void delete (hash_set_t *set, void *value);
+
25 
+
26 extern long long hash(void *value);
+
27 
+
28 extern unsigned retrieve_index_from_hash(const long long hash,
+
29  const unsigned capacity);
+
30 
+
31 extern void resize(hash_set_t *set);
+
32 
+
33 #endif
+
+
+
Definition: binary_search_tree.c:14
+
Definition: strongly_connected_components.c:23
+
Definition: hash_set.h:7
+
int main(int argc, char **argv)
Definition: c_atoi_str_to_integer.c:70
+
Definition: bellman_ford.c:14
+ + + + diff --git a/dc/de5/structsubset.html b/dc/de5/structsubset.html new file mode 100644 index 00000000..9763eb0a --- /dev/null +++ b/dc/de5/structsubset.html @@ -0,0 +1,124 @@ + + + + + + + +Algorithms_in_C: subset Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
subset Struct Reference
+
+
+ + + + + + +

+Data Fields

+int parent
 
+int rank
 
+
The documentation for this struct was generated from the following file:
    +
  • data_structures/graphs/kruskal.c
  • +
+
+
+ + + + diff --git a/dc/de5/structsubset.js b/dc/de5/structsubset.js new file mode 100644 index 00000000..245ea423 --- /dev/null +++ b/dc/de5/structsubset.js @@ -0,0 +1,5 @@ +var structsubset = +[ + [ "parent", "dc/de5/structsubset.html#ad8f7d99dc56f8ce3f0c3aaf4a633373a", null ], + [ "rank", "dc/de5/structsubset.html#a2cc3bbda6f758afb7bf8067eb8f07a10", null ] +]; \ No newline at end of file diff --git a/dd/d08/newton__raphson__root_8c.html b/dd/d08/newton__raphson__root_8c.html new file mode 100644 index 00000000..e60dd37b --- /dev/null +++ b/dd/d08/newton__raphson__root_8c.html @@ -0,0 +1,282 @@ + + + + + + + +Algorithms_in_C: numerical_methods/newton_raphson_root.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
newton_raphson_root.c File Reference
+
+
+ +

Find approximate solution for \(f(x) = 0\) using Newton-Raphson interpolation algorithm. +More...

+
#include <complex.h>
+#include <limits.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for newton_raphson_root.c:
+
+
+
+
+
+ + + +

+Macros

#define ACCURACY   1e-10
 
+ + + + + + + +

+Functions

double complex func (double complex x)
 
double complex d_func (double complex x)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Find approximate solution for \(f(x) = 0\) using Newton-Raphson interpolation algorithm.

+
Author
Krishna Vedala
+

Macro Definition Documentation

+ +

◆ ACCURACY

+ +
+
+ + + + +
#define ACCURACY   1e-10
+
+

solution accuracy

+ +
+
+

Function Documentation

+ +

◆ d_func()

+ +
+
+ + + + + + + + +
double complex d_func (double complex x)
+
+

Return first order derivative of the function. \(f'(x)\)

+
32 { return 2. * x; }
+
+
+
+ +

◆ func()

+ +
+
+ + + + + + + + +
double complex func (double complex x)
+
+

Return value of the function to find the root for. \(f(x)\)

+
23 {
+
24  return x * x - 3.; /* x^2 = 3 - solution is sqrt(3) */
+
25  // return x * x - 2.; /* x^2 = 2 - solution is sqrt(2) */
+
26 }
+
+
+
+ +

◆ main()

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

main function

+
38 {
+
39  double delta = 1;
+
40  double complex cdelta = 1;
+
41 
+
42  /* initialize random seed: */
+
43  srand(time(NULL));
+
44 
+
45  /* random initial approximation */
+
46  double complex root = (rand() % 100 - 50) + (rand() % 100 - 50) * I;
+
47 
+
48  unsigned long counter = 0;
+
49  /* iterate till a convergence is reached */
+
50  while (delta > ACCURACY && counter < ULONG_MAX)
+
51  {
+
52  cdelta = func(root) / d_func(root);
+
53  root += -cdelta;
+
54  counter++;
+
55  delta = fabs(cabs(cdelta));
+
56 
+
57 #if defined(DEBUG) || !defined(NDEBUG)
+
58  if (counter % 50 == 0)
+
59  {
+
60  double r = creal(root);
+
61  double c = cimag(root);
+
62 
+
63  printf("Iter %5lu: Root: %4.4g%c%4.4gi\t\tdelta: %.4g\n", counter,
+
64  r, c >= 0 ? '+' : '-', c >= 0 ? c : -c, delta);
+
65  }
+
66 #endif
+
67  }
+
68 
+
69  double r = creal(root);
+
70  double c = fabs(cimag(root)) < ACCURACY ? 0 : cimag(root);
+
71 
+
72  printf("Iter %5lu: Root: %4.4g%c%4.4gi\t\tdelta: %.4g\n", counter, r,
+
73  c >= 0 ? '+' : '-', c >= 0 ? c : -c, delta);
+
74 
+
75  return 0;
+
76 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
double complex d_func(double complex x)
Definition: newton_raphson_root.c:32
+
double complex func(double complex x)
Definition: newton_raphson_root.c:22
+
#define ACCURACY
Definition: newton_raphson_root.c:16
+ + + + diff --git a/dd/d08/newton__raphson__root_8c.js b/dd/d08/newton__raphson__root_8c.js new file mode 100644 index 00000000..4e66ddd4 --- /dev/null +++ b/dd/d08/newton__raphson__root_8c.js @@ -0,0 +1,7 @@ +var newton__raphson__root_8c = +[ + [ "ACCURACY", "dd/d08/newton__raphson__root_8c.html#af270a96662132d0385cb6b4637c5a689", null ], + [ "d_func", "dd/d08/newton__raphson__root_8c.html#ae713a1fd0c275fbec7edf263ac2c0337", null ], + [ "func", "dd/d08/newton__raphson__root_8c.html#a72f87d423a488946b319627a454d3925", null ], + [ "main", "dd/d08/newton__raphson__root_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ] +]; \ No newline at end of file diff --git a/dd/d08/newton__raphson__root_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/dd/d08/newton__raphson__root_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..4a38c108 --- /dev/null +++ b/dd/d08/newton__raphson__root_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/dd/d08/newton__raphson__root_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/dd/d08/newton__raphson__root_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..c51f2e7f --- /dev/null +++ b/dd/d08/newton__raphson__root_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +a6ba94dee41065f1b4c37c4305c801bb \ No newline at end of file diff --git a/dd/d08/newton__raphson__root_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/dd/d08/newton__raphson__root_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..a5400058 --- /dev/null +++ b/dd/d08/newton__raphson__root_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +d_func + + + + + +Node1->Node2 + + + + + +Node3 + + +func + + + + + +Node1->Node3 + + + + + diff --git a/dd/d10/struct_stack.html b/dd/d10/struct_stack.html new file mode 100644 index 00000000..df0b3278 --- /dev/null +++ b/dd/d10/struct_stack.html @@ -0,0 +1,125 @@ + + + + + + + +Algorithms_in_C: Stack Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Stack Struct Reference
+
+
+ + + + + + +

+Data Fields

+int arr [MAX_SIZE]
 
+int top
 
+
The documentation for this struct was generated from the following files:
    +
  • data_structures/graphs/strongly_connected_components.c
  • +
  • data_structures/graphs/topologicalsort.c
  • +
+
+
+ + + + diff --git a/dd/d10/struct_stack.js b/dd/d10/struct_stack.js new file mode 100644 index 00000000..2098d989 --- /dev/null +++ b/dd/d10/struct_stack.js @@ -0,0 +1,5 @@ +var struct_stack = +[ + [ "arr", "dd/d10/struct_stack.html#ad9b9f0f414ea2dc2437fd42b6cc4321b", null ], + [ "top", "dd/d10/struct_stack.html#ad62fb36816185f3eef3a6f735a61f54a", null ] +]; \ No newline at end of file diff --git a/dd/d24/problem__19_2sol1_8c__incl.map b/dd/d24/problem__19_2sol1_8c__incl.map new file mode 100644 index 00000000..7126ffb8 --- /dev/null +++ b/dd/d24/problem__19_2sol1_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/dd/d24/problem__19_2sol1_8c__incl.md5 b/dd/d24/problem__19_2sol1_8c__incl.md5 new file mode 100644 index 00000000..81a22a19 --- /dev/null +++ b/dd/d24/problem__19_2sol1_8c__incl.md5 @@ -0,0 +1 @@ +f7de30d33050a43eb5586dd37e3112f0 \ No newline at end of file diff --git a/dd/d24/problem__19_2sol1_8c__incl.svg b/dd/d24/problem__19_2sol1_8c__incl.svg new file mode 100644 index 00000000..0dc34072 --- /dev/null +++ b/dd/d24/problem__19_2sol1_8c__incl.svg @@ -0,0 +1,38 @@ + + + + + + +project_euler/problem_19/sol1.c + + + +Node1 + + +project_euler/problem +_19/sol1.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + diff --git a/dd/d75/structqueue__coll__graph.map b/dd/d75/structqueue__coll__graph.map new file mode 100644 index 00000000..be84f89b --- /dev/null +++ b/dd/d75/structqueue__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/dd/d75/structqueue__coll__graph.md5 b/dd/d75/structqueue__coll__graph.md5 new file mode 100644 index 00000000..ba05ef23 --- /dev/null +++ b/dd/d75/structqueue__coll__graph.md5 @@ -0,0 +1 @@ +05066fa29ce5b1d2bb7f1633465169c6 \ No newline at end of file diff --git a/dd/d75/structqueue__coll__graph.svg b/dd/d75/structqueue__coll__graph.svg new file mode 100644 index 00000000..0e2deee5 --- /dev/null +++ b/dd/d75/structqueue__coll__graph.svg @@ -0,0 +1,53 @@ + + + + + + +queue + + + +Node1 + + +queue + + + + + +Node2 + + +node + + + + + +Node2->Node1 + + + front +rear + + + +Node2->Node2 + + + leftNode +next +right +left +par +link +pre +rightNode + + + diff --git a/dd/d77/so1_8c__incl.map b/dd/d77/so1_8c__incl.map new file mode 100644 index 00000000..5e40624b --- /dev/null +++ b/dd/d77/so1_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/dd/d77/so1_8c__incl.md5 b/dd/d77/so1_8c__incl.md5 new file mode 100644 index 00000000..fd22f265 --- /dev/null +++ b/dd/d77/so1_8c__incl.md5 @@ -0,0 +1 @@ +76cc906075f2d1af6742fa979b37f78c \ No newline at end of file diff --git a/dd/d77/so1_8c__incl.svg b/dd/d77/so1_8c__incl.svg new file mode 100644 index 00000000..e6730a10 --- /dev/null +++ b/dd/d77/so1_8c__incl.svg @@ -0,0 +1,38 @@ + + + + + + +project_euler/problem_2/so1.c + + + +Node1 + + +project_euler/problem +_2/so1.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + diff --git a/dd/d8b/problem__22_2sol1_8c.html b/dd/d8b/problem__22_2sol1_8c.html new file mode 100644 index 00000000..a6a41179 --- /dev/null +++ b/dd/d8b/problem__22_2sol1_8c.html @@ -0,0 +1,398 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_22/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 22 solution +More...

+
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + + + +

+Macros

#define MAX_NAMES   6000
 
#define MAX_NAME_LEN   20
 
+ + + + + + + +

+Functions

void shell_sort (char data[][MAX_NAME_LEN], int LEN)
 
void lazy_sort (char data[][MAX_NAME_LEN], int LEN)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Problem 22 solution

+
Author
Krishna Vedala
+

Macro Definition Documentation

+ +

◆ MAX_NAME_LEN

+ +
+
+ + + + +
#define MAX_NAME_LEN   20
+
+

Maximum length of each name

+ +
+
+ +

◆ MAX_NAMES

+ +
+
+ + + + +
#define MAX_NAMES   6000
+
+

Maximum number of names to store

+ +
+
+

Function Documentation

+ +

◆ lazy_sort()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void lazy_sort (char data[][MAX_NAME_LEN],
int LEN 
)
+
+

Alphabetical sorting using 'lazy sort' algorithm

+
50 {
+
51  int i, j;
+
52  for (i = 0; i < LEN; i++)
+
53  {
+
54  for (j = i + 1; j < LEN; j++)
+
55  {
+
56  if (strcmp(data[i], data[j]) > 0)
+
57  {
+
58  char tmp_buffer[MAX_NAME_LEN];
+
59  strcpy(tmp_buffer, data[i]);
+
60  strcpy(data[i], data[j]);
+
61  strcpy(data[j], tmp_buffer);
+
62  }
+
63  }
+
64  }
+
65 #ifdef DEBUG
+
66  for (i = 0; i < LEN; i++)
+
67  printf("%s\t", data[i]);
+
68 #endif
+
69 }
+
+
+
+ +

◆ main()

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

Main function

+
73 {
+
74  unsigned long COUNT = 0;
+
75  char *fname = "names.txt";
+
76  char names[MAX_NAMES][MAX_NAME_LEN];
+
77  short method = 0; /* sorting algorithm to use. 0 = lazy, 1 = shell-sort */
+
78 
+
79  if (argc == 2)
+
80  method = atoi(argv[1]);
+
81 
+
82  FILE *fp = fopen(fname, "rt");
+
83  if (!fp)
+
84  {
+
85  perror("Unable to open file");
+
86  return -1;
+
87  }
+
88 
+
89  /*
+
90  * Loops to get total number of rows and columns in the file
+
91  */
+
92  do
+
93  {
+
94  int ret = fscanf(fp, "\"%[^\",]\",", names[COUNT++]);
+
95  if (ret <= 0)
+
96  continue;
+
97  // printf("%s\t", names[COUNT - 1]);
+
98  } while (!feof(fp));
+
99  fclose(fp);
+
100 
+
101  printf("\nTotal number of names: %lu\n", COUNT);
+
102 
+
103  if (method == 0)
+
104  {
+
105  clock_t start_time = clock();
+
106  shell_sort(names, COUNT);
+
107  clock_t end_time = clock();
+
108  printf("\nShell sort: %.4g millisecond\n",
+
109  1e3 * (end_time - start_time) / CLOCKS_PER_SEC);
+
110  }
+
111  else if (method == 1)
+
112  {
+
113  clock_t start_time = clock();
+
114  lazy_sort(names, COUNT);
+
115  clock_t end_time = clock();
+
116  printf("\nLazy sort: %.4g millisecond\n",
+
117  1e3 * (end_time - start_time) / CLOCKS_PER_SEC);
+
118  }
+
119 
+
120  long sum_score = 0;
+
121  clock_t start_time = clock();
+
122  int i;
+
123 
+
124 #ifdef _OPENMP
+
125 #pragma omp parallel for schedule(runtime) reduction(+ : sum_score)
+
126 #endif
+
127 #ifdef DEBUG
+
128  for (i = 935; i < 940; i++)
+
129 #else
+
130  for (i = 0; i < COUNT; i++)
+
131 #endif
+
132  {
+
133  unsigned int score = 0;
+
134  /* score the alphabets in i^th name */
+
135  for (int j = 0; names[i][j] != '\0'; j++)
+
136  score += names[i][j] - 'A' +
+
137  1; /* convert ASCII character to integer score */
+
138  sum_score += score * (i + 1);
+
139 #ifdef DEBUG
+
140  printf("Name: %s\tScore: %u x %u = %lu\n", names[i], score, i + 1,
+
141  (unsigned long)score * (i + 1));
+
142 #endif
+
143  }
+
144  clock_t end_time = clock();
+
145  printf("Scoring time: %.4g millisecond\n",
+
146  1e3 * (end_time - start_time) / CLOCKS_PER_SEC);
+
147 
+
148  printf("Total Score = %lu\n", sum_score);
+
149 
+
150  return 0;
+
151 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ shell_sort()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void shell_sort (char data[][MAX_NAME_LEN],
int LEN 
)
+
+

Alphabetical sorting using 'shell sort' algorithm

+
21 {
+
22  const int gaps[] = {701, 301, 132, 57, 23, 10, 4, 1};
+
23  const int gap_len = 8;
+
24  int i, j, g;
+
25 
+
26  for (g = 0; g < gap_len; g++)
+
27  {
+
28  int gap = gaps[g];
+
29  for (i = gap; i < LEN; i++)
+
30  {
+
31  char tmp_buffer[MAX_NAME_LEN];
+
32  strcpy(tmp_buffer, data[i]);
+
33 
+
34  for (j = i; j >= gap && strcmp(data[j - gap], tmp_buffer) > 0;
+
35  j -= gap)
+
36  strcpy(data[j], data[j - gap]);
+
37  strcpy(data[j], tmp_buffer);
+
38  }
+
39  }
+
40 #ifdef DEBUG
+
41  for (i = 0; i < LEN; i++)
+
42  printf("%s\t", data[i]);
+
43 #endif
+
44 }
+
+
+
+
+
+
void shell_sort(char data[][MAX_NAME_LEN], int LEN)
Definition: sol1.c:20
+
Definition: prime_factoriziation.c:25
+
void lazy_sort(char data[][MAX_NAME_LEN], int LEN)
Definition: sol1.c:49
+
#define MAX_NAME_LEN
Definition: sol1.c:15
+
#define MAX_NAMES
Definition: sol1.c:14
+ + + + diff --git a/dd/d8b/problem__22_2sol1_8c.js b/dd/d8b/problem__22_2sol1_8c.js new file mode 100644 index 00000000..d016a521 --- /dev/null +++ b/dd/d8b/problem__22_2sol1_8c.js @@ -0,0 +1,8 @@ +var problem__22_2sol1_8c = +[ + [ "MAX_NAME_LEN", "dd/d8b/problem__22_2sol1_8c.html#afd709f201d7643c3909621f620ea648a", null ], + [ "MAX_NAMES", "dd/d8b/problem__22_2sol1_8c.html#a6cb9b08aacb61416795ee78bfceacd38", null ], + [ "lazy_sort", "dd/d8b/problem__22_2sol1_8c.html#ae359b8a4656b164c91ef91a084c15c9d", null ], + [ "main", "dd/d8b/problem__22_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "shell_sort", "dd/d8b/problem__22_2sol1_8c.html#a5bc3659aa0949ea33118c95b1dee5f63", null ] +]; \ No newline at end of file diff --git a/dd/d8b/problem__22_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/dd/d8b/problem__22_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..e076e782 --- /dev/null +++ b/dd/d8b/problem__22_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/dd/d8b/problem__22_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/dd/d8b/problem__22_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..144d1f0d --- /dev/null +++ b/dd/d8b/problem__22_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +dd392edd745818fb79fe4babf4cf5cf8 \ No newline at end of file diff --git a/dd/d8b/problem__22_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/dd/d8b/problem__22_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..abc1bc85 --- /dev/null +++ b/dd/d8b/problem__22_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +lazy_sort + + + + + +Node1->Node2 + + + + + +Node3 + + +shell_sort + + + + + +Node1->Node3 + + + + + diff --git a/dd/d8c/adaline__learning_8c.html b/dd/d8c/adaline__learning_8c.html new file mode 100644 index 00000000..478cf5e4 --- /dev/null +++ b/dd/d8c/adaline__learning_8c.html @@ -0,0 +1,841 @@ + + + + + + + +Algorithms_in_C: machine_learning/adaline_learning.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
adaline_learning.c File Reference
+
+
+ +

Adaptive Linear Neuron (ADALINE) implementation +More...

+
#include <assert.h>
+#include <limits.h>
+#include <math.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for adaline_learning.c:
+
+
+
+
+
+ + + +

+Data Structures

struct  adaline
 
+ + + + + + +

+Macros

+#define MAX_ITER   500
 
+#define ACCURACY   1e-5
 convergence accuracy \(=1\times10^{-5}\)
 
+ + + + + + + + + + + + + + + + + + + + + + + +

+Functions

struct adaline new_adaline (const int num_features, const double eta)
 
void delete_adaline (struct adaline *ada)
 
int activation (double x)
 
char * get_weights_str (struct adaline *ada)
 
int predict (struct adaline *ada, const double *x, double *out)
 
double fit_sample (struct adaline *ada, const double *x, const int y)
 
void fit (struct adaline *ada, double **X, const int *y, const int N)
 
void test1 (double eta)
 
void test2 (double eta)
 
void test3 (double eta)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Adaptive Linear Neuron (ADALINE) implementation

+
Author
Krishna Vedala
+

source ADALINE is one of the first and simplest single layer artificial neural network. The algorithm essentially implements a linear function

+\[ f\left(x_0,x_1,x_2,\ldots\right) = \sum_j x_jw_j+\theta \] +

+

where \(x_j\) are the input features of a sample, \(w_j\) are the coefficients of the linear function and \(\theta\) is a constant. If we know the \(w_j\), then for any given set of features, \(y\) can be computed. Computing the \(w_j\) is a supervised learning algorithm wherein a set of features and their corresponding outputs are given and weights are computed using stochastic gradient descent method.

+

Function Documentation

+ +

◆ activation()

+ +
+
+ + + + + + + + +
int activation (double x)
+
+

Heaviside activation function

+
96 { return x > 0 ? 1 : -1; }
+
+
+
+ +

◆ delete_adaline()

+ +
+
+ + + + + + + + +
void delete_adaline (struct adalineada)
+
+

delete dynamically allocated memory

Parameters
+ + +
[in]adamodel from which the memory is to be freeed.
+
+
+
84 {
+
85  if (ada == NULL)
+
86  return;
+
87 
+
88  free(ada->weights);
+
89 };
+
+
+
+ +

◆ fit()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fit (struct adalineada,
double ** X,
const int * y,
const int N 
)
+
+

Update the weights of the model using supervised learning for an array of vectors.

+
Parameters
+ + + + + +
[in]adaadaline model to train
[in]Xarray of feature vector
[in]yknown output value for each feature vector
[in]Nnumber of training samples
+
+
+
174 {
+
175  double avg_pred_error = 1.f;
+
176 
+
177  int iter;
+
178  for (iter = 0; (iter < MAX_ITER) && (avg_pred_error > ACCURACY); iter++)
+
179  {
+
180  avg_pred_error = 0.f;
+
181 
+
182  // perform fit for each sample
+
183  for (int i = 0; i < N; i++)
+
184  {
+
185  double err = fit_sample(ada, X[i], y[i]);
+
186  avg_pred_error += fabs(err);
+
187  }
+
188  avg_pred_error /= N;
+
189 
+
190  // Print updates every 200th iteration
+
191  // if (iter % 100 == 0)
+
192  printf("\tIter %3d: Training weights: %s\tAvg error: %.4f\n", iter,
+
193  get_weights_str(ada), avg_pred_error);
+
194  }
+
195 
+
196  if (iter < MAX_ITER)
+
197  printf("Converged after %d iterations.\n", iter);
+
198  else
+
199  printf("Did not converged after %d iterations.\n", iter);
+
200 }
+
+
+
+ +

◆ fit_sample()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
double fit_sample (struct adalineada,
const double * x,
const int y 
)
+
+

Update the weights of the model using supervised learning for one feature vector

+
Parameters
+ + + + +
[in]adaadaline model to fit
[in]xfeature vector
[in]yknown output value
+
+
+
Returns
correction factor
+
148 {
+
149  /* output of the model with current weights */
+
150  int p = predict(ada, x, NULL);
+
151  int prediction_error = y - p; // error in estimation
+
152  double correction_factor = ada->eta * prediction_error;
+
153 
+
154  /* update each weight, the last weight is the bias term */
+
155  for (int i = 0; i < ada->num_weights - 1; i++)
+
156  {
+
157  ada->weights[i] += correction_factor * x[i];
+
158  }
+
159  ada->weights[ada->num_weights - 1] += correction_factor; // update bias
+
160 
+
161  return correction_factor;
+
162 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ get_weights_str()

+ +
+
+ + + + + + + + +
char* get_weights_str (struct adalineada)
+
+

Operator to print the weights of the model

+
102 {
+
103  static char out[100]; // static so the value is persistent
+
104 
+
105  sprintf(out, "<");
+
106  for (int i = 0; i < ada->num_weights; i++)
+
107  {
+
108  sprintf(out, "%s%.4g", out, ada->weights[i]);
+
109  if (i < ada->num_weights - 1)
+
110  sprintf(out, "%s, ", out);
+
111  }
+
112  sprintf(out, "%s>", out);
+
113  return out;
+
114 }
+
+
+
+ +

◆ main()

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

Main function

+
386 {
+
387  srand(time(NULL)); // initialize random number generator
+
388 
+
389  double eta = 0.1; // default value of eta
+
390  if (argc == 2) // read eta value from commandline argument if present
+
391  eta = strtof(argv[1], NULL);
+
392 
+
393  test1(eta);
+
394 
+
395  printf("Press ENTER to continue...\n");
+
396  getchar();
+
397 
+
398  test2(eta);
+
399 
+
400  printf("Press ENTER to continue...\n");
+
401  getchar();
+
402 
+
403  test3(eta);
+
404 
+
405  return 0;
+
406 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ new_adaline()

+ +
+
+ + + + + + + + + + + + + + + + + + +
struct adaline new_adaline (const int num_features,
const double eta 
)
+
+

Default constructor

Parameters
+ + + +
[in]num_featuresnumber of features present
[in]etalearning rate (optional, default=0.1)
+
+
+
Returns
new adaline model
+
53 {
+
54  if (eta <= 0.f || eta >= 1.f)
+
55  {
+
56  fprintf(stderr, "learning rate should be > 0 and < 1\n");
+
57  exit(EXIT_FAILURE);
+
58  }
+
59 
+
60  // additional weight is for the constant bias term
+
61  int num_weights = num_features + 1;
+
62  struct adaline ada;
+
63  ada.eta = eta;
+
64  ada.num_weights = num_weights;
+
65  ada.weights = (double *)malloc(num_weights * sizeof(double));
+
66  if (!ada.weights)
+
67  {
+
68  perror("Unable to allocate error for weights!");
+
69  return ada;
+
70  }
+
71 
+
72  // initialize with random weights in the range [-50, 49]
+
73  for (int i = 0; i < num_weights; i++)
+
74  ada.weights[i] = 1.f;
+
75  // ada.weights[i] = (double)(rand() % 100) - 50);
+
76 
+
77  return ada;
+
78 }
+
+
+
+ +

◆ predict()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int predict (struct adalineada,
const double * x,
double * out 
)
+
+

predict the output of the model for given set of features

+
Parameters
+ + + + +
[in]adaadaline model to predict
[in]xinput vector
[out]outoptional argument to return neuron output before applying activation function (NULL to ignore)
+
+
+
Returns
model prediction output
+
126 {
+
127  double y = ada->weights[ada->num_weights - 1]; // assign bias value
+
128 
+
129  for (int i = 0; i < ada->num_weights - 1; i++)
+
130  y += x[i] * ada->weights[i];
+
131 
+
132  if (out) // if out variable is not NULL
+
133  *out = y;
+
134 
+
135  return activation(y); // quantizer: apply ADALINE threshold function
+
136 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ test1()

+ +
+
+ + + + + + + + +
void test1 (double eta)
+
+

test function to predict points in a 2D coordinate system above the line \(x=y\) as +1 and others as -1. Note that each point is defined by 2 values or 2 features.

Parameters
+ + +
[in]etalearning rate (optional, default=0.01)
+
+
+
209 {
+
210  struct adaline ada = new_adaline(2, eta); // 2 features
+
211 
+
212  const int N = 10; // number of sample points
+
213  const double saved_X[10][2] = {{0, 1}, {1, -2}, {2, 3}, {3, -1},
+
214  {4, 1}, {6, -5}, {-7, -3}, {-8, 5},
+
215  {-9, 2}, {-10, -15}};
+
216 
+
217  double **X = (double **)malloc(N * sizeof(double *));
+
218  const int Y[10] = {1, -1, 1, -1, -1,
+
219  -1, 1, 1, 1, -1}; // corresponding y-values
+
220  for (int i = 0; i < N; i++)
+
221  {
+
222  X[i] = (double *)saved_X[i];
+
223  }
+
224 
+
225  printf("------- Test 1 -------\n");
+
226  printf("Model before fit: %s", get_weights_str(&ada));
+
227 
+
228  fit(&ada, X, Y, N);
+
229  printf("Model after fit: %s\n", get_weights_str(&ada));
+
230 
+
231  double test_x[] = {5, -3};
+
232  int pred = predict(&ada, test_x, NULL);
+
233  printf("Predict for x=(5,-3): % d", pred);
+
234  assert(pred == -1);
+
235  printf(" ...passed\n");
+
236 
+
237  double test_x2[] = {5, 8};
+
238  pred = predict(&ada, test_x2, NULL);
+
239  printf("Predict for x=(5, 8): % d", pred);
+
240  assert(pred == 1);
+
241  printf(" ...passed\n");
+
242 
+
243  // for (int i = 0; i < N; i++)
+
244  // free(X[i]);
+
245  free(X);
+
246  delete_adaline(&ada);
+
247 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ test2()

+ +
+
+ + + + + + + + +
void test2 (double eta)
+
+

test function to predict points in a 2D coordinate system above the line \(x+3y=-1\) as +1 and others as -1. Note that each point is defined by 2 values or 2 features. The function will create random sample points for training and test purposes.

Parameters
+ + +
[in]etalearning rate (optional, default=0.01)
+
+
+
257 {
+
258  struct adaline ada = new_adaline(2, eta); // 2 features
+
259 
+
260  const int N = 50; // number of sample points
+
261 
+
262  double **X = (double **)malloc(N * sizeof(double *));
+
263  int *Y = (int *)malloc(N * sizeof(int)); // corresponding y-values
+
264  for (int i = 0; i < N; i++)
+
265  X[i] = (double *)malloc(2 * sizeof(double));
+
266 
+
267  // generate sample points in the interval
+
268  // [-range2/100 , (range2-1)/100]
+
269  int range = 500; // sample points full-range
+
270  int range2 = range >> 1; // sample points half-range
+
271  for (int i = 0; i < N; i++)
+
272  {
+
273  double x0 = ((rand() % range) - range2) / 100.f;
+
274  double x1 = ((rand() % range) - range2) / 100.f;
+
275  X[i][0] = x0;
+
276  X[i][1] = x1;
+
277  Y[i] = (x0 + 3. * x1) > -1 ? 1 : -1;
+
278  }
+
279 
+
280  printf("------- Test 2 -------\n");
+
281  printf("Model before fit: %s", get_weights_str(&ada));
+
282 
+
283  fit(&ada, X, Y, N);
+
284  printf("Model after fit: %s\n", get_weights_str(&ada));
+
285 
+
286  int N_test_cases = 5;
+
287  double test_x[2];
+
288  for (int i = 0; i < N_test_cases; i++)
+
289  {
+
290  double x0 = ((rand() % range) - range2) / 100.f;
+
291  double x1 = ((rand() % range) - range2) / 100.f;
+
292 
+
293  test_x[0] = x0;
+
294  test_x[1] = x1;
+
295  int pred = predict(&ada, test_x, NULL);
+
296  printf("Predict for x=(% 3.2f,% 3.2f): % d", x0, x1, pred);
+
297 
+
298  int expected_val = (x0 + 3. * x1) > -1 ? 1 : -1;
+
299  assert(pred == expected_val);
+
300  printf(" ...passed\n");
+
301  }
+
302 
+
303  for (int i = 0; i < N; i++)
+
304  free(X[i]);
+
305  free(X);
+
306  free(Y);
+
307  delete_adaline(&ada);
+
308 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ test3()

+ +
+
+ + + + + + + + +
void test3 (double eta)
+
+

test function to predict points in a 3D coordinate system lying within the sphere of radius 1 and centre at origin as +1 and others as -1. Note that each point is defined by 3 values but we use 6 features. The function will create random sample points for training and test purposes. The sphere centred at origin and radius 1 is defined as: \(x^2+y^2+z^2=r^2=1\) and if the \(r^2<1\), point lies within the sphere else, outside.

+
Parameters
+ + +
[in]etalearning rate (optional, default=0.01)
+
+
+
322 {
+
323  struct adaline ada = new_adaline(6, eta); // 2 features
+
324 
+
325  const int N = 50; // number of sample points
+
326 
+
327  double **X = (double **)malloc(N * sizeof(double *));
+
328  int *Y = (int *)malloc(N * sizeof(int)); // corresponding y-values
+
329  for (int i = 0; i < N; i++)
+
330  X[i] = (double *)malloc(6 * sizeof(double));
+
331 
+
332  // generate sample points in the interval
+
333  // [-range2/100 , (range2-1)/100]
+
334  int range = 200; // sample points full-range
+
335  int range2 = range >> 1; // sample points half-range
+
336  for (int i = 0; i < N; i++)
+
337  {
+
338  double x0 = ((rand() % range) - range2) / 100.f;
+
339  double x1 = ((rand() % range) - range2) / 100.f;
+
340  double x2 = ((rand() % range) - range2) / 100.f;
+
341  X[i][0] = x0;
+
342  X[i][1] = x1;
+
343  X[i][2] = x2;
+
344  X[i][3] = x0 * x0;
+
345  X[i][4] = x1 * x1;
+
346  X[i][5] = x2 * x2;
+
347  Y[i] = (x0 * x0 + x1 * x1 + x2 * x2) <= 1 ? 1 : -1;
+
348  }
+
349 
+
350  printf("------- Test 3 -------\n");
+
351  printf("Model before fit: %s", get_weights_str(&ada));
+
352 
+
353  fit(&ada, X, Y, N);
+
354  printf("Model after fit: %s\n", get_weights_str(&ada));
+
355 
+
356  int N_test_cases = 5;
+
357  double test_x[6];
+
358  for (int i = 0; i < N_test_cases; i++)
+
359  {
+
360  double x0 = ((rand() % range) - range2) / 100.f;
+
361  double x1 = ((rand() % range) - range2) / 100.f;
+
362  double x2 = ((rand() % range) - range2) / 100.f;
+
363  test_x[0] = x0;
+
364  test_x[1] = x1;
+
365  test_x[2] = x2;
+
366  test_x[3] = x0 * x0;
+
367  test_x[4] = x1 * x1;
+
368  test_x[5] = x2 * x2;
+
369  int pred = predict(&ada, test_x, NULL);
+
370  printf("Predict for x=(% 3.2f,% 3.2f): % d", x0, x1, pred);
+
371 
+
372  int expected_val = (x0 * x0 + x1 * x1 + x2 * x2) <= 1 ? 1 : -1;
+
373  assert(pred == expected_val);
+
374  printf(" ...passed\n");
+
375  }
+
376 
+
377  for (int i = 0; i < N; i++)
+
378  free(X[i]);
+
379  free(X);
+
380  free(Y);
+
381  delete_adaline(&ada);
+
382 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
char * get_weights_str(struct adaline *ada)
Definition: adaline_learning.c:101
+
double * weights
weights of the neural network
Definition: adaline_learning.c:40
+
void delete_adaline(struct adaline *ada)
Definition: adaline_learning.c:83
+
Definition: prime_factoriziation.c:25
+
#define N
Definition: sol1.c:111
+
double eta
learning rate of the algorithm
Definition: adaline_learning.c:39
+
int predict(struct adaline *ada, const double *x, double *out)
Definition: adaline_learning.c:125
+
struct adaline new_adaline(const int num_features, const double eta)
Definition: adaline_learning.c:52
+
void test3(double eta)
Definition: adaline_learning.c:321
+
double fit_sample(struct adaline *ada, const double *x, const int y)
Definition: adaline_learning.c:147
+
int activation(double x)
Definition: adaline_learning.c:96
+
void test1(double eta)
Definition: adaline_learning.c:208
+
void test2(double eta)
Definition: adaline_learning.c:256
+
void fit(struct adaline *ada, double **X, const int *y, const int N)
Definition: adaline_learning.c:173
+
Definition: adaline_learning.c:37
+
#define ACCURACY
convergence accuracy
Definition: adaline_learning.c:44
+
int num_weights
number of weights of the neural network
Definition: adaline_learning.c:41
+ + + + diff --git a/dd/d8c/adaline__learning_8c.js b/dd/d8c/adaline__learning_8c.js new file mode 100644 index 00000000..f68f28a3 --- /dev/null +++ b/dd/d8c/adaline__learning_8c.js @@ -0,0 +1,17 @@ +var adaline__learning_8c = +[ + [ "adaline", "d2/daa/structadaline.html", "d2/daa/structadaline" ], + [ "ACCURACY", "dd/d8c/adaline__learning_8c.html#af270a96662132d0385cb6b4637c5a689", null ], + [ "MAX_ITER", "dd/d8c/adaline__learning_8c.html#acd517c6f195c75b9dd0f3aad65326f3b", null ], + [ "activation", "dd/d8c/adaline__learning_8c.html#a7b12b6513314c975303b5a698608322f", null ], + [ "delete_adaline", "dd/d8c/adaline__learning_8c.html#a6f35caa3084772cc126ac7b20f67f665", null ], + [ "fit", "dd/d8c/adaline__learning_8c.html#a355fda53c238a0c0c07f03dcc021caed", null ], + [ "fit_sample", "dd/d8c/adaline__learning_8c.html#afa953e811eaae199d121a7ddb619d604", null ], + [ "get_weights_str", "dd/d8c/adaline__learning_8c.html#a00dc6134ca22a12e0fd9cac54d601c2d", null ], + [ "main", "dd/d8c/adaline__learning_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "new_adaline", "dd/d8c/adaline__learning_8c.html#acd88962c5f6341e43cbc69b4a7d3485b", null ], + [ "predict", "dd/d8c/adaline__learning_8c.html#a4db1ba00a7f282100ea31a94e32bd7a3", null ], + [ "test1", "dd/d8c/adaline__learning_8c.html#ab4ecb3accf5d9e0263087e7265bbe3a9", null ], + [ "test2", "dd/d8c/adaline__learning_8c.html#a05cc9a0acb524fde727a4d7b4a747ee6", null ], + [ "test3", "dd/d8c/adaline__learning_8c.html#a3f37b9f073f7e57fd0b39d70718af1b1", null ] +]; \ No newline at end of file diff --git a/dd/d8c/adaline__learning_8c_a05cc9a0acb524fde727a4d7b4a747ee6_cgraph.map b/dd/d8c/adaline__learning_8c_a05cc9a0acb524fde727a4d7b4a747ee6_cgraph.map new file mode 100644 index 00000000..11602cd3 --- /dev/null +++ b/dd/d8c/adaline__learning_8c_a05cc9a0acb524fde727a4d7b4a747ee6_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/dd/d8c/adaline__learning_8c_a05cc9a0acb524fde727a4d7b4a747ee6_cgraph.md5 b/dd/d8c/adaline__learning_8c_a05cc9a0acb524fde727a4d7b4a747ee6_cgraph.md5 new file mode 100644 index 00000000..4b3248f0 --- /dev/null +++ b/dd/d8c/adaline__learning_8c_a05cc9a0acb524fde727a4d7b4a747ee6_cgraph.md5 @@ -0,0 +1 @@ +516ed5f2c58dbfe91605f39de46a0221 \ No newline at end of file diff --git a/dd/d8c/adaline__learning_8c_a05cc9a0acb524fde727a4d7b4a747ee6_cgraph.svg b/dd/d8c/adaline__learning_8c_a05cc9a0acb524fde727a4d7b4a747ee6_cgraph.svg new file mode 100644 index 00000000..bad2130a --- /dev/null +++ b/dd/d8c/adaline__learning_8c_a05cc9a0acb524fde727a4d7b4a747ee6_cgraph.svg @@ -0,0 +1,112 @@ + + + + + + +test2 + + + +Node1 + + +test2 + + + + + +Node2 + + +delete_adaline + + + + + +Node1->Node2 + + + + + +Node3 + + +fit + + + + + +Node1->Node3 + + + + + +Node4 + + +get_weights_str + + + + + +Node1->Node4 + + + + + +Node5 + + +new_adaline + + + + + +Node1->Node5 + + + + + +Node6 + + +predict + + + + + +Node1->Node6 + + + + + +Node7 + + +activation + + + + + +Node6->Node7 + + + + + diff --git a/dd/d8c/adaline__learning_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/dd/d8c/adaline__learning_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..9ef09c31 --- /dev/null +++ b/dd/d8c/adaline__learning_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/dd/d8c/adaline__learning_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/dd/d8c/adaline__learning_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..8cc94705 --- /dev/null +++ b/dd/d8c/adaline__learning_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +25cb71543feaadbb73402e7b1fe633b9 \ No newline at end of file diff --git a/dd/d8c/adaline__learning_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/dd/d8c/adaline__learning_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..529dca94 --- /dev/null +++ b/dd/d8c/adaline__learning_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,217 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +test1 + + + + + +Node1->Node2 + + + + + +Node9 + + +test2 + + + + + +Node1->Node9 + + + + + +Node10 + + +test3 + + + + + +Node1->Node10 + + + + + +Node3 + + +delete_adaline + + + + + +Node2->Node3 + + + + + +Node4 + + +fit + + + + + +Node2->Node4 + + + + + +Node5 + + +get_weights_str + + + + + +Node2->Node5 + + + + + +Node6 + + +new_adaline + + + + + +Node2->Node6 + + + + + +Node7 + + +predict + + + + + +Node2->Node7 + + + + + +Node8 + + +activation + + + + + +Node7->Node8 + + + + + +Node9->Node3 + + + + + +Node9->Node4 + + + + + +Node9->Node5 + + + + + +Node9->Node6 + + + + + +Node9->Node7 + + + + + +Node10->Node3 + + + + + +Node10->Node4 + + + + + +Node10->Node5 + + + + + +Node10->Node6 + + + + + +Node10->Node7 + + + + + diff --git a/dd/d8c/adaline__learning_8c_a3f37b9f073f7e57fd0b39d70718af1b1_cgraph.map b/dd/d8c/adaline__learning_8c_a3f37b9f073f7e57fd0b39d70718af1b1_cgraph.map new file mode 100644 index 00000000..4fd3f6f6 --- /dev/null +++ b/dd/d8c/adaline__learning_8c_a3f37b9f073f7e57fd0b39d70718af1b1_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/dd/d8c/adaline__learning_8c_a3f37b9f073f7e57fd0b39d70718af1b1_cgraph.md5 b/dd/d8c/adaline__learning_8c_a3f37b9f073f7e57fd0b39d70718af1b1_cgraph.md5 new file mode 100644 index 00000000..bfdae5de --- /dev/null +++ b/dd/d8c/adaline__learning_8c_a3f37b9f073f7e57fd0b39d70718af1b1_cgraph.md5 @@ -0,0 +1 @@ +23c571eab3dce305c19f0472c3e249f7 \ No newline at end of file diff --git a/dd/d8c/adaline__learning_8c_a3f37b9f073f7e57fd0b39d70718af1b1_cgraph.svg b/dd/d8c/adaline__learning_8c_a3f37b9f073f7e57fd0b39d70718af1b1_cgraph.svg new file mode 100644 index 00000000..a849946d --- /dev/null +++ b/dd/d8c/adaline__learning_8c_a3f37b9f073f7e57fd0b39d70718af1b1_cgraph.svg @@ -0,0 +1,112 @@ + + + + + + +test3 + + + +Node1 + + +test3 + + + + + +Node2 + + +delete_adaline + + + + + +Node1->Node2 + + + + + +Node3 + + +fit + + + + + +Node1->Node3 + + + + + +Node4 + + +get_weights_str + + + + + +Node1->Node4 + + + + + +Node5 + + +new_adaline + + + + + +Node1->Node5 + + + + + +Node6 + + +predict + + + + + +Node1->Node6 + + + + + +Node7 + + +activation + + + + + +Node6->Node7 + + + + + diff --git a/dd/d8c/adaline__learning_8c_a4db1ba00a7f282100ea31a94e32bd7a3_cgraph.map b/dd/d8c/adaline__learning_8c_a4db1ba00a7f282100ea31a94e32bd7a3_cgraph.map new file mode 100644 index 00000000..17576bca --- /dev/null +++ b/dd/d8c/adaline__learning_8c_a4db1ba00a7f282100ea31a94e32bd7a3_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/dd/d8c/adaline__learning_8c_a4db1ba00a7f282100ea31a94e32bd7a3_cgraph.md5 b/dd/d8c/adaline__learning_8c_a4db1ba00a7f282100ea31a94e32bd7a3_cgraph.md5 new file mode 100644 index 00000000..8c73321a --- /dev/null +++ b/dd/d8c/adaline__learning_8c_a4db1ba00a7f282100ea31a94e32bd7a3_cgraph.md5 @@ -0,0 +1 @@ +113cc36707f6b44d83182385dae516dd \ No newline at end of file diff --git a/dd/d8c/adaline__learning_8c_a4db1ba00a7f282100ea31a94e32bd7a3_cgraph.svg b/dd/d8c/adaline__learning_8c_a4db1ba00a7f282100ea31a94e32bd7a3_cgraph.svg new file mode 100644 index 00000000..eb1d58fc --- /dev/null +++ b/dd/d8c/adaline__learning_8c_a4db1ba00a7f282100ea31a94e32bd7a3_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +predict + + + +Node1 + + +predict + + + + + +Node2 + + +activation + + + + + +Node1->Node2 + + + + + diff --git a/dd/d8c/adaline__learning_8c_ab4ecb3accf5d9e0263087e7265bbe3a9_cgraph.map b/dd/d8c/adaline__learning_8c_ab4ecb3accf5d9e0263087e7265bbe3a9_cgraph.map new file mode 100644 index 00000000..2fe01f25 --- /dev/null +++ b/dd/d8c/adaline__learning_8c_ab4ecb3accf5d9e0263087e7265bbe3a9_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/dd/d8c/adaline__learning_8c_ab4ecb3accf5d9e0263087e7265bbe3a9_cgraph.md5 b/dd/d8c/adaline__learning_8c_ab4ecb3accf5d9e0263087e7265bbe3a9_cgraph.md5 new file mode 100644 index 00000000..f125332e --- /dev/null +++ b/dd/d8c/adaline__learning_8c_ab4ecb3accf5d9e0263087e7265bbe3a9_cgraph.md5 @@ -0,0 +1 @@ +bd4eb9b679ade38d12e1c552a64e922e \ No newline at end of file diff --git a/dd/d8c/adaline__learning_8c_ab4ecb3accf5d9e0263087e7265bbe3a9_cgraph.svg b/dd/d8c/adaline__learning_8c_ab4ecb3accf5d9e0263087e7265bbe3a9_cgraph.svg new file mode 100644 index 00000000..48a5d13f --- /dev/null +++ b/dd/d8c/adaline__learning_8c_ab4ecb3accf5d9e0263087e7265bbe3a9_cgraph.svg @@ -0,0 +1,112 @@ + + + + + + +test1 + + + +Node1 + + +test1 + + + + + +Node2 + + +delete_adaline + + + + + +Node1->Node2 + + + + + +Node3 + + +fit + + + + + +Node1->Node3 + + + + + +Node4 + + +get_weights_str + + + + + +Node1->Node4 + + + + + +Node5 + + +new_adaline + + + + + +Node1->Node5 + + + + + +Node6 + + +predict + + + + + +Node1->Node6 + + + + + +Node7 + + +activation + + + + + +Node6->Node7 + + + + + diff --git a/dd/d8c/adaline__learning_8c_afa953e811eaae199d121a7ddb619d604_cgraph.map b/dd/d8c/adaline__learning_8c_afa953e811eaae199d121a7ddb619d604_cgraph.map new file mode 100644 index 00000000..63f91f8f --- /dev/null +++ b/dd/d8c/adaline__learning_8c_afa953e811eaae199d121a7ddb619d604_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/dd/d8c/adaline__learning_8c_afa953e811eaae199d121a7ddb619d604_cgraph.md5 b/dd/d8c/adaline__learning_8c_afa953e811eaae199d121a7ddb619d604_cgraph.md5 new file mode 100644 index 00000000..a2a3eb66 --- /dev/null +++ b/dd/d8c/adaline__learning_8c_afa953e811eaae199d121a7ddb619d604_cgraph.md5 @@ -0,0 +1 @@ +a7d2ecd94fde6d9dab3bf058e9204c5d \ No newline at end of file diff --git a/dd/d8c/adaline__learning_8c_afa953e811eaae199d121a7ddb619d604_cgraph.svg b/dd/d8c/adaline__learning_8c_afa953e811eaae199d121a7ddb619d604_cgraph.svg new file mode 100644 index 00000000..7c7ca218 --- /dev/null +++ b/dd/d8c/adaline__learning_8c_afa953e811eaae199d121a7ddb619d604_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +fit_sample + + + +Node1 + + +fit_sample + + + + + +Node2 + + +predict + + + + + +Node1->Node2 + + + + + +Node3 + + +activation + + + + + +Node2->Node3 + + + + + diff --git a/dd/d95/word__count_8h_source.html b/dd/d95/word__count_8h_source.html new file mode 100644 index 00000000..9dee58db --- /dev/null +++ b/dd/d95/word__count_8h_source.html @@ -0,0 +1,138 @@ + + + + + + + +Algorithms_in_C: exercism/word_count/word_count.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
word_count.h
+
+
+
1 #ifndef WORD_COUNT_H
+
2 #define WORD_COUNT_H
+
3 
+
4 #define MAX_WORDS 20 // at most MAX_WORDS can be found in the test input string
+
5 #define MAX_WORD_LENGTH 50 // no individual word can exceed this length
+
6 
+
7 // results structure
+
8 typedef struct word_count_word
+
9 {
+
10  char text[MAX_WORD_LENGTH];
+
11  int count;
+ +
13 
+
14 #define EXCESSIVE_LENGTH_WORD -1
+
15 #define EXCESSIVE_NUMBER_OF_WORDS -2
+
16 
+
17 // word_count - routine to classify the unique words and their frequency in a
+
18 // test input string inputs:
+
19 // input_text = a null-terminated string containing that is analyzed
+
20 //
+
21 // outputs:
+
22 // words = allocated structure to record the words found and their frequency
+
23 // uniqueWords - number of words in the words structure
+
24 // returns a negative number if an error.
+
25 // words will contain the results up to that point.
+
26 int word_count(const char *input_text, word_count_word_t *words);
+
27 
+
28 #endif
+
+
+
Definition: word_count.h:9
+ + + + diff --git a/dd/df0/problem__19_2sol1_8c.html b/dd/df0/problem__19_2sol1_8c.html new file mode 100644 index 00000000..d71b52d5 --- /dev/null +++ b/dd/df0/problem__19_2sol1_8c.html @@ -0,0 +1,299 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_19/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 19 solution +More...

+
#include <stdio.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + + + + + +

+Functions

char get_month_days (short month)
 
char is_leap_year (short year)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Problem 19 solution

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ get_month_days()

+ +
+
+ + + + + + + + +
char get_month_days (short month)
+
+

returns number of days in a month. Month is identified by an integer -
+

+

0 = Jan and 11 = December
+

+
+

For February, adjust for leap year outside the function.

+
15 {
+
16  if (month == 1) /* February has 28 days. Adjust leap year in the loop */
+
17  return 28;
+
18  else if (month <= 6) /* odd months till July have 30 days - Jan = 0 (even)*/
+
19  {
+
20  if (month & 0x01)
+
21  return 30;
+
22  else
+
23  return 31;
+
24  }
+
25  else if (month >= 7) /* odd months after July have 31 days*/
+
26  {
+
27  if (month & 0x01)
+
28  return 31;
+
29  else
+
30  return 30;
+
31  }
+
32  /* should never reach here! */
+
33  perror("Should never have reached this point!\n");
+
34  return -1;
+
35 }
+
+
+
+ +

◆ is_leap_year()

+ +
+
+ + + + + + + + +
char is_leap_year (short year)
+
+

return 1 if input year is a leap year otherwise, return 0

+
42 {
+
43  if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
+
44  return 1;
+
45 
+
46  return 0;
+
47 }
+
+
+
+ +

◆ main()

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

Main function

+

Let us identify days i.e., Sunday thru Saturday with integers - 0 thru 6 respectively Jan 1 1901 was a Tuesday

+

These two for-loops count the start of day for the next month. Hence, we have to skip the last December count

+

Main Algorithm: every week has 7 days hence, the start of next day would be modulo 7 add to this, the current start date and ensure the result is still modulo 7!

+
77 {
+
78  int count_sundays = 0;
+
79  const short start_year = 1901;
+
80  const short end_year = 2000;
+
81 
+
82  /**
+
83  * Let us identify days i.e., Sunday thru Saturday with integers - 0 thru 6
+
84  *respectively Jan 1 1901 was a Tuesday
+
85  **/
+
86  char start_day = 2;
+
87 
+
88  for (int year = start_year; year <= end_year; year++)
+
89  {
+
90  char is_leap = is_leap_year(year);
+
91  for (char month = 0; month < 12; month++)
+
92  {
+
93  /**
+
94  * These two for-loops count the start of day for the next month.
+
95  * Hence, we have to skip the last December count */
+
96  if (year == end_year && month == 11)
+
97  continue;
+
98 
+
99  int days = get_month_days(month);
+
100 
+
101  if (is_leap && month == 1) /* for a leap year february, add a day */
+
102  days++;
+
103 
+
104 #ifdef DEBUG
+
105  if (year == end_year)
+
106  {
+
107  printf("Year: %d\t Month: %d\t Days: %d\t First of day: %s\n",
+
108  year, month, days, day_string(start_day));
+
109  }
+
110 #endif
+
111 
+
112  /** Main Algorithm:
+
113  * every week has 7 days hence, the start of next day would be
+
114  *modulo 7 add to this, the current start date and ensure the result
+
115  *is still modulo 7!
+
116  **/
+
117  start_day = ((days % 7) + start_day) % 7;
+
118 
+
119  /* If start-day is a Sunday, increment counter */
+
120  if (start_day == 0)
+
121  count_sundays++;
+
122  }
+
123  }
+
124 
+
125  printf("Total number of Sundays that happened on the 1st of a month in the "
+
126  "last century: %d\n",
+
127  count_sundays);
+
128 
+
129  return 0;
+
130 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
char get_month_days(short month)
Definition: sol1.c:14
+
char is_leap_year(short year)
Definition: sol1.c:41
+ + + + diff --git a/dd/df0/problem__19_2sol1_8c.js b/dd/df0/problem__19_2sol1_8c.js new file mode 100644 index 00000000..ba8667c1 --- /dev/null +++ b/dd/df0/problem__19_2sol1_8c.js @@ -0,0 +1,6 @@ +var problem__19_2sol1_8c = +[ + [ "get_month_days", "dd/df0/problem__19_2sol1_8c.html#ab7f9ad087f124b8e0615aa535b4c8a75", null ], + [ "is_leap_year", "dd/df0/problem__19_2sol1_8c.html#a6561b1adc8a19c092679b9874da24e2e", null ], + [ "main", "dd/df0/problem__19_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ] +]; \ No newline at end of file diff --git a/dd/df0/problem__19_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/dd/df0/problem__19_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..86086047 --- /dev/null +++ b/dd/df0/problem__19_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/dd/df0/problem__19_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/dd/df0/problem__19_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..60305cbd --- /dev/null +++ b/dd/df0/problem__19_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +3a3717807394cadf24b026514f1f63bd \ No newline at end of file diff --git a/dd/df0/problem__19_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/dd/df0/problem__19_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..be0df2a7 --- /dev/null +++ b/dd/df0/problem__19_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +get_month_days + + + + + +Node1->Node2 + + + + + +Node3 + + +is_leap_year + + + + + +Node1->Node3 + + + + + diff --git a/dd/df2/problem__1_2sol2_8c__incl.map b/dd/df2/problem__1_2sol2_8c__incl.map new file mode 100644 index 00000000..bf87037a --- /dev/null +++ b/dd/df2/problem__1_2sol2_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/dd/df2/problem__1_2sol2_8c__incl.md5 b/dd/df2/problem__1_2sol2_8c__incl.md5 new file mode 100644 index 00000000..406eb6a2 --- /dev/null +++ b/dd/df2/problem__1_2sol2_8c__incl.md5 @@ -0,0 +1 @@ +a3cdab9ba4e7d2f647646dcaf32212fd \ No newline at end of file diff --git a/dd/df2/problem__1_2sol2_8c__incl.svg b/dd/df2/problem__1_2sol2_8c__incl.svg new file mode 100644 index 00000000..4dacfe41 --- /dev/null +++ b/dd/df2/problem__1_2sol2_8c__incl.svg @@ -0,0 +1,38 @@ + + + + + + +project_euler/problem_1/sol2.c + + + +Node1 + + +project_euler/problem +_1/sol2.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + diff --git a/de/d08/structcontour__coll__graph.map b/de/d08/structcontour__coll__graph.map new file mode 100644 index 00000000..c3bf675d --- /dev/null +++ b/de/d08/structcontour__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/de/d08/structcontour__coll__graph.md5 b/de/d08/structcontour__coll__graph.md5 new file mode 100644 index 00000000..f61b5f99 --- /dev/null +++ b/de/d08/structcontour__coll__graph.md5 @@ -0,0 +1 @@ +5eff2dabfb9ee841c16d57ffdd030c8d \ No newline at end of file diff --git a/de/d08/structcontour__coll__graph.svg b/de/d08/structcontour__coll__graph.svg new file mode 100644 index 00000000..8031ba3c --- /dev/null +++ b/de/d08/structcontour__coll__graph.svg @@ -0,0 +1,29 @@ + + + + + + +contour + + + +Node1 + + +contour + + + + + +Node1->Node1 + + + next + + + diff --git a/de/d20/md_data_structures_dictionary__r_e_a_d_m_e.html b/de/d20/md_data_structures_dictionary__r_e_a_d_m_e.html new file mode 100644 index 00000000..75ebff5f --- /dev/null +++ b/de/d20/md_data_structures_dictionary__r_e_a_d_m_e.html @@ -0,0 +1,126 @@ + + + + + + + +Algorithms_in_C: Dictionary + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Dictionary
+
+
+

This is simple and generic dictionary. You can instantiate multiple dictionaries with the constructor. See interface below.

+

Each dictionary has space for 1000 elements.

+

You need add the files dic.c and dic.h in your project directory. After that you include dic.h

+

+Overview about functions

+
Dictionary * create_dict(void);
+

create_dict: is a simple constructor for creating a dictionary and setting up the member field 'number_of_elements' and prepares the inner array 'elements'

+
int add_item_label(Dictionary *,char label[],void *);
+

add_item_label: adds item (void*) to the dictionary at given label returns 0 if adding was sucessful otherwise -1

+
int add_item_index(Dictionary *, int index, void *);
+

add_item_index: adds item (void*) to the dictionary at given index (int) returns 0 if adding was sucessful otherwise -1

+
void * get_element_label(Dictionary *, char []);
+

get_element: returns the element at given label

+
void * get_element_index(Dictionary *, int);
+

get_element: returns the element at given index

+
void destroy(Dictionary *);
+

simple destructor function for avoiding memory leaks.

+
+
+
+ + + + diff --git a/de/d4e/lu__decompose_8c__incl.map b/de/d4e/lu__decompose_8c__incl.map new file mode 100644 index 00000000..233967a0 --- /dev/null +++ b/de/d4e/lu__decompose_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/de/d4e/lu__decompose_8c__incl.md5 b/de/d4e/lu__decompose_8c__incl.md5 new file mode 100644 index 00000000..c189f32f --- /dev/null +++ b/de/d4e/lu__decompose_8c__incl.md5 @@ -0,0 +1 @@ +758364f4fbfb3e7267ee9eb3d36f727b \ No newline at end of file diff --git a/de/d4e/lu__decompose_8c__incl.svg b/de/d4e/lu__decompose_8c__incl.svg new file mode 100644 index 00000000..19402343 --- /dev/null +++ b/de/d4e/lu__decompose_8c__incl.svg @@ -0,0 +1,68 @@ + + + + + + +numerical_methods/lu_decompose.c + + + +Node1 + + +numerical_methods/lu +_decompose.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + +Node4 + + +time.h + + + + + +Node1->Node4 + + + + + diff --git a/de/dce/structmin__heap.html b/de/dce/structmin__heap.html new file mode 100644 index 00000000..12a5bef0 --- /dev/null +++ b/de/dce/structmin__heap.html @@ -0,0 +1,127 @@ + + + + + + + +Algorithms_in_C: min_heap Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
min_heap Struct Reference
+
+
+ + + + + + + + +

+Data Fields

+int * p
 
+int size
 
+int count
 
+
The documentation for this struct was generated from the following file:
    +
  • data_structures/heap/min_heap.c
  • +
+
+
+ + + + diff --git a/de/dce/structmin__heap.js b/de/dce/structmin__heap.js new file mode 100644 index 00000000..2708a426 --- /dev/null +++ b/de/dce/structmin__heap.js @@ -0,0 +1,6 @@ +var structmin__heap = +[ + [ "count", "de/dce/structmin__heap.html#a9fd34546dad4dfd9e6a456936b766123", null ], + [ "p", "de/dce/structmin__heap.html#ad960bfacd24fb843208db83f113ebc8f", null ], + [ "size", "de/dce/structmin__heap.html#a456c6372c103c6d1bb430f581f5d3c71", null ] +]; \ No newline at end of file diff --git a/df/d1a/problem__21_2sol1_8c.html b/df/d1a/problem__21_2sol1_8c.html new file mode 100644 index 00000000..1c91ab52 --- /dev/null +++ b/df/d1a/problem__21_2sol1_8c.html @@ -0,0 +1,270 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_21/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 21 solution +More...

+
#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + + + +

+Functions

unsigned long sum_of_divisors (unsigned int N)
 
int main (int argc, char **argv)
 
+

Detailed Description

+

Problem 21 solution

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ main()

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

Main function

+

< We use an array of flags to check if a number at the index was: not-processed = 0 is amicable = 1 not amicable = -1

+
37 {
+
38  unsigned long sum = 0;
+
39  unsigned int MAX_N = 500;
+
40  if (argc == 2)
+
41  MAX_N = atoi(argv[1]);
+
42 
+
43  /**<
+
44  * We use an array of flags to check if a number at the index was:
+
45  * not-processed = 0
+
46  * is amicable = 1
+
47  * not amicable = -1
+
48  **/
+
49  char *flags = (char *)calloc(MAX_N, sizeof(char));
+
50 
+
51  clock_t start_time = clock();
+
52  int i;
+
53  /* there are no such numbers till 10. Lets search from there on */
+
54  for (i = 10; i < MAX_N; i++)
+
55  {
+
56  if (flags[i] != 0)
+
57  /* already processed, skip */
+
58  continue;
+
59 
+
60  unsigned int b = sum_of_divisors(i);
+
61  if (b >= MAX_N)
+
62  flags[i] = -1;
+
63  else if (flags[b] == -1)
+
64  continue;
+
65 
+
66  unsigned int c = sum_of_divisors(b);
+
67  if (c == i && b != i)
+
68  {
+
69  /* found amicable */
+
70  flags[b] = 1;
+
71  flags[i] = 1;
+
72  sum += b + i;
+
73 #ifdef DEBUG
+
74  printf("Amicable: %4d : %4d\n", i, b);
+
75 #endif
+
76  }
+
77  else
+
78  {
+
79  flags[i] = -1;
+
80  if (b < MAX_N)
+
81  flags[b] = -1;
+
82  }
+
83  }
+
84 
+
85  clock_t end_time = clock();
+
86 
+
87  printf("\nTime taken: %.4g millisecond\n",
+
88  1e3 * (end_time - start_time) / CLOCKS_PER_SEC);
+
89  printf("Sum of all numbers = %lu\n", sum);
+
90 
+
91  free(flags);
+
92  return 0;
+
93 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ sum_of_divisors()

+ +
+
+ + + + + + + + +
unsigned long sum_of_divisors (unsigned int N)
+
+

function to return the sum of proper divisors of N

+
14 {
+
15  unsigned long sum = 1 + N; /* 1 and itself are always a divisor */
+
16  /* divisors are symmertically distributed about the square-root */
+
17  for (unsigned int i = 2; i * i < N; i++)
+
18  {
+
19  if ((N % i) != 0)
+
20  /* i is not a divisor of N */
+
21  continue;
+
22 
+
23  // #ifdef DEBUG
+
24  // printf("%4d, %4d,", i, N / i);
+
25  // #endif
+
26 
+
27  sum += i + (N / i);
+
28  }
+
29  // #ifdef DEBUG
+
30  // printf("\nSum of divisors of %4d: %4d\n", N, sum);
+
31  // #endif
+
32  return sum;
+
33 }
+
+
+
+
+
+
#define N
Definition: sol1.c:111
+
unsigned long sum_of_divisors(unsigned int N)
Definition: sol1.c:13
+
unsigned long MAX_N
Definition: sol1.c:13
+ + + + diff --git a/df/d1a/problem__21_2sol1_8c.js b/df/d1a/problem__21_2sol1_8c.js new file mode 100644 index 00000000..806d53f1 --- /dev/null +++ b/df/d1a/problem__21_2sol1_8c.js @@ -0,0 +1,5 @@ +var problem__21_2sol1_8c = +[ + [ "main", "df/d1a/problem__21_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627", null ], + [ "sum_of_divisors", "df/d1a/problem__21_2sol1_8c.html#aacf4b7e708651d2164e86958f2c29c93", null ] +]; \ No newline at end of file diff --git a/df/d1a/problem__21_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map b/df/d1a/problem__21_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map new file mode 100644 index 00000000..9bff0358 --- /dev/null +++ b/df/d1a/problem__21_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/df/d1a/problem__21_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 b/df/d1a/problem__21_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 new file mode 100644 index 00000000..c88de861 --- /dev/null +++ b/df/d1a/problem__21_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.md5 @@ -0,0 +1 @@ +a165dd2854c5ef6036b007567cbdfab0 \ No newline at end of file diff --git a/df/d1a/problem__21_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg b/df/d1a/problem__21_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg new file mode 100644 index 00000000..f4329ee9 --- /dev/null +++ b/df/d1a/problem__21_2sol1_8c_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +sum_of_divisors + + + + + +Node1->Node2 + + + + + diff --git a/df/d29/problem__7_2sol_8c__incl.map b/df/d29/problem__7_2sol_8c__incl.map new file mode 100644 index 00000000..b2fd4d77 --- /dev/null +++ b/df/d29/problem__7_2sol_8c__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/df/d29/problem__7_2sol_8c__incl.md5 b/df/d29/problem__7_2sol_8c__incl.md5 new file mode 100644 index 00000000..0cc064d8 --- /dev/null +++ b/df/d29/problem__7_2sol_8c__incl.md5 @@ -0,0 +1 @@ +6fcc5cfd22308ea89231f217e3ae180c \ No newline at end of file diff --git a/df/d29/problem__7_2sol_8c__incl.svg b/df/d29/problem__7_2sol_8c__incl.svg new file mode 100644 index 00000000..59ba8e23 --- /dev/null +++ b/df/d29/problem__7_2sol_8c__incl.svg @@ -0,0 +1,53 @@ + + + + + + +project_euler/problem_7/sol.c + + + +Node1 + + +project_euler/problem +_7/sol.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + diff --git a/df/d3c/threaded__binary__trees_8c.html b/df/d3c/threaded__binary__trees_8c.html new file mode 100644 index 00000000..eb19e7d0 --- /dev/null +++ b/df/d3c/threaded__binary__trees_8c.html @@ -0,0 +1,609 @@ + + + + + + + +Algorithms_in_C: data_structures/binary_trees/threaded_binary_trees.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
threaded_binary_trees.c File Reference
+
+
+ +

This file is a simple implementation of a Threaded Binary Tree. +More...

+
#include <stdio.h>
+#include <stdlib.h>
+
+Include dependency graph for threaded_binary_trees.c:
+
+
+
+
+
+ + + +

+Data Structures

struct  Node
 
+ + + +

+Typedefs

typedef struct Node node
 
+ + + + + + + + + + + + + + + + + +

+Functions

nodecreate_node (int data)
 
void insert_bt (node **root, int data)
 
void search (node *root, int ele)
 
void inorder_display (node *curr)
 
void postorder_display (node *curr)
 
void preorder_display (node *curr)
 
void delete_bt (node **root, int ele)
 
int main ()
 
+

Detailed Description

+

This file is a simple implementation of a Threaded Binary Tree.

+

Threaded Binary Tree is a binary tree variant in which all left child pointers that are NULL (in Linked list representation) point to its in-order predecessor, and all right child pointers that are NULL (in Linked list representation) point to its in-order successor. It has the following functionalities:

    +
  • Insertion
  • +
  • Search
  • +
  • Deletion
  • +
  • Listing of node keys inorder,preorder,postorder
  • +
+

-see binary_search_tree.c

+
Author
Amitha Nayak
+

Typedef Documentation

+ +

◆ node

+ +
+
+ + + + +
typedef struct Node node
+
+

Node, the basic data structure of the tree

+ +
+
+

Function Documentation

+ +

◆ create_node()

+ +
+
+ + + + + + + + +
node* create_node (int data)
+
+

creates a new node param[in] data value to be inserted

Returns
a pointer to the new node
+
39 {
+
40  node *ptr = (node *)malloc(sizeof(node));
+
41  ptr->rlink = ptr->llink = NULL;
+
42  ptr->data = data;
+
43  return ptr;
+
44 }
+
+
+
+ +

◆ delete_bt()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void delete_bt (node ** root,
int ele 
)
+
+

deletion of a node from the tree if the node isn't present in the tree, it takes no action. param[in,out] root pointer to node pointer to the topmost node of the tree param[in] ele value to be deleted from the tree

+
174 {
+
175  node *temp;
+
176  node *prev;
+
177  if (*root == NULL)
+
178  return;
+
179  else
+
180  {
+
181  temp = *root;
+
182  prev = NULL;
+
183  // search
+
184  while (temp != NULL)
+
185  {
+
186  if (temp->data == ele)
+
187  {
+
188  break;
+
189  }
+
190  else if (ele > temp->data)
+
191  {
+
192  prev = temp;
+
193  temp = temp->rlink;
+
194  }
+
195  else
+
196  {
+
197  prev = temp;
+
198  temp = temp->llink;
+
199  }
+
200  }
+
201  }
+
202 
+
203  if (temp == NULL)
+
204  return;
+
205  else
+
206  {
+
207  node *replacement; // deleted node's replacement
+
208  node *t;
+
209  if (temp->llink == NULL && temp->rlink == NULL)
+
210  {
+
211  replacement = NULL;
+
212  }
+
213  else if (temp->llink == NULL && temp->rlink != NULL)
+
214  {
+
215  replacement = temp->rlink;
+
216  }
+
217  else if (temp->llink != NULL && temp->rlink == NULL)
+
218  {
+
219  replacement = temp->llink;
+
220  }
+
221  else
+
222  {
+
223  replacement = temp->rlink; // replaced with inorder successor
+
224  t = replacement;
+
225  while (t->llink != NULL)
+
226  {
+
227  t = t->llink;
+
228  }
+
229  t->llink =
+
230  temp->llink; // leftmost node of the replacement is linked to
+
231  // the left child of the deleted node
+
232  }
+
233 
+
234  if (temp == *root)
+
235  {
+
236  free(*root);
+
237  *root = replacement;
+
238  }
+
239  else if (prev->llink == temp)
+
240  {
+
241  free(prev->llink);
+
242  prev->llink = replacement;
+
243  }
+
244  else if (prev->rlink == temp)
+
245  {
+
246  free(prev->rlink);
+
247  prev->rlink = replacement;
+
248  }
+
249  }
+
250 }
+
+
+
+ +

◆ inorder_display()

+ +
+
+ + + + + + + + +
void inorder_display (nodecurr)
+
+

performs inorder traversal param[in] curr node pointer to the topmost node of the tree

+
130 {
+
131  if (curr != NULL)
+
132  {
+
133  inorder_display(curr->llink);
+
134  printf("%d\t", curr->data);
+
135  inorder_display(curr->rlink);
+
136  }
+
137 }
+
+
+
+ +

◆ insert_bt()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void insert_bt (node ** root,
int data 
)
+
+

inserts a node into the tree param[in,out] root pointer to node pointer to the topmost node of the tree param[in] data value to be inserted into the tree

+
52 {
+
53  node *new_node = create_node(data);
+
54  node *temp; // to be deleted
+
55  node *prev; // keeps track of the parent of the element deleted
+
56  if (*root == NULL)
+
57  {
+
58  *root = new_node;
+
59  }
+
60  else
+
61  {
+
62  temp = *root;
+
63  prev = NULL;
+
64  while (temp != NULL)
+
65  {
+
66  if (new_node->data > temp->data)
+
67  {
+
68  prev = temp;
+
69  temp = temp->rlink;
+
70  }
+
71  else if (new_node->data < temp->data)
+
72  {
+
73  prev = temp;
+
74  temp = temp->llink;
+
75  }
+
76  else
+
77  {
+
78  return;
+
79  }
+
80  }
+
81 
+
82  if (new_node->data > prev->data)
+
83  {
+
84  prev->rlink = new_node;
+
85  }
+
86  else
+
87  {
+
88  prev->llink = new_node;
+
89  }
+
90  }
+
91 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ main()

+ +
+
+ + + + + + + +
int main ()
+
+

main function

+
256 {
+
257  printf("BINARY THREADED TREE: \n");
+
258  node *root = NULL;
+
259  int choice, n;
+
260  do
+
261  {
+
262  printf("%s\n", "1. Insert into BT");
+
263  printf("%s\n", "2. Print BT - inorder");
+
264  printf("%s\n", "3. Print BT - preorder");
+
265  printf("%s\n", "4. print BT - postorder");
+
266  printf("%s\n", "5. delete from BT");
+
267  printf("%s\n", "6. search in BT");
+
268  printf("%s\n", "Type 0 to exit");
+
269  scanf("%d", &choice);
+
270 
+
271  switch (choice)
+
272  {
+
273  case 1:
+
274  printf("%s\n", "Enter a no:");
+
275  scanf("%d", &n);
+
276  insert_bt(&root, n);
+
277  break;
+
278  case 2:
+
279  inorder_display(root);
+
280  printf("\n");
+
281  break;
+
282  case 3:
+
283  preorder_display(root);
+
284  printf("\n");
+
285  break;
+
286  case 4:
+
287  postorder_display(root);
+
288  printf("\n");
+
289  break;
+
290  case 5:
+
291  printf("%s\n", "Enter a no:");
+
292  scanf("%d", &n);
+
293  delete_bt(&root, n);
+
294  break;
+
295  case 6:
+
296  printf("%s\n", "Enter a no:");
+
297  scanf("%d", &n);
+
298  search(root, n);
+
299  break;
+
300  }
+
301  } while (choice != 0);
+
302  return 0;
+
303 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ postorder_display()

+ +
+
+ + + + + + + + +
void postorder_display (nodecurr)
+
+

performs postorder traversal param[in] curr node pointer to the topmost node of the tree

+
144 {
+
145  if (curr != NULL)
+
146  {
+
147  postorder_display(curr->llink);
+
148  postorder_display(curr->rlink);
+
149  printf("%d\t", curr->data);
+
150  }
+
151 }
+
+
+
+ +

◆ preorder_display()

+ +
+
+ + + + + + + + +
void preorder_display (nodecurr)
+
+

performs preorder traversal param[in] curr node pointer to the topmost node of the tree

+
158 {
+
159  if (curr != NULL)
+
160  {
+
161  printf("%d\t", curr->data);
+
162  preorder_display(curr->llink);
+
163  preorder_display(curr->rlink);
+
164  }
+
165 }
+
+
+
+ +

◆ search()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void search (noderoot,
int ele 
)
+
+

searches for the element

Parameters
+ + + +
[in]rootnode pointer to the topmost node of the tree
[in]elevalue searched for
+
+
+
99 {
+
100  node *temp = root;
+
101  while (temp != NULL)
+
102  {
+
103  if (temp->data == ele)
+
104  {
+
105  break;
+
106  }
+
107  else if (ele > temp->data)
+
108  {
+
109  temp = temp->rlink;
+
110  }
+
111  else
+
112  {
+
113  temp = temp->llink;
+
114  }
+
115  }
+
116 
+
117  if (temp == NULL)
+
118  {
+
119  printf("%s\n", "Element not found.");
+
120  }
+
121  else
+
122  printf("%s\n", "Element found.");
+
123 }
+
+
+
+
+
+
void delete_bt(node **root, int ele)
Definition: threaded_binary_trees.c:173
+
Definition: prime_factoriziation.c:25
+
Definition: binary_search_tree.c:14
+
void postorder_display(node *curr)
Definition: threaded_binary_trees.c:143
+
void search(node *root, int ele)
Definition: threaded_binary_trees.c:98
+
void preorder_display(node *curr)
Definition: threaded_binary_trees.c:157
+
void inorder_display(node *curr)
Definition: threaded_binary_trees.c:129
+
node * create_node(int data)
Definition: threaded_binary_trees.c:38
+
void insert_bt(node **root, int data)
Definition: threaded_binary_trees.c:51
+ + + + diff --git a/df/d3c/threaded__binary__trees_8c.js b/df/d3c/threaded__binary__trees_8c.js new file mode 100644 index 00000000..95c7c90b --- /dev/null +++ b/df/d3c/threaded__binary__trees_8c.js @@ -0,0 +1,13 @@ +var threaded__binary__trees_8c = +[ + [ "Node", "db/d8b/struct_node.html", "db/d8b/struct_node" ], + [ "node", "df/d3c/threaded__binary__trees_8c.html#ad8ecdcce462dd8e170ae1f164935aaa6", null ], + [ "create_node", "df/d3c/threaded__binary__trees_8c.html#ab21d1d36d95001defbca2f6abd4d410c", null ], + [ "delete_bt", "df/d3c/threaded__binary__trees_8c.html#a284d683f74b6c884e79ba00d3d1c3317", null ], + [ "inorder_display", "df/d3c/threaded__binary__trees_8c.html#a4c1e06b5f0876ec9c1bd6817f3b7eda7", null ], + [ "insert_bt", "df/d3c/threaded__binary__trees_8c.html#a823432888332fc9f0aa6072cff28c3bb", null ], + [ "main", "df/d3c/threaded__binary__trees_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ], + [ "postorder_display", "df/d3c/threaded__binary__trees_8c.html#a5a82ae0ee13788be51ca4ba6cddb0719", null ], + [ "preorder_display", "df/d3c/threaded__binary__trees_8c.html#a8169ba0dfd5b8183672e444d1434bf9c", null ], + [ "search", "df/d3c/threaded__binary__trees_8c.html#a306d567466f22e1e927aaed97d8bb58c", null ] +]; \ No newline at end of file diff --git a/df/d3c/threaded__binary__trees_8c_a823432888332fc9f0aa6072cff28c3bb_cgraph.map b/df/d3c/threaded__binary__trees_8c_a823432888332fc9f0aa6072cff28c3bb_cgraph.map new file mode 100644 index 00000000..34c02905 --- /dev/null +++ b/df/d3c/threaded__binary__trees_8c_a823432888332fc9f0aa6072cff28c3bb_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/df/d3c/threaded__binary__trees_8c_a823432888332fc9f0aa6072cff28c3bb_cgraph.md5 b/df/d3c/threaded__binary__trees_8c_a823432888332fc9f0aa6072cff28c3bb_cgraph.md5 new file mode 100644 index 00000000..d156fbe9 --- /dev/null +++ b/df/d3c/threaded__binary__trees_8c_a823432888332fc9f0aa6072cff28c3bb_cgraph.md5 @@ -0,0 +1 @@ +ced334175a33d70a4ef30caff32ec4c6 \ No newline at end of file diff --git a/df/d3c/threaded__binary__trees_8c_a823432888332fc9f0aa6072cff28c3bb_cgraph.svg b/df/d3c/threaded__binary__trees_8c_a823432888332fc9f0aa6072cff28c3bb_cgraph.svg new file mode 100644 index 00000000..f8a2a92c --- /dev/null +++ b/df/d3c/threaded__binary__trees_8c_a823432888332fc9f0aa6072cff28c3bb_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +insert_bt + + + +Node1 + + +insert_bt + + + + + +Node2 + + +create_node + + + + + +Node1->Node2 + + + + + diff --git a/df/d3c/threaded__binary__trees_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.map b/df/d3c/threaded__binary__trees_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.map new file mode 100644 index 00000000..027d1444 --- /dev/null +++ b/df/d3c/threaded__binary__trees_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/df/d3c/threaded__binary__trees_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.md5 b/df/d3c/threaded__binary__trees_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.md5 new file mode 100644 index 00000000..69b6469e --- /dev/null +++ b/df/d3c/threaded__binary__trees_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.md5 @@ -0,0 +1 @@ +511b9eb193fc7f5bf10c6993914be308 \ No newline at end of file diff --git a/df/d3c/threaded__binary__trees_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg b/df/d3c/threaded__binary__trees_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg new file mode 100644 index 00000000..62018f4f --- /dev/null +++ b/df/d3c/threaded__binary__trees_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg @@ -0,0 +1,127 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +delete_bt + + + + + +Node1->Node2 + + + + + +Node3 + + +inorder_display + + + + + +Node1->Node3 + + + + + +Node4 + + +insert_bt + + + + + +Node1->Node4 + + + + + +Node6 + + +postorder_display + + + + + +Node1->Node6 + + + + + +Node7 + + +preorder_display + + + + + +Node1->Node7 + + + + + +Node8 + + +search + + + + + +Node1->Node8 + + + + + +Node5 + + +create_node + + + + + +Node4->Node5 + + + + + diff --git a/df/d58/md_leetcode__r_e_a_d_m_e.html b/df/d58/md_leetcode__r_e_a_d_m_e.html new file mode 100644 index 00000000..ae45da9a --- /dev/null +++ b/df/d58/md_leetcode__r_e_a_d_m_e.html @@ -0,0 +1,285 @@ + + + + + + + +Algorithms_in_C: LeetCode + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
LeetCode
+
+
+

+LeetCode Algorithm

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
# Title Solution Difficulty
1 Two Sum C Easy
2 Add Two Numbers C Medium
3 Longest Substring Without Repeating Characters C Medium
4 Median of Two Sorted Arrays C Hard
7 Reverse Integer C Easy
8 String to Integer (atoi) C Medium
9 Palindrome Number C Easy
11 Container With Most Water C Medium
12 Integer to Roman C Medium
13 Roman to Integer C Easy
20 Valid Parentheses C Easy
21 Merge Two Sorted Lists C Easy
24 Swap Nodes in Pairs C Medium
26 Remove Duplicates from Sorted Array C Easy
27 Remove Element C Easy
28 Implement strStr() C Easy
29 Divide Two Integers C Medium
35 Search Insert Position C Easy
38 Count and Say C Easy
53 Maximum Subarray C Easy
66 Plus One C Easy
82 Remove Duplicates from Sorted List II C Medium
83 Remove Duplicates from Sorted List C Easy
94 Binary Tree Inorder Traversal C Medium
101 Symmetric Tree C Easy
104 Maximum Depth of Binary Tree C Easy
108 Convert Sorted Array to Binary Search Tree C Easy
109 Convert Sorted List to Binary Search Tree C Medium
110 Balanced Binary Tree C Easy
112 Path Sum C Easy
121 Best Time to Buy and Sell Stock C Easy
125 Valid Palindrome C Easy
136 Single Number C Easy
141 Linked List Cycle C Easy
142 Linked List Cycle II C Medium
153 Find Minimum in Rotated Sorted Array C Medium
160 Intersection of Two Linked Lists C Easy
169 Majority Element C Easy
173 Binary Search Tree Iterator C Medium
189 Rotate Array C Easy
190 Reverse Bits C Easy
191 Number of 1 Bits C Easy
201 Bitwise AND of Numbers Range C Medium
203 Remove Linked List Elements C Easy
206 Reverse Linked List C Easy
215 Kth Largest Element in an Array C Medium
217 Contains Duplicate C Easy
226 Invert Binary Tree C Easy
231 Power of Two C Easy
234 Palindrome Linked List C Easy
242 Valid Anagram C Easy
268 Missing Number C Easy
278 First Bad Version C Easy
283 Move Zeroes C Easy
287 Find the Duplicate Number C Medium
344 Reverse String C Easy
367 Valid Perfect Square C Easy
387 First Unique Character in a String C Easy
389 Find the Difference C Easy
404 Sum of Left Leaves C Easy
442 Find All Duplicates in an Array C Medium
461 Hamming Distance C Easy
476 Number Complement C Easy
509 Fibonacci Number C Easy
520 Detect Capital C Easy
561 Array Partition I C Easy
617 Merge Two Binary Trees C Easy
647 Palindromic Substring C Medium
674 Longest Continuous Increasing Subsequence C Easy
700 Search in a Binary Search Tree C Easy
701 Insert into a Binary Search Tree C Medium
704 Binary Search C Easy
709 To Lower Case C Easy
771 Jewels and Stones C Easy
852 Peak Index in a Mountain Array C Easy
876 Middle of the Linked List C Easy
905 Sort Array By Parity C Easy
917 Reverse Only Letters C Easy
938 Range Sum of BST C Easy
965 Univalued Binary Tree C Easy
977 Squares of a Sorted Array C Easy
1089 Duplicate Zeros C Easy
1184 Distance Between Bus Stops C Easy
1189 Maximum Number of Balloons C Easy
1207 Unique Number of Occurrences C Easy
+
+
+
+ + + + diff --git a/df/da5/problem__9_2sol1_8c.html b/df/da5/problem__9_2sol1_8c.html new file mode 100644 index 00000000..abc5ad94 --- /dev/null +++ b/df/da5/problem__9_2sol1_8c.html @@ -0,0 +1,166 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_9/sol1.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol1.c File Reference
+
+
+ +

Problem 9 solution - A naive implementation +More...

+
#include <stdio.h>
+
+Include dependency graph for sol1.c:
+
+
+
+
+
+ + + +

+Functions

int main (void)
 
+

Detailed Description

+

Problem 9 solution - A naive implementation

+
Author
Krishna Vedala
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + +
int main (void )
+
+

Main function

+
11 {
+
12  for (int a = 1; a < 300; a++)
+
13  for (int b = a + 1; b < 400; b++)
+
14  for (int c = b + 1; c < 500; c++)
+
15  {
+
16  if (a * a + b * b == c * c)
+
17  if (a + b + c == 1000)
+
18  {
+
19  printf("%d x %d x %d = %ld\n", a, b, c,
+
20  (long int)a * b * c);
+
21  return 0;
+
22  }
+
23  }
+
24 
+
25  return 0;
+
26 }
+
+
+
+
+
+ + + + diff --git a/df/da5/problem__9_2sol1_8c.js b/df/da5/problem__9_2sol1_8c.js new file mode 100644 index 00000000..63bf5f9f --- /dev/null +++ b/df/da5/problem__9_2sol1_8c.js @@ -0,0 +1,4 @@ +var problem__9_2sol1_8c = +[ + [ "main", "df/da5/problem__9_2sol1_8c.html#a840291bc02cba5474a4cb46a9b9566fe", null ] +]; \ No newline at end of file diff --git a/df/db0/factorial__large__number_8c__incl.map b/df/db0/factorial__large__number_8c__incl.map new file mode 100644 index 00000000..a4b25bd0 --- /dev/null +++ b/df/db0/factorial__large__number_8c__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/df/db0/factorial__large__number_8c__incl.md5 b/df/db0/factorial__large__number_8c__incl.md5 new file mode 100644 index 00000000..d681bd14 --- /dev/null +++ b/df/db0/factorial__large__number_8c__incl.md5 @@ -0,0 +1 @@ +b5c57af7d401e92ca13ff65c496b1543 \ No newline at end of file diff --git a/df/db0/factorial__large__number_8c__incl.svg b/df/db0/factorial__large__number_8c__incl.svg new file mode 100644 index 00000000..f1be6544 --- /dev/null +++ b/df/db0/factorial__large__number_8c__incl.svg @@ -0,0 +1,68 @@ + + + + + + +misc/factorial_large_number.c + + + +Node1 + + +misc/factorial_large +_number.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + +Node4 + + +time.h + + + + + +Node1->Node4 + + + + + diff --git a/df/db3/struct_l.html b/df/db3/struct_l.html new file mode 100644 index 00000000..04beec68 --- /dev/null +++ b/df/db3/struct_l.html @@ -0,0 +1,130 @@ + + + + + + + +Algorithms_in_C: L Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
L Struct Reference
+
+
+
+Collaboration diagram for L:
+
+
+
+
[legend]
+ + + + + + +

+Data Fields

+void * val
 
+L next
 
+
The documentation for this struct was generated from the following file:
    +
  • data_structures/list/list.h
  • +
+
+
+ + + + diff --git a/df/db3/struct_l.js b/df/db3/struct_l.js new file mode 100644 index 00000000..41e632e1 --- /dev/null +++ b/df/db3/struct_l.js @@ -0,0 +1,5 @@ +var struct_l = +[ + [ "next", "df/db3/struct_l.html#adbf91f5f6cc3047e13bb3dbbfb277be0", null ], + [ "val", "df/db3/struct_l.html#a4d585643a6364fbf79f54de5fa49d17f", null ] +]; \ No newline at end of file diff --git a/df/dbc/problem__6_2sol_8c__incl.map b/df/dbc/problem__6_2sol_8c__incl.map new file mode 100644 index 00000000..7ecd4d39 --- /dev/null +++ b/df/dbc/problem__6_2sol_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/df/dbc/problem__6_2sol_8c__incl.md5 b/df/dbc/problem__6_2sol_8c__incl.md5 new file mode 100644 index 00000000..a03f8d66 --- /dev/null +++ b/df/dbc/problem__6_2sol_8c__incl.md5 @@ -0,0 +1 @@ +c5ef96cd655522233130727ef2b99be6 \ No newline at end of file diff --git a/df/dbc/problem__6_2sol_8c__incl.svg b/df/dbc/problem__6_2sol_8c__incl.svg new file mode 100644 index 00000000..d87ca59f --- /dev/null +++ b/df/dbc/problem__6_2sol_8c__incl.svg @@ -0,0 +1,38 @@ + + + + + + +project_euler/problem_6/sol.c + + + +Node1 + + +project_euler/problem +_6/sol.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + diff --git a/df/dc6/acronym_8h_source.html b/df/dc6/acronym_8h_source.html new file mode 100644 index 00000000..087c55b7 --- /dev/null +++ b/df/dc6/acronym_8h_source.html @@ -0,0 +1,120 @@ + + + + + + + +Algorithms_in_C: exercism/acronym/acronym.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
acronym.h
+
+
+
1 #ifndef ACRONYM_H
+
2 #define ACRONYM_H
+
3 
+
4 char *abbreviate(const char *phrase);
+
5 
+
6 #endif
+
+
+
Definition: binary_search_tree.c:14
+
struct Node node
+
void search(node *root, int ele)
Definition: threaded_binary_trees.c:98
+
int main(int argc, char **argv)
Definition: c_atoi_str_to_integer.c:70
+
Definition: trie.c:15
+ + + + diff --git a/df/dda/ode__midpoint__euler_8c__incl.map b/df/dda/ode__midpoint__euler_8c__incl.map new file mode 100644 index 00000000..a2aa4fcf --- /dev/null +++ b/df/dda/ode__midpoint__euler_8c__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/df/dda/ode__midpoint__euler_8c__incl.md5 b/df/dda/ode__midpoint__euler_8c__incl.md5 new file mode 100644 index 00000000..fcf2f32f --- /dev/null +++ b/df/dda/ode__midpoint__euler_8c__incl.md5 @@ -0,0 +1 @@ +bce4bc0f5db752e0bcf74297049b51c7 \ No newline at end of file diff --git a/df/dda/ode__midpoint__euler_8c__incl.svg b/df/dda/ode__midpoint__euler_8c__incl.svg new file mode 100644 index 00000000..5dc45276 --- /dev/null +++ b/df/dda/ode__midpoint__euler_8c__incl.svg @@ -0,0 +1,83 @@ + + + + + + +numerical_methods/ode_midpoint_euler.c + + + +Node1 + + +numerical_methods/ode +_midpoint_euler.c + + + + + +Node2 + + +math.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdlib.h + + + + + +Node1->Node4 + + + + + +Node5 + + +time.h + + + + + +Node1->Node5 + + + + + diff --git a/df/ddb/structword__count__word.html b/df/ddb/structword__count__word.html new file mode 100644 index 00000000..e4506cc3 --- /dev/null +++ b/df/ddb/structword__count__word.html @@ -0,0 +1,124 @@ + + + + + + + +Algorithms_in_C: word_count_word Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
word_count_word Struct Reference
+
+
+ + + + + + +

+Data Fields

+char text [MAX_WORD_LENGTH]
 
+int count
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/df/ddb/structword__count__word.js b/df/ddb/structword__count__word.js new file mode 100644 index 00000000..695e2cc8 --- /dev/null +++ b/df/ddb/structword__count__word.js @@ -0,0 +1,5 @@ +var structword__count__word = +[ + [ "count", "df/ddb/structword__count__word.html#a44e237e11196ffa56574b90ea807e8fc", null ], + [ "text", "df/ddb/structword__count__word.html#a9c018b5f83b2aeeefac5cc09e5f41efd", null ] +]; \ No newline at end of file diff --git a/df/ddc/struct_node__coll__graph.map b/df/ddc/struct_node__coll__graph.map new file mode 100644 index 00000000..6fdecb10 --- /dev/null +++ b/df/ddc/struct_node__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/df/ddc/struct_node__coll__graph.md5 b/df/ddc/struct_node__coll__graph.md5 new file mode 100644 index 00000000..54004d07 --- /dev/null +++ b/df/ddc/struct_node__coll__graph.md5 @@ -0,0 +1 @@ +8686a70b6bd3a6aae00f6150183f276d \ No newline at end of file diff --git a/df/ddc/struct_node__coll__graph.svg b/df/ddc/struct_node__coll__graph.svg new file mode 100644 index 00000000..c73ebcb7 --- /dev/null +++ b/df/ddc/struct_node__coll__graph.svg @@ -0,0 +1,31 @@ + + + + + + +Node + + + +Node1 + + +Node + + + + + +Node1->Node1 + + + llink +next +rlink + + + diff --git a/df/de7/problem__5_2sol_8c.html b/df/de7/problem__5_2sol_8c.html new file mode 100644 index 00000000..81c79d54 --- /dev/null +++ b/df/de7/problem__5_2sol_8c.html @@ -0,0 +1,254 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_5/sol.c File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sol.c File Reference
+
+
+ +

Problem 5 solution +More...

+
#include <stdio.h>
+
+Include dependency graph for sol.c:
+
+
+
+
+
+ + + + + + + +

+Functions

unsigned long gcd (unsigned long a, unsigned long b)
 
unsigned long lcm (unsigned long a, unsigned long b)
 
int main (void)
 
+

Detailed Description

+

Problem 5 solution

+

Function Documentation

+ +

◆ gcd()

+ +
+
+ + + + + + + + + + + + + + + + + + +
unsigned long gcd (unsigned long a,
unsigned long b 
)
+
+

Compute Greatest Common Divisor (GCD) of two numbers using Euclids algorithm

+
12 {
+
13  unsigned long r;
+
14  if (a > b)
+
15  {
+
16  unsigned long t = a;
+
17  a = b;
+
18  b = t;
+
19  }
+
20  while ((r = (a % b)))
+
21  {
+
22  a = b;
+
23  b = r;
+
24  }
+
25  return b;
+
26 }
+
+
+
+ +

◆ lcm()

+ +
+
+ + + + + + + + + + + + + + + + + + +
unsigned long lcm (unsigned long a,
unsigned long b 
)
+
+

Compute Least Common Multiple (LCM) of two numbers

+
32 {
+
33  unsigned long long p = (unsigned long long)a * b;
+
34  return p / gcd(a, b);
+
35 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ main()

+ +
+
+ + + + + + + + +
int main (void )
+
+

Main function

+
39 {
+
40  unsigned long ans = 1;
+
41  unsigned long i;
+
42  for (i = 1; i <= 20; i++)
+
43  {
+
44  ans = lcm(ans, i);
+
45  }
+
46  printf("%lu\n", ans);
+
47  return 0;
+
48 }
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+
+
+
unsigned long lcm(unsigned long a, unsigned long b)
Definition: sol.c:31
+
unsigned long gcd(unsigned long a, unsigned long b)
Definition: sol.c:11
+ + + + diff --git a/df/de7/problem__5_2sol_8c.js b/df/de7/problem__5_2sol_8c.js new file mode 100644 index 00000000..bd509b8a --- /dev/null +++ b/df/de7/problem__5_2sol_8c.js @@ -0,0 +1,6 @@ +var problem__5_2sol_8c = +[ + [ "gcd", "df/de7/problem__5_2sol_8c.html#a59347107cbfdf48d51108e50280e760d", null ], + [ "lcm", "df/de7/problem__5_2sol_8c.html#ae9606f1867e9921867d6572f51377b4c", null ], + [ "main", "df/de7/problem__5_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe", null ] +]; \ No newline at end of file diff --git a/df/de7/problem__5_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map b/df/de7/problem__5_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map new file mode 100644 index 00000000..a2e0ee02 --- /dev/null +++ b/df/de7/problem__5_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/df/de7/problem__5_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 b/df/de7/problem__5_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 new file mode 100644 index 00000000..094e9e46 --- /dev/null +++ b/df/de7/problem__5_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.md5 @@ -0,0 +1 @@ +3da495b38fb61c5971fcc01786e27883 \ No newline at end of file diff --git a/df/de7/problem__5_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg b/df/de7/problem__5_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg new file mode 100644 index 00000000..23caf2bf --- /dev/null +++ b/df/de7/problem__5_2sol_8c_a840291bc02cba5474a4cb46a9b9566fe_cgraph.svg @@ -0,0 +1,52 @@ + + + + + + +main + + + +Node1 + + +main + + + + + +Node2 + + +lcm + + + + + +Node1->Node2 + + + + + +Node3 + + +gcd + + + + + +Node2->Node3 + + + + + diff --git a/df/de7/problem__5_2sol_8c_ae9606f1867e9921867d6572f51377b4c_cgraph.map b/df/de7/problem__5_2sol_8c_ae9606f1867e9921867d6572f51377b4c_cgraph.map new file mode 100644 index 00000000..28759221 --- /dev/null +++ b/df/de7/problem__5_2sol_8c_ae9606f1867e9921867d6572f51377b4c_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/df/de7/problem__5_2sol_8c_ae9606f1867e9921867d6572f51377b4c_cgraph.md5 b/df/de7/problem__5_2sol_8c_ae9606f1867e9921867d6572f51377b4c_cgraph.md5 new file mode 100644 index 00000000..7bd1dea6 --- /dev/null +++ b/df/de7/problem__5_2sol_8c_ae9606f1867e9921867d6572f51377b4c_cgraph.md5 @@ -0,0 +1 @@ +fa1f26b046cf839cb6268c3fafa9b6a0 \ No newline at end of file diff --git a/df/de7/problem__5_2sol_8c_ae9606f1867e9921867d6572f51377b4c_cgraph.svg b/df/de7/problem__5_2sol_8c_ae9606f1867e9921867d6572f51377b4c_cgraph.svg new file mode 100644 index 00000000..2cc7476e --- /dev/null +++ b/df/de7/problem__5_2sol_8c_ae9606f1867e9921867d6572f51377b4c_cgraph.svg @@ -0,0 +1,37 @@ + + + + + + +lcm + + + +Node1 + + +lcm + + + + + +Node2 + + +gcd + + + + + +Node1->Node2 + + + + + diff --git a/df/dea/structdata.html b/df/dea/structdata.html new file mode 100644 index 00000000..7ab68414 --- /dev/null +++ b/df/dea/structdata.html @@ -0,0 +1,124 @@ + + + + + + + +Algorithms_in_C: data Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
data Struct Reference
+
+
+ + + + + + +

+Data Fields

+int * range
 
+int length
 
+
The documentation for this struct was generated from the following file:
    +
  • misc/prime_factoriziation.c
  • +
+
+
+ + + + diff --git a/df/dea/structdata.js b/df/dea/structdata.js new file mode 100644 index 00000000..ef75f43f --- /dev/null +++ b/df/dea/structdata.js @@ -0,0 +1,5 @@ +var structdata = +[ + [ "length", "df/dea/structdata.html#ab1464d70ed28af0a16cdd2ebaa64027c", null ], + [ "range", "df/dea/structdata.html#a7a7e33023945ddb393dc306c489c4049", null ] +]; \ No newline at end of file diff --git a/dir_03902f230b9e9b7c999f936617a23997.html b/dir_03902f230b9e9b7c999f936617a23997.html new file mode 100644 index 00000000..df30c92f --- /dev/null +++ b/dir_03902f230b9e9b7c999f936617a23997.html @@ -0,0 +1,113 @@ + + + + + + + +Algorithms_in_C: leetcode Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
leetcode Directory Reference
+
+
+ + +

+Directories

+
+
+ + + + diff --git a/dir_0472225043064b54f3dfff9011a9fae0.html b/dir_0472225043064b54f3dfff9011a9fae0.html new file mode 100644 index 00000000..9bf776db --- /dev/null +++ b/dir_0472225043064b54f3dfff9011a9fae0.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: data_structures/stack/stack_linked_list Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
stack_linked_list Directory Reference
+
+
+
+
+ + + + diff --git a/dir_0472225043064b54f3dfff9011a9fae0.js b/dir_0472225043064b54f3dfff9011a9fae0.js new file mode 100644 index 00000000..e9dc958d --- /dev/null +++ b/dir_0472225043064b54f3dfff9011a9fae0.js @@ -0,0 +1,4 @@ +var dir_0472225043064b54f3dfff9011a9fae0 = +[ + [ "stack.h", "da/d90/stack__linked__list_2stack_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_079e1f799fb08a8a0b98cb030ab15687.html b/dir_079e1f799fb08a8a0b98cb030ab15687.html new file mode 100644 index 00000000..eb856e26 --- /dev/null +++ b/dir_079e1f799fb08a8a0b98cb030ab15687.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_25 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_25 Directory Reference
+
+
+ + + + + +

+Files

file  sol1.c
 Problem 25 solution implemented using arbitrarily large numbers represented as arrays
 
+
+
+ + + + diff --git a/dir_079e1f799fb08a8a0b98cb030ab15687.js b/dir_079e1f799fb08a8a0b98cb030ab15687.js new file mode 100644 index 00000000..7a620b96 --- /dev/null +++ b/dir_079e1f799fb08a8a0b98cb030ab15687.js @@ -0,0 +1,4 @@ +var dir_079e1f799fb08a8a0b98cb030ab15687 = +[ + [ "sol1.c", "d8/d32/problem__25_2sol1_8c.html", "d8/d32/problem__25_2sol1_8c" ] +]; \ No newline at end of file diff --git a/dir_0bc3e2a5baf077fa21dadc079776fcac.html b/dir_0bc3e2a5baf077fa21dadc079776fcac.html new file mode 100644 index 00000000..a5e3c7ee --- /dev/null +++ b/dir_0bc3e2a5baf077fa21dadc079776fcac.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_19 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_19 Directory Reference
+
+
+ + + + + +

+Files

file  sol1.c
 Problem 19 solution
 
+
+
+ + + + diff --git a/dir_0bc3e2a5baf077fa21dadc079776fcac.js b/dir_0bc3e2a5baf077fa21dadc079776fcac.js new file mode 100644 index 00000000..f5d05398 --- /dev/null +++ b/dir_0bc3e2a5baf077fa21dadc079776fcac.js @@ -0,0 +1,4 @@ +var dir_0bc3e2a5baf077fa21dadc079776fcac = +[ + [ "sol1.c", "dd/df0/problem__19_2sol1_8c.html", "dd/df0/problem__19_2sol1_8c" ] +]; \ No newline at end of file diff --git a/dir_167af11096b7752ff31b3d4bec489317.html b/dir_167af11096b7752ff31b3d4bec489317.html new file mode 100644 index 00000000..2fdf5e3e --- /dev/null +++ b/dir_167af11096b7752ff31b3d4bec489317.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_6 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_6 Directory Reference
+
+
+ + + + + +

+Files

file  sol.c
 Problem 6 solution
 
+
+
+ + + + diff --git a/dir_167af11096b7752ff31b3d4bec489317.js b/dir_167af11096b7752ff31b3d4bec489317.js new file mode 100644 index 00000000..bf8c8c1c --- /dev/null +++ b/dir_167af11096b7752ff31b3d4bec489317.js @@ -0,0 +1,4 @@ +var dir_167af11096b7752ff31b3d4bec489317 = +[ + [ "sol.c", "d4/d7b/problem__6_2sol_8c.html", "d4/d7b/problem__6_2sol_8c" ] +]; \ No newline at end of file diff --git a/dir_16b947d8e9a05fe119d0675493324331.html b/dir_16b947d8e9a05fe119d0675493324331.html new file mode 100644 index 00000000..cbc56628 --- /dev/null +++ b/dir_16b947d8e9a05fe119d0675493324331.html @@ -0,0 +1,119 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_10 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_10 Directory Reference
+
+
+ + + + + + + + +

+Files

file  sol1.c
 Problem 10 solution
 
file  sol2.c
 Problem 10 solution
 
+
+
+ + + + diff --git a/dir_16b947d8e9a05fe119d0675493324331.js b/dir_16b947d8e9a05fe119d0675493324331.js new file mode 100644 index 00000000..21fd506d --- /dev/null +++ b/dir_16b947d8e9a05fe119d0675493324331.js @@ -0,0 +1,5 @@ +var dir_16b947d8e9a05fe119d0675493324331 = +[ + [ "sol1.c", "d0/d6d/problem__10_2sol1_8c.html", "d0/d6d/problem__10_2sol1_8c" ], + [ "sol2.c", "d9/da7/problem__10_2sol2_8c.html", "d9/da7/problem__10_2sol2_8c" ] +]; \ No newline at end of file diff --git a/dir_16e00c78ef36d1842d0d8a4afc46b852.html b/dir_16e00c78ef36d1842d0d8a4afc46b852.html new file mode 100644 index 00000000..b87e3dac --- /dev/null +++ b/dir_16e00c78ef36d1842d0d8a4afc46b852.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_26 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_26 Directory Reference
+
+
+ + + + + +

+Files

file  sol1.c
 Problem 26 solution
 
+
+
+ + + + diff --git a/dir_16e00c78ef36d1842d0d8a4afc46b852.js b/dir_16e00c78ef36d1842d0d8a4afc46b852.js new file mode 100644 index 00000000..861f150c --- /dev/null +++ b/dir_16e00c78ef36d1842d0d8a4afc46b852.js @@ -0,0 +1,4 @@ +var dir_16e00c78ef36d1842d0d8a4afc46b852 = +[ + [ "sol1.c", "d1/df9/problem__26_2sol1_8c.html", "d1/df9/problem__26_2sol1_8c" ] +]; \ No newline at end of file diff --git a/dir_1833eb69ceee7a265ffba4c38c8243d2.html b/dir_1833eb69ceee7a265ffba4c38c8243d2.html new file mode 100644 index 00000000..731b03b7 --- /dev/null +++ b/dir_1833eb69ceee7a265ffba4c38c8243d2.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_4 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_4 Directory Reference
+
+
+ + + + + +

+Files

file  sol.c
 Problem 4 solution
 
+
+
+ + + + diff --git a/dir_1833eb69ceee7a265ffba4c38c8243d2.js b/dir_1833eb69ceee7a265ffba4c38c8243d2.js new file mode 100644 index 00000000..fa250a59 --- /dev/null +++ b/dir_1833eb69ceee7a265ffba4c38c8243d2.js @@ -0,0 +1,4 @@ +var dir_1833eb69ceee7a265ffba4c38c8243d2 = +[ + [ "sol.c", "d0/d6c/problem__4_2sol_8c.html", "d0/d6c/problem__4_2sol_8c" ] +]; \ No newline at end of file diff --git a/dir_18cba55772148686552805a354a79093.html b/dir_18cba55772148686552805a354a79093.html new file mode 100644 index 00000000..680e4e75 --- /dev/null +++ b/dir_18cba55772148686552805a354a79093.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_16 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_16 Directory Reference
+
+
+ + + + + +

+Files

file  sol1.c
 Problem 16 solution
 
+
+
+ + + + diff --git a/dir_18cba55772148686552805a354a79093.js b/dir_18cba55772148686552805a354a79093.js new file mode 100644 index 00000000..7056354a --- /dev/null +++ b/dir_18cba55772148686552805a354a79093.js @@ -0,0 +1,4 @@ +var dir_18cba55772148686552805a354a79093 = +[ + [ "sol1.c", "d6/d88/problem__16_2sol1_8c.html", "d6/d88/problem__16_2sol1_8c" ] +]; \ No newline at end of file diff --git a/dir_2176ba3565d8b1fe2a106d18679cc7bf.html b/dir_2176ba3565d8b1fe2a106d18679cc7bf.html new file mode 100644 index 00000000..d76b9782 --- /dev/null +++ b/dir_2176ba3565d8b1fe2a106d18679cc7bf.html @@ -0,0 +1,113 @@ + + + + + + + +Algorithms_in_C: data_structures/stack Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
stack Directory Reference
+
+
+ + +

+Directories

+
+
+ + + + diff --git a/dir_2176ba3565d8b1fe2a106d18679cc7bf.js b/dir_2176ba3565d8b1fe2a106d18679cc7bf.js new file mode 100644 index 00000000..389b1a3f --- /dev/null +++ b/dir_2176ba3565d8b1fe2a106d18679cc7bf.js @@ -0,0 +1,5 @@ +var dir_2176ba3565d8b1fe2a106d18679cc7bf = +[ + [ "stack_linked_list", "dir_0472225043064b54f3dfff9011a9fae0.html", "dir_0472225043064b54f3dfff9011a9fae0" ], + [ "stack.h", "d7/de0/stack_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_261dd1200fad5b2fe1eca9af8320656e.html b/dir_261dd1200fad5b2fe1eca9af8320656e.html new file mode 100644 index 00000000..bf3ccb16 --- /dev/null +++ b/dir_261dd1200fad5b2fe1eca9af8320656e.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: data_structures/linked_list Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
linked_list Directory Reference
+
+
+
+
+ + + + diff --git a/dir_2abe2c0880d3fb0dba0f784bee3fc9e0.html b/dir_2abe2c0880d3fb0dba0f784bee3fc9e0.html new file mode 100644 index 00000000..7d27f7ae --- /dev/null +++ b/dir_2abe2c0880d3fb0dba0f784bee3fc9e0.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_22 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_22 Directory Reference
+
+
+ + + + + +

+Files

file  sol1.c
 Problem 22 solution
 
+
+
+ + + + diff --git a/dir_2abe2c0880d3fb0dba0f784bee3fc9e0.js b/dir_2abe2c0880d3fb0dba0f784bee3fc9e0.js new file mode 100644 index 00000000..c26e9bc2 --- /dev/null +++ b/dir_2abe2c0880d3fb0dba0f784bee3fc9e0.js @@ -0,0 +1,4 @@ +var dir_2abe2c0880d3fb0dba0f784bee3fc9e0 = +[ + [ "sol1.c", "dd/d8b/problem__22_2sol1_8c.html", "dd/d8b/problem__22_2sol1_8c" ] +]; \ No newline at end of file diff --git a/dir_2b14f32f14b51065d3a322bea21da3c0.html b/dir_2b14f32f14b51065d3a322bea21da3c0.html new file mode 100644 index 00000000..3f14e7bc --- /dev/null +++ b/dir_2b14f32f14b51065d3a322bea21da3c0.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_15 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_15 Directory Reference
+
+
+ + + + + +

+Files

file  sol1.c
 Problem 15 solution
 
+
+
+ + + + diff --git a/dir_2b14f32f14b51065d3a322bea21da3c0.js b/dir_2b14f32f14b51065d3a322bea21da3c0.js new file mode 100644 index 00000000..5aa3d863 --- /dev/null +++ b/dir_2b14f32f14b51065d3a322bea21da3c0.js @@ -0,0 +1,4 @@ +var dir_2b14f32f14b51065d3a322bea21da3c0 = +[ + [ "sol1.c", "d7/d91/problem__15_2sol1_8c.html", "d7/d91/problem__15_2sol1_8c" ] +]; \ No newline at end of file diff --git a/dir_2e746e9d06bf2d8ff842208bcc6ebcfc.html b/dir_2e746e9d06bf2d8ff842208bcc6ebcfc.html new file mode 100644 index 00000000..b2102e50 --- /dev/null +++ b/dir_2e746e9d06bf2d8ff842208bcc6ebcfc.html @@ -0,0 +1,113 @@ + + + + + + + +Algorithms_in_C: data_structures Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
data_structures Directory Reference
+
+
+ + +

+Directories

+
+
+ + + + diff --git a/dir_2e746e9d06bf2d8ff842208bcc6ebcfc.js b/dir_2e746e9d06bf2d8ff842208bcc6ebcfc.js new file mode 100644 index 00000000..bda3d295 --- /dev/null +++ b/dir_2e746e9d06bf2d8ff842208bcc6ebcfc.js @@ -0,0 +1,11 @@ +var dir_2e746e9d06bf2d8ff842208bcc6ebcfc = +[ + [ "array", "dir_c7ef0fcb2f2095a74f0a3a1634dfc798.html", "dir_c7ef0fcb2f2095a74f0a3a1634dfc798" ], + [ "binary_trees", "dir_e39df94f82619fa5256f1786519937be.html", "dir_e39df94f82619fa5256f1786519937be" ], + [ "dictionary", "dir_7445e5a68245b48f3c03982b6d501815.html", "dir_7445e5a68245b48f3c03982b6d501815" ], + [ "dynamic_array", "dir_bd4a7dd282074645ef41b1ea31ac813a.html", "dir_bd4a7dd282074645ef41b1ea31ac813a" ], + [ "graphs", "dir_2fede762f95c9c526850a639b984c56b.html", "dir_2fede762f95c9c526850a639b984c56b" ], + [ "hash_set", "dir_955029374964e51cf770754b424e7d39.html", "dir_955029374964e51cf770754b424e7d39" ], + [ "list", "dir_b6018f60d424a2ef7e4c942ac681e38b.html", "dir_b6018f60d424a2ef7e4c942ac681e38b" ], + [ "stack", "dir_2176ba3565d8b1fe2a106d18679cc7bf.html", "dir_2176ba3565d8b1fe2a106d18679cc7bf" ] +]; \ No newline at end of file diff --git a/dir_2f070f19f76dfadabbc24fe483d7e98d.html b/dir_2f070f19f76dfadabbc24fe483d7e98d.html new file mode 100644 index 00000000..996c9c6a --- /dev/null +++ b/dir_2f070f19f76dfadabbc24fe483d7e98d.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_401 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_401 Directory Reference
+
+
+ + + + + +

+Files

file  sol1.c
 Problem 401 solution - Sum of squares of divisors
 
+
+
+ + + + diff --git a/dir_2f070f19f76dfadabbc24fe483d7e98d.js b/dir_2f070f19f76dfadabbc24fe483d7e98d.js new file mode 100644 index 00000000..35247e84 --- /dev/null +++ b/dir_2f070f19f76dfadabbc24fe483d7e98d.js @@ -0,0 +1,4 @@ +var dir_2f070f19f76dfadabbc24fe483d7e98d = +[ + [ "sol1.c", "d4/d83/problem__401_2sol1_8c.html", "d4/d83/problem__401_2sol1_8c" ] +]; \ No newline at end of file diff --git a/dir_2fede762f95c9c526850a639b984c56b.html b/dir_2fede762f95c9c526850a639b984c56b.html new file mode 100644 index 00000000..80bcda82 --- /dev/null +++ b/dir_2fede762f95c9c526850a639b984c56b.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: data_structures/graphs Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
graphs Directory Reference
+
+
+
+
+ + + + diff --git a/dir_2fede762f95c9c526850a639b984c56b.js b/dir_2fede762f95c9c526850a639b984c56b.js new file mode 100644 index 00000000..bc7a1208 --- /dev/null +++ b/dir_2fede762f95c9c526850a639b984c56b.js @@ -0,0 +1,5 @@ +var dir_2fede762f95c9c526850a639b984c56b = +[ + [ "graph.h", "d6/df3/graph_8h_source.html", null ], + [ "queue.h", "d8/d38/queue_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_32e2b2b829773774d6890224447e777d.html b/dir_32e2b2b829773774d6890224447e777d.html new file mode 100644 index 00000000..2bfb7dd7 --- /dev/null +++ b/dir_32e2b2b829773774d6890224447e777d.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: data_structures/heap Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
heap Directory Reference
+
+
+
+
+ + + + diff --git a/dir_3343723ae086de42ee4ca9774da3a13f.html b/dir_3343723ae086de42ee4ca9774da3a13f.html new file mode 100644 index 00000000..d44c294f --- /dev/null +++ b/dir_3343723ae086de42ee4ca9774da3a13f.html @@ -0,0 +1,122 @@ + + + + + + + +Algorithms_in_C: machine_learning Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
machine_learning Directory Reference
+
+
+ + + + + + + + + + + +

+Files

file  adaline_learning.c
 Adaptive Linear Neuron (ADALINE) implementation
 
file  kohonen_som_topology.c
 Kohonen self organizing map (topological map)
 
file  kohonen_som_trace.c
 Kohonen self organizing map (data tracing)
 
+
+
+ + + + diff --git a/dir_3343723ae086de42ee4ca9774da3a13f.js b/dir_3343723ae086de42ee4ca9774da3a13f.js new file mode 100644 index 00000000..3be95245 --- /dev/null +++ b/dir_3343723ae086de42ee4ca9774da3a13f.js @@ -0,0 +1,6 @@ +var dir_3343723ae086de42ee4ca9774da3a13f = +[ + [ "adaline_learning.c", "dd/d8c/adaline__learning_8c.html", "dd/d8c/adaline__learning_8c" ], + [ "kohonen_som_topology.c", "d2/df6/kohonen__som__topology_8c.html", "d2/df6/kohonen__som__topology_8c" ], + [ "kohonen_som_trace.c", "d0/d46/kohonen__som__trace_8c.html", "d0/d46/kohonen__som__trace_8c" ] +]; \ No newline at end of file diff --git a/dir_3c8f35d77556eca8a7a90921c2c197ad.html b/dir_3c8f35d77556eca8a7a90921c2c197ad.html new file mode 100644 index 00000000..330780ba --- /dev/null +++ b/dir_3c8f35d77556eca8a7a90921c2c197ad.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: searching/pattern_search Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
pattern_search Directory Reference
+
+
+
+
+ + + + diff --git a/dir_4500de955d1eddb82f69331d96e39ed9.html b/dir_4500de955d1eddb82f69331d96e39ed9.html new file mode 100644 index 00000000..994b344d --- /dev/null +++ b/dir_4500de955d1eddb82f69331d96e39ed9.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: exercism/hello_world Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
hello_world Directory Reference
+
+
+
+
+ + + + diff --git a/dir_4500de955d1eddb82f69331d96e39ed9.js b/dir_4500de955d1eddb82f69331d96e39ed9.js new file mode 100644 index 00000000..b80cfd57 --- /dev/null +++ b/dir_4500de955d1eddb82f69331d96e39ed9.js @@ -0,0 +1,4 @@ +var dir_4500de955d1eddb82f69331d96e39ed9 = +[ + [ "hello_world.h", "db/ddb/hello__world_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_475f56e0a4ef6254f5610544d8d68aa3.html b/dir_475f56e0a4ef6254f5610544d8d68aa3.html new file mode 100644 index 00000000..98048acf --- /dev/null +++ b/dir_475f56e0a4ef6254f5610544d8d68aa3.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: exercism/word_count Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
word_count Directory Reference
+
+
+
+
+ + + + diff --git a/dir_475f56e0a4ef6254f5610544d8d68aa3.js b/dir_475f56e0a4ef6254f5610544d8d68aa3.js new file mode 100644 index 00000000..74e7c57d --- /dev/null +++ b/dir_475f56e0a4ef6254f5610544d8d68aa3.js @@ -0,0 +1,4 @@ +var dir_475f56e0a4ef6254f5610544d8d68aa3 = +[ + [ "word_count.h", "dd/d95/word__count_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_48bf5503321d91c557399989fed5dabd.html b/dir_48bf5503321d91c557399989fed5dabd.html new file mode 100644 index 00000000..eaf3bc9e --- /dev/null +++ b/dir_48bf5503321d91c557399989fed5dabd.html @@ -0,0 +1,113 @@ + + + + + + + +Algorithms_in_C: exercism Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
exercism Directory Reference
+
+
+ + +

+Directories

+
+
+ + + + diff --git a/dir_48bf5503321d91c557399989fed5dabd.js b/dir_48bf5503321d91c557399989fed5dabd.js new file mode 100644 index 00000000..e22af5aa --- /dev/null +++ b/dir_48bf5503321d91c557399989fed5dabd.js @@ -0,0 +1,8 @@ +var dir_48bf5503321d91c557399989fed5dabd = +[ + [ "acronym", "dir_fe5d69ed7d90cb356556070c2a2e5478.html", "dir_fe5d69ed7d90cb356556070c2a2e5478" ], + [ "hello_world", "dir_4500de955d1eddb82f69331d96e39ed9.html", "dir_4500de955d1eddb82f69331d96e39ed9" ], + [ "isogram", "dir_76784a7b04633629b9ecb5543b9ad889.html", "dir_76784a7b04633629b9ecb5543b9ad889" ], + [ "rna_transcription", "dir_81f43aa0067826ea5befe80cd7aefcc5.html", "dir_81f43aa0067826ea5befe80cd7aefcc5" ], + [ "word_count", "dir_475f56e0a4ef6254f5610544d8d68aa3.html", "dir_475f56e0a4ef6254f5610544d8d68aa3" ] +]; \ No newline at end of file diff --git a/dir_4991c92e00761dd3d764efa2906b4318.html b/dir_4991c92e00761dd3d764efa2906b4318.html new file mode 100644 index 00000000..87c3c757 --- /dev/null +++ b/dir_4991c92e00761dd3d764efa2906b4318.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_20 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_20 Directory Reference
+
+
+ + + + + +

+Files

file  sol1.c
 Problem 20 solution
 
+
+
+ + + + diff --git a/dir_4991c92e00761dd3d764efa2906b4318.js b/dir_4991c92e00761dd3d764efa2906b4318.js new file mode 100644 index 00000000..868186c8 --- /dev/null +++ b/dir_4991c92e00761dd3d764efa2906b4318.js @@ -0,0 +1,4 @@ +var dir_4991c92e00761dd3d764efa2906b4318 = +[ + [ "sol1.c", "db/d80/problem__20_2sol1_8c.html", "db/d80/problem__20_2sol1_8c" ] +]; \ No newline at end of file diff --git a/dir_4a15c8553efb9e59e3f1091cc0d3a27d.html b/dir_4a15c8553efb9e59e3f1091cc0d3a27d.html new file mode 100644 index 00000000..3c91d465 --- /dev/null +++ b/dir_4a15c8553efb9e59e3f1091cc0d3a27d.html @@ -0,0 +1,119 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_8 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_8 Directory Reference
+
+
+ + + + + + + + +

+Files

file  sol1.c
 Problem 8 solution
 
file  sol2.c
 Problem 8 solution
 
+
+
+ + + + diff --git a/dir_4a15c8553efb9e59e3f1091cc0d3a27d.js b/dir_4a15c8553efb9e59e3f1091cc0d3a27d.js new file mode 100644 index 00000000..0e252b0f --- /dev/null +++ b/dir_4a15c8553efb9e59e3f1091cc0d3a27d.js @@ -0,0 +1,5 @@ +var dir_4a15c8553efb9e59e3f1091cc0d3a27d = +[ + [ "sol1.c", "dc/d63/problem__8_2sol1_8c.html", "dc/d63/problem__8_2sol1_8c" ], + [ "sol2.c", "d2/d93/problem__8_2sol2_8c.html", "d2/d93/problem__8_2sol2_8c" ] +]; \ No newline at end of file diff --git a/dir_4bae997a2671812c2140d5abfb6305a4.html b/dir_4bae997a2671812c2140d5abfb6305a4.html new file mode 100644 index 00000000..e718157c --- /dev/null +++ b/dir_4bae997a2671812c2140d5abfb6305a4.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_7 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_7 Directory Reference
+
+
+ + + + + +

+Files

file  sol.c
 Problem 7 solution
 
+
+
+ + + + diff --git a/dir_4bae997a2671812c2140d5abfb6305a4.js b/dir_4bae997a2671812c2140d5abfb6305a4.js new file mode 100644 index 00000000..3acc5790 --- /dev/null +++ b/dir_4bae997a2671812c2140d5abfb6305a4.js @@ -0,0 +1,4 @@ +var dir_4bae997a2671812c2140d5abfb6305a4 = +[ + [ "sol.c", "d1/d2f/problem__7_2sol_8c.html", "d1/d2f/problem__7_2sol_8c" ] +]; \ No newline at end of file diff --git a/dir_607f15d36c772334f988bb9ef82d102c.html b/dir_607f15d36c772334f988bb9ef82d102c.html new file mode 100644 index 00000000..56ca77a9 --- /dev/null +++ b/dir_607f15d36c772334f988bb9ef82d102c.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_5 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_5 Directory Reference
+
+
+ + + + + +

+Files

file  sol.c
 Problem 5 solution
 
+
+
+ + + + diff --git a/dir_607f15d36c772334f988bb9ef82d102c.js b/dir_607f15d36c772334f988bb9ef82d102c.js new file mode 100644 index 00000000..a8e59d4a --- /dev/null +++ b/dir_607f15d36c772334f988bb9ef82d102c.js @@ -0,0 +1,4 @@ +var dir_607f15d36c772334f988bb9ef82d102c = +[ + [ "sol.c", "df/de7/problem__5_2sol_8c.html", "df/de7/problem__5_2sol_8c" ] +]; \ No newline at end of file diff --git a/dir_614f310c248f2b9541b559085cafcb40.html b/dir_614f310c248f2b9541b559085cafcb40.html new file mode 100644 index 00000000..d4645741 --- /dev/null +++ b/dir_614f310c248f2b9541b559085cafcb40.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: leetcode/src Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
src Directory Reference
+
+
+
+
+ + + + diff --git a/dir_72aaf47615111200018c039a56ef48be.html b/dir_72aaf47615111200018c039a56ef48be.html new file mode 100644 index 00000000..7fc84297 --- /dev/null +++ b/dir_72aaf47615111200018c039a56ef48be.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: hash Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
hash Directory Reference
+
+
+
+
+ + + + diff --git a/dir_72aaf47615111200018c039a56ef48be.js b/dir_72aaf47615111200018c039a56ef48be.js new file mode 100644 index 00000000..100cec09 --- /dev/null +++ b/dir_72aaf47615111200018c039a56ef48be.js @@ -0,0 +1,4 @@ +var dir_72aaf47615111200018c039a56ef48be = +[ + [ "hash.h", "db/dfb/hash_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_7445e5a68245b48f3c03982b6d501815.html b/dir_7445e5a68245b48f3c03982b6d501815.html new file mode 100644 index 00000000..883aee42 --- /dev/null +++ b/dir_7445e5a68245b48f3c03982b6d501815.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: data_structures/dictionary Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
dictionary Directory Reference
+
+
+
+
+ + + + diff --git a/dir_7445e5a68245b48f3c03982b6d501815.js b/dir_7445e5a68245b48f3c03982b6d501815.js new file mode 100644 index 00000000..e6b028ed --- /dev/null +++ b/dir_7445e5a68245b48f3c03982b6d501815.js @@ -0,0 +1,4 @@ +var dir_7445e5a68245b48f3c03982b6d501815 = +[ + [ "dict.h", "d8/d7c/dict_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_76784a7b04633629b9ecb5543b9ad889.html b/dir_76784a7b04633629b9ecb5543b9ad889.html new file mode 100644 index 00000000..ed268e5c --- /dev/null +++ b/dir_76784a7b04633629b9ecb5543b9ad889.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: exercism/isogram Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
isogram Directory Reference
+
+
+
+
+ + + + diff --git a/dir_76784a7b04633629b9ecb5543b9ad889.js b/dir_76784a7b04633629b9ecb5543b9ad889.js new file mode 100644 index 00000000..d4001219 --- /dev/null +++ b/dir_76784a7b04633629b9ecb5543b9ad889.js @@ -0,0 +1,4 @@ +var dir_76784a7b04633629b9ecb5543b9ad889 = +[ + [ "isogram.h", "d6/d48/isogram_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_81f43aa0067826ea5befe80cd7aefcc5.html b/dir_81f43aa0067826ea5befe80cd7aefcc5.html new file mode 100644 index 00000000..c5862b4c --- /dev/null +++ b/dir_81f43aa0067826ea5befe80cd7aefcc5.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: exercism/rna_transcription Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
rna_transcription Directory Reference
+
+
+
+
+ + + + diff --git a/dir_81f43aa0067826ea5befe80cd7aefcc5.js b/dir_81f43aa0067826ea5befe80cd7aefcc5.js new file mode 100644 index 00000000..c672a8ff --- /dev/null +++ b/dir_81f43aa0067826ea5befe80cd7aefcc5.js @@ -0,0 +1,4 @@ +var dir_81f43aa0067826ea5befe80cd7aefcc5 = +[ + [ "rna_transcription.h", "d7/d90/rna__transcription_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_8c6743d405e8ed13cc39f42e382307fd.html b/dir_8c6743d405e8ed13cc39f42e382307fd.html new file mode 100644 index 00000000..c811c4c6 --- /dev/null +++ b/dir_8c6743d405e8ed13cc39f42e382307fd.html @@ -0,0 +1,125 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_1 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_1 Directory Reference
+
+
+ + + + + + + + + + + + + + +

+Files

file  sol1.c
 Problem 1 solution
 
file  sol2.c
 Problem 1 solution
 
file  sol3.c
 Problem 1 solution. This solution is based on the pattern that the successive numbers in the series follow: 0+3,+2,+1,+3,+1,+2,+3.
 
file  sol4.c
 Problem 1 solution
 
+
+
+ + + + diff --git a/dir_8c6743d405e8ed13cc39f42e382307fd.js b/dir_8c6743d405e8ed13cc39f42e382307fd.js new file mode 100644 index 00000000..36d9fee0 --- /dev/null +++ b/dir_8c6743d405e8ed13cc39f42e382307fd.js @@ -0,0 +1,7 @@ +var dir_8c6743d405e8ed13cc39f42e382307fd = +[ + [ "sol1.c", "da/d35/problem__1_2sol1_8c.html", "da/d35/problem__1_2sol1_8c" ], + [ "sol2.c", "d2/dae/problem__1_2sol2_8c.html", "d2/dae/problem__1_2sol2_8c" ], + [ "sol3.c", "d6/de3/sol3_8c.html", "d6/de3/sol3_8c" ], + [ "sol4.c", "d6/d1b/sol4_8c.html", "d6/d1b/sol4_8c" ] +]; \ No newline at end of file diff --git a/dir_955029374964e51cf770754b424e7d39.html b/dir_955029374964e51cf770754b424e7d39.html new file mode 100644 index 00000000..adb996bb --- /dev/null +++ b/dir_955029374964e51cf770754b424e7d39.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: data_structures/hash_set Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
hash_set Directory Reference
+
+
+
+
+ + + + diff --git a/dir_955029374964e51cf770754b424e7d39.js b/dir_955029374964e51cf770754b424e7d39.js new file mode 100644 index 00000000..2d95c157 --- /dev/null +++ b/dir_955029374964e51cf770754b424e7d39.js @@ -0,0 +1,4 @@ +var dir_955029374964e51cf770754b424e7d39 = +[ + [ "hash_set.h", "dc/de3/hash__set_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_9babc524d57e25f3d9f4179cabc3599e.html b/dir_9babc524d57e25f3d9f4179cabc3599e.html new file mode 100644 index 00000000..c34e73f5 --- /dev/null +++ b/dir_9babc524d57e25f3d9f4179cabc3599e.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: conversions Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
conversions Directory Reference
+
+
+ + + + + +

+Files

file  c_atoi_str_to_integer.c
 Recoding the original atoi function in stdlib.h.
 
+
+
+ + + + diff --git a/dir_9babc524d57e25f3d9f4179cabc3599e.js b/dir_9babc524d57e25f3d9f4179cabc3599e.js new file mode 100644 index 00000000..7e6c2ac7 --- /dev/null +++ b/dir_9babc524d57e25f3d9f4179cabc3599e.js @@ -0,0 +1,4 @@ +var dir_9babc524d57e25f3d9f4179cabc3599e = +[ + [ "c_atoi_str_to_integer.c", "d7/dd8/c__atoi__str__to__integer_8c.html", "d7/dd8/c__atoi__str__to__integer_8c" ] +]; \ No newline at end of file diff --git a/dir_9c6faab82c22511b50177aa2e38e2780.html b/dir_9c6faab82c22511b50177aa2e38e2780.html new file mode 100644 index 00000000..37250d8c --- /dev/null +++ b/dir_9c6faab82c22511b50177aa2e38e2780.html @@ -0,0 +1,143 @@ + + + + + + + +Algorithms_in_C: numerical_methods Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
numerical_methods Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  durand_kerner_roots.c
 Compute all possible approximate roots of any given polynomial using Durand Kerner algorithm
 
file  lu_decompose.c
 LU decomposition of a square matrix
 
file  newton_raphson_root.c
 Find approximate solution for \(f(x) = 0\) using Newton-Raphson interpolation algorithm.
 
file  ode_forward_euler.c
 Solve a multivariable first order ordinary differential equation (ODEs) using forward Euler method
 
file  ode_midpoint_euler.c
 Solve a multivariable first order ordinary differential equation (ODEs) using midpoint Euler method
 
file  ode_semi_implicit_euler.c
 Solve a multivariable first order ordinary differential equation (ODEs) using semi implicit Euler method
 
file  qr_decompose.h [code]
 Library functions to compute QR decomposition of a given matrix.
 
file  qr_decomposition.c
 Program to compute the QR decomposition of a given matrix.
 
file  qr_eigen_values.c
 Compute real eigen values and eigen vectors of a symmetric matrix using QR decomposition method.
 
file  realtime_stats.c
 Compute statistics for data entered in rreal-time.
 
+
+
+ + + + diff --git a/dir_9c6faab82c22511b50177aa2e38e2780.js b/dir_9c6faab82c22511b50177aa2e38e2780.js new file mode 100644 index 00000000..d3a5bf91 --- /dev/null +++ b/dir_9c6faab82c22511b50177aa2e38e2780.js @@ -0,0 +1,13 @@ +var dir_9c6faab82c22511b50177aa2e38e2780 = +[ + [ "durand_kerner_roots.c", "da/d38/durand__kerner__roots_8c.html", "da/d38/durand__kerner__roots_8c" ], + [ "lu_decompose.c", "dc/d2e/lu__decompose_8c.html", "dc/d2e/lu__decompose_8c" ], + [ "newton_raphson_root.c", "dd/d08/newton__raphson__root_8c.html", "dd/d08/newton__raphson__root_8c" ], + [ "ode_forward_euler.c", "d4/d07/ode__forward__euler_8c.html", "d4/d07/ode__forward__euler_8c" ], + [ "ode_midpoint_euler.c", "d1/dc2/ode__midpoint__euler_8c.html", "d1/dc2/ode__midpoint__euler_8c" ], + [ "ode_semi_implicit_euler.c", "d4/d99/ode__semi__implicit__euler_8c.html", "d4/d99/ode__semi__implicit__euler_8c" ], + [ "qr_decompose.h", "d4/d68/qr__decompose_8h.html", "d4/d68/qr__decompose_8h" ], + [ "qr_decomposition.c", "d5/d23/qr__decomposition_8c.html", "d5/d23/qr__decomposition_8c" ], + [ "qr_eigen_values.c", "d7/d50/qr__eigen__values_8c.html", "d7/d50/qr__eigen__values_8c" ], + [ "realtime_stats.c", "dc/d47/realtime__stats_8c.html", "dc/d47/realtime__stats_8c" ] +]; \ No newline at end of file diff --git a/dir_a4300992e825aa9b9238bf43160a241e.html b/dir_a4300992e825aa9b9238bf43160a241e.html new file mode 100644 index 00000000..a8199fd8 --- /dev/null +++ b/dir_a4300992e825aa9b9238bf43160a241e.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: greedy_approach Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
greedy_approach Directory Reference
+
+
+
+
+ + + + diff --git a/dir_a52f4d3d586a58b02f3a4ddf0a992157.html b/dir_a52f4d3d586a58b02f3a4ddf0a992157.html new file mode 100644 index 00000000..66aab8a9 --- /dev/null +++ b/dir_a52f4d3d586a58b02f3a4ddf0a992157.html @@ -0,0 +1,122 @@ + + + + + + + +Algorithms_in_C: misc Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
misc Directory Reference
+
+
+ + + + + + + + + + + +

+Files

file  collatz.c
 Implementation of Collatz' conjecture
 
file  factorial_large_number.c
 Compute factorial of arbitrarily large numbers by storing individual digits in a byte.
 
file  fibonacci_fast.c
 Compute \(m^{mth}\) Fibonacci number using the formulae:
 
+
+
+ + + + diff --git a/dir_a52f4d3d586a58b02f3a4ddf0a992157.js b/dir_a52f4d3d586a58b02f3a4ddf0a992157.js new file mode 100644 index 00000000..e42e25ef --- /dev/null +++ b/dir_a52f4d3d586a58b02f3a4ddf0a992157.js @@ -0,0 +1,6 @@ +var dir_a52f4d3d586a58b02f3a4ddf0a992157 = +[ + [ "collatz.c", "dc/d80/collatz_8c.html", "dc/d80/collatz_8c" ], + [ "factorial_large_number.c", "d6/d3d/factorial__large__number_8c.html", "d6/d3d/factorial__large__number_8c" ], + [ "fibonacci_fast.c", "d4/d99/fibonacci__fast_8c.html", "d4/d99/fibonacci__fast_8c" ] +]; \ No newline at end of file diff --git a/dir_aba97bf327db94061e830e9bc18e925d.html b/dir_aba97bf327db94061e830e9bc18e925d.html new file mode 100644 index 00000000..5b6d7934 --- /dev/null +++ b/dir_aba97bf327db94061e830e9bc18e925d.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_14 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_14 Directory Reference
+
+
+ + + + + +

+Files

file  sol1.c
 Problem 14 solution
 
+
+
+ + + + diff --git a/dir_aba97bf327db94061e830e9bc18e925d.js b/dir_aba97bf327db94061e830e9bc18e925d.js new file mode 100644 index 00000000..3fd8d80a --- /dev/null +++ b/dir_aba97bf327db94061e830e9bc18e925d.js @@ -0,0 +1,4 @@ +var dir_aba97bf327db94061e830e9bc18e925d = +[ + [ "sol1.c", "d4/dea/problem__14_2sol1_8c.html", "d4/dea/problem__14_2sol1_8c" ] +]; \ No newline at end of file diff --git a/dir_b2dbfa46230fd9f775c32c1836ed3764.html b/dir_b2dbfa46230fd9f775c32c1836ed3764.html new file mode 100644 index 00000000..bbff5665 --- /dev/null +++ b/dir_b2dbfa46230fd9f775c32c1836ed3764.html @@ -0,0 +1,119 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_3 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_3 Directory Reference
+
+
+ + + + + + + + +

+Files

file  sol1.c
 Problem 3 solution
 
file  sol2.c
 Problem 3 solution
 
+
+
+ + + + diff --git a/dir_b2dbfa46230fd9f775c32c1836ed3764.js b/dir_b2dbfa46230fd9f775c32c1836ed3764.js new file mode 100644 index 00000000..f5b32ba2 --- /dev/null +++ b/dir_b2dbfa46230fd9f775c32c1836ed3764.js @@ -0,0 +1,5 @@ +var dir_b2dbfa46230fd9f775c32c1836ed3764 = +[ + [ "sol1.c", "d7/dd3/problem__3_2sol1_8c.html", "d7/dd3/problem__3_2sol1_8c" ], + [ "sol2.c", "d2/dbc/problem__3_2sol2_8c.html", "d2/dbc/problem__3_2sol2_8c" ] +]; \ No newline at end of file diff --git a/dir_b3d331eabd4234f247030c297aaf021c.html b/dir_b3d331eabd4234f247030c297aaf021c.html new file mode 100644 index 00000000..e959613c --- /dev/null +++ b/dir_b3d331eabd4234f247030c297aaf021c.html @@ -0,0 +1,113 @@ + + + + + + + +Algorithms_in_C: project_euler Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
project_euler Directory Reference
+
+
+ + +

+Directories

+
+
+ + + + diff --git a/dir_b3d331eabd4234f247030c297aaf021c.js b/dir_b3d331eabd4234f247030c297aaf021c.js new file mode 100644 index 00000000..a9df1b88 --- /dev/null +++ b/dir_b3d331eabd4234f247030c297aaf021c.js @@ -0,0 +1,26 @@ +var dir_b3d331eabd4234f247030c297aaf021c = +[ + [ "problem_1", "dir_8c6743d405e8ed13cc39f42e382307fd.html", "dir_8c6743d405e8ed13cc39f42e382307fd" ], + [ "problem_10", "dir_16b947d8e9a05fe119d0675493324331.html", "dir_16b947d8e9a05fe119d0675493324331" ], + [ "problem_12", "dir_d9112ab06cf4d4e5a25d385a268d1949.html", "dir_d9112ab06cf4d4e5a25d385a268d1949" ], + [ "problem_13", "dir_f7d3c03fcac84aef1b0c66cc497ed1ea.html", "dir_f7d3c03fcac84aef1b0c66cc497ed1ea" ], + [ "problem_14", "dir_aba97bf327db94061e830e9bc18e925d.html", "dir_aba97bf327db94061e830e9bc18e925d" ], + [ "problem_15", "dir_2b14f32f14b51065d3a322bea21da3c0.html", "dir_2b14f32f14b51065d3a322bea21da3c0" ], + [ "problem_16", "dir_18cba55772148686552805a354a79093.html", "dir_18cba55772148686552805a354a79093" ], + [ "problem_19", "dir_0bc3e2a5baf077fa21dadc079776fcac.html", "dir_0bc3e2a5baf077fa21dadc079776fcac" ], + [ "problem_2", "dir_eeeea13e3a5e5edad3499183767ce312.html", "dir_eeeea13e3a5e5edad3499183767ce312" ], + [ "problem_20", "dir_4991c92e00761dd3d764efa2906b4318.html", "dir_4991c92e00761dd3d764efa2906b4318" ], + [ "problem_21", "dir_d9e100c82ada2163abea49688a71e81c.html", "dir_d9e100c82ada2163abea49688a71e81c" ], + [ "problem_22", "dir_2abe2c0880d3fb0dba0f784bee3fc9e0.html", "dir_2abe2c0880d3fb0dba0f784bee3fc9e0" ], + [ "problem_23", "dir_f75ccd45e00436eafed446b9b2682984.html", "dir_f75ccd45e00436eafed446b9b2682984" ], + [ "problem_25", "dir_079e1f799fb08a8a0b98cb030ab15687.html", "dir_079e1f799fb08a8a0b98cb030ab15687" ], + [ "problem_26", "dir_16e00c78ef36d1842d0d8a4afc46b852.html", "dir_16e00c78ef36d1842d0d8a4afc46b852" ], + [ "problem_3", "dir_b2dbfa46230fd9f775c32c1836ed3764.html", "dir_b2dbfa46230fd9f775c32c1836ed3764" ], + [ "problem_4", "dir_1833eb69ceee7a265ffba4c38c8243d2.html", "dir_1833eb69ceee7a265ffba4c38c8243d2" ], + [ "problem_401", "dir_2f070f19f76dfadabbc24fe483d7e98d.html", "dir_2f070f19f76dfadabbc24fe483d7e98d" ], + [ "problem_5", "dir_607f15d36c772334f988bb9ef82d102c.html", "dir_607f15d36c772334f988bb9ef82d102c" ], + [ "problem_6", "dir_167af11096b7752ff31b3d4bec489317.html", "dir_167af11096b7752ff31b3d4bec489317" ], + [ "problem_7", "dir_4bae997a2671812c2140d5abfb6305a4.html", "dir_4bae997a2671812c2140d5abfb6305a4" ], + [ "problem_8", "dir_4a15c8553efb9e59e3f1091cc0d3a27d.html", "dir_4a15c8553efb9e59e3f1091cc0d3a27d" ], + [ "problem_9", "dir_d4c35186c199e728d69dee6bf5b2473c.html", "dir_d4c35186c199e728d69dee6bf5b2473c" ] +]; \ No newline at end of file diff --git a/dir_b6018f60d424a2ef7e4c942ac681e38b.html b/dir_b6018f60d424a2ef7e4c942ac681e38b.html new file mode 100644 index 00000000..4cd2be89 --- /dev/null +++ b/dir_b6018f60d424a2ef7e4c942ac681e38b.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: data_structures/list Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
list Directory Reference
+
+
+
+
+ + + + diff --git a/dir_b6018f60d424a2ef7e4c942ac681e38b.js b/dir_b6018f60d424a2ef7e4c942ac681e38b.js new file mode 100644 index 00000000..4af28b9e --- /dev/null +++ b/dir_b6018f60d424a2ef7e4c942ac681e38b.js @@ -0,0 +1,4 @@ +var dir_b6018f60d424a2ef7e4c942ac681e38b = +[ + [ "list.h", "da/d23/list_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_bb1b521853a9c46347182a9d10420771.html b/dir_bb1b521853a9c46347182a9d10420771.html new file mode 100644 index 00000000..f1de0bef --- /dev/null +++ b/dir_bb1b521853a9c46347182a9d10420771.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: sorting Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
sorting Directory Reference
+
+
+ + + + + +

+Files

file  shell_sort2.c
 Shell sort algorithm implementation.
 
+
+
+ + + + diff --git a/dir_bb1b521853a9c46347182a9d10420771.js b/dir_bb1b521853a9c46347182a9d10420771.js new file mode 100644 index 00000000..f543c0b1 --- /dev/null +++ b/dir_bb1b521853a9c46347182a9d10420771.js @@ -0,0 +1,4 @@ +var dir_bb1b521853a9c46347182a9d10420771 = +[ + [ "shell_sort2.c", "d6/ded/shell__sort2_8c.html", "d6/ded/shell__sort2_8c" ] +]; \ No newline at end of file diff --git a/dir_bd4a7dd282074645ef41b1ea31ac813a.html b/dir_bd4a7dd282074645ef41b1ea31ac813a.html new file mode 100644 index 00000000..deca51b1 --- /dev/null +++ b/dir_bd4a7dd282074645ef41b1ea31ac813a.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: data_structures/dynamic_array Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
dynamic_array Directory Reference
+
+
+
+
+ + + + diff --git a/dir_bd4a7dd282074645ef41b1ea31ac813a.js b/dir_bd4a7dd282074645ef41b1ea31ac813a.js new file mode 100644 index 00000000..fdf1c662 --- /dev/null +++ b/dir_bd4a7dd282074645ef41b1ea31ac813a.js @@ -0,0 +1,4 @@ +var dir_bd4a7dd282074645ef41b1ea31ac813a = +[ + [ "dynamic_array.h", "d8/da2/dynamic__array_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_c7ef0fcb2f2095a74f0a3a1634dfc798.html b/dir_c7ef0fcb2f2095a74f0a3a1634dfc798.html new file mode 100644 index 00000000..f99b1a5a --- /dev/null +++ b/dir_c7ef0fcb2f2095a74f0a3a1634dfc798.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: data_structures/array Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
array Directory Reference
+
+
+
+
+ + + + diff --git a/dir_c7ef0fcb2f2095a74f0a3a1634dfc798.js b/dir_c7ef0fcb2f2095a74f0a3a1634dfc798.js new file mode 100644 index 00000000..f02a51f0 --- /dev/null +++ b/dir_c7ef0fcb2f2095a74f0a3a1634dfc798.js @@ -0,0 +1,4 @@ +var dir_c7ef0fcb2f2095a74f0a3a1634dfc798 = +[ + [ "carray.h", "d2/dc3/carray_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_d20ad0b8de644c123692ba5582cc7a7b.html b/dir_d20ad0b8de644c123692ba5582cc7a7b.html new file mode 100644 index 00000000..a027ce04 --- /dev/null +++ b/dir_d20ad0b8de644c123692ba5582cc7a7b.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: client_server Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
client_server Directory Reference
+
+
+
+
+ + + + diff --git a/dir_d4c35186c199e728d69dee6bf5b2473c.html b/dir_d4c35186c199e728d69dee6bf5b2473c.html new file mode 100644 index 00000000..ab5ad15d --- /dev/null +++ b/dir_d4c35186c199e728d69dee6bf5b2473c.html @@ -0,0 +1,119 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_9 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_9 Directory Reference
+
+
+ + + + + + + + +

+Files

file  sol1.c
 Problem 9 solution - A naive implementation
 
file  sol2.c
 Problem 9 solution
 
+
+
+ + + + diff --git a/dir_d4c35186c199e728d69dee6bf5b2473c.js b/dir_d4c35186c199e728d69dee6bf5b2473c.js new file mode 100644 index 00000000..e8351569 --- /dev/null +++ b/dir_d4c35186c199e728d69dee6bf5b2473c.js @@ -0,0 +1,5 @@ +var dir_d4c35186c199e728d69dee6bf5b2473c = +[ + [ "sol1.c", "df/da5/problem__9_2sol1_8c.html", "df/da5/problem__9_2sol1_8c" ], + [ "sol2.c", "d8/de0/problem__9_2sol2_8c.html", "d8/de0/problem__9_2sol2_8c" ] +]; \ No newline at end of file diff --git a/dir_d9112ab06cf4d4e5a25d385a268d1949.html b/dir_d9112ab06cf4d4e5a25d385a268d1949.html new file mode 100644 index 00000000..83483a50 --- /dev/null +++ b/dir_d9112ab06cf4d4e5a25d385a268d1949.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_12 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_12 Directory Reference
+
+
+ + + + + +

+Files

file  sol1.c
 Problem 12 solution
 
+
+
+ + + + diff --git a/dir_d9112ab06cf4d4e5a25d385a268d1949.js b/dir_d9112ab06cf4d4e5a25d385a268d1949.js new file mode 100644 index 00000000..eadeb092 --- /dev/null +++ b/dir_d9112ab06cf4d4e5a25d385a268d1949.js @@ -0,0 +1,4 @@ +var dir_d9112ab06cf4d4e5a25d385a268d1949 = +[ + [ "sol1.c", "d7/d1f/problem__12_2sol1_8c.html", "d7/d1f/problem__12_2sol1_8c" ] +]; \ No newline at end of file diff --git a/dir_d9e100c82ada2163abea49688a71e81c.html b/dir_d9e100c82ada2163abea49688a71e81c.html new file mode 100644 index 00000000..6aed7b57 --- /dev/null +++ b/dir_d9e100c82ada2163abea49688a71e81c.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_21 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_21 Directory Reference
+
+
+ + + + + +

+Files

file  sol1.c
 Problem 21 solution
 
+
+
+ + + + diff --git a/dir_d9e100c82ada2163abea49688a71e81c.js b/dir_d9e100c82ada2163abea49688a71e81c.js new file mode 100644 index 00000000..dc1f5326 --- /dev/null +++ b/dir_d9e100c82ada2163abea49688a71e81c.js @@ -0,0 +1,4 @@ +var dir_d9e100c82ada2163abea49688a71e81c = +[ + [ "sol1.c", "df/d1a/problem__21_2sol1_8c.html", "df/d1a/problem__21_2sol1_8c" ] +]; \ No newline at end of file diff --git a/dir_da574daf9ce9c05b45556bdc871ed1e3.html b/dir_da574daf9ce9c05b45556bdc871ed1e3.html new file mode 100644 index 00000000..1b2869da --- /dev/null +++ b/dir_da574daf9ce9c05b45556bdc871ed1e3.html @@ -0,0 +1,113 @@ + + + + + + + +Algorithms_in_C: searching Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
searching Directory Reference
+
+
+ + +

+Directories

+
+
+ + + + diff --git a/dir_e39df94f82619fa5256f1786519937be.html b/dir_e39df94f82619fa5256f1786519937be.html new file mode 100644 index 00000000..1ed4d82a --- /dev/null +++ b/dir_e39df94f82619fa5256f1786519937be.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: data_structures/binary_trees Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
binary_trees Directory Reference
+
+
+ + + + + +

+Files

file  threaded_binary_trees.c
 This file is a simple implementation of a Threaded Binary Tree.
 
+
+
+ + + + diff --git a/dir_e39df94f82619fa5256f1786519937be.js b/dir_e39df94f82619fa5256f1786519937be.js new file mode 100644 index 00000000..13878e81 --- /dev/null +++ b/dir_e39df94f82619fa5256f1786519937be.js @@ -0,0 +1,4 @@ +var dir_e39df94f82619fa5256f1786519937be = +[ + [ "threaded_binary_trees.c", "df/d3c/threaded__binary__trees_8c.html", "df/d3c/threaded__binary__trees_8c" ] +]; \ No newline at end of file diff --git a/dir_eeeea13e3a5e5edad3499183767ce312.html b/dir_eeeea13e3a5e5edad3499183767ce312.html new file mode 100644 index 00000000..95283b09 --- /dev/null +++ b/dir_eeeea13e3a5e5edad3499183767ce312.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_2 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_2 Directory Reference
+
+
+ + + + + +

+Files

file  so1.c
 Problem 2 solution
 
+
+
+ + + + diff --git a/dir_eeeea13e3a5e5edad3499183767ce312.js b/dir_eeeea13e3a5e5edad3499183767ce312.js new file mode 100644 index 00000000..97237bcf --- /dev/null +++ b/dir_eeeea13e3a5e5edad3499183767ce312.js @@ -0,0 +1,4 @@ +var dir_eeeea13e3a5e5edad3499183767ce312 = +[ + [ "so1.c", "d0/d7f/so1_8c.html", "d0/d7f/so1_8c" ] +]; \ No newline at end of file diff --git a/dir_f75ccd45e00436eafed446b9b2682984.html b/dir_f75ccd45e00436eafed446b9b2682984.html new file mode 100644 index 00000000..ffdfcf7f --- /dev/null +++ b/dir_f75ccd45e00436eafed446b9b2682984.html @@ -0,0 +1,119 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_23 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_23 Directory Reference
+
+
+ + + + + + + + +

+Files

file  sol1.c
 Problem 23 solution
 
file  sol2.c
 Problem 23 solution - optimization using look-up array
 
+
+
+ + + + diff --git a/dir_f75ccd45e00436eafed446b9b2682984.js b/dir_f75ccd45e00436eafed446b9b2682984.js new file mode 100644 index 00000000..2a5c50b7 --- /dev/null +++ b/dir_f75ccd45e00436eafed446b9b2682984.js @@ -0,0 +1,5 @@ +var dir_f75ccd45e00436eafed446b9b2682984 = +[ + [ "sol1.c", "d7/ddb/problem__23_2sol1_8c.html", "d7/ddb/problem__23_2sol1_8c" ], + [ "sol2.c", "d4/dbd/problem__23_2sol2_8c.html", "d4/dbd/problem__23_2sol2_8c" ] +]; \ No newline at end of file diff --git a/dir_f7d3c03fcac84aef1b0c66cc497ed1ea.html b/dir_f7d3c03fcac84aef1b0c66cc497ed1ea.html new file mode 100644 index 00000000..96dc3110 --- /dev/null +++ b/dir_f7d3c03fcac84aef1b0c66cc497ed1ea.html @@ -0,0 +1,116 @@ + + + + + + + +Algorithms_in_C: project_euler/problem_13 Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
problem_13 Directory Reference
+
+
+ + + + + +

+Files

file  sol1.c
 Problem 13 solution
 
+
+
+ + + + diff --git a/dir_f7d3c03fcac84aef1b0c66cc497ed1ea.js b/dir_f7d3c03fcac84aef1b0c66cc497ed1ea.js new file mode 100644 index 00000000..5480cc21 --- /dev/null +++ b/dir_f7d3c03fcac84aef1b0c66cc497ed1ea.js @@ -0,0 +1,4 @@ +var dir_f7d3c03fcac84aef1b0c66cc497ed1ea = +[ + [ "sol1.c", "db/d01/problem__13_2sol1_8c.html", "db/d01/problem__13_2sol1_8c" ] +]; \ No newline at end of file diff --git a/dir_fbc6c771d18f1a35ad2bd30260ea0fc8.html b/dir_fbc6c771d18f1a35ad2bd30260ea0fc8.html new file mode 100644 index 00000000..b1a8a6b8 --- /dev/null +++ b/dir_fbc6c771d18f1a35ad2bd30260ea0fc8.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: data_structures/trie Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
trie Directory Reference
+
+
+
+
+ + + + diff --git a/dir_fe5d69ed7d90cb356556070c2a2e5478.html b/dir_fe5d69ed7d90cb356556070c2a2e5478.html new file mode 100644 index 00000000..84ca3f20 --- /dev/null +++ b/dir_fe5d69ed7d90cb356556070c2a2e5478.html @@ -0,0 +1,109 @@ + + + + + + + +Algorithms_in_C: exercism/acronym Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
acronym Directory Reference
+
+
+
+
+ + + + diff --git a/dir_fe5d69ed7d90cb356556070c2a2e5478.js b/dir_fe5d69ed7d90cb356556070c2a2e5478.js new file mode 100644 index 00000000..c0207e2a --- /dev/null +++ b/dir_fe5d69ed7d90cb356556070c2a2e5478.js @@ -0,0 +1,4 @@ +var dir_fe5d69ed7d90cb356556070c2a2e5478 = +[ + [ "acronym.h", "df/dc6/acronym_8h_source.html", null ] +]; \ No newline at end of file diff --git a/doc.png b/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/doxygen.css b/doxygen.css new file mode 100644 index 00000000..5e35db3f --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1730 @@ +/* The standard CSS for doxygen 1.8.18 */ + +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; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, p.intertd, p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @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; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +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: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + 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, img.inline { + 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; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @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, .memTemplItemRight { + 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, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .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; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 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.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 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; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +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; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +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; +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 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.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 +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/doxygen.png b/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/dynsections.js b/dynsections.js new file mode 100644 index 00000000..3174bd7b --- /dev/null +++ b/dynsections.js @@ -0,0 +1,121 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 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 + */ +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 + + + + + + +Algorithms_in_C: File List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  conversions
 c_atoi_str_to_integer.cRecoding the original atoi function in stdlib.h
  data_structures
  array
  binary_trees
  dictionary
  dynamic_array
  graphs
  hash_set
  list
  stack
  exercism
  acronym
  hello_world
  isogram
  rna_transcription
  word_count
  hash
 hash.h
  machine_learning
 adaline_learning.cAdaptive Linear Neuron (ADALINE) implementation
 kohonen_som_topology.cKohonen self organizing map (topological map)
 kohonen_som_trace.cKohonen self organizing map (data tracing)
  misc
 collatz.cImplementation of Collatz' conjecture
 factorial_large_number.cCompute factorial of arbitrarily large numbers by storing individual digits in a byte
 fibonacci_fast.cCompute \(m^{mth}\) Fibonacci number using the formulae:
  numerical_methods
 durand_kerner_roots.cCompute all possible approximate roots of any given polynomial using Durand Kerner algorithm
 lu_decompose.cLU decomposition of a square matrix
 newton_raphson_root.cFind approximate solution for \(f(x) = 0\) using Newton-Raphson interpolation algorithm
 ode_forward_euler.cSolve a multivariable first order ordinary differential equation (ODEs) using forward Euler method
 ode_midpoint_euler.cSolve a multivariable first order ordinary differential equation (ODEs) using midpoint Euler method
 ode_semi_implicit_euler.cSolve a multivariable first order ordinary differential equation (ODEs) using semi implicit Euler method
 qr_decompose.hLibrary functions to compute QR decomposition of a given matrix
 qr_decomposition.cProgram to compute the QR decomposition of a given matrix
 qr_eigen_values.cCompute real eigen values and eigen vectors of a symmetric matrix using QR decomposition method
 realtime_stats.cCompute statistics for data entered in rreal-time
  project_euler
  problem_1
  problem_10
  problem_12
  problem_13
  problem_14
  problem_15
  problem_16
  problem_19
  problem_2
  problem_20
  problem_21
  problem_22
  problem_23
  problem_25
  problem_26
  problem_3
  problem_4
  problem_401
  problem_5
  problem_6
  problem_7
  problem_8
  problem_9
  sorting
 shell_sort2.cShell sort algorithm implementation
+
+
+
+ + + + diff --git a/files_dup.js b/files_dup.js new file mode 100644 index 00000000..acad892d --- /dev/null +++ b/files_dup.js @@ -0,0 +1,12 @@ +var files_dup = +[ + [ "conversions", "dir_9babc524d57e25f3d9f4179cabc3599e.html", "dir_9babc524d57e25f3d9f4179cabc3599e" ], + [ "data_structures", "dir_2e746e9d06bf2d8ff842208bcc6ebcfc.html", "dir_2e746e9d06bf2d8ff842208bcc6ebcfc" ], + [ "exercism", "dir_48bf5503321d91c557399989fed5dabd.html", "dir_48bf5503321d91c557399989fed5dabd" ], + [ "hash", "dir_72aaf47615111200018c039a56ef48be.html", "dir_72aaf47615111200018c039a56ef48be" ], + [ "machine_learning", "dir_3343723ae086de42ee4ca9774da3a13f.html", "dir_3343723ae086de42ee4ca9774da3a13f" ], + [ "misc", "dir_a52f4d3d586a58b02f3a4ddf0a992157.html", "dir_a52f4d3d586a58b02f3a4ddf0a992157" ], + [ "numerical_methods", "dir_9c6faab82c22511b50177aa2e38e2780.html", "dir_9c6faab82c22511b50177aa2e38e2780" ], + [ "project_euler", "dir_b3d331eabd4234f247030c297aaf021c.html", "dir_b3d331eabd4234f247030c297aaf021c" ], + [ "sorting", "dir_bb1b521853a9c46347182a9d10420771.html", "dir_bb1b521853a9c46347182a9d10420771" ] +]; \ No newline at end of file diff --git a/folderclosed.png b/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/functions.html b/functions.html new file mode 100644 index 00000000..d994dc23 --- /dev/null +++ b/functions.html @@ -0,0 +1,146 @@ + + + + + + + +Algorithms_in_C: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+
+
+ + + + diff --git a/functions_vars.html b/functions_vars.html new file mode 100644 index 00000000..17705ad1 --- /dev/null +++ b/functions_vars.html @@ -0,0 +1,146 @@ + + + + + + + +Algorithms_in_C: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/globals.html b/globals.html new file mode 100644 index 00000000..2146dcc9 --- /dev/null +++ b/globals.html @@ -0,0 +1,625 @@ + + + + + + + +Algorithms_in_C: Globals + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+ +

- _ -

+ + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- q -

+ + +

- r -

    +
  • remove_digits() +: sol1.c +
  • +
+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+
+
+ + + + diff --git a/globals_defs.html b/globals_defs.html new file mode 100644 index 00000000..4ff7b53d --- /dev/null +++ b/globals_defs.html @@ -0,0 +1,161 @@ + + + + + + + +Algorithms_in_C: Globals + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/globals_func.html b/globals_func.html new file mode 100644 index 00000000..3c64c9f6 --- /dev/null +++ b/globals_func.html @@ -0,0 +1,539 @@ + + + + + + + +Algorithms_in_C: Globals + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- _ -

+ + +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- p -

+ + +

- q -

+ + +

- r -

    +
  • remove_digits() +: sol1.c +
  • +
+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+
+
+ + + + diff --git a/globals_type.html b/globals_type.html new file mode 100644 index 00000000..1a83ecbc --- /dev/null +++ b/globals_type.html @@ -0,0 +1,115 @@ + + + + + + + +Algorithms_in_C: Globals + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/globals_vars.html b/globals_vars.html new file mode 100644 index 00000000..12f12afc --- /dev/null +++ b/globals_vars.html @@ -0,0 +1,113 @@ + + + + + + + +Algorithms_in_C: Globals + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/graph_legend.html b/graph_legend.html new file mode 100644 index 00000000..e20952a7 --- /dev/null +++ b/graph_legend.html @@ -0,0 +1,168 @@ + + + + + + + +Algorithms_in_C: Graph Legend + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

/*! Invisible class because of truncation */
+
class Invisible { };
+
+
/*! Truncated class, inheritance relation is hidden */
+
class Truncated : public Invisible { };
+
+
/* Class not documented with doxygen comments */
+
class Undocumented { };
+
+
/*! Class that is inherited using public inheritance */
+
class PublicBase : public Truncated { };
+
+
/*! A template class */
+
template<class T> class Templ { };
+
+
/*! Class that is inherited using protected inheritance */
+
class ProtectedBase { };
+
+
/*! Class that is inherited using private inheritance */
+
class PrivateBase { };
+
+
/*! Class that is used by the Inherited class */
+
class Used { };
+
+
/*! Super class that inherits a number of other classes */
+
class Inherited : public PublicBase,
+
protected ProtectedBase,
+
private PrivateBase,
+
public Undocumented,
+
public Templ<int>
+
{
+
private:
+
Used *m_usedClass;
+
};
+

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +A dark red arrow is used for private inheritance.
  • +
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • +
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
  • +
+
+
+ + + + diff --git a/graph_legend.md5 b/graph_legend.md5 new file mode 100644 index 00000000..5543aee7 --- /dev/null +++ b/graph_legend.md5 @@ -0,0 +1 @@ +2949d8d683b49299ad5e82dbf5d1be6c \ No newline at end of file diff --git a/graph_legend.svg b/graph_legend.svg new file mode 100644 index 00000000..ac0987b9 --- /dev/null +++ b/graph_legend.svg @@ -0,0 +1,117 @@ + + + + + + +Graph Legend + + + +Node9 + +Inherited + + + +Node10 + +PublicBase + + + +Node10->Node9 + + + + + +Node11 + +Truncated + + + +Node11->Node10 + + + + + +Node13 + +ProtectedBase + + + +Node13->Node9 + + + + + +Node14 + +PrivateBase + + + +Node14->Node9 + + + + + +Node15 + +Undocumented + + + +Node15->Node9 + + + + + +Node16 + +Templ< int > + + + +Node16->Node9 + + + + + +Node17 + +Templ< T > + + + +Node17->Node16 + + +< int > + + + +Node18 + +Used + + + +Node18->Node9 + + +m_usedClass + + + diff --git a/index.html b/index.html index e69de29b..32464eec 100644 --- a/index.html +++ b/index.html @@ -0,0 +1,119 @@ + + + + + + + +Algorithms_in_C: The Algorithms - C + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Algorithms_in_C +  1.0.0 +
+
Set of algorithms implemented in C.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
The Algorithms - C
+
+
+

Gitpod Ready-to-Code Gitter chat contributions welcome  GitHub repo size GitHub closed pull requests Doxygen CI Awesome CI Workflow

+

Online Documentation.

+

Click on Files menu to see the list of all the files documented with the code.

+

All the code can be executed and tested online: using Google Colab Notebook

+

+Algorithms implemented in C (for education)

+

The implementations are for learning purpose. They may be less efficient than the implementation in the standard library.

+

+Contribute Guidelines

+

Read our Contribution Guidelines before you contribute.

+
+
+
+ + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 00000000..103c32d7 --- /dev/null +++ b/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").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("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",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(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{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"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,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}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/menu.js b/menu.js new file mode 100644 index 00000000..d18a2fe2 --- /dev/null +++ b/menu.js @@ -0,0 +1,51 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 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 + */ +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/menudata.js b/menudata.js new file mode 100644 index 00000000..3972b0c8 --- /dev/null +++ b/menudata.js @@ -0,0 +1,81 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 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 +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Data Structures",url:"annotated.html",children:[ +{text:"Data Structures",url:"annotated.html"}, +{text:"Data Structure Index",url:"classes.html"}, +{text:"Data Fields",url:"functions.html",children:[ +{text:"All",url:"functions.html"}, +{text:"Variables",url:"functions_vars.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"Globals",url:"globals.html",children:[ +{text:"All",url:"globals.html",children:[ +{text:"_",url:"globals.html#index__5F"}, +{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:"i",url:"globals.html#index_i"}, +{text:"k",url:"globals.html#index_k"}, +{text:"l",url:"globals.html#index_l"}, +{text:"m",url:"globals.html#index_m"}, +{text:"n",url:"globals.html#index_n"}, +{text:"o",url:"globals.html#index_o"}, +{text:"p",url:"globals.html#index_p"}, +{text:"q",url:"globals.html#index_q"}, +{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:"v",url:"globals.html#index_v"}]}, +{text:"Functions",url:"globals_func.html",children:[ +{text:"_",url:"globals_func.html#index__5F"}, +{text:"a",url:"globals_func.html#index_a"}, +{text:"c",url:"globals_func.html#index_c"}, +{text:"d",url:"globals_func.html#index_d"}, +{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:"i",url:"globals_func.html#index_i"}, +{text:"k",url:"globals_func.html#index_k"}, +{text:"l",url:"globals_func.html#index_l"}, +{text:"m",url:"globals_func.html#index_m"}, +{text:"n",url:"globals_func.html#index_n"}, +{text:"p",url:"globals_func.html#index_p"}, +{text:"q",url:"globals_func.html#index_q"}, +{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:"v",url:"globals_func.html#index_v"}]}, +{text:"Variables",url:"globals_vars.html"}, +{text:"Typedefs",url:"globals_type.html"}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/nav_f.png b/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/nav_g.png b/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=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/exercism.io", "d7/db5/md_exercism__r_e_a_d_m_e.html", null ], + [ "Hash algorithms", "d4/dcb/md_hash__r_e_a_d_m_e.html", null ], + [ "LeetCode", "df/d58/md_leetcode__r_e_a_d_m_e.html", null ], + [ "ProjectEuler", "d8/d81/md_project_euler__r_e_a_d_m_e.html", null ], + [ "Data Structures", "annotated.html", [ + [ "Data Structures", "annotated.html", "annotated_dup" ], + [ "Data Structure Index", "classes.html", null ], + [ "Data Fields", "functions.html", [ + [ "All", "functions.html", null ], + [ "Variables", "functions_vars.html", null ] + ] ] + ] ], + [ "Files", "files.html", [ + [ "File List", "files.html", "files_dup" ], + [ "Globals", "globals.html", [ + [ "All", "globals.html", null ], + [ "Functions", "globals_func.html", null ], + [ "Variables", "globals_vars.html", null ], + [ "Typedefs", "globals_type.html", null ], + [ "Macros", "globals_defs.html", null ] + ] ] + ] ] + ] ] +]; + +var NAVTREEINDEX = +[ +"annotated.html", +"d6/de3/sol3_8c.html", +"pages.html" +]; + +var SYNCONMSG = 'click to disable panel synchronisation'; +var SYNCOFFMSG = 'click to enable panel synchronisation'; \ No newline at end of file diff --git a/navtreeindex0.js b/navtreeindex0.js new file mode 100644 index 00000000..0ad5be26 --- /dev/null +++ b/navtreeindex0.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX0 = +{ +"annotated.html":[10,0], +"classes.html":[10,1], +"d0/d10/struct_queue_rep.html":[10,0,30], +"d0/d10/struct_queue_rep.html#a5ca79e0a97550d8938331d90ce585a35":[10,0,30,2], +"d0/d10/struct_queue_rep.html#aad9e10b8e2e0a821d374a154240e22c6":[10,0,30,1], +"d0/d10/struct_queue_rep.html#ad4f9f3b0f81ea8c768d4c45548a590de":[10,0,30,0], +"d0/d43/structpid.html":[10,0,28], +"d0/d43/structpid.html#a3c54185f7b4867281786eff640443a00":[10,0,28,0], +"d0/d43/structpid.html#a5a7b54866748e12568f9b9599b31f8eb":[10,0,28,3], +"d0/d43/structpid.html#a65e8bc146e02bad2702a0286d37b81bc":[10,0,28,2], +"d0/d43/structpid.html#a6c721a7983511fb9f91777ae45481473":[10,0,28,1], +"d0/d43/structpid.html#ad661092f21ab1e0e6aa35fbcfcf6f161":[10,0,28,4], +"d0/d46/kohonen__som__trace_8c.html":[11,0,4,2], +"d0/d46/kohonen__som__trace_8c.html#a0283886819c7c140a023582b7269e2d0":[11,0,4,2,10], +"d0/d46/kohonen__som__trace_8c.html#a0a292ebd954c568934b1fd06666d27e6":[11,0,4,2,5], +"d0/d46/kohonen__som__trace_8c.html#a107f00650b8041f77767927073ddddb8":[11,0,4,2,13], +"d0/d46/kohonen__som__trace_8c.html#a1440a7779ac56f47a3f355ce4a8c7da0":[11,0,4,2,9], +"d0/d46/kohonen__som__trace_8c.html#a2256c10b16edba377b64a44b6c656908":[11,0,4,2,4], +"d0/d46/kohonen__som__trace_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,4,2,7], +"d0/d46/kohonen__som__trace_8c.html#a41ae16442e3e5b891a58d2e5932a2cd0":[11,0,4,2,12], +"d0/d46/kohonen__som__trace_8c.html#a525335710b53cb064ca56b936120431e":[11,0,4,2,0], +"d0/d46/kohonen__som__trace_8c.html#a6d0455dd5c30adda100e95f0423c786e":[11,0,4,2,11], +"d0/d46/kohonen__som__trace_8c.html#a7b84b14e60f47812b581d1f93057c85a":[11,0,4,2,8], +"d0/d46/kohonen__som__trace_8c.html#a9c98203f55242ff7a8f45a6370840e66":[11,0,4,2,15], +"d0/d46/kohonen__som__trace_8c.html#aa2246f940155472084ee461f3685d614":[11,0,4,2,14], +"d0/d46/kohonen__som__trace_8c.html#ac6afabdc09a49a433ee19d8a9486056d":[11,0,4,2,2], +"d0/d46/kohonen__som__trace_8c.html#aeaeffbff2be4d5d15b0d4f10f846abde":[11,0,4,2,6], +"d0/d46/kohonen__som__trace_8c.html#af5ce14f026d6d231bef29161bac2b485":[11,0,4,2,3], +"d0/d46/kohonen__som__trace_8c.html#affe776513b24d84b39af8ab0930fef7f":[11,0,4,2,1], +"d0/d6b/structelem.html":[10,0,19], +"d0/d6b/structelem.html#a738173725677dc7ccc8529cc8537c50d":[10,0,19,1], +"d0/d6b/structelem.html#ab9cf5c2e1c9a0ec2938275b90d39d5ca":[10,0,19,0], +"d0/d6c/problem__4_2sol_8c.html":[11,0,7,16,0], +"d0/d6c/problem__4_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe":[11,0,7,16,0,1], +"d0/d6c/problem__4_2sol_8c.html#adf9bea8d35848959bde5b3f277edf0c4":[11,0,7,16,0,0], +"d0/d6d/problem__10_2sol1_8c.html":[11,0,7,1,0], +"d0/d6d/problem__10_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97":[11,0,7,1,0,1], +"d0/d6d/problem__10_2sol1_8c.html#acc871ab6bfead702e983a7f9c412915f":[11,0,7,1,0,0], +"d0/d6d/problem__10_2sol1_8c.html#ae3d987cb2ad0ddb0c3caa4c2506a20e5":[11,0,7,1,0,2], +"d0/d7f/so1_8c.html":[11,0,7,8,0], +"d0/d7f/so1_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[11,0,7,8,0,0], +"d0/d8a/structmax__heap.html":[10,0,24], +"d0/d8a/structmax__heap.html#a1b632c34e7304f9e0720834200696340":[10,0,24,1], +"d0/d8a/structmax__heap.html#a917b63797e1857ce994dd5e6cfcebf1e":[10,0,24,0], +"d0/d8a/structmax__heap.html#ac4d520821651b109fd2ba2a99c6c6015":[10,0,24,2], +"d0/dc8/structarray__3d.html":[10,0,10], +"d0/dc8/structarray__3d.html#aa431cc0a41fd379270dbd2b0e3ac1b45":[10,0,10,2], +"d0/dc8/structarray__3d.html#ac8967b2c72769f839c09fb4cebb4339f":[10,0,10,0], +"d0/dc8/structarray__3d.html#ad5d3ee546eea3c05dc8f0dc90ec194f4":[10,0,10,1], +"d0/dc8/structarray__3d.html#ad823bd5424a0fc158da52a0497d8c10a":[10,0,10,3], +"d0/df1/structhash__set__t.html":[10,0,22], +"d0/df1/structhash__set__t.html#a1b52c6b78642e398f574c2ec9ed22e8a":[10,0,22,1], +"d0/df1/structhash__set__t.html#a5fd11ba3c74b2cc7fd161696fb951b82":[10,0,22,2], +"d0/df1/structhash__set__t.html#a66e37043817e37030d2e49fd5bf81d7f":[10,0,22,3], +"d0/df1/structhash__set__t.html#a6f21e4fb262dbabac311dadc7936aa68":[10,0,22,0], +"d1/d12/md_data_structures_stack__r_e_a_d_m_e.html":[4], +"d1/d12/md_data_structures_stack__r_e_a_d_m_e.html#autotoc_md11":[3], +"d1/d12/md_data_structures_stack__r_e_a_d_m_e.html#autotoc_md12":[4], +"d1/d2f/problem__7_2sol_8c.html":[11,0,7,20,0], +"d1/d2f/problem__7_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe":[11,0,7,20,0,0], +"d1/dc2/ode__midpoint__euler_8c.html":[11,0,6,4], +"d1/dc2/ode__midpoint__euler_8c.html#a0ddf1224851353fc92bfbff6f499fa97":[11,0,6,4,2], +"d1/dc2/ode__midpoint__euler_8c.html#a148003d8b261d040c1c41e73b40af1dd":[11,0,6,4,3], +"d1/dc2/ode__midpoint__euler_8c.html#a8caee977b26888d34040b122e0e28e3a":[11,0,6,4,1], +"d1/dc2/ode__midpoint__euler_8c.html#a97075291390a68c262ed66e157a57eb4":[11,0,6,4,5], +"d1/dc2/ode__midpoint__euler_8c.html#a9ceb646336224ee890a269d0b4600d09":[11,0,6,4,0], +"d1/dc2/ode__midpoint__euler_8c.html#affe6cc2ab040b94a29e6c41782f72d51":[11,0,6,4,4], +"d1/df9/problem__26_2sol1_8c.html":[11,0,7,14,0], +"d1/df9/problem__26_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97":[11,0,7,14,0,3], +"d1/df9/problem__26_2sol1_8c.html#a619eec3220cebd7c5e455edbb14e9b12":[11,0,7,14,0,0], +"d1/df9/problem__26_2sol1_8c.html#aabf4f709c8199e41cf279c77112345fe":[11,0,7,14,0,1], +"d1/df9/problem__26_2sol1_8c.html#ac70138609ef6aa6fabca57aca8681e83":[11,0,7,14,0,2], +"d2/d36/structqueue.html":[10,0,29], +"d2/d36/structqueue.html#a0da4061b8634159fd21e72b34f289e01":[10,0,29,2], +"d2/d36/structqueue.html#a473ab80725514ce07817f87ed1fb136f":[10,0,29,3], +"d2/d36/structqueue.html#a6c50c7c8bcd9c5962996ed8b1be8771c":[10,0,29,0], +"d2/d36/structqueue.html#aa5eb0f1e96748486046b9543ace2082a":[10,0,29,4], +"d2/d36/structqueue.html#ade1be9c3ada77e8e182ee4fe1e1fff05":[10,0,29,1], +"d2/d6a/struct_graph_rep.html":[10,0,21], +"d2/d6a/struct_graph_rep.html#a081038f30741c196b7d84fe79b4732c9":[10,0,21,2], +"d2/d6a/struct_graph_rep.html#aaf306e1727ca6c84cc03635ef4ac4888":[10,0,21,1], +"d2/d6a/struct_graph_rep.html#aeb803dced884357ef0c7ea59525e382b":[10,0,21,0], +"d2/d71/struct_a_v_lnode.html":[10,0,11], +"d2/d71/struct_a_v_lnode.html#a91349e8b477c6e9d45187997ca2e2a50":[10,0,11,2], +"d2/d71/struct_a_v_lnode.html#aaf07c08df1ee92ae2512869a178a14d9":[10,0,11,3], +"d2/d71/struct_a_v_lnode.html#ab3391d72c5ace9f85889430ce18383ef":[10,0,11,1], +"d2/d71/struct_a_v_lnode.html#af7b887a7fffb15778d53e167a95e40d9":[10,0,11,0], +"d2/d89/structcontour.html":[10,0,14], +"d2/d89/structcontour.html#a37ee431bf2d840798656489101dbaaf3":[10,0,14,1], +"d2/d89/structcontour.html#a6acf2aeeb306adbed73b797d810ded37":[10,0,14,2], +"d2/d89/structcontour.html#acff4c6a80e7d8b15a27f42add6dff976":[10,0,14,0], +"d2/d93/problem__8_2sol2_8c.html":[11,0,7,21,1], +"d2/d93/problem__8_2sol2_8c.html#a0ddf1224851353fc92bfbff6f499fa97":[11,0,7,21,1,0], +"d2/daa/structadaline.html":[10,0,9], +"d2/daa/structadaline.html#a32e58c03fd9258709eae6138ad0ec657":[10,0,9,2], +"d2/daa/structadaline.html#a53314e737a0a5ff4552a03bcc9dafbc1":[10,0,9,1], +"d2/daa/structadaline.html#a85dbd7cce6195d11ebb388220b96bde2":[10,0,9,0], +"d2/dae/problem__1_2sol2_8c.html":[11,0,7,0,1], +"d2/dae/problem__1_2sol2_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[11,0,7,0,1,0], +"d2/dbc/problem__3_2sol2_8c.html":[11,0,7,15,1], +"d2/dbc/problem__3_2sol2_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[11,0,7,15,1,0], +"d2/dc3/carray_8h_source.html":[11,0,1,0,0], +"d2/df6/kohonen__som__topology_8c.html":[11,0,4,1], +"d2/df6/kohonen__som__topology_8c.html#a0283886819c7c140a023582b7269e2d0":[11,0,4,1,13], +"d2/df6/kohonen__som__topology_8c.html#a1440a7779ac56f47a3f355ce4a8c7da0":[11,0,4,1,12], +"d2/df6/kohonen__som__topology_8c.html#a1983dc0f35e734015772e9f8c0ff19f5":[11,0,4,1,8], +"d2/df6/kohonen__som__topology_8c.html#a2256c10b16edba377b64a44b6c656908":[11,0,4,1,6], +"d2/df6/kohonen__som__topology_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,4,1,9], +"d2/df6/kohonen__som__topology_8c.html#a525335710b53cb064ca56b936120431e":[11,0,4,1,1], +"d2/df6/kohonen__som__topology_8c.html#a5bb02a8322d717ead1b11182c5f02a3a":[11,0,4,1,17], +"d2/df6/kohonen__som__topology_8c.html#a6824dc6d973eb3339af7aef5fea78b0c":[11,0,4,1,10], +"d2/df6/kohonen__som__topology_8c.html#a6d0455dd5c30adda100e95f0423c786e":[11,0,4,1,14], +"d2/df6/kohonen__som__topology_8c.html#a7237d2cf3b3f9d034477268c1d6631da":[11,0,4,1,5], +"d2/df6/kohonen__som__topology_8c.html#ac6afabdc09a49a433ee19d8a9486056d":[11,0,4,1,3], +"d2/df6/kohonen__som__topology_8c.html#ad139de302fa8135a433d9c1bf971b13b":[11,0,4,1,18], +"d2/df6/kohonen__som__topology_8c.html#ad9e25202bb8b481461f932668f249dbc":[11,0,4,1,16], +"d2/df6/kohonen__som__topology_8c.html#adb5ded007be1fd666fab9affe6764018":[11,0,4,1,15], +"d2/df6/kohonen__som__topology_8c.html#adc22d512c00a9f5799ee067f4fb90b4b":[11,0,4,1,7], +"d2/df6/kohonen__som__topology_8c.html#adee1bc3871c881f6e04cb9e0b1d01158":[11,0,4,1,11], +"d2/df6/kohonen__som__topology_8c.html#af5ce14f026d6d231bef29161bac2b485":[11,0,4,1,4], +"d2/df6/kohonen__som__topology_8c.html#affe776513b24d84b39af8ab0930fef7f":[11,0,4,1,2], +"d3/d5a/struct__large__num.html":[10,0,8], +"d3/d5a/struct__large__num.html#a3fd11c0b413bbabfb8737d4ae73e5aa0":[10,0,8,1], +"d3/d5a/struct__large__num.html#afaf353a072cf050ac86ac6e39868bcc9":[10,0,8,0], +"d4/d02/struct_b_s_t_iterator.html":[10,0,12], +"d4/d02/struct_b_s_t_iterator.html#a29a6586bff08dc6985b29abb50ddc2ff":[10,0,12,2], +"d4/d02/struct_b_s_t_iterator.html#a7b13dbbbe1bcbb12ec0bbe9949c66c5b":[10,0,12,0], +"d4/d02/struct_b_s_t_iterator.html#ae02c531c71091f43880fd7eb8f13cc53":[10,0,12,1], +"d4/d07/ode__forward__euler_8c.html":[11,0,6,3], +"d4/d07/ode__forward__euler_8c.html#a0ddf1224851353fc92bfbff6f499fa97":[11,0,6,3,4], +"d4/d07/ode__forward__euler_8c.html#a8caee977b26888d34040b122e0e28e3a":[11,0,6,3,1], +"d4/d07/ode__forward__euler_8c.html#a97075291390a68c262ed66e157a57eb4":[11,0,6,3,5], +"d4/d07/ode__forward__euler_8c.html#a9ceb646336224ee890a269d0b4600d09":[11,0,6,3,0], +"d4/d07/ode__forward__euler_8c.html#aaf88ad8f9f7c39fc38f3f03d6fea9df9":[11,0,6,3,2], +"d4/d07/ode__forward__euler_8c.html#ae6c9413953c8d9d4bc9e374b29586350":[11,0,6,3,3], +"d4/d2d/struct_c_array.html":[10,0,13], +"d4/d2d/struct_c_array.html#a53c08029937d9e4c45defcbf9c8898ae":[10,0,13,0], +"d4/d2d/struct_c_array.html#a7f7310046fa06b26a1ff7772500724ee":[10,0,13,1], +"d4/d68/qr__decompose_8h.html":[11,0,6,6], +"d4/d68/qr__decompose_8h.html#a3a584b79941a43d775f9d4ce446dbe05":[11,0,6,6,2], +"d4/d68/qr__decompose_8h.html#a45c7640d9d22c89c11beb1f567843c56":[11,0,6,6,1], +"d4/d68/qr__decompose_8h.html#a6b6a0e75e75ff7919057dd275bb69145":[11,0,6,6,5], +"d4/d68/qr__decompose_8h.html#a82b20e027437df768d7e994cf4cae29f":[11,0,6,6,4], +"d4/d68/qr__decompose_8h.html#a90562ce8c3707401e9c5809dece68d6a":[11,0,6,6,0], +"d4/d68/qr__decompose_8h.html#abeec1f78a7a7e7251687e75340331212":[11,0,6,6,3], +"d4/d68/qr__decompose_8h_source.html":[11,0,6,6], +"d4/d7b/problem__6_2sol_8c.html":[11,0,7,19,0], +"d4/d7b/problem__6_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe":[11,0,7,19,0,0], +"d4/d83/problem__401_2sol1_8c.html":[11,0,7,17,0], +"d4/d83/problem__401_2sol1_8c.html#a236548478af932f1115a71f601a68788":[11,0,7,17,0,7], +"d4/d83/problem__401_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,7,17,0,5], +"d4/d83/problem__401_2sol1_8c.html#a4441a6d27134cf3aed05727800d99456":[11,0,7,17,0,4], +"d4/d83/problem__401_2sol1_8c.html#a7380e14d595d560007b02ce516b6b215":[11,0,7,17,0,3], +"d4/d83/problem__401_2sol1_8c.html#aacbb9e1f38be71e22df1584a37c56693":[11,0,7,17,0,0], +"d4/d83/problem__401_2sol1_8c.html#aaf964739be92adc2f500e7da11e3f6be":[11,0,7,17,0,6], +"d4/d83/problem__401_2sol1_8c.html#aca7d5718ab8c38506adb3bef2469b319":[11,0,7,17,0,2], +"d4/d83/problem__401_2sol1_8c.html#adf2a0717e3307419a9d7c52707f5631e":[11,0,7,17,0,1], +"d4/d99/fibonacci__fast_8c.html":[11,0,5,2], +"d4/d99/fibonacci__fast_8c.html#a0ddf1224851353fc92bfbff6f499fa97":[11,0,5,2,1], +"d4/d99/fibonacci__fast_8c.html#a7a3d55bd19854075cba2eed6b63cb2d3":[11,0,5,2,0], +"d4/d99/ode__semi__implicit__euler_8c.html":[11,0,6,5], +"d4/d99/ode__semi__implicit__euler_8c.html#a0ddf1224851353fc92bfbff6f499fa97":[11,0,6,5,2], +"d4/d99/ode__semi__implicit__euler_8c.html#a720b7e995d2bbc615f94a2c7dbcf84eb":[11,0,6,5,5], +"d4/d99/ode__semi__implicit__euler_8c.html#a8caee977b26888d34040b122e0e28e3a":[11,0,6,5,1], +"d4/d99/ode__semi__implicit__euler_8c.html#a97075291390a68c262ed66e157a57eb4":[11,0,6,5,3], +"d4/d99/ode__semi__implicit__euler_8c.html#a9ceb646336224ee890a269d0b4600d09":[11,0,6,5,0], +"d4/d99/ode__semi__implicit__euler_8c.html#ad80059877222f885b549f2d0a3dc6b55":[11,0,6,5,4], +"d4/dbd/problem__23_2sol2_8c.html":[11,0,7,12,1], +"d4/dbd/problem__23_2sol2_8c.html#a1aca7f530f82b27100262adba9e7556b":[11,0,7,12,1,1], +"d4/dbd/problem__23_2sol2_8c.html#a34f4ad85151e3a43368ae67f42347f56":[11,0,7,12,1,2], +"d4/dbd/problem__23_2sol2_8c.html#a3ab61b5a1c4f2288625d160aa0ea8478":[11,0,7,12,1,3], +"d4/dbd/problem__23_2sol2_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,7,12,1,4], +"d4/dbd/problem__23_2sol2_8c.html#a8c7ddb39906f281b801f2cd58d416c2b":[11,0,7,12,1,6], +"d4/dbd/problem__23_2sol2_8c.html#ac5d600bf3077f4188afc4c5cd2c40eaf":[11,0,7,12,1,0], +"d4/dbd/problem__23_2sol2_8c.html#af920a16d6ef69dd604b283f427892e06":[11,0,7,12,1,5], +"d4/dcb/md_hash__r_e_a_d_m_e.html":[7], +"d4/dd4/struct_graph.html":[10,0,20], +"d4/dd4/struct_graph.html#a10ff9c6c323cf435f18e424dbb62235e":[10,0,20,3], +"d4/dd4/struct_graph.html#a14b3734eb135c40cf4401f22bda5bb76":[10,0,20,2], +"d4/dd4/struct_graph.html#a268ba18d421817ad8713c2e92f19d82a":[10,0,20,4], +"d4/dd4/struct_graph.html#a2b722f7cfa7a21e4cb5fae488b3d4dcc":[10,0,20,7], +"d4/dd4/struct_graph.html#a3535be2ce0d62152e54395951330da81":[10,0,20,5], +"d4/dd4/struct_graph.html#a3ce250f958f7e96ffd9eb06780c21fbe":[10,0,20,1], +"d4/dd4/struct_graph.html#a6afcd41564ea00294a4c089414979ca1":[10,0,20,8], +"d4/dd4/struct_graph.html#a72bb0a04571b49a568e0eed371a35c33":[10,0,20,6], +"d4/dd4/struct_graph.html#aa3f9278e0b50fbec06b93cda9c733dfe":[10,0,20,9], +"d4/dd4/struct_graph.html#aaaffb7e0621115519a09be31a33c6cda":[10,0,20,0], +"d4/dea/problem__14_2sol1_8c.html":[11,0,7,4,0], +"d4/dea/problem__14_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,7,4,0,1], +"d4/dea/problem__14_2sol1_8c.html#a81c1df5c17cb16bcc16e346fcff6fa80":[11,0,7,4,0,0], +"d4/dfe/struct_dict.html":[10,0,16], +"d4/dfe/struct_dict.html#a2e14d738e06c60eebcc2eac274e6676e":[10,0,16,0], +"d4/dfe/struct_dict.html#add3f42ea66e92ce457a243d7534f5654":[10,0,16,1], +"d5/d23/qr__decomposition_8c.html":[11,0,6,7], +"d5/d23/qr__decomposition_8c.html#a840291bc02cba5474a4cb46a9b9566fe":[11,0,6,7,0], +"d5/d7e/struct_t.html":[10,0,33], +"d5/d7e/struct_t.html#a2023d2bb6a6cdf472b567b3ec5cf35d4":[10,0,33,0], +"d5/d7e/struct_t.html#a5a06d4022d41bad87137ba3430abce8b":[10,0,33,1], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html":[5], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html#autotoc_md14":[5,0], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html#autotoc_md15":[5,1], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html#autotoc_md16":[5,2], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html#autotoc_md17":[5,3], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html#autotoc_md18":[5,4], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html#autotoc_md19":[5,5], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html#autotoc_md20":[5,6], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html#autotoc_md21":[5,7], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html#autotoc_md22":[5,8], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html#autotoc_md23":[5,9], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html#autotoc_md24":[5,10], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html#autotoc_md25":[5,11], +"d5/d88/md__d_i_r_e_c_t_o_r_y.html#autotoc_md26":[5,12], +"d5/da1/structnode.html":[10,0,27], +"d5/da1/structnode.html#a111a569ab2765add9b91c9f94cf9f063":[10,0,27,7], +"d5/da1/structnode.html#a1aa632fdf50713d86192a96f8191851b":[10,0,27,6], +"d5/da1/structnode.html#a2783f1aec750191646305988f7e28756":[10,0,27,5], +"d5/da1/structnode.html#a2d890bb9f6af0ffd73fe79b21124c2a2":[10,0,27,2], +"d5/da1/structnode.html#a310a09cb5a882788781a5287096ad425":[10,0,27,0], +"d5/da1/structnode.html#a51e160f22dc6064bac4a4f9f1d931c2c":[10,0,27,10], +"d5/da1/structnode.html#a6f9100a3fe81d82776ce47ecdba94691":[10,0,27,1], +"d5/da1/structnode.html#a707bf3f1eeeaf8974e7e8e90f7bfd6a1":[10,0,27,12], +"d5/da1/structnode.html#a7f5750a90eac14a9a21d5b976cd8b8a7":[10,0,27,9], +"d5/da1/structnode.html#a8139af7faac30d394e198365a999b54d":[10,0,27,8], +"d5/da1/structnode.html#aaf2ec5ed1bb563465cbe2e9d16d74d1e":[10,0,27,11], +"d5/da1/structnode.html#ab4b1f345158daee0725acecd5ba817b1":[10,0,27,13], +"d5/da1/structnode.html#ac8973feda870a119ccdc25910254db0c":[10,0,27,3], +"d5/da1/structnode.html#af7109e6ffd82cbbb705e486fd0ce92f0":[10,0,27,4], +"d5/db4/struct_edge.html":[10,0,18], +"d5/db4/struct_edge.html#a0c7bb90b11b1b795c665786317ca744d":[10,0,18,4], +"d5/db4/struct_edge.html#a2449478938136b5ab7ef0e7d92e6990b":[10,0,18,1], +"d5/db4/struct_edge.html#a4d58e1f4de38fa55549497175981ebab":[10,0,18,5], +"d5/db4/struct_edge.html#a9a415f211c059647d1b3af8fcf7a0e30":[10,0,18,2], +"d5/db4/struct_edge.html#ad7df434ff7710e69f28bb31e91a35f82":[10,0,18,0], +"d5/db4/struct_edge.html#ae746ca841799f776a8add4d6fdfc19e9":[10,0,18,3], +"d6/d1b/sol4_8c.html":[11,0,7,0,3], +"d6/d1b/sol4_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[11,0,7,0,3,0], +"d6/d3d/factorial__large__number_8c.html":[11,0,5,1], +"d6/d3d/factorial__large__number_8c.html#a0ddf1224851353fc92bfbff6f499fa97":[11,0,5,1,4], +"d6/d3d/factorial__large__number_8c.html#ab54882961780c41a4929a6d390f6522d":[11,0,5,1,1], +"d6/d3d/factorial__large__number_8c.html#ab5c854e0df76165c31899e69eceeeaae":[11,0,5,1,3], +"d6/d3d/factorial__large__number_8c.html#ad398ddbd594ca69a5e6dfc894925341e":[11,0,5,1,5], +"d6/d3d/factorial__large__number_8c.html#ad8101f58545bd891ae8b6e11caadd7eb":[11,0,5,1,6], +"d6/d3d/factorial__large__number_8c.html#af2869d36c22a2b8f93d3166a84e124b3":[11,0,5,1,2], +"d6/d42/structdynamic__array.html":[10,0,17], +"d6/d42/structdynamic__array.html#a79c587474e35f99510ca3018bf700007":[10,0,17,2], +"d6/d42/structdynamic__array.html#a7e3fbd203b3b86401c17dede7a33f781":[10,0,17,1], +"d6/d42/structdynamic__array.html#a9ddb0f64ade5d5e74b7fd091158958e4":[10,0,17,0], +"d6/d48/isogram_8h_source.html":[11,0,2,2,0], +"d6/d88/problem__16_2sol1_8c.html":[11,0,7,6,0], +"d6/d88/problem__16_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,7,6,0,0] +}; diff --git a/navtreeindex1.js b/navtreeindex1.js new file mode 100644 index 00000000..bd6eadc0 --- /dev/null +++ b/navtreeindex1.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX1 = +{ +"d6/de3/sol3_8c.html":[11,0,7,0,2], +"d6/de3/sol3_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[11,0,7,0,2,0], +"d6/ded/shell__sort2_8c.html":[11,0,8,0], +"d6/ded/shell__sort2_8c.html#a0ddf1224851353fc92bfbff6f499fa97":[11,0,8,0,1], +"d6/ded/shell__sort2_8c.html#a4b9708d87be7a409eff20e5e7e8b43c8":[11,0,8,0,4], +"d6/ded/shell__sort2_8c.html#a5bc16eaf3ffe6a6ab66780dd445904c0":[11,0,8,0,2], +"d6/ded/shell__sort2_8c.html#a841615a63f4a3aa18337897953874909":[11,0,8,0,0], +"d6/ded/shell__sort2_8c.html#aeccaf61ff47279384d1dba8d869d5c2f":[11,0,8,0,3], +"d6/df3/graph_8h_source.html":[11,0,1,4,0], +"d7/d1f/problem__12_2sol1_8c.html":[11,0,7,2,0], +"d7/d1f/problem__12_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,7,2,0,1], +"d7/d1f/problem__12_2sol1_8c.html#aa6ce6271f6156e219f9b290717f5a222":[11,0,7,2,0,0], +"d7/d50/qr__eigen__values_8c.html":[11,0,6,8], +"d7/d50/qr__eigen__values_8c.html#a002b2f4894492820fe708b1b7e7c5e70":[11,0,6,8,0], +"d7/d50/qr__eigen__values_8c.html#a0283886819c7c140a023582b7269e2d0":[11,0,6,8,7], +"d7/d50/qr__eigen__values_8c.html#a0d8ed79786d17df48396b333c09d05bb":[11,0,6,8,3], +"d7/d50/qr__eigen__values_8c.html#a1440a7779ac56f47a3f355ce4a8c7da0":[11,0,6,8,6], +"d7/d50/qr__eigen__values_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,6,8,4], +"d7/d50/qr__eigen__values_8c.html#a741477692f001a805b0fea942c9dc2b9":[11,0,6,8,5], +"d7/d50/qr__eigen__values_8c.html#a7d96c5e4ae1bd6d29791bcc23a4cb2b0":[11,0,6,8,2], +"d7/d50/qr__eigen__values_8c.html#aee57a411f07599034f5ceb8cc7d65b40":[11,0,6,8,1], +"d7/d90/rna__transcription_8h_source.html":[11,0,2,3,0], +"d7/d91/problem__15_2sol1_8c.html":[11,0,7,5,0], +"d7/d91/problem__15_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,7,5,0,0], +"d7/d91/problem__15_2sol1_8c.html#a4650d1d3897633d84253f93433f601d6":[11,0,7,5,0,1], +"d7/db5/md_exercism__r_e_a_d_m_e.html":[6], +"d7/db5/md_exercism__r_e_a_d_m_e.html#autotoc_md28":[5], +"d7/dd3/problem__3_2sol1_8c.html":[11,0,7,15,0], +"d7/dd3/problem__3_2sol1_8c.html#aa0f4796aa2e89c327f827bd55f5cb305":[11,0,7,15,0,0], +"d7/dd3/problem__3_2sol1_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[11,0,7,15,0,1], +"d7/dd8/c__atoi__str__to__integer_8c.html":[11,0,0,0], +"d7/dd8/c__atoi__str__to__integer_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,0,0,1], +"d7/dd8/c__atoi__str__to__integer_8c.html#abef225390e0b6e84ddfcb18fe573d9c5":[11,0,0,0,2], +"d7/dd8/c__atoi__str__to__integer_8c.html#ad19049ebfc2088bc1e75e7e958f7b60f":[11,0,0,0,0], +"d7/ddb/problem__23_2sol1_8c.html":[11,0,7,12,0], +"d7/ddb/problem__23_2sol1_8c.html#a1aca7f530f82b27100262adba9e7556b":[11,0,7,12,0,1], +"d7/ddb/problem__23_2sol1_8c.html#a337e545af040d754dc012b42523ee1ee":[11,0,7,12,0,5], +"d7/ddb/problem__23_2sol1_8c.html#a3ab61b5a1c4f2288625d160aa0ea8478":[11,0,7,12,0,3], +"d7/ddb/problem__23_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,7,12,0,4], +"d7/ddb/problem__23_2sol1_8c.html#a4f128410e6582fe26488e2316cc96e17":[11,0,7,12,0,2], +"d7/ddb/problem__23_2sol1_8c.html#ac5d600bf3077f4188afc4c5cd2c40eaf":[11,0,7,12,0,0], +"d7/de0/stack_8h_source.html":[11,0,1,7,1], +"d8/d32/problem__25_2sol1_8c.html":[11,0,7,13,0], +"d8/d32/problem__25_2sol1_8c.html#a001791a21d538b8b9176287ae60d9b61":[11,0,7,13,0,0], +"d8/d32/problem__25_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97":[11,0,7,13,0,3], +"d8/d32/problem__25_2sol1_8c.html#a2b90df6bfbf0d18cd9a19c1a71453783":[11,0,7,13,0,2], +"d8/d32/problem__25_2sol1_8c.html#abe5bc1f170b2108a19d0a16d30bd3235":[11,0,7,13,0,4], +"d8/d32/problem__25_2sol1_8c.html#af9729befaffc1aab9ac9fedc4706e66c":[11,0,7,13,0,1], +"d8/d38/queue_8h_source.html":[11,0,1,4,1], +"d8/d7a/structtnode.html":[10,0,34], +"d8/d7a/structtnode.html#a44127c1d017332403d91a96a1633a76a":[10,0,34,3], +"d8/d7a/structtnode.html#ad302cb43ee1cab8a29581e8aaf76bbd4":[10,0,34,0], +"d8/d7a/structtnode.html#ae1f202bf98d22f8316eeb71b68a59951":[10,0,34,1], +"d8/d7a/structtnode.html#af7ce6341b8536c58a5a9ebdb4862a32a":[10,0,34,2], +"d8/d7c/dict_8h_source.html":[11,0,1,2,0], +"d8/d81/md_project_euler__r_e_a_d_m_e.html":[9], +"d8/da2/dynamic__array_8h_source.html":[11,0,1,3,0], +"d8/de0/problem__9_2sol2_8c.html":[11,0,7,22,1], +"d8/de0/problem__9_2sol2_8c.html#a840291bc02cba5474a4cb46a9b9566fe":[11,0,7,22,1,0], +"d9/d41/md_data_structures_array__r_e_a_d_m_e.html":[2], +"d9/d41/md_data_structures_array__r_e_a_d_m_e.html#autotoc_md6":[2,0], +"d9/d41/md_data_structures_array__r_e_a_d_m_e.html#autotoc_md7":[2,1], +"d9/da7/problem__10_2sol2_8c.html":[11,0,7,1,1], +"d9/da7/problem__10_2sol2_8c.html#a0ddf1224851353fc92bfbff6f499fa97":[11,0,7,1,1,0], +"da/d23/list_8h_source.html":[11,0,1,6,0], +"da/d35/problem__1_2sol1_8c.html":[11,0,7,0,0], +"da/d35/problem__1_2sol1_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[11,0,7,0,0,0], +"da/d38/durand__kerner__roots_8c.html":[11,0,6,0], +"da/d38/durand__kerner__roots_8c.html#a26d5695ebed0818a3e7cf4b10aacab52":[11,0,6,0,1], +"da/d38/durand__kerner__roots_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,6,0,3], +"da/d38/durand__kerner__roots_8c.html#adf4ae062a028c6faf2b96c9c1eb343af":[11,0,6,0,4], +"da/d38/durand__kerner__roots_8c.html#af270a96662132d0385cb6b4637c5a689":[11,0,6,0,0], +"da/d38/durand__kerner__roots_8c.html#afa5b04ce11475d67049cba8273741fb7":[11,0,6,0,2], +"da/d90/stack__linked__list_2stack_8h_source.html":[11,0,1,7,0,0], +"da/d9b/struct_trie_node.html":[10,0,35], +"da/d9b/struct_trie_node.html#a8e9e3ac8a47ed2f730476945933722c1":[10,0,35,0], +"da/d9b/struct_trie_node.html#a9dc2a9bc247486fac3e4b350c73a3060":[10,0,35,1], +"da/d9b/struct_trie_node.html#ab2732ce1e141346865d997859836d663":[10,0,35,2], +"db/d01/problem__13_2sol1_8c.html":[11,0,7,3,0], +"db/d01/problem__13_2sol1_8c.html#a0240ac851181b84ac374872dc5434ee4":[11,0,7,3,0,0], +"db/d01/problem__13_2sol1_8c.html#a248adc917818cc6666d8bc679a660319":[11,0,7,3,0,5], +"db/d01/problem__13_2sol1_8c.html#a840291bc02cba5474a4cb46a9b9566fe":[11,0,7,3,0,4], +"db/d01/problem__13_2sol1_8c.html#ac260f58785fb20eb09bb35385a7d47f8":[11,0,7,3,0,3], +"db/d01/problem__13_2sol1_8c.html#acd864640121c7df2c19f61f7baa507e4":[11,0,7,3,0,1], +"db/d01/problem__13_2sol1_8c.html#ad51742ca5a5c99e860bdf30299163bf2":[11,0,7,3,0,2], +"db/d80/problem__20_2sol1_8c.html":[11,0,7,9,0], +"db/d80/problem__20_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,7,9,0,3], +"db/d80/problem__20_2sol1_8c.html#a54a02c4b963fdb16f24959e0137763f1":[11,0,7,9,0,4], +"db/d80/problem__20_2sol1_8c.html#a62cbbd106aad52daadb9403a07d0da32":[11,0,7,9,0,1], +"db/d80/problem__20_2sol1_8c.html#afc373c28da6b17636528edcc97fb5f86":[11,0,7,9,0,2], +"db/d8b/struct_node.html":[10,0,26], +"db/d8b/struct_node.html#a0ed3c7305b43527f0f237bbfd438b8f7":[10,0,26,3], +"db/d8b/struct_node.html#a60b73f452505cef98795d2c8de3e72ef":[10,0,26,1], +"db/d8b/struct_node.html#a772e2a82248c0d0dfc5cdf19d5b45df9":[10,0,26,2], +"db/d8b/struct_node.html#a87c003c9f600e3fc58e6e90835f0b605":[10,0,26,0], +"db/ddb/hello__world_8h_source.html":[11,0,2,1,0], +"db/dfb/hash_8h_source.html":[11,0,3,0], +"dc/d2e/lu__decompose_8c.html":[11,0,6,1], +"dc/d2e/lu__decompose_8c.html#a0789beb8d3396582d77b7aedf5e5554a":[11,0,6,1,0], +"dc/d2e/lu__decompose_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,6,1,2], +"dc/d2e/lu__decompose_8c.html#aae40b90a8efd645c749128cf8072bbb4":[11,0,6,1,1], +"dc/d47/realtime__stats_8c.html":[11,0,6,9], +"dc/d47/realtime__stats_8c.html#a34be233a9200ee2065f6b7b27e2d9a96":[11,0,6,9,2], +"dc/d47/realtime__stats_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,6,9,0], +"dc/d47/realtime__stats_8c.html#a63ddcdaab24f722f0963fa2fbe0ae628":[11,0,6,9,1], +"dc/d47/realtime__stats_8c.html#aa54c915581fcc495489175a4386d59fd":[11,0,6,9,3], +"dc/d63/problem__8_2sol1_8c.html":[11,0,7,21,0], +"dc/d63/problem__8_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97":[11,0,7,21,0,1], +"dc/d63/problem__8_2sol1_8c.html#a9ffc8845f17b01a353767a40a3adf7bd":[11,0,7,21,0,0], +"dc/d64/md__coding_guidelines.html":[1], +"dc/d64/md__coding_guidelines.html#autotoc_md2":[1,0], +"dc/d64/md__coding_guidelines.html#autotoc_md4":[1,1], +"dc/d77/struct__big__int.html":[10,0,7], +"dc/d77/struct__big__int.html#a187538b984c86d7cfdb13e297e7f3564":[10,0,7,0], +"dc/d77/struct__big__int.html#a273ee73fd755f2a99512cca5f0e09008":[10,0,7,2], +"dc/d77/struct__big__int.html#ad8405989a924410942b39ec0e9fef30b":[10,0,7,1], +"dc/d80/collatz_8c.html":[11,0,5,0], +"dc/d80/collatz_8c.html#a0ddf1224851353fc92bfbff6f499fa97":[11,0,5,0,0], +"dc/de3/hash__set_8h_source.html":[11,0,1,5,0], +"dc/de5/structsubset.html":[10,0,32], +"dc/de5/structsubset.html#a2cc3bbda6f758afb7bf8067eb8f07a10":[10,0,32,1], +"dc/de5/structsubset.html#ad8f7d99dc56f8ce3f0c3aaf4a633373a":[10,0,32,0], +"dd/d08/newton__raphson__root_8c.html":[11,0,6,2], +"dd/d08/newton__raphson__root_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,6,2,3], +"dd/d08/newton__raphson__root_8c.html#a72f87d423a488946b319627a454d3925":[11,0,6,2,2], +"dd/d08/newton__raphson__root_8c.html#ae713a1fd0c275fbec7edf263ac2c0337":[11,0,6,2,1], +"dd/d08/newton__raphson__root_8c.html#af270a96662132d0385cb6b4637c5a689":[11,0,6,2,0], +"dd/d10/struct_stack.html":[10,0,31], +"dd/d10/struct_stack.html#ad62fb36816185f3eef3a6f735a61f54a":[10,0,31,1], +"dd/d10/struct_stack.html#ad9b9f0f414ea2dc2437fd42b6cc4321b":[10,0,31,0], +"dd/d8b/problem__22_2sol1_8c.html":[11,0,7,11,0], +"dd/d8b/problem__22_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,7,11,0,3], +"dd/d8b/problem__22_2sol1_8c.html#a5bc3659aa0949ea33118c95b1dee5f63":[11,0,7,11,0,4], +"dd/d8b/problem__22_2sol1_8c.html#a6cb9b08aacb61416795ee78bfceacd38":[11,0,7,11,0,1], +"dd/d8b/problem__22_2sol1_8c.html#ae359b8a4656b164c91ef91a084c15c9d":[11,0,7,11,0,2], +"dd/d8b/problem__22_2sol1_8c.html#afd709f201d7643c3909621f620ea648a":[11,0,7,11,0,0], +"dd/d8c/adaline__learning_8c.html":[11,0,4,0], +"dd/d8c/adaline__learning_8c.html#a00dc6134ca22a12e0fd9cac54d601c2d":[11,0,4,0,7], +"dd/d8c/adaline__learning_8c.html#a05cc9a0acb524fde727a4d7b4a747ee6":[11,0,4,0,12], +"dd/d8c/adaline__learning_8c.html#a355fda53c238a0c0c07f03dcc021caed":[11,0,4,0,5], +"dd/d8c/adaline__learning_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,4,0,8], +"dd/d8c/adaline__learning_8c.html#a3f37b9f073f7e57fd0b39d70718af1b1":[11,0,4,0,13], +"dd/d8c/adaline__learning_8c.html#a4db1ba00a7f282100ea31a94e32bd7a3":[11,0,4,0,10], +"dd/d8c/adaline__learning_8c.html#a6f35caa3084772cc126ac7b20f67f665":[11,0,4,0,4], +"dd/d8c/adaline__learning_8c.html#a7b12b6513314c975303b5a698608322f":[11,0,4,0,3], +"dd/d8c/adaline__learning_8c.html#ab4ecb3accf5d9e0263087e7265bbe3a9":[11,0,4,0,11], +"dd/d8c/adaline__learning_8c.html#acd517c6f195c75b9dd0f3aad65326f3b":[11,0,4,0,2], +"dd/d8c/adaline__learning_8c.html#acd88962c5f6341e43cbc69b4a7d3485b":[11,0,4,0,9], +"dd/d8c/adaline__learning_8c.html#af270a96662132d0385cb6b4637c5a689":[11,0,4,0,1], +"dd/d8c/adaline__learning_8c.html#afa953e811eaae199d121a7ddb619d604":[11,0,4,0,6], +"dd/d95/word__count_8h_source.html":[11,0,2,4,0], +"dd/df0/problem__19_2sol1_8c.html":[11,0,7,7,0], +"dd/df0/problem__19_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,7,7,0,2], +"dd/df0/problem__19_2sol1_8c.html#a6561b1adc8a19c092679b9874da24e2e":[11,0,7,7,0,1], +"dd/df0/problem__19_2sol1_8c.html#ab7f9ad087f124b8e0615aa535b4c8a75":[11,0,7,7,0,0], +"de/d20/md_data_structures_dictionary__r_e_a_d_m_e.html":[3], +"de/d20/md_data_structures_dictionary__r_e_a_d_m_e.html#autotoc_md9":[2], +"de/dce/structmin__heap.html":[10,0,25], +"de/dce/structmin__heap.html#a456c6372c103c6d1bb430f581f5d3c71":[10,0,25,2], +"de/dce/structmin__heap.html#a9fd34546dad4dfd9e6a456936b766123":[10,0,25,0], +"de/dce/structmin__heap.html#ad960bfacd24fb843208db83f113ebc8f":[10,0,25,1], +"df/d1a/problem__21_2sol1_8c.html":[11,0,7,10,0], +"df/d1a/problem__21_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[11,0,7,10,0,0], +"df/d1a/problem__21_2sol1_8c.html#aacf4b7e708651d2164e86958f2c29c93":[11,0,7,10,0,1], +"df/d3c/threaded__binary__trees_8c.html":[11,0,1,1,0], +"df/d3c/threaded__binary__trees_8c.html#a284d683f74b6c884e79ba00d3d1c3317":[11,0,1,1,0,3], +"df/d3c/threaded__binary__trees_8c.html#a306d567466f22e1e927aaed97d8bb58c":[11,0,1,1,0,9], +"df/d3c/threaded__binary__trees_8c.html#a4c1e06b5f0876ec9c1bd6817f3b7eda7":[11,0,1,1,0,4], +"df/d3c/threaded__binary__trees_8c.html#a5a82ae0ee13788be51ca4ba6cddb0719":[11,0,1,1,0,7], +"df/d3c/threaded__binary__trees_8c.html#a8169ba0dfd5b8183672e444d1434bf9c":[11,0,1,1,0,8], +"df/d3c/threaded__binary__trees_8c.html#a823432888332fc9f0aa6072cff28c3bb":[11,0,1,1,0,5], +"df/d3c/threaded__binary__trees_8c.html#ab21d1d36d95001defbca2f6abd4d410c":[11,0,1,1,0,2], +"df/d3c/threaded__binary__trees_8c.html#ad8ecdcce462dd8e170ae1f164935aaa6":[11,0,1,1,0,1], +"df/d3c/threaded__binary__trees_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[11,0,1,1,0,6], +"df/d58/md_leetcode__r_e_a_d_m_e.html":[8], +"df/d58/md_leetcode__r_e_a_d_m_e.html#autotoc_md30":[6], +"df/da5/problem__9_2sol1_8c.html":[11,0,7,22,0], +"df/da5/problem__9_2sol1_8c.html#a840291bc02cba5474a4cb46a9b9566fe":[11,0,7,22,0,0], +"df/db3/struct_l.html":[10,0,23], +"df/db3/struct_l.html#a4d585643a6364fbf79f54de5fa49d17f":[10,0,23,1], +"df/db3/struct_l.html#adbf91f5f6cc3047e13bb3dbbfb277be0":[10,0,23,0], +"df/dc6/acronym_8h_source.html":[11,0,2,0,0], +"df/ddb/structword__count__word.html":[10,0,36], +"df/ddb/structword__count__word.html#a44e237e11196ffa56574b90ea807e8fc":[10,0,36,0], +"df/ddb/structword__count__word.html#a9c018b5f83b2aeeefac5cc09e5f41efd":[10,0,36,1], +"df/de7/problem__5_2sol_8c.html":[11,0,7,18,0], +"df/de7/problem__5_2sol_8c.html#a59347107cbfdf48d51108e50280e760d":[11,0,7,18,0,0], +"df/de7/problem__5_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe":[11,0,7,18,0,2], +"df/de7/problem__5_2sol_8c.html#ae9606f1867e9921867d6572f51377b4c":[11,0,7,18,0,1], +"df/dea/structdata.html":[10,0,15], +"df/dea/structdata.html#a7a7e33023945ddb393dc306c489c4049":[10,0,15,1], +"df/dea/structdata.html#ab1464d70ed28af0a16cdd2ebaa64027c":[10,0,15,0], +"dir_0472225043064b54f3dfff9011a9fae0.html":[11,0,1,7,0], +"dir_079e1f799fb08a8a0b98cb030ab15687.html":[11,0,7,13], +"dir_0bc3e2a5baf077fa21dadc079776fcac.html":[11,0,7,7], +"dir_167af11096b7752ff31b3d4bec489317.html":[11,0,7,19], +"dir_16b947d8e9a05fe119d0675493324331.html":[11,0,7,1], +"dir_16e00c78ef36d1842d0d8a4afc46b852.html":[11,0,7,14], +"dir_1833eb69ceee7a265ffba4c38c8243d2.html":[11,0,7,16], +"dir_18cba55772148686552805a354a79093.html":[11,0,7,6], +"dir_2176ba3565d8b1fe2a106d18679cc7bf.html":[11,0,1,7], +"dir_2abe2c0880d3fb0dba0f784bee3fc9e0.html":[11,0,7,11], +"dir_2b14f32f14b51065d3a322bea21da3c0.html":[11,0,7,5], +"dir_2e746e9d06bf2d8ff842208bcc6ebcfc.html":[11,0,1], +"dir_2f070f19f76dfadabbc24fe483d7e98d.html":[11,0,7,17], +"dir_2fede762f95c9c526850a639b984c56b.html":[11,0,1,4], +"dir_3343723ae086de42ee4ca9774da3a13f.html":[11,0,4], +"dir_4500de955d1eddb82f69331d96e39ed9.html":[11,0,2,1], +"dir_475f56e0a4ef6254f5610544d8d68aa3.html":[11,0,2,4], +"dir_48bf5503321d91c557399989fed5dabd.html":[11,0,2], +"dir_4991c92e00761dd3d764efa2906b4318.html":[11,0,7,9], +"dir_4a15c8553efb9e59e3f1091cc0d3a27d.html":[11,0,7,21], +"dir_4bae997a2671812c2140d5abfb6305a4.html":[11,0,7,20], +"dir_607f15d36c772334f988bb9ef82d102c.html":[11,0,7,18], +"dir_72aaf47615111200018c039a56ef48be.html":[11,0,3], +"dir_7445e5a68245b48f3c03982b6d501815.html":[11,0,1,2], +"dir_76784a7b04633629b9ecb5543b9ad889.html":[11,0,2,2], +"dir_81f43aa0067826ea5befe80cd7aefcc5.html":[11,0,2,3], +"dir_8c6743d405e8ed13cc39f42e382307fd.html":[11,0,7,0], +"dir_955029374964e51cf770754b424e7d39.html":[11,0,1,5], +"dir_9babc524d57e25f3d9f4179cabc3599e.html":[11,0,0], +"dir_9c6faab82c22511b50177aa2e38e2780.html":[11,0,6], +"dir_a52f4d3d586a58b02f3a4ddf0a992157.html":[11,0,5], +"dir_aba97bf327db94061e830e9bc18e925d.html":[11,0,7,4], +"dir_b2dbfa46230fd9f775c32c1836ed3764.html":[11,0,7,15], +"dir_b3d331eabd4234f247030c297aaf021c.html":[11,0,7], +"dir_b6018f60d424a2ef7e4c942ac681e38b.html":[11,0,1,6], +"dir_bb1b521853a9c46347182a9d10420771.html":[11,0,8], +"dir_bd4a7dd282074645ef41b1ea31ac813a.html":[11,0,1,3], +"dir_c7ef0fcb2f2095a74f0a3a1634dfc798.html":[11,0,1,0], +"dir_d4c35186c199e728d69dee6bf5b2473c.html":[11,0,7,22], +"dir_d9112ab06cf4d4e5a25d385a268d1949.html":[11,0,7,2], +"dir_d9e100c82ada2163abea49688a71e81c.html":[11,0,7,10], +"dir_e39df94f82619fa5256f1786519937be.html":[11,0,1,1], +"dir_eeeea13e3a5e5edad3499183767ce312.html":[11,0,7,8], +"dir_f75ccd45e00436eafed446b9b2682984.html":[11,0,7,12], +"dir_f7d3c03fcac84aef1b0c66cc497ed1ea.html":[11,0,7,3], +"dir_fe5d69ed7d90cb356556070c2a2e5478.html":[11,0,2,0], +"files.html":[11,0], +"functions.html":[10,2,0], +"functions_vars.html":[10,2,1], +"globals.html":[11,1,0], +"globals_defs.html":[11,1,4], +"globals_func.html":[11,1,1], +"globals_type.html":[11,1,3], +"globals_vars.html":[11,1,2], +"index.html":[0], +"index.html":[], +"index.html#autotoc_md32":[0], +"index.html#autotoc_md33":[1] +}; diff --git a/navtreeindex2.js b/navtreeindex2.js new file mode 100644 index 00000000..ff144e94 --- /dev/null +++ b/navtreeindex2.js @@ -0,0 +1,4 @@ +var NAVTREEINDEX2 = +{ +"pages.html":[] +}; diff --git a/open.png b/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 + + + + + + +Algorithms_in_C: Related Pages + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    Algorithms_in_C +  1.0.0 +
    +
    Set of algorithms implemented in C.
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Related Pages
    +
    + +
    + + + + diff --git a/resize.js b/resize.js new file mode 100644 index 00000000..e1ad0fe3 --- /dev/null +++ b/resize.js @@ -0,0 +1,140 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 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 + */ +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; + + function readCookie(cookie) + { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; + } + + function writeCookie(cookie, val, expiration) + { + if (val==undefined) return; + if (expiration == null) { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth-barWidth, null); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); + var width=$(window).width(); + if (width!=collapsedWidth) { + if (width=desktop_vp) { + if (!collapsed) { + collapseExpand(); + } + } else if (width>desktop_vp && collapsedWidth0) { + restoreWidth(0); + collapsed=true; + } + else { + var width = readCookie('width'); + if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } + collapsed=false; + } + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/search/all_0.html b/search/all_0.html new file mode 100644 index 00000000..ea50fff7 --- /dev/null +++ b/search/all_0.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 00000000..5a9a4a52 --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['_5fbig_5fint_0',['_big_int',['../dc/d77/struct__big__int.html',1,'']]], + ['_5flarge_5fnum_1',['_large_num',['../d3/d5a/struct__large__num.html',1,'']]], + ['_5frandom_2',['_random',['../d2/df6/kohonen__som__topology_8c.html#af5ce14f026d6d231bef29161bac2b485',1,'_random(double a, double b): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#af5ce14f026d6d231bef29161bac2b485',1,'_random(double a, double b): kohonen_som_trace.c']]], + ['_5fuse_5fmath_5fdefines_3',['_USE_MATH_DEFINES',['../d2/df6/kohonen__som__topology_8c.html#a525335710b53cb064ca56b936120431e',1,'_USE_MATH_DEFINES(): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a525335710b53cb064ca56b936120431e',1,'_USE_MATH_DEFINES(): kohonen_som_trace.c']]] +]; diff --git a/search/all_1.html b/search/all_1.html new file mode 100644 index 00000000..86b0682c --- /dev/null +++ b/search/all_1.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 00000000..7b1dcbb8 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['abundant_5fflags_4',['abundant_flags',['../d4/dbd/problem__23_2sol2_8c.html#af920a16d6ef69dd604b283f427892e06',1,'sol2.c']]], + ['accuracy_5',['ACCURACY',['../dd/d8c/adaline__learning_8c.html#af270a96662132d0385cb6b4637c5a689',1,'ACCURACY(): adaline_learning.c'],['../da/d38/durand__kerner__roots_8c.html#af270a96662132d0385cb6b4637c5a689',1,'ACCURACY(): durand_kerner_roots.c'],['../dd/d08/newton__raphson__root_8c.html#af270a96662132d0385cb6b4637c5a689',1,'ACCURACY(): newton_raphson_root.c']]], + ['activation_6',['activation',['../dd/d8c/adaline__learning_8c.html#a7b12b6513314c975303b5a698608322f',1,'adaline_learning.c']]], + ['adaline_7',['adaline',['../d2/daa/structadaline.html',1,'']]], + ['adaline_5flearning_2ec_8',['adaline_learning.c',['../dd/d8c/adaline__learning_8c.html',1,'']]], + ['add_5fdigit_9',['add_digit',['../d6/d3d/factorial__large__number_8c.html#af2869d36c22a2b8f93d3166a84e124b3',1,'add_digit(large_num *num, unsigned int value): factorial_large_number.c'],['../db/d80/problem__20_2sol1_8c.html#afc373c28da6b17636528edcc97fb5f86',1,'add_digit(big_int *digit, char value): sol1.c']]], + ['add_5fnumbers_10',['add_numbers',['../db/d01/problem__13_2sol1_8c.html#ad51742ca5a5c99e860bdf30299163bf2',1,'add_numbers(uint8_t *a, uint8_t *b, uint8_t N): sol1.c'],['../d8/d32/problem__25_2sol1_8c.html#af9729befaffc1aab9ac9fedc4706e66c',1,'add_numbers(unsigned char *a, unsigned char *b, unsigned char *c, int N): sol1.c']]], + ['array_5f3d_11',['array_3d',['../d0/dc8/structarray__3d.html',1,'']]], + ['avlnode_12',['AVLnode',['../d2/d71/struct_a_v_lnode.html',1,'']]], + ['array_13',['Array',['../d9/d41/md_data_structures_array__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/search/all_10.html b/search/all_10.html new file mode 100644 index 00000000..b9106743 --- /dev/null +++ b/search/all_10.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_10.js b/search/all_10.js new file mode 100644 index 00000000..65f7398f --- /dev/null +++ b/search/all_10.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['qr_5fdecompose_138',['qr_decompose',['../d4/d68/qr__decompose_8h.html#a45c7640d9d22c89c11beb1f567843c56',1,'qr_decompose.h']]], + ['qr_5fdecompose_2eh_139',['qr_decompose.h',['../d4/d68/qr__decompose_8h.html',1,'']]], + ['qr_5fdecomposition_2ec_140',['qr_decomposition.c',['../d5/d23/qr__decomposition_8c.html',1,'']]], + ['qr_5feigen_5fvalues_2ec_141',['qr_eigen_values.c',['../d7/d50/qr__eigen__values_8c.html',1,'']]], + ['queue_142',['queue',['../d2/d36/structqueue.html',1,'']]], + ['queuerep_143',['QueueRep',['../d0/d10/struct_queue_rep.html',1,'']]] +]; diff --git a/search/all_11.html b/search/all_11.html new file mode 100644 index 00000000..459c9779 --- /dev/null +++ b/search/all_11.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_11.js b/search/all_11.js new file mode 100644 index 00000000..bb2ddc85 --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['realtime_5fstats_2ec_144',['realtime_stats.c',['../dc/d47/realtime__stats_8c.html',1,'']]], + ['remove_5fdigits_145',['remove_digits',['../db/d80/problem__20_2sol1_8c.html#a54a02c4b963fdb16f24959e0137763f1',1,'sol1.c']]], + ['rlink_146',['rlink',['../db/d8b/struct_node.html#a0ed3c7305b43527f0f237bbfd438b8f7',1,'Node']]] +]; diff --git a/search/all_12.html b/search/all_12.html new file mode 100644 index 00000000..290ee76e --- /dev/null +++ b/search/all_12.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_12.js b/search/all_12.js new file mode 100644 index 00000000..b1c9a72f --- /dev/null +++ b/search/all_12.js @@ -0,0 +1,29 @@ +var searchData= +[ + ['simple_20generic_20stack_147',['Simple generic Stack',['../d1/d12/md_data_structures_stack__r_e_a_d_m_e.html',1,'']]], + ['sample_20solutions_20for_20_3ca_20href_3d_22http_3a_2f_2fexercism_2eio_2f_22_3eexercism_2eio_3c_2fa_3e_148',['Sample solutions for <a href="http://exercism.io/">exercism.io</a>',['../d7/db5/md_exercism__r_e_a_d_m_e.html',1,'']]], + ['save_5f2d_5fdata_149',['save_2d_data',['../d2/df6/kohonen__som__topology_8c.html#a6824dc6d973eb3339af7aef5fea78b0c',1,'kohonen_som_topology.c']]], + ['save_5fnd_5fdata_150',['save_nd_data',['../d0/d46/kohonen__som__trace_8c.html#a7b84b14e60f47812b581d1f93057c85a',1,'kohonen_som_trace.c']]], + ['save_5fu_5fmatrix_151',['save_u_matrix',['../d2/df6/kohonen__som__topology_8c.html#adee1bc3871c881f6e04cb9e0b1d01158',1,'kohonen_som_topology.c']]], + ['search_152',['search',['../df/d3c/threaded__binary__trees_8c.html#a306d567466f22e1e927aaed97d8bb58c',1,'threaded_binary_trees.c']]], + ['semi_5fimplicit_5feuler_153',['semi_implicit_euler',['../d4/d99/ode__semi__implicit__euler_8c.html#ad80059877222f885b549f2d0a3dc6b55',1,'ode_semi_implicit_euler.c']]], + ['semi_5fimplicit_5feuler_5fstep_154',['semi_implicit_euler_step',['../d4/d99/ode__semi__implicit__euler_8c.html#a720b7e995d2bbc615f94a2c7dbcf84eb',1,'ode_semi_implicit_euler.c']]], + ['shell_5fsort_155',['shell_sort',['../dd/d8b/problem__22_2sol1_8c.html#a5bc3659aa0949ea33118c95b1dee5f63',1,'shell_sort(char data[][MAX_NAME_LEN], int LEN): sol1.c'],['../d6/ded/shell__sort2_8c.html#a5bc16eaf3ffe6a6ab66780dd445904c0',1,'shell_sort(int *array, long LEN): shell_sort2.c']]], + ['shell_5fsort2_2ec_156',['shell_sort2.c',['../d6/ded/shell__sort2_8c.html',1,'']]], + ['show_5fdata_157',['show_data',['../d6/ded/shell__sort2_8c.html#aeccaf61ff47279384d1dba8d869d5c2f',1,'shell_sort2.c']]], + ['sigma_158',['sigma',['../d4/d83/problem__401_2sol1_8c.html#aaf964739be92adc2f500e7da11e3f6be',1,'sol1.c']]], + ['sigma2_159',['sigma2',['../d4/d83/problem__401_2sol1_8c.html#a236548478af932f1115a71f601a68788',1,'sol1.c']]], + ['so1_2ec_160',['so1.c',['../d0/d7f/so1_8c.html',1,'']]], + ['sol_2ec_161',['sol.c',['../d0/d6c/problem__4_2sol_8c.html',1,'(Global Namespace)'],['../df/de7/problem__5_2sol_8c.html',1,'(Global Namespace)'],['../d4/d7b/problem__6_2sol_8c.html',1,'(Global Namespace)'],['../d1/d2f/problem__7_2sol_8c.html',1,'(Global Namespace)']]], + ['sol1_2ec_162',['sol1.c',['../da/d35/problem__1_2sol1_8c.html',1,'(Global Namespace)'],['../d0/d6d/problem__10_2sol1_8c.html',1,'(Global Namespace)'],['../d7/d1f/problem__12_2sol1_8c.html',1,'(Global Namespace)'],['../db/d01/problem__13_2sol1_8c.html',1,'(Global Namespace)'],['../d4/dea/problem__14_2sol1_8c.html',1,'(Global Namespace)'],['../d7/d91/problem__15_2sol1_8c.html',1,'(Global Namespace)'],['../d6/d88/problem__16_2sol1_8c.html',1,'(Global Namespace)'],['../dd/df0/problem__19_2sol1_8c.html',1,'(Global Namespace)'],['../db/d80/problem__20_2sol1_8c.html',1,'(Global Namespace)'],['../df/d1a/problem__21_2sol1_8c.html',1,'(Global Namespace)'],['../dd/d8b/problem__22_2sol1_8c.html',1,'(Global Namespace)'],['../d7/ddb/problem__23_2sol1_8c.html',1,'(Global Namespace)'],['../d8/d32/problem__25_2sol1_8c.html',1,'(Global Namespace)'],['../d1/df9/problem__26_2sol1_8c.html',1,'(Global Namespace)'],['../d7/dd3/problem__3_2sol1_8c.html',1,'(Global Namespace)'],['../d4/d83/problem__401_2sol1_8c.html',1,'(Global Namespace)'],['../dc/d63/problem__8_2sol1_8c.html',1,'(Global Namespace)'],['../df/da5/problem__9_2sol1_8c.html',1,'(Global Namespace)']]], + ['sol2_2ec_163',['sol2.c',['../d2/dae/problem__1_2sol2_8c.html',1,'(Global Namespace)'],['../d9/da7/problem__10_2sol2_8c.html',1,'(Global Namespace)'],['../d4/dbd/problem__23_2sol2_8c.html',1,'(Global Namespace)'],['../d2/dbc/problem__3_2sol2_8c.html',1,'(Global Namespace)'],['../d2/d93/problem__8_2sol2_8c.html',1,'(Global Namespace)'],['../d8/de0/problem__9_2sol2_8c.html',1,'(Global Namespace)']]], + ['sol3_2ec_164',['sol3.c',['../d6/de3/sol3_8c.html',1,'']]], + ['sol4_2ec_165',['sol4.c',['../d6/d1b/sol4_8c.html',1,'']]], + ['stack_166',['Stack',['../dd/d10/struct_stack.html',1,'']]], + ['stats_5fcomputer1_167',['stats_computer1',['../dc/d47/realtime__stats_8c.html#a63ddcdaab24f722f0963fa2fbe0ae628',1,'realtime_stats.c']]], + ['stats_5fcomputer2_168',['stats_computer2',['../dc/d47/realtime__stats_8c.html#a34be233a9200ee2065f6b7b27e2d9a96',1,'realtime_stats.c']]], + ['subset_169',['subset',['../dc/de5/structsubset.html',1,'']]], + ['sum_5fof_5fdivisors_170',['sum_of_divisors',['../df/d1a/problem__21_2sol1_8c.html#aacf4b7e708651d2164e86958f2c29c93',1,'sol1.c']]], + ['sum_5fof_5fprimes_171',['sum_of_primes',['../d0/d6d/problem__10_2sol1_8c.html#ae3d987cb2ad0ddb0c3caa4c2506a20e5',1,'sol1.c']]], + ['swap_172',['swap',['../d6/ded/shell__sort2_8c.html#a4b9708d87be7a409eff20e5e7e8b43c8',1,'shell_sort2.c']]] +]; diff --git a/search/all_13.html b/search/all_13.html new file mode 100644 index 00000000..f7d46e7a --- /dev/null +++ b/search/all_13.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_13.js b/search/all_13.js new file mode 100644 index 00000000..becd299b --- /dev/null +++ b/search/all_13.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['the_20algorithms_20_2d_20c_173',['The Algorithms - C',['../index.html',1,'']]], + ['t_174',['T',['../d5/d7e/struct_t.html',1,'']]], + ['test1_175',['test1',['../dd/d8c/adaline__learning_8c.html#ab4ecb3accf5d9e0263087e7265bbe3a9',1,'test1(double eta): adaline_learning.c'],['../d2/df6/kohonen__som__topology_8c.html#a1440a7779ac56f47a3f355ce4a8c7da0',1,'test1(): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a1440a7779ac56f47a3f355ce4a8c7da0',1,'test1(): kohonen_som_trace.c'],['../d7/d50/qr__eigen__values_8c.html#a1440a7779ac56f47a3f355ce4a8c7da0',1,'test1(): qr_eigen_values.c']]], + ['test2_176',['test2',['../dd/d8c/adaline__learning_8c.html#a05cc9a0acb524fde727a4d7b4a747ee6',1,'test2(double eta): adaline_learning.c'],['../d2/df6/kohonen__som__topology_8c.html#a0283886819c7c140a023582b7269e2d0',1,'test2(): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a0283886819c7c140a023582b7269e2d0',1,'test2(): kohonen_som_trace.c'],['../d7/d50/qr__eigen__values_8c.html#a0283886819c7c140a023582b7269e2d0',1,'test2(): qr_eigen_values.c']]], + ['test3_177',['test3',['../dd/d8c/adaline__learning_8c.html#a3f37b9f073f7e57fd0b39d70718af1b1',1,'test3(double eta): adaline_learning.c'],['../d2/df6/kohonen__som__topology_8c.html#a6d0455dd5c30adda100e95f0423c786e',1,'test3(): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a6d0455dd5c30adda100e95f0423c786e',1,'test3(): kohonen_som_trace.c']]], + ['test_5f2d_5fclasses_178',['test_2d_classes',['../d2/df6/kohonen__som__topology_8c.html#adb5ded007be1fd666fab9affe6764018',1,'kohonen_som_topology.c']]], + ['test_5f3d_5fclasses_179',['test_3d_classes',['../d0/d46/kohonen__som__trace_8c.html#a41ae16442e3e5b891a58d2e5932a2cd0',1,'kohonen_som_trace.c']]], + ['test_5f3d_5fclasses1_180',['test_3d_classes1',['../d2/df6/kohonen__som__topology_8c.html#ad9e25202bb8b481461f932668f249dbc',1,'kohonen_som_topology.c']]], + ['test_5f3d_5fclasses2_181',['test_3d_classes2',['../d2/df6/kohonen__som__topology_8c.html#a5bb02a8322d717ead1b11182c5f02a3a',1,'kohonen_som_topology.c']]], + ['test_5fc_5fatoi_182',['test_c_atoi',['../d7/dd8/c__atoi__str__to__integer_8c.html#abef225390e0b6e84ddfcb18fe573d9c5',1,'c_atoi_str_to_integer.c']]], + ['test_5fcircle_183',['test_circle',['../d0/d46/kohonen__som__trace_8c.html#a107f00650b8041f77767927073ddddb8',1,'kohonen_som_trace.c']]], + ['test_5ffunction_184',['test_function',['../dc/d47/realtime__stats_8c.html#aa54c915581fcc495489175a4386d59fd',1,'realtime_stats.c']]], + ['test_5flamniscate_185',['test_lamniscate',['../d0/d46/kohonen__som__trace_8c.html#aa2246f940155472084ee461f3685d614',1,'kohonen_som_trace.c']]], + ['threaded_5fbinary_5ftrees_2ec_186',['threaded_binary_trees.c',['../df/d3c/threaded__binary__trees_8c.html',1,'']]], + ['tnode_187',['tnode',['../d8/d7a/structtnode.html',1,'']]], + ['trienode_188',['TrieNode',['../da/d9b/struct_trie_node.html',1,'']]] +]; diff --git a/search/all_14.html b/search/all_14.html new file mode 100644 index 00000000..c0e4c762 --- /dev/null +++ b/search/all_14.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_14.js b/search/all_14.js new file mode 100644 index 00000000..09ed919b --- /dev/null +++ b/search/all_14.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['update_5fweights_189',['update_weights',['../d2/df6/kohonen__som__topology_8c.html#ad139de302fa8135a433d9c1bf971b13b',1,'update_weights(const double *X, struct array_3d *W, double **D, int num_out, int num_features, double alpha, int R): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a9c98203f55242ff7a8f45a6370840e66',1,'update_weights(double const *x, double *const *W, double *D, int num_out, int num_features, double alpha, int R): kohonen_som_trace.c']]] +]; diff --git a/search/all_15.html b/search/all_15.html new file mode 100644 index 00000000..ff415521 --- /dev/null +++ b/search/all_15.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_15.js b/search/all_15.js new file mode 100644 index 00000000..87c517fc --- /dev/null +++ b/search/all_15.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['vector_5fdot_190',['vector_dot',['../d4/d68/qr__decompose_8h.html#a3a584b79941a43d775f9d4ce446dbe05',1,'qr_decompose.h']]], + ['vector_5fmag_191',['vector_mag',['../d4/d68/qr__decompose_8h.html#abeec1f78a7a7e7251687e75340331212',1,'qr_decompose.h']]], + ['vector_5fproj_192',['vector_proj',['../d4/d68/qr__decompose_8h.html#a82b20e027437df768d7e994cf4cae29f',1,'qr_decompose.h']]], + ['vector_5fsub_193',['vector_sub',['../d4/d68/qr__decompose_8h.html#a6b6a0e75e75ff7919057dd275bb69145',1,'qr_decompose.h']]] +]; diff --git a/search/all_16.html b/search/all_16.html new file mode 100644 index 00000000..936394ce --- /dev/null +++ b/search/all_16.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_16.js b/search/all_16.js new file mode 100644 index 00000000..ae62032b --- /dev/null +++ b/search/all_16.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['weights_194',['weights',['../d2/daa/structadaline.html#a32e58c03fd9258709eae6138ad0ec657',1,'adaline']]], + ['word_5fcount_5fword_195',['word_count_word',['../df/ddb/structword__count__word.html',1,'']]] +]; diff --git a/search/all_2.html b/search/all_2.html new file mode 100644 index 00000000..ffa7873b --- /dev/null +++ b/search/all_2.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 00000000..ad1098a0 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['big_5fint_14',['big_int',['../db/d80/problem__20_2sol1_8c.html#a62cbbd106aad52daadb9403a07d0da32',1,'sol1.c']]], + ['bstiterator_15',['BSTIterator',['../d4/d02/struct_b_s_t_iterator.html',1,'']]] +]; diff --git a/search/all_3.html b/search/all_3.html new file mode 100644 index 00000000..f9df19b4 --- /dev/null +++ b/search/all_3.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 00000000..59aa8b77 --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['c_5fatoi_16',['c_atoi',['../d7/dd8/c__atoi__str__to__integer_8c.html#ad19049ebfc2088bc1e75e7e958f7b60f',1,'c_atoi_str_to_integer.c']]], + ['c_5fatoi_5fstr_5fto_5finteger_2ec_17',['c_atoi_str_to_integer.c',['../d7/dd8/c__atoi__str__to__integer_8c.html',1,'']]], + ['carray_18',['CArray',['../d4/d2d/struct_c_array.html',1,'']]], + ['check_5ftermination_19',['check_termination',['../da/d38/durand__kerner__roots_8c.html#a26d5695ebed0818a3e7cf4b10aacab52',1,'durand_kerner_roots.c']]], + ['collatz_20',['collatz',['../d4/dea/problem__14_2sol1_8c.html#a81c1df5c17cb16bcc16e346fcff6fa80',1,'sol1.c']]], + ['collatz_2ec_21',['collatz.c',['../dc/d80/collatz_8c.html',1,'']]], + ['compare_22',['compare',['../d1/df9/problem__26_2sol1_8c.html#ac70138609ef6aa6fabca57aca8681e83',1,'sol1.c']]], + ['complex_5fstr_23',['complex_str',['../da/d38/durand__kerner__roots_8c.html#afa5b04ce11475d67049cba8273741fb7',1,'durand_kerner_roots.c']]], + ['contour_24',['contour',['../d2/d89/structcontour.html',1,'']]], + ['count_5fdivisors_25',['count_divisors',['../d7/d1f/problem__12_2sol1_8c.html#aa6ce6271f6156e219f9b290717f5a222',1,'sol1.c']]], + ['create_5fmatrix_26',['create_matrix',['../d7/d50/qr__eigen__values_8c.html#a7d96c5e4ae1bd6d29791bcc23a4cb2b0',1,'qr_eigen_values.c']]], + ['create_5fnode_27',['create_node',['../df/d3c/threaded__binary__trees_8c.html#ab21d1d36d95001defbca2f6abd4d410c',1,'threaded_binary_trees.c']]], + ['code_20style_20convention_28',['Code style convention',['../dc/d64/md__coding_guidelines.html',1,'']]] +]; diff --git a/search/all_4.html b/search/all_4.html new file mode 100644 index 00000000..aa2c933f --- /dev/null +++ b/search/all_4.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 00000000..5639b03b --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['d_5ffunc_29',['d_func',['../dd/d08/newton__raphson__root_8c.html#ae713a1fd0c275fbec7edf263ac2c0337',1,'newton_raphson_root.c']]], + ['data_30',['data',['../df/dea/structdata.html',1,'data'],['../db/d8b/struct_node.html#a87c003c9f600e3fc58e6e90835f0b605',1,'Node::data()'],['../d0/dc8/structarray__3d.html#ac8967b2c72769f839c09fb4cebb4339f',1,'array_3d::data()']]], + ['data_5f3d_31',['data_3d',['../d2/df6/kohonen__som__topology_8c.html#a7237d2cf3b3f9d034477268c1d6631da',1,'kohonen_som_topology.c']]], + ['delete_5fadaline_32',['delete_adaline',['../dd/d8c/adaline__learning_8c.html#a6f35caa3084772cc126ac7b20f67f665',1,'adaline_learning.c']]], + ['delete_5fbt_33',['delete_bt',['../df/d3c/threaded__binary__trees_8c.html#a284d683f74b6c884e79ba00d3d1c3317',1,'threaded_binary_trees.c']]], + ['delete_5fnumber_34',['delete_number',['../d6/d3d/factorial__large__number_8c.html#ab5c854e0df76165c31899e69eceeeaae',1,'factorial_large_number.c']]], + ['dict_35',['Dict',['../d4/dfe/struct_dict.html',1,'']]], + ['digits_36',['digits',['../d3/d5a/struct__large__num.html#afaf353a072cf050ac86ac6e39868bcc9',1,'_large_num']]], + ['dim1_37',['dim1',['../d0/dc8/structarray__3d.html#ad5d3ee546eea3c05dc8f0dc90ec194f4',1,'array_3d']]], + ['dim2_38',['dim2',['../d0/dc8/structarray__3d.html#aa431cc0a41fd379270dbd2b0e3ac1b45',1,'array_3d']]], + ['dim3_39',['dim3',['../d0/dc8/structarray__3d.html#ad823bd5424a0fc158da52a0497d8c10a',1,'array_3d']]], + ['display_40',['display',['../dc/d2e/lu__decompose_8c.html#a0789beb8d3396582d77b7aedf5e5554a',1,'lu_decompose.c']]], + ['durand_5fkerner_5froots_2ec_41',['durand_kerner_roots.c',['../da/d38/durand__kerner__roots_8c.html',1,'']]], + ['dynamic_5farray_42',['dynamic_array',['../d6/d42/structdynamic__array.html',1,'']]], + ['dictionary_43',['Dictionary',['../de/d20/md_data_structures_dictionary__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/search/all_5.html b/search/all_5.html new file mode 100644 index 00000000..71848afa --- /dev/null +++ b/search/all_5.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 00000000..ac898c25 --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['edge_44',['Edge',['../d5/db4/struct_edge.html',1,'']]], + ['eigen_5fvalues_45',['eigen_values',['../d7/d50/qr__eigen__values_8c.html#a0d8ed79786d17df48396b333c09d05bb',1,'qr_eigen_values.c']]], + ['elem_46',['elem',['../d0/d6b/structelem.html',1,'']]], + ['epsilon_47',['EPSILON',['../d7/d50/qr__eigen__values_8c.html#a002b2f4894492820fe708b1b7e7c5e70',1,'qr_eigen_values.c']]], + ['eta_48',['eta',['../d2/daa/structadaline.html#a85dbd7cce6195d11ebb388220b96bde2',1,'adaline']]], + ['exact_5fsolution_49',['exact_solution',['../d4/d07/ode__forward__euler_8c.html#a8caee977b26888d34040b122e0e28e3a',1,'exact_solution(const double *x, double *y): ode_forward_euler.c'],['../d1/dc2/ode__midpoint__euler_8c.html#a8caee977b26888d34040b122e0e28e3a',1,'exact_solution(const double *x, double *y): ode_midpoint_euler.c'],['../d4/d99/ode__semi__implicit__euler_8c.html#a8caee977b26888d34040b122e0e28e3a',1,'exact_solution(const double *x, double *y): ode_semi_implicit_euler.c']]] +]; diff --git a/search/all_6.html b/search/all_6.html new file mode 100644 index 00000000..a24601b9 --- /dev/null +++ b/search/all_6.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 00000000..191862bd --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['factorial_5flarge_5fnumber_2ec_50',['factorial_large_number.c',['../d6/d3d/factorial__large__number_8c.html',1,'']]], + ['fib_51',['fib',['../d4/d99/fibonacci__fast_8c.html#a7a3d55bd19854075cba2eed6b63cb2d3',1,'fibonacci_fast.c']]], + ['fibonacci_5ffast_2ec_52',['fibonacci_fast.c',['../d4/d99/fibonacci__fast_8c.html',1,'']]], + ['fit_53',['fit',['../dd/d8c/adaline__learning_8c.html#a355fda53c238a0c0c07f03dcc021caed',1,'adaline_learning.c']]], + ['fit_5fsample_54',['fit_sample',['../dd/d8c/adaline__learning_8c.html#afa953e811eaae199d121a7ddb619d604',1,'adaline_learning.c']]], + ['forward_5feuler_55',['forward_euler',['../d4/d07/ode__forward__euler_8c.html#aaf88ad8f9f7c39fc38f3f03d6fea9df9',1,'ode_forward_euler.c']]], + ['forward_5feuler_5fstep_56',['forward_euler_step',['../d4/d07/ode__forward__euler_8c.html#ae6c9413953c8d9d4bc9e374b29586350',1,'ode_forward_euler.c']]], + ['func_57',['func',['../dd/d08/newton__raphson__root_8c.html#a72f87d423a488946b319627a454d3925',1,'newton_raphson_root.c']]] +]; diff --git a/search/all_7.html b/search/all_7.html new file mode 100644 index 00000000..e42e45b4 --- /dev/null +++ b/search/all_7.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 00000000..a47a0dec --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['gcd_58',['gcd',['../df/de7/problem__5_2sol_8c.html#a59347107cbfdf48d51108e50280e760d',1,'sol.c']]], + ['get_5fclock_5fdiff_59',['get_clock_diff',['../d2/df6/kohonen__som__topology_8c.html#a2256c10b16edba377b64a44b6c656908',1,'get_clock_diff(clock_t start_t, clock_t end_t): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a2256c10b16edba377b64a44b6c656908',1,'get_clock_diff(clock_t start_t, clock_t end_t): kohonen_som_trace.c']]], + ['get_5fdigits_60',['get_digits',['../d8/d32/problem__25_2sol1_8c.html#a2b90df6bfbf0d18cd9a19c1a71453783',1,'sol1.c']]], + ['get_5fdivisors_61',['get_divisors',['../d4/d83/problem__401_2sol1_8c.html#a7380e14d595d560007b02ce516b6b215',1,'sol1.c']]], + ['get_5fmin_5f1d_62',['get_min_1d',['../d0/d46/kohonen__som__trace_8c.html#a0a292ebd954c568934b1fd06666d27e6',1,'kohonen_som_trace.c']]], + ['get_5fmin_5f2d_63',['get_min_2d',['../d2/df6/kohonen__som__topology_8c.html#adc22d512c00a9f5799ee067f4fb90b4b',1,'kohonen_som_topology.c']]], + ['get_5fmonth_5fdays_64',['get_month_days',['../dd/df0/problem__19_2sol1_8c.html#ab7f9ad087f124b8e0615aa535b4c8a75',1,'sol1.c']]], + ['get_5fnext_5fabundant_65',['get_next_abundant',['../d7/ddb/problem__23_2sol1_8c.html#ac5d600bf3077f4188afc4c5cd2c40eaf',1,'get_next_abundant(unsigned long N): sol1.c'],['../d4/dbd/problem__23_2sol2_8c.html#ac5d600bf3077f4188afc4c5cd2c40eaf',1,'get_next_abundant(unsigned long N): sol2.c']]], + ['get_5fnumber_66',['get_number',['../db/d01/problem__13_2sol1_8c.html#ac260f58785fb20eb09bb35385a7d47f8',1,'sol1.c']]], + ['get_5fperfect_5fnumber_67',['get_perfect_number',['../d7/ddb/problem__23_2sol1_8c.html#a1aca7f530f82b27100262adba9e7556b',1,'get_perfect_number(unsigned long N): sol1.c'],['../d4/dbd/problem__23_2sol2_8c.html#a1aca7f530f82b27100262adba9e7556b',1,'get_perfect_number(unsigned long N): sol2.c']]], + ['get_5fproduct_68',['get_product',['../dc/d63/problem__8_2sol1_8c.html#a9ffc8845f17b01a353767a40a3adf7bd',1,'sol1.c']]], + ['get_5fweights_5fstr_69',['get_weights_str',['../dd/d8c/adaline__learning_8c.html#a00dc6134ca22a12e0fd9cac54d601c2d',1,'adaline_learning.c']]], + ['graph_70',['Graph',['../d4/dd4/struct_graph.html',1,'']]], + ['graphrep_71',['GraphRep',['../d2/d6a/struct_graph_rep.html',1,'']]] +]; diff --git a/search/all_8.html b/search/all_8.html new file mode 100644 index 00000000..888e6190 --- /dev/null +++ b/search/all_8.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 00000000..4d35fb4e --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['hash_5fset_5ft_72',['hash_set_t',['../d0/df1/structhash__set__t.html',1,'']]], + ['hash_20algorithms_73',['Hash algorithms',['../d4/dcb/md_hash__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/search/all_9.html b/search/all_9.html new file mode 100644 index 00000000..dc988f45 --- /dev/null +++ b/search/all_9.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 00000000..fe037ee6 --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['inorder_5fdisplay_74',['inorder_display',['../df/d3c/threaded__binary__trees_8c.html#a4c1e06b5f0876ec9c1bd6817f3b7eda7',1,'threaded_binary_trees.c']]], + ['insert_5fbt_75',['insert_bt',['../df/d3c/threaded__binary__trees_8c.html#a823432888332fc9f0aa6072cff28c3bb',1,'threaded_binary_trees.c']]], + ['is_5fabundant_76',['is_abundant',['../d7/ddb/problem__23_2sol1_8c.html#a4f128410e6582fe26488e2316cc96e17',1,'is_abundant(unsigned long N): sol1.c'],['../d4/dbd/problem__23_2sol2_8c.html#a34f4ad85151e3a43368ae67f42347f56',1,'is_abundant(unsigned long N): sol2.c']]], + ['is_5fin_77',['is_in',['../d4/d83/problem__401_2sol1_8c.html#a4441a6d27134cf3aed05727800d99456',1,'sol1.c']]], + ['is_5fleap_5fyear_78',['is_leap_year',['../dd/df0/problem__19_2sol1_8c.html#a6561b1adc8a19c092679b9874da24e2e',1,'sol1.c']]], + ['is_5fpalindromic_79',['is_palindromic',['../d0/d6c/problem__4_2sol_8c.html#adf9bea8d35848959bde5b3f277edf0c4',1,'sol.c']]], + ['is_5fprime_80',['is_prime',['../d0/d6d/problem__10_2sol1_8c.html#acc871ab6bfead702e983a7f9c412915f',1,'sol1.c']]], + ['is_5fsum_5fof_5fabundant_81',['is_sum_of_abundant',['../d7/ddb/problem__23_2sol1_8c.html#a3ab61b5a1c4f2288625d160aa0ea8478',1,'is_sum_of_abundant(unsigned long N): sol1.c'],['../d4/dbd/problem__23_2sol2_8c.html#a3ab61b5a1c4f2288625d160aa0ea8478',1,'is_sum_of_abundant(unsigned long N): sol2.c']]], + ['isprime_82',['isprime',['../d7/dd3/problem__3_2sol1_8c.html#aa0f4796aa2e89c327f827bd55f5cb305',1,'sol1.c']]] +]; diff --git a/search/all_a.html b/search/all_a.html new file mode 100644 index 00000000..0ce816b1 --- /dev/null +++ b/search/all_a.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 00000000..f1ee082e --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['kohonen_5fsom_83',['kohonen_som',['../d2/df6/kohonen__som__topology_8c.html#a1983dc0f35e734015772e9f8c0ff19f5',1,'kohonen_som_topology.c']]], + ['kohonen_5fsom_5ftopology_2ec_84',['kohonen_som_topology.c',['../d2/df6/kohonen__som__topology_8c.html',1,'']]], + ['kohonen_5fsom_5ftrace_2ec_85',['kohonen_som_trace.c',['../d0/d46/kohonen__som__trace_8c.html',1,'']]], + ['kohonen_5fsom_5ftracer_86',['kohonen_som_tracer',['../d0/d46/kohonen__som__trace_8c.html#aeaeffbff2be4d5d15b0d4f10f846abde',1,'kohonen_som_trace.c']]] +]; diff --git a/search/all_b.html b/search/all_b.html new file mode 100644 index 00000000..28c2413a --- /dev/null +++ b/search/all_b.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 00000000..5df09cb3 --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['l_87',['L',['../df/db3/struct_l.html',1,'']]], + ['large_5fnum_88',['large_num',['../d6/d3d/factorial__large__number_8c.html#ab54882961780c41a4929a6d390f6522d',1,'factorial_large_number.c']]], + ['lazy_5fsort_89',['lazy_sort',['../dd/d8b/problem__22_2sol1_8c.html#ae359b8a4656b164c91ef91a084c15c9d',1,'sol1.c']]], + ['lcm_90',['lcm',['../df/de7/problem__5_2sol_8c.html#ae9606f1867e9921867d6572f51377b4c',1,'sol.c']]], + ['lims_91',['LIMS',['../d7/d50/qr__eigen__values_8c.html#aee57a411f07599034f5ceb8cc7d65b40',1,'qr_eigen_values.c']]], + ['llink_92',['llink',['../db/d8b/struct_node.html#a60b73f452505cef98795d2c8de3e72ef',1,'Node']]], + ['lu_5fdecompose_2ec_93',['lu_decompose.c',['../dc/d2e/lu__decompose_8c.html',1,'']]], + ['lu_5fdecomposition_94',['lu_decomposition',['../dc/d2e/lu__decompose_8c.html#aae40b90a8efd645c749128cf8072bbb4',1,'lu_decompose.c']]], + ['list_20of_20all_20files_95',['List of all files',['../d5/d88/md__d_i_r_e_c_t_o_r_y.html',1,'']]], + ['leetcode_96',['LeetCode',['../df/d58/md_leetcode__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/search/all_c.html b/search/all_c.html new file mode 100644 index 00000000..39fc49b1 --- /dev/null +++ b/search/all_c.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 00000000..51efad8f --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['main_97',['main',['../d7/dd8/c__atoi__str__to__integer_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): c_atoi_str_to_integer.c'],['../df/d3c/threaded__binary__trees_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): threaded_binary_trees.c'],['../dd/d8c/adaline__learning_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): adaline_learning.c'],['../d2/df6/kohonen__som__topology_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): kohonen_som_trace.c'],['../dc/d80/collatz_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): collatz.c'],['../d6/d3d/factorial__large__number_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): factorial_large_number.c'],['../d4/d99/fibonacci__fast_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): fibonacci_fast.c'],['../da/d38/durand__kerner__roots_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): durand_kerner_roots.c'],['../dc/d2e/lu__decompose_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): lu_decompose.c'],['../dd/d08/newton__raphson__root_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): newton_raphson_root.c'],['../d4/d07/ode__forward__euler_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): ode_forward_euler.c'],['../d1/dc2/ode__midpoint__euler_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): ode_midpoint_euler.c'],['../d4/d99/ode__semi__implicit__euler_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): ode_semi_implicit_euler.c'],['../d5/d23/qr__decomposition_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): qr_decomposition.c'],['../d7/d50/qr__eigen__values_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): qr_eigen_values.c'],['../dc/d47/realtime__stats_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): realtime_stats.c'],['../da/d35/problem__1_2sol1_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): sol1.c'],['../d2/dae/problem__1_2sol2_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): sol2.c'],['../d6/de3/sol3_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): sol3.c'],['../d6/d1b/sol4_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): sol4.c'],['../d0/d6d/problem__10_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): sol1.c'],['../d9/da7/problem__10_2sol2_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): sol2.c'],['../d7/d1f/problem__12_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../db/d01/problem__13_2sol1_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol1.c'],['../d4/dea/problem__14_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../d7/d91/problem__15_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../d6/d88/problem__16_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../dd/df0/problem__19_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../d0/d7f/so1_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): so1.c'],['../db/d80/problem__20_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../df/d1a/problem__21_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../dd/d8b/problem__22_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../d7/ddb/problem__23_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../d4/dbd/problem__23_2sol2_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol2.c'],['../d8/d32/problem__25_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): sol1.c'],['../d1/df9/problem__26_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): sol1.c'],['../d7/dd3/problem__3_2sol1_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): sol1.c'],['../d2/dbc/problem__3_2sol2_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): sol2.c'],['../d0/d6c/problem__4_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol.c'],['../d4/d83/problem__401_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../df/de7/problem__5_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol.c'],['../d4/d7b/problem__6_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol.c'],['../d1/d2f/problem__7_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol.c'],['../dc/d63/problem__8_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): sol1.c'],['../d2/d93/problem__8_2sol2_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): sol2.c'],['../df/da5/problem__9_2sol1_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol1.c'],['../d8/de0/problem__9_2sol2_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol2.c'],['../d6/ded/shell__sort2_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): shell_sort2.c']]], + ['mat_5fmul_98',['mat_mul',['../d7/d50/qr__eigen__values_8c.html#a741477692f001a805b0fea942c9dc2b9',1,'qr_eigen_values.c']]], + ['max_99',['max',['../d2/df6/kohonen__som__topology_8c.html#affe776513b24d84b39af8ab0930fef7f',1,'max(): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#affe776513b24d84b39af8ab0930fef7f',1,'max(): kohonen_som_trace.c']]], + ['max_5fdeno_100',['MAX_DENO',['../d1/df9/problem__26_2sol1_8c.html#a619eec3220cebd7c5e455edbb14e9b12',1,'sol1.c']]], + ['max_5fdigits_101',['MAX_DIGITS',['../d8/d32/problem__25_2sol1_8c.html#a001791a21d538b8b9176287ae60d9b61',1,'sol1.c']]], + ['max_5fheap_102',['max_heap',['../d0/d8a/structmax__heap.html',1,'']]], + ['max_5fl_103',['MAX_L',['../d4/d83/problem__401_2sol1_8c.html#adf2a0717e3307419a9d7c52707f5631e',1,'sol1.c']]], + ['max_5flen_104',['MAX_LEN',['../d1/df9/problem__26_2sol1_8c.html#aabf4f709c8199e41cf279c77112345fe',1,'sol1.c']]], + ['max_5fn_105',['MAX_N',['../d7/ddb/problem__23_2sol1_8c.html#a337e545af040d754dc012b42523ee1ee',1,'MAX_N(): sol1.c'],['../d4/dbd/problem__23_2sol2_8c.html#a8c7ddb39906f281b801f2cd58d416c2b',1,'MAX_N(): sol2.c']]], + ['max_5fname_5flen_106',['MAX_NAME_LEN',['../dd/d8b/problem__22_2sol1_8c.html#afd709f201d7643c3909621f620ea648a',1,'sol1.c']]], + ['max_5fnames_107',['MAX_NAMES',['../dd/d8b/problem__22_2sol1_8c.html#a6cb9b08aacb61416795ee78bfceacd38',1,'sol1.c']]], + ['midpoint_5feuler_108',['midpoint_euler',['../d1/dc2/ode__midpoint__euler_8c.html#a148003d8b261d040c1c41e73b40af1dd',1,'ode_midpoint_euler.c']]], + ['midpoint_5feuler_5fstep_109',['midpoint_euler_step',['../d1/dc2/ode__midpoint__euler_8c.html#affe6cc2ab040b94a29e6c41782f72d51',1,'ode_midpoint_euler.c']]], + ['min_110',['min',['../d2/df6/kohonen__som__topology_8c.html#ac6afabdc09a49a433ee19d8a9486056d',1,'min(): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#ac6afabdc09a49a433ee19d8a9486056d',1,'min(): kohonen_som_trace.c']]], + ['min_5fheap_111',['min_heap',['../de/dce/structmin__heap.html',1,'']]], + ['mod_112',['MOD',['../d4/d83/problem__401_2sol1_8c.html#aca7d5718ab8c38506adb3bef2469b319',1,'sol1.c']]], + ['multiply_113',['multiply',['../d6/d3d/factorial__large__number_8c.html#ad398ddbd594ca69a5e6dfc894925341e',1,'factorial_large_number.c']]] +]; diff --git a/search/all_d.html b/search/all_d.html new file mode 100644 index 00000000..cc470e5d --- /dev/null +++ b/search/all_d.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 00000000..ac9c14f4 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['n_114',['N',['../db/d01/problem__13_2sol1_8c.html#a0240ac851181b84ac374872dc5434ee4',1,'sol1.c']]], + ['n2_115',['N2',['../db/d01/problem__13_2sol1_8c.html#acd864640121c7df2c19f61f7baa507e4',1,'sol1.c']]], + ['new_5fadaline_116',['new_adaline',['../dd/d8c/adaline__learning_8c.html#acd88962c5f6341e43cbc69b4a7d3485b',1,'adaline_learning.c']]], + ['new_5fnumber_117',['new_number',['../d6/d3d/factorial__large__number_8c.html#ad8101f58545bd891ae8b6e11caadd7eb',1,'factorial_large_number.c']]], + ['newton_5fraphson_5froot_2ec_118',['newton_raphson_root.c',['../dd/d08/newton__raphson__root_8c.html',1,'']]], + ['next_5fdigit_119',['next_digit',['../dc/d77/struct__big__int.html#a187538b984c86d7cfdb13e297e7f3564',1,'_big_int']]], + ['node_120',['Node',['../db/d8b/struct_node.html',1,'Node'],['../d5/da1/structnode.html',1,'node'],['../df/d3c/threaded__binary__trees_8c.html#ad8ecdcce462dd8e170ae1f164935aaa6',1,'node(): threaded_binary_trees.c']]], + ['num_5fdigits_121',['num_digits',['../d3/d5a/struct__large__num.html#a3fd11c0b413bbabfb8737d4ae73e5aa0',1,'_large_num']]], + ['num_5fweights_122',['num_weights',['../d2/daa/structadaline.html#a53314e737a0a5ff4552a03bcc9dafbc1',1,'adaline']]], + ['number_5fof_5fpaths_123',['number_of_paths',['../d7/d91/problem__15_2sol1_8c.html#a4650d1d3897633d84253f93433f601d6',1,'sol1.c']]] +]; diff --git a/search/all_e.html b/search/all_e.html new file mode 100644 index 00000000..57cce760 --- /dev/null +++ b/search/all_e.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 00000000..9dd3cd3d --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['ode_5fforward_5feuler_2ec_124',['ode_forward_euler.c',['../d4/d07/ode__forward__euler_8c.html',1,'']]], + ['ode_5fmidpoint_5feuler_2ec_125',['ode_midpoint_euler.c',['../d1/dc2/ode__midpoint__euler_8c.html',1,'']]], + ['ode_5fsemi_5fimplicit_5feuler_2ec_126',['ode_semi_implicit_euler.c',['../d4/d99/ode__semi__implicit__euler_8c.html',1,'']]], + ['order_127',['order',['../d4/d07/ode__forward__euler_8c.html#a9ceb646336224ee890a269d0b4600d09',1,'order(): ode_forward_euler.c'],['../d1/dc2/ode__midpoint__euler_8c.html#a9ceb646336224ee890a269d0b4600d09',1,'order(): ode_midpoint_euler.c'],['../d4/d99/ode__semi__implicit__euler_8c.html#a9ceb646336224ee890a269d0b4600d09',1,'order(): ode_semi_implicit_euler.c']]] +]; diff --git a/search/all_f.html b/search/all_f.html new file mode 100644 index 00000000..ac1e704f --- /dev/null +++ b/search/all_f.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 00000000..4b10f9d2 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['projecteuler_128',['ProjectEuler',['../d8/d81/md_project_euler__r_e_a_d_m_e.html',1,'']]], + ['pid_129',['pid',['../d0/d43/structpid.html',1,'']]], + ['poly_5ffunction_130',['poly_function',['../da/d38/durand__kerner__roots_8c.html#adf4ae062a028c6faf2b96c9c1eb343af',1,'durand_kerner_roots.c']]], + ['postorder_5fdisplay_131',['postorder_display',['../df/d3c/threaded__binary__trees_8c.html#a5a82ae0ee13788be51ca4ba6cddb0719',1,'threaded_binary_trees.c']]], + ['predict_132',['predict',['../dd/d8c/adaline__learning_8c.html#a4db1ba00a7f282100ea31a94e32bd7a3',1,'adaline_learning.c']]], + ['preorder_5fdisplay_133',['preorder_display',['../df/d3c/threaded__binary__trees_8c.html#a8169ba0dfd5b8183672e444d1434bf9c',1,'threaded_binary_trees.c']]], + ['prev_5fdigit_134',['prev_digit',['../dc/d77/struct__big__int.html#ad8405989a924410942b39ec0e9fef30b',1,'_big_int']]], + ['print_5fmatrix_135',['print_matrix',['../d4/d68/qr__decompose_8h.html#a90562ce8c3707401e9c5809dece68d6a',1,'qr_decompose.h']]], + ['print_5fnumber_136',['print_number',['../db/d01/problem__13_2sol1_8c.html#a248adc917818cc6666d8bc679a660319',1,'print_number(uint8_t *number, uint8_t N, int8_t num_digits_to_print): sol1.c'],['../d8/d32/problem__25_2sol1_8c.html#abe5bc1f170b2108a19d0a16d30bd3235',1,'print_number(unsigned char *number, int N): sol1.c']]], + ['problem_137',['problem',['../d4/d07/ode__forward__euler_8c.html#a97075291390a68c262ed66e157a57eb4',1,'problem(const double *x, double *y, double *dy): ode_forward_euler.c'],['../d1/dc2/ode__midpoint__euler_8c.html#a97075291390a68c262ed66e157a57eb4',1,'problem(const double *x, double *y, double *dy): ode_midpoint_euler.c'],['../d4/d99/ode__semi__implicit__euler_8c.html#a97075291390a68c262ed66e157a57eb4',1,'problem(const double *x, double *y, double *dy): ode_semi_implicit_euler.c']]] +]; diff --git a/search/classes_0.html b/search/classes_0.html new file mode 100644 index 00000000..5b441a35 --- /dev/null +++ b/search/classes_0.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 00000000..5f3a7643 --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_5fbig_5fint_196',['_big_int',['../dc/d77/struct__big__int.html',1,'']]], + ['_5flarge_5fnum_197',['_large_num',['../d3/d5a/struct__large__num.html',1,'']]] +]; diff --git a/search/classes_1.html b/search/classes_1.html new file mode 100644 index 00000000..0ecc9f79 --- /dev/null +++ b/search/classes_1.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 00000000..4efab19f --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['adaline_198',['adaline',['../d2/daa/structadaline.html',1,'']]], + ['array_5f3d_199',['array_3d',['../d0/dc8/structarray__3d.html',1,'']]], + ['avlnode_200',['AVLnode',['../d2/d71/struct_a_v_lnode.html',1,'']]] +]; diff --git a/search/classes_2.html b/search/classes_2.html new file mode 100644 index 00000000..9c253f2b --- /dev/null +++ b/search/classes_2.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 00000000..ad807bd8 --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bstiterator_201',['BSTIterator',['../d4/d02/struct_b_s_t_iterator.html',1,'']]] +]; diff --git a/search/classes_3.html b/search/classes_3.html new file mode 100644 index 00000000..a89a0407 --- /dev/null +++ b/search/classes_3.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 00000000..22e6387f --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['carray_202',['CArray',['../d4/d2d/struct_c_array.html',1,'']]], + ['contour_203',['contour',['../d2/d89/structcontour.html',1,'']]] +]; diff --git a/search/classes_4.html b/search/classes_4.html new file mode 100644 index 00000000..97fa6e88 --- /dev/null +++ b/search/classes_4.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 00000000..6dad6576 --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['data_204',['data',['../df/dea/structdata.html',1,'']]], + ['dict_205',['Dict',['../d4/dfe/struct_dict.html',1,'']]], + ['dynamic_5farray_206',['dynamic_array',['../d6/d42/structdynamic__array.html',1,'']]] +]; diff --git a/search/classes_5.html b/search/classes_5.html new file mode 100644 index 00000000..fe82670c --- /dev/null +++ b/search/classes_5.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_5.js b/search/classes_5.js new file mode 100644 index 00000000..dd9e9429 --- /dev/null +++ b/search/classes_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['edge_207',['Edge',['../d5/db4/struct_edge.html',1,'']]], + ['elem_208',['elem',['../d0/d6b/structelem.html',1,'']]] +]; diff --git a/search/classes_6.html b/search/classes_6.html new file mode 100644 index 00000000..2b4a09e6 --- /dev/null +++ b/search/classes_6.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_6.js b/search/classes_6.js new file mode 100644 index 00000000..3ee5d767 --- /dev/null +++ b/search/classes_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['graph_209',['Graph',['../d4/dd4/struct_graph.html',1,'']]], + ['graphrep_210',['GraphRep',['../d2/d6a/struct_graph_rep.html',1,'']]] +]; diff --git a/search/classes_7.html b/search/classes_7.html new file mode 100644 index 00000000..f4307281 --- /dev/null +++ b/search/classes_7.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_7.js b/search/classes_7.js new file mode 100644 index 00000000..a533e6b7 --- /dev/null +++ b/search/classes_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hash_5fset_5ft_211',['hash_set_t',['../d0/df1/structhash__set__t.html',1,'']]] +]; diff --git a/search/classes_8.html b/search/classes_8.html new file mode 100644 index 00000000..822af8d8 --- /dev/null +++ b/search/classes_8.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_8.js b/search/classes_8.js new file mode 100644 index 00000000..5a7df821 --- /dev/null +++ b/search/classes_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['l_212',['L',['../df/db3/struct_l.html',1,'']]] +]; diff --git a/search/classes_9.html b/search/classes_9.html new file mode 100644 index 00000000..6f4b440f --- /dev/null +++ b/search/classes_9.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_9.js b/search/classes_9.js new file mode 100644 index 00000000..e82b2b26 --- /dev/null +++ b/search/classes_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['max_5fheap_213',['max_heap',['../d0/d8a/structmax__heap.html',1,'']]], + ['min_5fheap_214',['min_heap',['../de/dce/structmin__heap.html',1,'']]] +]; diff --git a/search/classes_a.html b/search/classes_a.html new file mode 100644 index 00000000..dc28dfab --- /dev/null +++ b/search/classes_a.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_a.js b/search/classes_a.js new file mode 100644 index 00000000..485ddc36 --- /dev/null +++ b/search/classes_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['node_215',['Node',['../db/d8b/struct_node.html',1,'Node'],['../d5/da1/structnode.html',1,'node']]] +]; diff --git a/search/classes_b.html b/search/classes_b.html new file mode 100644 index 00000000..df5f8486 --- /dev/null +++ b/search/classes_b.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_b.js b/search/classes_b.js new file mode 100644 index 00000000..a7331c16 --- /dev/null +++ b/search/classes_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pid_216',['pid',['../d0/d43/structpid.html',1,'']]] +]; diff --git a/search/classes_c.html b/search/classes_c.html new file mode 100644 index 00000000..18e5b17d --- /dev/null +++ b/search/classes_c.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_c.js b/search/classes_c.js new file mode 100644 index 00000000..49ee6bcd --- /dev/null +++ b/search/classes_c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['queue_217',['queue',['../d2/d36/structqueue.html',1,'']]], + ['queuerep_218',['QueueRep',['../d0/d10/struct_queue_rep.html',1,'']]] +]; diff --git a/search/classes_d.html b/search/classes_d.html new file mode 100644 index 00000000..e548fb3a --- /dev/null +++ b/search/classes_d.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_d.js b/search/classes_d.js new file mode 100644 index 00000000..532a65f5 --- /dev/null +++ b/search/classes_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['stack_219',['Stack',['../dd/d10/struct_stack.html',1,'']]], + ['subset_220',['subset',['../dc/de5/structsubset.html',1,'']]] +]; diff --git a/search/classes_e.html b/search/classes_e.html new file mode 100644 index 00000000..1c4ddf9e --- /dev/null +++ b/search/classes_e.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_e.js b/search/classes_e.js new file mode 100644 index 00000000..716e0eb0 --- /dev/null +++ b/search/classes_e.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['t_221',['T',['../d5/d7e/struct_t.html',1,'']]], + ['tnode_222',['tnode',['../d8/d7a/structtnode.html',1,'']]], + ['trienode_223',['TrieNode',['../da/d9b/struct_trie_node.html',1,'']]] +]; diff --git a/search/classes_f.html b/search/classes_f.html new file mode 100644 index 00000000..fc632916 --- /dev/null +++ b/search/classes_f.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_f.js b/search/classes_f.js new file mode 100644 index 00000000..361053fe --- /dev/null +++ b/search/classes_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['word_5fcount_5fword_224',['word_count_word',['../df/ddb/structword__count__word.html',1,'']]] +]; diff --git a/search/close.png b/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/search/defines_0.html b/search/defines_0.html new file mode 100644 index 00000000..54b9bc59 --- /dev/null +++ b/search/defines_0.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/defines_0.js b/search/defines_0.js new file mode 100644 index 00000000..e75619f5 --- /dev/null +++ b/search/defines_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5fuse_5fmath_5fdefines_368',['_USE_MATH_DEFINES',['../d2/df6/kohonen__som__topology_8c.html#a525335710b53cb064ca56b936120431e',1,'_USE_MATH_DEFINES(): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a525335710b53cb064ca56b936120431e',1,'_USE_MATH_DEFINES(): kohonen_som_trace.c']]] +]; diff --git a/search/defines_1.html b/search/defines_1.html new file mode 100644 index 00000000..024d8be8 --- /dev/null +++ b/search/defines_1.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/defines_1.js b/search/defines_1.js new file mode 100644 index 00000000..aebe2b56 --- /dev/null +++ b/search/defines_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['accuracy_369',['ACCURACY',['../dd/d8c/adaline__learning_8c.html#af270a96662132d0385cb6b4637c5a689',1,'ACCURACY(): adaline_learning.c'],['../da/d38/durand__kerner__roots_8c.html#af270a96662132d0385cb6b4637c5a689',1,'ACCURACY(): durand_kerner_roots.c'],['../dd/d08/newton__raphson__root_8c.html#af270a96662132d0385cb6b4637c5a689',1,'ACCURACY(): newton_raphson_root.c']]] +]; diff --git a/search/defines_2.html b/search/defines_2.html new file mode 100644 index 00000000..9bc69099 --- /dev/null +++ b/search/defines_2.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/defines_2.js b/search/defines_2.js new file mode 100644 index 00000000..970c64d6 --- /dev/null +++ b/search/defines_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['epsilon_370',['EPSILON',['../d7/d50/qr__eigen__values_8c.html#a002b2f4894492820fe708b1b7e7c5e70',1,'qr_eigen_values.c']]] +]; diff --git a/search/defines_3.html b/search/defines_3.html new file mode 100644 index 00000000..7297f2e3 --- /dev/null +++ b/search/defines_3.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/defines_3.js b/search/defines_3.js new file mode 100644 index 00000000..48169e95 --- /dev/null +++ b/search/defines_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['lims_371',['LIMS',['../d7/d50/qr__eigen__values_8c.html#aee57a411f07599034f5ceb8cc7d65b40',1,'qr_eigen_values.c']]] +]; diff --git a/search/defines_4.html b/search/defines_4.html new file mode 100644 index 00000000..9de0a4b6 --- /dev/null +++ b/search/defines_4.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/defines_4.js b/search/defines_4.js new file mode 100644 index 00000000..1a60faf5 --- /dev/null +++ b/search/defines_4.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['max_372',['max',['../d2/df6/kohonen__som__topology_8c.html#affe776513b24d84b39af8ab0930fef7f',1,'max(): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#affe776513b24d84b39af8ab0930fef7f',1,'max(): kohonen_som_trace.c']]], + ['max_5fdeno_373',['MAX_DENO',['../d1/df9/problem__26_2sol1_8c.html#a619eec3220cebd7c5e455edbb14e9b12',1,'sol1.c']]], + ['max_5fdigits_374',['MAX_DIGITS',['../d8/d32/problem__25_2sol1_8c.html#a001791a21d538b8b9176287ae60d9b61',1,'sol1.c']]], + ['max_5fl_375',['MAX_L',['../d4/d83/problem__401_2sol1_8c.html#adf2a0717e3307419a9d7c52707f5631e',1,'sol1.c']]], + ['max_5flen_376',['MAX_LEN',['../d1/df9/problem__26_2sol1_8c.html#aabf4f709c8199e41cf279c77112345fe',1,'sol1.c']]], + ['max_5fname_5flen_377',['MAX_NAME_LEN',['../dd/d8b/problem__22_2sol1_8c.html#afd709f201d7643c3909621f620ea648a',1,'sol1.c']]], + ['max_5fnames_378',['MAX_NAMES',['../dd/d8b/problem__22_2sol1_8c.html#a6cb9b08aacb61416795ee78bfceacd38',1,'sol1.c']]], + ['min_379',['min',['../d2/df6/kohonen__som__topology_8c.html#ac6afabdc09a49a433ee19d8a9486056d',1,'min(): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#ac6afabdc09a49a433ee19d8a9486056d',1,'min(): kohonen_som_trace.c']]], + ['mod_380',['MOD',['../d4/d83/problem__401_2sol1_8c.html#aca7d5718ab8c38506adb3bef2469b319',1,'sol1.c']]] +]; diff --git a/search/defines_5.html b/search/defines_5.html new file mode 100644 index 00000000..e9052833 --- /dev/null +++ b/search/defines_5.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/defines_5.js b/search/defines_5.js new file mode 100644 index 00000000..676d8424 --- /dev/null +++ b/search/defines_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['n_381',['N',['../db/d01/problem__13_2sol1_8c.html#a0240ac851181b84ac374872dc5434ee4',1,'sol1.c']]], + ['n2_382',['N2',['../db/d01/problem__13_2sol1_8c.html#acd864640121c7df2c19f61f7baa507e4',1,'sol1.c']]] +]; diff --git a/search/defines_6.html b/search/defines_6.html new file mode 100644 index 00000000..73b166f0 --- /dev/null +++ b/search/defines_6.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/defines_6.js b/search/defines_6.js new file mode 100644 index 00000000..553a16ae --- /dev/null +++ b/search/defines_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['order_383',['order',['../d4/d07/ode__forward__euler_8c.html#a9ceb646336224ee890a269d0b4600d09',1,'order(): ode_forward_euler.c'],['../d1/dc2/ode__midpoint__euler_8c.html#a9ceb646336224ee890a269d0b4600d09',1,'order(): ode_midpoint_euler.c'],['../d4/d99/ode__semi__implicit__euler_8c.html#a9ceb646336224ee890a269d0b4600d09',1,'order(): ode_semi_implicit_euler.c']]] +]; diff --git a/search/files_0.html b/search/files_0.html new file mode 100644 index 00000000..182d7eb4 --- /dev/null +++ b/search/files_0.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_0.js b/search/files_0.js new file mode 100644 index 00000000..84c98432 --- /dev/null +++ b/search/files_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['adaline_5flearning_2ec_225',['adaline_learning.c',['../dd/d8c/adaline__learning_8c.html',1,'']]] +]; diff --git a/search/files_1.html b/search/files_1.html new file mode 100644 index 00000000..9448113a --- /dev/null +++ b/search/files_1.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_1.js b/search/files_1.js new file mode 100644 index 00000000..f0d89d23 --- /dev/null +++ b/search/files_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['c_5fatoi_5fstr_5fto_5finteger_2ec_226',['c_atoi_str_to_integer.c',['../d7/dd8/c__atoi__str__to__integer_8c.html',1,'']]], + ['collatz_2ec_227',['collatz.c',['../dc/d80/collatz_8c.html',1,'']]] +]; diff --git a/search/files_2.html b/search/files_2.html new file mode 100644 index 00000000..16c12b8c --- /dev/null +++ b/search/files_2.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_2.js b/search/files_2.js new file mode 100644 index 00000000..81ba7f56 --- /dev/null +++ b/search/files_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['durand_5fkerner_5froots_2ec_228',['durand_kerner_roots.c',['../da/d38/durand__kerner__roots_8c.html',1,'']]] +]; diff --git a/search/files_3.html b/search/files_3.html new file mode 100644 index 00000000..d1b79b97 --- /dev/null +++ b/search/files_3.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_3.js b/search/files_3.js new file mode 100644 index 00000000..974b494c --- /dev/null +++ b/search/files_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['factorial_5flarge_5fnumber_2ec_229',['factorial_large_number.c',['../d6/d3d/factorial__large__number_8c.html',1,'']]], + ['fibonacci_5ffast_2ec_230',['fibonacci_fast.c',['../d4/d99/fibonacci__fast_8c.html',1,'']]] +]; diff --git a/search/files_4.html b/search/files_4.html new file mode 100644 index 00000000..6c31a9d0 --- /dev/null +++ b/search/files_4.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_4.js b/search/files_4.js new file mode 100644 index 00000000..be53393f --- /dev/null +++ b/search/files_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['kohonen_5fsom_5ftopology_2ec_231',['kohonen_som_topology.c',['../d2/df6/kohonen__som__topology_8c.html',1,'']]], + ['kohonen_5fsom_5ftrace_2ec_232',['kohonen_som_trace.c',['../d0/d46/kohonen__som__trace_8c.html',1,'']]] +]; diff --git a/search/files_5.html b/search/files_5.html new file mode 100644 index 00000000..2ff64093 --- /dev/null +++ b/search/files_5.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_5.js b/search/files_5.js new file mode 100644 index 00000000..118d739d --- /dev/null +++ b/search/files_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['lu_5fdecompose_2ec_233',['lu_decompose.c',['../dc/d2e/lu__decompose_8c.html',1,'']]] +]; diff --git a/search/files_6.html b/search/files_6.html new file mode 100644 index 00000000..82e6890c --- /dev/null +++ b/search/files_6.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_6.js b/search/files_6.js new file mode 100644 index 00000000..807ac179 --- /dev/null +++ b/search/files_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['newton_5fraphson_5froot_2ec_234',['newton_raphson_root.c',['../dd/d08/newton__raphson__root_8c.html',1,'']]] +]; diff --git a/search/files_7.html b/search/files_7.html new file mode 100644 index 00000000..7ce361d6 --- /dev/null +++ b/search/files_7.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_7.js b/search/files_7.js new file mode 100644 index 00000000..3d8c30a5 --- /dev/null +++ b/search/files_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['ode_5fforward_5feuler_2ec_235',['ode_forward_euler.c',['../d4/d07/ode__forward__euler_8c.html',1,'']]], + ['ode_5fmidpoint_5feuler_2ec_236',['ode_midpoint_euler.c',['../d1/dc2/ode__midpoint__euler_8c.html',1,'']]], + ['ode_5fsemi_5fimplicit_5feuler_2ec_237',['ode_semi_implicit_euler.c',['../d4/d99/ode__semi__implicit__euler_8c.html',1,'']]] +]; diff --git a/search/files_8.html b/search/files_8.html new file mode 100644 index 00000000..49983b8d --- /dev/null +++ b/search/files_8.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_8.js b/search/files_8.js new file mode 100644 index 00000000..3c704ec0 --- /dev/null +++ b/search/files_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['qr_5fdecompose_2eh_238',['qr_decompose.h',['../d4/d68/qr__decompose_8h.html',1,'']]], + ['qr_5fdecomposition_2ec_239',['qr_decomposition.c',['../d5/d23/qr__decomposition_8c.html',1,'']]], + ['qr_5feigen_5fvalues_2ec_240',['qr_eigen_values.c',['../d7/d50/qr__eigen__values_8c.html',1,'']]] +]; diff --git a/search/files_9.html b/search/files_9.html new file mode 100644 index 00000000..7cfea7e8 --- /dev/null +++ b/search/files_9.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_9.js b/search/files_9.js new file mode 100644 index 00000000..887db444 --- /dev/null +++ b/search/files_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['realtime_5fstats_2ec_241',['realtime_stats.c',['../dc/d47/realtime__stats_8c.html',1,'']]] +]; diff --git a/search/files_a.html b/search/files_a.html new file mode 100644 index 00000000..fe811baa --- /dev/null +++ b/search/files_a.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_a.js b/search/files_a.js new file mode 100644 index 00000000..fed154fa --- /dev/null +++ b/search/files_a.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['shell_5fsort2_2ec_242',['shell_sort2.c',['../d6/ded/shell__sort2_8c.html',1,'']]], + ['so1_2ec_243',['so1.c',['../d0/d7f/so1_8c.html',1,'']]], + ['sol_2ec_244',['sol.c',['../d0/d6c/problem__4_2sol_8c.html',1,'(Global Namespace)'],['../df/de7/problem__5_2sol_8c.html',1,'(Global Namespace)'],['../d4/d7b/problem__6_2sol_8c.html',1,'(Global Namespace)'],['../d1/d2f/problem__7_2sol_8c.html',1,'(Global Namespace)']]], + ['sol1_2ec_245',['sol1.c',['../da/d35/problem__1_2sol1_8c.html',1,'(Global Namespace)'],['../d0/d6d/problem__10_2sol1_8c.html',1,'(Global Namespace)'],['../d7/d1f/problem__12_2sol1_8c.html',1,'(Global Namespace)'],['../db/d01/problem__13_2sol1_8c.html',1,'(Global Namespace)'],['../d4/dea/problem__14_2sol1_8c.html',1,'(Global Namespace)'],['../d7/d91/problem__15_2sol1_8c.html',1,'(Global Namespace)'],['../d6/d88/problem__16_2sol1_8c.html',1,'(Global Namespace)'],['../dd/df0/problem__19_2sol1_8c.html',1,'(Global Namespace)'],['../db/d80/problem__20_2sol1_8c.html',1,'(Global Namespace)'],['../df/d1a/problem__21_2sol1_8c.html',1,'(Global Namespace)'],['../dd/d8b/problem__22_2sol1_8c.html',1,'(Global Namespace)'],['../d7/ddb/problem__23_2sol1_8c.html',1,'(Global Namespace)'],['../d8/d32/problem__25_2sol1_8c.html',1,'(Global Namespace)'],['../d1/df9/problem__26_2sol1_8c.html',1,'(Global Namespace)'],['../d7/dd3/problem__3_2sol1_8c.html',1,'(Global Namespace)'],['../d4/d83/problem__401_2sol1_8c.html',1,'(Global Namespace)'],['../dc/d63/problem__8_2sol1_8c.html',1,'(Global Namespace)'],['../df/da5/problem__9_2sol1_8c.html',1,'(Global Namespace)']]], + ['sol2_2ec_246',['sol2.c',['../d2/dae/problem__1_2sol2_8c.html',1,'(Global Namespace)'],['../d9/da7/problem__10_2sol2_8c.html',1,'(Global Namespace)'],['../d4/dbd/problem__23_2sol2_8c.html',1,'(Global Namespace)'],['../d2/dbc/problem__3_2sol2_8c.html',1,'(Global Namespace)'],['../d2/d93/problem__8_2sol2_8c.html',1,'(Global Namespace)'],['../d8/de0/problem__9_2sol2_8c.html',1,'(Global Namespace)']]], + ['sol3_2ec_247',['sol3.c',['../d6/de3/sol3_8c.html',1,'']]], + ['sol4_2ec_248',['sol4.c',['../d6/d1b/sol4_8c.html',1,'']]] +]; diff --git a/search/files_b.html b/search/files_b.html new file mode 100644 index 00000000..d6bdab86 --- /dev/null +++ b/search/files_b.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_b.js b/search/files_b.js new file mode 100644 index 00000000..1b2f8597 --- /dev/null +++ b/search/files_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['threaded_5fbinary_5ftrees_2ec_249',['threaded_binary_trees.c',['../df/d3c/threaded__binary__trees_8c.html',1,'']]] +]; diff --git a/search/functions_0.html b/search/functions_0.html new file mode 100644 index 00000000..4fcbb9cf --- /dev/null +++ b/search/functions_0.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 00000000..940a622e --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5frandom_250',['_random',['../d2/df6/kohonen__som__topology_8c.html#af5ce14f026d6d231bef29161bac2b485',1,'_random(double a, double b): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#af5ce14f026d6d231bef29161bac2b485',1,'_random(double a, double b): kohonen_som_trace.c']]] +]; diff --git a/search/functions_1.html b/search/functions_1.html new file mode 100644 index 00000000..9b0e1f0f --- /dev/null +++ b/search/functions_1.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 00000000..2f3cd515 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['activation_251',['activation',['../dd/d8c/adaline__learning_8c.html#a7b12b6513314c975303b5a698608322f',1,'adaline_learning.c']]], + ['add_5fdigit_252',['add_digit',['../d6/d3d/factorial__large__number_8c.html#af2869d36c22a2b8f93d3166a84e124b3',1,'add_digit(large_num *num, unsigned int value): factorial_large_number.c'],['../db/d80/problem__20_2sol1_8c.html#afc373c28da6b17636528edcc97fb5f86',1,'add_digit(big_int *digit, char value): sol1.c']]], + ['add_5fnumbers_253',['add_numbers',['../db/d01/problem__13_2sol1_8c.html#ad51742ca5a5c99e860bdf30299163bf2',1,'add_numbers(uint8_t *a, uint8_t *b, uint8_t N): sol1.c'],['../d8/d32/problem__25_2sol1_8c.html#af9729befaffc1aab9ac9fedc4706e66c',1,'add_numbers(unsigned char *a, unsigned char *b, unsigned char *c, int N): sol1.c']]] +]; diff --git a/search/functions_10.html b/search/functions_10.html new file mode 100644 index 00000000..7a7a4449 --- /dev/null +++ b/search/functions_10.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_10.js b/search/functions_10.js new file mode 100644 index 00000000..8a30fcf6 --- /dev/null +++ b/search/functions_10.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['test1_334',['test1',['../dd/d8c/adaline__learning_8c.html#ab4ecb3accf5d9e0263087e7265bbe3a9',1,'test1(double eta): adaline_learning.c'],['../d2/df6/kohonen__som__topology_8c.html#a1440a7779ac56f47a3f355ce4a8c7da0',1,'test1(): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a1440a7779ac56f47a3f355ce4a8c7da0',1,'test1(): kohonen_som_trace.c'],['../d7/d50/qr__eigen__values_8c.html#a1440a7779ac56f47a3f355ce4a8c7da0',1,'test1(): qr_eigen_values.c']]], + ['test2_335',['test2',['../dd/d8c/adaline__learning_8c.html#a05cc9a0acb524fde727a4d7b4a747ee6',1,'test2(double eta): adaline_learning.c'],['../d2/df6/kohonen__som__topology_8c.html#a0283886819c7c140a023582b7269e2d0',1,'test2(): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a0283886819c7c140a023582b7269e2d0',1,'test2(): kohonen_som_trace.c'],['../d7/d50/qr__eigen__values_8c.html#a0283886819c7c140a023582b7269e2d0',1,'test2(): qr_eigen_values.c']]], + ['test3_336',['test3',['../dd/d8c/adaline__learning_8c.html#a3f37b9f073f7e57fd0b39d70718af1b1',1,'test3(double eta): adaline_learning.c'],['../d2/df6/kohonen__som__topology_8c.html#a6d0455dd5c30adda100e95f0423c786e',1,'test3(): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a6d0455dd5c30adda100e95f0423c786e',1,'test3(): kohonen_som_trace.c']]], + ['test_5f2d_5fclasses_337',['test_2d_classes',['../d2/df6/kohonen__som__topology_8c.html#adb5ded007be1fd666fab9affe6764018',1,'kohonen_som_topology.c']]], + ['test_5f3d_5fclasses_338',['test_3d_classes',['../d0/d46/kohonen__som__trace_8c.html#a41ae16442e3e5b891a58d2e5932a2cd0',1,'kohonen_som_trace.c']]], + ['test_5f3d_5fclasses1_339',['test_3d_classes1',['../d2/df6/kohonen__som__topology_8c.html#ad9e25202bb8b481461f932668f249dbc',1,'kohonen_som_topology.c']]], + ['test_5f3d_5fclasses2_340',['test_3d_classes2',['../d2/df6/kohonen__som__topology_8c.html#a5bb02a8322d717ead1b11182c5f02a3a',1,'kohonen_som_topology.c']]], + ['test_5fc_5fatoi_341',['test_c_atoi',['../d7/dd8/c__atoi__str__to__integer_8c.html#abef225390e0b6e84ddfcb18fe573d9c5',1,'c_atoi_str_to_integer.c']]], + ['test_5fcircle_342',['test_circle',['../d0/d46/kohonen__som__trace_8c.html#a107f00650b8041f77767927073ddddb8',1,'kohonen_som_trace.c']]], + ['test_5ffunction_343',['test_function',['../dc/d47/realtime__stats_8c.html#aa54c915581fcc495489175a4386d59fd',1,'realtime_stats.c']]], + ['test_5flamniscate_344',['test_lamniscate',['../d0/d46/kohonen__som__trace_8c.html#aa2246f940155472084ee461f3685d614',1,'kohonen_som_trace.c']]] +]; diff --git a/search/functions_11.html b/search/functions_11.html new file mode 100644 index 00000000..e77ce3b2 --- /dev/null +++ b/search/functions_11.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_11.js b/search/functions_11.js new file mode 100644 index 00000000..660a19d8 --- /dev/null +++ b/search/functions_11.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['update_5fweights_345',['update_weights',['../d2/df6/kohonen__som__topology_8c.html#ad139de302fa8135a433d9c1bf971b13b',1,'update_weights(const double *X, struct array_3d *W, double **D, int num_out, int num_features, double alpha, int R): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a9c98203f55242ff7a8f45a6370840e66',1,'update_weights(double const *x, double *const *W, double *D, int num_out, int num_features, double alpha, int R): kohonen_som_trace.c']]] +]; diff --git a/search/functions_12.html b/search/functions_12.html new file mode 100644 index 00000000..f6419149 --- /dev/null +++ b/search/functions_12.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_12.js b/search/functions_12.js new file mode 100644 index 00000000..e6a9f9c2 --- /dev/null +++ b/search/functions_12.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['vector_5fdot_346',['vector_dot',['../d4/d68/qr__decompose_8h.html#a3a584b79941a43d775f9d4ce446dbe05',1,'qr_decompose.h']]], + ['vector_5fmag_347',['vector_mag',['../d4/d68/qr__decompose_8h.html#abeec1f78a7a7e7251687e75340331212',1,'qr_decompose.h']]], + ['vector_5fproj_348',['vector_proj',['../d4/d68/qr__decompose_8h.html#a82b20e027437df768d7e994cf4cae29f',1,'qr_decompose.h']]], + ['vector_5fsub_349',['vector_sub',['../d4/d68/qr__decompose_8h.html#a6b6a0e75e75ff7919057dd275bb69145',1,'qr_decompose.h']]] +]; diff --git a/search/functions_2.html b/search/functions_2.html new file mode 100644 index 00000000..eb51f809 --- /dev/null +++ b/search/functions_2.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 00000000..fce6ddd3 --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['c_5fatoi_254',['c_atoi',['../d7/dd8/c__atoi__str__to__integer_8c.html#ad19049ebfc2088bc1e75e7e958f7b60f',1,'c_atoi_str_to_integer.c']]], + ['check_5ftermination_255',['check_termination',['../da/d38/durand__kerner__roots_8c.html#a26d5695ebed0818a3e7cf4b10aacab52',1,'durand_kerner_roots.c']]], + ['collatz_256',['collatz',['../d4/dea/problem__14_2sol1_8c.html#a81c1df5c17cb16bcc16e346fcff6fa80',1,'sol1.c']]], + ['compare_257',['compare',['../d1/df9/problem__26_2sol1_8c.html#ac70138609ef6aa6fabca57aca8681e83',1,'sol1.c']]], + ['complex_5fstr_258',['complex_str',['../da/d38/durand__kerner__roots_8c.html#afa5b04ce11475d67049cba8273741fb7',1,'durand_kerner_roots.c']]], + ['count_5fdivisors_259',['count_divisors',['../d7/d1f/problem__12_2sol1_8c.html#aa6ce6271f6156e219f9b290717f5a222',1,'sol1.c']]], + ['create_5fmatrix_260',['create_matrix',['../d7/d50/qr__eigen__values_8c.html#a7d96c5e4ae1bd6d29791bcc23a4cb2b0',1,'qr_eigen_values.c']]], + ['create_5fnode_261',['create_node',['../df/d3c/threaded__binary__trees_8c.html#ab21d1d36d95001defbca2f6abd4d410c',1,'threaded_binary_trees.c']]] +]; diff --git a/search/functions_3.html b/search/functions_3.html new file mode 100644 index 00000000..e53b9d01 --- /dev/null +++ b/search/functions_3.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 00000000..26acc6d7 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['d_5ffunc_262',['d_func',['../dd/d08/newton__raphson__root_8c.html#ae713a1fd0c275fbec7edf263ac2c0337',1,'newton_raphson_root.c']]], + ['data_5f3d_263',['data_3d',['../d2/df6/kohonen__som__topology_8c.html#a7237d2cf3b3f9d034477268c1d6631da',1,'kohonen_som_topology.c']]], + ['delete_5fadaline_264',['delete_adaline',['../dd/d8c/adaline__learning_8c.html#a6f35caa3084772cc126ac7b20f67f665',1,'adaline_learning.c']]], + ['delete_5fbt_265',['delete_bt',['../df/d3c/threaded__binary__trees_8c.html#a284d683f74b6c884e79ba00d3d1c3317',1,'threaded_binary_trees.c']]], + ['delete_5fnumber_266',['delete_number',['../d6/d3d/factorial__large__number_8c.html#ab5c854e0df76165c31899e69eceeeaae',1,'factorial_large_number.c']]], + ['display_267',['display',['../dc/d2e/lu__decompose_8c.html#a0789beb8d3396582d77b7aedf5e5554a',1,'lu_decompose.c']]] +]; diff --git a/search/functions_4.html b/search/functions_4.html new file mode 100644 index 00000000..d049621b --- /dev/null +++ b/search/functions_4.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 00000000..7365a179 --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['eigen_5fvalues_268',['eigen_values',['../d7/d50/qr__eigen__values_8c.html#a0d8ed79786d17df48396b333c09d05bb',1,'qr_eigen_values.c']]], + ['exact_5fsolution_269',['exact_solution',['../d4/d07/ode__forward__euler_8c.html#a8caee977b26888d34040b122e0e28e3a',1,'exact_solution(const double *x, double *y): ode_forward_euler.c'],['../d1/dc2/ode__midpoint__euler_8c.html#a8caee977b26888d34040b122e0e28e3a',1,'exact_solution(const double *x, double *y): ode_midpoint_euler.c'],['../d4/d99/ode__semi__implicit__euler_8c.html#a8caee977b26888d34040b122e0e28e3a',1,'exact_solution(const double *x, double *y): ode_semi_implicit_euler.c']]] +]; diff --git a/search/functions_5.html b/search/functions_5.html new file mode 100644 index 00000000..342487bc --- /dev/null +++ b/search/functions_5.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 00000000..e132a879 --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['fib_270',['fib',['../d4/d99/fibonacci__fast_8c.html#a7a3d55bd19854075cba2eed6b63cb2d3',1,'fibonacci_fast.c']]], + ['fit_271',['fit',['../dd/d8c/adaline__learning_8c.html#a355fda53c238a0c0c07f03dcc021caed',1,'adaline_learning.c']]], + ['fit_5fsample_272',['fit_sample',['../dd/d8c/adaline__learning_8c.html#afa953e811eaae199d121a7ddb619d604',1,'adaline_learning.c']]], + ['forward_5feuler_273',['forward_euler',['../d4/d07/ode__forward__euler_8c.html#aaf88ad8f9f7c39fc38f3f03d6fea9df9',1,'ode_forward_euler.c']]], + ['forward_5feuler_5fstep_274',['forward_euler_step',['../d4/d07/ode__forward__euler_8c.html#ae6c9413953c8d9d4bc9e374b29586350',1,'ode_forward_euler.c']]], + ['func_275',['func',['../dd/d08/newton__raphson__root_8c.html#a72f87d423a488946b319627a454d3925',1,'newton_raphson_root.c']]] +]; diff --git a/search/functions_6.html b/search/functions_6.html new file mode 100644 index 00000000..4bf3bd63 --- /dev/null +++ b/search/functions_6.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 00000000..8ff2fe3f --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['gcd_276',['gcd',['../df/de7/problem__5_2sol_8c.html#a59347107cbfdf48d51108e50280e760d',1,'sol.c']]], + ['get_5fclock_5fdiff_277',['get_clock_diff',['../d2/df6/kohonen__som__topology_8c.html#a2256c10b16edba377b64a44b6c656908',1,'get_clock_diff(clock_t start_t, clock_t end_t): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a2256c10b16edba377b64a44b6c656908',1,'get_clock_diff(clock_t start_t, clock_t end_t): kohonen_som_trace.c']]], + ['get_5fdigits_278',['get_digits',['../d8/d32/problem__25_2sol1_8c.html#a2b90df6bfbf0d18cd9a19c1a71453783',1,'sol1.c']]], + ['get_5fdivisors_279',['get_divisors',['../d4/d83/problem__401_2sol1_8c.html#a7380e14d595d560007b02ce516b6b215',1,'sol1.c']]], + ['get_5fmin_5f1d_280',['get_min_1d',['../d0/d46/kohonen__som__trace_8c.html#a0a292ebd954c568934b1fd06666d27e6',1,'kohonen_som_trace.c']]], + ['get_5fmin_5f2d_281',['get_min_2d',['../d2/df6/kohonen__som__topology_8c.html#adc22d512c00a9f5799ee067f4fb90b4b',1,'kohonen_som_topology.c']]], + ['get_5fmonth_5fdays_282',['get_month_days',['../dd/df0/problem__19_2sol1_8c.html#ab7f9ad087f124b8e0615aa535b4c8a75',1,'sol1.c']]], + ['get_5fnext_5fabundant_283',['get_next_abundant',['../d7/ddb/problem__23_2sol1_8c.html#ac5d600bf3077f4188afc4c5cd2c40eaf',1,'get_next_abundant(unsigned long N): sol1.c'],['../d4/dbd/problem__23_2sol2_8c.html#ac5d600bf3077f4188afc4c5cd2c40eaf',1,'get_next_abundant(unsigned long N): sol2.c']]], + ['get_5fnumber_284',['get_number',['../db/d01/problem__13_2sol1_8c.html#ac260f58785fb20eb09bb35385a7d47f8',1,'sol1.c']]], + ['get_5fperfect_5fnumber_285',['get_perfect_number',['../d7/ddb/problem__23_2sol1_8c.html#a1aca7f530f82b27100262adba9e7556b',1,'get_perfect_number(unsigned long N): sol1.c'],['../d4/dbd/problem__23_2sol2_8c.html#a1aca7f530f82b27100262adba9e7556b',1,'get_perfect_number(unsigned long N): sol2.c']]], + ['get_5fproduct_286',['get_product',['../dc/d63/problem__8_2sol1_8c.html#a9ffc8845f17b01a353767a40a3adf7bd',1,'sol1.c']]], + ['get_5fweights_5fstr_287',['get_weights_str',['../dd/d8c/adaline__learning_8c.html#a00dc6134ca22a12e0fd9cac54d601c2d',1,'adaline_learning.c']]] +]; diff --git a/search/functions_7.html b/search/functions_7.html new file mode 100644 index 00000000..d7ad9dd8 --- /dev/null +++ b/search/functions_7.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 00000000..cb9c5051 --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['inorder_5fdisplay_288',['inorder_display',['../df/d3c/threaded__binary__trees_8c.html#a4c1e06b5f0876ec9c1bd6817f3b7eda7',1,'threaded_binary_trees.c']]], + ['insert_5fbt_289',['insert_bt',['../df/d3c/threaded__binary__trees_8c.html#a823432888332fc9f0aa6072cff28c3bb',1,'threaded_binary_trees.c']]], + ['is_5fabundant_290',['is_abundant',['../d7/ddb/problem__23_2sol1_8c.html#a4f128410e6582fe26488e2316cc96e17',1,'is_abundant(unsigned long N): sol1.c'],['../d4/dbd/problem__23_2sol2_8c.html#a34f4ad85151e3a43368ae67f42347f56',1,'is_abundant(unsigned long N): sol2.c']]], + ['is_5fin_291',['is_in',['../d4/d83/problem__401_2sol1_8c.html#a4441a6d27134cf3aed05727800d99456',1,'sol1.c']]], + ['is_5fleap_5fyear_292',['is_leap_year',['../dd/df0/problem__19_2sol1_8c.html#a6561b1adc8a19c092679b9874da24e2e',1,'sol1.c']]], + ['is_5fpalindromic_293',['is_palindromic',['../d0/d6c/problem__4_2sol_8c.html#adf9bea8d35848959bde5b3f277edf0c4',1,'sol.c']]], + ['is_5fprime_294',['is_prime',['../d0/d6d/problem__10_2sol1_8c.html#acc871ab6bfead702e983a7f9c412915f',1,'sol1.c']]], + ['is_5fsum_5fof_5fabundant_295',['is_sum_of_abundant',['../d7/ddb/problem__23_2sol1_8c.html#a3ab61b5a1c4f2288625d160aa0ea8478',1,'is_sum_of_abundant(unsigned long N): sol1.c'],['../d4/dbd/problem__23_2sol2_8c.html#a3ab61b5a1c4f2288625d160aa0ea8478',1,'is_sum_of_abundant(unsigned long N): sol2.c']]], + ['isprime_296',['isprime',['../d7/dd3/problem__3_2sol1_8c.html#aa0f4796aa2e89c327f827bd55f5cb305',1,'sol1.c']]] +]; diff --git a/search/functions_8.html b/search/functions_8.html new file mode 100644 index 00000000..8600cab5 --- /dev/null +++ b/search/functions_8.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 00000000..82c8ba60 --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['kohonen_5fsom_297',['kohonen_som',['../d2/df6/kohonen__som__topology_8c.html#a1983dc0f35e734015772e9f8c0ff19f5',1,'kohonen_som_topology.c']]], + ['kohonen_5fsom_5ftracer_298',['kohonen_som_tracer',['../d0/d46/kohonen__som__trace_8c.html#aeaeffbff2be4d5d15b0d4f10f846abde',1,'kohonen_som_trace.c']]] +]; diff --git a/search/functions_9.html b/search/functions_9.html new file mode 100644 index 00000000..76e3e2ca --- /dev/null +++ b/search/functions_9.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 00000000..5d12979c --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['lazy_5fsort_299',['lazy_sort',['../dd/d8b/problem__22_2sol1_8c.html#ae359b8a4656b164c91ef91a084c15c9d',1,'sol1.c']]], + ['lcm_300',['lcm',['../df/de7/problem__5_2sol_8c.html#ae9606f1867e9921867d6572f51377b4c',1,'sol.c']]], + ['lu_5fdecomposition_301',['lu_decomposition',['../dc/d2e/lu__decompose_8c.html#aae40b90a8efd645c749128cf8072bbb4',1,'lu_decompose.c']]] +]; diff --git a/search/functions_a.html b/search/functions_a.html new file mode 100644 index 00000000..81836b95 --- /dev/null +++ b/search/functions_a.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 00000000..4d2f00c0 --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['main_302',['main',['../d7/dd8/c__atoi__str__to__integer_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): c_atoi_str_to_integer.c'],['../df/d3c/threaded__binary__trees_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): threaded_binary_trees.c'],['../dd/d8c/adaline__learning_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): adaline_learning.c'],['../d2/df6/kohonen__som__topology_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): kohonen_som_topology.c'],['../d0/d46/kohonen__som__trace_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): kohonen_som_trace.c'],['../dc/d80/collatz_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): collatz.c'],['../d6/d3d/factorial__large__number_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): factorial_large_number.c'],['../d4/d99/fibonacci__fast_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): fibonacci_fast.c'],['../da/d38/durand__kerner__roots_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): durand_kerner_roots.c'],['../dc/d2e/lu__decompose_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): lu_decompose.c'],['../dd/d08/newton__raphson__root_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): newton_raphson_root.c'],['../d4/d07/ode__forward__euler_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): ode_forward_euler.c'],['../d1/dc2/ode__midpoint__euler_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): ode_midpoint_euler.c'],['../d4/d99/ode__semi__implicit__euler_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): ode_semi_implicit_euler.c'],['../d5/d23/qr__decomposition_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): qr_decomposition.c'],['../d7/d50/qr__eigen__values_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): qr_eigen_values.c'],['../dc/d47/realtime__stats_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): realtime_stats.c'],['../da/d35/problem__1_2sol1_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): sol1.c'],['../d2/dae/problem__1_2sol2_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): sol2.c'],['../d6/de3/sol3_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): sol3.c'],['../d6/d1b/sol4_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): sol4.c'],['../d0/d6d/problem__10_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): sol1.c'],['../d9/da7/problem__10_2sol2_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): sol2.c'],['../d7/d1f/problem__12_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../db/d01/problem__13_2sol1_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol1.c'],['../d4/dea/problem__14_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../d7/d91/problem__15_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../d6/d88/problem__16_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../dd/df0/problem__19_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../d0/d7f/so1_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): so1.c'],['../db/d80/problem__20_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../df/d1a/problem__21_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../dd/d8b/problem__22_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../d7/ddb/problem__23_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../d4/dbd/problem__23_2sol2_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol2.c'],['../d8/d32/problem__25_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): sol1.c'],['../d1/df9/problem__26_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): sol1.c'],['../d7/dd3/problem__3_2sol1_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): sol1.c'],['../d2/dbc/problem__3_2sol2_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main(): sol2.c'],['../d0/d6c/problem__4_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol.c'],['../d4/d83/problem__401_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): sol1.c'],['../df/de7/problem__5_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol.c'],['../d4/d7b/problem__6_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol.c'],['../d1/d2f/problem__7_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol.c'],['../dc/d63/problem__8_2sol1_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): sol1.c'],['../d2/d93/problem__8_2sol2_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): sol2.c'],['../df/da5/problem__9_2sol1_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol1.c'],['../d8/de0/problem__9_2sol2_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main(void): sol2.c'],['../d6/ded/shell__sort2_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): shell_sort2.c']]], + ['mat_5fmul_303',['mat_mul',['../d7/d50/qr__eigen__values_8c.html#a741477692f001a805b0fea942c9dc2b9',1,'qr_eigen_values.c']]], + ['midpoint_5feuler_304',['midpoint_euler',['../d1/dc2/ode__midpoint__euler_8c.html#a148003d8b261d040c1c41e73b40af1dd',1,'ode_midpoint_euler.c']]], + ['midpoint_5feuler_5fstep_305',['midpoint_euler_step',['../d1/dc2/ode__midpoint__euler_8c.html#affe6cc2ab040b94a29e6c41782f72d51',1,'ode_midpoint_euler.c']]], + ['multiply_306',['multiply',['../d6/d3d/factorial__large__number_8c.html#ad398ddbd594ca69a5e6dfc894925341e',1,'factorial_large_number.c']]] +]; diff --git a/search/functions_b.html b/search/functions_b.html new file mode 100644 index 00000000..8c270d25 --- /dev/null +++ b/search/functions_b.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_b.js b/search/functions_b.js new file mode 100644 index 00000000..9c523cf0 --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['new_5fadaline_307',['new_adaline',['../dd/d8c/adaline__learning_8c.html#acd88962c5f6341e43cbc69b4a7d3485b',1,'adaline_learning.c']]], + ['new_5fnumber_308',['new_number',['../d6/d3d/factorial__large__number_8c.html#ad8101f58545bd891ae8b6e11caadd7eb',1,'factorial_large_number.c']]], + ['number_5fof_5fpaths_309',['number_of_paths',['../d7/d91/problem__15_2sol1_8c.html#a4650d1d3897633d84253f93433f601d6',1,'sol1.c']]] +]; diff --git a/search/functions_c.html b/search/functions_c.html new file mode 100644 index 00000000..af1234d0 --- /dev/null +++ b/search/functions_c.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_c.js b/search/functions_c.js new file mode 100644 index 00000000..6c037e33 --- /dev/null +++ b/search/functions_c.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['poly_5ffunction_310',['poly_function',['../da/d38/durand__kerner__roots_8c.html#adf4ae062a028c6faf2b96c9c1eb343af',1,'durand_kerner_roots.c']]], + ['postorder_5fdisplay_311',['postorder_display',['../df/d3c/threaded__binary__trees_8c.html#a5a82ae0ee13788be51ca4ba6cddb0719',1,'threaded_binary_trees.c']]], + ['predict_312',['predict',['../dd/d8c/adaline__learning_8c.html#a4db1ba00a7f282100ea31a94e32bd7a3',1,'adaline_learning.c']]], + ['preorder_5fdisplay_313',['preorder_display',['../df/d3c/threaded__binary__trees_8c.html#a8169ba0dfd5b8183672e444d1434bf9c',1,'threaded_binary_trees.c']]], + ['print_5fmatrix_314',['print_matrix',['../d4/d68/qr__decompose_8h.html#a90562ce8c3707401e9c5809dece68d6a',1,'qr_decompose.h']]], + ['print_5fnumber_315',['print_number',['../db/d01/problem__13_2sol1_8c.html#a248adc917818cc6666d8bc679a660319',1,'print_number(uint8_t *number, uint8_t N, int8_t num_digits_to_print): sol1.c'],['../d8/d32/problem__25_2sol1_8c.html#abe5bc1f170b2108a19d0a16d30bd3235',1,'print_number(unsigned char *number, int N): sol1.c']]], + ['problem_316',['problem',['../d4/d07/ode__forward__euler_8c.html#a97075291390a68c262ed66e157a57eb4',1,'problem(const double *x, double *y, double *dy): ode_forward_euler.c'],['../d1/dc2/ode__midpoint__euler_8c.html#a97075291390a68c262ed66e157a57eb4',1,'problem(const double *x, double *y, double *dy): ode_midpoint_euler.c'],['../d4/d99/ode__semi__implicit__euler_8c.html#a97075291390a68c262ed66e157a57eb4',1,'problem(const double *x, double *y, double *dy): ode_semi_implicit_euler.c']]] +]; diff --git a/search/functions_d.html b/search/functions_d.html new file mode 100644 index 00000000..71165945 --- /dev/null +++ b/search/functions_d.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_d.js b/search/functions_d.js new file mode 100644 index 00000000..79065e59 --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['qr_5fdecompose_317',['qr_decompose',['../d4/d68/qr__decompose_8h.html#a45c7640d9d22c89c11beb1f567843c56',1,'qr_decompose.h']]] +]; diff --git a/search/functions_e.html b/search/functions_e.html new file mode 100644 index 00000000..705e3de1 --- /dev/null +++ b/search/functions_e.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_e.js b/search/functions_e.js new file mode 100644 index 00000000..82850cd7 --- /dev/null +++ b/search/functions_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['remove_5fdigits_318',['remove_digits',['../db/d80/problem__20_2sol1_8c.html#a54a02c4b963fdb16f24959e0137763f1',1,'sol1.c']]] +]; diff --git a/search/functions_f.html b/search/functions_f.html new file mode 100644 index 00000000..7de862ca --- /dev/null +++ b/search/functions_f.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_f.js b/search/functions_f.js new file mode 100644 index 00000000..31207a76 --- /dev/null +++ b/search/functions_f.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['save_5f2d_5fdata_319',['save_2d_data',['../d2/df6/kohonen__som__topology_8c.html#a6824dc6d973eb3339af7aef5fea78b0c',1,'kohonen_som_topology.c']]], + ['save_5fnd_5fdata_320',['save_nd_data',['../d0/d46/kohonen__som__trace_8c.html#a7b84b14e60f47812b581d1f93057c85a',1,'kohonen_som_trace.c']]], + ['save_5fu_5fmatrix_321',['save_u_matrix',['../d2/df6/kohonen__som__topology_8c.html#adee1bc3871c881f6e04cb9e0b1d01158',1,'kohonen_som_topology.c']]], + ['search_322',['search',['../df/d3c/threaded__binary__trees_8c.html#a306d567466f22e1e927aaed97d8bb58c',1,'threaded_binary_trees.c']]], + ['semi_5fimplicit_5feuler_323',['semi_implicit_euler',['../d4/d99/ode__semi__implicit__euler_8c.html#ad80059877222f885b549f2d0a3dc6b55',1,'ode_semi_implicit_euler.c']]], + ['semi_5fimplicit_5feuler_5fstep_324',['semi_implicit_euler_step',['../d4/d99/ode__semi__implicit__euler_8c.html#a720b7e995d2bbc615f94a2c7dbcf84eb',1,'ode_semi_implicit_euler.c']]], + ['shell_5fsort_325',['shell_sort',['../dd/d8b/problem__22_2sol1_8c.html#a5bc3659aa0949ea33118c95b1dee5f63',1,'shell_sort(char data[][MAX_NAME_LEN], int LEN): sol1.c'],['../d6/ded/shell__sort2_8c.html#a5bc16eaf3ffe6a6ab66780dd445904c0',1,'shell_sort(int *array, long LEN): shell_sort2.c']]], + ['show_5fdata_326',['show_data',['../d6/ded/shell__sort2_8c.html#aeccaf61ff47279384d1dba8d869d5c2f',1,'shell_sort2.c']]], + ['sigma_327',['sigma',['../d4/d83/problem__401_2sol1_8c.html#aaf964739be92adc2f500e7da11e3f6be',1,'sol1.c']]], + ['sigma2_328',['sigma2',['../d4/d83/problem__401_2sol1_8c.html#a236548478af932f1115a71f601a68788',1,'sol1.c']]], + ['stats_5fcomputer1_329',['stats_computer1',['../dc/d47/realtime__stats_8c.html#a63ddcdaab24f722f0963fa2fbe0ae628',1,'realtime_stats.c']]], + ['stats_5fcomputer2_330',['stats_computer2',['../dc/d47/realtime__stats_8c.html#a34be233a9200ee2065f6b7b27e2d9a96',1,'realtime_stats.c']]], + ['sum_5fof_5fdivisors_331',['sum_of_divisors',['../df/d1a/problem__21_2sol1_8c.html#aacf4b7e708651d2164e86958f2c29c93',1,'sol1.c']]], + ['sum_5fof_5fprimes_332',['sum_of_primes',['../d0/d6d/problem__10_2sol1_8c.html#ae3d987cb2ad0ddb0c3caa4c2506a20e5',1,'sol1.c']]], + ['swap_333',['swap',['../d6/ded/shell__sort2_8c.html#a4b9708d87be7a409eff20e5e7e8b43c8',1,'shell_sort2.c']]] +]; diff --git a/search/mag_sel.png b/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..39c0ed52a25dd9d080ee0d42ae6c6042bdfa04d7 GIT binary patch literal 465 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz6!2%?$TA$hhDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~NU84L`?eGCi_EEpJ?t}-xGu`@87+QPtK?83kxQ`TapwHK(CDaqU2h2ejD|C#+j z9%q3^WHAE+w=f7ZGR&GI0Tg5}@$_|Nf5gMiEhFgvHvB$N=!mC_V~EE2vzPXI9ZnEo zd+1zHor@dYLod2Y{ z@R$7$Z!PXTbY$|@#T!bMzm?`b<(R`cbw(gxJHzu zB$lLFB^RXvDF!10LknF)BV7aY5JN*NBMU1-b8Q0yD+2>vd*|CI8glbfGSez?Ylunu RoetE%;OXk;vd$@?2>>CYplSdB literal 0 HcmV?d00001 diff --git a/search/nomatches.html b/search/nomatches.html new file mode 100644 index 00000000..43773208 --- /dev/null +++ b/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/search/pages_0.html b/search/pages_0.html new file mode 100644 index 00000000..ca7755f4 --- /dev/null +++ b/search/pages_0.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 00000000..f9dd52dc --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['array_384',['Array',['../d9/d41/md_data_structures_array__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/search/pages_1.html b/search/pages_1.html new file mode 100644 index 00000000..4e469b4a --- /dev/null +++ b/search/pages_1.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_1.js b/search/pages_1.js new file mode 100644 index 00000000..e28a90a8 --- /dev/null +++ b/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['code_20style_20convention_385',['Code style convention',['../dc/d64/md__coding_guidelines.html',1,'']]] +]; diff --git a/search/pages_2.html b/search/pages_2.html new file mode 100644 index 00000000..70291530 --- /dev/null +++ b/search/pages_2.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_2.js b/search/pages_2.js new file mode 100644 index 00000000..6a86771e --- /dev/null +++ b/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['dictionary_386',['Dictionary',['../de/d20/md_data_structures_dictionary__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/search/pages_3.html b/search/pages_3.html new file mode 100644 index 00000000..fce1ba40 --- /dev/null +++ b/search/pages_3.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_3.js b/search/pages_3.js new file mode 100644 index 00000000..cb8a0fe0 --- /dev/null +++ b/search/pages_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hash_20algorithms_387',['Hash algorithms',['../d4/dcb/md_hash__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/search/pages_4.html b/search/pages_4.html new file mode 100644 index 00000000..63038297 --- /dev/null +++ b/search/pages_4.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_4.js b/search/pages_4.js new file mode 100644 index 00000000..4c477dc0 --- /dev/null +++ b/search/pages_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['list_20of_20all_20files_388',['List of all files',['../d5/d88/md__d_i_r_e_c_t_o_r_y.html',1,'']]], + ['leetcode_389',['LeetCode',['../df/d58/md_leetcode__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/search/pages_5.html b/search/pages_5.html new file mode 100644 index 00000000..adf59e2a --- /dev/null +++ b/search/pages_5.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_5.js b/search/pages_5.js new file mode 100644 index 00000000..1e8e35f1 --- /dev/null +++ b/search/pages_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['projecteuler_390',['ProjectEuler',['../d8/d81/md_project_euler__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/search/pages_6.html b/search/pages_6.html new file mode 100644 index 00000000..575871bb --- /dev/null +++ b/search/pages_6.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_6.js b/search/pages_6.js new file mode 100644 index 00000000..b1023bc3 --- /dev/null +++ b/search/pages_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['simple_20generic_20stack_391',['Simple generic Stack',['../d1/d12/md_data_structures_stack__r_e_a_d_m_e.html',1,'']]], + ['sample_20solutions_20for_20_3ca_20href_3d_22http_3a_2f_2fexercism_2eio_2f_22_3eexercism_2eio_3c_2fa_3e_392',['Sample solutions for <a href="http://exercism.io/">exercism.io</a>',['../d7/db5/md_exercism__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/search/pages_7.html b/search/pages_7.html new file mode 100644 index 00000000..c355685b --- /dev/null +++ b/search/pages_7.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_7.js b/search/pages_7.js new file mode 100644 index 00000000..e89c046a --- /dev/null +++ b/search/pages_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['the_20algorithms_20_2d_20c_393',['The Algorithms - C',['../index.html',1,'']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 00000000..3cf9df94 --- /dev/null +++ b/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/search/search.js b/search/search.js new file mode 100644 index 00000000..ff2b8c81 --- /dev/null +++ b/search/search.js @@ -0,0 +1,814 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 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 + */ +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; e(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/search/search_r.png b/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..1af5d21ee13e070d7600f1c4657fde843b953a69 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD literal 0 HcmV?d00001 diff --git a/search/searchdata.js b/search/searchdata.js new file mode 100644 index 00000000..3fa181b7 --- /dev/null +++ b/search/searchdata.js @@ -0,0 +1,36 @@ +var indexSectionsWithContent = +{ + 0: "_abcdefghiklmnopqrstuvw", + 1: "_abcdeghlmnpqstw", + 2: "acdfklnoqrst", + 3: "_acdefgiklmnpqrstuv", + 4: "adelmnprw", + 5: "bln", + 6: "_aelmno", + 7: "acdhlpst" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "files", + 3: "functions", + 4: "variables", + 5: "typedefs", + 6: "defines", + 7: "pages" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Data Structures", + 2: "Files", + 3: "Functions", + 4: "Variables", + 5: "Typedefs", + 6: "Macros", + 7: "Pages" +}; + diff --git a/search/typedefs_0.html b/search/typedefs_0.html new file mode 100644 index 00000000..43353ee5 --- /dev/null +++ b/search/typedefs_0.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/typedefs_0.js b/search/typedefs_0.js new file mode 100644 index 00000000..5ca23e38 --- /dev/null +++ b/search/typedefs_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['big_5fint_365',['big_int',['../db/d80/problem__20_2sol1_8c.html#a62cbbd106aad52daadb9403a07d0da32',1,'sol1.c']]] +]; diff --git a/search/typedefs_1.html b/search/typedefs_1.html new file mode 100644 index 00000000..84e9542d --- /dev/null +++ b/search/typedefs_1.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/typedefs_1.js b/search/typedefs_1.js new file mode 100644 index 00000000..905e2a06 --- /dev/null +++ b/search/typedefs_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['large_5fnum_366',['large_num',['../d6/d3d/factorial__large__number_8c.html#ab54882961780c41a4929a6d390f6522d',1,'factorial_large_number.c']]] +]; diff --git a/search/typedefs_2.html b/search/typedefs_2.html new file mode 100644 index 00000000..41586e99 --- /dev/null +++ b/search/typedefs_2.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/typedefs_2.js b/search/typedefs_2.js new file mode 100644 index 00000000..de40f108 --- /dev/null +++ b/search/typedefs_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['node_367',['node',['../df/d3c/threaded__binary__trees_8c.html#ad8ecdcce462dd8e170ae1f164935aaa6',1,'threaded_binary_trees.c']]] +]; diff --git a/search/variables_0.html b/search/variables_0.html new file mode 100644 index 00000000..9ce246b1 --- /dev/null +++ b/search/variables_0.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_0.js b/search/variables_0.js new file mode 100644 index 00000000..8b97a13a --- /dev/null +++ b/search/variables_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['abundant_5fflags_350',['abundant_flags',['../d4/dbd/problem__23_2sol2_8c.html#af920a16d6ef69dd604b283f427892e06',1,'sol2.c']]] +]; diff --git a/search/variables_1.html b/search/variables_1.html new file mode 100644 index 00000000..5802cecd --- /dev/null +++ b/search/variables_1.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_1.js b/search/variables_1.js new file mode 100644 index 00000000..6cffdcbd --- /dev/null +++ b/search/variables_1.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['data_351',['data',['../db/d8b/struct_node.html#a87c003c9f600e3fc58e6e90835f0b605',1,'Node::data()'],['../d0/dc8/structarray__3d.html#ac8967b2c72769f839c09fb4cebb4339f',1,'array_3d::data()']]], + ['digits_352',['digits',['../d3/d5a/struct__large__num.html#afaf353a072cf050ac86ac6e39868bcc9',1,'_large_num']]], + ['dim1_353',['dim1',['../d0/dc8/structarray__3d.html#ad5d3ee546eea3c05dc8f0dc90ec194f4',1,'array_3d']]], + ['dim2_354',['dim2',['../d0/dc8/structarray__3d.html#aa431cc0a41fd379270dbd2b0e3ac1b45',1,'array_3d']]], + ['dim3_355',['dim3',['../d0/dc8/structarray__3d.html#ad823bd5424a0fc158da52a0497d8c10a',1,'array_3d']]] +]; diff --git a/search/variables_2.html b/search/variables_2.html new file mode 100644 index 00000000..00291e59 --- /dev/null +++ b/search/variables_2.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_2.js b/search/variables_2.js new file mode 100644 index 00000000..b2ff9652 --- /dev/null +++ b/search/variables_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['eta_356',['eta',['../d2/daa/structadaline.html#a85dbd7cce6195d11ebb388220b96bde2',1,'adaline']]] +]; diff --git a/search/variables_3.html b/search/variables_3.html new file mode 100644 index 00000000..0e5389be --- /dev/null +++ b/search/variables_3.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_3.js b/search/variables_3.js new file mode 100644 index 00000000..1f9fa7c8 --- /dev/null +++ b/search/variables_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['llink_357',['llink',['../db/d8b/struct_node.html#a60b73f452505cef98795d2c8de3e72ef',1,'Node']]] +]; diff --git a/search/variables_4.html b/search/variables_4.html new file mode 100644 index 00000000..789a86b7 --- /dev/null +++ b/search/variables_4.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_4.js b/search/variables_4.js new file mode 100644 index 00000000..bd1cd72c --- /dev/null +++ b/search/variables_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['max_5fn_358',['MAX_N',['../d7/ddb/problem__23_2sol1_8c.html#a337e545af040d754dc012b42523ee1ee',1,'MAX_N(): sol1.c'],['../d4/dbd/problem__23_2sol2_8c.html#a8c7ddb39906f281b801f2cd58d416c2b',1,'MAX_N(): sol2.c']]] +]; diff --git a/search/variables_5.html b/search/variables_5.html new file mode 100644 index 00000000..c7873eb9 --- /dev/null +++ b/search/variables_5.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_5.js b/search/variables_5.js new file mode 100644 index 00000000..c45bfda1 --- /dev/null +++ b/search/variables_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['next_5fdigit_359',['next_digit',['../dc/d77/struct__big__int.html#a187538b984c86d7cfdb13e297e7f3564',1,'_big_int']]], + ['num_5fdigits_360',['num_digits',['../d3/d5a/struct__large__num.html#a3fd11c0b413bbabfb8737d4ae73e5aa0',1,'_large_num']]], + ['num_5fweights_361',['num_weights',['../d2/daa/structadaline.html#a53314e737a0a5ff4552a03bcc9dafbc1',1,'adaline']]] +]; diff --git a/search/variables_6.html b/search/variables_6.html new file mode 100644 index 00000000..a5885889 --- /dev/null +++ b/search/variables_6.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_6.js b/search/variables_6.js new file mode 100644 index 00000000..2997a3bd --- /dev/null +++ b/search/variables_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['prev_5fdigit_362',['prev_digit',['../dc/d77/struct__big__int.html#ad8405989a924410942b39ec0e9fef30b',1,'_big_int']]] +]; diff --git a/search/variables_7.html b/search/variables_7.html new file mode 100644 index 00000000..b09b295e --- /dev/null +++ b/search/variables_7.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_7.js b/search/variables_7.js new file mode 100644 index 00000000..8e48d461 --- /dev/null +++ b/search/variables_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['rlink_363',['rlink',['../db/d8b/struct_node.html#a0ed3c7305b43527f0f237bbfd438b8f7',1,'Node']]] +]; diff --git a/search/variables_8.html b/search/variables_8.html new file mode 100644 index 00000000..a479f8e0 --- /dev/null +++ b/search/variables_8.html @@ -0,0 +1,36 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_8.js b/search/variables_8.js new file mode 100644 index 00000000..40e34215 --- /dev/null +++ b/search/variables_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['weights_364',['weights',['../d2/daa/structadaline.html#a32e58c03fd9258709eae6138ad0ec657',1,'adaline']]] +]; diff --git a/splitbar.png b/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/svgpan.js b/svgpan.js new file mode 100644 index 00000000..2678d384 --- /dev/null +++ b/svgpan.js @@ -0,0 +1,323 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + The code below is based on SVGPan Library 1.2 and was modified for doxygen + to support both zooming and panning via the mouse and via embedded buttons. + + This code is licensed under the following BSD license: + + Copyright 2009-2010 Andrea Leofreddi . All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + The views and conclusions contained in the software and documentation are those of the + authors and should not be interpreted as representing official policies, either expressed + or implied, of Andrea Leofreddi. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +var root = document.documentElement; +var state = 'none'; +var stateOrigin; +var stateTf = root.createSVGMatrix(); +var cursorGrab = ' url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAlQTFRFAAAA////////c3ilYwAAAAN0Uk5T//8A18oNQQAAAD1JREFUeNp0zlEKACAIA9Bt9z90bZBZkQj29qFBEuBOzQHSnWTTyckEfqUuZgFvslH4ch3qLCO/Kr8cAgwATw4Ax6XRCcoAAAAASUVORK5CYII="), move'; +var zoomSteps = 10; +var zoomInFactor; +var zoomOutFactor; +var windowWidth; +var windowHeight; +var svgDoc; +var minZoom; +var maxZoom; +if (!window) window=this; + +/** + * Show the graph in the middle of the view, scaled to fit + */ +function show() +{ + if (window.innerHeight) // Firefox + { + windowWidth = window.innerWidth; + windowHeight = window.innerHeight; + } + else if (document.documentElement.clientWidth) // Chrome/Safari + { + windowWidth = document.documentElement.clientWidth + windowHeight = document.documentElement.clientHeight + } + if (!windowWidth || !windowHeight) // failsafe + { + windowWidth = 800; + windowHeight = 600; + } + minZoom = Math.min(Math.min(viewHeight,windowHeight)/viewHeight,Math.min(viewWidth,windowWidth)/viewWidth); + maxZoom = minZoom+1.5; + zoomInFactor = Math.pow(maxZoom/minZoom,1.0/zoomSteps); + zoomOutFactor = 1.0/zoomInFactor; + + var g = svgDoc.getElementById('viewport'); + try + { + var bb = g.getBBox(); // this can throw an exception if css { display: none } + var tx = (windowWidth-viewWidth*minZoom+8)/(2*minZoom); + var ty = viewHeight+(windowHeight-viewHeight*minZoom)/(2*minZoom); + var a = 'scale('+minZoom+') rotate(0) translate('+tx+' '+ty+')'; + g.setAttribute('transform',a); + } + catch(e) {} +} + +/** + * Register handlers + */ +function init(evt) +{ + svgDoc = evt.target.ownerDocument; + try { + if (top.window && top.window.registerShow) { // register show function in html doc for dynamic sections + top.window.registerShow(sectionId,show); + } + } catch(e) { + // ugh, we are not allowed to talk to the parent; can happen with Chrome when viewing pages + // locally, since they treat every local page as having a different origin + } + show(); + + setAttributes(root, { + "onmousedown" : "handleMouseDown(evt)", + "onmousemove" : "handleMouseMove(evt)", + "onmouseup" : "handleMouseUp(evt)" + }); + + if (window.addEventListener) + { + if (navigator.userAgent.toLowerCase().indexOf('webkit') >= 0 || + navigator.userAgent.toLowerCase().indexOf("opera") >= 0 || + navigator.appVersion.indexOf("MSIE") != -1) + { + window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari/IE9 + } + else + { + window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others + } + } +} + +window.onresize=function() +{ + if (svgDoc) { show(); } +} + +/** + * Instance an SVGPoint object with given event coordinates. + */ +function getEventPoint(evt) +{ + var p = root.createSVGPoint(); + p.x = evt.clientX; + p.y = evt.clientY; + return p; +} + +/** + * Sets the current transform matrix of an element. + */ +function setCTM(element, matrix) +{ + var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")"; + element.setAttribute("transform", s); +} + +/** + * Sets attributes of an element. + */ +function setAttributes(element, attributes) +{ + for (i in attributes) + element.setAttributeNS(null, i, attributes[i]); +} + +function doZoom(g,point,zoomFactor) +{ + var p = point.matrixTransform(g.getCTM().inverse()); + var k = root.createSVGMatrix().translate(p.x, p.y).scale(zoomFactor).translate(-p.x, -p.y); + var n = g.getCTM().multiply(k); + var s = Math.max(n.a,n.d); + if (s>maxZoom) n=n.translate(p.x,p.y).scale(maxZoom/s).translate(-p.x,-p.y); + else if (s'); + d.write('Print SVG'); + d.write(''); + d.write('
    '+xs+'
    '); + d.write(''); + d.write(''); + d.close(); + } catch(e) { + alert('Failed to open popup window needed for printing!\n'+e.message); + } +} +/* @license-end */ diff --git a/sync_off.png b/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/sync_on.png b/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/tab_a.png b/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/tab_b.png b/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/tabs.css b/tabs.css new file mode 100644 index 00000000..85a0cd5b --- /dev/null +++ b/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}.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